]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Add test for tw and td instructions.
authorJulian Seward <jseward@acm.org>
Sat, 1 Sep 2007 23:16:49 +0000 (23:16 +0000)
committerJulian Seward <jseward@acm.org>
Sat, 1 Sep 2007 23:16:49 +0000 (23:16 +0000)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6796

none/tests/ppc64/Makefile.am
none/tests/ppc64/tw_td.c [new file with mode: 0644]
none/tests/ppc64/tw_td.stderr.exp [new file with mode: 0644]
none/tests/ppc64/tw_td.stdout.exp [new file with mode: 0644]
none/tests/ppc64/tw_td.vgtest [new file with mode: 0644]

index ef4861ce99d786ae438885197ff533c7f242671e..2f0892a6ae3800ab03ac0a82ebc8ff73061274d9 100644 (file)
@@ -8,10 +8,11 @@ EXTRA_DIST = $(noinst_SCRIPTS) \
        lsw.stderr.exp lsw.stdout.exp lsw.vgtest \
        std_reg_imm.vgtest std_reg_imm.stderr.exp std_reg_imm.stdout.exp \
        round.stderr.exp round.stdout.exp round.vgtest \
-       twi_tdi.stderr.exp twi_tdi.stdout.exp twi_tdi.vgtest
+       twi_tdi.stderr.exp twi_tdi.stdout.exp twi_tdi.vgtest \
+       tw_td.stderr.exp tw_td.stdout.exp tw_td.vgtest
 
 check_PROGRAMS = \
-       jm-insns lsw round std_reg_imm twi_tdi
+       jm-insns lsw round std_reg_imm twi_tdi tw_td
 
 AM_CFLAGS   = $(WERROR) -Winline -Wall -Wshadow -g -I$(top_srcdir)/include \
                @FLAG_M64@
