Commit 15a1f8c5 by Kai Tietz Committed by Kai Tietz

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
parent 6b0bcc9b
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
......
......@@ -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
......
......@@ -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;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment