1 ;;===-- X86CompilationCallback_Win64.asm - Implement Win64 JIT callback ---===
3 ;; The LLVM Compiler Infrastructure
5 ;; This file is distributed under the University of Illinois Open Source
6 ;; License. See LICENSE.TXT for details.
8 ;;===----------------------------------------------------------------------===
10 ;; This file implements the JIT interfaces for the X86 target.
12 ;;===----------------------------------------------------------------------===
14 extrn
X86CompilationCallback2: PROC
17 X86CompilationCallback
proc
23 ; Save all int arg registers
24 ; WARNING: We cannot use register spill area - we're generating stubs by hands!
30 ; Align stack on 16-byte boundary.
33 ; Save all XMM arg registers. Also allocate reg spill area.
35 movaps
[rsp
+32], xmm0
36 movaps
[rsp
+16+32], xmm1
37 movaps
[rsp
+32+32], xmm2
38 movaps
[rsp
+48+32], xmm3
42 ; Pass prev frame and return address.
44 mov rdx
, qword ptr [rbp
+8]
45 call X86CompilationCallback2
47 ; Restore all XMM arg registers.
48 movaps xmm3
, [rsp
+48+32]
49 movaps xmm2
, [rsp
+32+32]
50 movaps xmm1
, [rsp
+16+32]
51 movaps xmm0
, [rsp
+32]
56 ; Restore all int arg registers
66 X86CompilationCallback
endp