mirror of
https://github.com/Zenithsiz/ftmemsim-valgrind.git
synced 2026-02-04 02:18:37 +00:00
64-bit regtest for #132813 (Assertion at priv/guest-x86/toIR.c:652 fails)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6035
This commit is contained in:
parent
3deb872d72
commit
4fe694b232
@ -6,6 +6,8 @@ INSN_TESTS = insn_basic insn_mmx insn_sse insn_sse2 insn_sse3 insn_fpu
|
||||
|
||||
EXTRA_DIST = $(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 @@ EXTRA_DIST = $(noinst_SCRIPTS) \
|
||||
|
||||
|
||||
check_PROGRAMS = \
|
||||
bug127521-64 \
|
||||
bug127521-64 bug132813-amd64 \
|
||||
clc \
|
||||
faultstatus fcmovnu fxtract $(INSN_TESTS) looper jrcxz smc1 shrld \
|
||||
nibz_bennee_mmap
|
||||
|
||||
170
none/tests/amd64/bug132813-amd64.c
Normal file
170
none/tests/amd64/bug132813-amd64.c
Normal file
@ -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;
|
||||
}
|
||||
2
none/tests/amd64/bug132813-amd64.stderr.exp
Normal file
2
none/tests/amd64/bug132813-amd64.stderr.exp
Normal file
@ -0,0 +1,2 @@
|
||||
|
||||
|
||||
8
none/tests/amd64/bug132813-amd64.stdout.exp
Normal file
8
none/tests/amd64/bug132813-amd64.stdout.exp
Normal file
@ -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
|
||||
1
none/tests/amd64/bug132813-amd64.vgtest
Normal file
1
none/tests/amd64/bug132813-amd64.vgtest
Normal file
@ -0,0 +1 @@
|
||||
prog: bug132813-amd64
|
||||
Loading…
x
Reference in New Issue
Block a user