diff options
Diffstat (limited to 'OvmfPkg')
-rw-r--r-- | OvmfPkg/XenBusDxe/X64/hypercall.S | 22 | ||||
-rw-r--r-- | OvmfPkg/XenBusDxe/X64/hypercall.nasm (renamed from OvmfPkg/XenBusDxe/X64/hypercall.asm) | 8 | ||||
-rw-r--r-- | OvmfPkg/XenBusDxe/XenBusDxe.inf | 3 |
3 files changed, 5 insertions, 28 deletions
diff --git a/OvmfPkg/XenBusDxe/X64/hypercall.S b/OvmfPkg/XenBusDxe/X64/hypercall.S deleted file mode 100644 index 83cf466953..0000000000 --- a/OvmfPkg/XenBusDxe/X64/hypercall.S +++ /dev/null @@ -1,22 +0,0 @@ -# INTN
-# EFIAPI
-# XenHypercall2 (
-# IN VOID *HypercallAddr,
-# IN OUT INTN Arg1,
-# IN OUT INTN Arg2
-# );
-ASM_GLOBAL ASM_PFX(XenHypercall2)
-ASM_PFX(XenHypercall2):
- push %rdi
- push %rsi
- # Copy HypercallAddr to rax
- movq %rcx, %rax
- # Copy Arg1 to the register expected by Xen
- movq %rdx, %rdi
- # Copy Arg2 to the register expected by Xen
- movq %r8, %rsi
- # Call HypercallAddr
- call *%rax
- pop %rsi
- pop %rdi
- ret
diff --git a/OvmfPkg/XenBusDxe/X64/hypercall.asm b/OvmfPkg/XenBusDxe/X64/hypercall.nasm index 5b3451473d..177f271ef0 100644 --- a/OvmfPkg/XenBusDxe/X64/hypercall.asm +++ b/OvmfPkg/XenBusDxe/X64/hypercall.nasm @@ -1,4 +1,5 @@ -.code
+DEFAULT REL
+SECTION .text
; INTN
; EFIAPI
@@ -7,7 +8,8 @@ ; IN OUT INTN Arg1,
; IN OUT INTN Arg2
; );
-XenHypercall2 PROC
+global ASM_PFX(XenHypercall2)
+ASM_PFX(XenHypercall2):
push rdi
push rsi
; Copy HypercallAddr to rax
@@ -21,6 +23,4 @@ XenHypercall2 PROC pop rsi
pop rdi
ret
-XenHypercall2 ENDP
-END
diff --git a/OvmfPkg/XenBusDxe/XenBusDxe.inf b/OvmfPkg/XenBusDxe/XenBusDxe.inf index b421b852e8..3309f53f6b 100644 --- a/OvmfPkg/XenBusDxe/XenBusDxe.inf +++ b/OvmfPkg/XenBusDxe/XenBusDxe.inf @@ -54,8 +54,7 @@ Ia32/TestAndClearBit.nasm
[Sources.X64]
- X64/hypercall.S
- X64/hypercall.asm
+ X64/hypercall.nasm
X64/InterlockedCompareExchange16.S
X64/InterlockedCompareExchange16.asm
X64/TestAndClearBit.S
|