summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--OvmfPkg/XenBusDxe/Ia32/hypercall.S22
-rw-r--r--OvmfPkg/XenBusDxe/Ia32/hypercall.nasm (renamed from OvmfPkg/XenBusDxe/Ia32/hypercall.asm)7
-rw-r--r--OvmfPkg/XenBusDxe/XenBusDxe.inf3
3 files changed, 4 insertions, 28 deletions
diff --git a/OvmfPkg/XenBusDxe/Ia32/hypercall.S b/OvmfPkg/XenBusDxe/Ia32/hypercall.S
deleted file mode 100644
index 77d3478475..0000000000
--- a/OvmfPkg/XenBusDxe/Ia32/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):
- # Save only ebx, ecx is supposed to be a scratch register and needs to be
- # saved by the caller
- push %ebx
- # Copy HypercallAddr to eax
- mov 8(%esp), %eax
- # Copy Arg1 to the register expected by Xen
- mov 12(%esp), %ebx
- # Copy Arg2 to the register expected by Xen
- mov 16(%esp), %ecx
- # Call HypercallAddr
- call *%eax
- pop %ebx
- ret
diff --git a/OvmfPkg/XenBusDxe/Ia32/hypercall.asm b/OvmfPkg/XenBusDxe/Ia32/hypercall.nasm
index 9ead740f91..8547c30b81 100644
--- a/OvmfPkg/XenBusDxe/Ia32/hypercall.asm
+++ b/OvmfPkg/XenBusDxe/Ia32/hypercall.nasm
@@ -1,4 +1,4 @@
-.code
+SECTION .text
; INTN
; EFIAPI
@@ -7,7 +7,8 @@
; IN OUT INTN Arg1,
; IN OUT INTN Arg2
; );
-XenHypercall2 PROC
+global ASM_PFX(XenHypercall2)
+ASM_PFX(XenHypercall2):
; Save only ebx, ecx is supposed to be a scratch register and needs to be
; saved by the caller
push ebx
@@ -21,6 +22,4 @@ XenHypercall2 PROC
call eax
pop ebx
ret
-XenHypercall2 ENDP
-END
diff --git a/OvmfPkg/XenBusDxe/XenBusDxe.inf b/OvmfPkg/XenBusDxe/XenBusDxe.inf
index 17a5a9073a..2478e35b63 100644
--- a/OvmfPkg/XenBusDxe/XenBusDxe.inf
+++ b/OvmfPkg/XenBusDxe/XenBusDxe.inf
@@ -49,8 +49,7 @@
Helpers.c
[Sources.IA32]
- Ia32/hypercall.S
- Ia32/hypercall.asm
+ Ia32/hypercall.nasm
Ia32/InterlockedCompareExchange16.S
Ia32/InterlockedCompareExchange16.asm
Ia32/TestAndClearBit.S