diff options
Diffstat (limited to 'target-i386/helper.h')
-rw-r--r-- | target-i386/helper.h | 379 |
1 files changed, 188 insertions, 191 deletions
diff --git a/target-i386/helper.h b/target-i386/helper.h index ea7bd35145..0c367837d5 100644 --- a/target-i386/helper.h +++ b/target-i386/helper.h @@ -1,220 +1,217 @@ -#ifndef DEF_HELPER -#define DEF_HELPER(ret, name, params) ret name params; -#endif +#include "def-helper.h" + +DEF_HELPER_FLAGS_1(cc_compute_all, TCG_CALL_PURE, i32, int) +DEF_HELPER_FLAGS_1(cc_compute_c, TCG_CALL_PURE, i32, int) -DEF_HELPER(void, helper_lock, (void)) -DEF_HELPER(void, helper_unlock, (void)) -DEF_HELPER(void, helper_write_eflags, (target_ulong t0, uint32_t update_mask)) -DEF_HELPER(target_ulong, helper_read_eflags, (void)) -DEF_HELPER(void, helper_divb_AL, (target_ulong t0)) -DEF_HELPER(void, helper_idivb_AL, (target_ulong t0)) -DEF_HELPER(void, helper_divw_AX, (target_ulong t0)) -DEF_HELPER(void, helper_idivw_AX, (target_ulong t0)) -DEF_HELPER(void, helper_divl_EAX, (target_ulong t0)) -DEF_HELPER(void, helper_idivl_EAX, (target_ulong t0)) +DEF_HELPER_0(lock, void) +DEF_HELPER_0(unlock, void) +DEF_HELPER_2(write_eflags, void, tl, i32) +DEF_HELPER_0(read_eflags, tl) +DEF_HELPER_1(divb_AL, void, tl) +DEF_HELPER_1(idivb_AL, void, tl) +DEF_HELPER_1(divw_AX, void, tl) +DEF_HELPER_1(idivw_AX, void, tl) +DEF_HELPER_1(divl_EAX, void, tl) +DEF_HELPER_1(idivl_EAX, void, tl) #ifdef TARGET_X86_64 -DEF_HELPER(void, helper_mulq_EAX_T0, (target_ulong t0)) -DEF_HELPER(void, helper_imulq_EAX_T0, (target_ulong t0)) -DEF_HELPER(target_ulong, helper_imulq_T0_T1, (target_ulong t0, target_ulong t1)) -DEF_HELPER(void, helper_divq_EAX, (target_ulong t0)) -DEF_HELPER(void, helper_idivq_EAX, (target_ulong t0)) +DEF_HELPER_1(mulq_EAX_T0, void, tl) +DEF_HELPER_1(imulq_EAX_T0, void, tl) +DEF_HELPER_2(imulq_T0_T1, tl, tl, tl) +DEF_HELPER_1(divq_EAX, void, tl) +DEF_HELPER_1(idivq_EAX, void, tl) #endif -DEF_HELPER(void, helper_aam, (int base)) -DEF_HELPER(void, helper_aad, (int base)) -DEF_HELPER(void, helper_aaa, (void)) -DEF_HELPER(void, helper_aas, (void)) -DEF_HELPER(void, helper_daa, (void)) -DEF_HELPER(void, helper_das, (void)) +DEF_HELPER_1(aam, void, int) +DEF_HELPER_1(aad, void, int) +DEF_HELPER_0(aaa, void) +DEF_HELPER_0(aas, void) +DEF_HELPER_0(daa, void) +DEF_HELPER_0(das, void) -DEF_HELPER(target_ulong, helper_lsl, (target_ulong selector1)) -DEF_HELPER(target_ulong, helper_lar, (target_ulong selector1)) -DEF_HELPER(void, helper_verr, (target_ulong selector1)) -DEF_HELPER(void, helper_verw, (target_ulong selector1)) -DEF_HELPER(void, helper_lldt, (int selector)) -DEF_HELPER(void, helper_ltr, (int selector)) -DEF_HELPER(void, helper_load_seg, (int seg_reg, int selector)) -DEF_HELPER(void, helper_ljmp_protected, (int new_cs, target_ulong new_eip, - int next_eip_addend)) -DEF_HELPER(void, helper_lcall_real, (int new_cs, target_ulong new_eip1, - int shift, int next_eip)) -DEF_HELPER(void, helper_lcall_protected, (int new_cs, target_ulong new_eip, - int shift, int next_eip_addend)) -DEF_HELPER(void, helper_iret_real, (int shift)) -DEF_HELPER(void, helper_iret_protected, (int shift, int next_eip)) -DEF_HELPER(void, helper_lret_protected, (int shift, int addend)) -DEF_HELPER(target_ulong, helper_read_crN, (int reg)) -DEF_HELPER(void, helper_write_crN, (int reg, target_ulong t0)) -DEF_HELPER(void, helper_lmsw, (target_ulong t0)) -DEF_HELPER(void, helper_clts, (void)) -DEF_HELPER(void, helper_movl_drN_T0, (int reg, target_ulong t0)) -DEF_HELPER(void, helper_invlpg, (target_ulong addr)) +DEF_HELPER_1(lsl, tl, tl) +DEF_HELPER_1(lar, tl, tl) +DEF_HELPER_1(verr, void, tl) +DEF_HELPER_1(verw, void, tl) +DEF_HELPER_1(lldt, void, int) +DEF_HELPER_1(ltr, void, int) +DEF_HELPER_2(load_seg, void, int, int) +DEF_HELPER_3(ljmp_protected, void, int, tl, int) +DEF_HELPER_4(lcall_real, void, int, tl, int, int) +DEF_HELPER_4(lcall_protected, void, int, tl, int, int) +DEF_HELPER_1(iret_real, void, int) +DEF_HELPER_2(iret_protected, void, int, int) +DEF_HELPER_2(lret_protected, void, int, int) +DEF_HELPER_1(read_crN, tl, int) +DEF_HELPER_2(write_crN, void, int, tl) +DEF_HELPER_1(lmsw, void, tl) +DEF_HELPER_0(clts, void) +DEF_HELPER_2(movl_drN_T0, void, int, tl) +DEF_HELPER_1(invlpg, void, tl) -DEF_HELPER(void, helper_enter_level, (int level, int data32, target_ulong t1)) +DEF_HELPER_3(enter_level, void, int, int, tl) #ifdef TARGET_X86_64 -DEF_HELPER(void, helper_enter64_level, (int level, int data64, target_ulong t1)) +DEF_HELPER_3(enter64_level, void, int, int, tl) #endif -DEF_HELPER(void, helper_sysenter, (void)) -DEF_HELPER(void, helper_sysexit, (int dflag)) +DEF_HELPER_0(sysenter, void) +DEF_HELPER_1(sysexit, void, int) #ifdef TARGET_X86_64 -DEF_HELPER(void, helper_syscall, (int next_eip_addend)) -DEF_HELPER(void, helper_sysret, (int dflag)) +DEF_HELPER_1(syscall, void, int) +DEF_HELPER_1(sysret, void, int) #endif -DEF_HELPER(void, helper_hlt, (int next_eip_addend)) -DEF_HELPER(void, helper_monitor, (target_ulong ptr)) -DEF_HELPER(void, helper_mwait, (int next_eip_addend)) -DEF_HELPER(void, helper_debug, (void)) -DEF_HELPER(void, helper_raise_interrupt, (int intno, int next_eip_addend)) -DEF_HELPER(void, helper_raise_exception, (int exception_index)) -DEF_HELPER(void, helper_cli, (void)) -DEF_HELPER(void, helper_sti, (void)) -DEF_HELPER(void, helper_set_inhibit_irq, (void)) -DEF_HELPER(void, helper_reset_inhibit_irq, (void)) -DEF_HELPER(void, helper_boundw, (target_ulong a0, int v)) -DEF_HELPER(void, helper_boundl, (target_ulong a0, int v)) -DEF_HELPER(void, helper_rsm, (void)) -DEF_HELPER(void, helper_into, (int next_eip_addend)) -DEF_HELPER(void, helper_cmpxchg8b, (target_ulong a0)) +DEF_HELPER_1(hlt, void, int) +DEF_HELPER_1(monitor, void, tl) +DEF_HELPER_1(mwait, void, int) +DEF_HELPER_0(debug, void) +DEF_HELPER_2(raise_interrupt, void, int, int) +DEF_HELPER_1(raise_exception, void, int) +DEF_HELPER_0(cli, void) +DEF_HELPER_0(sti, void) +DEF_HELPER_0(set_inhibit_irq, void) +DEF_HELPER_0(reset_inhibit_irq, void) +DEF_HELPER_2(boundw, void, tl, int) +DEF_HELPER_2(boundl, void, tl, int) +DEF_HELPER_0(rsm, void) +DEF_HELPER_1(into, void, int) +DEF_HELPER_1(cmpxchg8b, void, tl) #ifdef TARGET_X86_64 -DEF_HELPER(void, helper_cmpxchg16b, (target_ulong a0)) +DEF_HELPER_1(cmpxchg16b, void, tl) #endif -DEF_HELPER(void, helper_single_step, (void)) -DEF_HELPER(void, helper_cpuid, (void)) -DEF_HELPER(void, helper_rdtsc, (void)) -DEF_HELPER(void, helper_rdpmc, (void)) -DEF_HELPER(void, helper_rdmsr, (void)) -DEF_HELPER(void, helper_wrmsr, (void)) +DEF_HELPER_0(single_step, void) +DEF_HELPER_0(cpuid, void) +DEF_HELPER_0(rdtsc, void) +DEF_HELPER_0(rdpmc, void) +DEF_HELPER_0(rdmsr, void) +DEF_HELPER_0(wrmsr, void) -DEF_HELPER(void, helper_check_iob, (uint32_t t0)) -DEF_HELPER(void, helper_check_iow, (uint32_t t0)) -DEF_HELPER(void, helper_check_iol, (uint32_t t0)) -DEF_HELPER(void, helper_outb, (uint32_t port, uint32_t data)) -DEF_HELPER(target_ulong, helper_inb, (uint32_t port)) -DEF_HELPER(void, helper_outw, (uint32_t port, uint32_t data)) -DEF_HELPER(target_ulong, helper_inw, (uint32_t port)) -DEF_HELPER(void, helper_outl, (uint32_t port, uint32_t data)) -DEF_HELPER(target_ulong, helper_inl, (uint32_t port)) +DEF_HELPER_1(check_iob, void, i32) +DEF_HELPER_1(check_iow, void, i32) +DEF_HELPER_1(check_iol, void, i32) +DEF_HELPER_2(outb, void, i32, i32) +DEF_HELPER_1(inb, tl, i32) +DEF_HELPER_2(outw, void, i32, i32) +DEF_HELPER_1(inw, tl, i32) +DEF_HELPER_2(outl, void, i32, i32) +DEF_HELPER_1(inl, tl, i32) -DEF_HELPER(void, helper_svm_check_intercept_param, (uint32_t type, uint64_t param)) -DEF_HELPER(void, helper_vmexit, (uint32_t exit_code, uint64_t exit_info_1)) -DEF_HELPER(void, helper_svm_check_io, (uint32_t port, uint32_t param, - uint32_t next_eip_addend)) -DEF_HELPER(void, helper_vmrun, (int aflag, int next_eip_addend)) -DEF_HELPER(void, helper_vmmcall, (void)) -DEF_HELPER(void, helper_vmload, (int aflag)) -DEF_HELPER(void, helper_vmsave, (int aflag)) -DEF_HELPER(void, helper_stgi, (void)) -DEF_HELPER(void, helper_clgi, (void)) -DEF_HELPER(void, helper_skinit, (void)) -DEF_HELPER(void, helper_invlpga, (int aflag)) +DEF_HELPER_2(svm_check_intercept_param, void, i32, i64) +DEF_HELPER_2(vmexit, void, i32, i64) +DEF_HELPER_3(svm_check_io, void, i32, i32, i32) +DEF_HELPER_2(vmrun, void, int, int) +DEF_HELPER_0(vmmcall, void) +DEF_HELPER_1(vmload, void, int) +DEF_HELPER_1(vmsave, void, int) +DEF_HELPER_0(stgi, void) +DEF_HELPER_0(clgi, void) +DEF_HELPER_0(skinit, void) +DEF_HELPER_1(invlpga, void, int) /* x86 FPU */ -DEF_HELPER(void, helper_flds_FT0, (uint32_t val)) -DEF_HELPER(void, helper_fldl_FT0, (uint64_t val)) -DEF_HELPER(void, helper_fildl_FT0, (int32_t val)) -DEF_HELPER(void, helper_flds_ST0, (uint32_t val)) -DEF_HELPER(void, helper_fldl_ST0, (uint64_t val)) -DEF_HELPER(void, helper_fildl_ST0, (int32_t val)) -DEF_HELPER(void, helper_fildll_ST0, (int64_t val)) -DEF_HELPER(uint32_t, helper_fsts_ST0, (void)) -DEF_HELPER(uint64_t, helper_fstl_ST0, (void)) -DEF_HELPER(int32_t, helper_fist_ST0, (void)) -DEF_HELPER(int32_t, helper_fistl_ST0, (void)) -DEF_HELPER(int64_t, helper_fistll_ST0, (void)) -DEF_HELPER(int32_t, helper_fistt_ST0, (void)) -DEF_HELPER(int32_t, helper_fisttl_ST0, (void)) -DEF_HELPER(int64_t, helper_fisttll_ST0, (void)) -DEF_HELPER(void, helper_fldt_ST0, (target_ulong ptr)) -DEF_HELPER(void, helper_fstt_ST0, (target_ulong ptr)) -DEF_HELPER(void, helper_fpush, (void)) -DEF_HELPER(void, helper_fpop, (void)) -DEF_HELPER(void, helper_fdecstp, (void)) -DEF_HELPER(void, helper_fincstp, (void)) -DEF_HELPER(void, helper_ffree_STN, (int st_index)) -DEF_HELPER(void, helper_fmov_ST0_FT0, (void)) -DEF_HELPER(void, helper_fmov_FT0_STN, (int st_index)) -DEF_HELPER(void, helper_fmov_ST0_STN, (int st_index)) -DEF_HELPER(void, helper_fmov_STN_ST0, (int st_index)) -DEF_HELPER(void, helper_fxchg_ST0_STN, (int st_index)) -DEF_HELPER(void, helper_fcom_ST0_FT0, (void)) -DEF_HELPER(void, helper_fucom_ST0_FT0, (void)) -DEF_HELPER(void, helper_fcomi_ST0_FT0, (void)) -DEF_HELPER(void, helper_fucomi_ST0_FT0, (void)) -DEF_HELPER(void, helper_fadd_ST0_FT0, (void)) -DEF_HELPER(void, helper_fmul_ST0_FT0, (void)) -DEF_HELPER(void, helper_fsub_ST0_FT0, (void)) -DEF_HELPER(void, helper_fsubr_ST0_FT0, (void)) -DEF_HELPER(void, helper_fdiv_ST0_FT0, (void)) -DEF_HELPER(void, helper_fdivr_ST0_FT0, (void)) -DEF_HELPER(void, helper_fadd_STN_ST0, (int st_index)) -DEF_HELPER(void, helper_fmul_STN_ST0, (int st_index)) -DEF_HELPER(void, helper_fsub_STN_ST0, (int st_index)) -DEF_HELPER(void, helper_fsubr_STN_ST0, (int st_index)) -DEF_HELPER(void, helper_fdiv_STN_ST0, (int st_index)) -DEF_HELPER(void, helper_fdivr_STN_ST0, (int st_index)) -DEF_HELPER(void, helper_fchs_ST0, (void)) -DEF_HELPER(void, helper_fabs_ST0, (void)) -DEF_HELPER(void, helper_fxam_ST0, (void)) -DEF_HELPER(void, helper_fld1_ST0, (void)) -DEF_HELPER(void, helper_fldl2t_ST0, (void)) -DEF_HELPER(void, helper_fldl2e_ST0, (void)) -DEF_HELPER(void, helper_fldpi_ST0, (void)) -DEF_HELPER(void, helper_fldlg2_ST0, (void)) -DEF_HELPER(void, helper_fldln2_ST0, (void)) -DEF_HELPER(void, helper_fldz_ST0, (void)) -DEF_HELPER(void, helper_fldz_FT0, (void)) -DEF_HELPER(uint32_t, helper_fnstsw, (void)) -DEF_HELPER(uint32_t, helper_fnstcw, (void)) -DEF_HELPER(void, helper_fldcw, (uint32_t val)) -DEF_HELPER(void, helper_fclex, (void)) -DEF_HELPER(void, helper_fwait, (void)) -DEF_HELPER(void, helper_fninit, (void)) -DEF_HELPER(void, helper_fbld_ST0, (target_ulong ptr)) -DEF_HELPER(void, helper_fbst_ST0, (target_ulong ptr)) -DEF_HELPER(void, helper_f2xm1, (void)) -DEF_HELPER(void, helper_fyl2x, (void)) -DEF_HELPER(void, helper_fptan, (void)) -DEF_HELPER(void, helper_fpatan, (void)) -DEF_HELPER(void, helper_fxtract, (void)) -DEF_HELPER(void, helper_fprem1, (void)) -DEF_HELPER(void, helper_fprem, (void)) -DEF_HELPER(void, helper_fyl2xp1, (void)) -DEF_HELPER(void, helper_fsqrt, (void)) -DEF_HELPER(void, helper_fsincos, (void)) -DEF_HELPER(void, helper_frndint, (void)) -DEF_HELPER(void, helper_fscale, (void)) -DEF_HELPER(void, helper_fsin, (void)) -DEF_HELPER(void, helper_fcos, (void)) -DEF_HELPER(void, helper_fstenv, (target_ulong ptr, int data32)) -DEF_HELPER(void, helper_fldenv, (target_ulong ptr, int data32)) -DEF_HELPER(void, helper_fsave, (target_ulong ptr, int data32)) -DEF_HELPER(void, helper_frstor, (target_ulong ptr, int data32)) -DEF_HELPER(void, helper_fxsave, (target_ulong ptr, int data64)) -DEF_HELPER(void, helper_fxrstor, (target_ulong ptr, int data64)) -DEF_HELPER(target_ulong, helper_bsf, (target_ulong t0)) -DEF_HELPER(target_ulong, helper_bsr, (target_ulong t0)) +DEF_HELPER_1(flds_FT0, void, i32) +DEF_HELPER_1(fldl_FT0, void, i64) +DEF_HELPER_1(fildl_FT0, void, s32) +DEF_HELPER_1(flds_ST0, void, i32) +DEF_HELPER_1(fldl_ST0, void, i64) +DEF_HELPER_1(fildl_ST0, void, s32) +DEF_HELPER_1(fildll_ST0, void, s64) +DEF_HELPER_0(fsts_ST0, i32) +DEF_HELPER_0(fstl_ST0, i64) +DEF_HELPER_0(fist_ST0, s32) +DEF_HELPER_0(fistl_ST0, s32) +DEF_HELPER_0(fistll_ST0, s64) +DEF_HELPER_0(fistt_ST0, s32) +DEF_HELPER_0(fisttl_ST0, s32) +DEF_HELPER_0(fisttll_ST0, s64) +DEF_HELPER_1(fldt_ST0, void, tl) +DEF_HELPER_1(fstt_ST0, void, tl) +DEF_HELPER_0(fpush, void) +DEF_HELPER_0(fpop, void) +DEF_HELPER_0(fdecstp, void) +DEF_HELPER_0(fincstp, void) +DEF_HELPER_1(ffree_STN, void, int) +DEF_HELPER_0(fmov_ST0_FT0, void) +DEF_HELPER_1(fmov_FT0_STN, void, int) +DEF_HELPER_1(fmov_ST0_STN, void, int) +DEF_HELPER_1(fmov_STN_ST0, void, int) +DEF_HELPER_1(fxchg_ST0_STN, void, int) +DEF_HELPER_0(fcom_ST0_FT0, void) +DEF_HELPER_0(fucom_ST0_FT0, void) +DEF_HELPER_0(fcomi_ST0_FT0, void) +DEF_HELPER_0(fucomi_ST0_FT0, void) +DEF_HELPER_0(fadd_ST0_FT0, void) +DEF_HELPER_0(fmul_ST0_FT0, void) +DEF_HELPER_0(fsub_ST0_FT0, void) +DEF_HELPER_0(fsubr_ST0_FT0, void) +DEF_HELPER_0(fdiv_ST0_FT0, void) +DEF_HELPER_0(fdivr_ST0_FT0, void) +DEF_HELPER_1(fadd_STN_ST0, void, int) +DEF_HELPER_1(fmul_STN_ST0, void, int) +DEF_HELPER_1(fsub_STN_ST0, void, int) +DEF_HELPER_1(fsubr_STN_ST0, void, int) +DEF_HELPER_1(fdiv_STN_ST0, void, int) +DEF_HELPER_1(fdivr_STN_ST0, void, int) +DEF_HELPER_0(fchs_ST0, void) +DEF_HELPER_0(fabs_ST0, void) +DEF_HELPER_0(fxam_ST0, void) +DEF_HELPER_0(fld1_ST0, void) +DEF_HELPER_0(fldl2t_ST0, void) +DEF_HELPER_0(fldl2e_ST0, void) +DEF_HELPER_0(fldpi_ST0, void) +DEF_HELPER_0(fldlg2_ST0, void) +DEF_HELPER_0(fldln2_ST0, void) +DEF_HELPER_0(fldz_ST0, void) +DEF_HELPER_0(fldz_FT0, void) +DEF_HELPER_0(fnstsw, i32) +DEF_HELPER_0(fnstcw, i32) +DEF_HELPER_1(fldcw, void, i32) +DEF_HELPER_0(fclex, void) +DEF_HELPER_0(fwait, void) +DEF_HELPER_0(fninit, void) +DEF_HELPER_1(fbld_ST0, void, tl) +DEF_HELPER_1(fbst_ST0, void, tl) +DEF_HELPER_0(f2xm1, void) +DEF_HELPER_0(fyl2x, void) +DEF_HELPER_0(fptan, void) +DEF_HELPER_0(fpatan, void) +DEF_HELPER_0(fxtract, void) +DEF_HELPER_0(fprem1, void) +DEF_HELPER_0(fprem, void) +DEF_HELPER_0(fyl2xp1, void) +DEF_HELPER_0(fsqrt, void) +DEF_HELPER_0(fsincos, void) +DEF_HELPER_0(frndint, void) +DEF_HELPER_0(fscale, void) +DEF_HELPER_0(fsin, void) +DEF_HELPER_0(fcos, void) +DEF_HELPER_2(fstenv, void, tl, int) +DEF_HELPER_2(fldenv, void, tl, int) +DEF_HELPER_2(fsave, void, tl, int) +DEF_HELPER_2(frstor, void, tl, int) +DEF_HELPER_2(fxsave, void, tl, int) +DEF_HELPER_2(fxrstor, void, tl, int) +DEF_HELPER_1(bsf, tl, tl) +DEF_HELPER_1(bsr, tl, tl) /* MMX/SSE */ -DEF_HELPER(void, helper_enter_mmx, (void)) -DEF_HELPER(void, helper_emms, (void)) -DEF_HELPER(void, helper_movq, (uint64_t *d, uint64_t *s)) +DEF_HELPER_0(enter_mmx, void) +DEF_HELPER_0(emms, void) +DEF_HELPER_2(movq, void, ptr, ptr) #define SHIFT 0 #include "ops_sse_header.h" #define SHIFT 1 #include "ops_sse_header.h" -DEF_HELPER(target_ulong, helper_rclb, (target_ulong t0, target_ulong t1)) -DEF_HELPER(target_ulong, helper_rclw, (target_ulong t0, target_ulong t1)) -DEF_HELPER(target_ulong, helper_rcll, (target_ulong t0, target_ulong t1)) -DEF_HELPER(target_ulong, helper_rcrb, (target_ulong t0, target_ulong t1)) -DEF_HELPER(target_ulong, helper_rcrw, (target_ulong t0, target_ulong t1)) -DEF_HELPER(target_ulong, helper_rcrl, (target_ulong t0, target_ulong t1)) +DEF_HELPER_2(rclb, tl, tl, tl) +DEF_HELPER_2(rclw, tl, tl, tl) +DEF_HELPER_2(rcll, tl, tl, tl) +DEF_HELPER_2(rcrb, tl, tl, tl) +DEF_HELPER_2(rcrw, tl, tl, tl) +DEF_HELPER_2(rcrl, tl, tl, tl) #ifdef TARGET_X86_64 -DEF_HELPER(target_ulong, helper_rclq, (target_ulong t0, target_ulong t1)) -DEF_HELPER(target_ulong, helper_rcrq, (target_ulong t0, target_ulong t1)) +DEF_HELPER_2(rclq, tl, tl, tl) +DEF_HELPER_2(rcrq, tl, tl, tl) #endif -#undef DEF_HELPER +#include "def-helper.h" |