|
From: <sv...@va...> - 2006-08-28 18:53:29
|
Author: sewardj
Date: 2006-08-28 19:53:25 +0100 (Mon, 28 Aug 2006)
New Revision: 6035
Log:
64-bit regtest for #132813 (Assertion at priv/guest-x86/toIR.c:652 fails)
Added:
trunk/none/tests/amd64/bug132813-amd64.c
trunk/none/tests/amd64/bug132813-amd64.stderr.exp
trunk/none/tests/amd64/bug132813-amd64.stdout.exp
trunk/none/tests/amd64/bug132813-amd64.vgtest
Modified:
trunk/none/tests/amd64/Makefile.am
Modified: trunk/none/tests/amd64/Makefile.am
=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/Makefile.am 2006-08-28 18:09:46 UTC (rev 6034)
+++ trunk/none/tests/amd64/Makefile.am 2006-08-28 18:53:25 UTC (rev 6035)
@@ -6,6 +6,8 @@
=20
EXTRA_DIST =3D $(noinst_SCRIPTS) \
bug127521-64.vgtest bug127521-64.stdout.exp bug127521-64.stderr.exp \
+ bug132813-amd64.vgtest bug132813-amd64.stdout.exp \
+ bug132813-amd64.stderr.exp \
clc.vgtest clc.stdout.exp clc.stderr.exp \
faultstatus.disabled faultstatus.stderr.exp \
fcmovnu.vgtest fcmovnu.stderr.exp fcmovnu.stdout.exp \
@@ -22,7 +24,7 @@
=20
=20
check_PROGRAMS =3D \
- bug127521-64 \
+ bug127521-64 bug132813-amd64 \
clc \
faultstatus fcmovnu fxtract $(INSN_TESTS) looper jrcxz smc1 shrld \
nibz_bennee_mmap
Added: trunk/none/tests/amd64/bug132813-amd64.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/amd64/bug132813-amd64.c (rev=
0)
+++ trunk/none/tests/amd64/bug132813-amd64.c 2006-08-28 18:53:25 UTC (rev=
6035)
@@ -0,0 +1,170 @@
+
+#include <stdio.h>
+
+void do_pushb_pos ( void )
+{
+ unsigned long long int block[3];
+ __asm__ __volatile__ (
+ "movq %0, %%rdx\n\t"
+ "pushq $0x55555555\n\t"
+ "movq %%rsp, 0(%%rdx)\n\t"
+ ".byte 0x6A,0x22\n\t"
+ "movq %%rsp, 8(%%rdx)\n\t"
+ "popq %%rax\n\t"
+ "movq %%rax,16(%%rdx)\n\t"
+ "movq 0(%%rdx),%%rsp\n\t"
+ "addq $8, %%rsp"
+ : : "r"(&block) : "rax","rdx","cc","memory"
+ );
+ printf(" pushb_pos: delta %lld, top64 0x%016llx\n",
+ block[0] - block[1], block[2]);
+}
+
+void do_pushb_neg ( void )
+{
+ unsigned long long int block[3];
+ __asm__ __volatile__ (
+ "movq %0, %%rdx\n\t"
+ "pushq $0x55555555\n\t"
+ "movq %%rsp, 0(%%rdx)\n\t"
+ ".byte 0x6A,0xEE\n\t"
+ "movq %%rsp, 8(%%rdx)\n\t"
+ "popq %%rax\n\t"
+ "movq %%rax,16(%%rdx)\n\t"
+ "movq 0(%%rdx),%%rsp\n\t"
+ "addq $8, %%rsp"
+ : : "r"(&block) : "rax","rdx","cc","memory"
+ );
+ printf(" pushb_neg: delta %lld, top64 0x%016llx\n",
+ block[0] - block[1], block[2]);
+}
+
+void do_pushw_pos ( void )
+{
+ unsigned long long int block[3];
+ __asm__ __volatile__ (
+ "movq %0, %%rdx\n\t"
+ "pushq $0x55555555\n\t"
+ "movq %%rsp, 0(%%rdx)\n\t"
+ "pushw $0x3344\n\t"
+ "movq %%rsp, 8(%%rdx)\n\t"
+ "popq %%rax\n\t"
+ "movq %%rax,16(%%rdx)\n\t"
+ "movq 0(%%rdx),%%rsp\n\t"
+ "addq $8, %%rsp"
+ : : "r"(&block) : "rax","rdx","cc","memory"
+ );
+ printf(" pushw_neg: delta %lld, top64 0x%016llx\n",
+ block[0] - block[1], block[2]);
+}
+
+void do_pushw_neg ( void )
+{
+ unsigned long long int block[3];
+ __asm__ __volatile__ (
+ "movq %0, %%rdx\n\t"
+ "pushq $0x55555555\n\t"
+ "movq %%rsp, 0(%%rdx)\n\t"
+ "pushw $0xDDCC\n\t"
+ "movq %%rsp, 8(%%rdx)\n\t"
+ "popq %%rax\n\t"
+ "movq %%rax,16(%%rdx)\n\t"
+ "movq 0(%%rdx),%%rsp\n\t"
+ "addq $8, %%rsp"
+ : : "r"(&block) : "rax","rdx","cc","memory"
+ );
+ printf(" pushw_pos: delta %lld, top64 0x%016llx\n",
+ block[0] - block[1], block[2]);
+}
+
+void do_pushq_pos ( void )
+{
+ unsigned long long int block[3];
+ __asm__ __volatile__ (
+ "movq %0, %%rdx\n\t"
+ "pushq $0x55555555\n\t"
+ "movq %%rsp, 0(%%rdx)\n\t"
+ "pushq $0x67675656\n\t"
+ "movq %%rsp, 8(%%rdx)\n\t"
+ "popq %%rax\n\t"
+ "movq %%rax,16(%%rdx)\n\t"
+ "movq 0(%%rdx),%%rsp\n\t"
+ "addq $8, %%rsp"
+ : : "r"(&block) : "rax","rdx","cc","memory"
+ );
+ printf(" pushq_pos: delta %lld, top64 0x%016llx\n",
+ block[0] - block[1], block[2]);
+}
+
+void do_pushq_neg ( void )
+{
+ unsigned long long int block[3];
+ __asm__ __volatile__ (
+ "movq %0, %%rdx\n\t"
+ "pushq $0x55555555\n\t"
+ "movq %%rsp, 0(%%rdx)\n\t"
+ "pushq $0x78988787\n\t"
+ "movq %%rsp, 8(%%rdx)\n\t"
+ "popq %%rax\n\t"
+ "movq %%rax,16(%%rdx)\n\t"
+ "movq 0(%%rdx),%%rsp\n\t"
+ "addq $8, %%rsp"
+ : : "r"(&block) : "rax","rdx","cc","memory"
+ );
+ printf(" pushq_neg: delta %lld, top64 0x%016llx\n",
+ block[0] - block[1], block[2]);
+}
+
+
+void do_66pushb_pos ( void )
+{
+ unsigned long long int block[3];
+ __asm__ __volatile__ (
+ "movq %0, %%rdx\n\t"
+ "pushq $0x55555555\n\t"
+ "movq %%rsp, 0(%%rdx)\n\t"
+ ".byte 0x66,0x6A,0x22\n\t"
+ "movq %%rsp, 8(%%rdx)\n\t"
+ "popq %%rax\n\t"
+ "movq %%rax,16(%%rdx)\n\t"
+ "movq 0(%%rdx),%%rsp\n\t"
+ "addq $8, %%rsp"
+ : : "r"(&block) : "rax","rdx","cc","memory"
+ );
+ printf("66pushb_pos: delta %lld, top64 0x%016llx\n",
+ block[0] - block[1], block[2]);
+}
+
+void do_66pushb_neg ( void )
+{
+ unsigned long long int block[3];
+ __asm__ __volatile__ (
+ "movq %0, %%rdx\n\t"
+ "pushq $0x55555555\n\t"
+ "movq %%rsp, 0(%%rdx)\n\t"
+ ".byte 0x66,0x6A,0xEE\n\t"
+ "movq %%rsp, 8(%%rdx)\n\t"
+ "popq %%rax\n\t"
+ "movq %%rax,16(%%rdx)\n\t"
+ "movq 0(%%rdx),%%rsp\n\t"
+ "addq $8, %%rsp"
+ : : "r"(&block) : "rax","rdx","cc","memory"
+ );
+ printf("66pushb_neg: delta %lld, top64 0x%016llx\n",
+ block[0] - block[1], block[2]);
+}
+
+
+int main ( void )
+{
+ do_pushb_pos();
+ do_pushb_neg();
+ do_pushw_pos();
+ do_pushw_neg();
+ do_pushq_pos();
+ do_pushq_neg();
+
+ do_66pushb_pos();
+ do_66pushb_neg();
+ return 0;
+}
Added: trunk/none/tests/amd64/bug132813-amd64.stderr.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/amd64/bug132813-amd64.stderr.exp =
(rev 0)
+++ trunk/none/tests/amd64/bug132813-amd64.stderr.exp 2006-08-28 18:53:25=
UTC (rev 6035)
@@ -0,0 +1,2 @@
+
+
Added: trunk/none/tests/amd64/bug132813-amd64.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/amd64/bug132813-amd64.stdout.exp =
(rev 0)
+++ trunk/none/tests/amd64/bug132813-amd64.stdout.exp 2006-08-28 18:53:25=
UTC (rev 6035)
@@ -0,0 +1,8 @@
+ pushb_pos: delta 8, top64 0x0000000000000022
+ pushb_neg: delta 8, top64 0xffffffffffffffee
+ pushw_neg: delta 2, top64 0x0000555555553344
+ pushw_pos: delta 2, top64 0x000055555555ddcc
+ pushq_pos: delta 8, top64 0x0000000067675656
+ pushq_neg: delta 8, top64 0x0000000078988787
+66pushb_pos: delta 2, top64 0x0000555555550022
+66pushb_neg: delta 2, top64 0x000055555555ffee
Added: trunk/none/tests/amd64/bug132813-amd64.vgtest
=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/bug132813-amd64.vgtest =
(rev 0)
+++ trunk/none/tests/amd64/bug132813-amd64.vgtest 2006-08-28 18:53:25 UTC=
(rev 6035)
@@ -0,0 +1 @@
+prog: bug132813-amd64
|