From 779524873060001700bfd66de83cefad8faa8ea0 Mon Sep 17 00:00:00 2001 From: mio Date: Sun, 13 Apr 2025 01:13:39 +0800 Subject: [PATCH] Fix PPC symbol clash --- bindings/rust/sys/build.rs | 6 +- qemu/ppc.h | 263 ++++++++++++++++++++++++++++++++++ qemu/ppc64.h | 263 ++++++++++++++++++++++++++++++++++ qemu/target/ppc/fpu_helper.c | 2 +- qemu/target/ppc/unicorn.c | 2 +- qemu/tcg/ppc/tcg-target.inc.c | 7 - symbols.sh | 263 ++++++++++++++++++++++++++++++++++ 7 files changed, 794 insertions(+), 12 deletions(-) diff --git a/bindings/rust/sys/build.rs b/bindings/rust/sys/build.rs index beb55c40..be085a8d 100644 --- a/bindings/rust/sys/build.rs +++ b/bindings/rust/sys/build.rs @@ -83,9 +83,9 @@ fn build_with_cmake() { }; // GNU-specific linker flags (but not on macOS) - if compiler.is_like_gnu() && env::consts::OS != "macos" { - println!("cargo:rustc-link-arg=-Wl,-allow-multiple-definition"); - } + // if compiler.is_like_gnu() && env::consts::OS != "macos" { + // println!("cargo:rustc-link-arg=-Wl,-allow-multiple-definition"); + // } // Configure build generator if has_ninja { diff --git a/qemu/ppc.h b/qemu/ppc.h index ee63c633..c7676e72 100644 --- a/qemu/ppc.h +++ b/qemu/ppc.h @@ -1729,4 +1729,267 @@ #define gen_helper_store_booke_tcr gen_helper_store_booke_tcr_ppc #define store_booke_tcr store_booke_tcr_ppc #define ppc_hash32_get_phys_page_debug ppc_hash32_get_phys_page_debug_ppc +#define helper_fadd helper_fadd_ppc +#define helper_todouble helper_todouble_ppc +#define helper_tosingle helper_tosingle_ppc +#define helper_compute_fprf_float16 helper_compute_fprf_float16_ppc +#define helper_compute_fprf_float32 helper_compute_fprf_float32_ppc +#define helper_compute_fprf_float64 helper_compute_fprf_float64_ppc +#define helper_compute_fprf_float128 helper_compute_fprf_float128_ppc +#define helper_fpscr_clrbit helper_fpscr_clrbit_ppc +#define helper_fpscr_setbit helper_fpscr_setbit_ppc +#define helper_store_fpscr helper_store_fpscr_ppc +#define helper_float_check_status helper_float_check_status_ppc +#define helper_reset_fpstatus helper_reset_fpstatus_ppc +#define helper_fsub helper_fsub_ppc +#define helper_fmul helper_fmul_ppc +#define helper_fdiv helper_fdiv_ppc +#define helper_fctiw helper_fctiw_ppc +#define helper_fctiwz helper_fctiwz_ppc +#define helper_fctiwu helper_fctiwu_ppc +#define helper_fctiwuz helper_fctiwuz_ppc +#define helper_fctid helper_fctid_ppc +#define helper_fctidz helper_fctidz_ppc +#define helper_fctidu helper_fctidu_ppc +#define helper_fctiduz helper_fctiduz_ppc +#define helper_fcfid helper_fcfid_ppc +#define helper_fcfids helper_fcfids_ppc +#define helper_fcfidu helper_fcfidu_ppc +#define helper_fcfidus helper_fcfidus_ppc +#define helper_frin helper_frin_ppc +#define helper_friz helper_friz_ppc +#define helper_frip helper_frip_ppc +#define helper_frim helper_frim_ppc +#define helper_fmadd helper_fmadd_ppc +#define helper_fnmadd helper_fnmadd_ppc +#define helper_fmsub helper_fmsub_ppc +#define helper_fnmsub helper_fnmsub_ppc +#define helper_frsp helper_frsp_ppc +#define helper_fsqrt helper_fsqrt_ppc +#define helper_fre helper_fre_ppc +#define helper_fres helper_fres_ppc +#define helper_frsqrte helper_frsqrte_ppc +#define helper_fsel helper_fsel_ppc +#define helper_ftdiv helper_ftdiv_ppc +#define helper_ftsqrt helper_ftsqrt_ppc +#define helper_fcmpu helper_fcmpu_ppc +#define helper_fcmpo helper_fcmpo_ppc +#define helper_efscfsi helper_efscfsi_ppc +#define helper_efscfui helper_efscfui_ppc +#define helper_efscfuf helper_efscfuf_ppc +#define helper_efscfsf helper_efscfsf_ppc +#define helper_efsctsi helper_efsctsi_ppc +#define helper_efsctui helper_efsctui_ppc +#define helper_efsctsiz helper_efsctsiz_ppc +#define helper_efsctuiz helper_efsctuiz_ppc +#define helper_efsctsf helper_efsctsf_ppc +#define helper_efsctuf helper_efsctuf_ppc +#define helper_evfscfsi helper_evfscfsi_ppc +#define helper_evfscfui helper_evfscfui_ppc +#define helper_evfscfuf helper_evfscfuf_ppc +#define helper_evfscfsf helper_evfscfsf_ppc +#define helper_evfsctsi helper_evfsctsi_ppc +#define helper_evfsctui helper_evfsctui_ppc +#define helper_evfsctsiz helper_evfsctsiz_ppc +#define helper_evfsctuiz helper_evfsctuiz_ppc +#define helper_evfsctsf helper_evfsctsf_ppc +#define helper_evfsctuf helper_evfsctuf_ppc +#define helper_efsadd helper_efsadd_ppc +#define helper_efssub helper_efssub_ppc +#define helper_efsmul helper_efsmul_ppc +#define helper_efsdiv helper_efsdiv_ppc +#define helper_evfsadd helper_evfsadd_ppc +#define helper_evfssub helper_evfssub_ppc +#define helper_evfsmul helper_evfsmul_ppc +#define helper_evfsdiv helper_evfsdiv_ppc +#define helper_efststlt helper_efststlt_ppc +#define helper_efststgt helper_efststgt_ppc +#define helper_efststeq helper_efststeq_ppc +#define helper_efscmplt helper_efscmplt_ppc +#define helper_efscmpgt helper_efscmpgt_ppc +#define helper_efscmpeq helper_efscmpeq_ppc +#define helper_evfststlt helper_evfststlt_ppc +#define helper_evfststgt helper_evfststgt_ppc +#define helper_evfststeq helper_evfststeq_ppc +#define helper_evfscmplt helper_evfscmplt_ppc +#define helper_evfscmpgt helper_evfscmpgt_ppc +#define helper_evfscmpeq helper_evfscmpeq_ppc +#define helper_efdcfsi helper_efdcfsi_ppc +#define helper_efdcfsid helper_efdcfsid_ppc +#define helper_efdcfui helper_efdcfui_ppc +#define helper_efdcfuid helper_efdcfuid_ppc +#define helper_efdctsi helper_efdctsi_ppc +#define helper_efdctui helper_efdctui_ppc +#define helper_efdctsiz helper_efdctsiz_ppc +#define helper_efdctsidz helper_efdctsidz_ppc +#define helper_efdctuiz helper_efdctuiz_ppc +#define helper_efdctuidz helper_efdctuidz_ppc +#define helper_efdcfsf helper_efdcfsf_ppc +#define helper_efdcfuf helper_efdcfuf_ppc +#define helper_efdctsf helper_efdctsf_ppc +#define helper_efdctuf helper_efdctuf_ppc +#define helper_efscfd helper_efscfd_ppc +#define helper_efdcfs helper_efdcfs_ppc +#define helper_efdadd helper_efdadd_ppc +#define helper_efdsub helper_efdsub_ppc +#define helper_efdmul helper_efdmul_ppc +#define helper_efddiv helper_efddiv_ppc +#define helper_efdtstlt helper_efdtstlt_ppc +#define helper_efdtstgt helper_efdtstgt_ppc +#define helper_efdtsteq helper_efdtsteq_ppc +#define helper_efdcmplt helper_efdcmplt_ppc +#define helper_efdcmpgt helper_efdcmpgt_ppc +#define helper_efdcmpeq helper_efdcmpeq_ppc +#define helper_xsadddp helper_xsadddp_ppc +#define helper_xsaddsp helper_xsaddsp_ppc +#define helper_xvadddp helper_xvadddp_ppc +#define helper_xvaddsp helper_xvaddsp_ppc +#define helper_xssubdp helper_xssubdp_ppc +#define helper_xssubsp helper_xssubsp_ppc +#define helper_xvsubdp helper_xvsubdp_ppc +#define helper_xvsubsp helper_xvsubsp_ppc +#define helper_xsaddqp helper_xsaddqp_ppc +#define helper_xsmuldp helper_xsmuldp_ppc +#define helper_xsmulsp helper_xsmulsp_ppc +#define helper_xvmuldp helper_xvmuldp_ppc +#define helper_xvmulsp helper_xvmulsp_ppc +#define helper_xsmulqp helper_xsmulqp_ppc +#define helper_xsdivdp helper_xsdivdp_ppc +#define helper_xsdivsp helper_xsdivsp_ppc +#define helper_xvdivdp helper_xvdivdp_ppc +#define helper_xvdivsp helper_xvdivsp_ppc +#define helper_xsdivqp helper_xsdivqp_ppc +#define helper_xsredp helper_xsredp_ppc +#define helper_xsresp helper_xsresp_ppc +#define helper_xvredp helper_xvredp_ppc +#define helper_xvresp helper_xvresp_ppc +#define helper_xssqrtdp helper_xssqrtdp_ppc +#define helper_xssqrtsp helper_xssqrtsp_ppc +#define helper_xvsqrtdp helper_xvsqrtdp_ppc +#define helper_xvsqrtsp helper_xvsqrtsp_ppc +#define helper_xsrsqrtedp helper_xsrsqrtedp_ppc +#define helper_xsrsqrtesp helper_xsrsqrtesp_ppc +#define helper_xvrsqrtedp helper_xvrsqrtedp_ppc +#define helper_xvrsqrtesp helper_xvrsqrtesp_ppc +#define helper_xstdivdp helper_xstdivdp_ppc +#define helper_xvtdivdp helper_xvtdivdp_ppc +#define helper_xvtdivsp helper_xvtdivsp_ppc +#define helper_xstsqrtdp helper_xstsqrtdp_ppc +#define helper_xvtsqrtdp helper_xvtsqrtdp_ppc +#define helper_xvtsqrtsp helper_xvtsqrtsp_ppc +#define helper_xsmadddp helper_xsmadddp_ppc +#define helper_xsmsubdp helper_xsmsubdp_ppc +#define helper_xsnmadddp helper_xsnmadddp_ppc +#define helper_xsnmsubdp helper_xsnmsubdp_ppc +#define helper_xsmaddsp helper_xsmaddsp_ppc +#define helper_xsmsubsp helper_xsmsubsp_ppc +#define helper_xsnmaddsp helper_xsnmaddsp_ppc +#define helper_xsnmsubsp helper_xsnmsubsp_ppc +#define helper_xvmadddp helper_xvmadddp_ppc +#define helper_xvmsubdp helper_xvmsubdp_ppc +#define helper_xvnmadddp helper_xvnmadddp_ppc +#define helper_xvnmsubdp helper_xvnmsubdp_ppc +#define helper_xvmaddsp helper_xvmaddsp_ppc +#define helper_xvmsubsp helper_xvmsubsp_ppc +#define helper_xvnmaddsp helper_xvnmaddsp_ppc +#define helper_xvnmsubsp helper_xvnmsubsp_ppc +#define helper_xscmpeqdp helper_xscmpeqdp_ppc +#define helper_xscmpgedp helper_xscmpgedp_ppc +#define helper_xscmpgtdp helper_xscmpgtdp_ppc +#define helper_xscmpnedp helper_xscmpnedp_ppc +#define helper_xscmpexpdp helper_xscmpexpdp_ppc +#define helper_xscmpexpqp helper_xscmpexpqp_ppc +#define helper_xscmpodp helper_xscmpodp_ppc +#define helper_xscmpudp helper_xscmpudp_ppc +#define helper_xscmpoqp helper_xscmpoqp_ppc +#define helper_xscmpuqp helper_xscmpuqp_ppc +#define helper_xsmaxdp helper_xsmaxdp_ppc +#define helper_xvmaxdp helper_xvmaxdp_ppc +#define helper_xvmaxsp helper_xvmaxsp_ppc +#define helper_xsmindp helper_xsmindp_ppc +#define helper_xvmindp helper_xvmindp_ppc +#define helper_xvminsp helper_xvminsp_ppc +#define helper_xsmaxcdp helper_xsmaxcdp_ppc +#define helper_xsmincdp helper_xsmincdp_ppc +#define helper_xsmaxjdp helper_xsmaxjdp_ppc +#define helper_xsminjdp helper_xsminjdp_ppc +#define helper_xvcmpeqdp helper_xvcmpeqdp_ppc +#define helper_xvcmpgedp helper_xvcmpgedp_ppc +#define helper_xvcmpgtdp helper_xvcmpgtdp_ppc +#define helper_xvcmpnedp helper_xvcmpnedp_ppc +#define helper_xvcmpeqsp helper_xvcmpeqsp_ppc +#define helper_xvcmpgesp helper_xvcmpgesp_ppc +#define helper_xvcmpgtsp helper_xvcmpgtsp_ppc +#define helper_xvcmpnesp helper_xvcmpnesp_ppc +#define helper_xscvdpsp helper_xscvdpsp_ppc +#define helper_xscvspdp helper_xscvspdp_ppc +#define helper_xvcvdpsp helper_xvcvdpsp_ppc +#define helper_xvcvspdp helper_xvcvspdp_ppc +#define helper_xscvdpqp helper_xscvdpqp_ppc +#define helper_xscvdphp helper_xscvdphp_ppc +#define helper_xscvhpdp helper_xscvhpdp_ppc +#define helper_xvcvsphp helper_xvcvsphp_ppc +#define helper_xvcvhpsp helper_xvcvhpsp_ppc +#define helper_xscvqpdp helper_xscvqpdp_ppc +#define helper_xscvdpspn helper_xscvdpspn_ppc +#define helper_xscvspdpn helper_xscvspdpn_ppc +#define helper_xscvdpsxds helper_xscvdpsxds_ppc +#define helper_xscvdpsxws helper_xscvdpsxws_ppc +#define helper_xscvdpuxds helper_xscvdpuxds_ppc +#define helper_xscvdpuxws helper_xscvdpuxws_ppc +#define helper_xvcvdpsxds helper_xvcvdpsxds_ppc +#define helper_xvcvdpsxws helper_xvcvdpsxws_ppc +#define helper_xvcvdpuxds helper_xvcvdpuxds_ppc +#define helper_xvcvdpuxws helper_xvcvdpuxws_ppc +#define helper_xvcvspsxds helper_xvcvspsxds_ppc +#define helper_xvcvspsxws helper_xvcvspsxws_ppc +#define helper_xvcvspuxds helper_xvcvspuxds_ppc +#define helper_xvcvspuxws helper_xvcvspuxws_ppc +#define helper_xscvqpsdz helper_xscvqpsdz_ppc +#define helper_xscvqpswz helper_xscvqpswz_ppc +#define helper_xscvqpudz helper_xscvqpudz_ppc +#define helper_xscvqpuwz helper_xscvqpuwz_ppc +#define helper_xscvsxddp helper_xscvsxddp_ppc +#define helper_xscvuxddp helper_xscvuxddp_ppc +#define helper_xscvsxdsp helper_xscvsxdsp_ppc +#define helper_xscvuxdsp helper_xscvuxdsp_ppc +#define helper_xvcvsxddp helper_xvcvsxddp_ppc +#define helper_xvcvuxddp helper_xvcvuxddp_ppc +#define helper_xvcvsxwdp helper_xvcvsxwdp_ppc +#define helper_xvcvuxwdp helper_xvcvuxwdp_ppc +#define helper_xvcvsxdsp helper_xvcvsxdsp_ppc +#define helper_xvcvuxdsp helper_xvcvuxdsp_ppc +#define helper_xvcvsxwsp helper_xvcvsxwsp_ppc +#define helper_xvcvuxwsp helper_xvcvuxwsp_ppc +#define helper_xscvsdqp helper_xscvsdqp_ppc +#define helper_xscvudqp helper_xscvudqp_ppc +#define helper_xsrdpi helper_xsrdpi_ppc +#define helper_xsrdpic helper_xsrdpic_ppc +#define helper_xsrdpim helper_xsrdpim_ppc +#define helper_xsrdpip helper_xsrdpip_ppc +#define helper_xsrdpiz helper_xsrdpiz_ppc +#define helper_xvrdpi helper_xvrdpi_ppc +#define helper_xvrdpic helper_xvrdpic_ppc +#define helper_xvrdpim helper_xvrdpim_ppc +#define helper_xvrdpip helper_xvrdpip_ppc +#define helper_xvrdpiz helper_xvrdpiz_ppc +#define helper_xvrspi helper_xvrspi_ppc +#define helper_xvrspic helper_xvrspic_ppc +#define helper_xvrspim helper_xvrspim_ppc +#define helper_xvrspip helper_xvrspip_ppc +#define helper_xvrspiz helper_xvrspiz_ppc +#define helper_xsrsp helper_xsrsp_ppc +#define helper_xxperm helper_xxperm_ppc +#define helper_xxpermr helper_xxpermr_ppc +#define helper_xvxsigsp helper_xvxsigsp_ppc +#define helper_xvtstdcdp helper_xvtstdcdp_ppc +#define helper_xvtstdcsp helper_xvtstdcsp_ppc +#define helper_xststdcdp helper_xststdcdp_ppc +#define helper_xststdcqp helper_xststdcqp_ppc +#define helper_xststdcsp helper_xststdcsp_ppc +#define helper_xsrqpi helper_xsrqpi_ppc +#define helper_xsrqpxp helper_xsrqpxp_ppc +#define helper_xssqrtqp helper_xssqrtqp_ppc +#define helper_xssubqp helper_xssubqp_ppc +#define do_store_fpscr do_store_fpscr_ppc #endif diff --git a/qemu/ppc64.h b/qemu/ppc64.h index 45c0f577..23c1a850 100644 --- a/qemu/ppc64.h +++ b/qemu/ppc64.h @@ -1729,4 +1729,267 @@ #define gen_helper_store_booke_tcr gen_helper_store_booke_tcr_ppc64 #define store_booke_tcr store_booke_tcr_ppc64 #define ppc_hash32_get_phys_page_debug ppc_hash32_get_phys_page_debug_ppc64 +#define helper_fadd helper_fadd_ppc64 +#define helper_todouble helper_todouble_ppc64 +#define helper_tosingle helper_tosingle_ppc64 +#define helper_compute_fprf_float16 helper_compute_fprf_float16_ppc64 +#define helper_compute_fprf_float32 helper_compute_fprf_float32_ppc64 +#define helper_compute_fprf_float64 helper_compute_fprf_float64_ppc64 +#define helper_compute_fprf_float128 helper_compute_fprf_float128_ppc64 +#define helper_fpscr_clrbit helper_fpscr_clrbit_ppc64 +#define helper_fpscr_setbit helper_fpscr_setbit_ppc64 +#define helper_store_fpscr helper_store_fpscr_ppc64 +#define helper_float_check_status helper_float_check_status_ppc64 +#define helper_reset_fpstatus helper_reset_fpstatus_ppc64 +#define helper_fsub helper_fsub_ppc64 +#define helper_fmul helper_fmul_ppc64 +#define helper_fdiv helper_fdiv_ppc64 +#define helper_fctiw helper_fctiw_ppc64 +#define helper_fctiwz helper_fctiwz_ppc64 +#define helper_fctiwu helper_fctiwu_ppc64 +#define helper_fctiwuz helper_fctiwuz_ppc64 +#define helper_fctid helper_fctid_ppc64 +#define helper_fctidz helper_fctidz_ppc64 +#define helper_fctidu helper_fctidu_ppc64 +#define helper_fctiduz helper_fctiduz_ppc64 +#define helper_fcfid helper_fcfid_ppc64 +#define helper_fcfids helper_fcfids_ppc64 +#define helper_fcfidu helper_fcfidu_ppc64 +#define helper_fcfidus helper_fcfidus_ppc64 +#define helper_frin helper_frin_ppc64 +#define helper_friz helper_friz_ppc64 +#define helper_frip helper_frip_ppc64 +#define helper_frim helper_frim_ppc64 +#define helper_fmadd helper_fmadd_ppc64 +#define helper_fnmadd helper_fnmadd_ppc64 +#define helper_fmsub helper_fmsub_ppc64 +#define helper_fnmsub helper_fnmsub_ppc64 +#define helper_frsp helper_frsp_ppc64 +#define helper_fsqrt helper_fsqrt_ppc64 +#define helper_fre helper_fre_ppc64 +#define helper_fres helper_fres_ppc64 +#define helper_frsqrte helper_frsqrte_ppc64 +#define helper_fsel helper_fsel_ppc64 +#define helper_ftdiv helper_ftdiv_ppc64 +#define helper_ftsqrt helper_ftsqrt_ppc64 +#define helper_fcmpu helper_fcmpu_ppc64 +#define helper_fcmpo helper_fcmpo_ppc64 +#define helper_efscfsi helper_efscfsi_ppc64 +#define helper_efscfui helper_efscfui_ppc64 +#define helper_efscfuf helper_efscfuf_ppc64 +#define helper_efscfsf helper_efscfsf_ppc64 +#define helper_efsctsi helper_efsctsi_ppc64 +#define helper_efsctui helper_efsctui_ppc64 +#define helper_efsctsiz helper_efsctsiz_ppc64 +#define helper_efsctuiz helper_efsctuiz_ppc64 +#define helper_efsctsf helper_efsctsf_ppc64 +#define helper_efsctuf helper_efsctuf_ppc64 +#define helper_evfscfsi helper_evfscfsi_ppc64 +#define helper_evfscfui helper_evfscfui_ppc64 +#define helper_evfscfuf helper_evfscfuf_ppc64 +#define helper_evfscfsf helper_evfscfsf_ppc64 +#define helper_evfsctsi helper_evfsctsi_ppc64 +#define helper_evfsctui helper_evfsctui_ppc64 +#define helper_evfsctsiz helper_evfsctsiz_ppc64 +#define helper_evfsctuiz helper_evfsctuiz_ppc64 +#define helper_evfsctsf helper_evfsctsf_ppc64 +#define helper_evfsctuf helper_evfsctuf_ppc64 +#define helper_efsadd helper_efsadd_ppc64 +#define helper_efssub helper_efssub_ppc64 +#define helper_efsmul helper_efsmul_ppc64 +#define helper_efsdiv helper_efsdiv_ppc64 +#define helper_evfsadd helper_evfsadd_ppc64 +#define helper_evfssub helper_evfssub_ppc64 +#define helper_evfsmul helper_evfsmul_ppc64 +#define helper_evfsdiv helper_evfsdiv_ppc64 +#define helper_efststlt helper_efststlt_ppc64 +#define helper_efststgt helper_efststgt_ppc64 +#define helper_efststeq helper_efststeq_ppc64 +#define helper_efscmplt helper_efscmplt_ppc64 +#define helper_efscmpgt helper_efscmpgt_ppc64 +#define helper_efscmpeq helper_efscmpeq_ppc64 +#define helper_evfststlt helper_evfststlt_ppc64 +#define helper_evfststgt helper_evfststgt_ppc64 +#define helper_evfststeq helper_evfststeq_ppc64 +#define helper_evfscmplt helper_evfscmplt_ppc64 +#define helper_evfscmpgt helper_evfscmpgt_ppc64 +#define helper_evfscmpeq helper_evfscmpeq_ppc64 +#define helper_efdcfsi helper_efdcfsi_ppc64 +#define helper_efdcfsid helper_efdcfsid_ppc64 +#define helper_efdcfui helper_efdcfui_ppc64 +#define helper_efdcfuid helper_efdcfuid_ppc64 +#define helper_efdctsi helper_efdctsi_ppc64 +#define helper_efdctui helper_efdctui_ppc64 +#define helper_efdctsiz helper_efdctsiz_ppc64 +#define helper_efdctsidz helper_efdctsidz_ppc64 +#define helper_efdctuiz helper_efdctuiz_ppc64 +#define helper_efdctuidz helper_efdctuidz_ppc64 +#define helper_efdcfsf helper_efdcfsf_ppc64 +#define helper_efdcfuf helper_efdcfuf_ppc64 +#define helper_efdctsf helper_efdctsf_ppc64 +#define helper_efdctuf helper_efdctuf_ppc64 +#define helper_efscfd helper_efscfd_ppc64 +#define helper_efdcfs helper_efdcfs_ppc64 +#define helper_efdadd helper_efdadd_ppc64 +#define helper_efdsub helper_efdsub_ppc64 +#define helper_efdmul helper_efdmul_ppc64 +#define helper_efddiv helper_efddiv_ppc64 +#define helper_efdtstlt helper_efdtstlt_ppc64 +#define helper_efdtstgt helper_efdtstgt_ppc64 +#define helper_efdtsteq helper_efdtsteq_ppc64 +#define helper_efdcmplt helper_efdcmplt_ppc64 +#define helper_efdcmpgt helper_efdcmpgt_ppc64 +#define helper_efdcmpeq helper_efdcmpeq_ppc64 +#define helper_xsadddp helper_xsadddp_ppc64 +#define helper_xsaddsp helper_xsaddsp_ppc64 +#define helper_xvadddp helper_xvadddp_ppc64 +#define helper_xvaddsp helper_xvaddsp_ppc64 +#define helper_xssubdp helper_xssubdp_ppc64 +#define helper_xssubsp helper_xssubsp_ppc64 +#define helper_xvsubdp helper_xvsubdp_ppc64 +#define helper_xvsubsp helper_xvsubsp_ppc64 +#define helper_xsaddqp helper_xsaddqp_ppc64 +#define helper_xsmuldp helper_xsmuldp_ppc64 +#define helper_xsmulsp helper_xsmulsp_ppc64 +#define helper_xvmuldp helper_xvmuldp_ppc64 +#define helper_xvmulsp helper_xvmulsp_ppc64 +#define helper_xsmulqp helper_xsmulqp_ppc64 +#define helper_xsdivdp helper_xsdivdp_ppc64 +#define helper_xsdivsp helper_xsdivsp_ppc64 +#define helper_xvdivdp helper_xvdivdp_ppc64 +#define helper_xvdivsp helper_xvdivsp_ppc64 +#define helper_xsdivqp helper_xsdivqp_ppc64 +#define helper_xsredp helper_xsredp_ppc64 +#define helper_xsresp helper_xsresp_ppc64 +#define helper_xvredp helper_xvredp_ppc64 +#define helper_xvresp helper_xvresp_ppc64 +#define helper_xssqrtdp helper_xssqrtdp_ppc64 +#define helper_xssqrtsp helper_xssqrtsp_ppc64 +#define helper_xvsqrtdp helper_xvsqrtdp_ppc64 +#define helper_xvsqrtsp helper_xvsqrtsp_ppc64 +#define helper_xsrsqrtedp helper_xsrsqrtedp_ppc64 +#define helper_xsrsqrtesp helper_xsrsqrtesp_ppc64 +#define helper_xvrsqrtedp helper_xvrsqrtedp_ppc64 +#define helper_xvrsqrtesp helper_xvrsqrtesp_ppc64 +#define helper_xstdivdp helper_xstdivdp_ppc64 +#define helper_xvtdivdp helper_xvtdivdp_ppc64 +#define helper_xvtdivsp helper_xvtdivsp_ppc64 +#define helper_xstsqrtdp helper_xstsqrtdp_ppc64 +#define helper_xvtsqrtdp helper_xvtsqrtdp_ppc64 +#define helper_xvtsqrtsp helper_xvtsqrtsp_ppc64 +#define helper_xsmadddp helper_xsmadddp_ppc64 +#define helper_xsmsubdp helper_xsmsubdp_ppc64 +#define helper_xsnmadddp helper_xsnmadddp_ppc64 +#define helper_xsnmsubdp helper_xsnmsubdp_ppc64 +#define helper_xsmaddsp helper_xsmaddsp_ppc64 +#define helper_xsmsubsp helper_xsmsubsp_ppc64 +#define helper_xsnmaddsp helper_xsnmaddsp_ppc64 +#define helper_xsnmsubsp helper_xsnmsubsp_ppc64 +#define helper_xvmadddp helper_xvmadddp_ppc64 +#define helper_xvmsubdp helper_xvmsubdp_ppc64 +#define helper_xvnmadddp helper_xvnmadddp_ppc64 +#define helper_xvnmsubdp helper_xvnmsubdp_ppc64 +#define helper_xvmaddsp helper_xvmaddsp_ppc64 +#define helper_xvmsubsp helper_xvmsubsp_ppc64 +#define helper_xvnmaddsp helper_xvnmaddsp_ppc64 +#define helper_xvnmsubsp helper_xvnmsubsp_ppc64 +#define helper_xscmpeqdp helper_xscmpeqdp_ppc64 +#define helper_xscmpgedp helper_xscmpgedp_ppc64 +#define helper_xscmpgtdp helper_xscmpgtdp_ppc64 +#define helper_xscmpnedp helper_xscmpnedp_ppc64 +#define helper_xscmpexpdp helper_xscmpexpdp_ppc64 +#define helper_xscmpexpqp helper_xscmpexpqp_ppc64 +#define helper_xscmpodp helper_xscmpodp_ppc64 +#define helper_xscmpudp helper_xscmpudp_ppc64 +#define helper_xscmpoqp helper_xscmpoqp_ppc64 +#define helper_xscmpuqp helper_xscmpuqp_ppc64 +#define helper_xsmaxdp helper_xsmaxdp_ppc64 +#define helper_xvmaxdp helper_xvmaxdp_ppc64 +#define helper_xvmaxsp helper_xvmaxsp_ppc64 +#define helper_xsmindp helper_xsmindp_ppc64 +#define helper_xvmindp helper_xvmindp_ppc64 +#define helper_xvminsp helper_xvminsp_ppc64 +#define helper_xsmaxcdp helper_xsmaxcdp_ppc64 +#define helper_xsmincdp helper_xsmincdp_ppc64 +#define helper_xsmaxjdp helper_xsmaxjdp_ppc64 +#define helper_xsminjdp helper_xsminjdp_ppc64 +#define helper_xvcmpeqdp helper_xvcmpeqdp_ppc64 +#define helper_xvcmpgedp helper_xvcmpgedp_ppc64 +#define helper_xvcmpgtdp helper_xvcmpgtdp_ppc64 +#define helper_xvcmpnedp helper_xvcmpnedp_ppc64 +#define helper_xvcmpeqsp helper_xvcmpeqsp_ppc64 +#define helper_xvcmpgesp helper_xvcmpgesp_ppc64 +#define helper_xvcmpgtsp helper_xvcmpgtsp_ppc64 +#define helper_xvcmpnesp helper_xvcmpnesp_ppc64 +#define helper_xscvdpsp helper_xscvdpsp_ppc64 +#define helper_xscvspdp helper_xscvspdp_ppc64 +#define helper_xvcvdpsp helper_xvcvdpsp_ppc64 +#define helper_xvcvspdp helper_xvcvspdp_ppc64 +#define helper_xscvdpqp helper_xscvdpqp_ppc64 +#define helper_xscvdphp helper_xscvdphp_ppc64 +#define helper_xscvhpdp helper_xscvhpdp_ppc64 +#define helper_xvcvsphp helper_xvcvsphp_ppc64 +#define helper_xvcvhpsp helper_xvcvhpsp_ppc64 +#define helper_xscvqpdp helper_xscvqpdp_ppc64 +#define helper_xscvdpspn helper_xscvdpspn_ppc64 +#define helper_xscvspdpn helper_xscvspdpn_ppc64 +#define helper_xscvdpsxds helper_xscvdpsxds_ppc64 +#define helper_xscvdpsxws helper_xscvdpsxws_ppc64 +#define helper_xscvdpuxds helper_xscvdpuxds_ppc64 +#define helper_xscvdpuxws helper_xscvdpuxws_ppc64 +#define helper_xvcvdpsxds helper_xvcvdpsxds_ppc64 +#define helper_xvcvdpsxws helper_xvcvdpsxws_ppc64 +#define helper_xvcvdpuxds helper_xvcvdpuxds_ppc64 +#define helper_xvcvdpuxws helper_xvcvdpuxws_ppc64 +#define helper_xvcvspsxds helper_xvcvspsxds_ppc64 +#define helper_xvcvspsxws helper_xvcvspsxws_ppc64 +#define helper_xvcvspuxds helper_xvcvspuxds_ppc64 +#define helper_xvcvspuxws helper_xvcvspuxws_ppc64 +#define helper_xscvqpsdz helper_xscvqpsdz_ppc64 +#define helper_xscvqpswz helper_xscvqpswz_ppc64 +#define helper_xscvqpudz helper_xscvqpudz_ppc64 +#define helper_xscvqpuwz helper_xscvqpuwz_ppc64 +#define helper_xscvsxddp helper_xscvsxddp_ppc64 +#define helper_xscvuxddp helper_xscvuxddp_ppc64 +#define helper_xscvsxdsp helper_xscvsxdsp_ppc64 +#define helper_xscvuxdsp helper_xscvuxdsp_ppc64 +#define helper_xvcvsxddp helper_xvcvsxddp_ppc64 +#define helper_xvcvuxddp helper_xvcvuxddp_ppc64 +#define helper_xvcvsxwdp helper_xvcvsxwdp_ppc64 +#define helper_xvcvuxwdp helper_xvcvuxwdp_ppc64 +#define helper_xvcvsxdsp helper_xvcvsxdsp_ppc64 +#define helper_xvcvuxdsp helper_xvcvuxdsp_ppc64 +#define helper_xvcvsxwsp helper_xvcvsxwsp_ppc64 +#define helper_xvcvuxwsp helper_xvcvuxwsp_ppc64 +#define helper_xscvsdqp helper_xscvsdqp_ppc64 +#define helper_xscvudqp helper_xscvudqp_ppc64 +#define helper_xsrdpi helper_xsrdpi_ppc64 +#define helper_xsrdpic helper_xsrdpic_ppc64 +#define helper_xsrdpim helper_xsrdpim_ppc64 +#define helper_xsrdpip helper_xsrdpip_ppc64 +#define helper_xsrdpiz helper_xsrdpiz_ppc64 +#define helper_xvrdpi helper_xvrdpi_ppc64 +#define helper_xvrdpic helper_xvrdpic_ppc64 +#define helper_xvrdpim helper_xvrdpim_ppc64 +#define helper_xvrdpip helper_xvrdpip_ppc64 +#define helper_xvrdpiz helper_xvrdpiz_ppc64 +#define helper_xvrspi helper_xvrspi_ppc64 +#define helper_xvrspic helper_xvrspic_ppc64 +#define helper_xvrspim helper_xvrspim_ppc64 +#define helper_xvrspip helper_xvrspip_ppc64 +#define helper_xvrspiz helper_xvrspiz_ppc64 +#define helper_xsrsp helper_xsrsp_ppc64 +#define helper_xxperm helper_xxperm_ppc64 +#define helper_xxpermr helper_xxpermr_ppc64 +#define helper_xvxsigsp helper_xvxsigsp_ppc64 +#define helper_xvtstdcdp helper_xvtstdcdp_ppc64 +#define helper_xvtstdcsp helper_xvtstdcsp_ppc64 +#define helper_xststdcdp helper_xststdcdp_ppc64 +#define helper_xststdcqp helper_xststdcqp_ppc64 +#define helper_xststdcsp helper_xststdcsp_ppc64 +#define helper_xsrqpi helper_xsrqpi_ppc64 +#define helper_xsrqpxp helper_xsrqpxp_ppc64 +#define helper_xssqrtqp helper_xssqrtqp_ppc64 +#define helper_xssubqp helper_xssubqp_ppc64 +#define do_store_fpscr do_store_fpscr_ppc64 #endif diff --git a/qemu/target/ppc/fpu_helper.c b/qemu/target/ppc/fpu_helper.c index fb08eaee..c6630e5f 100644 --- a/qemu/target/ppc/fpu_helper.c +++ b/qemu/target/ppc/fpu_helper.c @@ -617,7 +617,7 @@ void helper_store_fpscr(CPUPPCState *env, uint64_t arg, uint32_t mask) fpscr_set_rounding_mode(env); } -void store_fpscr(CPUPPCState *env, uint64_t arg, uint32_t mask) +void do_store_fpscr(CPUPPCState *env, uint64_t arg, uint32_t mask) { helper_store_fpscr(env, arg, mask); } diff --git a/qemu/target/ppc/unicorn.c b/qemu/target/ppc/unicorn.c index 75841a27..2d615006 100644 --- a/qemu/target/ppc/unicorn.c +++ b/qemu/target/ppc/unicorn.c @@ -261,7 +261,7 @@ uc_err reg_write(void *_env, int mode, unsigned int regid, const void *value, break; case UC_PPC_REG_FPSCR: CHECK_REG_TYPE(uint32_t); - store_fpscr(env, *(uint32_t *)value, 0xffffffff); + do_store_fpscr(env, *(uint32_t *)value, 0xffffffff); break; } } diff --git a/qemu/tcg/ppc/tcg-target.inc.c b/qemu/tcg/ppc/tcg-target.inc.c index 00b79429..7f9dbb3b 100644 --- a/qemu/tcg/ppc/tcg-target.inc.c +++ b/qemu/tcg/ppc/tcg-target.inc.c @@ -2343,13 +2343,6 @@ static void tcg_target_qemu_prologue(TCGContext *s) } tcg_out_st(s, TCG_TYPE_PTR, TCG_REG_R0, TCG_REG_R1, FRAME_SIZE+LR_OFFSET); -#ifndef CONFIG_SOFTMMU - if (guest_base) { - tcg_out_movi_int(s, TCG_TYPE_PTR, TCG_GUEST_BASE_REG, guest_base, true); - tcg_regset_set_reg(s->reserved_regs, TCG_GUEST_BASE_REG); - } -#endif - tcg_out_mov(s, TCG_TYPE_PTR, TCG_AREG0, tcg_target_call_iarg_regs[0]); tcg_out32(s, MTSPR | RS(tcg_target_call_iarg_regs[1]) | CTR); if (USE_REG_TB) { diff --git a/symbols.sh b/symbols.sh index b70aa6d1..ad7b8f09 100755 --- a/symbols.sh +++ b/symbols.sh @@ -6264,6 +6264,269 @@ gen_helper_store_booke_tsr \ gen_helper_store_booke_tcr \ store_booke_tcr \ ppc_hash32_get_phys_page_debug \ +helper_fadd \ +helper_todouble \ +helper_tosingle \ +helper_compute_fprf_float16 \ +helper_compute_fprf_float32 \ +helper_compute_fprf_float64 \ +helper_compute_fprf_float128 \ +helper_fpscr_clrbit \ +helper_fpscr_setbit \ +helper_store_fpscr \ +helper_float_check_status \ +helper_reset_fpstatus \ +helper_fsub \ +helper_fmul \ +helper_fdiv \ +helper_fctiw \ +helper_fctiwz \ +helper_fctiwu \ +helper_fctiwuz \ +helper_fctid \ +helper_fctidz \ +helper_fctidu \ +helper_fctiduz \ +helper_fcfid \ +helper_fcfids \ +helper_fcfidu \ +helper_fcfidus \ +helper_frin \ +helper_friz \ +helper_frip \ +helper_frim \ +helper_fmadd \ +helper_fnmadd \ +helper_fmsub \ +helper_fnmsub \ +helper_frsp \ +helper_fsqrt \ +helper_fre \ +helper_fres \ +helper_frsqrte \ +helper_fsel \ +helper_ftdiv \ +helper_ftsqrt \ +helper_fcmpu \ +helper_fcmpo \ +helper_efscfsi \ +helper_efscfui \ +helper_efscfuf \ +helper_efscfsf \ +helper_efsctsi \ +helper_efsctui \ +helper_efsctsiz \ +helper_efsctuiz \ +helper_efsctsf \ +helper_efsctuf \ +helper_evfscfsi \ +helper_evfscfui \ +helper_evfscfuf \ +helper_evfscfsf \ +helper_evfsctsi \ +helper_evfsctui \ +helper_evfsctsiz \ +helper_evfsctuiz \ +helper_evfsctsf \ +helper_evfsctuf \ +helper_efsadd \ +helper_efssub \ +helper_efsmul \ +helper_efsdiv \ +helper_evfsadd \ +helper_evfssub \ +helper_evfsmul \ +helper_evfsdiv \ +helper_efststlt \ +helper_efststgt \ +helper_efststeq \ +helper_efscmplt \ +helper_efscmpgt \ +helper_efscmpeq \ +helper_evfststlt \ +helper_evfststgt \ +helper_evfststeq \ +helper_evfscmplt \ +helper_evfscmpgt \ +helper_evfscmpeq \ +helper_efdcfsi \ +helper_efdcfsid \ +helper_efdcfui \ +helper_efdcfuid \ +helper_efdctsi \ +helper_efdctui \ +helper_efdctsiz \ +helper_efdctsidz \ +helper_efdctuiz \ +helper_efdctuidz \ +helper_efdcfsf \ +helper_efdcfuf \ +helper_efdctsf \ +helper_efdctuf \ +helper_efscfd \ +helper_efdcfs \ +helper_efdadd \ +helper_efdsub \ +helper_efdmul \ +helper_efddiv \ +helper_efdtstlt \ +helper_efdtstgt \ +helper_efdtsteq \ +helper_efdcmplt \ +helper_efdcmpgt \ +helper_efdcmpeq \ +helper_xsadddp \ +helper_xsaddsp \ +helper_xvadddp \ +helper_xvaddsp \ +helper_xssubdp \ +helper_xssubsp \ +helper_xvsubdp \ +helper_xvsubsp \ +helper_xsaddqp \ +helper_xsmuldp \ +helper_xsmulsp \ +helper_xvmuldp \ +helper_xvmulsp \ +helper_xsmulqp \ +helper_xsdivdp \ +helper_xsdivsp \ +helper_xvdivdp \ +helper_xvdivsp \ +helper_xsdivqp \ +helper_xsredp \ +helper_xsresp \ +helper_xvredp \ +helper_xvresp \ +helper_xssqrtdp \ +helper_xssqrtsp \ +helper_xvsqrtdp \ +helper_xvsqrtsp \ +helper_xsrsqrtedp \ +helper_xsrsqrtesp \ +helper_xvrsqrtedp \ +helper_xvrsqrtesp \ +helper_xstdivdp \ +helper_xvtdivdp \ +helper_xvtdivsp \ +helper_xstsqrtdp \ +helper_xvtsqrtdp \ +helper_xvtsqrtsp \ +helper_xsmadddp \ +helper_xsmsubdp \ +helper_xsnmadddp \ +helper_xsnmsubdp \ +helper_xsmaddsp \ +helper_xsmsubsp \ +helper_xsnmaddsp \ +helper_xsnmsubsp \ +helper_xvmadddp \ +helper_xvmsubdp \ +helper_xvnmadddp \ +helper_xvnmsubdp \ +helper_xvmaddsp \ +helper_xvmsubsp \ +helper_xvnmaddsp \ +helper_xvnmsubsp \ +helper_xscmpeqdp \ +helper_xscmpgedp \ +helper_xscmpgtdp \ +helper_xscmpnedp \ +helper_xscmpexpdp \ +helper_xscmpexpqp \ +helper_xscmpodp \ +helper_xscmpudp \ +helper_xscmpoqp \ +helper_xscmpuqp \ +helper_xsmaxdp \ +helper_xvmaxdp \ +helper_xvmaxsp \ +helper_xsmindp \ +helper_xvmindp \ +helper_xvminsp \ +helper_xsmaxcdp \ +helper_xsmincdp \ +helper_xsmaxjdp \ +helper_xsminjdp \ +helper_xvcmpeqdp \ +helper_xvcmpgedp \ +helper_xvcmpgtdp \ +helper_xvcmpnedp \ +helper_xvcmpeqsp \ +helper_xvcmpgesp \ +helper_xvcmpgtsp \ +helper_xvcmpnesp \ +helper_xscvdpsp \ +helper_xscvspdp \ +helper_xvcvdpsp \ +helper_xvcvspdp \ +helper_xscvdpqp \ +helper_xscvdphp \ +helper_xscvhpdp \ +helper_xvcvsphp \ +helper_xvcvhpsp \ +helper_xscvqpdp \ +helper_xscvdpspn \ +helper_xscvspdpn \ +helper_xscvdpsxds \ +helper_xscvdpsxws \ +helper_xscvdpuxds \ +helper_xscvdpuxws \ +helper_xvcvdpsxds \ +helper_xvcvdpsxws \ +helper_xvcvdpuxds \ +helper_xvcvdpuxws \ +helper_xvcvspsxds \ +helper_xvcvspsxws \ +helper_xvcvspuxds \ +helper_xvcvspuxws \ +helper_xscvqpsdz \ +helper_xscvqpswz \ +helper_xscvqpudz \ +helper_xscvqpuwz \ +helper_xscvsxddp \ +helper_xscvuxddp \ +helper_xscvsxdsp \ +helper_xscvuxdsp \ +helper_xvcvsxddp \ +helper_xvcvuxddp \ +helper_xvcvsxwdp \ +helper_xvcvuxwdp \ +helper_xvcvsxdsp \ +helper_xvcvuxdsp \ +helper_xvcvsxwsp \ +helper_xvcvuxwsp \ +helper_xscvsdqp \ +helper_xscvudqp \ +helper_xsrdpi \ +helper_xsrdpic \ +helper_xsrdpim \ +helper_xsrdpip \ +helper_xsrdpiz \ +helper_xvrdpi \ +helper_xvrdpic \ +helper_xvrdpim \ +helper_xvrdpip \ +helper_xvrdpiz \ +helper_xvrspi \ +helper_xvrspic \ +helper_xvrspim \ +helper_xvrspip \ +helper_xvrspiz \ +helper_xsrsp \ +helper_xxperm \ +helper_xxpermr \ +helper_xvxsigsp \ +helper_xvtstdcdp \ +helper_xvtstdcsp \ +helper_xststdcdp \ +helper_xststdcqp \ +helper_xststdcsp \ +helper_xsrqpi \ +helper_xsrqpxp \ +helper_xssqrtqp \ +helper_xssubqp \ +do_store_fpscr " ppc64_SYMBOLS=${ppc_SYMBOLS}