From: Julian Seward Date: Tue, 7 Feb 2006 20:58:12 +0000 (+0000) Subject: Add regression tests for the twi and tdi instructions, and also for X-Git-Tag: svn/VALGRIND_3_2_0~293 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=707bc50061dc08cf77c672d316c2975219c3657b;p=thirdparty%2Fvalgrind.git Add regression tests for the twi and tdi instructions, and also for consequent SIGTRAP handling. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5618 --- diff --git a/none/tests/ppc32/Makefile.am b/none/tests/ppc32/Makefile.am index 3936f51935..0fc5015904 100644 --- a/none/tests/ppc32/Makefile.am +++ b/none/tests/ppc32/Makefile.am @@ -9,10 +9,11 @@ EXTRA_DIST = $(noinst_SCRIPTS) \ test_fx.stderr.exp test_fx.stdout.exp test_fx.vgtest \ test_gx.stderr.exp test_gx.stdout.exp test_gx.vgtest \ testVMX.stderr.exp testVMX.stdout.exp testVMX.vgtest \ + twi.stderr.exp twi.stdout.exp twi.vgtest \ xlc_dbl_u32.stderr.exp xlc_dbl_u32.stdout.exp xlc_dbl_u32.vgtest check_PROGRAMS = \ - lsw jm-insns test_fx test_gx testVMX xlc_dbl_u32 + lsw jm-insns test_fx test_gx testVMX twi xlc_dbl_u32 AM_CFLAGS = $(WERROR) -Winline -Wall -Wshadow -g -I$(top_srcdir)/include \ @FLAG_M32@ diff --git a/none/tests/ppc32/twi.c b/none/tests/ppc32/twi.c new file mode 120000 index 0000000000..e753fa9587 --- /dev/null +++ b/none/tests/ppc32/twi.c @@ -0,0 +1 @@ +../ppc64/twi_tdi.c \ No newline at end of file diff --git a/none/tests/ppc32/twi.stderr.exp b/none/tests/ppc32/twi.stderr.exp new file mode 100644 index 0000000000..139597f9cb --- /dev/null +++ b/none/tests/ppc32/twi.stderr.exp @@ -0,0 +1,2 @@ + + diff --git a/none/tests/ppc32/twi.stdout.exp b/none/tests/ppc32/twi.stdout.exp new file mode 100644 index 0000000000..508391b7b1 --- /dev/null +++ b/none/tests/ppc32/twi.stdout.exp @@ -0,0 +1,96 @@ +twi_0_neg100(-150) -> no trap +twi_0_neg100(-100) -> no trap +twi_0_neg100( -50) -> no trap +twi_1_neg100(-150) -> no trap +twi_1_neg100(-100) -> no trap +twi_1_neg100( -50) -> TRAP +twi_2_neg100(-150) -> TRAP +twi_2_neg100(-100) -> no trap +twi_2_neg100( -50) -> no trap +twi_3_neg100(-150) -> TRAP +twi_3_neg100(-100) -> no trap +twi_3_neg100( -50) -> TRAP +twi_4_neg100(-150) -> no trap +twi_4_neg100(-100) -> TRAP +twi_4_neg100( -50) -> no trap +twi_5_neg100(-150) -> no trap +twi_5_neg100(-100) -> TRAP +twi_5_neg100( -50) -> TRAP +twi_6_neg100(-150) -> TRAP +twi_6_neg100(-100) -> TRAP +twi_6_neg100( -50) -> no trap +twi_7_neg100(-150) -> TRAP +twi_7_neg100(-100) -> TRAP +twi_7_neg100( -50) -> TRAP +twi_8_neg100(-150) -> no trap +twi_8_neg100(-100) -> no trap +twi_8_neg100( -50) -> TRAP +twi_9_neg100(-150) -> no trap +twi_9_neg100(-100) -> no trap +twi_9_neg100( -50) -> TRAP +twi_10_neg100(-150) -> TRAP +twi_10_neg100(-100) -> no trap +twi_10_neg100( -50) -> TRAP +twi_11_neg100(-150) -> TRAP +twi_11_neg100(-100) -> no trap +twi_11_neg100( -50) -> TRAP +twi_12_neg100(-150) -> no trap +twi_12_neg100(-100) -> TRAP +twi_12_neg100( -50) -> TRAP +twi_13_neg100(-150) -> no trap +twi_13_neg100(-100) -> TRAP +twi_13_neg100( -50) -> TRAP +twi_14_neg100(-150) -> TRAP +twi_14_neg100(-100) -> TRAP +twi_14_neg100( -50) -> TRAP +twi_15_neg100(-150) -> TRAP +twi_15_neg100(-100) -> TRAP +twi_15_neg100( -50) -> TRAP +twi_16_neg100(-150) -> TRAP +twi_16_neg100(-100) -> no trap +twi_16_neg100( -50) -> no trap +twi_17_neg100(-150) -> TRAP +twi_17_neg100(-100) -> no trap +twi_17_neg100( -50) -> TRAP +twi_18_neg100(-150) -> TRAP +twi_18_neg100(-100) -> no trap +twi_18_neg100( -50) -> no trap +twi_19_neg100(-150) -> TRAP +twi_19_neg100(-100) -> no trap +twi_19_neg100( -50) -> TRAP +twi_20_neg100(-150) -> TRAP +twi_20_neg100(-100) -> TRAP +twi_20_neg100( -50) -> no trap +twi_21_neg100(-150) -> TRAP +twi_21_neg100(-100) -> TRAP +twi_21_neg100( -50) -> TRAP +twi_22_neg100(-150) -> TRAP +twi_22_neg100(-100) -> TRAP +twi_22_neg100( -50) -> no trap +twi_23_neg100(-150) -> TRAP +twi_23_neg100(-100) -> TRAP +twi_23_neg100( -50) -> TRAP +twi_24_neg100(-150) -> TRAP +twi_24_neg100(-100) -> no trap +twi_24_neg100( -50) -> TRAP +twi_25_neg100(-150) -> TRAP +twi_25_neg100(-100) -> no trap +twi_25_neg100( -50) -> TRAP +twi_26_neg100(-150) -> TRAP +twi_26_neg100(-100) -> no trap +twi_26_neg100( -50) -> TRAP +twi_27_neg100(-150) -> TRAP +twi_27_neg100(-100) -> no trap +twi_27_neg100( -50) -> TRAP +twi_28_neg100(-150) -> TRAP +twi_28_neg100(-100) -> TRAP +twi_28_neg100( -50) -> TRAP +twi_29_neg100(-150) -> TRAP +twi_29_neg100(-100) -> TRAP +twi_29_neg100( -50) -> TRAP +twi_30_neg100(-150) -> TRAP +twi_30_neg100(-100) -> TRAP +twi_30_neg100( -50) -> TRAP +twi_31_neg100(-150) -> TRAP +twi_31_neg100(-100) -> TRAP +twi_31_neg100( -50) -> TRAP diff --git a/none/tests/ppc32/twi.vgtest b/none/tests/ppc32/twi.vgtest new file mode 100644 index 0000000000..596b90d55f --- /dev/null +++ b/none/tests/ppc32/twi.vgtest @@ -0,0 +1 @@ +prog: twi diff --git a/none/tests/ppc64/Makefile.am b/none/tests/ppc64/Makefile.am index 3b654a7784..61cb411569 100644 --- a/none/tests/ppc64/Makefile.am +++ b/none/tests/ppc64/Makefile.am @@ -5,10 +5,11 @@ EXTRA_DIST = $(noinst_SCRIPTS) \ jm-int.stderr.exp jm-int.stdout.exp jm-int.vgtest \ jm-fp.stderr.exp jm-fp.stdout.exp jm-fp.vgtest \ jm-vmx.stderr.exp jm-vmx.stdout.exp jm-vmx.vgtest \ - lsw.stderr.exp lsw.stdout.exp lsw.vgtest + lsw.stderr.exp lsw.stdout.exp lsw.vgtest \ + twi_tdi.stderr.exp twi_tdi.stdout.exp twi_tdi.vgtest check_PROGRAMS = \ - jm-insns lsw + jm-insns lsw twi_tdi AM_CFLAGS = $(WERROR) -Winline -Wall -Wshadow -g -I$(top_srcdir)/include \ @FLAG_M64@ diff --git a/none/tests/ppc64/twi_tdi.c b/none/tests/ppc64/twi_tdi.c new file mode 100644 index 0000000000..fb4287078d --- /dev/null +++ b/none/tests/ppc64/twi_tdi.c @@ -0,0 +1,374 @@ + +#include +#include +#include +#include +#include + +static jmp_buf env_sigtrap; +static void handler_sigtrap ( int x ) { longjmp(env_sigtrap,1); } + +void try ( char* who, void(*maybe_traps)(long), long arg ) +{ + 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(arg); + } + signal(SIGTRAP, SIG_DFL); + + printf("%s(%4lld) -> %s\n", who, (long long int)arg, + trapped ? "TRAP" : "no trap" ); +} + +static void twi_0_neg100 ( long n ) { + __asm__ __volatile__("twi 0, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void twi_1_neg100 ( long n ) { + __asm__ __volatile__("twi 1, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void twi_2_neg100 ( long n ) { + __asm__ __volatile__("twi 2, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void twi_3_neg100 ( long n ) { + __asm__ __volatile__("twi 3, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void twi_4_neg100 ( long n ) { + __asm__ __volatile__("twi 4, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void twi_5_neg100 ( long n ) { + __asm__ __volatile__("twi 5, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void twi_6_neg100 ( long n ) { + __asm__ __volatile__("twi 6, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void twi_7_neg100 ( long n ) { + __asm__ __volatile__("twi 7, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void twi_8_neg100 ( long n ) { + __asm__ __volatile__("twi 8, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void twi_9_neg100 ( long n ) { + __asm__ __volatile__("twi 9, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void twi_10_neg100 ( long n ) { + __asm__ __volatile__("twi 10, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void twi_11_neg100 ( long n ) { + __asm__ __volatile__("twi 11, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void twi_12_neg100 ( long n ) { + __asm__ __volatile__("twi 12, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void twi_13_neg100 ( long n ) { + __asm__ __volatile__("twi 13, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void twi_14_neg100 ( long n ) { + __asm__ __volatile__("twi 14, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void twi_15_neg100 ( long n ) { + __asm__ __volatile__("twi 15, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void twi_16_neg100 ( long n ) { + __asm__ __volatile__("twi 16, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void twi_17_neg100 ( long n ) { + __asm__ __volatile__("twi 17, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void twi_18_neg100 ( long n ) { + __asm__ __volatile__("twi 18, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void twi_19_neg100 ( long n ) { + __asm__ __volatile__("twi 19, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void twi_20_neg100 ( long n ) { + __asm__ __volatile__("twi 20, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void twi_21_neg100 ( long n ) { + __asm__ __volatile__("twi 21, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void twi_22_neg100 ( long n ) { + __asm__ __volatile__("twi 22, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void twi_23_neg100 ( long n ) { + __asm__ __volatile__("twi 23, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void twi_24_neg100 ( long n ) { + __asm__ __volatile__("twi 24, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void twi_25_neg100 ( long n ) { + __asm__ __volatile__("twi 25, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void twi_26_neg100 ( long n ) { + __asm__ __volatile__("twi 26, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void twi_27_neg100 ( long n ) { + __asm__ __volatile__("twi 27, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void twi_28_neg100 ( long n ) { + __asm__ __volatile__("twi 28, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void twi_29_neg100 ( long n ) { + __asm__ __volatile__("twi 29, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void twi_30_neg100 ( long n ) { + __asm__ __volatile__("twi 30, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void twi_31_neg100 ( long n ) { + __asm__ __volatile__("twi 31, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} + +#if defined(__powerpc64__) + +static void tdi_0_neg100 ( long n ) { + __asm__ __volatile__("tdi 0, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void tdi_1_neg100 ( long n ) { + __asm__ __volatile__("tdi 1, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void tdi_2_neg100 ( long n ) { + __asm__ __volatile__("tdi 2, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void tdi_3_neg100 ( long n ) { + __asm__ __volatile__("tdi 3, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void tdi_4_neg100 ( long n ) { + __asm__ __volatile__("tdi 4, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void tdi_5_neg100 ( long n ) { + __asm__ __volatile__("tdi 5, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void tdi_6_neg100 ( long n ) { + __asm__ __volatile__("tdi 6, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void tdi_7_neg100 ( long n ) { + __asm__ __volatile__("tdi 7, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void tdi_8_neg100 ( long n ) { + __asm__ __volatile__("tdi 8, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void tdi_9_neg100 ( long n ) { + __asm__ __volatile__("tdi 9, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void tdi_10_neg100 ( long n ) { + __asm__ __volatile__("tdi 10, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void tdi_11_neg100 ( long n ) { + __asm__ __volatile__("tdi 11, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void tdi_12_neg100 ( long n ) { + __asm__ __volatile__("tdi 12, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void tdi_13_neg100 ( long n ) { + __asm__ __volatile__("tdi 13, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void tdi_14_neg100 ( long n ) { + __asm__ __volatile__("tdi 14, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void tdi_15_neg100 ( long n ) { + __asm__ __volatile__("tdi 15, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void tdi_16_neg100 ( long n ) { + __asm__ __volatile__("tdi 16, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void tdi_17_neg100 ( long n ) { + __asm__ __volatile__("tdi 17, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void tdi_18_neg100 ( long n ) { + __asm__ __volatile__("tdi 18, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void tdi_19_neg100 ( long n ) { + __asm__ __volatile__("tdi 19, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void tdi_20_neg100 ( long n ) { + __asm__ __volatile__("tdi 20, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void tdi_21_neg100 ( long n ) { + __asm__ __volatile__("tdi 21, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void tdi_22_neg100 ( long n ) { + __asm__ __volatile__("tdi 22, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void tdi_23_neg100 ( long n ) { + __asm__ __volatile__("tdi 23, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void tdi_24_neg100 ( long n ) { + __asm__ __volatile__("tdi 24, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void tdi_25_neg100 ( long n ) { + __asm__ __volatile__("tdi 25, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void tdi_26_neg100 ( long n ) { + __asm__ __volatile__("tdi 26, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void tdi_27_neg100 ( long n ) { + __asm__ __volatile__("tdi 27, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void tdi_28_neg100 ( long n ) { + __asm__ __volatile__("tdi 28, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void tdi_29_neg100 ( long n ) { + __asm__ __volatile__("tdi 29, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void tdi_30_neg100 ( long n ) { + __asm__ __volatile__("tdi 30, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} +static void tdi_31_neg100 ( long n ) { + __asm__ __volatile__("tdi 31, %0,-100" + : /*out*/ : /*in*/ "r" (n) ); +} + +#endif + + +int main ( void ) +{ +#define TWI_GROUP(cmp) \ + try("twi_" #cmp "_neg100", twi_##cmp##_neg100, -150); \ + try("twi_" #cmp "_neg100", twi_##cmp##_neg100, -100); \ + try("twi_" #cmp "_neg100", twi_##cmp##_neg100, -50); + + TWI_GROUP(0); + TWI_GROUP(1); + TWI_GROUP(2); + TWI_GROUP(3); + TWI_GROUP(4); + TWI_GROUP(5); + TWI_GROUP(6); + TWI_GROUP(7); + TWI_GROUP(8); + TWI_GROUP(9); + TWI_GROUP(10); + TWI_GROUP(11); + TWI_GROUP(12); + TWI_GROUP(13); + TWI_GROUP(14); + TWI_GROUP(15); + TWI_GROUP(16); + TWI_GROUP(17); + TWI_GROUP(18); + TWI_GROUP(19); + TWI_GROUP(20); + TWI_GROUP(21); + TWI_GROUP(22); + TWI_GROUP(23); + TWI_GROUP(24); + TWI_GROUP(25); + TWI_GROUP(26); + TWI_GROUP(27); + TWI_GROUP(28); + TWI_GROUP(29); + TWI_GROUP(30); + TWI_GROUP(31); +#if defined(__powerpc64__) +#define TDI_GROUP(cmp) \ + try("tdi_" #cmp "_neg100", tdi_##cmp##_neg100, -150); \ + try("tdi_" #cmp "_neg100", tdi_##cmp##_neg100, -100); \ + try("tdi_" #cmp "_neg100", tdi_##cmp##_neg100, -50); + + TDI_GROUP(0); + TDI_GROUP(1); + TDI_GROUP(2); + TDI_GROUP(3); + TDI_GROUP(4); + TDI_GROUP(5); + TDI_GROUP(6); + TDI_GROUP(7); + TDI_GROUP(8); + TDI_GROUP(9); + TDI_GROUP(10); + TDI_GROUP(11); + TDI_GROUP(12); + TDI_GROUP(13); + TDI_GROUP(14); + TDI_GROUP(15); + TDI_GROUP(16); + TDI_GROUP(17); + TDI_GROUP(18); + TDI_GROUP(19); + TDI_GROUP(20); + TDI_GROUP(21); + TDI_GROUP(22); + TDI_GROUP(23); + TDI_GROUP(24); + TDI_GROUP(25); + TDI_GROUP(26); + TDI_GROUP(27); + TDI_GROUP(28); + TDI_GROUP(29); + TDI_GROUP(30); + TDI_GROUP(31); +#endif + return 0; +} diff --git a/none/tests/ppc64/twi_tdi.stderr.exp b/none/tests/ppc64/twi_tdi.stderr.exp new file mode 100644 index 0000000000..139597f9cb --- /dev/null +++ b/none/tests/ppc64/twi_tdi.stderr.exp @@ -0,0 +1,2 @@ + + diff --git a/none/tests/ppc64/twi_tdi.stdout.exp b/none/tests/ppc64/twi_tdi.stdout.exp new file mode 100644 index 0000000000..809d06a7c6 --- /dev/null +++ b/none/tests/ppc64/twi_tdi.stdout.exp @@ -0,0 +1,192 @@ +twi_0_neg100(-150) -> no trap +twi_0_neg100(-100) -> no trap +twi_0_neg100( -50) -> no trap +twi_1_neg100(-150) -> no trap +twi_1_neg100(-100) -> no trap +twi_1_neg100( -50) -> TRAP +twi_2_neg100(-150) -> TRAP +twi_2_neg100(-100) -> no trap +twi_2_neg100( -50) -> no trap +twi_3_neg100(-150) -> TRAP +twi_3_neg100(-100) -> no trap +twi_3_neg100( -50) -> TRAP +twi_4_neg100(-150) -> no trap +twi_4_neg100(-100) -> TRAP +twi_4_neg100( -50) -> no trap +twi_5_neg100(-150) -> no trap +twi_5_neg100(-100) -> TRAP +twi_5_neg100( -50) -> TRAP +twi_6_neg100(-150) -> TRAP +twi_6_neg100(-100) -> TRAP +twi_6_neg100( -50) -> no trap +twi_7_neg100(-150) -> TRAP +twi_7_neg100(-100) -> TRAP +twi_7_neg100( -50) -> TRAP +twi_8_neg100(-150) -> no trap +twi_8_neg100(-100) -> no trap +twi_8_neg100( -50) -> TRAP +twi_9_neg100(-150) -> no trap +twi_9_neg100(-100) -> no trap +twi_9_neg100( -50) -> TRAP +twi_10_neg100(-150) -> TRAP +twi_10_neg100(-100) -> no trap +twi_10_neg100( -50) -> TRAP +twi_11_neg100(-150) -> TRAP +twi_11_neg100(-100) -> no trap +twi_11_neg100( -50) -> TRAP +twi_12_neg100(-150) -> no trap +twi_12_neg100(-100) -> TRAP +twi_12_neg100( -50) -> TRAP +twi_13_neg100(-150) -> no trap +twi_13_neg100(-100) -> TRAP +twi_13_neg100( -50) -> TRAP +twi_14_neg100(-150) -> TRAP +twi_14_neg100(-100) -> TRAP +twi_14_neg100( -50) -> TRAP +twi_15_neg100(-150) -> TRAP +twi_15_neg100(-100) -> TRAP +twi_15_neg100( -50) -> TRAP +twi_16_neg100(-150) -> TRAP +twi_16_neg100(-100) -> no trap +twi_16_neg100( -50) -> no trap +twi_17_neg100(-150) -> TRAP +twi_17_neg100(-100) -> no trap +twi_17_neg100( -50) -> TRAP +twi_18_neg100(-150) -> TRAP +twi_18_neg100(-100) -> no trap +twi_18_neg100( -50) -> no trap +twi_19_neg100(-150) -> TRAP +twi_19_neg100(-100) -> no trap +twi_19_neg100( -50) -> TRAP +twi_20_neg100(-150) -> TRAP +twi_20_neg100(-100) -> TRAP +twi_20_neg100( -50) -> no trap +twi_21_neg100(-150) -> TRAP +twi_21_neg100(-100) -> TRAP +twi_21_neg100( -50) -> TRAP +twi_22_neg100(-150) -> TRAP +twi_22_neg100(-100) -> TRAP +twi_22_neg100( -50) -> no trap +twi_23_neg100(-150) -> TRAP +twi_23_neg100(-100) -> TRAP +twi_23_neg100( -50) -> TRAP +twi_24_neg100(-150) -> TRAP +twi_24_neg100(-100) -> no trap +twi_24_neg100( -50) -> TRAP +twi_25_neg100(-150) -> TRAP +twi_25_neg100(-100) -> no trap +twi_25_neg100( -50) -> TRAP +twi_26_neg100(-150) -> TRAP +twi_26_neg100(-100) -> no trap +twi_26_neg100( -50) -> TRAP +twi_27_neg100(-150) -> TRAP +twi_27_neg100(-100) -> no trap +twi_27_neg100( -50) -> TRAP +twi_28_neg100(-150) -> TRAP +twi_28_neg100(-100) -> TRAP +twi_28_neg100( -50) -> TRAP +twi_29_neg100(-150) -> TRAP +twi_29_neg100(-100) -> TRAP +twi_29_neg100( -50) -> TRAP +twi_30_neg100(-150) -> TRAP +twi_30_neg100(-100) -> TRAP +twi_30_neg100( -50) -> TRAP +twi_31_neg100(-150) -> TRAP +twi_31_neg100(-100) -> TRAP +twi_31_neg100( -50) -> TRAP +tdi_0_neg100(-150) -> no trap +tdi_0_neg100(-100) -> no trap +tdi_0_neg100( -50) -> no trap +tdi_1_neg100(-150) -> no trap +tdi_1_neg100(-100) -> no trap +tdi_1_neg100( -50) -> TRAP +tdi_2_neg100(-150) -> TRAP +tdi_2_neg100(-100) -> no trap +tdi_2_neg100( -50) -> no trap +tdi_3_neg100(-150) -> TRAP +tdi_3_neg100(-100) -> no trap +tdi_3_neg100( -50) -> TRAP +tdi_4_neg100(-150) -> no trap +tdi_4_neg100(-100) -> TRAP +tdi_4_neg100( -50) -> no trap +tdi_5_neg100(-150) -> no trap +tdi_5_neg100(-100) -> TRAP +tdi_5_neg100( -50) -> TRAP +tdi_6_neg100(-150) -> TRAP +tdi_6_neg100(-100) -> TRAP +tdi_6_neg100( -50) -> no trap +tdi_7_neg100(-150) -> TRAP +tdi_7_neg100(-100) -> TRAP +tdi_7_neg100( -50) -> TRAP +tdi_8_neg100(-150) -> no trap +tdi_8_neg100(-100) -> no trap +tdi_8_neg100( -50) -> TRAP +tdi_9_neg100(-150) -> no trap +tdi_9_neg100(-100) -> no trap +tdi_9_neg100( -50) -> TRAP +tdi_10_neg100(-150) -> TRAP +tdi_10_neg100(-100) -> no trap +tdi_10_neg100( -50) -> TRAP +tdi_11_neg100(-150) -> TRAP +tdi_11_neg100(-100) -> no trap +tdi_11_neg100( -50) -> TRAP +tdi_12_neg100(-150) -> no trap +tdi_12_neg100(-100) -> TRAP +tdi_12_neg100( -50) -> TRAP +tdi_13_neg100(-150) -> no trap +tdi_13_neg100(-100) -> TRAP +tdi_13_neg100( -50) -> TRAP +tdi_14_neg100(-150) -> TRAP +tdi_14_neg100(-100) -> TRAP +tdi_14_neg100( -50) -> TRAP +tdi_15_neg100(-150) -> TRAP +tdi_15_neg100(-100) -> TRAP +tdi_15_neg100( -50) -> TRAP +tdi_16_neg100(-150) -> TRAP +tdi_16_neg100(-100) -> no trap +tdi_16_neg100( -50) -> no trap +tdi_17_neg100(-150) -> TRAP +tdi_17_neg100(-100) -> no trap +tdi_17_neg100( -50) -> TRAP +tdi_18_neg100(-150) -> TRAP +tdi_18_neg100(-100) -> no trap +tdi_18_neg100( -50) -> no trap +tdi_19_neg100(-150) -> TRAP +tdi_19_neg100(-100) -> no trap +tdi_19_neg100( -50) -> TRAP +tdi_20_neg100(-150) -> TRAP +tdi_20_neg100(-100) -> TRAP +tdi_20_neg100( -50) -> no trap +tdi_21_neg100(-150) -> TRAP +tdi_21_neg100(-100) -> TRAP +tdi_21_neg100( -50) -> TRAP +tdi_22_neg100(-150) -> TRAP +tdi_22_neg100(-100) -> TRAP +tdi_22_neg100( -50) -> no trap +tdi_23_neg100(-150) -> TRAP +tdi_23_neg100(-100) -> TRAP +tdi_23_neg100( -50) -> TRAP +tdi_24_neg100(-150) -> TRAP +tdi_24_neg100(-100) -> no trap +tdi_24_neg100( -50) -> TRAP +tdi_25_neg100(-150) -> TRAP +tdi_25_neg100(-100) -> no trap +tdi_25_neg100( -50) -> TRAP +tdi_26_neg100(-150) -> TRAP +tdi_26_neg100(-100) -> no trap +tdi_26_neg100( -50) -> TRAP +tdi_27_neg100(-150) -> TRAP +tdi_27_neg100(-100) -> no trap +tdi_27_neg100( -50) -> TRAP +tdi_28_neg100(-150) -> TRAP +tdi_28_neg100(-100) -> TRAP +tdi_28_neg100( -50) -> TRAP +tdi_29_neg100(-150) -> TRAP +tdi_29_neg100(-100) -> TRAP +tdi_29_neg100( -50) -> TRAP +tdi_30_neg100(-150) -> TRAP +tdi_30_neg100(-100) -> TRAP +tdi_30_neg100( -50) -> TRAP +tdi_31_neg100(-150) -> TRAP +tdi_31_neg100(-100) -> TRAP +tdi_31_neg100( -50) -> TRAP diff --git a/none/tests/ppc64/twi_tdi.vgtest b/none/tests/ppc64/twi_tdi.vgtest new file mode 100644 index 0000000000..45b587ce8b --- /dev/null +++ b/none/tests/ppc64/twi_tdi.vgtest @@ -0,0 +1 @@ +prog: twi_tdi