diff --git a/OvmfPkg/XenBusDxe/X64/TestAndClearBit.S b/OvmfPkg/XenBusDxe/X64/TestAndClearBit.S deleted file mode 100644 index 0372e83bdd..0000000000 --- a/OvmfPkg/XenBusDxe/X64/TestAndClearBit.S +++ /dev/null @@ -1,12 +0,0 @@ -# INT32 -# EFIAPI -# TestAndClearBit ( -# IN INT32 Bit, // rcx -# IN volatile VOID* Address // rdx -# ); -ASM_GLOBAL ASM_PFX(TestAndClearBit) -ASM_PFX(TestAndClearBit): - lock - btrl %ecx, (%rdx) - sbbl %eax, %eax - ret diff --git a/OvmfPkg/XenBusDxe/X64/TestAndClearBit.asm b/OvmfPkg/XenBusDxe/X64/TestAndClearBit.nasm similarity index 63% rename from OvmfPkg/XenBusDxe/X64/TestAndClearBit.asm rename to OvmfPkg/XenBusDxe/X64/TestAndClearBit.nasm index 3a2587913e..38ac5490cb 100644 --- a/OvmfPkg/XenBusDxe/X64/TestAndClearBit.asm +++ b/OvmfPkg/XenBusDxe/X64/TestAndClearBit.nasm @@ -1,4 +1,5 @@ -.code +DEFAULT REL +SECTION .text ; INT32 ; EFIAPI @@ -6,11 +7,10 @@ ; IN INT32 Bit, // rcx ; IN volatile VOID* Address // rdx ; ); -TestAndClearBit PROC +global ASM_PFX(TestAndClearBit) +ASM_PFX(TestAndClearBit): lock btr [rdx], ecx sbb eax, eax ret -TestAndClearBit ENDP -END diff --git a/OvmfPkg/XenBusDxe/XenBusDxe.inf b/OvmfPkg/XenBusDxe/XenBusDxe.inf index 61f7568e55..4ce4743454 100644 --- a/OvmfPkg/XenBusDxe/XenBusDxe.inf +++ b/OvmfPkg/XenBusDxe/XenBusDxe.inf @@ -56,8 +56,7 @@ [Sources.X64] X64/hypercall.nasm X64/InterlockedCompareExchange16.nasm - X64/TestAndClearBit.S - X64/TestAndClearBit.asm + X64/TestAndClearBit.nasm [LibraryClasses] UefiDriverEntryPoint