|
From: <sv...@va...> - 2005-11-19 22:14:52
|
Author: sewardj
Date: 2005-11-19 22:14:45 +0000 (Sat, 19 Nov 2005)
New Revision: 5214
Log:
Don't test division by zero; 7400 doesn't do what 970/7447 do.
Modified:
trunk/none/tests/ppc32/jm-insns.c
trunk/none/tests/ppc32/jm-insns.stdout.exp
trunk/none/tests/ppc32/jm-vmx.stdout.exp
Modified: trunk/none/tests/ppc32/jm-insns.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/none/tests/ppc32/jm-insns.c 2005-11-19 20:59:17 UTC (rev 5213)
+++ trunk/none/tests/ppc32/jm-insns.c 2005-11-19 22:14:45 UTC (rev 5214)
@@ -4111,7 +4111,10 @@
uint32_t test_flags)
{
volatile uint32_t res, flags, xer, xer_orig, tmpcr, tmpxer;
- int i, j;
+ int i, j, is_div;
+
+ // catches div, divwu, divo, divwu, divwuo, and . variants
+ is_div =3D NULL !=3D strstr(name, "divw");
=20
xer_orig =3D 0x00000000;
redo:
@@ -4119,6 +4122,10 @@
for (j=3D0; j<nb_iargs; j++) {
r14 =3D iargs[i];
r15 =3D iargs[j];
+ /* result of division by zero is implementation dependent.
+ don't test it. */
+ if (is_div && iargs[j] =3D=3D 0)
+ continue;
/* Save flags */
__asm__ __volatile__ ("mfcr 18");
tmpcr =3D r18;
@@ -4145,7 +4152,7 @@
}
if (verbose) printf("\n");
}
- if (test_flags & PPC_XER_CA && xer_orig =3D=3D 0x00000000) {
+ if ((test_flags & PPC_XER_CA) && xer_orig =3D=3D 0x00000000) {
xer_orig =3D 0x20000000;
goto redo;
}
@@ -4185,7 +4192,7 @@
printf("%s %08x =3D> %08x (%08x %08x)\n",
name, iargs[i], res, flags, xer);
}
- if (test_flags & PPC_XER_CA && xer_orig =3D=3D 0x00000000) {
+ if ((test_flags & PPC_XER_CA) && xer_orig =3D=3D 0x00000000) {
xer_orig =3D 0x20000000;
goto redo;
}
Modified: trunk/none/tests/ppc32/jm-insns.stdout.exp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/none/tests/ppc32/jm-insns.stdout.exp 2005-11-19 20:59:17 UTC (r=
ev 5213)
+++ trunk/none/tests/ppc32/jm-insns.stdout.exp 2005-11-19 22:14:45 UTC (r=
ev 5214)
@@ -39,43 +39,31 @@
addco ffffffff, 000f423f =3D> 000f423e (00000000 20000000)
addco ffffffff, ffffffff =3D> fffffffe (00000000 20000000)
=20
- divw 00000000, 00000000 =3D> 00000000 (00000000 00000000)
divw 00000000, 000f423f =3D> 00000000 (00000000 00000000)
divw 00000000, ffffffff =3D> 00000000 (00000000 00000000)
- divw 000f423f, 00000000 =3D> 00000000 (00000000 00000000)
divw 000f423f, 000f423f =3D> 00000001 (00000000 00000000)
divw 000f423f, ffffffff =3D> fff0bdc1 (00000000 00000000)
- divw ffffffff, 00000000 =3D> 00000000 (00000000 00000000)
divw ffffffff, 000f423f =3D> 00000000 (00000000 00000000)
divw ffffffff, ffffffff =3D> 00000001 (00000000 00000000)
=20
- divwo 00000000, 00000000 =3D> 00000000 (00000000 c0000000)
divwo 00000000, 000f423f =3D> 00000000 (00000000 00000000)
divwo 00000000, ffffffff =3D> 00000000 (00000000 00000000)
- divwo 000f423f, 00000000 =3D> 00000000 (00000000 c0000000)
divwo 000f423f, 000f423f =3D> 00000001 (00000000 00000000)
divwo 000f423f, ffffffff =3D> fff0bdc1 (00000000 00000000)
- divwo ffffffff, 00000000 =3D> 00000000 (00000000 c0000000)
divwo ffffffff, 000f423f =3D> 00000000 (00000000 00000000)
divwo ffffffff, ffffffff =3D> 00000001 (00000000 00000000)
=20
- divwu 00000000, 00000000 =3D> 00000000 (00000000 00000000)
divwu 00000000, 000f423f =3D> 00000000 (00000000 00000000)
divwu 00000000, ffffffff =3D> 00000000 (00000000 00000000)
- divwu 000f423f, 00000000 =3D> 00000000 (00000000 00000000)
divwu 000f423f, 000f423f =3D> 00000001 (00000000 00000000)
divwu 000f423f, ffffffff =3D> 00000000 (00000000 00000000)
- divwu ffffffff, 00000000 =3D> 00000000 (00000000 00000000)
divwu ffffffff, 000f423f =3D> 000010c6 (00000000 00000000)
divwu ffffffff, ffffffff =3D> 00000001 (00000000 00000000)
=20
- divwuo 00000000, 00000000 =3D> 00000000 (00000000 c0000000)
divwuo 00000000, 000f423f =3D> 00000000 (00000000 00000000)
divwuo 00000000, ffffffff =3D> 00000000 (00000000 00000000)
- divwuo 000f423f, 00000000 =3D> 00000000 (00000000 c0000000)
divwuo 000f423f, 000f423f =3D> 00000001 (00000000 00000000)
divwuo 000f423f, ffffffff =3D> 00000000 (00000000 00000000)
- divwuo ffffffff, 00000000 =3D> 00000000 (00000000 c0000000)
divwuo ffffffff, 000f423f =3D> 000010c6 (00000000 00000000)
divwuo ffffffff, ffffffff =3D> 00000001 (00000000 00000000)
=20
@@ -200,43 +188,31 @@
addco. ffffffff, 000f423f =3D> 000f423e (40000000 20000000)
addco. ffffffff, ffffffff =3D> fffffffe (80000000 20000000)
=20
- divw. 00000000, 00000000 =3D> 00000000 (20000000 00000000)
divw. 00000000, 000f423f =3D> 00000000 (20000000 00000000)
divw. 00000000, ffffffff =3D> 00000000 (20000000 00000000)
- divw. 000f423f, 00000000 =3D> 00000000 (20000000 00000000)
divw. 000f423f, 000f423f =3D> 00000001 (40000000 00000000)
divw. 000f423f, ffffffff =3D> fff0bdc1 (80000000 00000000)
- divw. ffffffff, 00000000 =3D> 00000000 (20000000 00000000)
divw. ffffffff, 000f423f =3D> 00000000 (20000000 00000000)
divw. ffffffff, ffffffff =3D> 00000001 (40000000 00000000)
=20
- divwo. 00000000, 00000000 =3D> 00000000 (30000000 c0000000)
divwo. 00000000, 000f423f =3D> 00000000 (20000000 00000000)
divwo. 00000000, ffffffff =3D> 00000000 (20000000 00000000)
- divwo. 000f423f, 00000000 =3D> 00000000 (30000000 c0000000)
divwo. 000f423f, 000f423f =3D> 00000001 (40000000 00000000)
divwo. 000f423f, ffffffff =3D> fff0bdc1 (80000000 00000000)
- divwo. ffffffff, 00000000 =3D> 00000000 (30000000 c0000000)
divwo. ffffffff, 000f423f =3D> 00000000 (20000000 00000000)
divwo. ffffffff, ffffffff =3D> 00000001 (40000000 00000000)
=20
- divwu. 00000000, 00000000 =3D> 00000000 (20000000 00000000)
divwu. 00000000, 000f423f =3D> 00000000 (20000000 00000000)
divwu. 00000000, ffffffff =3D> 00000000 (20000000 00000000)
- divwu. 000f423f, 00000000 =3D> 00000000 (20000000 00000000)
divwu. 000f423f, 000f423f =3D> 00000001 (40000000 00000000)
divwu. 000f423f, ffffffff =3D> 00000000 (20000000 00000000)
- divwu. ffffffff, 00000000 =3D> 00000000 (20000000 00000000)
divwu. ffffffff, 000f423f =3D> 000010c6 (40000000 00000000)
divwu. ffffffff, ffffffff =3D> 00000001 (40000000 00000000)
=20
- divwuo. 00000000, 00000000 =3D> 00000000 (30000000 c0000000)
divwuo. 00000000, 000f423f =3D> 00000000 (20000000 00000000)
divwuo. 00000000, ffffffff =3D> 00000000 (20000000 00000000)
- divwuo. 000f423f, 00000000 =3D> 00000000 (30000000 c0000000)
divwuo. 000f423f, 000f423f =3D> 00000001 (40000000 00000000)
divwuo. 000f423f, ffffffff =3D> 00000000 (20000000 00000000)
- divwuo. ffffffff, 00000000 =3D> 00000000 (30000000 c0000000)
divwuo. ffffffff, 000f423f =3D> 000010c6 (40000000 00000000)
divwuo. ffffffff, ffffffff =3D> 00000001 (40000000 00000000)
=20
Modified: trunk/none/tests/ppc32/jm-vmx.stdout.exp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/none/tests/ppc32/jm-vmx.stdout.exp 2005-11-19 20:59:17 UTC (rev=
5213)
+++ trunk/none/tests/ppc32/jm-vmx.stdout.exp 2005-11-19 22:14:45 UTC (rev=
5214)
@@ -39,43 +39,31 @@
addco ffffffff, 000f423f =3D> 000f423e (00000000 20000000)
addco ffffffff, ffffffff =3D> fffffffe (00000000 20000000)
=20
- divw 00000000, 00000000 =3D> 00000000 (00000000 00000000)
divw 00000000, 000f423f =3D> 00000000 (00000000 00000000)
divw 00000000, ffffffff =3D> 00000000 (00000000 00000000)
- divw 000f423f, 00000000 =3D> 00000000 (00000000 00000000)
divw 000f423f, 000f423f =3D> 00000001 (00000000 00000000)
divw 000f423f, ffffffff =3D> fff0bdc1 (00000000 00000000)
- divw ffffffff, 00000000 =3D> 00000000 (00000000 00000000)
divw ffffffff, 000f423f =3D> 00000000 (00000000 00000000)
divw ffffffff, ffffffff =3D> 00000001 (00000000 00000000)
=20
- divwo 00000000, 00000000 =3D> 00000000 (00000000 c0000000)
divwo 00000000, 000f423f =3D> 00000000 (00000000 00000000)
divwo 00000000, ffffffff =3D> 00000000 (00000000 00000000)
- divwo 000f423f, 00000000 =3D> 00000000 (00000000 c0000000)
divwo 000f423f, 000f423f =3D> 00000001 (00000000 00000000)
divwo 000f423f, ffffffff =3D> fff0bdc1 (00000000 00000000)
- divwo ffffffff, 00000000 =3D> 00000000 (00000000 c0000000)
divwo ffffffff, 000f423f =3D> 00000000 (00000000 00000000)
divwo ffffffff, ffffffff =3D> 00000001 (00000000 00000000)
=20
- divwu 00000000, 00000000 =3D> 00000000 (00000000 00000000)
divwu 00000000, 000f423f =3D> 00000000 (00000000 00000000)
divwu 00000000, ffffffff =3D> 00000000 (00000000 00000000)
- divwu 000f423f, 00000000 =3D> 00000000 (00000000 00000000)
divwu 000f423f, 000f423f =3D> 00000001 (00000000 00000000)
divwu 000f423f, ffffffff =3D> 00000000 (00000000 00000000)
- divwu ffffffff, 00000000 =3D> 00000000 (00000000 00000000)
divwu ffffffff, 000f423f =3D> 000010c6 (00000000 00000000)
divwu ffffffff, ffffffff =3D> 00000001 (00000000 00000000)
=20
- divwuo 00000000, 00000000 =3D> 00000000 (00000000 c0000000)
divwuo 00000000, 000f423f =3D> 00000000 (00000000 00000000)
divwuo 00000000, ffffffff =3D> 00000000 (00000000 00000000)
- divwuo 000f423f, 00000000 =3D> 00000000 (00000000 c0000000)
divwuo 000f423f, 000f423f =3D> 00000001 (00000000 00000000)
divwuo 000f423f, ffffffff =3D> 00000000 (00000000 00000000)
- divwuo ffffffff, 00000000 =3D> 00000000 (00000000 c0000000)
divwuo ffffffff, 000f423f =3D> 000010c6 (00000000 00000000)
divwuo ffffffff, ffffffff =3D> 00000001 (00000000 00000000)
=20
@@ -200,43 +188,31 @@
addco. ffffffff, 000f423f =3D> 000f423e (40000000 20000000)
addco. ffffffff, ffffffff =3D> fffffffe (80000000 20000000)
=20
- divw. 00000000, 00000000 =3D> 00000000 (20000000 00000000)
divw. 00000000, 000f423f =3D> 00000000 (20000000 00000000)
divw. 00000000, ffffffff =3D> 00000000 (20000000 00000000)
- divw. 000f423f, 00000000 =3D> 00000000 (20000000 00000000)
divw. 000f423f, 000f423f =3D> 00000001 (40000000 00000000)
divw. 000f423f, ffffffff =3D> fff0bdc1 (80000000 00000000)
- divw. ffffffff, 00000000 =3D> 00000000 (20000000 00000000)
divw. ffffffff, 000f423f =3D> 00000000 (20000000 00000000)
divw. ffffffff, ffffffff =3D> 00000001 (40000000 00000000)
=20
- divwo. 00000000, 00000000 =3D> 00000000 (30000000 c0000000)
divwo. 00000000, 000f423f =3D> 00000000 (20000000 00000000)
divwo. 00000000, ffffffff =3D> 00000000 (20000000 00000000)
- divwo. 000f423f, 00000000 =3D> 00000000 (30000000 c0000000)
divwo. 000f423f, 000f423f =3D> 00000001 (40000000 00000000)
divwo. 000f423f, ffffffff =3D> fff0bdc1 (80000000 00000000)
- divwo. ffffffff, 00000000 =3D> 00000000 (30000000 c0000000)
divwo. ffffffff, 000f423f =3D> 00000000 (20000000 00000000)
divwo. ffffffff, ffffffff =3D> 00000001 (40000000 00000000)
=20
- divwu. 00000000, 00000000 =3D> 00000000 (20000000 00000000)
divwu. 00000000, 000f423f =3D> 00000000 (20000000 00000000)
divwu. 00000000, ffffffff =3D> 00000000 (20000000 00000000)
- divwu. 000f423f, 00000000 =3D> 00000000 (20000000 00000000)
divwu. 000f423f, 000f423f =3D> 00000001 (40000000 00000000)
divwu. 000f423f, ffffffff =3D> 00000000 (20000000 00000000)
- divwu. ffffffff, 00000000 =3D> 00000000 (20000000 00000000)
divwu. ffffffff, 000f423f =3D> 000010c6 (40000000 00000000)
divwu. ffffffff, ffffffff =3D> 00000001 (40000000 00000000)
=20
- divwuo. 00000000, 00000000 =3D> 00000000 (30000000 c0000000)
divwuo. 00000000, 000f423f =3D> 00000000 (20000000 00000000)
divwuo. 00000000, ffffffff =3D> 00000000 (20000000 00000000)
- divwuo. 000f423f, 00000000 =3D> 00000000 (30000000 c0000000)
divwuo. 000f423f, 000f423f =3D> 00000001 (40000000 00000000)
divwuo. 000f423f, ffffffff =3D> 00000000 (20000000 00000000)
- divwuo. ffffffff, 00000000 =3D> 00000000 (30000000 c0000000)
divwuo. ffffffff, 000f423f =3D> 000010c6 (40000000 00000000)
divwuo. ffffffff, ffffffff =3D> 00000001 (40000000 00000000)
=20
|