From: Carl Love Date: Mon, 20 Apr 2015 23:38:33 +0000 (+0000) Subject: Add support for the lbarx, lharx, stbcx and sthcs instructions. X-Git-Tag: svn/VALGRIND_3_11_0~478 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=0a9b6b47d8d456e721558f035bc6067456fdcb3c;p=thirdparty%2Fvalgrind.git Add support for the lbarx, lharx, stbcx and sthcs instructions. One of the expect files was missing. Also found that there was a bug in the stq, stqcx, lq and lqarx instructions for LE. The VEX commit for the instruction fix was 3138. This commit updates the expect files for the corrected instructions and adds the missing expect files. The bugzilla for the orginal issue of the missing instructions is 346324. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15120 --- diff --git a/memcheck/tests/ppc32/Makefile.am b/memcheck/tests/ppc32/Makefile.am index e5f52fdf8e..26b95a2244 100644 --- a/memcheck/tests/ppc32/Makefile.am +++ b/memcheck/tests/ppc32/Makefile.am @@ -6,7 +6,7 @@ dist_noinst_SCRIPTS = filter_stderr EXTRA_DIST = $(noinst_SCRIPTS) \ power_ISA2_05.stderr.exp power_ISA2_05.stdout.exp power_ISA2_05.vgtest \ power_ISA2_05.stdout.exp_Without_FPPO \ - power_ISA2_07.stdout.exp power_ISA2_07.stdout.exp-LE \ + power_ISA2_07.stdout.exp \ power_ISA2_07.stderr.exp power_ISA2_07.vgtest check_PROGRAMS = \ @@ -16,11 +16,11 @@ power_ISA2_05_CFLAGS = $(AM_CFLAGS) $(WERROR) -Winline -Wall -Wshadow -g \ -I$(top_srcdir)/include @FLAG_M32@ if HAS_ISA_2_07 - BUILD_FLAGS_ISA_2_07 = -mhtm -mcpu=power8 - ISA_2_07_FLAG = -DHAS_ISA_2_07 +BUILD_FLAGS_ISA_2_07 = -mhtm -mcpu=power8 +ISA_2_07_FLAG = -DHAS_ISA_2_07 else - BUILD_FLAGS_ISA_2_07 = - ISA_2_07_FLAG = +BUILD_FLAGS_ISA_2_07 = +ISA_2_07_FLAG = endif power_ISA2_07_CFLAGS = $(AM_CFLAGS) $(WERROR) -Winline -Wall -Wshadow -g \ diff --git a/memcheck/tests/ppc32/power_ISA2_07.stdout.exp-LE b/memcheck/tests/ppc32/power_ISA2_07.stdout.exp-LE deleted file mode 100644 index 80dd84ba4c..0000000000 --- a/memcheck/tests/ppc32/power_ISA2_07.stdout.exp-LE +++ /dev/null @@ -1,2 +0,0 @@ -lbarx => 0x77 -lharx => 0xbeef diff --git a/none/tests/ppc32/Makefile.am b/none/tests/ppc32/Makefile.am index 366f5b03b9..e66992cdf2 100644 --- a/none/tests/ppc32/Makefile.am +++ b/none/tests/ppc32/Makefile.am @@ -40,7 +40,7 @@ EXTRA_DIST = \ test_dfp5.stderr.exp test_dfp5.stdout.exp test_dfp5.vgtest \ jm_vec_isa_2_07.stderr.exp jm_vec_isa_2_07.stdout.exp jm_vec_isa_2_07.vgtest \ jm_fp_isa_2_07.stderr.exp jm_fp_isa_2_07.stdout.exp jm_fp_isa_2_07.vgtest \ - jm_int_isa_2_07.stdout.exp jm_int_isa_2_07.stdout.exp-LE \ + jm_int_isa_2_07.stdout.exp \ jm_int_isa_2_07.stderr.exp jm_int_isa_2_07.vgtest \ test_isa_2_07_part2.stderr.exp test_isa_2_07_part2.stdout.exp test_isa_2_07_part2.vgtest \ test_tm.stderr.exp test_tm.stdout.exp test_tm.vgtest \ diff --git a/none/tests/ppc64/jm_int_isa_2_07.stdout.exp b/none/tests/ppc64/jm_int_isa_2_07.stdout.exp index e31b973622..938ee93447 100644 --- a/none/tests/ppc64/jm_int_isa_2_07.stdout.exp +++ b/none/tests/ppc64/jm_int_isa_2_07.stdout.exp @@ -1,17 +1 @@ -stq abcdef0123456789,1133557722446688, 0 => abcdef0123456789,1133557722446688) - -lq (0xaaccee0011335577, 0xabcdef0123456789) => (reg_pair = 0xaaccee0011335577, 0xabcdef0123456789) - -lbarx (0xaaccee0011335577, 0xabcdef0123456789) => (reg_pair = 0x00000000000000aa, 0x0000000000000000) - -lharx (0xaaccee0011335577, 0xabcdef0123456789) => (reg_pair = 0x000000000000aacc, 0x0000000000000000) - -lqarx (0xaaccee0011335577, 0xabcdef0123456789) => (reg_pair = 0xaaccee0011335577, 0xabcdef0123456789) - -stbcx. abefcd0145236789,1155337744226688 => 8900000000000000,0000000000000001; CR=20000000 - -sthcx. abefcd0145236789,1155337744226688 => 6789000000000000,0000000000000001; CR=20000000 - -stqcx. abefcd0145236789,1155337744226688 => abefcd0145236789,1155337744226688; CR=20000000 - -All done. Tested 8 different instructions +NO ISA 2.07 SUPPORT diff --git a/none/tests/ppc64/jm_int_isa_2_07.stdout.exp-LE b/none/tests/ppc64/jm_int_isa_2_07.stdout.exp-LE new file mode 100644 index 0000000000..58761286ec --- /dev/null +++ b/none/tests/ppc64/jm_int_isa_2_07.stdout.exp-LE @@ -0,0 +1,17 @@ +stq abcdef0123456789,1133557722446688, 0 => 1133557722446688,abcdef0123456789) + +lq (0xaaccee0011335577, 0xabcdef0123456789) => (reg_pair = 0xabcdef0123456789, 0xaaccee0011335577) + +lbarx (0xaaccee0011335577, 0xabcdef0123456789) => (reg_pair = 0x0000000000000077, 0x0000000000000000) + +lharx (0xaaccee0011335577, 0xabcdef0123456789) => (reg_pair = 0x0000000000005577, 0x0000000000000000) + +lqarx (0xaaccee0011335577, 0xabcdef0123456789) => (reg_pair = 0xabcdef0123456789, 0xaaccee0011335577) + +stbcx. abefcd0145236789,1155337744226688 => 0000000000000089,0000000000000001; CR=20000000 + +sthcx. abefcd0145236789,1155337744226688 => 0000000000006789,0000000000000001; CR=20000000 + +stqcx. abefcd0145236789,1155337744226688 => 1155337744226688,abefcd0145236789; CR=20000000 + +All done. Tested 8 different instructions