VirtualBox

source: vbox/trunk/src/recompiler/target-i386/ops_mem.h@ 15845

最後變更 在這個檔案從15845是 1,由 vboxsync 提交於 55 年 前

import

  • 屬性 svn:eol-style 設為 native
檔案大小: 3.1 KB
 
1void OPPROTO glue(glue(op_ldub, MEMSUFFIX), _T0_A0)(void)
2{
3 T0 = glue(ldub, MEMSUFFIX)(A0);
4}
5
6void OPPROTO glue(glue(op_ldsb, MEMSUFFIX), _T0_A0)(void)
7{
8 T0 = glue(ldsb, MEMSUFFIX)(A0);
9}
10
11void OPPROTO glue(glue(op_lduw, MEMSUFFIX), _T0_A0)(void)
12{
13 T0 = glue(lduw, MEMSUFFIX)(A0);
14}
15
16void OPPROTO glue(glue(op_ldsw, MEMSUFFIX), _T0_A0)(void)
17{
18 T0 = glue(ldsw, MEMSUFFIX)(A0);
19}
20
21void OPPROTO glue(glue(op_ldl, MEMSUFFIX), _T0_A0)(void)
22{
23 T0 = (uint32_t)glue(ldl, MEMSUFFIX)(A0);
24}
25
26void OPPROTO glue(glue(op_ldub, MEMSUFFIX), _T1_A0)(void)
27{
28 T1 = glue(ldub, MEMSUFFIX)(A0);
29}
30
31void OPPROTO glue(glue(op_ldsb, MEMSUFFIX), _T1_A0)(void)
32{
33 T1 = glue(ldsb, MEMSUFFIX)(A0);
34}
35
36void OPPROTO glue(glue(op_lduw, MEMSUFFIX), _T1_A0)(void)
37{
38 T1 = glue(lduw, MEMSUFFIX)(A0);
39}
40
41void OPPROTO glue(glue(op_ldsw, MEMSUFFIX), _T1_A0)(void)
42{
43 T1 = glue(ldsw, MEMSUFFIX)(A0);
44}
45
46void OPPROTO glue(glue(op_ldl, MEMSUFFIX), _T1_A0)(void)
47{
48 T1 = (uint32_t)glue(ldl, MEMSUFFIX)(A0);
49}
50
51void OPPROTO glue(glue(op_stb, MEMSUFFIX), _T0_A0)(void)
52{
53 glue(stb, MEMSUFFIX)(A0, T0);
54 FORCE_RET();
55}
56
57void OPPROTO glue(glue(op_stw, MEMSUFFIX), _T0_A0)(void)
58{
59 glue(stw, MEMSUFFIX)(A0, T0);
60 FORCE_RET();
61}
62
63void OPPROTO glue(glue(op_stl, MEMSUFFIX), _T0_A0)(void)
64{
65 glue(stl, MEMSUFFIX)(A0, T0);
66 FORCE_RET();
67}
68
69#if 0
70void OPPROTO glue(glue(op_stb, MEMSUFFIX), _T1_A0)(void)
71{
72 glue(stb, MEMSUFFIX)(A0, T1);
73 FORCE_RET();
74}
75#endif
76
77void OPPROTO glue(glue(op_stw, MEMSUFFIX), _T1_A0)(void)
78{
79 glue(stw, MEMSUFFIX)(A0, T1);
80 FORCE_RET();
81}
82
83void OPPROTO glue(glue(op_stl, MEMSUFFIX), _T1_A0)(void)
84{
85 glue(stl, MEMSUFFIX)(A0, T1);
86 FORCE_RET();
87}
88
89/* SSE/MMX support */
90void OPPROTO glue(glue(op_ldq, MEMSUFFIX), _env_A0)(void)
91{
92 uint64_t *p;
93 p = (uint64_t *)((char *)env + PARAM1);
94 *p = glue(ldq, MEMSUFFIX)(A0);
95}
96
97void OPPROTO glue(glue(op_stq, MEMSUFFIX), _env_A0)(void)
98{
99 uint64_t *p;
100 p = (uint64_t *)((char *)env + PARAM1);
101 glue(stq, MEMSUFFIX)(A0, *p);
102 FORCE_RET();
103}
104
105void OPPROTO glue(glue(op_ldo, MEMSUFFIX), _env_A0)(void)
106{
107 XMMReg *p;
108 p = (XMMReg *)((char *)env + PARAM1);
109 p->XMM_Q(0) = glue(ldq, MEMSUFFIX)(A0);
110 p->XMM_Q(1) = glue(ldq, MEMSUFFIX)(A0 + 8);
111}
112
113void OPPROTO glue(glue(op_sto, MEMSUFFIX), _env_A0)(void)
114{
115 XMMReg *p;
116 p = (XMMReg *)((char *)env + PARAM1);
117 glue(stq, MEMSUFFIX)(A0, p->XMM_Q(0));
118 glue(stq, MEMSUFFIX)(A0 + 8, p->XMM_Q(1));
119 FORCE_RET();
120}
121
122#ifdef TARGET_X86_64
123void OPPROTO glue(glue(op_ldsl, MEMSUFFIX), _T0_A0)(void)
124{
125 T0 = (int32_t)glue(ldl, MEMSUFFIX)(A0);
126}
127
128void OPPROTO glue(glue(op_ldsl, MEMSUFFIX), _T1_A0)(void)
129{
130 T1 = (int32_t)glue(ldl, MEMSUFFIX)(A0);
131}
132
133void OPPROTO glue(glue(op_ldq, MEMSUFFIX), _T0_A0)(void)
134{
135 T0 = glue(ldq, MEMSUFFIX)(A0);
136}
137
138void OPPROTO glue(glue(op_ldq, MEMSUFFIX), _T1_A0)(void)
139{
140 T1 = glue(ldq, MEMSUFFIX)(A0);
141}
142
143void OPPROTO glue(glue(op_stq, MEMSUFFIX), _T0_A0)(void)
144{
145 glue(stq, MEMSUFFIX)(A0, T0);
146 FORCE_RET();
147}
148
149void OPPROTO glue(glue(op_stq, MEMSUFFIX), _T1_A0)(void)
150{
151 glue(stq, MEMSUFFIX)(A0, T1);
152 FORCE_RET();
153}
154#endif
155
156#undef MEMSUFFIX
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette