aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKai Tietz <kai.tietz@onevision.com>2010-07-06 18:25:26 +0000
committerKai Tietz <ktietz@gcc.gnu.org>2010-07-06 20:25:26 +0200
commit15a1f8c52d3c4a019730742c4e802b0458b85b7e (patch)
tree786322667b795319c646f390371d479d64dab679
parent6b0bcc9bfe4ab0dc3ae0b8a6815c9a3c8f520c04 (diff)
downloadgcc-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/ChangeLog6
-rw-r--r--gcc/testsuite/gcc.target/i386/i386.exp3
-rw-r--r--gcc/testsuite/gcc.target/i386/ms_hook_prologue.c11
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;
}