.section .rtcode, "ax", "progbits"\r
.align 32\r
.type InvalidateInstructionCacheRange# ,@function \r
- .global InvalidateInstructionCacheRange#\r
+ .globl InvalidateInstructionCacheRange#\r
// Function compile flags: /Ogsy\r
.section .rtcode\r
\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _InternalMathARShiftU64\r
+.globl _InternalMathARShiftU64\r
\r
#------------------------------------------------------------------------------\r
# UINT64\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _CpuBreakpoint\r
+.globl _CpuBreakpoint\r
\r
#------------------------------------------------------------------------------\r
# VOID\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _CpuFlushTlb\r
+.globl _CpuFlushTlb\r
\r
#------------------------------------------------------------------------------\r
# VOID\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _CpuPause\r
+.globl _CpuPause\r
\r
#------------------------------------------------------------------------------\r
# VOID\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _CpuSleep\r
+.globl _CpuSleep\r
\r
#------------------------------------------------------------------------------\r
# VOID\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _DisableInterrupts\r
+.globl _DisableInterrupts\r
\r
#------------------------------------------------------------------------------\r
# VOID\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _InternalX86DisablePaging32\r
+.globl _InternalX86DisablePaging32\r
\r
#------------------------------------------------------------------------------\r
# VOID\r
#
#------------------------------------------------------------------------------
-.global _InternalMathDivU64x32
+.globl _InternalMathDivU64x32
#------------------------------------------------------------------------------
# UINT64
#\r
#------------------------------------------------------------------------------\r
\r
-.global _InternalMathDivRemU64x32\r
+.globl _InternalMathDivRemU64x32\r
\r
#------------------------------------------------------------------------------\r
# UINT64\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _InternalMathDivRemU64x32, _InternalMathDivRemU64x64\r
+.globl _InternalMathDivRemU64x32, _InternalMathDivRemU64x64\r
\r
#------------------------------------------------------------------------------\r
# UINT64\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _EnableDisableInterrupts\r
+.globl _EnableDisableInterrupts\r
\r
#------------------------------------------------------------------------------\r
# VOID\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _EnableInterrupts\r
+.globl _EnableInterrupts\r
\r
#------------------------------------------------------------------------------\r
# VOID\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _InternalX86EnablePaging32\r
+.globl _InternalX86EnablePaging32\r
\r
#------------------------------------------------------------------------------\r
# VOID\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _InternalX86EnablePaging64\r
+.globl _InternalX86EnablePaging64\r
\r
#------------------------------------------------------------------------------\r
# VOID\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _AsmFlushCacheLine\r
+.globl _AsmFlushCacheLine\r
\r
#------------------------------------------------------------------------------\r
# VOID\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _InternalX86FxRestore\r
+.globl _InternalX86FxRestore\r
\r
#------------------------------------------------------------------------------\r
# VOID\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _InternalX86FxSave\r
+.globl _InternalX86FxSave\r
\r
#------------------------------------------------------------------------------\r
# VOID\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _InternalSyncCompareExchange32\r
+.globl _InternalSyncCompareExchange32\r
\r
#------------------------------------------------------------------------------\r
# UINT32\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _InternalSyncCompareExchange64\r
+.globl _InternalSyncCompareExchange64\r
\r
#------------------------------------------------------------------------------\r
# UINT64\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _InternalSyncDecrement\r
+.globl _InternalSyncDecrement\r
\r
#------------------------------------------------------------------------------\r
# UINT32\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _InternalSyncIncrement\r
+.globl _InternalSyncIncrement\r
\r
#------------------------------------------------------------------------------\r
# UINT32\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _AsmInvd\r
+.globl _AsmInvd\r
\r
#------------------------------------------------------------------------------\r
# VOID\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _InternalMathLRotU64\r
+.globl _InternalMathLRotU64\r
\r
#------------------------------------------------------------------------------\r
# UINT64\r
#
#------------------------------------------------------------------------------
-.global _InternalMathLShiftU64
+.globl _InternalMathLShiftU64
#------------------------------------------------------------------------------
# UINT64
#
#------------------------------------------------------------------------------
-.global _InternalLongJump
+.globl _InternalLongJump
#------------------------------------------------------------------------------
# VOID
#\r
#------------------------------------------------------------------------------\r
\r
-.global _InternalMathModU64x32\r
+.globl _InternalMathModU64x32\r
\r
#------------------------------------------------------------------------------\r
# UINT32\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _AsmMonitor\r
+.globl _AsmMonitor\r
\r
#------------------------------------------------------------------------------\r
# UINT64\r
.386:
.code:
-.global _InternalMathMultU64x32
+.globl _InternalMathMultU64x32
#------------------------------------------------------------------------------
# UINT64
#\r
#------------------------------------------------------------------------------\r
\r
-.global _InternalMathMultU64x64\r
+.globl _InternalMathMultU64x64\r
\r
#------------------------------------------------------------------------------\r
# UINT64\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _AsmMwait\r
+.globl _AsmMwait\r
\r
#------------------------------------------------------------------------------\r
# UINT64\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _InternalMathRRotU64\r
+.globl _InternalMathRRotU64\r
\r
#------------------------------------------------------------------------------\r
# UINT64\r
.686:
.code:
-.global _InternalMathRShiftU64
+.globl _InternalMathRShiftU64
#------------------------------------------------------------------------------
# UINT64
#\r
#------------------------------------------------------------------------------\r
\r
-.global _AsmReadCr0\r
+.globl _AsmReadCr0\r
\r
#------------------------------------------------------------------------------\r
# UINTN\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _AsmReadCr2\r
+.globl _AsmReadCr2\r
\r
#------------------------------------------------------------------------------\r
# UINTN\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _AsmReadCr3\r
+.globl _AsmReadCr3\r
\r
#------------------------------------------------------------------------------\r
# UINTN\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _AsmReadCr4\r
+.globl _AsmReadCr4\r
\r
#------------------------------------------------------------------------------\r
# UINTN\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _AsmReadCs\r
+.globl _AsmReadCs\r
\r
#------------------------------------------------------------------------------\r
# UINT16\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _AsmReadDr0\r
+.globl _AsmReadDr0\r
\r
#------------------------------------------------------------------------------\r
# UINTN\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _AsmReadDr1\r
+.globl _AsmReadDr1\r
\r
#------------------------------------------------------------------------------\r
# UINTN\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _AsmReadDr2\r
+.globl _AsmReadDr2\r
\r
#------------------------------------------------------------------------------\r
# UINTN\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _AsmReadDr3\r
+.globl _AsmReadDr3\r
\r
#------------------------------------------------------------------------------\r
# UINTN\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _AsmReadDr4\r
+.globl _AsmReadDr4\r
\r
#------------------------------------------------------------------------------\r
# UINTN\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _AsmReadDr5\r
+.globl _AsmReadDr5\r
\r
#------------------------------------------------------------------------------\r
# UINTN\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _AsmReadDr6\r
+.globl _AsmReadDr6\r
\r
#------------------------------------------------------------------------------\r
# UINTN\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _AsmReadDr7\r
+.globl _AsmReadDr7\r
\r
#------------------------------------------------------------------------------\r
# UINTN\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _AsmReadDs\r
+.globl _AsmReadDs\r
\r
#------------------------------------------------------------------------------\r
# UINT16\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _AsmReadEflags\r
+.globl _AsmReadEflags\r
\r
#------------------------------------------------------------------------------\r
# UINTN\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _AsmReadEs\r
+.globl _AsmReadEs\r
\r
#------------------------------------------------------------------------------\r
# UINT16\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _AsmReadFs\r
+.globl _AsmReadFs\r
\r
#------------------------------------------------------------------------------\r
# UINT16\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _InternalX86ReadGdtr\r
+.globl _InternalX86ReadGdtr\r
\r
#------------------------------------------------------------------------------\r
# VOID\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _AsmReadGs\r
+.globl _AsmReadGs\r
\r
#------------------------------------------------------------------------------\r
# UINT16\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _InternalX86ReadIdtr\r
+.globl _InternalX86ReadIdtr\r
\r
#------------------------------------------------------------------------------\r
# VOID\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _AsmReadLdtr\r
+.globl _AsmReadLdtr\r
\r
#------------------------------------------------------------------------------\r
# UINT16\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _AsmReadMm0\r
+.globl _AsmReadMm0\r
\r
#------------------------------------------------------------------------------\r
# UINTN\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _AsmReadMm1\r
+.globl _AsmReadMm1\r
\r
#------------------------------------------------------------------------------\r
# UINTN\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _AsmReadMm2\r
+.globl _AsmReadMm2\r
\r
#------------------------------------------------------------------------------\r
# UINTN\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _AsmReadMm3\r
+.globl _AsmReadMm3\r
\r
#------------------------------------------------------------------------------\r
# UINTN\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _AsmReadMm4\r
+.globl _AsmReadMm4\r
\r
#------------------------------------------------------------------------------\r
# UINTN\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _AsmReadMm5\r
+.globl _AsmReadMm5\r
\r
#------------------------------------------------------------------------------\r
# UINTN\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _AsmReadMm6\r
+.globl _AsmReadMm6\r
\r
#------------------------------------------------------------------------------\r
# UINTN\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _AsmReadMm7\r
+.globl _AsmReadMm7\r
\r
#------------------------------------------------------------------------------\r
# UINTN\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _AsmReadMsr64\r
+.globl _AsmReadMsr64\r
\r
#------------------------------------------------------------------------------\r
# UINT64\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _AsmReadPmc\r
+.globl _AsmReadPmc\r
\r
#------------------------------------------------------------------------------\r
# UINT64\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _AsmReadSs\r
+.globl _AsmReadSs\r
\r
#------------------------------------------------------------------------------\r
# UINT16\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _AsmReadTr\r
+.globl _AsmReadTr\r
\r
#------------------------------------------------------------------------------\r
# UINT16\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _AsmReadTsc\r
+.globl _AsmReadTsc\r
\r
#------------------------------------------------------------------------------\r
# UINT64\r
#\r
#------------------------------------------------------------------------------\r
\r
-.global _SetJump, _InternalAssertJumpBuffer\r
+.globl _SetJump, _InternalAssertJumpBuffer\r
\r
#------------------------------------------------------------------------------\r
# UINTN\r
# IN UINT64 Operand
# );
#------------------------------------------------------------------------------
-.global _InternalMathSwapBytes64
+.globl _InternalMathSwapBytes64
_InternalMathSwapBytes64:
movl 8(%esp), %eax
movl 4(%esp), %edx
#\r
#------------------------------------------------------------------------------\r
\r
-.global _m16Start, _m16Size, _mThunk16Attr, _m16Gdt, _m16GdtrBase, _mTransition\r
-.global _InternalAsmThunk16\r
+.globl _m16Start, _m16Size, _mThunk16Attr, _m16Gdt, _m16GdtrBase, _mTransition\r
+.globl _InternalAsmThunk16\r
\r
_m16Start:\r
\r
push %ss\r
push %cs\r
.byte 0x66\r
- call @Base1 # push eip\r
-@Base1:\r
+ call L_Base1 # push eip\r
+L_Base1:\r
pushfw # pushfd actually\r
cli # disable interrupts\r
push %gs\r
push %es\r
push %ds\r
pushaw # pushad actually\r
- .byte 0x66, 0xba # mov edx, imm32\r
+ .byte 0x66, 0xba # mov edx, imm32\r
_ThunkAttr: .space 4\r
testb $THUNK_ATTRIBUTE_DISABLE_A20_MASK_INT_15, %dl\r
- jz @1\r
+ jz 1f\r
movl $0x15cd2401, %eax # mov ax, 2401h & int 15h\r
cli # disable interrupts\r
- jnc @2\r
-@1:\r
+ jnc 2f\r
+1:\r
testb $THUNK_ATTRIBUTE_DISABLE_A20_MASK_KBD_CTRL, %dl\r
- jz @2\r
+ jz 2f\r
inb $0x92, %al\r
orb $2, %al\r
outb %al, $0x92 # deactivate A20M#\r
-@2:\r
+2:\r
movl %ss, %eax\r
.byte 0x67, 0x66, 0x8d, 0x6c, 0x24, 0x34, 0x66\r
mov %ebp, 0xffffffd8(%esi)\r
movl %esi, %ss # set up 16-bit stack segment\r
xchgw %bx, %sp # set up 16-bit stack pointer\r
.byte 0x66\r
- call @Base # push eip\r
-@Base:\r
- popw %bp # ebp <- offset @Base\r
+ call L_Base # push eip\r
+L_Base:\r
+ popw %bp # ebp <- offset L_Base\r
addr16 pushl 36(%si)\r
.byte 0x36\r
lea 0xc(%esi), %eax\r
push %eax\r
lret\r
\r
-@RealMode:\r
+L_RealMode:\r
mov %edx, %cs:0xffffffc5(%esi)\r
mov %bx, %cs:0xffffffcb(%esi)\r
lidtw %cs:0xffffffd7(%esi)\r
# VOID\r
# );\r
#------------------------------------------------------------------------------\r
-.global _AsmWbinvd\r
+.globl _AsmWbinvd\r
_AsmWbinvd:\r
wbinvd\r
ret\r
# IN UINTN Cr0\r
# );\r
#------------------------------------------------------------------------------\r
-.global _AsmWriteCr0\r
+.globl _AsmWriteCr0\r
_AsmWriteCr0:\r
movl 4(%esp), %eax\r
movl %eax, %cr0\r
# IN UINTN Cr2\r
# );\r
#------------------------------------------------------------------------------\r
-.global _AsmWriteCr2\r
+.globl _AsmWriteCr2\r
_AsmWriteCr2:\r
movl 4(%esp), %eax\r
movl %eax, %cr2\r
# IN UINTN Cr3\r
# );\r
#------------------------------------------------------------------------------\r
-.global _AsmWriteCr3\r
+.globl _AsmWriteCr3\r
_AsmWriteCr3:\r
movl 4(%esp), %eax\r
movl %eax, %cr3\r
# IN UINTN Cr4\r
# );\r
#------------------------------------------------------------------------------\r
-.global _AsmWriteCr4\r
+.globl _AsmWriteCr4\r
_AsmWriteCr4:\r
movl 4(%esp), %eax\r
movl %eax, %cr4\r
# IN UINTN Value\r
# );\r
#------------------------------------------------------------------------------\r
-.global _AsmWriteDr0\r
+.globl _AsmWriteDr0\r
_AsmWriteDr0:\r
movl 4(%esp), %eax\r
movl %eax, %dr0\r
# IN UINTN Value\r
# );\r
#------------------------------------------------------------------------------\r
-.global _AsmWriteDr1\r
+.globl _AsmWriteDr1\r
_AsmWriteDr1:\r
movl 4(%esp), %eax\r
movl %eax, %dr1\r
# IN UINTN Value\r
# );\r
#------------------------------------------------------------------------------\r
-.global _AsmWriteDr2\r
+.globl _AsmWriteDr2\r
_AsmWriteDr2:\r
movl 4(%esp), %eax\r
movl %eax, %dr2\r
# IN UINTN Value\r
# );\r
#------------------------------------------------------------------------------\r
-.global _AsmWriteDr3\r
+.globl _AsmWriteDr3\r
_AsmWriteDr3:\r
movl 4(%esp), %eax\r
movl %eax, %dr3\r
# IN UINTN Value\r
# );\r
#------------------------------------------------------------------------------\r
-.global _AsmWriteDr4\r
+.globl _AsmWriteDr4\r
_AsmWriteDr4:\r
movl 4(%esp), %eax\r
movl %eax, %dr4\r
# IN UINTN Value\r
# );\r
#------------------------------------------------------------------------------\r
-.global _AsmWriteDr5\r
+.globl _AsmWriteDr5\r
_AsmWriteDr5:\r
movl 4(%esp), %eax\r
movl %eax, %dr5\r
# IN UINTN Value\r
# );\r
#------------------------------------------------------------------------------\r
-.global _AsmWriteDr6\r
+.globl _AsmWriteDr6\r
_AsmWriteDr6:\r
movl 4(%esp), %eax\r
movl %eax, %dr6\r
# IN UINTN Value\r
# );\r
#------------------------------------------------------------------------------\r
-.global _AsmWriteDr7\r
+.globl _AsmWriteDr7\r
_AsmWriteDr7:\r
movl 4(%esp), %eax\r
movl %eax, %dr7\r
# OUT IA32_DESCRIPTOR *Gdtr\r
# );\r
#------------------------------------------------------------------------------\r
-.global _InternalX86WriteGdtr\r
+.globl _InternalX86WriteGdtr\r
_InternalX86WriteGdtr:\r
movl 4(%esp), %eax\r
lgdt (%eax)\r
# OUT IA32_DESCRIPTOR *Idtr\r
# );\r
#------------------------------------------------------------------------------\r
-.global _InternalX86WriteIdtr\r
+.globl _InternalX86WriteIdtr\r
_InternalX86WriteIdtr:\r
movl 4(%esp), %eax\r
lidt (%eax)\r
# IN UINT16 Ldtr\r
# );\r
#------------------------------------------------------------------------------\r
-.global _AsmWriteLdtr\r
+.globl _AsmWriteLdtr\r
_AsmWriteLdtr:\r
movl 4(%esp), %eax\r
lldtw %ax\r
# IN UINT64 Value\r
# );\r
#------------------------------------------------------------------------------\r
-.global _AsmWriteMm0\r
+.globl _AsmWriteMm0\r
_AsmWriteMm0:\r
movq 4(%esp), %mm0\r
ret\r
# IN UINT64 Value\r
# );\r
#------------------------------------------------------------------------------\r
-.global _AsmWriteMm1\r
+.globl _AsmWriteMm1\r
_AsmWriteMm1:\r
movq 4(%esp), %mm1\r
ret\r
# IN UINT64 Value\r
# );\r
#------------------------------------------------------------------------------\r
-.global _AsmWriteMm2\r
+.globl _AsmWriteMm2\r
_AsmWriteMm2:\r
movq 4(%esp), %mm2\r
ret\r
# IN UINT64 Value\r
# );\r
#------------------------------------------------------------------------------\r
-.global _AsmWriteMm3\r
+.globl _AsmWriteMm3\r
_AsmWriteMm3:\r
movq 4(%esp), %mm3\r
ret\r
# IN UINT64 Value\r
# );\r
#------------------------------------------------------------------------------\r
-.global _AsmWriteMm4\r
+.globl _AsmWriteMm4\r
_AsmWriteMm4:\r
movq 4(%esp), %mm4\r
ret\r
# IN UINT64 Value\r
# );\r
#------------------------------------------------------------------------------\r
-.global _AsmWriteMm5\r
+.globl _AsmWriteMm5\r
_AsmWriteMm5:\r
movq 4(%esp), %mm5\r
ret\r
# IN UINT64 Value\r
# );\r
#------------------------------------------------------------------------------\r
-.global _AsmWriteMm6\r
+.globl _AsmWriteMm6\r
_AsmWriteMm6:\r
movq 4(%esp), %mm6\r
ret\r
# IN UINT64 Value\r
# );\r
#------------------------------------------------------------------------------\r
-.global _AsmWriteMm7\r
+.globl _AsmWriteMm7\r
_AsmWriteMm7:\r
movq 4(%esp), %mm7\r
ret\r
# IN UINT64 Value\r
# );\r
#------------------------------------------------------------------------------\r
-.global _AsmWriteMsr64\r
+.globl _AsmWriteMsr64\r
_AsmWriteMsr64:\r
movl 12(%esp), %edx\r
movl 8(%esp), %eax\r
.auto\r
.text\r
\r
-.global PalCallStatic\r
+.globl PalCallStatic\r
.type PalCallStatic, @function\r
\r
.proc CpuFlushTlb\r
.auto\r
.text\r
\r
-.global InternalAssertJumpBuffer\r
+.globl InternalAssertJumpBuffer\r
.type InternalAssertJumpBuffer, @function\r
\r
.proc SetJump\r
#
#------------------------------------------------------------------------------
-.global _InternalMemCompareMem
+.globl _InternalMemCompareMem
#------------------------------------------------------------------------------
# INTN
#
#------------------------------------------------------------------------------
-.global _InternalMemCopyMem
+.globl _InternalMemCopyMem
#------------------------------------------------------------------------------
# VOID *
cmpl %edi, %esi
jae L0
cmpl %edi, %eax # Overlapped?
- jae @CopyBackward # Copy backward if overlapped
+ jae L_CopyBackward # Copy backward if overlapped
L0:
xorl %ecx, %ecx
subl %esi, %ecx
movl %edx, %ecx
andl $7, %edx
shrl $3, %ecx # ecx <- # of Qwords to copy
- jz @CopyBytes
+ jz L_CopyBytes
pushl %eax
pushl %eax
movq %mm0, (%esp) # save mm0
movq (%esp), %mm0 # restore mm0
popl %ecx # stack cleanup
popl %ecx # stack cleanup
- jmp @CopyBytes
-@CopyBackward:
+ jmp L_CopyBytes
+L_CopyBackward:
movl %eax, %esi # esi <- Last byte in Source
leal -1(%edi,%edx,), %edi # edi <- Last byte in Destination
std
-@CopyBytes:
+L_CopyBytes:
movl %edx, %ecx
rep
movsb
#
#------------------------------------------------------------------------------
-.global _InternalMemScanMem16
+.globl _InternalMemScanMem16
#------------------------------------------------------------------------------
# CONST VOID *
#
#------------------------------------------------------------------------------
-.global _InternalMemScanMem32
+.globl _InternalMemScanMem32
#------------------------------------------------------------------------------
# CONST VOID *
#
#------------------------------------------------------------------------------
-.global _InternalMemScanMem64
+.globl _InternalMemScanMem64
#------------------------------------------------------------------------------
# CONST VOID *
#
#------------------------------------------------------------------------------
-.global _InternalMemScanMem8
+.globl _InternalMemScanMem8
#------------------------------------------------------------------------------
# CONST VOID *
#
#------------------------------------------------------------------------------
-.global _InternalMemSetMem
+.globl _InternalMemSetMem
#------------------------------------------------------------------------------
# VOID *
#
#------------------------------------------------------------------------------
-.global _InternalMemSetMem16
+.globl _InternalMemSetMem16
#------------------------------------------------------------------------------
# VOID *
#
#------------------------------------------------------------------------------
-.global _InternalMemSetMem32
+.globl _InternalMemSetMem32
#------------------------------------------------------------------------------
# VOID *
#
#------------------------------------------------------------------------------
-.global _InternalMemSetMem64
+.globl _InternalMemSetMem64
#------------------------------------------------------------------------------
# VOID *
#
#------------------------------------------------------------------------------
-.global _InternalMemZeroMem
+.globl _InternalMemZeroMem
#------------------------------------------------------------------------------
# VOID *
movl 12(%esp), %ecx
movl %ecx, %edx
shrl $3, %ecx
- jz @ZeroBytes
+ jz L_ZeroBytes
pxor %mm0, %mm0
L0:
movq %mm0, (%edi)
addl $8, %edi
loop L0
-@ZeroBytes:
+L_ZeroBytes:
andl $7, %edx
xorl %eax, %eax
movl %edx, %ecx
#
#------------------------------------------------------------------------------
-.global _InternalMemCompareMem
+.globl _InternalMemCompareMem
#------------------------------------------------------------------------------
# INTN
#
#------------------------------------------------------------------------------
-.global _InternalMemCopyMem
+.globl _InternalMemCopyMem
#------------------------------------------------------------------------------
# VOID *
cmpl %edi, %esi
jae L0
cmpl %edi, %eax
- jae @CopyBackward # Copy backward if overlapped
+ jae L_CopyBackward # Copy backward if overlapped
L0:
movl %edx, %ecx
andl $3, %edx
shrl $2, %ecx
rep
movsl # Copy as many Dwords as possible
- jmp @CopyBytes
-@CopyBackward:
+ jmp L_CopyBytes
+L_CopyBackward:
movl %eax, %esi # esi <- End of Source
leal -1(%edi, %edx), %edi # edi <- End of Destination
std
-@CopyBytes:
+L_CopyBytes:
movl %edx, %ecx
rep
movsb # Copy bytes backward
#
#------------------------------------------------------------------------------
-.global _InternalMemScanMem16
+.globl _InternalMemScanMem16
#------------------------------------------------------------------------------
# CONST VOID *
#
#------------------------------------------------------------------------------
-.global _InternalMemScanMem32
+.globl _InternalMemScanMem32
#------------------------------------------------------------------------------
# CONST VOID *
#
#------------------------------------------------------------------------------
-.global _InternalMemScanMem64
+.globl _InternalMemScanMem64
#------------------------------------------------------------------------------
# CONST VOID *
#
#------------------------------------------------------------------------------
-.global _InternalMemScanMem8
+.globl _InternalMemScanMem8
#------------------------------------------------------------------------------
# CONST VOID *
.386:
.code:
-.global _InternalMemSetMem
+.globl _InternalMemSetMem
#------------------------------------------------------------------------------
# VOID *
#
#------------------------------------------------------------------------------
-.global _InternalMemSetMem16
+.globl _InternalMemSetMem16
#------------------------------------------------------------------------------
# VOID *
#
#------------------------------------------------------------------------------
-.global _InternalMemSetMem32
+.globl _InternalMemSetMem32
#------------------------------------------------------------------------------
# VOID *
#
#------------------------------------------------------------------------------
-.global _InternalMemSetMem64
+.globl _InternalMemSetMem64
#------------------------------------------------------------------------------
# VOID *
#
#------------------------------------------------------------------------------
-.global _InternalMemZeroMem
+.globl _InternalMemZeroMem
#------------------------------------------------------------------------------
# VOID *
#
#------------------------------------------------------------------------------
-.global _InternalMemCompareMem
+.globl _InternalMemCompareMem
#------------------------------------------------------------------------------
# INTN
#
#------------------------------------------------------------------------------
-.global _InternalMemCopyMem
+.globl _InternalMemCopyMem
#------------------------------------------------------------------------------
# VOID *
cmpl %edi, %esi
jae L0
cmpl %edi, %eax # Overlapped?
- jae @CopyBackward # Copy backward if overlapped
+ jae L_CopyBackward # Copy backward if overlapped
L0:
xorl %ecx, %ecx
subl %edi, %ecx
movl %edx, %ecx
andl $15, %edx
shrl $4, %ecx # ecx <- # of DQwords to copy
- jz @CopyBytes
+ jz L_CopyBytes
addl $-16, %esp
movdqu %xmm0, (%esp)
L2:
mfence
movdqu (%esp),%xmm0
addl $16, %esp # stack cleanup
- jmp @CopyBytes
-@CopyBackward:
+ jmp L_CopyBytes
+L_CopyBackward:
movl %eax, %esi # esi <- Last byte in Source
leal -1(%edi,%edx,), %edi # edi <- Last byte in Destination
std
-@CopyBytes:
+L_CopyBytes:
movl %edx, %ecx
rep
movsb
#
#------------------------------------------------------------------------------
-.global _InternalMemScanMem16
+.globl _InternalMemScanMem16
#------------------------------------------------------------------------------
# CONST VOID *
#
#------------------------------------------------------------------------------
-.global _InternalMemScanMem32
+.globl _InternalMemScanMem32
#------------------------------------------------------------------------------
# CONST VOID *
#
#------------------------------------------------------------------------------
-.global _InternalMemScanMem64
+.globl _InternalMemScanMem64
#------------------------------------------------------------------------------
# CONST VOID *
#
#------------------------------------------------------------------------------
-.global _InternalMemScanMem8
+.globl _InternalMemScanMem8
#------------------------------------------------------------------------------
# CONST VOID *
# IN UINT8 Value
# );
#------------------------------------------------------------------------------
-.global _InternalMemSetMem
+.globl _InternalMemSetMem
_InternalMemSetMem:
push %edi
movl 12(%esp), %edx # edx <- Count
movl %edx, %ecx
andl $15, %edx
shrl $4, %ecx # ecx <- # of DQwords to set
- jz @SetBytes
+ jz L_SetBytes
movb %al, %ah # ax <- Value | (Value << 8)
addl $-16, %esp
movdqu %xmm0, (%esp)
mfence
movdqu (%esp), %xmm0
addl $16, %esp # stack cleanup
-@SetBytes:
+L_SetBytes:
movl %edx, %ecx
rep
stosb
#
#------------------------------------------------------------------------------
-.global _InternalMemSetMem16
+.globl _InternalMemSetMem16
#------------------------------------------------------------------------------
# VOID *
movl %edx, %ecx
andl $7, %edx
shrl $3, %ecx
- jz @SetWords
+ jz L_SetWords
movd %eax, %xmm0
pshuflw $0, %xmm0, %xmm0
movlhps %xmm0, %xmm0
addl $16, %edi
loop L1
mfence
-@SetWords:
+L_SetWords:
movl %edx, %ecx
rep
stosw
#
#------------------------------------------------------------------------------
-.global _InternalMemSetMem32
+.globl _InternalMemSetMem32
#------------------------------------------------------------------------------
# VOID *
movl %edx, %ecx
andl $3, %edx
shrl $2, %ecx
- jz @SetDwords
+ jz L_SetDwords
movd %eax, %xmm0
pshufd $0, %xmm0, %xmm0
L1:
addl $16, %edi
loop L1
mfence
-@SetDwords:
+L_SetDwords:
movl %edx, %ecx
rep
stosl
decl %ecx\r
L1:\r
shrl %ecx\r
- jz @SetQwords\r
+ jz L_SetQwords\r
movlhps %xmm0, %xmm0\r
L2:\r
movntdq %xmm0, (%edx)\r
leal 16(%edx), %edx\r
loop L2\r
mfence\r
-@SetQwords:\r
+L_SetQwords:\r
jnc L3\r
movq %xmm0, (%edx)\r
L3:\r
#
#------------------------------------------------------------------------------
-.global _InternalMemZeroMem
+.globl _InternalMemZeroMem
#------------------------------------------------------------------------------
# VOID *
movl %edx, %ecx
andl $15, %edx
shrl $4, %ecx
- jz @ZeroBytes
+ jz L_ZeroBytes
pxor %xmm0, %xmm0
L1:
movntdq %xmm0, (%edi)
addl $16, %edi
loop L1
mfence
-@ZeroBytes:
+L_ZeroBytes:
movl %edx, %ecx
rep
stosb