]> git.proxmox.com Git - qemu.git/blob - target-i386/helper.h
3bce5006c843864a81c798c81b7619b8c92e45ef
[qemu.git] / target-i386 / helper.h
1 #define TCG_HELPER_PROTO
2
3 void helper_divb_AL(target_ulong t0);
4 void helper_idivb_AL(target_ulong t0);
5 void helper_divw_AX(target_ulong t0);
6 void helper_idivw_AX(target_ulong t0);
7 void helper_divl_EAX(target_ulong t0);
8 void helper_idivl_EAX(target_ulong t0);
9 #ifdef TARGET_X86_64
10 void helper_divq_EAX(target_ulong t0);
11 void helper_idivq_EAX(target_ulong t0);
12 #endif
13
14 void helper_aam(int base);
15 void helper_aad(int base);
16 void helper_aaa(void);
17 void helper_aas(void);
18 void helper_daa(void);
19 void helper_das(void);
20
21 void helper_lsl(uint32_t selector);
22 void helper_lar(uint32_t selector);
23 void helper_verr(uint32_t selector);
24 void helper_verw(uint32_t selector);
25 void helper_lldt(int selector);
26 void helper_ltr(int selector);
27 void helper_load_seg(int seg_reg, int selector);
28 void helper_ljmp_protected_T0_T1(int next_eip);
29 void helper_lcall_real_T0_T1(int shift, int next_eip);
30 void helper_lcall_protected_T0_T1(int shift, int next_eip);
31 void helper_iret_real(int shift);
32 void helper_iret_protected(int shift, int next_eip);
33 void helper_lret_protected(int shift, int addend);
34 void helper_movl_crN_T0(int reg);
35 void helper_movl_drN_T0(int reg);
36 void helper_invlpg(target_ulong addr);
37
38 void helper_enter_level(int level, int data32);
39 #ifdef TARGET_X86_64
40 void helper_enter64_level(int level, int data64);
41 #endif
42 void helper_sysenter(void);
43 void helper_sysexit(void);
44 #ifdef TARGET_X86_64
45 void helper_syscall(int next_eip_addend);
46 void helper_sysret(int dflag);
47 #endif
48 void helper_hlt(void);
49 void helper_monitor(target_ulong ptr);
50 void helper_mwait(void);
51 void helper_debug(void);
52 void helper_raise_interrupt(int intno, int next_eip_addend);
53 void helper_raise_exception(int exception_index);
54 void helper_cli(void);
55 void helper_sti(void);
56 void helper_set_inhibit_irq(void);
57 void helper_reset_inhibit_irq(void);
58 void helper_boundw(void);
59 void helper_boundl(void);
60 void helper_rsm(void);
61 void helper_single_step(void);
62 void helper_cpuid(void);
63 void helper_rdtsc(void);
64 void helper_rdpmc(void);
65 void helper_rdmsr(void);
66 void helper_wrmsr(void);
67
68 void helper_vmrun(void);
69 void helper_vmmcall(void);
70 void helper_vmload(void);
71 void helper_vmsave(void);
72 void helper_stgi(void);
73 void helper_clgi(void);
74 void helper_skinit(void);
75 void helper_invlpga(void);
76
77 /* x86 FPU */
78
79 void helper_flds_FT0(uint32_t val);
80 void helper_fldl_FT0(uint64_t val);
81 void helper_fildl_FT0(int32_t val);
82 void helper_flds_ST0(uint32_t val);
83 void helper_fldl_ST0(uint64_t val);
84 void helper_fildl_ST0(int32_t val);
85 void helper_fildll_ST0(int64_t val);
86 uint32_t helper_fsts_ST0(void);
87 uint64_t helper_fstl_ST0(void);
88 int32_t helper_fist_ST0(void);
89 int32_t helper_fistl_ST0(void);
90 int64_t helper_fistll_ST0(void);
91 int32_t helper_fistt_ST0(void);
92 int32_t helper_fisttl_ST0(void);
93 int64_t helper_fisttll_ST0(void);
94 void helper_fldt_ST0(target_ulong ptr);
95 void helper_fstt_ST0(target_ulong ptr);
96 void helper_fpush(void);
97 void helper_fpop(void);
98 void helper_fdecstp(void);
99 void helper_fincstp(void);
100 void helper_ffree_STN(int st_index);
101 void helper_fmov_ST0_FT0(void);
102 void helper_fmov_FT0_STN(int st_index);
103 void helper_fmov_ST0_STN(int st_index);
104 void helper_fmov_STN_ST0(int st_index);
105 void helper_fxchg_ST0_STN(int st_index);
106 void helper_fcom_ST0_FT0(void);
107 void helper_fucom_ST0_FT0(void);
108 void helper_fcomi_ST0_FT0(void);
109 void helper_fucomi_ST0_FT0(void);
110 void helper_fadd_ST0_FT0(void);
111 void helper_fmul_ST0_FT0(void);
112 void helper_fsub_ST0_FT0(void);
113 void helper_fsubr_ST0_FT0(void);
114 void helper_fdiv_ST0_FT0(void);
115 void helper_fdivr_ST0_FT0(void);
116 void helper_fadd_STN_ST0(int st_index);
117 void helper_fmul_STN_ST0(int st_index);
118 void helper_fsub_STN_ST0(int st_index);
119 void helper_fsubr_STN_ST0(int st_index);
120 void helper_fdiv_STN_ST0(int st_index);
121 void helper_fdivr_STN_ST0(int st_index);
122 void helper_fchs_ST0(void);
123 void helper_fabs_ST0(void);
124 void helper_fxam_ST0(void);
125 void helper_fld1_ST0(void);
126 void helper_fldl2t_ST0(void);
127 void helper_fldl2e_ST0(void);
128 void helper_fldpi_ST0(void);
129 void helper_fldlg2_ST0(void);
130 void helper_fldln2_ST0(void);
131 void helper_fldz_ST0(void);
132 void helper_fldz_FT0(void);
133 uint32_t helper_fnstsw(void);
134 uint32_t helper_fnstcw(void);
135 void helper_fldcw(uint32_t val);
136 void helper_fclex(void);
137 void helper_fwait(void);
138 void helper_fninit(void);
139 void helper_fbld_ST0(target_ulong ptr);
140 void helper_fbst_ST0(target_ulong ptr);
141 void helper_f2xm1(void);
142 void helper_fyl2x(void);
143 void helper_fptan(void);
144 void helper_fpatan(void);
145 void helper_fxtract(void);
146 void helper_fprem1(void);
147 void helper_fprem(void);
148 void helper_fyl2xp1(void);
149 void helper_fsqrt(void);
150 void helper_fsincos(void);
151 void helper_frndint(void);
152 void helper_fscale(void);
153 void helper_fsin(void);
154 void helper_fcos(void);
155 void helper_fxam_ST0(void);
156 void helper_fstenv(target_ulong ptr, int data32);
157 void helper_fldenv(target_ulong ptr, int data32);
158 void helper_fsave(target_ulong ptr, int data32);
159 void helper_frstor(target_ulong ptr, int data32);
160 void helper_fxsave(target_ulong ptr, int data64);
161 void helper_fxrstor(target_ulong ptr, int data64);
162
163 /* MMX/SSE */
164
165 void TCG_HELPER_PROTO helper_enter_mmx(void);
166 void TCG_HELPER_PROTO helper_emms(void);
167 void TCG_HELPER_PROTO helper_movq(uint64_t *d, uint64_t *s);
168
169 #define SHIFT 0
170 #include "ops_sse_header.h"
171 #define SHIFT 1
172 #include "ops_sse_header.h"
173