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