From: Julian Seward Date: Sat, 19 Nov 2005 15:31:13 +0000 (+0000) Subject: Fix this so that it compiles with gcc4 by writing the test fns X-Git-Tag: svn/VALGRIND_3_1_0~25 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e910fb71038124c7c0ef6f476342dc39141805bd;p=thirdparty%2Fvalgrind.git Fix this so that it compiles with gcc4 by writing the test fns completely in assembly (for those that require literals to be changed). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5207 --- diff --git a/none/tests/ppc32/jm-insns.c b/none/tests/ppc32/jm-insns.c index 9fa274b682..e39bd8a51f 100644 --- a/none/tests/ppc32/jm-insns.c +++ b/none/tests/ppc32/jm-insns.c @@ -225,12 +225,6 @@ enum test_flags { #define unused __attribute__ (( unused )) /* -------------- BEGIN #include "ops-ppc.c" -------------- */ -/* - * WARNING: - * This file has been auto-generated by './gen-ppc' program - * Please don't edit by hand - */ - /* #include "test-ppc.h" */ @@ -646,15 +640,21 @@ static test_t tests_icr_ops_two[] = { { NULL, NULL, }, }; -static void test_cmpi (void) -{ - __asm__ __volatile__ ("cmpi 2, 14, 15"); -} - -static void test_cmpli (void) -{ - __asm__ __volatile__ ("cmpli 2, 14, 15"); -} +extern void test_cmpi (void); +asm(".text\n" + "test_cmpi:\n" + "\tcmpi 2, 14, 15\n" + "\tblr\n" + ".previous\n" +); + +extern void test_cmpli (void); +asm(".text\n" + "test_cmpli:\n" + "\tcmpli 2, 14, 15\n" + "\tblr\n" + ".previous\n" +); static test_t tests_icr_ops_two_i16[] = { { &test_cmpi , " cmpi", }, @@ -662,30 +662,45 @@ static test_t tests_icr_ops_two_i16[] = { { NULL, NULL, }, }; -static void test_addi (void) -{ - __asm__ __volatile__ ("addi 17, 14, 0"); -} - -static void test_addic (void) -{ - __asm__ __volatile__ ("addic 17, 14, 0"); -} - -static void test_addis (void) -{ - __asm__ __volatile__ ("addis 17, 14, 0"); -} - -static void test_mulli (void) -{ - __asm__ __volatile__ ("mulli 17, 14, 0"); -} - -static void test_subfic (void) -{ - __asm__ __volatile__ ("subfic 17, 14, 0"); -} +extern void test_addi (void); +asm(".text\n" + "test_addi:\n" + "\taddi 17, 14, 0\n" + "\tblr\n" + ".previous\n" +); + +extern void test_addic (void); +asm(".text\n" + "test_addic:\n" + "\taddic 17, 14, 0\n" + "\tblr\n" + ".previous\n" +); + +extern void test_addis (void); +asm(".text\n" + "test_addis:\n" + "\taddis 17, 14, 0\n" + "\tblr\n" + ".previous\n" +); + +extern void test_mulli (void); +asm(".text\n" + "test_mulli:\n" + "\tmulli 17, 14, 0\n" + "\tblr\n" + ".previous\n" +); + +extern void test_subfic (void); +asm(".text\n" + "test_subfic:\n" + "\tsubfic 17, 14, 0\n" + "\tblr\n" + ".previous\n" +); static test_t tests_ia_ops_two_i16[] = { { &test_addi , " addi", }, @@ -696,35 +711,50 @@ static test_t tests_ia_ops_two_i16[] = { { NULL, NULL, }, }; -static void test_addic_ (void) -{ - __asm__ __volatile__ ("addic. 17, 14, 0"); -} +extern void test_addic_ (void); +asm(".text\n" + "test_addic_:\n" + "\taddic. 17, 14, 0\n" + "\tblr\n" + ".previous\n" +); static test_t tests_iar_ops_two_i16[] = { { &test_addic_ , " addic.", }, { NULL, NULL, }, }; -static void test_ori (void) -{ - __asm__ __volatile__ ("ori 17, 14, 0"); -} - -static void test_oris (void) -{ - __asm__ __volatile__ ("oris 17, 14, 0"); -} - -static void test_xori (void) -{ - __asm__ __volatile__ ("xori 17, 14, 0"); -} - -static void test_xoris (void) -{ - __asm__ __volatile__ ("xoris 17, 14, 0"); -} +extern void test_ori (void); +asm(".text\n" + "test_ori:\n" + "\tori 17, 14, 0\n" + "\tblr\n" + ".previous\n" +); + +extern void test_oris (void); +asm(".text\n" + "test_oris:\n" + "\toris 17, 14, 0\n" + "\tblr\n" + ".previous\n" +); + +extern void test_xori (void); +asm(".text\n" + "test_xori:\n" + "\txori 17, 14, 0\n" + "\tblr\n" + ".previous\n" +); + +extern void test_xoris (void); +asm(".text\n" + "test_xoris:\n" + "\txoris 17, 14, 0\n" + "\tblr\n" + ".previous\n" +); static test_t tests_il_ops_two_i16[] = { { &test_ori , " ori", }, @@ -734,15 +764,21 @@ static test_t tests_il_ops_two_i16[] = { { NULL, NULL, }, }; -static void test_andi_ (void) -{ - __asm__ __volatile__ ("andi. 17, 14, 0"); -} - -static void test_andis_ (void) -{ - __asm__ __volatile__ ("andis. 17, 14, 0"); -} +extern void test_andi_ (void); +asm(".text\n" + "test_andi_:\n" + "\tandi. 17, 14, 0\n" + "\tblr\n" + ".previous\n" +); + +extern void test_andis_ (void); +asm(".text\n" + "test_andis_:\n" + "\tandis. 17, 14, 0\n" + "\tblr\n" + ".previous\n" +); static test_t tests_ilr_ops_two_i16[] = { { &test_andi_ , " andi.", }, @@ -974,25 +1010,37 @@ static test_t tests_ilr_ops_one[] = { { NULL, NULL, }, }; -static void test_rlwimi (void) -{ - __asm__ __volatile__ ("rlwimi 17, 14, 0, 0, 0"); -} - -static void test_rlwinm (void) -{ - __asm__ __volatile__ ("rlwinm 17, 14, 0, 0, 0"); -} - -static void test_rlwnm (void) -{ - __asm__ __volatile__ ("rlwnm 17, 14, 15, 0, 0"); -} - -static void test_srawi (void) -{ - __asm__ __volatile__ ("srawi 17, 14, 0"); -} +extern void test_rlwimi (void); +asm(".text\n" + "test_rlwimi:\n" + "\trlwimi 17, 14, 0, 0, 0\n" + "\tblr\n" + ".previous\n" +); + +extern void test_rlwinm (void); +asm(".text\n" + "test_rlwinm:\n" + "\trlwinm 17, 14, 0, 0, 0\n" + "\tblr\n" + ".previous\n" +); + +extern void test_rlwnm (void); +asm(".text\n" + "test_rlwnm:\n" + "\trlwnm 17, 14, 15, 0, 0\n" + "\tblr\n" + ".previous\n" +); + +extern void test_srawi (void); +asm(".text\n" + "test_srawi:\n" + "\tsrawi 17, 14, 0\n" + "\tblr\n" + ".previous\n" +); static void test_mfcr (void) { @@ -1020,40 +1068,61 @@ static test_t tests_il_ops_spe[] = { { NULL, NULL, }, }; -static void test_rlwimi_ (void) -{ - __asm__ __volatile__ ("rlwimi. 17, 14, 0, 0, 0"); -} - -static void test_rlwinm_ (void) -{ - __asm__ __volatile__ ("rlwinm. 17, 14, 0, 0, 0"); -} - -static void test_rlwnm_ (void) -{ - __asm__ __volatile__ ("rlwnm. 17, 14, 15, 0, 0"); -} - -static void test_srawi_ (void) -{ - __asm__ __volatile__ ("srawi. 17, 14, 0"); -} - -static void test_mcrf (void) -{ - __asm__ __volatile__ ("mcrf 0, 0"); -} - -static void test_mcrxr (void) -{ - __asm__ __volatile__ ("mcrxr 0"); -} - -static void test_mtcrf (void) -{ - __asm__ __volatile__ ("mtcrf 0, 14"); -} +extern void test_rlwimi_ (void); +asm(".text\n" + "test_rlwimi_:\n" + "\trlwimi. 17, 14, 0, 0, 0\n" + "\tblr\n" + ".previous\n" +); + +extern void test_rlwinm_ (void); +asm(".text\n" + "test_rlwinm_:\n" + "\trlwinm. 17, 14, 0, 0, 0\n" + "\tblr\n" + ".previous\n" +); + +extern void test_rlwnm_ (void); +asm(".text\n" + "test_rlwnm_:\n" + "\trlwnm. 17, 14, 15, 0, 0\n" + "\tblr\n" + ".previous\n" +); + +extern void test_srawi_ (void); +asm(".text\n" + "test_srawi_:\n" + "\tsrawi. 17, 14, 0\n" + "\tblr\n" + ".previous\n" +); + +extern void test_mcrf (void); +asm(".text\n" + "test_mcrf:\n" + "\tmcrf 0, 0\n" + "\tblr\n" + ".previous\n" +); + +extern void test_mcrxr (void); +asm(".text\n" + "test_mcrxr:\n" + "\tmcrxr 0\n" + "\tblr\n" + ".previous\n" +); + +extern void test_mtcrf (void); +asm(".text\n" + "test_mtcrf:\n" + "\tmtcrf 0, 14\n" + "\tblr\n" + ".previous\n" +); static test_t tests_ilr_ops_spe[] = { { &test_rlwimi_ , " rlwimi.", }, @@ -1066,45 +1135,69 @@ static test_t tests_ilr_ops_spe[] = { { NULL, NULL, }, }; -static void test_lbz (void) -{ - __asm__ __volatile__ ("lbz 17,0(14)"); -} - -static void test_lbzu (void) -{ - __asm__ __volatile__ ("lbzu 17,0(14)"); -} - -static void test_lha (void) -{ - __asm__ __volatile__ ("lha 17,0(14)"); -} - -static void test_lhau (void) -{ - __asm__ __volatile__ ("lhau 17,0(14)"); -} - -static void test_lhz (void) -{ - __asm__ __volatile__ ("lhz 17,0(14)"); -} - -static void test_lhzu (void) -{ - __asm__ __volatile__ ("lhzu 17,0(14)"); -} - -static void test_lwz (void) -{ - __asm__ __volatile__ ("lwz 17,0(14)"); -} - -static void test_lwzu (void) -{ - __asm__ __volatile__ ("lwzu 17,0(14)"); -} +extern void test_lbz (void); +asm(".text\n" + "test_lbz:\n" + "\tlbz 17,0(14)\n" + "\tblr\n" + ".previous\n" +); + +extern void test_lbzu (void); +asm(".text\n" + "test_lbzu:\n" + "\tlbzu 17,0(14)\n" + "\tblr\n" + ".previous\n" +); + +extern void test_lha (void); +asm(".text\n" + "test_lha:\n" + "\tlha 17,0(14)\n" + "\tblr\n" + ".previous\n" +); + +extern void test_lhau (void); +asm(".text\n" + "test_lhau:\n" + "\tlhau 17,0(14)\n" + "\tblr\n" + ".previous\n" +); + +extern void test_lhz (void); +asm(".text\n" + "test_lhz:\n" + "\tlhz 17,0(14)\n" + "\tblr\n" + ".previous\n" +); + +extern void test_lhzu (void); +asm(".text\n" + "test_lhzu:\n" + "\tlhzu 17,0(14)\n" + "\tblr\n" + ".previous\n" +); + +extern void test_lwz (void); +asm(".text\n" + "test_lwz:\n" + "\tlwz 17,0(14)\n" + "\tblr\n" + ".previous\n" +); + +extern void test_lwzu (void); +asm(".text\n" + "test_lwzu:\n" + "\tlwzu 17,0(14)\n" + "\tblr\n" + ".previous\n" +); static test_t tests_ild_ops_two_i16[] = { { &test_lbz , " lbz", }, @@ -1170,35 +1263,53 @@ static test_t tests_ild_ops_two[] = { { NULL, NULL, }, }; -static void test_stb (void) -{ - __asm__ __volatile__ ("stb 14,0(15)"); -} - -static void test_stbu (void) -{ - __asm__ __volatile__ ("stbu 14,0(15)"); -} - -static void test_sth (void) -{ - __asm__ __volatile__ ("sth 14,0(15)"); -} - -static void test_sthu (void) -{ - __asm__ __volatile__ ("sthu 14,0(15)"); -} - -static void test_stw (void) -{ - __asm__ __volatile__ ("stw 14,0(15)"); -} - -static void test_stwu (void) -{ - __asm__ __volatile__ ("stwu 14,0(15)"); -} +extern void test_stb (void); +asm(".text\n" + "test_stb:\n" + "\tstb 14,0(15)\n" + "\tblr\n" + ".previous\n" +); + +extern void test_stbu (void); +asm(".text\n" + "test_stbu:\n" + "\tstbu 14,0(15)\n" + "\tblr\n" + ".previous\n" +); + +extern void test_sth (void); +asm(".text\n" + "test_sth:\n" + "\tsth 14,0(15)\n" + "\tblr\n" + ".previous\n" +); + +extern void test_sthu (void); +asm(".text\n" + "test_sthu:\n" + "\tsthu 14,0(15)\n" + "\tblr\n" + ".previous\n" +); + +extern void test_stw (void); +asm(".text\n" + "test_stw:\n" + "\tstw 14,0(15)\n" + "\tblr\n" + ".previous\n" +); + +extern void test_stwu (void); +asm(".text\n" + "test_stwu:\n" + "\tstwu 14,0(15)\n" + "\tblr\n" + ".previous\n" +); static test_t tests_ist_ops_three_i16[] = { { &test_stb , " stb", }, @@ -2407,40 +2518,61 @@ static void test_vsr (void) __asm__ __volatile__ ("vsr 17, 14, 15"); } -static void test_vspltb (void) -{ - __asm__ __volatile__ ("vspltb 17, 14, 0"); -} - -static void test_vsplth (void) -{ - __asm__ __volatile__ ("vsplth 17, 14, 0"); -} - -static void test_vspltw (void) -{ - __asm__ __volatile__ ("vspltw 17, 14, 0"); -} - -static void test_vspltisb (void) -{ - __asm__ __volatile__ ("vspltisb 17, 0"); -} - -static void test_vspltish (void) -{ - __asm__ __volatile__ ("vspltish 17, 0"); -} - -static void test_vspltisw (void) -{ - __asm__ __volatile__ ("vspltisw 17, 0"); -} - -static void test_vsldoi (void) -{ - __asm__ __volatile__ ("vsldoi 17, 14, 15, 0"); -} +extern void test_vspltb (void); +asm(".text\n" + "test_vspltb:\n" + "\tvspltb 17, 14, 0\n" + "\tblr\n" + ".previous\n" +); + +extern void test_vsplth (void); +asm(".text\n" + "test_vsplth:\n" + "\tvsplth 17, 14, 0\n" + "\tblr\n" + ".previous\n" +); + +extern void test_vspltw (void); +asm(".text\n" + "test_vspltw:\n" + "\tvspltw 17, 14, 0\n" + "\tblr\n" + ".previous\n" +); + +extern void test_vspltisb (void); +asm(".text\n" + "test_vspltisb:\n" + "\tvspltisb 17, 0\n" + "\tblr\n" + ".previous\n" +); + +extern void test_vspltish (void); +asm(".text\n" + "test_vspltish:\n" + "\tvspltish 17, 0\n" + "\tblr\n" + ".previous\n" +); + +extern void test_vspltisw (void); +asm(".text\n" + "test_vspltisw:\n" + "\tvspltisw 17, 0\n" + "\tblr\n" + ".previous\n" +); + +extern void test_vsldoi (void); +asm(".text\n" + "test_vsldoi:\n" + "\tvsldoi 17, 14, 15, 0\n" + "\tblr\n" + ".previous\n" +); static void test_lvsl (void) { @@ -2695,25 +2827,37 @@ static test_t tests_afcr_ops_two[] = { #endif /* defined (HAS_ALTIVEC) */ #if defined (HAS_ALTIVEC) -static void test_vcfux (void) -{ - __asm__ __volatile__ ("vcfux 17, 14, 0"); -} - -static void test_vcfsx (void) -{ - __asm__ __volatile__ ("vcfsx 17, 14, 0"); -} - -static void test_vctuxs (void) -{ - __asm__ __volatile__ ("vctuxs 17, 14, 0"); -} - -static void test_vctsxs (void) -{ - __asm__ __volatile__ ("vctsxs 17, 14, 0"); -} +extern void test_vcfux (void); +asm(".text\n" + "test_vcfux:\n" + "\tvcfux 17, 14, 0\n" + "\tblr\n" + ".previous\n" +); + +extern void test_vcfsx (void); +asm(".text\n" + "test_vcfsx:\n" + "\tvcfsx 17, 14, 0\n" + "\tblr\n" + ".previous\n" +); + +extern void test_vctuxs (void); +asm(".text\n" + "test_vctuxs:\n" + "\tvctuxs 17, 14, 0\n" + "\tblr\n" + ".previous\n" +); + +extern void test_vctsxs (void); +asm(".text\n" + "test_vctsxs:\n" + "\tvctsxs 17, 14, 0\n" + "\tblr\n" + ".previous\n" +); static test_t tests_av_float_ops_spe[] = { { &test_vcfux , " vcfux", },