diff --git a/none/tests/ppc64/tw_td.c b/none/tests/ppc64/tw_td.c
new file mode 100644 (file)
index 0000000..2365a4e
--- /dev/null
@@ -0,0 +1,375 @@
+
+#include <stdio.h>
+#include <signal.h>
+#include <setjmp.h>
+#include <string.h>
+#include <assert.h>
+
+static jmp_buf env_sigtrap;
+static void handler_sigtrap ( int x ) { longjmp(env_sigtrap,1); }
+
+void try ( char* who, void(*maybe_traps)(long,long), long arg1, long arg2 )
+{
+   struct sigaction tmp_act;
+   int r, trapped = 0;
+   memset(&tmp_act, 0, sizeof(tmp_act));
+   tmp_act.sa_handler = handler_sigtrap;
+   sigemptyset(&tmp_act.sa_mask);
+   tmp_act.sa_flags = SA_NODEFER;
+   r = sigaction(SIGTRAP, &tmp_act, NULL);
+   assert(r == 0);
+   if (setjmp(env_sigtrap)) {
+      trapped = 1;
+   } else {
+      maybe_traps(arg1, arg2);
+   }
+   signal(SIGTRAP, SIG_DFL);
+
+   printf("%s(%4lld,%4lld) -> %s\n", who, (long long int)arg1,
+          (long long int)arg2,
+         trapped ? "TRAP" : "no trap" );
+}
+
+static void tw_0 ( long n, long m ) {
+  __asm__ __volatile__("tw 0, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_1 ( long n, long m ) {
+  __asm__ __volatile__("tw 1, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_2 ( long n, long m ) {
+  __asm__ __volatile__("tw 2, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_3 ( long n, long m ) {
+  __asm__ __volatile__("tw 3, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_4 ( long n, long m ) {
+  __asm__ __volatile__("tw 4, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_5 ( long n, long m ) {
+  __asm__ __volatile__("tw 5, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_6 ( long n, long m ) {
+  __asm__ __volatile__("tw 6, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_7 ( long n, long m ) {
+  __asm__ __volatile__("tw 7, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_8 ( long n, long m ) {
+  __asm__ __volatile__("tw 8, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_9 ( long n, long m ) {
+  __asm__ __volatile__("tw 9, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_10 ( long n, long m ) {
+  __asm__ __volatile__("tw 10, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_11 ( long n, long m ) {
+  __asm__ __volatile__("tw 11, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_12 ( long n, long m ) {
+  __asm__ __volatile__("tw 12, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_13 ( long n, long m ) {
+  __asm__ __volatile__("tw 13, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_14 ( long n, long m ) {
+  __asm__ __volatile__("tw 14, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_15 ( long n, long m ) {
+  __asm__ __volatile__("tw 15, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_16 ( long n, long m ) {
+  __asm__ __volatile__("tw 16, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_17 ( long n, long m ) {
+  __asm__ __volatile__("tw 17, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_18 ( long n, long m ) {
+  __asm__ __volatile__("tw 18, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_19 ( long n, long m ) {
+  __asm__ __volatile__("tw 19, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_20 ( long n, long m ) {
+  __asm__ __volatile__("tw 20, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_21 ( long n, long m ) {
+  __asm__ __volatile__("tw 21, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_22 ( long n, long m ) {
+  __asm__ __volatile__("tw 22, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_23 ( long n, long m ) {
+  __asm__ __volatile__("tw 23, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_24 ( long n, long m ) {
+  __asm__ __volatile__("tw 24, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_25 ( long n, long m ) {
+  __asm__ __volatile__("tw 25, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_26 ( long n, long m ) {
+  __asm__ __volatile__("tw 26, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_27 ( long n, long m ) {
+  __asm__ __volatile__("tw 27, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_28 ( long n, long m ) {
+  __asm__ __volatile__("tw 28, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_29 ( long n, long m ) {
+  __asm__ __volatile__("tw 29, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_30 ( long n, long m ) {
+  __asm__ __volatile__("tw 30, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void tw_31 ( long n, long m ) {
+  __asm__ __volatile__("tw 31, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+
+#if defined(__powerpc64__)
+
+static void td_0 ( long n, long m ) {
+  __asm__ __volatile__("td 0, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_1 ( long n, long m ) {
+  __asm__ __volatile__("td 1, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_2 ( long n, long m ) {
+  __asm__ __volatile__("td 2, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_3 ( long n, long m ) {
+  __asm__ __volatile__("td 3, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_4 ( long n, long m ) {
+  __asm__ __volatile__("td 4, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_5 ( long n, long m ) {
+  __asm__ __volatile__("td 5, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_6 ( long n, long m ) {
+  __asm__ __volatile__("td 6, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_7 ( long n, long m ) {
+  __asm__ __volatile__("td 7, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_8 ( long n, long m ) {
+  __asm__ __volatile__("td 8, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_9 ( long n, long m ) {
+  __asm__ __volatile__("td 9, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_10 ( long n, long m ) {
+  __asm__ __volatile__("td 10, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_11 ( long n, long m ) {
+  __asm__ __volatile__("td 11, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_12 ( long n, long m ) {
+  __asm__ __volatile__("td 12, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_13 ( long n, long m ) {
+  __asm__ __volatile__("td 13, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_14 ( long n, long m ) {
+  __asm__ __volatile__("td 14, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_15 ( long n, long m ) {
+  __asm__ __volatile__("td 15, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_16 ( long n, long m ) {
+  __asm__ __volatile__("td 16, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_17 ( long n, long m ) {
+  __asm__ __volatile__("td 17, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_18 ( long n, long m ) {
+  __asm__ __volatile__("td 18, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_19 ( long n, long m ) {
+  __asm__ __volatile__("td 19, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_20 ( long n, long m ) {
+  __asm__ __volatile__("td 20, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_21 ( long n, long m ) {
+  __asm__ __volatile__("td 21, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_22 ( long n, long m ) {
+  __asm__ __volatile__("td 22, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_23 ( long n, long m ) {
+  __asm__ __volatile__("td 23, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_24 ( long n, long m ) {
+  __asm__ __volatile__("td 24, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_25 ( long n, long m ) {
+  __asm__ __volatile__("td 25, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_26 ( long n, long m ) {
+  __asm__ __volatile__("td 26, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_27 ( long n, long m ) {
+  __asm__ __volatile__("td 27, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_28 ( long n, long m ) {
+  __asm__ __volatile__("td 28, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_29 ( long n, long m ) {
+  __asm__ __volatile__("td 29, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_30 ( long n, long m ) {
+  __asm__ __volatile__("td 30, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+static void td_31 ( long n, long m ) {
+  __asm__ __volatile__("td 31, %0,%1"
+                      : /*out*/ : /*in*/ "r" (n), "r" (m) );
+}
+
+#endif
+
+
+int main ( void )
+{
+#define TW_GROUP(cmp) \
+   try("tw_" #cmp "", tw_##cmp, -150, -100); \
+   try("tw_" #cmp "", tw_##cmp, -100, -100); \
+   try("tw_" #cmp "", tw_##cmp,  -50, -100);
+
+   TW_GROUP(0);
+   TW_GROUP(1);
+   TW_GROUP(2);
+   TW_GROUP(3);
+   TW_GROUP(4);
+   TW_GROUP(5);
+   TW_GROUP(6);
+   TW_GROUP(7);
+   TW_GROUP(8);
+   TW_GROUP(9);
+   TW_GROUP(10);
+   TW_GROUP(11);
+   TW_GROUP(12);
+   TW_GROUP(13);
+   TW_GROUP(14);
+   TW_GROUP(15);
+   TW_GROUP(16);
+   TW_GROUP(17);
+   TW_GROUP(18);
+   TW_GROUP(19);
+   TW_GROUP(20);
+   TW_GROUP(21);
+   TW_GROUP(22);
+   TW_GROUP(23);
+   TW_GROUP(24);
+   TW_GROUP(25);
+   TW_GROUP(26);
+   TW_GROUP(27);
+   TW_GROUP(28);
+   TW_GROUP(29);
+   TW_GROUP(30);
+   TW_GROUP(31);
+#if defined(__powerpc64__)
+#define TD_GROUP(cmp) \
+   try("td_" #cmp "", td_##cmp, -150, -100); \
+   try("td_" #cmp "", td_##cmp, -100, -100); \
+   try("td_" #cmp "", td_##cmp,  -50, -100);
+
+   TD_GROUP(0);
+   TD_GROUP(1);
+   TD_GROUP(2);
+   TD_GROUP(3);
+   TD_GROUP(4);
+   TD_GROUP(5);
+   TD_GROUP(6);
+   TD_GROUP(7);
+   TD_GROUP(8);
+   TD_GROUP(9);
+   TD_GROUP(10);
+   TD_GROUP(11);
+   TD_GROUP(12);
+   TD_GROUP(13);
+   TD_GROUP(14);
+   TD_GROUP(15);
+   TD_GROUP(16);
+   TD_GROUP(17);
+   TD_GROUP(18);
+   TD_GROUP(19);
+   TD_GROUP(20);
+   TD_GROUP(21);
+   TD_GROUP(22);
+   TD_GROUP(23);
+   TD_GROUP(24);
+   TD_GROUP(25);
+   TD_GROUP(26);
+   TD_GROUP(27);
+   TD_GROUP(28);
+   TD_GROUP(29);
+   TD_GROUP(30);
+   TD_GROUP(31);
+#endif
+   return 0;
+}
diff --git a/none/tests/ppc64/tw_td.stderr.exp b/none/tests/ppc64/tw_td.stderr.exp
new file mode 100644 (file)
index 0000000..139597f
--- /dev/null
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/ppc64/tw_td.stdout.exp b/none/tests/ppc64/tw_td.stdout.exp
new file mode 100644 (file)
index 0000000..3530bd3
--- /dev/null
@@ -0,0 +1,192 @@
+tw_0(-150,-100) -> no trap
+tw_0(-100,-100) -> no trap
+tw_0( -50,-100) -> no trap
+tw_1(-150,-100) -> no trap
+tw_1(-100,-100) -> no trap
+tw_1( -50,-100) -> TRAP
+tw_2(-150,-100) -> TRAP
+tw_2(-100,-100) -> no trap
+tw_2( -50,-100) -> no trap
+tw_3(-150,-100) -> TRAP
+tw_3(-100,-100) -> no trap
+tw_3( -50,-100) -> TRAP
+tw_4(-150,-100) -> no trap
+tw_4(-100,-100) -> TRAP
+tw_4( -50,-100) -> no trap
+tw_5(-150,-100) -> no trap
+tw_5(-100,-100) -> TRAP
+tw_5( -50,-100) -> TRAP
+tw_6(-150,-100) -> TRAP
+tw_6(-100,-100) -> TRAP
+tw_6( -50,-100) -> no trap
+tw_7(-150,-100) -> TRAP
+tw_7(-100,-100) -> TRAP
+tw_7( -50,-100) -> TRAP
+tw_8(-150,-100) -> no trap
+tw_8(-100,-100) -> no trap
+tw_8( -50,-100) -> TRAP
+tw_9(-150,-100) -> no trap
+tw_9(-100,-100) -> no trap
+tw_9( -50,-100) -> TRAP
+tw_10(-150,-100) -> TRAP
+tw_10(-100,-100) -> no trap
+tw_10( -50,-100) -> TRAP
+tw_11(-150,-100) -> TRAP
+tw_11(-100,-100) -> no trap
+tw_11( -50,-100) -> TRAP
+tw_12(-150,-100) -> no trap
+tw_12(-100,-100) -> TRAP
+tw_12( -50,-100) -> TRAP
+tw_13(-150,-100) -> no trap
+tw_13(-100,-100) -> TRAP
+tw_13( -50,-100) -> TRAP
+tw_14(-150,-100) -> TRAP
+tw_14(-100,-100) -> TRAP
+tw_14( -50,-100) -> TRAP
+tw_15(-150,-100) -> TRAP
+tw_15(-100,-100) -> TRAP
+tw_15( -50,-100) -> TRAP
+tw_16(-150,-100) -> TRAP
+tw_16(-100,-100) -> no trap
+tw_16( -50,-100) -> no trap
+tw_17(-150,-100) -> TRAP
+tw_17(-100,-100) -> no trap
+tw_17( -50,-100) -> TRAP
+tw_18(-150,-100) -> TRAP
+tw_18(-100,-100) -> no trap
+tw_18( -50,-100) -> no trap
+tw_19(-150,-100) -> TRAP
+tw_19(-100,-100) -> no trap
+tw_19( -50,-100) -> TRAP
+tw_20(-150,-100) -> TRAP
+tw_20(-100,-100) -> TRAP
+tw_20( -50,-100) -> no trap
+tw_21(-150,-100) -> TRAP
+tw_21(-100,-100) -> TRAP
+tw_21( -50,-100) -> TRAP
+tw_22(-150,-100) -> TRAP
+tw_22(-100,-100) -> TRAP
+tw_22( -50,-100) -> no trap
+tw_23(-150,-100) -> TRAP
+tw_23(-100,-100) -> TRAP
+tw_23( -50,-100) -> TRAP
+tw_24(-150,-100) -> TRAP
+tw_24(-100,-100) -> no trap
+tw_24( -50,-100) -> TRAP
+tw_25(-150,-100) -> TRAP
+tw_25(-100,-100) -> no trap
+tw_25( -50,-100) -> TRAP
+tw_26(-150,-100) -> TRAP
+tw_26(-100,-100) -> no trap
+tw_26( -50,-100) -> TRAP
+tw_27(-150,-100) -> TRAP
+tw_27(-100,-100) -> no trap
+tw_27( -50,-100) -> TRAP
+tw_28(-150,-100) -> TRAP
+tw_28(-100,-100) -> TRAP
+tw_28( -50,-100) -> TRAP
+tw_29(-150,-100) -> TRAP
+tw_29(-100,-100) -> TRAP
+tw_29( -50,-100) -> TRAP
+tw_30(-150,-100) -> TRAP
+tw_30(-100,-100) -> TRAP
+tw_30( -50,-100) -> TRAP
+tw_31(-150,-100) -> TRAP
+tw_31(-100,-100) -> TRAP
+tw_31( -50,-100) -> TRAP
+td_0(-150,-100) -> no trap
+td_0(-100,-100) -> no trap
+td_0( -50,-100) -> no trap
+td_1(-150,-100) -> no trap
+td_1(-100,-100) -> no trap
+td_1( -50,-100) -> TRAP
+td_2(-150,-100) -> TRAP
+td_2(-100,-100) -> no trap
+td_2( -50,-100) -> no trap
+td_3(-150,-100) -> TRAP
+td_3(-100,-100) -> no trap
+td_3( -50,-100) -> TRAP
+td_4(-150,-100) -> no trap
+td_4(-100,-100) -> TRAP
+td_4( -50,-100) -> no trap
+td_5(-150,-100) -> no trap
+td_5(-100,-100) -> TRAP
+td_5( -50,-100) -> TRAP
+td_6(-150,-100) -> TRAP
+td_6(-100,-100) -> TRAP
+td_6( -50,-100) -> no trap
+td_7(-150,-100) -> TRAP
+td_7(-100,-100) -> TRAP
+td_7( -50,-100) -> TRAP
+td_8(-150,-100) -> no trap
+td_8(-100,-100) -> no trap
+td_8( -50,-100) -> TRAP
+td_9(-150,-100) -> no trap
+td_9(-100,-100) -> no trap
+td_9( -50,-100) -> TRAP
+td_10(-150,-100) -> TRAP
+td_10(-100,-100) -> no trap
+td_10( -50,-100) -> TRAP
+td_11(-150,-100) -> TRAP
+td_11(-100,-100) -> no trap
+td_11( -50,-100) -> TRAP
+td_12(-150,-100) -> no trap
+td_12(-100,-100) -> TRAP
+td_12( -50,-100) -> TRAP
+td_13(-150,-100) -> no trap
+td_13(-100,-100) -> TRAP
+td_13( -50,-100) -> TRAP
+td_14(-150,-100) -> TRAP
+td_14(-100,-100) -> TRAP
+td_14( -50,-100) -> TRAP
+td_15(-150,-100) -> TRAP
+td_15(-100,-100) -> TRAP
+td_15( -50,-100) -> TRAP
+td_16(-150,-100) -> TRAP
+td_16(-100,-100) -> no trap
+td_16( -50,-100) -> no trap
+td_17(-150,-100) -> TRAP
+td_17(-100,-100) -> no trap
+td_17( -50,-100) -> TRAP
+td_18(-150,-100) -> TRAP
+td_18(-100,-100) -> no trap
+td_18( -50,-100) -> no trap
+td_19(-150,-100) -> TRAP
+td_19(-100,-100) -> no trap
+td_19( -50,-100) -> TRAP
+td_20(-150,-100) -> TRAP
+td_20(-100,-100) -> TRAP
+td_20( -50,-100) -> no trap
+td_21(-150,-100) -> TRAP
+td_21(-100,-100) -> TRAP
+td_21( -50,-100) -> TRAP
+td_22(-150,-100) -> TRAP
+td_22(-100,-100) -> TRAP
+td_22( -50,-100) -> no trap
+td_23(-150,-100) -> TRAP
+td_23(-100,-100) -> TRAP
+td_23( -50,-100) -> TRAP
+td_24(-150,-100) -> TRAP
+td_24(-100,-100) -> no trap
+td_24( -50,-100) -> TRAP
+td_25(-150,-100) -> TRAP
+td_25(-100,-100) -> no trap
+td_25( -50,-100) -> TRAP
+td_26(-150,-100) -> TRAP
+td_26(-100,-100) -> no trap
+td_26( -50,-100) -> TRAP
+td_27(-150,-100) -> TRAP
+td_27(-100,-100) -> no trap
+td_27( -50,-100) -> TRAP
+td_28(-150,-100) -> TRAP
+td_28(-100,-100) -> TRAP
+td_28( -50,-100) -> TRAP
+td_29(-150,-100) -> TRAP
+td_29(-100,-100) -> TRAP
+td_29( -50,-100) -> TRAP
+td_30(-150,-100) -> TRAP
+td_30(-100,-100) -> TRAP
+td_30( -50,-100) -> TRAP
+td_31(-150,-100) -> TRAP
+td_31(-100,-100) -> TRAP
+td_31( -50,-100) -> TRAP
diff --git a/none/tests/ppc64/tw_td.vgtest b/none/tests/ppc64/tw_td.vgtest
new file mode 100644 (file)
index 0000000..9bdaa4e
--- /dev/null
@@ -0,0 +1 @@
+prog: tw_td