diff options
author | Kai Tietz <kai.tietz@onevision.com> | 2010-07-06 18:25:26 +0000 |
---|---|---|
committer | Kai Tietz <ktietz@gcc.gnu.org> | 2010-07-06 20:25:26 +0200 |
commit | 15a1f8c52d3c4a019730742c4e802b0458b85b7e (patch) | |
tree | 786322667b795319c646f390371d479d64dab679 | |
parent | 6b0bcc9bfe4ab0dc3ae0b8a6815c9a3c8f520c04 (diff) | |
download | gcc-15a1f8c52d3c4a019730742c4e802b0458b85b7e.zip gcc-15a1f8c52d3c4a019730742c4e802b0458b85b7e.tar.gz gcc-15a1f8c52d3c4a019730742c4e802b0458b85b7e.tar.bz2 |
ms_hook_prologue.c: Add x64 ms_hook_prologue support.
2010-07-06 Kai Tietz <kai.tietz@onevision.com>
* gcc.target/i386/ms_hook_prologue.c: Add x64 ms_hook_prologue
support.
* gcc.target/i386/i386.exp: Likewise.
From-SVN: r161875
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/i386.exp | 3 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/ms_hook_prologue.c | 11 |
3 files changed, 17 insertions, 3 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 0f7b0c1..cf61679 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2010-07-06 Kai Tietz <kai.tietz@onevision.com> + + * gcc.target/i386/ms_hook_prologue.c: Add x64 ms_hook_prologue + support. + * gcc.target/i386/i386.exp: Likewise. + 2010-07-06 Peter Bergner <bergner@vnet.ibm.com> PR testsuite/44195 diff --git a/gcc/testsuite/gcc.target/i386/i386.exp b/gcc/testsuite/gcc.target/i386/i386.exp index 8b31231..65abf58 100644 --- a/gcc/testsuite/gcc.target/i386/i386.exp +++ b/gcc/testsuite/gcc.target/i386/i386.exp @@ -27,8 +27,7 @@ load_lib gcc-dg.exp # Return 1 if attribute ms_hook_prologue is supported. proc check_effective_target_ms_hook_prologue { } { - if { [check_effective_target_ilp32] - && [check_no_compiler_messages ms_hook_prologue object { + if { [check_no_compiler_messages ms_hook_prologue object { void __attribute__ ((__ms_hook_prologue__)) foo (); } ""] } { return 1 diff --git a/gcc/testsuite/gcc.target/i386/ms_hook_prologue.c b/gcc/testsuite/gcc.target/i386/ms_hook_prologue.c index f945492..e11bcc0 100644 --- a/gcc/testsuite/gcc.target/i386/ms_hook_prologue.c +++ b/gcc/testsuite/gcc.target/i386/ms_hook_prologue.c @@ -11,7 +11,7 @@ int __attribute__ ((__ms_hook_prologue__)) foo () /* The NOP mov must not be optimized away by optimizations. The push %ebp, mov %esp, %ebp must not be removed by -fomit-frame-pointer */ - +#ifndef __x86_64__ /* movl.s %edi, %edi */ if(*ptr++ != 0x8b) return 1; if(*ptr++ != 0xff) return 1; @@ -20,6 +20,15 @@ int __attribute__ ((__ms_hook_prologue__)) foo () /* movl.s %esp, %ebp */ if(*ptr++ != 0x8b) return 1; if(*ptr++ != 0xec) return 1; +#else + /* leaq 0(%rsp), %rsp */ + if (*ptr++ != 0x48) return 1; + if (*ptr++ != 0x8d) return 1; + if (*ptr++ != 0xa4) return 1; + if (*ptr++ != 0x24) return 1; + if (ptr[0] != 0 || ptr[1] != 0 || ptr[2] != 0 || ptr[3] != 0) + return 1; +#endif return 0; } |