VirtualBox

source: vbox/trunk/src/recompiler/target-i386/helper.h@ 22898

Last change on this file since 22898 was 17040, checked in by vboxsync, 16 years ago

recompiler_new: svn properties.

  • Property svn:eol-style set to native
File size: 10.9 KB
Line 
1#ifndef DEF_HELPER
2#define DEF_HELPER(ret, name, params) ret name params;
3#endif
4
5DEF_HELPER(void, helper_lock, (void))
6DEF_HELPER(void, helper_unlock, (void))
7DEF_HELPER(void, helper_write_eflags, (target_ulong t0, uint32_t update_mask))
8DEF_HELPER(target_ulong, helper_read_eflags, (void))
9#ifdef VBOX
10DEF_HELPER(void, helper_write_eflags_vme, (target_ulong t0))
11DEF_HELPER(target_ulong, helper_read_eflags_vme, (void))
12#endif
13DEF_HELPER(void, helper_divb_AL, (target_ulong t0))
14DEF_HELPER(void, helper_idivb_AL, (target_ulong t0))
15DEF_HELPER(void, helper_divw_AX, (target_ulong t0))
16DEF_HELPER(void, helper_idivw_AX, (target_ulong t0))
17DEF_HELPER(void, helper_divl_EAX, (target_ulong t0))
18DEF_HELPER(void, helper_idivl_EAX, (target_ulong t0))
19#ifdef TARGET_X86_64
20DEF_HELPER(void, helper_mulq_EAX_T0, (target_ulong t0))
21DEF_HELPER(void, helper_imulq_EAX_T0, (target_ulong t0))
22DEF_HELPER(target_ulong, helper_imulq_T0_T1, (target_ulong t0, target_ulong t1))
23DEF_HELPER(void, helper_divq_EAX, (target_ulong t0))
24DEF_HELPER(void, helper_idivq_EAX, (target_ulong t0))
25#endif
26
27DEF_HELPER(void, helper_aam, (int base))
28DEF_HELPER(void, helper_aad, (int base))
29DEF_HELPER(void, helper_aaa, (void))
30DEF_HELPER(void, helper_aas, (void))
31DEF_HELPER(void, helper_daa, (void))
32DEF_HELPER(void, helper_das, (void))
33
34DEF_HELPER(target_ulong, helper_lsl, (target_ulong selector1))
35DEF_HELPER(target_ulong, helper_lar, (target_ulong selector1))
36DEF_HELPER(void, helper_verr, (target_ulong selector1))
37DEF_HELPER(void, helper_verw, (target_ulong selector1))
38DEF_HELPER(void, helper_lldt, (int selector))
39DEF_HELPER(void, helper_ltr, (int selector))
40DEF_HELPER(void, helper_load_seg, (int seg_reg, int selector))
41DEF_HELPER(void, helper_ljmp_protected, (int new_cs, target_ulong new_eip,
42 int next_eip_addend))
43DEF_HELPER(void, helper_lcall_real, (int new_cs, target_ulong new_eip1,
44 int shift, int next_eip))
45DEF_HELPER(void, helper_lcall_protected, (int new_cs, target_ulong new_eip,
46 int shift, int next_eip_addend))
47DEF_HELPER(void, helper_iret_real, (int shift))
48DEF_HELPER(void, helper_iret_protected, (int shift, int next_eip))
49DEF_HELPER(void, helper_lret_protected, (int shift, int addend))
50DEF_HELPER(target_ulong, helper_read_crN, (int reg))
51DEF_HELPER(void, helper_write_crN, (int reg, target_ulong t0))
52DEF_HELPER(void, helper_lmsw, (target_ulong t0))
53DEF_HELPER(void, helper_clts, (void))
54DEF_HELPER(void, helper_movl_drN_T0, (int reg, target_ulong t0))
55DEF_HELPER(void, helper_invlpg, (target_ulong addr))
56
57DEF_HELPER(void, helper_enter_level, (int level, int data32, target_ulong t1))
58#ifdef TARGET_X86_64
59DEF_HELPER(void, helper_enter64_level, (int level, int data64, target_ulong t1))
60#endif
61DEF_HELPER(void, helper_sysenter, (void))
62DEF_HELPER(void, helper_sysexit, (int dflag))
63#ifdef TARGET_X86_64
64DEF_HELPER(void, helper_syscall, (int next_eip_addend))
65DEF_HELPER(void, helper_sysret, (int dflag))
66#endif
67DEF_HELPER(void, helper_hlt, (int next_eip_addend))
68DEF_HELPER(void, helper_monitor, (target_ulong ptr))
69DEF_HELPER(void, helper_mwait, (int next_eip_addend))
70DEF_HELPER(void, helper_debug, (void))
71DEF_HELPER(void, helper_raise_interrupt, (int intno, int next_eip_addend))
72DEF_HELPER(void, helper_raise_exception, (int exception_index))
73DEF_HELPER(void, helper_cli, (void))
74DEF_HELPER(void, helper_sti, (void))
75#ifdef VBOX
76DEF_HELPER(void, helper_cli_vme, (void))
77DEF_HELPER(void, helper_sti_vme, (void))
78#endif
79DEF_HELPER(void, helper_set_inhibit_irq, (void))
80DEF_HELPER(void, helper_reset_inhibit_irq, (void))
81DEF_HELPER(void, helper_boundw, (target_ulong a0, int v))
82DEF_HELPER(void, helper_boundl, (target_ulong a0, int v))
83DEF_HELPER(void, helper_rsm, (void))
84DEF_HELPER(void, helper_into, (int next_eip_addend))
85DEF_HELPER(void, helper_cmpxchg8b, (target_ulong a0))
86#ifdef TARGET_X86_64
87DEF_HELPER(void, helper_cmpxchg16b, (target_ulong a0))
88#endif
89DEF_HELPER(void, helper_single_step, (void))
90DEF_HELPER(void, helper_cpuid, (void))
91DEF_HELPER(void, helper_rdtsc, (void))
92DEF_HELPER(void, helper_rdpmc, (void))
93DEF_HELPER(void, helper_rdmsr, (void))
94DEF_HELPER(void, helper_wrmsr, (void))
95#ifdef VBOX
96DEF_HELPER(void, helper_rdtscp, (void))
97#endif
98
99DEF_HELPER(void, helper_check_iob, (uint32_t t0))
100DEF_HELPER(void, helper_check_iow, (uint32_t t0))
101DEF_HELPER(void, helper_check_iol, (uint32_t t0))
102#ifdef VBOX
103DEF_HELPER(void, helper_check_external_event, (void))
104DEF_HELPER(void, helper_dump_state, (void))
105DEF_HELPER(void, helper_sync_seg, (uint32_t t0))
106#endif
107DEF_HELPER(void, helper_outb, (uint32_t port, uint32_t data))
108DEF_HELPER(target_ulong, helper_inb, (uint32_t port))
109DEF_HELPER(void, helper_outw, (uint32_t port, uint32_t data))
110DEF_HELPER(target_ulong, helper_inw, (uint32_t port))
111DEF_HELPER(void, helper_outl, (uint32_t port, uint32_t data))
112DEF_HELPER(target_ulong, helper_inl, (uint32_t port))
113
114DEF_HELPER(void, helper_svm_check_intercept_param, (uint32_t type, uint64_t param))
115DEF_HELPER(void, helper_vmexit, (uint32_t exit_code, uint64_t exit_info_1))
116DEF_HELPER(void, helper_svm_check_io, (uint32_t port, uint32_t param,
117 uint32_t next_eip_addend))
118DEF_HELPER(void, helper_vmrun, (int aflag, int next_eip_addend))
119DEF_HELPER(void, helper_vmmcall, (void))
120DEF_HELPER(void, helper_vmload, (int aflag))
121DEF_HELPER(void, helper_vmsave, (int aflag))
122DEF_HELPER(void, helper_stgi, (void))
123DEF_HELPER(void, helper_clgi, (void))
124DEF_HELPER(void, helper_skinit, (void))
125DEF_HELPER(void, helper_invlpga, (int aflag))
126
127/* x86 FPU */
128
129DEF_HELPER(void, helper_flds_FT0, (uint32_t val))
130DEF_HELPER(void, helper_fldl_FT0, (uint64_t val))
131DEF_HELPER(void, helper_fildl_FT0, (int32_t val))
132DEF_HELPER(void, helper_flds_ST0, (uint32_t val))
133DEF_HELPER(void, helper_fldl_ST0, (uint64_t val))
134DEF_HELPER(void, helper_fildl_ST0, (int32_t val))
135DEF_HELPER(void, helper_fildll_ST0, (int64_t val))
136#ifndef VBOX
137DEF_HELPER(uint32_t, helper_fsts_ST0, (void))
138DEF_HELPER(uint64_t, helper_fstl_ST0, (void))
139DEF_HELPER(int32_t, helper_fist_ST0, (void))
140DEF_HELPER(int32_t, helper_fistl_ST0, (void))
141DEF_HELPER(int64_t, helper_fistll_ST0, (void))
142DEF_HELPER(int32_t, helper_fistt_ST0, (void))
143DEF_HELPER(int32_t, helper_fisttl_ST0, (void))
144DEF_HELPER(int64_t, helper_fisttll_ST0, (void))
145#else
146DEF_HELPER(RTCCUINTREG, helper_fsts_ST0, (void))
147DEF_HELPER(uint64_t, helper_fstl_ST0, (void))
148DEF_HELPER(RTCCINTREG, helper_fist_ST0, (void))
149DEF_HELPER(RTCCINTREG, helper_fistl_ST0, (void))
150DEF_HELPER(int64_t, helper_fistll_ST0, (void))
151DEF_HELPER(RTCCINTREG, helper_fistt_ST0, (void))
152DEF_HELPER(RTCCINTREG, helper_fisttl_ST0, (void))
153DEF_HELPER(int64_t, helper_fisttll_ST0, (void))
154#endif
155DEF_HELPER(void, helper_fldt_ST0, (target_ulong ptr))
156DEF_HELPER(void, helper_fstt_ST0, (target_ulong ptr))
157DEF_HELPER(void, helper_fpush, (void))
158DEF_HELPER(void, helper_fpop, (void))
159DEF_HELPER(void, helper_fdecstp, (void))
160DEF_HELPER(void, helper_fincstp, (void))
161DEF_HELPER(void, helper_ffree_STN, (int st_index))
162DEF_HELPER(void, helper_fmov_ST0_FT0, (void))
163DEF_HELPER(void, helper_fmov_FT0_STN, (int st_index))
164DEF_HELPER(void, helper_fmov_ST0_STN, (int st_index))
165DEF_HELPER(void, helper_fmov_STN_ST0, (int st_index))
166DEF_HELPER(void, helper_fxchg_ST0_STN, (int st_index))
167DEF_HELPER(void, helper_fcom_ST0_FT0, (void))
168DEF_HELPER(void, helper_fucom_ST0_FT0, (void))
169DEF_HELPER(void, helper_fcomi_ST0_FT0, (void))
170DEF_HELPER(void, helper_fucomi_ST0_FT0, (void))
171DEF_HELPER(void, helper_fadd_ST0_FT0, (void))
172DEF_HELPER(void, helper_fmul_ST0_FT0, (void))
173DEF_HELPER(void, helper_fsub_ST0_FT0, (void))
174DEF_HELPER(void, helper_fsubr_ST0_FT0, (void))
175DEF_HELPER(void, helper_fdiv_ST0_FT0, (void))
176DEF_HELPER(void, helper_fdivr_ST0_FT0, (void))
177DEF_HELPER(void, helper_fadd_STN_ST0, (int st_index))
178DEF_HELPER(void, helper_fmul_STN_ST0, (int st_index))
179DEF_HELPER(void, helper_fsub_STN_ST0, (int st_index))
180DEF_HELPER(void, helper_fsubr_STN_ST0, (int st_index))
181DEF_HELPER(void, helper_fdiv_STN_ST0, (int st_index))
182DEF_HELPER(void, helper_fdivr_STN_ST0, (int st_index))
183DEF_HELPER(void, helper_fchs_ST0, (void))
184DEF_HELPER(void, helper_fabs_ST0, (void))
185DEF_HELPER(void, helper_fxam_ST0, (void))
186DEF_HELPER(void, helper_fld1_ST0, (void))
187DEF_HELPER(void, helper_fldl2t_ST0, (void))
188DEF_HELPER(void, helper_fldl2e_ST0, (void))
189DEF_HELPER(void, helper_fldpi_ST0, (void))
190DEF_HELPER(void, helper_fldlg2_ST0, (void))
191DEF_HELPER(void, helper_fldln2_ST0, (void))
192DEF_HELPER(void, helper_fldz_ST0, (void))
193DEF_HELPER(void, helper_fldz_FT0, (void))
194#ifndef VBOX
195DEF_HELPER(uint32_t, helper_fnstsw, (void))
196DEF_HELPER(uint32_t, helper_fnstcw, (void))
197#else
198DEF_HELPER(RTCCUINTREG, helper_fnstsw, (void))
199DEF_HELPER(RTCCUINTREG, helper_fnstcw, (void))
200#endif
201DEF_HELPER(void, helper_fldcw, (uint32_t val))
202DEF_HELPER(void, helper_fclex, (void))
203DEF_HELPER(void, helper_fwait, (void))
204DEF_HELPER(void, helper_fninit, (void))
205DEF_HELPER(void, helper_fbld_ST0, (target_ulong ptr))
206DEF_HELPER(void, helper_fbst_ST0, (target_ulong ptr))
207DEF_HELPER(void, helper_f2xm1, (void))
208DEF_HELPER(void, helper_fyl2x, (void))
209DEF_HELPER(void, helper_fptan, (void))
210DEF_HELPER(void, helper_fpatan, (void))
211DEF_HELPER(void, helper_fxtract, (void))
212DEF_HELPER(void, helper_fprem1, (void))
213DEF_HELPER(void, helper_fprem, (void))
214DEF_HELPER(void, helper_fyl2xp1, (void))
215DEF_HELPER(void, helper_fsqrt, (void))
216DEF_HELPER(void, helper_fsincos, (void))
217DEF_HELPER(void, helper_frndint, (void))
218DEF_HELPER(void, helper_fscale, (void))
219DEF_HELPER(void, helper_fsin, (void))
220DEF_HELPER(void, helper_fcos, (void))
221DEF_HELPER(void, helper_fstenv, (target_ulong ptr, int data32))
222DEF_HELPER(void, helper_fldenv, (target_ulong ptr, int data32))
223DEF_HELPER(void, helper_fsave, (target_ulong ptr, int data32))
224DEF_HELPER(void, helper_frstor, (target_ulong ptr, int data32))
225DEF_HELPER(void, helper_fxsave, (target_ulong ptr, int data64))
226DEF_HELPER(void, helper_fxrstor, (target_ulong ptr, int data64))
227DEF_HELPER(target_ulong, helper_bsf, (target_ulong t0))
228DEF_HELPER(target_ulong, helper_bsr, (target_ulong t0))
229
230/* MMX/SSE */
231
232DEF_HELPER(void, helper_enter_mmx, (void))
233DEF_HELPER(void, helper_emms, (void))
234DEF_HELPER(void, helper_movq, (uint64_t *d, uint64_t *s))
235
236#define SHIFT 0
237#include "ops_sse_header.h"
238#define SHIFT 1
239#include "ops_sse_header.h"
240
241DEF_HELPER(target_ulong, helper_rclb, (target_ulong t0, target_ulong t1))
242DEF_HELPER(target_ulong, helper_rclw, (target_ulong t0, target_ulong t1))
243DEF_HELPER(target_ulong, helper_rcll, (target_ulong t0, target_ulong t1))
244DEF_HELPER(target_ulong, helper_rcrb, (target_ulong t0, target_ulong t1))
245DEF_HELPER(target_ulong, helper_rcrw, (target_ulong t0, target_ulong t1))
246DEF_HELPER(target_ulong, helper_rcrl, (target_ulong t0, target_ulong t1))
247#ifdef TARGET_X86_64
248DEF_HELPER(target_ulong, helper_rclq, (target_ulong t0, target_ulong t1))
249DEF_HELPER(target_ulong, helper_rcrq, (target_ulong t0, target_ulong t1))
250#endif
251
252#ifdef VBOX
253void helper_external_event(void);
254void helper_record_call(void);
255
256/* in op_helper.c */
257void sync_seg(CPUX86State *env1, int seg_reg, int selector);
258void sync_ldtr(CPUX86State *env1, int selector);
259
260#endif
261
262#undef DEF_HELPER
Note: See TracBrowser for help on using the repository browser.

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