[llvm-commits] [llvm] r77968 - /llvm/trunk/lib/Target/X86/X86CompilationCallback_Win64.asm
Anton Korobeynikov
asl at math.spbu.ru
Mon Aug 3 01:43:38 PDT 2009
Author: asl
Date: Mon Aug 3 03:43:36 2009
New Revision: 77968
URL: http://llvm.org/viewvc/llvm-project?rev=77968&view=rev
Log:
Unbreak win64 compilation callback.
Since we're generating stubs by hands we don't follow the ABI and don't
create a register spill area.
Don't use this area in compilation callback!
Modified:
llvm/trunk/lib/Target/X86/X86CompilationCallback_Win64.asm
Modified: llvm/trunk/lib/Target/X86/X86CompilationCallback_Win64.asm
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86CompilationCallback_Win64.asm?rev=77968&r1=77967&r2=77968&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86CompilationCallback_Win64.asm (original)
+++ llvm/trunk/lib/Target/X86/X86CompilationCallback_Win64.asm Mon Aug 3 03:43:36 2009
@@ -15,17 +15,18 @@
.code
X86CompilationCallback proc
- ; Save all int arg registers into register spill area.
- mov [rsp+ 8], rcx
- mov [rsp+16], rdx
- mov [rsp+24], r8
- mov [rsp+32], r9
-
push rbp
; Save RSP.
mov rbp, rsp
+ ; Save all int arg registers
+ ; WARNING: We cannot use register spill area - we're generating stubs by hands!
+ push rcx
+ push rdx
+ push r8
+ push r9
+
; Align stack on 16-byte boundary.
and rsp, -16
@@ -52,15 +53,15 @@
; Restore RSP.
mov rsp, rbp
+ ; Restore all int arg registers
+ sub rsp, 32
+ pop r9
+ pop r8
+ pop rdx
+ pop rcx
+
; Restore RBP.
pop rbp
-
- ; Restore all int arg registers.
- mov r9, [rsp+32]
- mov r8, [rsp+24]
- mov rdx, [rsp+16]
- mov rcx, [rsp+ 8]
-
ret
X86CompilationCallback endp
More information about the llvm-commits
mailing list