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.stderr.exp jm_int_isa_2_07.stdout.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
+ test_tm.stderr.exp test_tm.stdout.exp test_tm.vgtest \
+ test_touch_tm.stderr.exp test_touch_tm.stdout.exp test_touch_tm.vgtest
check_PROGRAMS = \
test_dfp1 test_dfp2 test_dfp3 test_dfp4 test_dfp5 \
test_isa_2_07_part1 \
test_isa_2_07_part2 \
- test_tm
+ test_tm \
+ test_touch_tm
AM_CFLAGS += @FLAG_M32@
AM_CXXFLAGS += @FLAG_M32@
test_tm_CFLAGS = $(AM_CFLAGS) -Winline -Wall -O -lm -g -mregnames $(ISA_2_07_FLAG) \
@FLAG_M32@ $(BUILD_FLAGS_ISA_2_07)
+test_touch_tm_CFLAGS = $(AM_CFLAGS) -Winline -Wall -O -lm -g -mregnames $(ISA_2_07_FLAG) \
+ @FLAG_M32@ $(BUILD_FLAGS_ISA_2_07)
--- /dev/null
+prereq: ../../../tests/check_isa-2_07_cap
+prog: test_touch_tm
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.stderr.exp jm_int_isa_2_07.stdout.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
+ test_tm.stderr.exp test_tm.stdout.exp test_tm.vgtest \
+ test_touch_tm.stderr.exp test_touch_tm.stdout.exp test_touch_tm.vgtest
check_PROGRAMS = \
allexec \
power6_mf_gpr test_isa_2_06_part1 test_isa_2_06_part2 \
test_isa_2_06_part3 test_dfp1 test_dfp2 test_dfp3 test_dfp4 \
test_dfp5 test_isa_2_07_part1 test_isa_2_07_part2 \
- test_tm
+ test_tm test_touch_tm
AM_CFLAGS += @FLAG_M64@
AM_CXXFLAGS += @FLAG_M64@
test_tm_CFLAGS = $(AM_CFLAGS) -Winline -Wall -O -lm -g -mregnames $(ISA_2_07_FLAG) \
@FLAG_M64@ $(BUILD_FLAGS_ISA_2_07)
+test_touch_tm_CFLAGS = $(AM_CFLAGS) -Winline -Wall -O -lm -g -mregnames $(ISA_2_07_FLAG) \
+ @FLAG_M64@ $(BUILD_FLAGS_ISA_2_07)
--- /dev/null
+#include <stdio.h>
+
+int main (void) {
+#ifdef HAS_ISA_2_07
+ /* Just get the compiler to generate each of the TM instructions
+ * so we can verify that valgrind recognizes them.
+ * For now, only the tbegin instruction does anything in valgrind.
+ * The rest are just treated as NOPS.
+ */
+ __builtin_tabort (0);
+ __builtin_tabortdc (0,0,0);
+ __builtin_tabortdci (0,0,0);
+ __builtin_tabortwc (0,0,0);
+ __builtin_tabortwci (0,0,0);
+ __builtin_tbegin (0);
+ __builtin_tend (0);
+ // __builtin_tcheck (0); tcheck not recognized by compiler
+ __builtin_trechkpt (); // not recognized by early HW
+ __builtin_treclaim (0); // not recognized by early HW
+ __builtin_tsr (0);
+#endif
+ return 0;
+}
--- /dev/null
+prereq: ../../../tests/check_isa-2_07_cap
+prog: test_touch_tm