Develop and Download Open Source Software

Browse Subversion Repository

Contents of /trunk/npl/vmi.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 113 - (show annotations) (download) (as text)
Fri Nov 3 05:48:52 2017 UTC (6 years, 5 months ago) by tamiya25
File MIME type: text/x-csrc
File size: 1007 byte(s)
vm
1 #include "npl.h"
2
3 // vmi utilities
4
5 static void* _get(npl_vmi_t *vmi, size_t bytes)
6 {
7 unsigned char *p;
8
9 p = vmi->code;
10 p = p + vmi->pc;
11 vmi->pc += bytes;
12
13 return p;
14 }
15
16 npl_u8_t npl_vmi_u8(npl_vmi_t *vmi)
17 {
18 return *((npl_u8_t*)_get(vmi, 1));
19 }
20
21 npl_u16_t npl_vmi_u16(npl_vmi_t *vmi)
22 {
23 return *((npl_u16_t*)_get(vmi, 2));
24 }
25
26 npl_u32_t npl_vmi_u32(npl_vmi_t *vmi)
27 {
28 return *((npl_u32_t*)_get(vmi, 4));
29 }
30
31 npl_u64_t npl_vmi_u64(npl_vmi_t *vmi)
32 {
33 return *((npl_u64_t*)_get(vmi, 8));
34 }
35
36 npl_s8_t npl_vmi_s8(npl_vmi_t *vmi)
37 {
38 return *((npl_s8_t*)_get(vmi, 1));
39 }
40
41 npl_s16_t npl_vmi_s16(npl_vmi_t *vmi)
42 {
43 return *((npl_s16_t*)_get(vmi, 2));
44 }
45
46 npl_s32_t npl_vmi_s32(npl_vmi_t *vmi)
47 {
48 return *((npl_s32_t*)_get(vmi, 4));
49 }
50
51 npl_s64_t npl_vmi_s64(npl_vmi_t *vmi)
52 {
53 return *((npl_s64_t*)_get(vmi, 8));
54 }
55
56 npl_addr_t npl_vmi_addr(npl_vmi_t *vmi)
57 {
58 return *((npl_addr_t*)_get(vmi, sizeof(npl_addr_t)));
59 }
60
61 npl_float_t npl_vmi_float(npl_vmi_t *vmi)
62 {
63 return *((npl_float_t*)_get(vmi, sizeof(double)));
64 }
65

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26