X-Git-Url: https://repo.jachan.dev/qemu.git/blobdiff_plain/bcd2ee23ea2ade96427cada5f2967b769b43f373..822b635d903306e2ea0b7f835d4a5afc3a66e996:/target-ppc/helper.h diff --git a/target-ppc/helper.h b/target-ppc/helper.h index eadfadcb36..470e42f676 100644 --- a/target-ppc/helper.h +++ b/target-ppc/helper.h @@ -30,32 +30,28 @@ DEF_HELPER_1(dcbz_970, void, tl) DEF_HELPER_1(icbi, void, tl) DEF_HELPER_4(lscbx, tl, tl, i32, i32, i32) -DEF_HELPER_0(load_cr, tl) -DEF_HELPER_2(store_cr, void, tl, i32) - #if defined(TARGET_PPC64) -DEF_HELPER_2(mulhd, i64, i64, i64) -DEF_HELPER_2(mulhdu, i64, i64, i64) +DEF_HELPER_FLAGS_2(mulhd, TCG_CALL_CONST | TCG_CALL_PURE, i64, i64, i64) +DEF_HELPER_FLAGS_2(mulhdu, TCG_CALL_CONST | TCG_CALL_PURE, i64, i64, i64) DEF_HELPER_2(mulldo, i64, i64, i64) #endif -DEF_HELPER_1(cntlzw, tl, tl) -DEF_HELPER_1(popcntb, tl, tl) +DEF_HELPER_FLAGS_1(cntlzw, TCG_CALL_CONST | TCG_CALL_PURE, tl, tl) +DEF_HELPER_FLAGS_1(popcntb, TCG_CALL_CONST | TCG_CALL_PURE, tl, tl) +DEF_HELPER_FLAGS_1(popcntw, TCG_CALL_CONST | TCG_CALL_PURE, tl, tl) DEF_HELPER_2(sraw, tl, tl, tl) #if defined(TARGET_PPC64) -DEF_HELPER_1(cntlzd, tl, tl) -DEF_HELPER_1(popcntb_64, tl, tl) +DEF_HELPER_FLAGS_1(cntlzd, TCG_CALL_CONST | TCG_CALL_PURE, tl, tl) +DEF_HELPER_FLAGS_1(popcntd, TCG_CALL_CONST | TCG_CALL_PURE, tl, tl) DEF_HELPER_2(srad, tl, tl, tl) #endif -DEF_HELPER_1(cntlsw32, i32, i32) -DEF_HELPER_1(cntlzw32, i32, i32) -DEF_HELPER_2(brinc, tl, tl, tl) +DEF_HELPER_FLAGS_1(cntlsw32, TCG_CALL_CONST | TCG_CALL_PURE, i32, i32) +DEF_HELPER_FLAGS_1(cntlzw32, TCG_CALL_CONST | TCG_CALL_PURE, i32, i32) +DEF_HELPER_FLAGS_2(brinc, TCG_CALL_CONST | TCG_CALL_PURE, tl, tl, tl) DEF_HELPER_0(float_check_status, void) -#ifdef CONFIG_SOFTFLOAT DEF_HELPER_0(reset_fpstatus, void) -#endif DEF_HELPER_2(compute_fprf, i32, i64, i32) DEF_HELPER_2(store_fpscr, void, i64, i32) DEF_HELPER_1(fpscr_clrbit, void, i32) @@ -98,6 +94,7 @@ DEF_HELPER_3(fsel, i64, i64, i64, i64) #define dh_alias_avr ptr #define dh_ctype_avr ppc_avr_t * +#define dh_is_signed_avr dh_is_signed_ptr DEF_HELPER_3(vaddubm, void, avr, avr, avr) DEF_HELPER_3(vadduhm, void, avr, avr, avr) @@ -123,6 +120,32 @@ DEF_HELPER_3(vminuw, void, avr, avr, avr) DEF_HELPER_3(vmaxub, void, avr, avr, avr) DEF_HELPER_3(vmaxuh, void, avr, avr, avr) DEF_HELPER_3(vmaxuw, void, avr, avr, avr) +DEF_HELPER_3(vcmpequb, void, avr, avr, avr) +DEF_HELPER_3(vcmpequh, void, avr, avr, avr) +DEF_HELPER_3(vcmpequw, void, avr, avr, avr) +DEF_HELPER_3(vcmpgtub, void, avr, avr, avr) +DEF_HELPER_3(vcmpgtuh, void, avr, avr, avr) +DEF_HELPER_3(vcmpgtuw, void, avr, avr, avr) +DEF_HELPER_3(vcmpgtsb, void, avr, avr, avr) +DEF_HELPER_3(vcmpgtsh, void, avr, avr, avr) +DEF_HELPER_3(vcmpgtsw, void, avr, avr, avr) +DEF_HELPER_3(vcmpeqfp, void, avr, avr, avr) +DEF_HELPER_3(vcmpgefp, void, avr, avr, avr) +DEF_HELPER_3(vcmpgtfp, void, avr, avr, avr) +DEF_HELPER_3(vcmpbfp, void, avr, avr, avr) +DEF_HELPER_3(vcmpequb_dot, void, avr, avr, avr) +DEF_HELPER_3(vcmpequh_dot, void, avr, avr, avr) +DEF_HELPER_3(vcmpequw_dot, void, avr, avr, avr) +DEF_HELPER_3(vcmpgtub_dot, void, avr, avr, avr) +DEF_HELPER_3(vcmpgtuh_dot, void, avr, avr, avr) +DEF_HELPER_3(vcmpgtuw_dot, void, avr, avr, avr) +DEF_HELPER_3(vcmpgtsb_dot, void, avr, avr, avr) +DEF_HELPER_3(vcmpgtsh_dot, void, avr, avr, avr) +DEF_HELPER_3(vcmpgtsw_dot, void, avr, avr, avr) +DEF_HELPER_3(vcmpeqfp_dot, void, avr, avr, avr) +DEF_HELPER_3(vcmpgefp_dot, void, avr, avr, avr) +DEF_HELPER_3(vcmpgtfp_dot, void, avr, avr, avr) +DEF_HELPER_3(vcmpbfp_dot, void, avr, avr, avr) DEF_HELPER_3(vmrglb, void, avr, avr, avr) DEF_HELPER_3(vmrglh, void, avr, avr, avr) DEF_HELPER_3(vmrglw, void, avr, avr, avr) @@ -152,10 +175,27 @@ DEF_HELPER_3(vaddcuw, void, avr, avr, avr) DEF_HELPER_3(vsubcuw, void, avr, avr, avr) DEF_HELPER_2(lvsl, void, avr, tl); DEF_HELPER_2(lvsr, void, avr, tl); +DEF_HELPER_3(vaddsbs, void, avr, avr, avr) +DEF_HELPER_3(vaddshs, void, avr, avr, avr) +DEF_HELPER_3(vaddsws, void, avr, avr, avr) +DEF_HELPER_3(vsubsbs, void, avr, avr, avr) +DEF_HELPER_3(vsubshs, void, avr, avr, avr) +DEF_HELPER_3(vsubsws, void, avr, avr, avr) +DEF_HELPER_3(vaddubs, void, avr, avr, avr) +DEF_HELPER_3(vadduhs, void, avr, avr, avr) +DEF_HELPER_3(vadduws, void, avr, avr, avr) +DEF_HELPER_3(vsububs, void, avr, avr, avr) +DEF_HELPER_3(vsubuhs, void, avr, avr, avr) +DEF_HELPER_3(vsubuws, void, avr, avr, avr) DEF_HELPER_3(vrlb, void, avr, avr, avr) DEF_HELPER_3(vrlh, void, avr, avr, avr) DEF_HELPER_3(vrlw, void, avr, avr, avr) +DEF_HELPER_3(vsl, void, avr, avr, avr) +DEF_HELPER_3(vsr, void, avr, avr, avr) DEF_HELPER_4(vsldoi, void, avr, avr, avr, i32) +DEF_HELPER_2(vspltisb, void, avr, i32) +DEF_HELPER_2(vspltish, void, avr, i32) +DEF_HELPER_2(vspltisw, void, avr, i32) DEF_HELPER_3(vspltb, void, avr, avr, i32) DEF_HELPER_3(vsplth, void, avr, avr, i32) DEF_HELPER_3(vspltw, void, avr, avr, i32) @@ -185,6 +225,36 @@ DEF_HELPER_4(vmsumuhs, void, avr, avr, avr, avr) DEF_HELPER_4(vmsumshm, void, avr, avr, avr, avr) DEF_HELPER_4(vmsumshs, void, avr, avr, avr, avr) DEF_HELPER_4(vmladduhm, void, avr, avr, avr, avr) +DEF_HELPER_1(mtvscr, void, avr); +DEF_HELPER_2(lvebx, void, avr, tl) +DEF_HELPER_2(lvehx, void, avr, tl) +DEF_HELPER_2(lvewx, void, avr, tl) +DEF_HELPER_2(stvebx, void, avr, tl) +DEF_HELPER_2(stvehx, void, avr, tl) +DEF_HELPER_2(stvewx, void, avr, tl) +DEF_HELPER_3(vsumsws, void, avr, avr, avr) +DEF_HELPER_3(vsum2sws, void, avr, avr, avr) +DEF_HELPER_3(vsum4sbs, void, avr, avr, avr) +DEF_HELPER_3(vsum4shs, void, avr, avr, avr) +DEF_HELPER_3(vsum4ubs, void, avr, avr, avr) +DEF_HELPER_3(vaddfp, void, avr, avr, avr) +DEF_HELPER_3(vsubfp, void, avr, avr, avr) +DEF_HELPER_3(vmaxfp, void, avr, avr, avr) +DEF_HELPER_3(vminfp, void, avr, avr, avr) +DEF_HELPER_2(vrefp, void, avr, avr) +DEF_HELPER_2(vrsqrtefp, void, avr, avr) +DEF_HELPER_4(vmaddfp, void, avr, avr, avr, avr) +DEF_HELPER_4(vnmsubfp, void, avr, avr, avr, avr) +DEF_HELPER_2(vexptefp, void, avr, avr) +DEF_HELPER_2(vlogefp, void, avr, avr) +DEF_HELPER_2(vrfim, void, avr, avr) +DEF_HELPER_2(vrfin, void, avr, avr) +DEF_HELPER_2(vrfip, void, avr, avr) +DEF_HELPER_2(vrfiz, void, avr, avr) +DEF_HELPER_3(vcfux, void, avr, avr, i32) +DEF_HELPER_3(vcfsx, void, avr, avr, i32) +DEF_HELPER_3(vctuxs, void, avr, avr, i32) +DEF_HELPER_3(vctsxs, void, avr, avr, i32) DEF_HELPER_1(efscfsi, i32, i32) DEF_HELPER_1(efscfui, i32, i32) @@ -262,26 +332,33 @@ DEF_HELPER_1(4xx_tlbsx, tl, tl) DEF_HELPER_2(440_tlbre, tl, i32, tl) DEF_HELPER_3(440_tlbwe, void, i32, tl, tl) DEF_HELPER_1(440_tlbsx, tl, tl) +DEF_HELPER_0(booke206_tlbre, void) +DEF_HELPER_0(booke206_tlbwe, void) +DEF_HELPER_1(booke206_tlbsx, void, tl) +DEF_HELPER_1(booke206_tlbivax, void, tl) +DEF_HELPER_1(booke206_tlbflush, void, i32) +DEF_HELPER_2(booke_setpid, void, i32, tl) DEF_HELPER_1(6xx_tlbd, void, tl) DEF_HELPER_1(6xx_tlbi, void, tl) DEF_HELPER_1(74xx_tlbd, void, tl) DEF_HELPER_1(74xx_tlbi, void, tl) -DEF_HELPER_0(tlbia, void) -DEF_HELPER_1(tlbie, void, tl) +DEF_HELPER_FLAGS_0(tlbia, TCG_CALL_CONST, void) +DEF_HELPER_FLAGS_1(tlbie, TCG_CALL_CONST, void, tl) #if defined(TARGET_PPC64) -DEF_HELPER_1(load_slb, tl, tl) -DEF_HELPER_2(store_slb, void, tl, tl) -DEF_HELPER_0(slbia, void) -DEF_HELPER_1(slbie, void, tl) +DEF_HELPER_FLAGS_2(store_slb, TCG_CALL_CONST, void, tl, tl) +DEF_HELPER_1(load_slb_esid, tl, tl) +DEF_HELPER_1(load_slb_vsid, tl, tl) +DEF_HELPER_FLAGS_0(slbia, TCG_CALL_CONST, void) +DEF_HELPER_FLAGS_1(slbie, TCG_CALL_CONST, void, tl) #endif -DEF_HELPER_1(load_sr, tl, tl); -DEF_HELPER_2(store_sr, void, tl, tl) +DEF_HELPER_FLAGS_1(load_sr, TCG_CALL_CONST, tl, tl); +DEF_HELPER_FLAGS_2(store_sr, TCG_CALL_CONST, void, tl, tl) -DEF_HELPER_1(602_mfrom, tl, tl) +DEF_HELPER_FLAGS_1(602_mfrom, TCG_CALL_CONST | TCG_CALL_PURE, tl, tl) #endif DEF_HELPER_3(dlmzb, tl, tl, tl, i32) -DEF_HELPER_1(clcs, tl, i32) +DEF_HELPER_FLAGS_1(clcs, TCG_CALL_CONST | TCG_CALL_PURE, tl, i32) #if !defined(CONFIG_USER_ONLY) DEF_HELPER_1(rac, tl, tl) #endif @@ -304,6 +381,7 @@ DEF_HELPER_0(load_601_rtcu, tl) #if !defined(CONFIG_USER_ONLY) #if defined(TARGET_PPC64) DEF_HELPER_1(store_asr, void, tl) +DEF_HELPER_0(load_purr, tl) #endif DEF_HELPER_1(store_sdr1, void, tl) DEF_HELPER_1(store_tbl, void, tl)