|
From: <sv...@va...> - 2005-11-04 15:36:08
|
Author: tom
Date: 2005-11-04 15:36:05 +0000 (Fri, 04 Nov 2005)
New Revision: 5002
Log:
Fix the amd64 version of gen_insn_test.pl to strip any b/w/d suffix
from register names when generating the clobber list as gcc won't
recognise things like r8d but will recognise r8.
This allows us to use the high number integer registers for the tests
which is something Julian asked for ages ago.
Modified:
trunk/none/tests/amd64/gen_insn_test.pl
Modified: trunk/none/tests/amd64/gen_insn_test.pl
=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/amd64/gen_insn_test.pl 2005-11-04 14:38:48 UTC (rev =
5001)
+++ trunk/none/tests/amd64/gen_insn_test.pl 2005-11-04 15:36:05 UTC (rev =
5002)
@@ -68,28 +68,28 @@
dl =3D> "r8", dh =3D> "r8", dx =3D> "r16", edx =3D> "r3=
2", rdx =3D> "r64"
);
=20
+#our @IntRegs =3D (
+# { r8 =3D> "al", r16 =3D> "ax", r32 =3D> "eax", r64 =3D>=
"rax" },
+# { r8 =3D> "bl", r16 =3D> "bx", r32 =3D> "ebx", r64 =3D>=
"rbx" },
+# { r8 =3D> "cl", r16 =3D> "cx", r32 =3D> "ecx", r64 =3D>=
"rcx" },
+# { r8 =3D> "dl", r16 =3D> "dx", r32 =3D> "edx", r64 =3D>=
"rdx" },
+# { r8 =3D> "ah" },
+# { r8 =3D> "bh" },
+# { r8 =3D> "ch" },
+# { r8 =3D> "dh" }
+# );
+
our @IntRegs =3D (
- { r8 =3D> "al", r16 =3D> "ax", r32 =3D> "eax", r64 =3D> =
"rax" },
- { r8 =3D> "bl", r16 =3D> "bx", r32 =3D> "ebx", r64 =3D> =
"rbx" },
- { r8 =3D> "cl", r16 =3D> "cx", r32 =3D> "ecx", r64 =3D> =
"rcx" },
- { r8 =3D> "dl", r16 =3D> "dx", r32 =3D> "edx", r64 =3D> =
"rdx" },
+ { r8 =3D> "r8b", r16 =3D> "r8w", r32 =3D> "r8d", r64 =3D=
> "r8" },
+ { r8 =3D> "r9b", r16 =3D> "r9w", r32 =3D> "r9d", r64 =3D=
> "r9" },
+ { r8 =3D> "r10b", r16 =3D> "r10w", r32 =3D> "r10d", r64 =
=3D> "r10" },
+ { r8 =3D> "r11b", r16 =3D> "r11w", r32 =3D> "r11d", r64 =
=3D> "r11" },
{ r8 =3D> "ah" },
{ r8 =3D> "bh" },
{ r8 =3D> "ch" },
{ r8 =3D> "dh" }
);
=20
-#our @IntRegs =3D (
-# { r8 =3D> "r8b", r16 =3D> "r8w", r32 =3D> "r8d", r64 =3D=
> "r8" },
-# { r8 =3D> "r9b", r16 =3D> "r9w", r32 =3D> "r9d", r64 =3D=
> "r9" },
-# { r8 =3D> "r10b", r16 =3D> "r10w", r32 =3D> "r10d", r64=
=3D> "r10" },
-# { r8 =3D> "r11b", r16 =3D> "r11w", r32 =3D> "r11d", r64=
=3D> "r11" },
-# { r8 =3D> "ah" },
-# { r8 =3D> "bh" },
-# { r8 =3D> "ch" },
-# { r8 =3D> "dh" }
-# );
-
print <<EOF;
#include <math.h>
#include <setjmp.h>
@@ -881,7 +881,10 @@
{
if ($arg->{register} && $arg->{type} ne "st")
{
- print qq|$prefix\"$arg->{register}\"|;
+ my $register =3D $arg->{register};
+
+ $register =3D~ s/^(r[0-9]+)[bwd]$/$1/;
+ print qq|$prefix\"$register\"|;
$prefix =3D ", ";
}
}
|