mirror of https://github.com/acidanthera/audk.git
MdePkg: Remove X86 ASM and S files
NASM has replaced ASM and S files. 1. Remove ASM from all modules. 2. Remove S files from the drivers only. 3. https://bugzilla.tianocore.org/show_bug.cgi?id=881 After NASM is updated, S files can be removed from Library. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Liming Gao <liming.gao@intel.com> Reviewed-by: Michael Kinney <michael.d.kinney@intel.com>
This commit is contained in:
parent
b20085454e
commit
13688930ae
|
@ -37,18 +37,14 @@
|
|||
Ia32/CpuFlushTlb.c | MSFT
|
||||
|
||||
Ia32/CpuSleep.nasm| INTEL
|
||||
Ia32/CpuSleep.asm | INTEL
|
||||
Ia32/CpuFlushTlb.nasm| INTEL
|
||||
Ia32/CpuFlushTlb.asm | INTEL
|
||||
|
||||
Ia32/CpuSleepGcc.c | GCC
|
||||
Ia32/CpuFlushTlbGcc.c | GCC
|
||||
|
||||
[Sources.X64]
|
||||
X64/CpuFlushTlb.nasm
|
||||
X64/CpuFlushTlb.asm
|
||||
X64/CpuSleep.nasm
|
||||
X64/CpuSleep.asm
|
||||
|
||||
X64/CpuSleep.nasm| GCC
|
||||
X64/CpuSleep.S | GCC
|
||||
|
|
|
@ -1,40 +0,0 @@
|
|||
;------------------------------------------------------------------------------ ;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; CpuFlushTlb.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; CpuFlushTlb function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.386p
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; CpuFlushTlb (
|
||||
; VOID
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
CpuFlushTlb PROC
|
||||
mov eax, cr3
|
||||
mov cr3, eax ; moving to CR3 flushes TLB
|
||||
ret
|
||||
CpuFlushTlb ENDP
|
||||
|
||||
END
|
|
@ -1,39 +0,0 @@
|
|||
;------------------------------------------------------------------------------ ;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; CpuSleep.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; CpuSleep function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.386
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; CpuSleep (
|
||||
; VOID
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
CpuSleep PROC
|
||||
hlt
|
||||
ret
|
||||
CpuSleep ENDP
|
||||
|
||||
END
|
|
@ -1,38 +0,0 @@
|
|||
;------------------------------------------------------------------------------ ;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; CpuFlushTlb.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; CpuFlushTlb function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; CpuFlushTlb (
|
||||
; VOID
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
CpuFlushTlb PROC
|
||||
mov rax, cr3
|
||||
mov cr3, rax
|
||||
ret
|
||||
CpuFlushTlb ENDP
|
||||
|
||||
END
|
|
@ -1,37 +0,0 @@
|
|||
;------------------------------------------------------------------------------ ;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; CpuSleep.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; CpuSleep function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; CpuSleep (
|
||||
; VOID
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
CpuSleep PROC
|
||||
hlt
|
||||
ret
|
||||
CpuSleep ENDP
|
||||
|
||||
END
|
|
@ -6,7 +6,7 @@
|
|||
# MMIO requests are forwarded directly to memory. For EBC, I/O port requests
|
||||
# ASSERT().
|
||||
#
|
||||
# Copyright (c) 2007 - 2015, Intel Corporation. All rights reserved.<BR>
|
||||
# Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
|
||||
# Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
|
||||
# Copyright (c) 2017, AMD Incorporated. All rights reserved.<BR>
|
||||
#
|
||||
|
@ -44,7 +44,6 @@
|
|||
IoLibIcc.c | INTEL
|
||||
IoLib.c
|
||||
Ia32/IoFifo.nasm
|
||||
Ia32/IoFifo.asm
|
||||
|
||||
[Sources.X64]
|
||||
IoLibGcc.c | GCC
|
||||
|
@ -52,7 +51,6 @@
|
|||
IoLibIcc.c | INTEL
|
||||
IoLib.c
|
||||
X64/IoFifo.nasm
|
||||
X64/IoFifo.asm
|
||||
|
||||
[Sources.EBC]
|
||||
IoLibEbc.c
|
||||
|
|
|
@ -1,141 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
|
||||
; Copyright (c) 2017, AMD Incorporated. All rights reserved.<BR>
|
||||
;
|
||||
; This program and the accompanying materials are licensed and made available
|
||||
; under the terms and conditions of the BSD License which accompanies this
|
||||
; distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.586P
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; IoReadFifo8 (
|
||||
; IN UINTN Port,
|
||||
; IN UINTN Size,
|
||||
; OUT VOID *Buffer
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
IoReadFifo8 PROC
|
||||
push edi
|
||||
cld
|
||||
mov dx, [esp + 8]
|
||||
mov ecx, [esp + 12]
|
||||
mov edi, [esp + 16]
|
||||
rep insb
|
||||
pop edi
|
||||
ret
|
||||
IoReadFifo8 ENDP
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; IoReadFifo16 (
|
||||
; IN UINTN Port,
|
||||
; IN UINTN Size,
|
||||
; OUT VOID *Buffer
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
IoReadFifo16 PROC
|
||||
push edi
|
||||
cld
|
||||
mov dx, [esp + 8]
|
||||
mov ecx, [esp + 12]
|
||||
mov edi, [esp + 16]
|
||||
rep insw
|
||||
pop edi
|
||||
ret
|
||||
IoReadFifo16 ENDP
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; IoReadFifo32 (
|
||||
; IN UINTN Port,
|
||||
; IN UINTN Size,
|
||||
; OUT VOID *Buffer
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
IoReadFifo32 PROC
|
||||
push edi
|
||||
cld
|
||||
mov dx, [esp + 8]
|
||||
mov ecx, [esp + 12]
|
||||
mov edi, [esp + 16]
|
||||
rep insd
|
||||
pop edi
|
||||
ret
|
||||
IoReadFifo32 ENDP
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; IoWriteFifo8 (
|
||||
; IN UINTN Port,
|
||||
; IN UINTN Size,
|
||||
; IN VOID *Buffer
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
IoWriteFifo8 PROC
|
||||
push esi
|
||||
cld
|
||||
mov dx, [esp + 8]
|
||||
mov ecx, [esp + 12]
|
||||
mov esi, [esp + 16]
|
||||
rep outsb
|
||||
pop esi
|
||||
ret
|
||||
IoWriteFifo8 ENDP
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; IoWriteFifo16 (
|
||||
; IN UINTN Port,
|
||||
; IN UINTN Size,
|
||||
; IN VOID *Buffer
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
IoWriteFifo16 PROC
|
||||
push esi
|
||||
cld
|
||||
mov dx, [esp + 8]
|
||||
mov ecx, [esp + 12]
|
||||
mov esi, [esp + 16]
|
||||
rep outsw
|
||||
pop esi
|
||||
ret
|
||||
IoWriteFifo16 ENDP
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; IoWriteFifo32 (
|
||||
; IN UINTN Port,
|
||||
; IN UINTN Size,
|
||||
; IN VOID *Buffer
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
IoWriteFifo32 PROC
|
||||
push esi
|
||||
cld
|
||||
mov dx, [esp + 8]
|
||||
mov ecx, [esp + 12]
|
||||
mov esi, [esp + 16]
|
||||
rep outsd
|
||||
pop esi
|
||||
ret
|
||||
IoWriteFifo32 ENDP
|
||||
|
||||
END
|
||||
|
|
@ -1,127 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
|
||||
; Copyright (c) 2017, AMD Incorporated. All rights reserved.<BR>
|
||||
;
|
||||
; This program and the accompanying materials are licensed and made available
|
||||
; under the terms and conditions of the BSD License which accompanies this
|
||||
; distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; IoReadFifo8 (
|
||||
; IN UINTN Port, // rcx
|
||||
; IN UINTN Size, // rdx
|
||||
; OUT VOID *Buffer // r8
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
IoReadFifo8 PROC
|
||||
cld
|
||||
xchg rcx, rdx
|
||||
xchg rdi, r8 ; rdi: buffer address; r8: save rdi
|
||||
rep insb
|
||||
mov rdi, r8 ; restore rdi
|
||||
ret
|
||||
IoReadFifo8 ENDP
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; IoReadFifo16 (
|
||||
; IN UINTN Port, // rcx
|
||||
; IN UINTN Size, // rdx
|
||||
; OUT VOID *Buffer // r8
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
IoReadFifo16 PROC
|
||||
cld
|
||||
xchg rcx, rdx
|
||||
xchg rdi, r8 ; rdi: buffer address; r8: save rdi
|
||||
rep insw
|
||||
mov rdi, r8 ; restore rdi
|
||||
ret
|
||||
IoReadFifo16 ENDP
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; IoReadFifo32 (
|
||||
; IN UINTN Port, // rcx
|
||||
; IN UINTN Size, // rdx
|
||||
; OUT VOID *Buffer // r8
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
IoReadFifo32 PROC
|
||||
cld
|
||||
xchg rcx, rdx
|
||||
xchg rdi, r8 ; rdi: buffer address; r8: save rdi
|
||||
rep insd
|
||||
mov rdi, r8 ; restore rdi
|
||||
ret
|
||||
IoReadFifo32 ENDP
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; IoWriteFifo8 (
|
||||
; IN UINTN Port, // rcx
|
||||
; IN UINTN Size, // rdx
|
||||
; IN VOID *Buffer // r8
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
IoWriteFifo8 PROC
|
||||
cld
|
||||
xchg rcx, rdx
|
||||
xchg rsi, r8 ; rsi: buffer address; r8: save rsi
|
||||
rep outsb
|
||||
mov rsi, r8 ; restore rsi
|
||||
ret
|
||||
IoWriteFifo8 ENDP
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; IoWriteFifo16 (
|
||||
; IN UINTN Port, // rcx
|
||||
; IN UINTN Size, // rdx
|
||||
; IN VOID *Buffer // r8
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
IoWriteFifo16 PROC
|
||||
cld
|
||||
xchg rcx, rdx
|
||||
xchg rsi, r8 ; rsi: buffer address; r8: save rsi
|
||||
rep outsw
|
||||
mov rsi, r8 ; restore rsi
|
||||
ret
|
||||
IoWriteFifo16 ENDP
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; IoWriteFifo32 (
|
||||
; IN UINTN Port, // rcx
|
||||
; IN UINTN Size, // rdx
|
||||
; IN VOID *Buffer // r8
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
IoWriteFifo32 PROC
|
||||
cld
|
||||
xchg rcx, rdx
|
||||
xchg rsi, r8 ; rsi: buffer address; r8: save rsi
|
||||
rep outsd
|
||||
mov rsi, r8 ; restore rsi
|
||||
ret
|
||||
IoWriteFifo32 ENDP
|
||||
|
||||
END
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
## @file
|
||||
# Base Library implementation.
|
||||
#
|
||||
# Copyright (c) 2007 - 2016, Intel Corporation. All rights reserved.<BR>
|
||||
# Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
|
||||
# Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
|
||||
# Portions copyright (c) 2011 - 2013, ARM Ltd. All rights reserved.<BR>
|
||||
#
|
||||
|
@ -148,7 +148,6 @@
|
|||
Ia32/EnableInterrupts.c | MSFT
|
||||
Ia32/EnableDisableInterrupts.c | MSFT
|
||||
Ia32/DivU64x64Remainder.nasm| MSFT
|
||||
Ia32/DivU64x64Remainder.asm | MSFT
|
||||
Ia32/DivU64x32Remainder.c | MSFT
|
||||
Ia32/DivU64x32.c | MSFT
|
||||
Ia32/DisablePaging32.c | MSFT
|
||||
|
@ -159,200 +158,104 @@
|
|||
Ia32/CpuBreakpoint.c | MSFT
|
||||
Ia32/ARShiftU64.c | MSFT
|
||||
Ia32/Thunk16.nasm | MSFT
|
||||
Ia32/Thunk16.asm | MSFT
|
||||
Ia32/EnablePaging64.nasm| MSFT
|
||||
Ia32/EnablePaging64.asm | MSFT
|
||||
Ia32/EnableCache.c | MSFT
|
||||
Ia32/DisableCache.c | MSFT
|
||||
Ia32/RdRand.nasm| MSFT
|
||||
Ia32/RdRand.asm | MSFT
|
||||
|
||||
Ia32/Wbinvd.nasm| INTEL
|
||||
Ia32/Wbinvd.asm | INTEL
|
||||
Ia32/WriteMm7.nasm| INTEL
|
||||
Ia32/WriteMm7.asm | INTEL
|
||||
Ia32/WriteMm6.nasm| INTEL
|
||||
Ia32/WriteMm6.asm | INTEL
|
||||
Ia32/WriteMm5.nasm| INTEL
|
||||
Ia32/WriteMm5.asm | INTEL
|
||||
Ia32/WriteMm4.nasm| INTEL
|
||||
Ia32/WriteMm4.asm | INTEL
|
||||
Ia32/WriteMm3.nasm| INTEL
|
||||
Ia32/WriteMm3.asm | INTEL
|
||||
Ia32/WriteMm2.nasm| INTEL
|
||||
Ia32/WriteMm2.asm | INTEL
|
||||
Ia32/WriteMm1.nasm| INTEL
|
||||
Ia32/WriteMm1.asm | INTEL
|
||||
Ia32/WriteMm0.nasm| INTEL
|
||||
Ia32/WriteMm0.asm | INTEL
|
||||
Ia32/WriteLdtr.nasm| INTEL
|
||||
Ia32/WriteLdtr.asm | INTEL
|
||||
Ia32/WriteIdtr.nasm| INTEL
|
||||
Ia32/WriteIdtr.asm | INTEL
|
||||
Ia32/WriteGdtr.nasm| INTEL
|
||||
Ia32/WriteGdtr.asm | INTEL
|
||||
Ia32/WriteDr7.nasm| INTEL
|
||||
Ia32/WriteDr7.asm | INTEL
|
||||
Ia32/WriteDr6.nasm| INTEL
|
||||
Ia32/WriteDr6.asm | INTEL
|
||||
Ia32/WriteDr5.nasm| INTEL
|
||||
Ia32/WriteDr5.asm | INTEL
|
||||
Ia32/WriteDr4.nasm| INTEL
|
||||
Ia32/WriteDr4.asm | INTEL
|
||||
Ia32/WriteDr3.nasm| INTEL
|
||||
Ia32/WriteDr3.asm | INTEL
|
||||
Ia32/WriteDr2.nasm| INTEL
|
||||
Ia32/WriteDr2.asm | INTEL
|
||||
Ia32/WriteDr1.nasm| INTEL
|
||||
Ia32/WriteDr1.asm | INTEL
|
||||
Ia32/WriteDr0.nasm| INTEL
|
||||
Ia32/WriteDr0.asm | INTEL
|
||||
Ia32/WriteCr4.nasm| INTEL
|
||||
Ia32/WriteCr4.asm | INTEL
|
||||
Ia32/WriteCr3.nasm| INTEL
|
||||
Ia32/WriteCr3.asm | INTEL
|
||||
Ia32/WriteCr2.nasm| INTEL
|
||||
Ia32/WriteCr2.asm | INTEL
|
||||
Ia32/WriteCr0.nasm| INTEL
|
||||
Ia32/WriteCr0.asm | INTEL
|
||||
Ia32/WriteMsr64.nasm| INTEL
|
||||
Ia32/WriteMsr64.asm | INTEL
|
||||
Ia32/SwapBytes64.nasm| INTEL
|
||||
Ia32/SwapBytes64.asm | INTEL
|
||||
Ia32/SetJump.nasm| INTEL
|
||||
Ia32/SetJump.asm | INTEL
|
||||
Ia32/RRotU64.nasm| INTEL
|
||||
Ia32/RRotU64.asm | INTEL
|
||||
Ia32/RShiftU64.nasm| INTEL
|
||||
Ia32/RShiftU64.asm | INTEL
|
||||
Ia32/ReadPmc.nasm| INTEL
|
||||
Ia32/ReadPmc.asm | INTEL
|
||||
Ia32/ReadTsc.nasm| INTEL
|
||||
Ia32/ReadTsc.asm | INTEL
|
||||
Ia32/ReadLdtr.nasm| INTEL
|
||||
Ia32/ReadLdtr.asm | INTEL
|
||||
Ia32/ReadIdtr.nasm| INTEL
|
||||
Ia32/ReadIdtr.asm | INTEL
|
||||
Ia32/ReadGdtr.nasm| INTEL
|
||||
Ia32/ReadGdtr.asm | INTEL
|
||||
Ia32/ReadTr.nasm| INTEL
|
||||
Ia32/ReadTr.asm | INTEL
|
||||
Ia32/ReadSs.nasm| INTEL
|
||||
Ia32/ReadSs.asm | INTEL
|
||||
Ia32/ReadGs.nasm| INTEL
|
||||
Ia32/ReadGs.asm | INTEL
|
||||
Ia32/ReadFs.nasm| INTEL
|
||||
Ia32/ReadFs.asm | INTEL
|
||||
Ia32/ReadEs.nasm| INTEL
|
||||
Ia32/ReadEs.asm | INTEL
|
||||
Ia32/ReadDs.nasm| INTEL
|
||||
Ia32/ReadDs.asm | INTEL
|
||||
Ia32/ReadCs.nasm| INTEL
|
||||
Ia32/ReadCs.asm | INTEL
|
||||
Ia32/ReadMsr64.nasm| INTEL
|
||||
Ia32/ReadMsr64.asm | INTEL
|
||||
Ia32/ReadMm7.nasm| INTEL
|
||||
Ia32/ReadMm7.asm | INTEL
|
||||
Ia32/ReadMm6.nasm| INTEL
|
||||
Ia32/ReadMm6.asm | INTEL
|
||||
Ia32/ReadMm5.nasm| INTEL
|
||||
Ia32/ReadMm5.asm | INTEL
|
||||
Ia32/ReadMm4.nasm| INTEL
|
||||
Ia32/ReadMm4.asm | INTEL
|
||||
Ia32/ReadMm3.nasm| INTEL
|
||||
Ia32/ReadMm3.asm | INTEL
|
||||
Ia32/ReadMm2.nasm| INTEL
|
||||
Ia32/ReadMm2.asm | INTEL
|
||||
Ia32/ReadMm1.nasm| INTEL
|
||||
Ia32/ReadMm1.asm | INTEL
|
||||
Ia32/ReadMm0.nasm| INTEL
|
||||
Ia32/ReadMm0.asm | INTEL
|
||||
Ia32/ReadEflags.nasm| INTEL
|
||||
Ia32/ReadEflags.asm | INTEL
|
||||
Ia32/ReadDr7.nasm| INTEL
|
||||
Ia32/ReadDr7.asm | INTEL
|
||||
Ia32/ReadDr6.nasm| INTEL
|
||||
Ia32/ReadDr6.asm | INTEL
|
||||
Ia32/ReadDr5.nasm| INTEL
|
||||
Ia32/ReadDr5.asm | INTEL
|
||||
Ia32/ReadDr4.nasm| INTEL
|
||||
Ia32/ReadDr4.asm | INTEL
|
||||
Ia32/ReadDr3.nasm| INTEL
|
||||
Ia32/ReadDr3.asm | INTEL
|
||||
Ia32/ReadDr2.nasm| INTEL
|
||||
Ia32/ReadDr2.asm | INTEL
|
||||
Ia32/ReadDr1.nasm| INTEL
|
||||
Ia32/ReadDr1.asm | INTEL
|
||||
Ia32/ReadDr0.nasm| INTEL
|
||||
Ia32/ReadDr0.asm | INTEL
|
||||
Ia32/ReadCr4.nasm| INTEL
|
||||
Ia32/ReadCr4.asm | INTEL
|
||||
Ia32/ReadCr3.nasm| INTEL
|
||||
Ia32/ReadCr3.asm | INTEL
|
||||
Ia32/ReadCr2.nasm| INTEL
|
||||
Ia32/ReadCr2.asm | INTEL
|
||||
Ia32/ReadCr0.nasm| INTEL
|
||||
Ia32/ReadCr0.asm | INTEL
|
||||
Ia32/Mwait.nasm| INTEL
|
||||
Ia32/Mwait.asm | INTEL
|
||||
Ia32/Monitor.nasm| INTEL
|
||||
Ia32/Monitor.asm | INTEL
|
||||
Ia32/ModU64x32.nasm| INTEL
|
||||
Ia32/ModU64x32.asm | INTEL
|
||||
Ia32/MultU64x64.nasm| INTEL
|
||||
Ia32/MultU64x64.asm | INTEL
|
||||
Ia32/MultU64x32.nasm| INTEL
|
||||
Ia32/MultU64x32.asm | INTEL
|
||||
Ia32/LShiftU64.nasm| INTEL
|
||||
Ia32/LShiftU64.asm | INTEL
|
||||
Ia32/LRotU64.nasm| INTEL
|
||||
Ia32/LRotU64.asm | INTEL
|
||||
Ia32/LongJump.nasm| INTEL
|
||||
Ia32/LongJump.asm | INTEL
|
||||
Ia32/Invd.nasm| INTEL
|
||||
Ia32/Invd.asm | INTEL
|
||||
Ia32/FxRestore.nasm| INTEL
|
||||
Ia32/FxRestore.asm | INTEL
|
||||
Ia32/FxSave.nasm| INTEL
|
||||
Ia32/FxSave.asm | INTEL
|
||||
Ia32/FlushCacheLine.nasm| INTEL
|
||||
Ia32/FlushCacheLine.asm | INTEL
|
||||
Ia32/EnablePaging32.nasm| INTEL
|
||||
Ia32/EnablePaging32.asm | INTEL
|
||||
Ia32/EnableInterrupts.nasm| INTEL
|
||||
Ia32/EnableInterrupts.asm | INTEL
|
||||
Ia32/EnableDisableInterrupts.nasm| INTEL
|
||||
Ia32/EnableDisableInterrupts.asm | INTEL
|
||||
Ia32/DivU64x64Remainder.nasm| INTEL
|
||||
Ia32/DivU64x64Remainder.asm | INTEL
|
||||
Ia32/DivU64x32Remainder.nasm| INTEL
|
||||
Ia32/DivU64x32Remainder.asm | INTEL
|
||||
Ia32/DivU64x32.nasm| INTEL
|
||||
Ia32/DivU64x32.asm | INTEL
|
||||
Ia32/DisablePaging32.nasm| INTEL
|
||||
Ia32/DisablePaging32.asm | INTEL
|
||||
Ia32/DisableInterrupts.nasm| INTEL
|
||||
Ia32/DisableInterrupts.asm | INTEL
|
||||
Ia32/CpuPause.nasm| INTEL
|
||||
Ia32/CpuPause.asm | INTEL
|
||||
Ia32/CpuIdEx.nasm| INTEL
|
||||
Ia32/CpuIdEx.asm | INTEL
|
||||
Ia32/CpuId.nasm| INTEL
|
||||
Ia32/CpuId.asm | INTEL
|
||||
Ia32/CpuBreakpoint.nasm| INTEL
|
||||
Ia32/CpuBreakpoint.asm | INTEL
|
||||
Ia32/ARShiftU64.nasm| INTEL
|
||||
Ia32/ARShiftU64.asm | INTEL
|
||||
Ia32/Thunk16.nasm | INTEL
|
||||
Ia32/Thunk16.asm | INTEL
|
||||
Ia32/EnablePaging64.nasm| INTEL
|
||||
Ia32/EnablePaging64.asm | INTEL
|
||||
Ia32/EnableCache.nasm| INTEL
|
||||
Ia32/EnableCache.asm | INTEL
|
||||
Ia32/DisableCache.nasm| INTEL
|
||||
Ia32/DisableCache.asm | INTEL
|
||||
Ia32/RdRand.nasm| INTEL
|
||||
Ia32/RdRand.asm | INTEL
|
||||
|
||||
Ia32/GccInline.c | GCC
|
||||
Ia32/Thunk16.nasm | GCC
|
||||
|
@ -435,309 +338,160 @@
|
|||
|
||||
[Sources.X64]
|
||||
X64/Thunk16.nasm
|
||||
X64/Thunk16.asm
|
||||
X64/CpuIdEx.nasm
|
||||
X64/CpuIdEx.asm
|
||||
X64/CpuId.nasm
|
||||
X64/CpuId.asm
|
||||
X64/LongJump.nasm
|
||||
X64/LongJump.asm
|
||||
X64/SetJump.nasm
|
||||
X64/SetJump.asm
|
||||
X64/SwitchStack.nasm
|
||||
X64/SwitchStack.asm
|
||||
X64/EnableCache.nasm
|
||||
X64/EnableCache.asm
|
||||
X64/DisableCache.nasm
|
||||
X64/DisableCache.asm
|
||||
X64/WriteTr.nasm
|
||||
|
||||
X64/CpuBreakpoint.c | MSFT
|
||||
X64/WriteMsr64.c | MSFT
|
||||
X64/ReadMsr64.c | MSFT
|
||||
X64/RdRand.nasm| MSFT
|
||||
X64/RdRand.asm | MSFT
|
||||
X64/CpuPause.nasm| MSFT
|
||||
X64/CpuPause.asm | MSFT
|
||||
X64/EnableDisableInterrupts.nasm| MSFT
|
||||
X64/EnableDisableInterrupts.asm | MSFT
|
||||
X64/DisableInterrupts.nasm| MSFT
|
||||
X64/DisableInterrupts.asm | MSFT
|
||||
X64/EnableInterrupts.nasm| MSFT
|
||||
X64/EnableInterrupts.asm | MSFT
|
||||
X64/FlushCacheLine.nasm| MSFT
|
||||
X64/FlushCacheLine.asm | MSFT
|
||||
X64/Invd.nasm| MSFT
|
||||
X64/Invd.asm | MSFT
|
||||
X64/Wbinvd.nasm| MSFT
|
||||
X64/Wbinvd.asm | MSFT
|
||||
X64/DisablePaging64.nasm| MSFT
|
||||
X64/DisablePaging64.asm | MSFT
|
||||
X64/Mwait.nasm| MSFT
|
||||
X64/Mwait.asm | MSFT
|
||||
X64/Monitor.nasm| MSFT
|
||||
X64/Monitor.asm | MSFT
|
||||
X64/ReadPmc.nasm| MSFT
|
||||
X64/ReadPmc.asm | MSFT
|
||||
X64/ReadTsc.nasm| MSFT
|
||||
X64/ReadTsc.asm | MSFT
|
||||
X64/WriteMm7.nasm| MSFT
|
||||
X64/WriteMm7.asm | MSFT
|
||||
X64/WriteMm6.nasm| MSFT
|
||||
X64/WriteMm6.asm | MSFT
|
||||
X64/WriteMm5.nasm| MSFT
|
||||
X64/WriteMm5.asm | MSFT
|
||||
X64/WriteMm4.nasm| MSFT
|
||||
X64/WriteMm4.asm | MSFT
|
||||
X64/WriteMm3.nasm| MSFT
|
||||
X64/WriteMm3.asm | MSFT
|
||||
X64/WriteMm2.nasm| MSFT
|
||||
X64/WriteMm2.asm | MSFT
|
||||
X64/WriteMm1.nasm| MSFT
|
||||
X64/WriteMm1.asm | MSFT
|
||||
X64/WriteMm0.nasm| MSFT
|
||||
X64/WriteMm0.asm | MSFT
|
||||
X64/ReadMm7.nasm| MSFT
|
||||
X64/ReadMm7.asm | MSFT
|
||||
X64/ReadMm6.nasm| MSFT
|
||||
X64/ReadMm6.asm | MSFT
|
||||
X64/ReadMm5.nasm| MSFT
|
||||
X64/ReadMm5.asm | MSFT
|
||||
X64/ReadMm4.nasm| MSFT
|
||||
X64/ReadMm4.asm | MSFT
|
||||
X64/ReadMm3.nasm| MSFT
|
||||
X64/ReadMm3.asm | MSFT
|
||||
X64/ReadMm2.nasm| MSFT
|
||||
X64/ReadMm2.asm | MSFT
|
||||
X64/ReadMm1.nasm| MSFT
|
||||
X64/ReadMm1.asm | MSFT
|
||||
X64/ReadMm0.nasm| MSFT
|
||||
X64/ReadMm0.asm | MSFT
|
||||
X64/FxRestore.nasm| MSFT
|
||||
X64/FxRestore.asm | MSFT
|
||||
X64/FxSave.nasm| MSFT
|
||||
X64/FxSave.asm | MSFT
|
||||
X64/WriteLdtr.nasm| MSFT
|
||||
X64/WriteLdtr.asm | MSFT
|
||||
X64/ReadLdtr.nasm| MSFT
|
||||
X64/ReadLdtr.asm | MSFT
|
||||
X64/WriteIdtr.nasm| MSFT
|
||||
X64/WriteIdtr.asm | MSFT
|
||||
X64/ReadIdtr.nasm| MSFT
|
||||
X64/ReadIdtr.asm | MSFT
|
||||
X64/WriteGdtr.nasm| MSFT
|
||||
X64/WriteGdtr.asm | MSFT
|
||||
X64/ReadGdtr.nasm| MSFT
|
||||
X64/ReadGdtr.asm | MSFT
|
||||
X64/ReadTr.nasm| MSFT
|
||||
X64/ReadTr.asm | MSFT
|
||||
X64/ReadSs.nasm| MSFT
|
||||
X64/ReadSs.asm | MSFT
|
||||
X64/ReadGs.nasm| MSFT
|
||||
X64/ReadGs.asm | MSFT
|
||||
X64/ReadFs.nasm| MSFT
|
||||
X64/ReadFs.asm | MSFT
|
||||
X64/ReadEs.nasm| MSFT
|
||||
X64/ReadEs.asm | MSFT
|
||||
X64/ReadDs.nasm| MSFT
|
||||
X64/ReadDs.asm | MSFT
|
||||
X64/ReadCs.nasm| MSFT
|
||||
X64/ReadCs.asm | MSFT
|
||||
X64/WriteDr7.nasm| MSFT
|
||||
X64/WriteDr7.asm | MSFT
|
||||
X64/WriteDr6.nasm| MSFT
|
||||
X64/WriteDr6.asm | MSFT
|
||||
X64/WriteDr5.nasm| MSFT
|
||||
X64/WriteDr5.asm | MSFT
|
||||
X64/WriteDr4.nasm| MSFT
|
||||
X64/WriteDr4.asm | MSFT
|
||||
X64/WriteDr3.nasm| MSFT
|
||||
X64/WriteDr3.asm | MSFT
|
||||
X64/WriteDr2.nasm| MSFT
|
||||
X64/WriteDr2.asm | MSFT
|
||||
X64/WriteDr1.nasm| MSFT
|
||||
X64/WriteDr1.asm | MSFT
|
||||
X64/WriteDr0.nasm| MSFT
|
||||
X64/WriteDr0.asm | MSFT
|
||||
X64/ReadDr7.nasm| MSFT
|
||||
X64/ReadDr7.asm | MSFT
|
||||
X64/ReadDr6.nasm| MSFT
|
||||
X64/ReadDr6.asm | MSFT
|
||||
X64/ReadDr5.nasm| MSFT
|
||||
X64/ReadDr5.asm | MSFT
|
||||
X64/ReadDr4.nasm| MSFT
|
||||
X64/ReadDr4.asm | MSFT
|
||||
X64/ReadDr3.nasm| MSFT
|
||||
X64/ReadDr3.asm | MSFT
|
||||
X64/ReadDr2.nasm| MSFT
|
||||
X64/ReadDr2.asm | MSFT
|
||||
X64/ReadDr1.nasm| MSFT
|
||||
X64/ReadDr1.asm | MSFT
|
||||
X64/ReadDr0.nasm| MSFT
|
||||
X64/ReadDr0.asm | MSFT
|
||||
X64/WriteCr4.nasm| MSFT
|
||||
X64/WriteCr4.asm | MSFT
|
||||
X64/WriteCr3.nasm| MSFT
|
||||
X64/WriteCr3.asm | MSFT
|
||||
X64/WriteCr2.nasm| MSFT
|
||||
X64/WriteCr2.asm | MSFT
|
||||
X64/WriteCr0.nasm| MSFT
|
||||
X64/WriteCr0.asm | MSFT
|
||||
X64/ReadCr4.nasm| MSFT
|
||||
X64/ReadCr4.asm | MSFT
|
||||
X64/ReadCr3.nasm| MSFT
|
||||
X64/ReadCr3.asm | MSFT
|
||||
X64/ReadCr2.nasm| MSFT
|
||||
X64/ReadCr2.asm | MSFT
|
||||
X64/ReadCr0.nasm| MSFT
|
||||
X64/ReadCr0.asm | MSFT
|
||||
X64/ReadEflags.nasm| MSFT
|
||||
X64/ReadEflags.asm | MSFT
|
||||
|
||||
X64/CpuBreakpoint.nasm| INTEL
|
||||
X64/CpuBreakpoint.asm | INTEL
|
||||
X64/WriteMsr64.nasm| INTEL
|
||||
X64/WriteMsr64.asm | INTEL
|
||||
X64/ReadMsr64.nasm| INTEL
|
||||
X64/ReadMsr64.asm | INTEL
|
||||
X64/RdRand.nasm| INTEL
|
||||
X64/RdRand.asm | INTEL
|
||||
X64/CpuPause.nasm| INTEL
|
||||
X64/CpuPause.asm | INTEL
|
||||
X64/EnableDisableInterrupts.nasm| INTEL
|
||||
X64/EnableDisableInterrupts.asm | INTEL
|
||||
X64/DisableInterrupts.nasm| INTEL
|
||||
X64/DisableInterrupts.asm | INTEL
|
||||
X64/EnableInterrupts.nasm| INTEL
|
||||
X64/EnableInterrupts.asm | INTEL
|
||||
X64/FlushCacheLine.nasm| INTEL
|
||||
X64/FlushCacheLine.asm | INTEL
|
||||
X64/Invd.nasm| INTEL
|
||||
X64/Invd.asm | INTEL
|
||||
X64/Wbinvd.nasm| INTEL
|
||||
X64/Wbinvd.asm | INTEL
|
||||
X64/DisablePaging64.nasm| INTEL
|
||||
X64/DisablePaging64.asm | INTEL
|
||||
X64/Mwait.nasm| INTEL
|
||||
X64/Mwait.asm | INTEL
|
||||
X64/Monitor.nasm| INTEL
|
||||
X64/Monitor.asm | INTEL
|
||||
X64/ReadPmc.nasm| INTEL
|
||||
X64/ReadPmc.asm | INTEL
|
||||
X64/ReadTsc.nasm| INTEL
|
||||
X64/ReadTsc.asm | INTEL
|
||||
X64/WriteMm7.nasm| INTEL
|
||||
X64/WriteMm7.asm | INTEL
|
||||
X64/WriteMm6.nasm| INTEL
|
||||
X64/WriteMm6.asm | INTEL
|
||||
X64/WriteMm5.nasm| INTEL
|
||||
X64/WriteMm5.asm | INTEL
|
||||
X64/WriteMm4.nasm| INTEL
|
||||
X64/WriteMm4.asm | INTEL
|
||||
X64/WriteMm3.nasm| INTEL
|
||||
X64/WriteMm3.asm | INTEL
|
||||
X64/WriteMm2.nasm| INTEL
|
||||
X64/WriteMm2.asm | INTEL
|
||||
X64/WriteMm1.nasm| INTEL
|
||||
X64/WriteMm1.asm | INTEL
|
||||
X64/WriteMm0.nasm| INTEL
|
||||
X64/WriteMm0.asm | INTEL
|
||||
X64/ReadMm7.nasm| INTEL
|
||||
X64/ReadMm7.asm | INTEL
|
||||
X64/ReadMm6.nasm| INTEL
|
||||
X64/ReadMm6.asm | INTEL
|
||||
X64/ReadMm5.nasm| INTEL
|
||||
X64/ReadMm5.asm | INTEL
|
||||
X64/ReadMm4.nasm| INTEL
|
||||
X64/ReadMm4.asm | INTEL
|
||||
X64/ReadMm3.nasm| INTEL
|
||||
X64/ReadMm3.asm | INTEL
|
||||
X64/ReadMm2.nasm| INTEL
|
||||
X64/ReadMm2.asm | INTEL
|
||||
X64/ReadMm1.nasm| INTEL
|
||||
X64/ReadMm1.asm | INTEL
|
||||
X64/ReadMm0.nasm| INTEL
|
||||
X64/ReadMm0.asm | INTEL
|
||||
X64/FxRestore.nasm| INTEL
|
||||
X64/FxRestore.asm | INTEL
|
||||
X64/FxSave.nasm| INTEL
|
||||
X64/FxSave.asm | INTEL
|
||||
X64/WriteLdtr.nasm| INTEL
|
||||
X64/WriteLdtr.asm | INTEL
|
||||
X64/ReadLdtr.nasm| INTEL
|
||||
X64/ReadLdtr.asm | INTEL
|
||||
X64/WriteIdtr.nasm| INTEL
|
||||
X64/WriteIdtr.asm | INTEL
|
||||
X64/ReadIdtr.nasm| INTEL
|
||||
X64/ReadIdtr.asm | INTEL
|
||||
X64/WriteGdtr.nasm| INTEL
|
||||
X64/WriteGdtr.asm | INTEL
|
||||
X64/ReadGdtr.nasm| INTEL
|
||||
X64/ReadGdtr.asm | INTEL
|
||||
X64/ReadTr.nasm| INTEL
|
||||
X64/ReadTr.asm | INTEL
|
||||
X64/ReadSs.nasm| INTEL
|
||||
X64/ReadSs.asm | INTEL
|
||||
X64/ReadGs.nasm| INTEL
|
||||
X64/ReadGs.asm | INTEL
|
||||
X64/ReadFs.nasm| INTEL
|
||||
X64/ReadFs.asm | INTEL
|
||||
X64/ReadEs.nasm| INTEL
|
||||
X64/ReadEs.asm | INTEL
|
||||
X64/ReadDs.nasm| INTEL
|
||||
X64/ReadDs.asm | INTEL
|
||||
X64/ReadCs.nasm| INTEL
|
||||
X64/ReadCs.asm | INTEL
|
||||
X64/WriteDr7.nasm| INTEL
|
||||
X64/WriteDr7.asm | INTEL
|
||||
X64/WriteDr6.nasm| INTEL
|
||||
X64/WriteDr6.asm | INTEL
|
||||
X64/WriteDr5.nasm| INTEL
|
||||
X64/WriteDr5.asm | INTEL
|
||||
X64/WriteDr4.nasm| INTEL
|
||||
X64/WriteDr4.asm | INTEL
|
||||
X64/WriteDr3.nasm| INTEL
|
||||
X64/WriteDr3.asm | INTEL
|
||||
X64/WriteDr2.nasm| INTEL
|
||||
X64/WriteDr2.asm | INTEL
|
||||
X64/WriteDr1.nasm| INTEL
|
||||
X64/WriteDr1.asm | INTEL
|
||||
X64/WriteDr0.nasm| INTEL
|
||||
X64/WriteDr0.asm | INTEL
|
||||
X64/ReadDr7.nasm| INTEL
|
||||
X64/ReadDr7.asm | INTEL
|
||||
X64/ReadDr6.nasm| INTEL
|
||||
X64/ReadDr6.asm | INTEL
|
||||
X64/ReadDr5.nasm| INTEL
|
||||
X64/ReadDr5.asm | INTEL
|
||||
X64/ReadDr4.nasm| INTEL
|
||||
X64/ReadDr4.asm | INTEL
|
||||
X64/ReadDr3.nasm| INTEL
|
||||
X64/ReadDr3.asm | INTEL
|
||||
X64/ReadDr2.nasm| INTEL
|
||||
X64/ReadDr2.asm | INTEL
|
||||
X64/ReadDr1.nasm| INTEL
|
||||
X64/ReadDr1.asm | INTEL
|
||||
X64/ReadDr0.nasm| INTEL
|
||||
X64/ReadDr0.asm | INTEL
|
||||
X64/WriteCr4.nasm| INTEL
|
||||
X64/WriteCr4.asm | INTEL
|
||||
X64/WriteCr3.nasm| INTEL
|
||||
X64/WriteCr3.asm | INTEL
|
||||
X64/WriteCr2.nasm| INTEL
|
||||
X64/WriteCr2.asm | INTEL
|
||||
X64/WriteCr0.nasm| INTEL
|
||||
X64/WriteCr0.asm | INTEL
|
||||
X64/ReadCr4.nasm| INTEL
|
||||
X64/ReadCr4.asm | INTEL
|
||||
X64/ReadCr3.nasm| INTEL
|
||||
X64/ReadCr3.asm | INTEL
|
||||
X64/ReadCr2.nasm| INTEL
|
||||
X64/ReadCr2.asm | INTEL
|
||||
X64/ReadCr0.nasm| INTEL
|
||||
X64/ReadCr0.asm | INTEL
|
||||
X64/ReadEflags.nasm| INTEL
|
||||
X64/ReadEflags.asm | INTEL
|
||||
|
||||
X64/Non-existing.c
|
||||
Math64.c
|
||||
|
|
|
@ -1,48 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; ARShiftU64.asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; 64-bit arithmetic right shift function for IA-32
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.686
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINT64
|
||||
; EFIAPI
|
||||
; InternalMathARShiftU64 (
|
||||
; IN UINT64 Operand,
|
||||
; IN UINTN Count
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
InternalMathARShiftU64 PROC
|
||||
mov cl, [esp + 12]
|
||||
mov eax, [esp + 8]
|
||||
cdq
|
||||
test cl, 32
|
||||
jnz @F
|
||||
mov edx, eax
|
||||
mov eax, [esp + 4]
|
||||
@@:
|
||||
shrd eax, edx, cl
|
||||
sar edx, cl
|
||||
ret
|
||||
InternalMathARShiftU64 ENDP
|
||||
|
||||
END
|
|
@ -1,40 +0,0 @@
|
|||
;------------------------------------------------------------------------------ ;
|
||||
; Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; CpuBreakpoint.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; CpuBreakpoint function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.686
|
||||
.model flat
|
||||
.xmm
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; CpuBreakpoint (
|
||||
; VOID
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
CpuBreakpoint PROC
|
||||
int 3
|
||||
ret
|
||||
CpuBreakpoint ENDP
|
||||
|
||||
END
|
|
@ -1,66 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; CpuId.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmCpuid function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.586P
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; AsmCpuid (
|
||||
; IN UINT32 RegisterInEax,
|
||||
; OUT UINT32 *RegisterOutEax OPTIONAL,
|
||||
; OUT UINT32 *RegisterOutEbx OPTIONAL,
|
||||
; OUT UINT32 *RegisterOutEcx OPTIONAL,
|
||||
; OUT UINT32 *RegisterOutEdx OPTIONAL
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmCpuid PROC USES ebx
|
||||
push ebp
|
||||
mov ebp, esp
|
||||
mov eax, [ebp + 12]
|
||||
cpuid
|
||||
push ecx
|
||||
mov ecx, [ebp + 16]
|
||||
jecxz @F
|
||||
mov [ecx], eax
|
||||
@@:
|
||||
mov ecx, [ebp + 20]
|
||||
jecxz @F
|
||||
mov [ecx], ebx
|
||||
@@:
|
||||
mov ecx, [ebp + 24]
|
||||
jecxz @F
|
||||
pop DWORD [ecx]
|
||||
@@:
|
||||
mov ecx, [ebp + 28]
|
||||
jecxz @F
|
||||
mov [ecx], edx
|
||||
@@:
|
||||
mov eax, [ebp + 12]
|
||||
leave
|
||||
ret
|
||||
AsmCpuid ENDP
|
||||
|
||||
END
|
|
@ -1,68 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; CpuIdEx.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmCpuidEx function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.686
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINT32
|
||||
; EFIAPI
|
||||
; AsmCpuidEx (
|
||||
; IN UINT32 RegisterInEax,
|
||||
; IN UINT32 RegisterInEcx,
|
||||
; OUT UINT32 *RegisterOutEax OPTIONAL,
|
||||
; OUT UINT32 *RegisterOutEbx OPTIONAL,
|
||||
; OUT UINT32 *RegisterOutEcx OPTIONAL,
|
||||
; OUT UINT32 *RegisterOutEdx OPTIONAL
|
||||
; )
|
||||
;------------------------------------------------------------------------------
|
||||
AsmCpuidEx PROC USES ebx
|
||||
push ebp
|
||||
mov ebp, esp
|
||||
mov eax, [ebp + 12]
|
||||
mov ecx, [ebp + 16]
|
||||
cpuid
|
||||
push ecx
|
||||
mov ecx, [ebp + 20]
|
||||
jecxz @F
|
||||
mov [ecx], eax
|
||||
@@:
|
||||
mov ecx, [ebp + 24]
|
||||
jecxz @F
|
||||
mov [ecx], ebx
|
||||
@@:
|
||||
mov ecx, [ebp + 32]
|
||||
jecxz @F
|
||||
mov [ecx], edx
|
||||
@@:
|
||||
mov ecx, [ebp + 28]
|
||||
jecxz @F
|
||||
pop DWORD [ecx]
|
||||
@@:
|
||||
mov eax, [ebp + 12]
|
||||
leave
|
||||
ret
|
||||
AsmCpuidEx ENDP
|
||||
|
||||
END
|
|
@ -1,40 +0,0 @@
|
|||
;------------------------------------------------------------------------------ ;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; CpuPause.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; CpuPause function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.686
|
||||
.model flat,C
|
||||
.xmm
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; CpuPause (
|
||||
; VOID
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
CpuPause PROC
|
||||
pause
|
||||
ret
|
||||
CpuPause ENDP
|
||||
|
||||
END
|
|
@ -1,45 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; DisableCache.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; Set the CD bit of CR0 to 1, clear the NW bit of CR0 to 0, and flush all caches with a
|
||||
; WBINVD instruction.
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.486p
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; AsmDisableCache (
|
||||
; VOID
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmDisableCache PROC
|
||||
mov eax, cr0
|
||||
bts eax, 30
|
||||
btr eax, 29
|
||||
mov cr0, eax
|
||||
wbinvd
|
||||
ret
|
||||
AsmDisableCache ENDP
|
||||
|
||||
END
|
|
@ -1,40 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; DisableInterrupts.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; DisableInterrupts function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.386p
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; DisableInterrupts (
|
||||
; VOID
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
DisableInterrupts PROC
|
||||
cli
|
||||
ret
|
||||
DisableInterrupts ENDP
|
||||
|
||||
END
|
|
@ -1,57 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; DisablePaging32.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmDisablePaging32 function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.386
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; InternalX86DisablePaging32 (
|
||||
; IN SWITCH_STACK_ENTRY_POINT EntryPoint,
|
||||
; IN VOID *Context1, OPTIONAL
|
||||
; IN VOID *Context2, OPTIONAL
|
||||
; IN VOID *NewStack
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
InternalX86DisablePaging32 PROC
|
||||
mov ebx, [esp + 4]
|
||||
mov ecx, [esp + 8]
|
||||
mov edx, [esp + 12]
|
||||
pushfd
|
||||
pop edi ; save EFLAGS to edi
|
||||
cli
|
||||
mov eax, cr0
|
||||
btr eax, 31
|
||||
mov esp, [esp + 16]
|
||||
mov cr0, eax
|
||||
push edi
|
||||
popfd ; restore EFLAGS from edi
|
||||
push edx
|
||||
push ecx
|
||||
call ebx
|
||||
jmp $ ; EntryPoint() should not return
|
||||
InternalX86DisablePaging32 ENDP
|
||||
|
||||
END
|
|
@ -1,46 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; DivU64x32.asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; Calculate the quotient of a 64-bit integer by a 32-bit integer
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.386
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINT64
|
||||
; EFIAPI
|
||||
; InternalMathDivU64x32 (
|
||||
; IN UINT64 Dividend,
|
||||
; IN UINT32 Divisor
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
InternalMathDivU64x32 PROC
|
||||
mov eax, [esp + 8]
|
||||
mov ecx, [esp + 12]
|
||||
xor edx, edx
|
||||
div ecx
|
||||
push eax ; save quotient on stack
|
||||
mov eax, [esp + 8]
|
||||
div ecx
|
||||
pop edx ; restore high-order dword of the quotient
|
||||
ret
|
||||
InternalMathDivU64x32 ENDP
|
||||
|
||||
END
|
|
@ -1,51 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; DivError.asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; Set error flag for all division functions
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.386
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINT64
|
||||
; EFIAPI
|
||||
; InternalMathDivRemU64x32 (
|
||||
; IN UINT64 Dividend,
|
||||
; IN UINT32 Divisor,
|
||||
; OUT UINT32 *Remainder
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
InternalMathDivRemU64x32 PROC
|
||||
mov ecx, [esp + 12] ; ecx <- divisor
|
||||
mov eax, [esp + 8] ; eax <- dividend[32..63]
|
||||
xor edx, edx
|
||||
div ecx ; eax <- quotient[32..63], edx <- remainder
|
||||
push eax
|
||||
mov eax, [esp + 8] ; eax <- dividend[0..31]
|
||||
div ecx ; eax <- quotient[0..31]
|
||||
mov ecx, [esp + 20] ; ecx <- Remainder
|
||||
jecxz @F ; abandon remainder if Remainder == NULL
|
||||
mov [ecx], edx
|
||||
@@:
|
||||
pop edx ; edx <- quotient[32..63]
|
||||
ret
|
||||
InternalMathDivRemU64x32 ENDP
|
||||
|
||||
END
|
|
@ -1,92 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; DivU64x64Remainder.asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; Calculate the quotient of a 64-bit integer by a 64-bit integer and returns
|
||||
; both the quotient and the remainder
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.386
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
EXTERN InternalMathDivRemU64x32:PROC
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINT64
|
||||
; EFIAPI
|
||||
; InternalMathDivRemU64x64 (
|
||||
; IN UINT64 Dividend,
|
||||
; IN UINT64 Divisor,
|
||||
; OUT UINT64 *Remainder OPTIONAL
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
InternalMathDivRemU64x64 PROC
|
||||
mov ecx, [esp + 16] ; ecx <- divisor[32..63]
|
||||
test ecx, ecx
|
||||
jnz _@DivRemU64x64 ; call _@DivRemU64x64 if Divisor > 2^32
|
||||
mov ecx, [esp + 20]
|
||||
jecxz @F
|
||||
and dword ptr [ecx + 4], 0 ; zero high dword of remainder
|
||||
mov [esp + 16], ecx ; set up stack frame to match DivRemU64x32
|
||||
@@:
|
||||
jmp InternalMathDivRemU64x32
|
||||
InternalMathDivRemU64x64 ENDP
|
||||
|
||||
_@DivRemU64x64 PROC PRIVATE USES ebx esi edi
|
||||
mov edx, dword ptr [esp + 20]
|
||||
mov eax, dword ptr [esp + 16] ; edx:eax <- dividend
|
||||
mov edi, edx
|
||||
mov esi, eax ; edi:esi <- dividend
|
||||
mov ebx, dword ptr [esp + 24] ; ecx:ebx <- divisor
|
||||
@@:
|
||||
shr edx, 1
|
||||
rcr eax, 1
|
||||
shrd ebx, ecx, 1
|
||||
shr ecx, 1
|
||||
jnz @B
|
||||
div ebx
|
||||
mov ebx, eax ; ebx <- quotient
|
||||
mov ecx, [esp + 28] ; ecx <- high dword of divisor
|
||||
mul dword ptr [esp + 24] ; edx:eax <- quotient * divisor[0..31]
|
||||
imul ecx, ebx ; ecx <- quotient * divisor[32..63]
|
||||
add edx, ecx ; edx <- (quotient * divisor)[32..63]
|
||||
mov ecx, dword ptr [esp + 32] ; ecx <- addr for Remainder
|
||||
jc @TooLarge ; product > 2^64
|
||||
cmp edi, edx ; compare high 32 bits
|
||||
ja @Correct
|
||||
jb @TooLarge ; product > dividend
|
||||
cmp esi, eax
|
||||
jae @Correct ; product <= dividend
|
||||
@TooLarge:
|
||||
dec ebx ; adjust quotient by -1
|
||||
jecxz @Return ; return if Remainder == NULL
|
||||
sub eax, dword ptr [esp + 24]
|
||||
sbb edx, dword ptr [esp + 28] ; edx:eax <- (quotient - 1) * divisor
|
||||
@Correct:
|
||||
jecxz @Return
|
||||
sub esi, eax
|
||||
sbb edi, edx ; edi:esi <- remainder
|
||||
mov [ecx], esi
|
||||
mov [ecx + 4], edi
|
||||
@Return:
|
||||
mov eax, ebx ; eax <- quotient
|
||||
xor edx, edx ; quotient is 32 bits long
|
||||
ret
|
||||
_@DivRemU64x64 ENDP
|
||||
|
||||
END
|
|
@ -1,45 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; EnableCache.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; Flush all caches with a WBINVD instruction, clear the CD bit of CR0 to 0, and clear
|
||||
; the NW bit of CR0 to 0
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.486p
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; AsmEnableCache (
|
||||
; VOID
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmEnableCache PROC
|
||||
wbinvd
|
||||
mov eax, cr0
|
||||
btr eax, 29
|
||||
btr eax, 30
|
||||
mov cr0, eax
|
||||
ret
|
||||
AsmEnableCache ENDP
|
||||
|
||||
END
|
|
@ -1,41 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; EnableDisableInterrupts.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; EnableDisableInterrupts function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.386p
|
||||
.model flat
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; EnableDisableInterrupts (
|
||||
; VOID
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
EnableDisableInterrupts PROC
|
||||
sti
|
||||
cli
|
||||
ret
|
||||
EnableDisableInterrupts ENDP
|
||||
|
||||
END
|
|
@ -1,40 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; EnableInterrupts.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; EnableInterrupts function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.386p
|
||||
.model flat
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; EnableInterrupts (
|
||||
; VOID
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
EnableInterrupts PROC
|
||||
sti
|
||||
ret
|
||||
EnableInterrupts ENDP
|
||||
|
||||
END
|
|
@ -1,57 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; EnablePaging32.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmEnablePaging32 function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.386
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; InternalX86EnablePaging32 (
|
||||
; IN SWITCH_STACK_ENTRY_POINT EntryPoint,
|
||||
; IN VOID *Context1, OPTIONAL
|
||||
; IN VOID *Context2, OPTIONAL
|
||||
; IN VOID *NewStack
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
InternalX86EnablePaging32 PROC
|
||||
mov ebx, [esp + 4]
|
||||
mov ecx, [esp + 8]
|
||||
mov edx, [esp + 12]
|
||||
pushfd
|
||||
pop edi ; save flags in edi
|
||||
cli
|
||||
mov eax, cr0
|
||||
bts eax, 31
|
||||
mov esp, [esp + 16]
|
||||
mov cr0, eax
|
||||
push edi
|
||||
popfd ; restore flags
|
||||
push edx
|
||||
push ecx
|
||||
call ebx
|
||||
jmp $
|
||||
InternalX86EnablePaging32 ENDP
|
||||
|
||||
END
|
|
@ -1,68 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; EnablePaging64.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmEnablePaging64 function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.686p
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; InternalX86EnablePaging64 (
|
||||
; IN UINT16 Cs,
|
||||
; IN UINT64 EntryPoint,
|
||||
; IN UINT64 Context1, OPTIONAL
|
||||
; IN UINT64 Context2, OPTIONAL
|
||||
; IN UINT64 NewStack
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
InternalX86EnablePaging64 PROC
|
||||
cli
|
||||
mov DWORD PTR [esp], @F ; offset for far retf, seg is the 1st arg
|
||||
mov eax, cr4
|
||||
or al, (1 SHL 5)
|
||||
mov cr4, eax ; enable PAE
|
||||
mov ecx, 0c0000080h
|
||||
rdmsr
|
||||
or ah, 1 ; set LME
|
||||
wrmsr
|
||||
mov eax, cr0
|
||||
bts eax, 31 ; set PG
|
||||
mov cr0, eax ; enable paging
|
||||
retf ; topmost 2 dwords hold the address
|
||||
@@: ; long mode starts here
|
||||
DB 67h, 48h ; 32-bit address size, 64-bit operand size
|
||||
mov ebx, [esp] ; mov rbx, [esp]
|
||||
DB 67h, 48h
|
||||
mov ecx, [esp + 8] ; mov rcx, [esp + 8]
|
||||
DB 67h, 48h
|
||||
mov edx, [esp + 10h] ; mov rdx, [esp + 10h]
|
||||
DB 67h, 48h
|
||||
mov esp, [esp + 18h] ; mov rsp, [esp + 18h]
|
||||
DB 48h
|
||||
add esp, -20h ; add rsp, -20h
|
||||
call ebx ; call rbx
|
||||
hlt ; no one should get here
|
||||
InternalX86EnablePaging64 ENDP
|
||||
|
||||
END
|
|
@ -1,55 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; FlushCacheLine.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmFlushCacheLine function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.586P
|
||||
.model flat,C
|
||||
.xmm
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID *
|
||||
; EFIAPI
|
||||
; AsmFlushCacheLine (
|
||||
; IN VOID *LinearAddress
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmFlushCacheLine PROC
|
||||
;
|
||||
; If the CPU does not support CLFLUSH instruction,
|
||||
; then promote flush range to flush entire cache.
|
||||
;
|
||||
mov eax, 1
|
||||
push ebx
|
||||
cpuid
|
||||
pop ebx
|
||||
mov eax, [esp + 4]
|
||||
test edx, BIT19
|
||||
jz @F
|
||||
clflush [eax]
|
||||
ret
|
||||
@@:
|
||||
wbinvd
|
||||
ret
|
||||
AsmFlushCacheLine ENDP
|
||||
|
||||
END
|
|
@ -1,42 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; FxRestore.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmFxRestore function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.586
|
||||
.model flat,C
|
||||
.xmm
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; InternalX86FxRestore (
|
||||
; IN CONST IA32_FX_BUFFER *Buffer
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
InternalX86FxRestore PROC
|
||||
mov eax, [esp + 4] ; Buffer must be 16-byte aligned
|
||||
fxrstor [eax]
|
||||
ret
|
||||
InternalX86FxRestore ENDP
|
||||
|
||||
END
|
|
@ -1,42 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; FxSave.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmFxSave function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.586
|
||||
.model flat,C
|
||||
.xmm
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; InternalX86FxSave (
|
||||
; OUT IA32_FX_BUFFER *Buffer
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
InternalX86FxSave PROC
|
||||
mov eax, [esp + 4] ; Buffer must be 16-byte aligned
|
||||
fxsave [eax]
|
||||
ret
|
||||
InternalX86FxSave ENDP
|
||||
|
||||
END
|
|
@ -1,40 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; Invd.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmInvd function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.486p
|
||||
.model flat
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; AsmInvd (
|
||||
; VOID
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmInvd PROC
|
||||
invd
|
||||
ret
|
||||
AsmInvd ENDP
|
||||
|
||||
END
|
|
@ -1,51 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; LRotU64.asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; 64-bit left rotation for Ia32
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.686
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINT64
|
||||
; EFIAPI
|
||||
; InternalMathLRotU64 (
|
||||
; IN UINT64 Operand,
|
||||
; IN UINTN Count
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
InternalMathLRotU64 PROC USES ebx
|
||||
mov cl, [esp + 16]
|
||||
mov edx, [esp + 12]
|
||||
mov eax, [esp + 8]
|
||||
shld ebx, edx, cl
|
||||
shld edx, eax, cl
|
||||
ror ebx, cl
|
||||
shld eax, ebx, cl
|
||||
test cl, 32 ; Count >= 32?
|
||||
jz @F
|
||||
mov ecx, eax
|
||||
mov eax, edx
|
||||
mov edx, ecx
|
||||
@@:
|
||||
ret
|
||||
InternalMathLRotU64 ENDP
|
||||
|
||||
END
|
|
@ -1,48 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; LShiftU64.asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; 64-bit left shift function for IA-32
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.686
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINT64
|
||||
; EFIAPI
|
||||
; InternalMathLShiftU64 (
|
||||
; IN UINT64 Operand,
|
||||
; IN UINTN Count
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
InternalMathLShiftU64 PROC
|
||||
mov cl, [esp + 12]
|
||||
xor eax, eax
|
||||
mov edx, [esp + 4]
|
||||
test cl, 32 ; Count >= 32?
|
||||
jnz @F
|
||||
mov eax, edx
|
||||
mov edx, [esp + 8]
|
||||
@@:
|
||||
shld edx, eax, cl
|
||||
shl eax, cl
|
||||
ret
|
||||
InternalMathLShiftU64 ENDP
|
||||
|
||||
END
|
|
@ -1,46 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; LongJump.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; Implementation of _LongJump() on IA-32.
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.386
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; InternalLongJump (
|
||||
; IN BASE_LIBRARY_JUMP_BUFFER *JumpBuffer,
|
||||
; IN UINTN Value
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
InternalLongJump PROC
|
||||
pop eax ; skip return address
|
||||
pop edx ; edx <- JumpBuffer
|
||||
pop eax ; eax <- Value
|
||||
mov ebx, [edx]
|
||||
mov esi, [edx + 4]
|
||||
mov edi, [edx + 8]
|
||||
mov ebp, [edx + 12]
|
||||
mov esp, [edx + 16]
|
||||
jmp dword ptr [edx + 20] ; restore "eip"
|
||||
InternalLongJump ENDP
|
||||
|
||||
END
|
|
@ -1,45 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; DivU64x32.asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; Calculate the remainder of a 64-bit integer by a 32-bit integer
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.386
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINT32
|
||||
; EFIAPI
|
||||
; InternalMathModU64x32 (
|
||||
; IN UINT64 Dividend,
|
||||
; IN UINT32 Divisor
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
InternalMathModU64x32 PROC
|
||||
mov eax, [esp + 8]
|
||||
mov ecx, [esp + 12]
|
||||
xor edx, edx
|
||||
div ecx
|
||||
mov eax, [esp + 4]
|
||||
div ecx
|
||||
mov eax, edx
|
||||
ret
|
||||
InternalMathModU64x32 ENDP
|
||||
|
||||
END
|
|
@ -1,45 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; Monitor.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmMonitor function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.686
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINTN
|
||||
; EFIAPI
|
||||
; AsmMonitor (
|
||||
; IN UINTN Eax,
|
||||
; IN UINTN Ecx,
|
||||
; IN UINTN Edx
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmMonitor PROC
|
||||
mov eax, [esp + 4]
|
||||
mov ecx, [esp + 8]
|
||||
mov edx, [esp + 12]
|
||||
DB 0fh, 1, 0c8h ; monitor
|
||||
ret
|
||||
AsmMonitor ENDP
|
||||
|
||||
END
|
|
@ -1,43 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; MultU64x32.asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; Calculate the product of a 64-bit integer and a 32-bit integer
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.386
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINT64
|
||||
; EFIAPI
|
||||
; InternalMathMultU64x32 (
|
||||
; IN UINT64 Multiplicand,
|
||||
; IN UINT32 Multiplier
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
InternalMathMultU64x32 PROC
|
||||
mov ecx, [esp + 12]
|
||||
mov eax, ecx
|
||||
imul ecx, [esp + 8] ; overflow not detectable
|
||||
mul dword ptr [esp + 4]
|
||||
add edx, ecx
|
||||
ret
|
||||
InternalMathMultU64x32 ENDP
|
||||
|
||||
END
|
|
@ -1,47 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; MultU64x64.asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; Calculate the product of a 64-bit integer and another 64-bit integer
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.386
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINT64
|
||||
; EFIAPI
|
||||
; InternalMathMultU64x64 (
|
||||
; IN UINT64 Multiplicand,
|
||||
; IN UINT64 Multiplier
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
InternalMathMultU64x64 PROC USES ebx
|
||||
mov ebx, [esp + 8] ; ebx <- M1[0..31]
|
||||
mov edx, [esp + 16] ; edx <- M2[0..31]
|
||||
mov ecx, ebx
|
||||
mov eax, edx
|
||||
imul ebx, [esp + 20] ; ebx <- M1[0..31] * M2[32..63]
|
||||
imul edx, [esp + 12] ; edx <- M1[32..63] * M2[0..31]
|
||||
add ebx, edx ; carries are abandoned
|
||||
mul ecx ; edx:eax <- M1[0..31] * M2[0..31]
|
||||
add edx, ebx ; carries are abandoned
|
||||
ret
|
||||
InternalMathMultU64x64 ENDP
|
||||
|
||||
END
|
|
@ -1,43 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; Mwait.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmMwait function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.686
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINTN
|
||||
; EFIAPI
|
||||
; AsmMwait (
|
||||
; IN UINTN Eax,
|
||||
; IN UINTN Ecx
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmMwait PROC
|
||||
mov eax, [esp + 4]
|
||||
mov ecx, [esp + 8]
|
||||
DB 0fh, 1, 0c9h ; mwait
|
||||
ret
|
||||
AsmMwait ENDP
|
||||
|
||||
END
|
|
@ -1,51 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; RRotU64.asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; 64-bit right rotation for Ia32
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.686
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINT64
|
||||
; EFIAPI
|
||||
; InternalMathRRotU64 (
|
||||
; IN UINT64 Operand,
|
||||
; IN UINTN Count
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
InternalMathRRotU64 PROC USES ebx
|
||||
mov cl, [esp + 16]
|
||||
mov eax, [esp + 8]
|
||||
mov edx, [esp + 12]
|
||||
shrd ebx, eax, cl
|
||||
shrd eax, edx, cl
|
||||
rol ebx, cl
|
||||
shrd edx, ebx, cl
|
||||
test cl, 32 ; Count >= 32?
|
||||
jz @F
|
||||
mov ecx, eax ; switch eax & edx if Count >= 32
|
||||
mov eax, edx
|
||||
mov edx, ecx
|
||||
@@:
|
||||
ret
|
||||
InternalMathRRotU64 ENDP
|
||||
|
||||
END
|
|
@ -1,48 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; RShiftU64.asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; 64-bit logical right shift function for IA-32
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.686
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINT64
|
||||
; EFIAPI
|
||||
; InternalMathRShiftU64 (
|
||||
; IN UINT64 Operand,
|
||||
; IN UINTN Count
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
InternalMathRShiftU64 PROC
|
||||
mov cl, [esp + 12] ; cl <- Count
|
||||
xor edx, edx
|
||||
mov eax, [esp + 8]
|
||||
test cl, 32 ; Count >= 32?
|
||||
jnz @F
|
||||
mov edx, eax
|
||||
mov eax, [esp + 4]
|
||||
@@:
|
||||
shrd eax, edx, cl
|
||||
shr edx, cl
|
||||
ret
|
||||
InternalMathRShiftU64 ENDP
|
||||
|
||||
END
|
|
@ -1,94 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; RdRand.asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; Generates random number through CPU RdRand instruction under 32-bit platform.
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.686P
|
||||
.model flat, C
|
||||
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; Generates a 16 bit random number through RDRAND instruction.
|
||||
; Return TRUE if Rand generated successfully, or FALSE if not.
|
||||
;
|
||||
; BOOLEAN EFIAPI InternalX86RdRand16 (UINT16 *Rand);
|
||||
;------------------------------------------------------------------------------
|
||||
InternalX86RdRand16 PROC
|
||||
; rdrand ax ; generate a 16 bit RN into ax
|
||||
; CF=1 if RN generated ok, otherwise CF=0
|
||||
db 0fh, 0c7h, 0f0h ; rdrand r16: "0f c7 /6 ModRM:r/m(w)"
|
||||
jc rn16_ok ; jmp if CF=1
|
||||
xor eax, eax ; reg=0 if CF=0
|
||||
ret ; return with failure status
|
||||
rn16_ok:
|
||||
mov edx, dword ptr [esp + 4]
|
||||
mov [edx], ax
|
||||
mov eax, 1
|
||||
ret
|
||||
InternalX86RdRand16 ENDP
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; Generates a 32 bit random number through RDRAND instruction.
|
||||
; Return TRUE if Rand generated successfully, or FALSE if not.
|
||||
;
|
||||
; BOOLEAN EFIAPI InternalX86RdRand32 (UINT32 *Rand);
|
||||
;------------------------------------------------------------------------------
|
||||
InternalX86RdRand32 PROC
|
||||
; rdrand eax ; generate a 32 bit RN into eax
|
||||
; CF=1 if RN generated ok, otherwise CF=0
|
||||
db 0fh, 0c7h, 0f0h ; rdrand r32: "0f c7 /6 ModRM:r/m(w)"
|
||||
jc rn32_ok ; jmp if CF=1
|
||||
xor eax, eax ; reg=0 if CF=0
|
||||
ret ; return with failure status
|
||||
rn32_ok:
|
||||
mov edx, dword ptr [esp + 4]
|
||||
mov [edx], eax
|
||||
mov eax, 1
|
||||
ret
|
||||
InternalX86RdRand32 ENDP
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; Generates a 64 bit random number through RDRAND instruction.
|
||||
; Return TRUE if Rand generated successfully, or FALSE if not.
|
||||
;
|
||||
; BOOLEAN EFIAPI InternalX86RdRand64 (UINT64 *Rand);
|
||||
;------------------------------------------------------------------------------
|
||||
InternalX86RdRand64 PROC
|
||||
; rdrand eax ; generate a 32 bit RN into eax
|
||||
; CF=1 if RN generated ok, otherwise CF=0
|
||||
db 0fh, 0c7h, 0f0h ; rdrand r32: "0f c7 /6 ModRM:r/m(w)"
|
||||
jnc rn64_ret ; jmp if CF=0
|
||||
mov edx, dword ptr [esp + 4]
|
||||
mov [edx], eax
|
||||
|
||||
db 0fh, 0c7h, 0f0h ; generate another 32 bit RN
|
||||
jnc rn64_ret ; jmp if CF=0
|
||||
mov [edx + 4], eax
|
||||
|
||||
mov eax, 1
|
||||
ret
|
||||
rn64_ret:
|
||||
xor eax, eax
|
||||
ret ; return with failure status
|
||||
InternalX86RdRand64 ENDP
|
||||
|
||||
END
|
|
@ -1,40 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; ReadCr0.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmReadCr0 function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.386p
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINTN
|
||||
; EFIAPI
|
||||
; AsmReadCr0 (
|
||||
; VOID
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmReadCr0 PROC
|
||||
mov eax, cr0
|
||||
ret
|
||||
AsmReadCr0 ENDP
|
||||
|
||||
END
|
|
@ -1,40 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; ReadCr2.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmReadCr2 function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.386p
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINTN
|
||||
; EFIAPI
|
||||
; AsmReadCr2 (
|
||||
; VOID
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmReadCr2 PROC
|
||||
mov eax, cr2
|
||||
ret
|
||||
AsmReadCr2 ENDP
|
||||
|
||||
END
|
|
@ -1,40 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; ReadCr3.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmReadCr3 function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.386p
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINTN
|
||||
; EFIAPI
|
||||
; AsmReadCr3 (
|
||||
; VOID
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmReadCr3 PROC
|
||||
mov eax, cr3
|
||||
ret
|
||||
AsmReadCr3 ENDP
|
||||
|
||||
END
|
|
@ -1,40 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; ReadCr4.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmReadCr4 function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.586p
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINTN
|
||||
; EFIAPI
|
||||
; AsmReadCr4 (
|
||||
; VOID
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmReadCr4 PROC
|
||||
mov eax, cr4
|
||||
ret
|
||||
AsmReadCr4 ENDP
|
||||
|
||||
END
|
|
@ -1,40 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; ReadCs.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmReadCs function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.386
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINT16
|
||||
; EFIAPI
|
||||
; AsmReadCs (
|
||||
; VOID
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmReadCs PROC
|
||||
mov eax, cs
|
||||
ret
|
||||
AsmReadCs ENDP
|
||||
|
||||
END
|
|
@ -1,40 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; ReadDr0.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmReadDr0 function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.586p
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINTN
|
||||
; EFIAPI
|
||||
; AsmReadDr0 (
|
||||
; VOID
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmReadDr0 PROC
|
||||
mov eax, dr0
|
||||
ret
|
||||
AsmReadDr0 ENDP
|
||||
|
||||
END
|
|
@ -1,40 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; ReadDr1.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmReadDr1 function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.586p
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINTN
|
||||
; EFIAPI
|
||||
; AsmReadDr1 (
|
||||
; VOID
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmReadDr1 PROC
|
||||
mov eax, dr1
|
||||
ret
|
||||
AsmReadDr1 ENDP
|
||||
|
||||
END
|
|
@ -1,40 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; ReadDr2.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmReadDr2 function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.586p
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINTN
|
||||
; EFIAPI
|
||||
; AsmReadDr2 (
|
||||
; VOID
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmReadDr2 PROC
|
||||
mov eax, dr2
|
||||
ret
|
||||
AsmReadDr2 ENDP
|
||||
|
||||
END
|
|
@ -1,40 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; ReadDr3.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmReadDr3 function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.586p
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINTN
|
||||
; EFIAPI
|
||||
; AsmReadDr3 (
|
||||
; VOID
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmReadDr3 PROC
|
||||
mov eax, dr3
|
||||
ret
|
||||
AsmReadDr3 ENDP
|
||||
|
||||
END
|
|
@ -1,47 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; ReadDr4.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmReadDr4 function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.586p
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINTN
|
||||
; EFIAPI
|
||||
; AsmReadDr4 (
|
||||
; VOID
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmReadDr4 PROC
|
||||
;
|
||||
; DR4 is alias to DR6 only if DE (in CR4) is cleared. Otherwise, reading
|
||||
; this register will cause a #UD exception.
|
||||
;
|
||||
; MS assembler doesn't support this instruction since no one would use it
|
||||
; under normal circustances. Here opcode is used.
|
||||
;
|
||||
DB 0fh, 21h, 0e0h
|
||||
ret
|
||||
AsmReadDr4 ENDP
|
||||
|
||||
END
|
|
@ -1,47 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; ReadDr5.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmReadDr5 function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.586p
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINTN
|
||||
; EFIAPI
|
||||
; AsmReadDr5 (
|
||||
; VOID
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmReadDr5 PROC
|
||||
;
|
||||
; DR5 is alias to DR7 only if DE (in CR4) is cleared. Otherwise, reading
|
||||
; this register will cause a #UD exception.
|
||||
;
|
||||
; MS assembler doesn't support this instruction since no one would use it
|
||||
; under normal circustances. Here opcode is used.
|
||||
;
|
||||
DB 0fh, 21h, 0e8h
|
||||
ret
|
||||
AsmReadDr5 ENDP
|
||||
|
||||
END
|
|
@ -1,40 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; ReadDr6.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmReadDr6 function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.586p
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINTN
|
||||
; EFIAPI
|
||||
; AsmReadDr6 (
|
||||
; VOID
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmReadDr6 PROC
|
||||
mov eax, dr6
|
||||
ret
|
||||
AsmReadDr6 ENDP
|
||||
|
||||
END
|
|
@ -1,40 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; ReadDr7.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmReadDr7 function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.586p
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINTN
|
||||
; EFIAPI
|
||||
; AsmReadDr7 (
|
||||
; VOID
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmReadDr7 PROC
|
||||
mov eax, dr7
|
||||
ret
|
||||
AsmReadDr7 ENDP
|
||||
|
||||
END
|
|
@ -1,40 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; ReadDs.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmReadDs function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.386
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINT16
|
||||
; EFIAPI
|
||||
; AsmReadDs (
|
||||
; VOID
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmReadDs PROC
|
||||
mov eax, ds
|
||||
ret
|
||||
AsmReadDs ENDP
|
||||
|
||||
END
|
|
@ -1,41 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; ReadEflags.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmReadEflags function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.386
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINTN
|
||||
; EFIAPI
|
||||
; AsmReadEflags (
|
||||
; VOID
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmReadEflags PROC
|
||||
pushfd
|
||||
pop eax
|
||||
ret
|
||||
AsmReadEflags ENDP
|
||||
|
||||
END
|
|
@ -1,40 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; ReadEs.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmReadEs function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.386
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINT16
|
||||
; EFIAPI
|
||||
; AsmReadEs (
|
||||
; VOID
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmReadEs PROC
|
||||
mov eax, es
|
||||
ret
|
||||
AsmReadEs ENDP
|
||||
|
||||
END
|
|
@ -1,40 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; ReadFs.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmReadFs function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.386
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINT16
|
||||
; EFIAPI
|
||||
; AsmReadFs (
|
||||
; VOID
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmReadFs PROC
|
||||
mov eax, fs
|
||||
ret
|
||||
AsmReadFs ENDP
|
||||
|
||||
END
|
|
@ -1,41 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; ReadGdtr.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmReadGdtr function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.386
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; InternalX86ReadGdtr (
|
||||
; OUT IA32_DESCRIPTOR *Gdtr
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
InternalX86ReadGdtr PROC
|
||||
mov eax, [esp + 4]
|
||||
sgdt fword ptr [eax]
|
||||
ret
|
||||
InternalX86ReadGdtr ENDP
|
||||
|
||||
END
|
|
@ -1,40 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; ReadGs.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmReadGs function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.386
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINT16
|
||||
; EFIAPI
|
||||
; AsmReadGs (
|
||||
; VOID
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmReadGs PROC
|
||||
mov eax, gs
|
||||
ret
|
||||
AsmReadGs ENDP
|
||||
|
||||
END
|
|
@ -1,41 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; ReadIdtr.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmReadIdtr function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.386
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; InternalX86ReadIdtr (
|
||||
; OUT IA32_DESCRIPTOR *Idtr
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
InternalX86ReadIdtr PROC
|
||||
mov eax, [esp + 4]
|
||||
sidt fword ptr [eax]
|
||||
ret
|
||||
InternalX86ReadIdtr ENDP
|
||||
|
||||
END
|
|
@ -1,40 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; ReadLdtr.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmReadLdtr function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.386
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINT16
|
||||
; EFIAPI
|
||||
; AsmReadLdtr (
|
||||
; VOID
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmReadLdtr PROC
|
||||
sldt ax
|
||||
ret
|
||||
AsmReadLdtr ENDP
|
||||
|
||||
END
|
|
@ -1,45 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; ReadMm0.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmReadMm0 function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.586
|
||||
.model flat,C
|
||||
.mmx
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINT64
|
||||
; EFIAPI
|
||||
; AsmReadMm0 (
|
||||
; VOID
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmReadMm0 PROC
|
||||
push eax
|
||||
push eax
|
||||
movq [esp], mm0
|
||||
pop eax
|
||||
pop edx
|
||||
ret
|
||||
AsmReadMm0 ENDP
|
||||
|
||||
END
|
|
@ -1,45 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; ReadMm1.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmReadMm1 function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.586
|
||||
.model flat,C
|
||||
.mmx
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINT64
|
||||
; EFIAPI
|
||||
; AsmReadMm1 (
|
||||
; VOID
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmReadMm1 PROC
|
||||
push eax
|
||||
push eax
|
||||
movq [esp], mm1
|
||||
pop eax
|
||||
pop edx
|
||||
ret
|
||||
AsmReadMm1 ENDP
|
||||
|
||||
END
|
|
@ -1,45 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; ReadMm2.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmReadMm2 function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.586
|
||||
.model flat,C
|
||||
.mmx
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINT64
|
||||
; EFIAPI
|
||||
; AsmReadMm2 (
|
||||
; VOID
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmReadMm2 PROC
|
||||
push eax
|
||||
push eax
|
||||
movq [esp], mm2
|
||||
pop eax
|
||||
pop edx
|
||||
ret
|
||||
AsmReadMm2 ENDP
|
||||
|
||||
END
|
|
@ -1,45 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; ReadMm3.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmReadMm3 function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.586
|
||||
.model flat,C
|
||||
.mmx
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINT64
|
||||
; EFIAPI
|
||||
; AsmReadMm3 (
|
||||
; VOID
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmReadMm3 PROC
|
||||
push eax
|
||||
push eax
|
||||
movq [esp], mm3
|
||||
pop eax
|
||||
pop edx
|
||||
ret
|
||||
AsmReadMm3 ENDP
|
||||
|
||||
END
|
|
@ -1,45 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; ReadMm4.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmReadMm4 function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.586
|
||||
.model flat,C
|
||||
.mmx
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINT64
|
||||
; EFIAPI
|
||||
; AsmReadMm4 (
|
||||
; VOID
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmReadMm4 PROC
|
||||
push eax
|
||||
push eax
|
||||
movq [esp], mm4
|
||||
pop eax
|
||||
pop edx
|
||||
ret
|
||||
AsmReadMm4 ENDP
|
||||
|
||||
END
|
|
@ -1,45 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; ReadMm5.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmReadMm5 function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.586
|
||||
.model flat,C
|
||||
.mmx
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINT64
|
||||
; EFIAPI
|
||||
; AsmReadMm5 (
|
||||
; VOID
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmReadMm5 PROC
|
||||
push eax
|
||||
push eax
|
||||
movq [esp], mm5
|
||||
pop eax
|
||||
pop edx
|
||||
ret
|
||||
AsmReadMm5 ENDP
|
||||
|
||||
END
|
|
@ -1,45 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; ReadMm6.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmReadMm6 function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.586
|
||||
.model flat,C
|
||||
.mmx
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINT64
|
||||
; EFIAPI
|
||||
; AsmReadMm6 (
|
||||
; VOID
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmReadMm6 PROC
|
||||
push eax
|
||||
push eax
|
||||
movq [esp], mm6
|
||||
pop eax
|
||||
pop edx
|
||||
ret
|
||||
AsmReadMm6 ENDP
|
||||
|
||||
END
|
|
@ -1,45 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; ReadMm7.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmReadMm7 function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.586
|
||||
.model flat,C
|
||||
.mmx
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINT64
|
||||
; EFIAPI
|
||||
; AsmReadMm7 (
|
||||
; VOID
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmReadMm7 PROC
|
||||
push eax
|
||||
push eax
|
||||
movq [esp], mm7
|
||||
pop eax
|
||||
pop edx
|
||||
ret
|
||||
AsmReadMm7 ENDP
|
||||
|
||||
END
|
|
@ -1,41 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; ReadMsr64.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmReadMsr64 function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.586p
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINT64
|
||||
; EFIAPI
|
||||
; AsmReadMsr64 (
|
||||
; IN UINT64 Index
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmReadMsr64 PROC
|
||||
mov ecx, [esp + 4]
|
||||
rdmsr
|
||||
ret
|
||||
AsmReadMsr64 ENDP
|
||||
|
||||
END
|
|
@ -1,41 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; ReadPmc.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmReadPmc function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.586p
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINT64
|
||||
; EFIAPI
|
||||
; AsmReadPmc (
|
||||
; IN UINT32 PmcIndex
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmReadPmc PROC
|
||||
mov ecx, [esp + 4]
|
||||
rdpmc
|
||||
ret
|
||||
AsmReadPmc ENDP
|
||||
|
||||
END
|
|
@ -1,40 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; ReadSs.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmReadSs function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.386
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINT16
|
||||
; EFIAPI
|
||||
; AsmReadSs (
|
||||
; VOID
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmReadSs PROC
|
||||
mov eax, ss
|
||||
ret
|
||||
AsmReadSs ENDP
|
||||
|
||||
END
|
|
@ -1,40 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; ReadTr.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmReadTr function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.386
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINT16
|
||||
; EFIAPI
|
||||
; AsmReadTr (
|
||||
; VOID
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmReadTr PROC
|
||||
str ax
|
||||
ret
|
||||
AsmReadTr ENDP
|
||||
|
||||
END
|
|
@ -1,40 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; ReadTsc.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmReadTsc function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.586p
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINT64
|
||||
; EFIAPI
|
||||
; AsmReadTsc (
|
||||
; VOID
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmReadTsc PROC
|
||||
rdtsc
|
||||
ret
|
||||
AsmReadTsc ENDP
|
||||
|
||||
END
|
|
@ -1,51 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; SetJump.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; Implementation of SetJump() on IA-32.
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.386
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
InternalAssertJumpBuffer PROTO C
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINTN
|
||||
; EFIAPI
|
||||
; SetJump (
|
||||
; OUT BASE_LIBRARY_JUMP_BUFFER *JumpBuffer
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
SetJump PROC
|
||||
push DWORD [esp + 4]
|
||||
call InternalAssertJumpBuffer ; To validate JumpBuffer
|
||||
pop ecx
|
||||
pop ecx ; ecx <- return address
|
||||
mov edx, [esp]
|
||||
mov [edx], ebx
|
||||
mov [edx + 4], esi
|
||||
mov [edx + 8], edi
|
||||
mov [edx + 12], ebp
|
||||
mov [edx + 16], esp
|
||||
mov [edx + 20], ecx ; eip value to restore in LongJump
|
||||
xor eax, eax
|
||||
jmp ecx
|
||||
SetJump ENDP
|
||||
|
||||
END
|
|
@ -1,43 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; CpuId.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmCpuid function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.586
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINT64
|
||||
; EFIAPI
|
||||
; InternalMathSwapBytes64 (
|
||||
; IN UINT64 Operand
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
InternalMathSwapBytes64 PROC
|
||||
mov eax, [esp + 8] ; eax <- upper 32 bits
|
||||
mov edx, [esp + 4] ; edx <- lower 32 bits
|
||||
bswap eax
|
||||
bswap edx
|
||||
ret
|
||||
InternalMathSwapBytes64 ENDP
|
||||
|
||||
END
|
|
@ -1,260 +0,0 @@
|
|||
|
||||
#include "BaseLibInternals.h"
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; Thunk.asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; Real mode thunk
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.686p
|
||||
.model flat,C
|
||||
|
||||
EXTERNDEF C m16Start:BYTE
|
||||
EXTERNDEF C m16Size:WORD
|
||||
EXTERNDEF C mThunk16Attr:WORD
|
||||
EXTERNDEF C m16Gdt:WORD
|
||||
EXTERNDEF C m16GdtrBase:WORD
|
||||
EXTERNDEF C mTransition:WORD
|
||||
|
||||
;
|
||||
; Here is the layout of the real mode stack. _ToUserCode() is responsible for
|
||||
; loading all these registers from real mode stack.
|
||||
;
|
||||
IA32_REGS STRUC 4t
|
||||
_EDI DD ?
|
||||
_ESI DD ?
|
||||
_EBP DD ?
|
||||
_ESP DD ?
|
||||
_EBX DD ?
|
||||
_EDX DD ?
|
||||
_ECX DD ?
|
||||
_EAX DD ?
|
||||
_DS DW ?
|
||||
_ES DW ?
|
||||
_FS DW ?
|
||||
_GS DW ?
|
||||
_EFLAGS DD ?
|
||||
_EIP DD ?
|
||||
_CS DW ?
|
||||
_SS DW ?
|
||||
IA32_REGS ENDS
|
||||
|
||||
.const
|
||||
|
||||
;
|
||||
; These are global constant to convey information to C code.
|
||||
;
|
||||
m16Size DW InternalAsmThunk16 - m16Start
|
||||
mThunk16Attr DW _ThunkAttr - m16Start
|
||||
m16Gdt DW _NullSegDesc - m16Start
|
||||
m16GdtrBase DW _16GdtrBase - m16Start
|
||||
mTransition DW _EntryPoint - m16Start
|
||||
|
||||
.code
|
||||
|
||||
m16Start LABEL BYTE
|
||||
|
||||
SavedGdt LABEL FWORD
|
||||
DW ?
|
||||
DD ?
|
||||
;------------------------------------------------------------------------------
|
||||
; _BackFromUserCode() takes control in real mode after 'retf' has been executed
|
||||
; by user code. It will be shadowed to somewhere in memory below 1MB.
|
||||
;------------------------------------------------------------------------------
|
||||
_BackFromUserCode PROC
|
||||
;
|
||||
; The order of saved registers on the stack matches the order they appears
|
||||
; in IA32_REGS structure. This facilitates wrapper function to extract them
|
||||
; into that structure.
|
||||
;
|
||||
push ss
|
||||
push cs
|
||||
DB 66h
|
||||
call @Base ; push eip
|
||||
@Base:
|
||||
pushf ; pushfd actually
|
||||
cli ; disable interrupts
|
||||
push gs
|
||||
push fs
|
||||
push es
|
||||
push ds
|
||||
pushaw ; pushad actually
|
||||
DB 66h, 0bah ; mov edx, imm32
|
||||
_ThunkAttr DD ?
|
||||
test dl, THUNK_ATTRIBUTE_DISABLE_A20_MASK_INT_15
|
||||
jz @1
|
||||
mov eax, 15cd2401h ; mov ax, 2401h & int 15h
|
||||
cli ; disable interrupts
|
||||
jnc @2
|
||||
@1:
|
||||
test dl, THUNK_ATTRIBUTE_DISABLE_A20_MASK_KBD_CTRL
|
||||
jz @2
|
||||
in al, 92h
|
||||
or al, 2
|
||||
out 92h, al ; deactivate A20M#
|
||||
@2:
|
||||
xor ax, ax ; xor eax, eax
|
||||
mov eax, ss ; mov ax, ss
|
||||
DB 67h
|
||||
lea bp, [esp + sizeof (IA32_REGS)]
|
||||
;
|
||||
; esi's in the following 2 instructions are indeed bp in 16-bit code. Fact
|
||||
; is "esi" in 32-bit addressing mode has the same encoding of "bp" in 16-
|
||||
; bit addressing mode.
|
||||
;
|
||||
mov word ptr (IA32_REGS ptr [esi - sizeof (IA32_REGS)])._ESP, bp
|
||||
mov ebx, (IA32_REGS ptr [esi - sizeof (IA32_REGS)])._EIP
|
||||
shl ax, 4 ; shl eax, 4
|
||||
add bp, ax ; add ebp, eax
|
||||
DB 66h, 0b8h ; mov eax, imm32
|
||||
SavedCr4 DD ?
|
||||
mov cr4, eax
|
||||
DB 66h
|
||||
lgdt fword ptr cs:[edi + (SavedGdt - @Base)]
|
||||
DB 66h, 0b8h ; mov eax, imm32
|
||||
SavedCr0 DD ?
|
||||
mov cr0, eax
|
||||
DB 0b8h ; mov ax, imm16
|
||||
SavedSs DW ?
|
||||
mov ss, eax
|
||||
DB 66h, 0bch ; mov esp, imm32
|
||||
SavedEsp DD ?
|
||||
DB 66h
|
||||
retf ; return to protected mode
|
||||
_BackFromUserCode ENDP
|
||||
|
||||
_EntryPoint DD _ToUserCode - m16Start
|
||||
DW 8h
|
||||
_16Idtr FWORD (1 SHL 10) - 1
|
||||
_16Gdtr LABEL FWORD
|
||||
DW GdtEnd - _NullSegDesc - 1
|
||||
_16GdtrBase DD _NullSegDesc
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; _ToUserCode() takes control in real mode before passing control to user code.
|
||||
; It will be shadowed to somewhere in memory below 1MB.
|
||||
;------------------------------------------------------------------------------
|
||||
_ToUserCode PROC
|
||||
mov edx, ss
|
||||
mov ss, ecx ; set new segment selectors
|
||||
mov ds, ecx
|
||||
mov es, ecx
|
||||
mov fs, ecx
|
||||
mov gs, ecx
|
||||
mov cr0, eax ; real mode starts at next instruction
|
||||
; which (per SDM) *must* be a far JMP.
|
||||
DB 0eah
|
||||
_RealAddr DW 0,0 ; filled in by InternalAsmThunk16
|
||||
|
||||
mov cr4, ebp
|
||||
mov ss, esi ; set up 16-bit stack segment
|
||||
xchg sp, bx ; set up 16-bit stack pointer
|
||||
|
||||
; mov bp, [esp + sizeof(IA32_REGS)
|
||||
DB 67h
|
||||
mov ebp, [esp + sizeof(IA32_REGS)] ; BackFromUserCode address from stack
|
||||
|
||||
; mov cs:[bp + (SavedSs - _BackFromUserCode)], dx
|
||||
mov cs:[esi + (SavedSs - _BackFromUserCode)], edx
|
||||
|
||||
; mov cs:[bp + (SavedEsp - _BackFromUserCode)], ebx
|
||||
DB 2eh, 66h, 89h, 9eh
|
||||
DW SavedEsp - _BackFromUserCode
|
||||
|
||||
; lidt cs:[bp + (_16Idtr - _BackFromUserCode)]
|
||||
DB 2eh, 66h, 0fh, 01h, 9eh
|
||||
DW _16Idtr - _BackFromUserCode
|
||||
|
||||
popaw ; popad actually
|
||||
pop ds
|
||||
pop es
|
||||
pop fs
|
||||
pop gs
|
||||
popf ; popfd
|
||||
DB 66h ; Use 32-bit addressing for "retf" below
|
||||
retf ; transfer control to user code
|
||||
_ToUserCode ENDP
|
||||
|
||||
_NullSegDesc DQ 0
|
||||
_16CsDesc LABEL QWORD
|
||||
DW -1
|
||||
DW 0
|
||||
DB 0
|
||||
DB 9bh
|
||||
DB 8fh ; 16-bit segment, 4GB limit
|
||||
DB 0
|
||||
_16DsDesc LABEL QWORD
|
||||
DW -1
|
||||
DW 0
|
||||
DB 0
|
||||
DB 93h
|
||||
DB 8fh ; 16-bit segment, 4GB limit
|
||||
DB 0
|
||||
GdtEnd LABEL QWORD
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; IA32_REGISTER_SET *
|
||||
; EFIAPI
|
||||
; InternalAsmThunk16 (
|
||||
; IN IA32_REGISTER_SET *RegisterSet,
|
||||
; IN OUT VOID *Transition
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
InternalAsmThunk16 PROC USES ebp ebx esi edi ds es fs gs
|
||||
mov esi, [esp + 36] ; esi <- RegSet, the 1st parameter
|
||||
movzx edx, (IA32_REGS ptr [esi])._SS
|
||||
mov edi, (IA32_REGS ptr [esi])._ESP
|
||||
add edi, - (sizeof (IA32_REGS) + 4) ; reserve stack space
|
||||
mov ebx, edi ; ebx <- stack offset
|
||||
imul eax, edx, 16 ; eax <- edx * 16
|
||||
push sizeof (IA32_REGS) / 4
|
||||
add edi, eax ; edi <- linear address of 16-bit stack
|
||||
pop ecx
|
||||
rep movsd ; copy RegSet
|
||||
mov eax, [esp + 40] ; eax <- address of transition code
|
||||
mov esi, edx ; esi <- 16-bit stack segment
|
||||
lea edx, [eax + (SavedCr0 - m16Start)]
|
||||
mov ecx, eax
|
||||
and ecx, 0fh
|
||||
shl eax, 12
|
||||
lea ecx, [ecx + (_BackFromUserCode - m16Start)]
|
||||
mov ax, cx
|
||||
stosd ; [edi] <- return address of user code
|
||||
add eax, _RealAddr + 4 - _BackFromUserCode
|
||||
mov dword ptr [edx + (_RealAddr - SavedCr0)], eax
|
||||
sgdt fword ptr [edx + (SavedGdt - SavedCr0)]
|
||||
sidt fword ptr [esp + 36] ; save IDT stack in argument space
|
||||
mov eax, cr0
|
||||
mov [edx], eax ; save CR0 in SavedCr0
|
||||
and eax, 7ffffffeh ; clear PE, PG bits
|
||||
mov ebp, cr4
|
||||
mov [edx + (SavedCr4 - SavedCr0)], ebp
|
||||
and ebp, NOT 30h ; clear PAE, PSE bits
|
||||
push 10h
|
||||
pop ecx ; ecx <- selector for data segments
|
||||
lgdt fword ptr [edx + (_16Gdtr - SavedCr0)]
|
||||
pushfd ; Save df/if indeed
|
||||
call fword ptr [edx + (_EntryPoint - SavedCr0)]
|
||||
popfd
|
||||
lidt fword ptr [esp + 36] ; restore protected mode IDTR
|
||||
lea eax, [ebp - sizeof (IA32_REGS)] ; eax <- the address of IA32_REGS
|
||||
ret
|
||||
InternalAsmThunk16 ENDP
|
||||
|
||||
END
|
|
@ -1,40 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; Wbinvd.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmWbinvd function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.486p
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; AsmWbinvd (
|
||||
; VOID
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmWbinvd PROC
|
||||
wbinvd
|
||||
ret
|
||||
AsmWbinvd ENDP
|
||||
|
||||
END
|
|
@ -1,41 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; WriteCr0.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmWriteCr0 function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.386p
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINTN
|
||||
; EFIAPI
|
||||
; AsmWriteCr0 (
|
||||
; UINTN Cr0
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmWriteCr0 PROC
|
||||
mov eax, [esp + 4]
|
||||
mov cr0, eax
|
||||
ret
|
||||
AsmWriteCr0 ENDP
|
||||
|
||||
END
|
|
@ -1,41 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; WriteCr2.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmWriteCr2 function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.386p
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINTN
|
||||
; EFIAPI
|
||||
; AsmWriteCr2 (
|
||||
; UINTN Cr2
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmWriteCr2 PROC
|
||||
mov eax, [esp + 4]
|
||||
mov cr2, eax
|
||||
ret
|
||||
AsmWriteCr2 ENDP
|
||||
|
||||
END
|
|
@ -1,41 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; WriteCr3.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmWriteCr3 function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.386p
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINTN
|
||||
; EFIAPI
|
||||
; AsmWriteCr3 (
|
||||
; UINTN Cr3
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmWriteCr3 PROC
|
||||
mov eax, [esp + 4]
|
||||
mov cr3, eax
|
||||
ret
|
||||
AsmWriteCr3 ENDP
|
||||
|
||||
END
|
|
@ -1,41 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; WriteCr4.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmWriteCr4 function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.586p
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINTN
|
||||
; EFIAPI
|
||||
; AsmWriteCr4 (
|
||||
; UINTN Cr4
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmWriteCr4 PROC
|
||||
mov eax, [esp + 4]
|
||||
mov cr4, eax
|
||||
ret
|
||||
AsmWriteCr4 ENDP
|
||||
|
||||
END
|
|
@ -1,41 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; WriteDr0.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmWriteDr0 function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.586p
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINTN
|
||||
; EFIAPI
|
||||
; AsmWriteDr0 (
|
||||
; IN UINTN Value
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmWriteDr0 PROC
|
||||
mov eax, [esp + 4]
|
||||
mov dr0, eax
|
||||
ret
|
||||
AsmWriteDr0 ENDP
|
||||
|
||||
END
|
|
@ -1,41 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; WriteDr1.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmWriteDr1 function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.586p
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINTN
|
||||
; EFIAPI
|
||||
; AsmWriteDr1 (
|
||||
; IN UINTN Value
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmWriteDr1 PROC
|
||||
mov eax, [esp + 4]
|
||||
mov dr1, eax
|
||||
ret
|
||||
AsmWriteDr1 ENDP
|
||||
|
||||
END
|
|
@ -1,41 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; WriteDr2.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmWriteDr2 function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.586p
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINTN
|
||||
; EFIAPI
|
||||
; AsmWriteDr2 (
|
||||
; IN UINTN Value
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmWriteDr2 PROC
|
||||
mov eax, [esp + 4]
|
||||
mov dr2, eax
|
||||
ret
|
||||
AsmWriteDr2 ENDP
|
||||
|
||||
END
|
|
@ -1,41 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; WriteDr3.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmWriteDr3 function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.586p
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINTN
|
||||
; EFIAPI
|
||||
; AsmWriteDr3 (
|
||||
; IN UINTN Value
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmWriteDr3 PROC
|
||||
mov eax, [esp + 4]
|
||||
mov dr3, eax
|
||||
ret
|
||||
AsmWriteDr3 ENDP
|
||||
|
||||
END
|
|
@ -1,48 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; WriteDr4.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmWriteDr4 function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.586p
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINTN
|
||||
; EFIAPI
|
||||
; AsmWriteDr4 (
|
||||
; IN UINTN Value
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmWriteDr4 PROC
|
||||
mov eax, [esp + 4]
|
||||
;
|
||||
; DR4 is alias to DR6 only if DE (in CR4) is cleared. Otherwise, writing to
|
||||
; this register will cause a #UD exception.
|
||||
;
|
||||
; MS assembler doesn't support this instruction since no one would use it
|
||||
; under normal circustances. Here opcode is used.
|
||||
;
|
||||
DB 0fh, 23h, 0e0h
|
||||
ret
|
||||
AsmWriteDr4 ENDP
|
||||
|
||||
END
|
|
@ -1,48 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; WriteDr5.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmWriteDr5 function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.586p
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINTN
|
||||
; EFIAPI
|
||||
; AsmWriteDr5 (
|
||||
; IN UINTN Value
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmWriteDr5 PROC
|
||||
mov eax, [esp + 4]
|
||||
;
|
||||
; DR5 is alias to DR7 only if DE (in CR4) is cleared. Otherwise, writing to
|
||||
; this register will cause a #UD exception.
|
||||
;
|
||||
; MS assembler doesn't support this instruction since no one would use it
|
||||
; under normal circustances. Here opcode is used.
|
||||
;
|
||||
DB 0fh, 23h, 0e8h
|
||||
ret
|
||||
AsmWriteDr5 ENDP
|
||||
|
||||
END
|
|
@ -1,41 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; WriteDr6.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmWriteDr6 function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.586p
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINTN
|
||||
; EFIAPI
|
||||
; AsmWriteDr6 (
|
||||
; IN UINTN Value
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmWriteDr6 PROC
|
||||
mov eax, [esp + 4]
|
||||
mov dr6, eax
|
||||
ret
|
||||
AsmWriteDr6 ENDP
|
||||
|
||||
END
|
|
@ -1,41 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; WriteDr7.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmWriteDr7 function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.586p
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINTN
|
||||
; EFIAPI
|
||||
; AsmWriteDr7 (
|
||||
; IN UINTN Value
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmWriteDr7 PROC
|
||||
mov eax, [esp + 4]
|
||||
mov dr7, eax
|
||||
ret
|
||||
AsmWriteDr7 ENDP
|
||||
|
||||
END
|
|
@ -1,41 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; WriteGdtr.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmWriteGdtr function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.386p
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; InternalX86WriteGdtr (
|
||||
; IN CONST IA32_DESCRIPTOR *Idtr
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
InternalX86WriteGdtr PROC
|
||||
mov eax, [esp + 4]
|
||||
lgdt fword ptr [eax]
|
||||
ret
|
||||
InternalX86WriteGdtr ENDP
|
||||
|
||||
END
|
|
@ -1,44 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; WriteIdtr.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmWriteIdtr function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.386p
|
||||
.model flat,C
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; InternalX86WriteIdtr (
|
||||
; IN CONST IA32_DESCRIPTOR *Idtr
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
InternalX86WriteIdtr PROC
|
||||
mov eax, [esp + 4]
|
||||
pushfd
|
||||
cli
|
||||
lidt fword ptr [eax]
|
||||
popfd
|
||||
ret
|
||||
InternalX86WriteIdtr ENDP
|
||||
|
||||
END
|
|
@ -1,41 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; WriteLdtr.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmWriteLdtr function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.386p
|
||||
.model flat
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; AsmWriteLdtr (
|
||||
; IN UINT16 Ldtr
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmWriteLdtr PROC
|
||||
mov eax, [esp + 4]
|
||||
lldt ax
|
||||
ret
|
||||
AsmWriteLdtr ENDP
|
||||
|
||||
END
|
|
@ -1,41 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; WriteMm0.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmWriteMm0 function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.586
|
||||
.model flat,C
|
||||
.mmx
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; AsmWriteMm0 (
|
||||
; IN UINT64 Value
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmWriteMm0 PROC
|
||||
movq mm0, [esp + 4]
|
||||
ret
|
||||
AsmWriteMm0 ENDP
|
||||
|
||||
END
|
|
@ -1,41 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; WriteMm1.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmWriteMm1 function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.586
|
||||
.model flat,C
|
||||
.mmx
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; AsmWriteMm1 (
|
||||
; IN UINT64 Value
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmWriteMm1 PROC
|
||||
movq mm1, [esp + 4]
|
||||
ret
|
||||
AsmWriteMm1 ENDP
|
||||
|
||||
END
|
|
@ -1,41 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; WriteMm2.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmWriteMm2 function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.586
|
||||
.model flat,C
|
||||
.mmx
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; AsmWriteMm2 (
|
||||
; IN UINT64 Value
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmWriteMm2 PROC
|
||||
movq mm2, [esp + 4]
|
||||
ret
|
||||
AsmWriteMm2 ENDP
|
||||
|
||||
END
|
|
@ -1,41 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; WriteMm3.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmWriteMm3 function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.586
|
||||
.model flat,C
|
||||
.mmx
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; AsmWriteMm3 (
|
||||
; IN UINT64 Value
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmWriteMm3 PROC
|
||||
movq mm3, [esp + 4]
|
||||
ret
|
||||
AsmWriteMm3 ENDP
|
||||
|
||||
END
|
|
@ -1,41 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; WriteMm4.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmWriteMm4 function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.586
|
||||
.model flat,C
|
||||
.mmx
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; AsmWriteMm4 (
|
||||
; IN UINT64 Value
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmWriteMm4 PROC
|
||||
movq mm4, [esp + 4]
|
||||
ret
|
||||
AsmWriteMm4 ENDP
|
||||
|
||||
END
|
|
@ -1,41 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; WriteMm5.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmWriteMm5 function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.586
|
||||
.model flat,C
|
||||
.mmx
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; AsmWriteMm5 (
|
||||
; IN UINT64 Value
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmWriteMm5 PROC
|
||||
movq mm5, [esp + 4]
|
||||
ret
|
||||
AsmWriteMm5 ENDP
|
||||
|
||||
END
|
|
@ -1,41 +0,0 @@
|
|||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||
; This program and the accompanying materials
|
||||
; are licensed and made available under the terms and conditions of the BSD License
|
||||
; which accompanies this distribution. The full text of the license may be found at
|
||||
; http://opensource.org/licenses/bsd-license.php.
|
||||
;
|
||||
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
;
|
||||
; Module Name:
|
||||
;
|
||||
; WriteMm6.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmWriteMm6 function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.586
|
||||
.model flat,C
|
||||
.mmx
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; AsmWriteMm6 (
|
||||
; IN UINT64 Value
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmWriteMm6 PROC
|
||||
movq mm6, [esp + 4]
|
||||
ret
|
||||
AsmWriteMm6 ENDP
|
||||
|
||||
END
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue