From: Julian Seward Date: Sat, 18 Nov 2006 23:00:23 +0000 (+0000) Subject: Regtest for #135421 (long-form encoding of 'push{l,w} %reg') X-Git-Tag: svn/VALGRIND_3_3_0~525 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=86b6d066955f587aa913bfdedcd554ad27f71691;p=thirdparty%2Fvalgrind.git Regtest for #135421 (long-form encoding of 'push{l,w} %reg') git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6360 --- diff --git a/none/tests/x86/Makefile.am b/none/tests/x86/Makefile.am index f73ea835c3..710e979425 100644 --- a/none/tests/x86/Makefile.am +++ b/none/tests/x86/Makefile.am @@ -11,6 +11,7 @@ EXTRA_DIST = $(noinst_SCRIPTS) \ bug125959-x86.stderr.exp bug125959-x86.stdout.exp bug125959-x86.vgtest \ bug126147-x86.stderr.exp bug126147-x86.stdout.exp bug126147-x86.vgtest \ bug132813-x86.stderr.exp bug132813-x86.stdout.exp bug132813-x86.vgtest \ + bug135421-x86.stderr.exp bug135421-x86.stdout.exp bug135421-x86.vgtest \ cpuid.stderr.exp cpuid.stdout.exp cpuid.vgtest \ cmpxchg8b.stderr.exp cmpxchg8b.stdout.exp cmpxchg8b.vgtest \ faultstatus.disabled faultstatus.stderr.exp \ @@ -40,6 +41,7 @@ check_PROGRAMS = \ bug125959-x86 \ bug126147-x86 \ bug132813-x86 \ + bug135421-x86 \ cmpxchg8b cpuid \ faultstatus fcmovnu fpu_lazy_eflags fxtract \ getseg incdec_alt $(INSN_TESTS) \ diff --git a/none/tests/x86/bug135421-x86.c b/none/tests/x86/bug135421-x86.c new file mode 100644 index 0000000000..48a245e53a --- /dev/null +++ b/none/tests/x86/bug135421-x86.c @@ -0,0 +1,29 @@ + +/* Test for long-form encodings of push %reg */ + +#include + +int foo ( int x ) +{ + int block[2]; + block[0] = x; + block[1] = 0; + __asm__ __volatile__( + "movl $0,%%edi\n\t" + "movl $0,%%esi\n\t" + "movl %0,%%edi\n\t" + ".byte 0xFF,0xF7\n\t" /*pushl %edi */ + "popl %%esi\n\t" + "movl %%esi, %1" + : : /*in*/ "m"(block[0]), "m"(block[1]) : "esi","edi","memory" + ); + return block[1]; +} + +int main ( void ) +{ + int i; + for (i = 0; i < 100000000; i += 11111111) + printf("%d %d\n",i,foo(i)); + return 0; +} diff --git a/none/tests/x86/bug135421-x86.stderr.exp b/none/tests/x86/bug135421-x86.stderr.exp new file mode 100644 index 0000000000..139597f9cb --- /dev/null +++ b/none/tests/x86/bug135421-x86.stderr.exp @@ -0,0 +1,2 @@ + + diff --git a/none/tests/x86/bug135421-x86.stdout.exp b/none/tests/x86/bug135421-x86.stdout.exp new file mode 100644 index 0000000000..c345d3e2af --- /dev/null +++ b/none/tests/x86/bug135421-x86.stdout.exp @@ -0,0 +1,10 @@ +0 0 +11111111 11111111 +22222222 22222222 +33333333 33333333 +44444444 44444444 +55555555 55555555 +66666666 66666666 +77777777 77777777 +88888888 88888888 +99999999 99999999 diff --git a/none/tests/x86/bug135421-x86.vgtest b/none/tests/x86/bug135421-x86.vgtest new file mode 100644 index 0000000000..8102c22a32 --- /dev/null +++ b/none/tests/x86/bug135421-x86.vgtest @@ -0,0 +1 @@ +prog: bug135421-x86