+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
# 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
/* 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;
/* 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;
}