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 similarity index 77% rename from OvmfPkg/XenBusDxe/X64/hypercall.asm rename to 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