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:
@@ -37,18 +37,14 @@
|
|||||||
Ia32/CpuFlushTlb.c | MSFT
|
Ia32/CpuFlushTlb.c | MSFT
|
||||||
|
|
||||||
Ia32/CpuSleep.nasm| INTEL
|
Ia32/CpuSleep.nasm| INTEL
|
||||||
Ia32/CpuSleep.asm | INTEL
|
|
||||||
Ia32/CpuFlushTlb.nasm| INTEL
|
Ia32/CpuFlushTlb.nasm| INTEL
|
||||||
Ia32/CpuFlushTlb.asm | INTEL
|
|
||||||
|
|
||||||
Ia32/CpuSleepGcc.c | GCC
|
Ia32/CpuSleepGcc.c | GCC
|
||||||
Ia32/CpuFlushTlbGcc.c | GCC
|
Ia32/CpuFlushTlbGcc.c | GCC
|
||||||
|
|
||||||
[Sources.X64]
|
[Sources.X64]
|
||||||
X64/CpuFlushTlb.nasm
|
X64/CpuFlushTlb.nasm
|
||||||
X64/CpuFlushTlb.asm
|
|
||||||
X64/CpuSleep.nasm
|
X64/CpuSleep.nasm
|
||||||
X64/CpuSleep.asm
|
|
||||||
|
|
||||||
X64/CpuSleep.nasm| GCC
|
X64/CpuSleep.nasm| GCC
|
||||||
X64/CpuSleep.S | 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
|
# MMIO requests are forwarded directly to memory. For EBC, I/O port requests
|
||||||
# ASSERT().
|
# 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>
|
# Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
|
||||||
# Copyright (c) 2017, AMD Incorporated. All rights reserved.<BR>
|
# Copyright (c) 2017, AMD Incorporated. All rights reserved.<BR>
|
||||||
#
|
#
|
||||||
@@ -44,7 +44,6 @@
|
|||||||
IoLibIcc.c | INTEL
|
IoLibIcc.c | INTEL
|
||||||
IoLib.c
|
IoLib.c
|
||||||
Ia32/IoFifo.nasm
|
Ia32/IoFifo.nasm
|
||||||
Ia32/IoFifo.asm
|
|
||||||
|
|
||||||
[Sources.X64]
|
[Sources.X64]
|
||||||
IoLibGcc.c | GCC
|
IoLibGcc.c | GCC
|
||||||
@@ -52,7 +51,6 @@
|
|||||||
IoLibIcc.c | INTEL
|
IoLibIcc.c | INTEL
|
||||||
IoLib.c
|
IoLib.c
|
||||||
X64/IoFifo.nasm
|
X64/IoFifo.nasm
|
||||||
X64/IoFifo.asm
|
|
||||||
|
|
||||||
[Sources.EBC]
|
[Sources.EBC]
|
||||||
IoLibEbc.c
|
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
|
## @file
|
||||||
# Base Library implementation.
|
# 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) 2008 - 2009, Apple Inc. All rights reserved.<BR>
|
||||||
# Portions copyright (c) 2011 - 2013, ARM Ltd. All rights reserved.<BR>
|
# Portions copyright (c) 2011 - 2013, ARM Ltd. All rights reserved.<BR>
|
||||||
#
|
#
|
||||||
@@ -148,7 +148,6 @@
|
|||||||
Ia32/EnableInterrupts.c | MSFT
|
Ia32/EnableInterrupts.c | MSFT
|
||||||
Ia32/EnableDisableInterrupts.c | MSFT
|
Ia32/EnableDisableInterrupts.c | MSFT
|
||||||
Ia32/DivU64x64Remainder.nasm| MSFT
|
Ia32/DivU64x64Remainder.nasm| MSFT
|
||||||
Ia32/DivU64x64Remainder.asm | MSFT
|
|
||||||
Ia32/DivU64x32Remainder.c | MSFT
|
Ia32/DivU64x32Remainder.c | MSFT
|
||||||
Ia32/DivU64x32.c | MSFT
|
Ia32/DivU64x32.c | MSFT
|
||||||
Ia32/DisablePaging32.c | MSFT
|
Ia32/DisablePaging32.c | MSFT
|
||||||
@@ -159,200 +158,104 @@
|
|||||||
Ia32/CpuBreakpoint.c | MSFT
|
Ia32/CpuBreakpoint.c | MSFT
|
||||||
Ia32/ARShiftU64.c | MSFT
|
Ia32/ARShiftU64.c | MSFT
|
||||||
Ia32/Thunk16.nasm | MSFT
|
Ia32/Thunk16.nasm | MSFT
|
||||||
Ia32/Thunk16.asm | MSFT
|
|
||||||
Ia32/EnablePaging64.nasm| MSFT
|
Ia32/EnablePaging64.nasm| MSFT
|
||||||
Ia32/EnablePaging64.asm | MSFT
|
|
||||||
Ia32/EnableCache.c | MSFT
|
Ia32/EnableCache.c | MSFT
|
||||||
Ia32/DisableCache.c | MSFT
|
Ia32/DisableCache.c | MSFT
|
||||||
Ia32/RdRand.nasm| MSFT
|
Ia32/RdRand.nasm| MSFT
|
||||||
Ia32/RdRand.asm | MSFT
|
|
||||||
|
|
||||||
Ia32/Wbinvd.nasm| INTEL
|
Ia32/Wbinvd.nasm| INTEL
|
||||||
Ia32/Wbinvd.asm | INTEL
|
|
||||||
Ia32/WriteMm7.nasm| INTEL
|
Ia32/WriteMm7.nasm| INTEL
|
||||||
Ia32/WriteMm7.asm | INTEL
|
|
||||||
Ia32/WriteMm6.nasm| INTEL
|
Ia32/WriteMm6.nasm| INTEL
|
||||||
Ia32/WriteMm6.asm | INTEL
|
|
||||||
Ia32/WriteMm5.nasm| INTEL
|
Ia32/WriteMm5.nasm| INTEL
|
||||||
Ia32/WriteMm5.asm | INTEL
|
|
||||||
Ia32/WriteMm4.nasm| INTEL
|
Ia32/WriteMm4.nasm| INTEL
|
||||||
Ia32/WriteMm4.asm | INTEL
|
|
||||||
Ia32/WriteMm3.nasm| INTEL
|
Ia32/WriteMm3.nasm| INTEL
|
||||||
Ia32/WriteMm3.asm | INTEL
|
|
||||||
Ia32/WriteMm2.nasm| INTEL
|
Ia32/WriteMm2.nasm| INTEL
|
||||||
Ia32/WriteMm2.asm | INTEL
|
|
||||||
Ia32/WriteMm1.nasm| INTEL
|
Ia32/WriteMm1.nasm| INTEL
|
||||||
Ia32/WriteMm1.asm | INTEL
|
|
||||||
Ia32/WriteMm0.nasm| INTEL
|
Ia32/WriteMm0.nasm| INTEL
|
||||||
Ia32/WriteMm0.asm | INTEL
|
|
||||||
Ia32/WriteLdtr.nasm| INTEL
|
Ia32/WriteLdtr.nasm| INTEL
|
||||||
Ia32/WriteLdtr.asm | INTEL
|
|
||||||
Ia32/WriteIdtr.nasm| INTEL
|
Ia32/WriteIdtr.nasm| INTEL
|
||||||
Ia32/WriteIdtr.asm | INTEL
|
|
||||||
Ia32/WriteGdtr.nasm| INTEL
|
Ia32/WriteGdtr.nasm| INTEL
|
||||||
Ia32/WriteGdtr.asm | INTEL
|
|
||||||
Ia32/WriteDr7.nasm| INTEL
|
Ia32/WriteDr7.nasm| INTEL
|
||||||
Ia32/WriteDr7.asm | INTEL
|
|
||||||
Ia32/WriteDr6.nasm| INTEL
|
Ia32/WriteDr6.nasm| INTEL
|
||||||
Ia32/WriteDr6.asm | INTEL
|
|
||||||
Ia32/WriteDr5.nasm| INTEL
|
Ia32/WriteDr5.nasm| INTEL
|
||||||
Ia32/WriteDr5.asm | INTEL
|
|
||||||
Ia32/WriteDr4.nasm| INTEL
|
Ia32/WriteDr4.nasm| INTEL
|
||||||
Ia32/WriteDr4.asm | INTEL
|
|
||||||
Ia32/WriteDr3.nasm| INTEL
|
Ia32/WriteDr3.nasm| INTEL
|
||||||
Ia32/WriteDr3.asm | INTEL
|
|
||||||
Ia32/WriteDr2.nasm| INTEL
|
Ia32/WriteDr2.nasm| INTEL
|
||||||
Ia32/WriteDr2.asm | INTEL
|
|
||||||
Ia32/WriteDr1.nasm| INTEL
|
Ia32/WriteDr1.nasm| INTEL
|
||||||
Ia32/WriteDr1.asm | INTEL
|
|
||||||
Ia32/WriteDr0.nasm| INTEL
|
Ia32/WriteDr0.nasm| INTEL
|
||||||
Ia32/WriteDr0.asm | INTEL
|
|
||||||
Ia32/WriteCr4.nasm| INTEL
|
Ia32/WriteCr4.nasm| INTEL
|
||||||
Ia32/WriteCr4.asm | INTEL
|
|
||||||
Ia32/WriteCr3.nasm| INTEL
|
Ia32/WriteCr3.nasm| INTEL
|
||||||
Ia32/WriteCr3.asm | INTEL
|
|
||||||
Ia32/WriteCr2.nasm| INTEL
|
Ia32/WriteCr2.nasm| INTEL
|
||||||
Ia32/WriteCr2.asm | INTEL
|
|
||||||
Ia32/WriteCr0.nasm| INTEL
|
Ia32/WriteCr0.nasm| INTEL
|
||||||
Ia32/WriteCr0.asm | INTEL
|
|
||||||
Ia32/WriteMsr64.nasm| INTEL
|
Ia32/WriteMsr64.nasm| INTEL
|
||||||
Ia32/WriteMsr64.asm | INTEL
|
|
||||||
Ia32/SwapBytes64.nasm| INTEL
|
Ia32/SwapBytes64.nasm| INTEL
|
||||||
Ia32/SwapBytes64.asm | INTEL
|
|
||||||
Ia32/SetJump.nasm| INTEL
|
Ia32/SetJump.nasm| INTEL
|
||||||
Ia32/SetJump.asm | INTEL
|
|
||||||
Ia32/RRotU64.nasm| INTEL
|
Ia32/RRotU64.nasm| INTEL
|
||||||
Ia32/RRotU64.asm | INTEL
|
|
||||||
Ia32/RShiftU64.nasm| INTEL
|
Ia32/RShiftU64.nasm| INTEL
|
||||||
Ia32/RShiftU64.asm | INTEL
|
|
||||||
Ia32/ReadPmc.nasm| INTEL
|
Ia32/ReadPmc.nasm| INTEL
|
||||||
Ia32/ReadPmc.asm | INTEL
|
|
||||||
Ia32/ReadTsc.nasm| INTEL
|
Ia32/ReadTsc.nasm| INTEL
|
||||||
Ia32/ReadTsc.asm | INTEL
|
|
||||||
Ia32/ReadLdtr.nasm| INTEL
|
Ia32/ReadLdtr.nasm| INTEL
|
||||||
Ia32/ReadLdtr.asm | INTEL
|
|
||||||
Ia32/ReadIdtr.nasm| INTEL
|
Ia32/ReadIdtr.nasm| INTEL
|
||||||
Ia32/ReadIdtr.asm | INTEL
|
|
||||||
Ia32/ReadGdtr.nasm| INTEL
|
Ia32/ReadGdtr.nasm| INTEL
|
||||||
Ia32/ReadGdtr.asm | INTEL
|
|
||||||
Ia32/ReadTr.nasm| INTEL
|
Ia32/ReadTr.nasm| INTEL
|
||||||
Ia32/ReadTr.asm | INTEL
|
|
||||||
Ia32/ReadSs.nasm| INTEL
|
Ia32/ReadSs.nasm| INTEL
|
||||||
Ia32/ReadSs.asm | INTEL
|
|
||||||
Ia32/ReadGs.nasm| INTEL
|
Ia32/ReadGs.nasm| INTEL
|
||||||
Ia32/ReadGs.asm | INTEL
|
|
||||||
Ia32/ReadFs.nasm| INTEL
|
Ia32/ReadFs.nasm| INTEL
|
||||||
Ia32/ReadFs.asm | INTEL
|
|
||||||
Ia32/ReadEs.nasm| INTEL
|
Ia32/ReadEs.nasm| INTEL
|
||||||
Ia32/ReadEs.asm | INTEL
|
|
||||||
Ia32/ReadDs.nasm| INTEL
|
Ia32/ReadDs.nasm| INTEL
|
||||||
Ia32/ReadDs.asm | INTEL
|
|
||||||
Ia32/ReadCs.nasm| INTEL
|
Ia32/ReadCs.nasm| INTEL
|
||||||
Ia32/ReadCs.asm | INTEL
|
|
||||||
Ia32/ReadMsr64.nasm| INTEL
|
Ia32/ReadMsr64.nasm| INTEL
|
||||||
Ia32/ReadMsr64.asm | INTEL
|
|
||||||
Ia32/ReadMm7.nasm| INTEL
|
Ia32/ReadMm7.nasm| INTEL
|
||||||
Ia32/ReadMm7.asm | INTEL
|
|
||||||
Ia32/ReadMm6.nasm| INTEL
|
Ia32/ReadMm6.nasm| INTEL
|
||||||
Ia32/ReadMm6.asm | INTEL
|
|
||||||
Ia32/ReadMm5.nasm| INTEL
|
Ia32/ReadMm5.nasm| INTEL
|
||||||
Ia32/ReadMm5.asm | INTEL
|
|
||||||
Ia32/ReadMm4.nasm| INTEL
|
Ia32/ReadMm4.nasm| INTEL
|
||||||
Ia32/ReadMm4.asm | INTEL
|
|
||||||
Ia32/ReadMm3.nasm| INTEL
|
Ia32/ReadMm3.nasm| INTEL
|
||||||
Ia32/ReadMm3.asm | INTEL
|
|
||||||
Ia32/ReadMm2.nasm| INTEL
|
Ia32/ReadMm2.nasm| INTEL
|
||||||
Ia32/ReadMm2.asm | INTEL
|
|
||||||
Ia32/ReadMm1.nasm| INTEL
|
Ia32/ReadMm1.nasm| INTEL
|
||||||
Ia32/ReadMm1.asm | INTEL
|
|
||||||
Ia32/ReadMm0.nasm| INTEL
|
Ia32/ReadMm0.nasm| INTEL
|
||||||
Ia32/ReadMm0.asm | INTEL
|
|
||||||
Ia32/ReadEflags.nasm| INTEL
|
Ia32/ReadEflags.nasm| INTEL
|
||||||
Ia32/ReadEflags.asm | INTEL
|
|
||||||
Ia32/ReadDr7.nasm| INTEL
|
Ia32/ReadDr7.nasm| INTEL
|
||||||
Ia32/ReadDr7.asm | INTEL
|
|
||||||
Ia32/ReadDr6.nasm| INTEL
|
Ia32/ReadDr6.nasm| INTEL
|
||||||
Ia32/ReadDr6.asm | INTEL
|
|
||||||
Ia32/ReadDr5.nasm| INTEL
|
Ia32/ReadDr5.nasm| INTEL
|
||||||
Ia32/ReadDr5.asm | INTEL
|
|
||||||
Ia32/ReadDr4.nasm| INTEL
|
Ia32/ReadDr4.nasm| INTEL
|
||||||
Ia32/ReadDr4.asm | INTEL
|
|
||||||
Ia32/ReadDr3.nasm| INTEL
|
Ia32/ReadDr3.nasm| INTEL
|
||||||
Ia32/ReadDr3.asm | INTEL
|
|
||||||
Ia32/ReadDr2.nasm| INTEL
|
Ia32/ReadDr2.nasm| INTEL
|
||||||
Ia32/ReadDr2.asm | INTEL
|
|
||||||
Ia32/ReadDr1.nasm| INTEL
|
Ia32/ReadDr1.nasm| INTEL
|
||||||
Ia32/ReadDr1.asm | INTEL
|
|
||||||
Ia32/ReadDr0.nasm| INTEL
|
Ia32/ReadDr0.nasm| INTEL
|
||||||
Ia32/ReadDr0.asm | INTEL
|
|
||||||
Ia32/ReadCr4.nasm| INTEL
|
Ia32/ReadCr4.nasm| INTEL
|
||||||
Ia32/ReadCr4.asm | INTEL
|
|
||||||
Ia32/ReadCr3.nasm| INTEL
|
Ia32/ReadCr3.nasm| INTEL
|
||||||
Ia32/ReadCr3.asm | INTEL
|
|
||||||
Ia32/ReadCr2.nasm| INTEL
|
Ia32/ReadCr2.nasm| INTEL
|
||||||
Ia32/ReadCr2.asm | INTEL
|
|
||||||
Ia32/ReadCr0.nasm| INTEL
|
Ia32/ReadCr0.nasm| INTEL
|
||||||
Ia32/ReadCr0.asm | INTEL
|
|
||||||
Ia32/Mwait.nasm| INTEL
|
Ia32/Mwait.nasm| INTEL
|
||||||
Ia32/Mwait.asm | INTEL
|
|
||||||
Ia32/Monitor.nasm| INTEL
|
Ia32/Monitor.nasm| INTEL
|
||||||
Ia32/Monitor.asm | INTEL
|
|
||||||
Ia32/ModU64x32.nasm| INTEL
|
Ia32/ModU64x32.nasm| INTEL
|
||||||
Ia32/ModU64x32.asm | INTEL
|
|
||||||
Ia32/MultU64x64.nasm| INTEL
|
Ia32/MultU64x64.nasm| INTEL
|
||||||
Ia32/MultU64x64.asm | INTEL
|
|
||||||
Ia32/MultU64x32.nasm| INTEL
|
Ia32/MultU64x32.nasm| INTEL
|
||||||
Ia32/MultU64x32.asm | INTEL
|
|
||||||
Ia32/LShiftU64.nasm| INTEL
|
Ia32/LShiftU64.nasm| INTEL
|
||||||
Ia32/LShiftU64.asm | INTEL
|
|
||||||
Ia32/LRotU64.nasm| INTEL
|
Ia32/LRotU64.nasm| INTEL
|
||||||
Ia32/LRotU64.asm | INTEL
|
|
||||||
Ia32/LongJump.nasm| INTEL
|
Ia32/LongJump.nasm| INTEL
|
||||||
Ia32/LongJump.asm | INTEL
|
|
||||||
Ia32/Invd.nasm| INTEL
|
Ia32/Invd.nasm| INTEL
|
||||||
Ia32/Invd.asm | INTEL
|
|
||||||
Ia32/FxRestore.nasm| INTEL
|
Ia32/FxRestore.nasm| INTEL
|
||||||
Ia32/FxRestore.asm | INTEL
|
|
||||||
Ia32/FxSave.nasm| INTEL
|
Ia32/FxSave.nasm| INTEL
|
||||||
Ia32/FxSave.asm | INTEL
|
|
||||||
Ia32/FlushCacheLine.nasm| INTEL
|
Ia32/FlushCacheLine.nasm| INTEL
|
||||||
Ia32/FlushCacheLine.asm | INTEL
|
|
||||||
Ia32/EnablePaging32.nasm| INTEL
|
Ia32/EnablePaging32.nasm| INTEL
|
||||||
Ia32/EnablePaging32.asm | INTEL
|
|
||||||
Ia32/EnableInterrupts.nasm| INTEL
|
Ia32/EnableInterrupts.nasm| INTEL
|
||||||
Ia32/EnableInterrupts.asm | INTEL
|
|
||||||
Ia32/EnableDisableInterrupts.nasm| INTEL
|
Ia32/EnableDisableInterrupts.nasm| INTEL
|
||||||
Ia32/EnableDisableInterrupts.asm | INTEL
|
|
||||||
Ia32/DivU64x64Remainder.nasm| INTEL
|
Ia32/DivU64x64Remainder.nasm| INTEL
|
||||||
Ia32/DivU64x64Remainder.asm | INTEL
|
|
||||||
Ia32/DivU64x32Remainder.nasm| INTEL
|
Ia32/DivU64x32Remainder.nasm| INTEL
|
||||||
Ia32/DivU64x32Remainder.asm | INTEL
|
|
||||||
Ia32/DivU64x32.nasm| INTEL
|
Ia32/DivU64x32.nasm| INTEL
|
||||||
Ia32/DivU64x32.asm | INTEL
|
|
||||||
Ia32/DisablePaging32.nasm| INTEL
|
Ia32/DisablePaging32.nasm| INTEL
|
||||||
Ia32/DisablePaging32.asm | INTEL
|
|
||||||
Ia32/DisableInterrupts.nasm| INTEL
|
Ia32/DisableInterrupts.nasm| INTEL
|
||||||
Ia32/DisableInterrupts.asm | INTEL
|
|
||||||
Ia32/CpuPause.nasm| INTEL
|
Ia32/CpuPause.nasm| INTEL
|
||||||
Ia32/CpuPause.asm | INTEL
|
|
||||||
Ia32/CpuIdEx.nasm| INTEL
|
Ia32/CpuIdEx.nasm| INTEL
|
||||||
Ia32/CpuIdEx.asm | INTEL
|
|
||||||
Ia32/CpuId.nasm| INTEL
|
Ia32/CpuId.nasm| INTEL
|
||||||
Ia32/CpuId.asm | INTEL
|
|
||||||
Ia32/CpuBreakpoint.nasm| INTEL
|
Ia32/CpuBreakpoint.nasm| INTEL
|
||||||
Ia32/CpuBreakpoint.asm | INTEL
|
|
||||||
Ia32/ARShiftU64.nasm| INTEL
|
Ia32/ARShiftU64.nasm| INTEL
|
||||||
Ia32/ARShiftU64.asm | INTEL
|
|
||||||
Ia32/Thunk16.nasm | INTEL
|
Ia32/Thunk16.nasm | INTEL
|
||||||
Ia32/Thunk16.asm | INTEL
|
|
||||||
Ia32/EnablePaging64.nasm| INTEL
|
Ia32/EnablePaging64.nasm| INTEL
|
||||||
Ia32/EnablePaging64.asm | INTEL
|
|
||||||
Ia32/EnableCache.nasm| INTEL
|
Ia32/EnableCache.nasm| INTEL
|
||||||
Ia32/EnableCache.asm | INTEL
|
|
||||||
Ia32/DisableCache.nasm| INTEL
|
Ia32/DisableCache.nasm| INTEL
|
||||||
Ia32/DisableCache.asm | INTEL
|
|
||||||
Ia32/RdRand.nasm| INTEL
|
Ia32/RdRand.nasm| INTEL
|
||||||
Ia32/RdRand.asm | INTEL
|
|
||||||
|
|
||||||
Ia32/GccInline.c | GCC
|
Ia32/GccInline.c | GCC
|
||||||
Ia32/Thunk16.nasm | GCC
|
Ia32/Thunk16.nasm | GCC
|
||||||
@@ -435,309 +338,160 @@
|
|||||||
|
|
||||||
[Sources.X64]
|
[Sources.X64]
|
||||||
X64/Thunk16.nasm
|
X64/Thunk16.nasm
|
||||||
X64/Thunk16.asm
|
|
||||||
X64/CpuIdEx.nasm
|
X64/CpuIdEx.nasm
|
||||||
X64/CpuIdEx.asm
|
|
||||||
X64/CpuId.nasm
|
X64/CpuId.nasm
|
||||||
X64/CpuId.asm
|
|
||||||
X64/LongJump.nasm
|
X64/LongJump.nasm
|
||||||
X64/LongJump.asm
|
|
||||||
X64/SetJump.nasm
|
X64/SetJump.nasm
|
||||||
X64/SetJump.asm
|
|
||||||
X64/SwitchStack.nasm
|
X64/SwitchStack.nasm
|
||||||
X64/SwitchStack.asm
|
|
||||||
X64/EnableCache.nasm
|
X64/EnableCache.nasm
|
||||||
X64/EnableCache.asm
|
|
||||||
X64/DisableCache.nasm
|
X64/DisableCache.nasm
|
||||||
X64/DisableCache.asm
|
|
||||||
X64/WriteTr.nasm
|
X64/WriteTr.nasm
|
||||||
|
|
||||||
X64/CpuBreakpoint.c | MSFT
|
X64/CpuBreakpoint.c | MSFT
|
||||||
X64/WriteMsr64.c | MSFT
|
X64/WriteMsr64.c | MSFT
|
||||||
X64/ReadMsr64.c | MSFT
|
X64/ReadMsr64.c | MSFT
|
||||||
X64/RdRand.nasm| MSFT
|
X64/RdRand.nasm| MSFT
|
||||||
X64/RdRand.asm | MSFT
|
|
||||||
X64/CpuPause.nasm| MSFT
|
X64/CpuPause.nasm| MSFT
|
||||||
X64/CpuPause.asm | MSFT
|
|
||||||
X64/EnableDisableInterrupts.nasm| MSFT
|
X64/EnableDisableInterrupts.nasm| MSFT
|
||||||
X64/EnableDisableInterrupts.asm | MSFT
|
|
||||||
X64/DisableInterrupts.nasm| MSFT
|
X64/DisableInterrupts.nasm| MSFT
|
||||||
X64/DisableInterrupts.asm | MSFT
|
|
||||||
X64/EnableInterrupts.nasm| MSFT
|
X64/EnableInterrupts.nasm| MSFT
|
||||||
X64/EnableInterrupts.asm | MSFT
|
|
||||||
X64/FlushCacheLine.nasm| MSFT
|
X64/FlushCacheLine.nasm| MSFT
|
||||||
X64/FlushCacheLine.asm | MSFT
|
|
||||||
X64/Invd.nasm| MSFT
|
X64/Invd.nasm| MSFT
|
||||||
X64/Invd.asm | MSFT
|
|
||||||
X64/Wbinvd.nasm| MSFT
|
X64/Wbinvd.nasm| MSFT
|
||||||
X64/Wbinvd.asm | MSFT
|
|
||||||
X64/DisablePaging64.nasm| MSFT
|
X64/DisablePaging64.nasm| MSFT
|
||||||
X64/DisablePaging64.asm | MSFT
|
|
||||||
X64/Mwait.nasm| MSFT
|
X64/Mwait.nasm| MSFT
|
||||||
X64/Mwait.asm | MSFT
|
|
||||||
X64/Monitor.nasm| MSFT
|
X64/Monitor.nasm| MSFT
|
||||||
X64/Monitor.asm | MSFT
|
|
||||||
X64/ReadPmc.nasm| MSFT
|
X64/ReadPmc.nasm| MSFT
|
||||||
X64/ReadPmc.asm | MSFT
|
|
||||||
X64/ReadTsc.nasm| MSFT
|
X64/ReadTsc.nasm| MSFT
|
||||||
X64/ReadTsc.asm | MSFT
|
|
||||||
X64/WriteMm7.nasm| MSFT
|
X64/WriteMm7.nasm| MSFT
|
||||||
X64/WriteMm7.asm | MSFT
|
|
||||||
X64/WriteMm6.nasm| MSFT
|
X64/WriteMm6.nasm| MSFT
|
||||||
X64/WriteMm6.asm | MSFT
|
|
||||||
X64/WriteMm5.nasm| MSFT
|
X64/WriteMm5.nasm| MSFT
|
||||||
X64/WriteMm5.asm | MSFT
|
|
||||||
X64/WriteMm4.nasm| MSFT
|
X64/WriteMm4.nasm| MSFT
|
||||||
X64/WriteMm4.asm | MSFT
|
|
||||||
X64/WriteMm3.nasm| MSFT
|
X64/WriteMm3.nasm| MSFT
|
||||||
X64/WriteMm3.asm | MSFT
|
|
||||||
X64/WriteMm2.nasm| MSFT
|
X64/WriteMm2.nasm| MSFT
|
||||||
X64/WriteMm2.asm | MSFT
|
|
||||||
X64/WriteMm1.nasm| MSFT
|
X64/WriteMm1.nasm| MSFT
|
||||||
X64/WriteMm1.asm | MSFT
|
|
||||||
X64/WriteMm0.nasm| MSFT
|
X64/WriteMm0.nasm| MSFT
|
||||||
X64/WriteMm0.asm | MSFT
|
|
||||||
X64/ReadMm7.nasm| MSFT
|
X64/ReadMm7.nasm| MSFT
|
||||||
X64/ReadMm7.asm | MSFT
|
|
||||||
X64/ReadMm6.nasm| MSFT
|
X64/ReadMm6.nasm| MSFT
|
||||||
X64/ReadMm6.asm | MSFT
|
|
||||||
X64/ReadMm5.nasm| MSFT
|
X64/ReadMm5.nasm| MSFT
|
||||||
X64/ReadMm5.asm | MSFT
|
|
||||||
X64/ReadMm4.nasm| MSFT
|
X64/ReadMm4.nasm| MSFT
|
||||||
X64/ReadMm4.asm | MSFT
|
|
||||||
X64/ReadMm3.nasm| MSFT
|
X64/ReadMm3.nasm| MSFT
|
||||||
X64/ReadMm3.asm | MSFT
|
|
||||||
X64/ReadMm2.nasm| MSFT
|
X64/ReadMm2.nasm| MSFT
|
||||||
X64/ReadMm2.asm | MSFT
|
|
||||||
X64/ReadMm1.nasm| MSFT
|
X64/ReadMm1.nasm| MSFT
|
||||||
X64/ReadMm1.asm | MSFT
|
|
||||||
X64/ReadMm0.nasm| MSFT
|
X64/ReadMm0.nasm| MSFT
|
||||||
X64/ReadMm0.asm | MSFT
|
|
||||||
X64/FxRestore.nasm| MSFT
|
X64/FxRestore.nasm| MSFT
|
||||||
X64/FxRestore.asm | MSFT
|
|
||||||
X64/FxSave.nasm| MSFT
|
X64/FxSave.nasm| MSFT
|
||||||
X64/FxSave.asm | MSFT
|
|
||||||
X64/WriteLdtr.nasm| MSFT
|
X64/WriteLdtr.nasm| MSFT
|
||||||
X64/WriteLdtr.asm | MSFT
|
|
||||||
X64/ReadLdtr.nasm| MSFT
|
X64/ReadLdtr.nasm| MSFT
|
||||||
X64/ReadLdtr.asm | MSFT
|
|
||||||
X64/WriteIdtr.nasm| MSFT
|
X64/WriteIdtr.nasm| MSFT
|
||||||
X64/WriteIdtr.asm | MSFT
|
|
||||||
X64/ReadIdtr.nasm| MSFT
|
X64/ReadIdtr.nasm| MSFT
|
||||||
X64/ReadIdtr.asm | MSFT
|
|
||||||
X64/WriteGdtr.nasm| MSFT
|
X64/WriteGdtr.nasm| MSFT
|
||||||
X64/WriteGdtr.asm | MSFT
|
|
||||||
X64/ReadGdtr.nasm| MSFT
|
X64/ReadGdtr.nasm| MSFT
|
||||||
X64/ReadGdtr.asm | MSFT
|
|
||||||
X64/ReadTr.nasm| MSFT
|
X64/ReadTr.nasm| MSFT
|
||||||
X64/ReadTr.asm | MSFT
|
|
||||||
X64/ReadSs.nasm| MSFT
|
X64/ReadSs.nasm| MSFT
|
||||||
X64/ReadSs.asm | MSFT
|
|
||||||
X64/ReadGs.nasm| MSFT
|
X64/ReadGs.nasm| MSFT
|
||||||
X64/ReadGs.asm | MSFT
|
|
||||||
X64/ReadFs.nasm| MSFT
|
X64/ReadFs.nasm| MSFT
|
||||||
X64/ReadFs.asm | MSFT
|
|
||||||
X64/ReadEs.nasm| MSFT
|
X64/ReadEs.nasm| MSFT
|
||||||
X64/ReadEs.asm | MSFT
|
|
||||||
X64/ReadDs.nasm| MSFT
|
X64/ReadDs.nasm| MSFT
|
||||||
X64/ReadDs.asm | MSFT
|
|
||||||
X64/ReadCs.nasm| MSFT
|
X64/ReadCs.nasm| MSFT
|
||||||
X64/ReadCs.asm | MSFT
|
|
||||||
X64/WriteDr7.nasm| MSFT
|
X64/WriteDr7.nasm| MSFT
|
||||||
X64/WriteDr7.asm | MSFT
|
|
||||||
X64/WriteDr6.nasm| MSFT
|
X64/WriteDr6.nasm| MSFT
|
||||||
X64/WriteDr6.asm | MSFT
|
|
||||||
X64/WriteDr5.nasm| MSFT
|
X64/WriteDr5.nasm| MSFT
|
||||||
X64/WriteDr5.asm | MSFT
|
|
||||||
X64/WriteDr4.nasm| MSFT
|
X64/WriteDr4.nasm| MSFT
|
||||||
X64/WriteDr4.asm | MSFT
|
|
||||||
X64/WriteDr3.nasm| MSFT
|
X64/WriteDr3.nasm| MSFT
|
||||||
X64/WriteDr3.asm | MSFT
|
|
||||||
X64/WriteDr2.nasm| MSFT
|
X64/WriteDr2.nasm| MSFT
|
||||||
X64/WriteDr2.asm | MSFT
|
|
||||||
X64/WriteDr1.nasm| MSFT
|
X64/WriteDr1.nasm| MSFT
|
||||||
X64/WriteDr1.asm | MSFT
|
|
||||||
X64/WriteDr0.nasm| MSFT
|
X64/WriteDr0.nasm| MSFT
|
||||||
X64/WriteDr0.asm | MSFT
|
|
||||||
X64/ReadDr7.nasm| MSFT
|
X64/ReadDr7.nasm| MSFT
|
||||||
X64/ReadDr7.asm | MSFT
|
|
||||||
X64/ReadDr6.nasm| MSFT
|
X64/ReadDr6.nasm| MSFT
|
||||||
X64/ReadDr6.asm | MSFT
|
|
||||||
X64/ReadDr5.nasm| MSFT
|
X64/ReadDr5.nasm| MSFT
|
||||||
X64/ReadDr5.asm | MSFT
|
|
||||||
X64/ReadDr4.nasm| MSFT
|
X64/ReadDr4.nasm| MSFT
|
||||||
X64/ReadDr4.asm | MSFT
|
|
||||||
X64/ReadDr3.nasm| MSFT
|
X64/ReadDr3.nasm| MSFT
|
||||||
X64/ReadDr3.asm | MSFT
|
|
||||||
X64/ReadDr2.nasm| MSFT
|
X64/ReadDr2.nasm| MSFT
|
||||||
X64/ReadDr2.asm | MSFT
|
|
||||||
X64/ReadDr1.nasm| MSFT
|
X64/ReadDr1.nasm| MSFT
|
||||||
X64/ReadDr1.asm | MSFT
|
|
||||||
X64/ReadDr0.nasm| MSFT
|
X64/ReadDr0.nasm| MSFT
|
||||||
X64/ReadDr0.asm | MSFT
|
|
||||||
X64/WriteCr4.nasm| MSFT
|
X64/WriteCr4.nasm| MSFT
|
||||||
X64/WriteCr4.asm | MSFT
|
|
||||||
X64/WriteCr3.nasm| MSFT
|
X64/WriteCr3.nasm| MSFT
|
||||||
X64/WriteCr3.asm | MSFT
|
|
||||||
X64/WriteCr2.nasm| MSFT
|
X64/WriteCr2.nasm| MSFT
|
||||||
X64/WriteCr2.asm | MSFT
|
|
||||||
X64/WriteCr0.nasm| MSFT
|
X64/WriteCr0.nasm| MSFT
|
||||||
X64/WriteCr0.asm | MSFT
|
|
||||||
X64/ReadCr4.nasm| MSFT
|
X64/ReadCr4.nasm| MSFT
|
||||||
X64/ReadCr4.asm | MSFT
|
|
||||||
X64/ReadCr3.nasm| MSFT
|
X64/ReadCr3.nasm| MSFT
|
||||||
X64/ReadCr3.asm | MSFT
|
|
||||||
X64/ReadCr2.nasm| MSFT
|
X64/ReadCr2.nasm| MSFT
|
||||||
X64/ReadCr2.asm | MSFT
|
|
||||||
X64/ReadCr0.nasm| MSFT
|
X64/ReadCr0.nasm| MSFT
|
||||||
X64/ReadCr0.asm | MSFT
|
|
||||||
X64/ReadEflags.nasm| MSFT
|
X64/ReadEflags.nasm| MSFT
|
||||||
X64/ReadEflags.asm | MSFT
|
|
||||||
|
|
||||||
X64/CpuBreakpoint.nasm| INTEL
|
X64/CpuBreakpoint.nasm| INTEL
|
||||||
X64/CpuBreakpoint.asm | INTEL
|
|
||||||
X64/WriteMsr64.nasm| INTEL
|
X64/WriteMsr64.nasm| INTEL
|
||||||
X64/WriteMsr64.asm | INTEL
|
|
||||||
X64/ReadMsr64.nasm| INTEL
|
X64/ReadMsr64.nasm| INTEL
|
||||||
X64/ReadMsr64.asm | INTEL
|
|
||||||
X64/RdRand.nasm| INTEL
|
X64/RdRand.nasm| INTEL
|
||||||
X64/RdRand.asm | INTEL
|
|
||||||
X64/CpuPause.nasm| INTEL
|
X64/CpuPause.nasm| INTEL
|
||||||
X64/CpuPause.asm | INTEL
|
|
||||||
X64/EnableDisableInterrupts.nasm| INTEL
|
X64/EnableDisableInterrupts.nasm| INTEL
|
||||||
X64/EnableDisableInterrupts.asm | INTEL
|
|
||||||
X64/DisableInterrupts.nasm| INTEL
|
X64/DisableInterrupts.nasm| INTEL
|
||||||
X64/DisableInterrupts.asm | INTEL
|
|
||||||
X64/EnableInterrupts.nasm| INTEL
|
X64/EnableInterrupts.nasm| INTEL
|
||||||
X64/EnableInterrupts.asm | INTEL
|
|
||||||
X64/FlushCacheLine.nasm| INTEL
|
X64/FlushCacheLine.nasm| INTEL
|
||||||
X64/FlushCacheLine.asm | INTEL
|
|
||||||
X64/Invd.nasm| INTEL
|
X64/Invd.nasm| INTEL
|
||||||
X64/Invd.asm | INTEL
|
|
||||||
X64/Wbinvd.nasm| INTEL
|
X64/Wbinvd.nasm| INTEL
|
||||||
X64/Wbinvd.asm | INTEL
|
|
||||||
X64/DisablePaging64.nasm| INTEL
|
X64/DisablePaging64.nasm| INTEL
|
||||||
X64/DisablePaging64.asm | INTEL
|
|
||||||
X64/Mwait.nasm| INTEL
|
X64/Mwait.nasm| INTEL
|
||||||
X64/Mwait.asm | INTEL
|
|
||||||
X64/Monitor.nasm| INTEL
|
X64/Monitor.nasm| INTEL
|
||||||
X64/Monitor.asm | INTEL
|
|
||||||
X64/ReadPmc.nasm| INTEL
|
X64/ReadPmc.nasm| INTEL
|
||||||
X64/ReadPmc.asm | INTEL
|
|
||||||
X64/ReadTsc.nasm| INTEL
|
X64/ReadTsc.nasm| INTEL
|
||||||
X64/ReadTsc.asm | INTEL
|
|
||||||
X64/WriteMm7.nasm| INTEL
|
X64/WriteMm7.nasm| INTEL
|
||||||
X64/WriteMm7.asm | INTEL
|
|
||||||
X64/WriteMm6.nasm| INTEL
|
X64/WriteMm6.nasm| INTEL
|
||||||
X64/WriteMm6.asm | INTEL
|
|
||||||
X64/WriteMm5.nasm| INTEL
|
X64/WriteMm5.nasm| INTEL
|
||||||
X64/WriteMm5.asm | INTEL
|
|
||||||
X64/WriteMm4.nasm| INTEL
|
X64/WriteMm4.nasm| INTEL
|
||||||
X64/WriteMm4.asm | INTEL
|
|
||||||
X64/WriteMm3.nasm| INTEL
|
X64/WriteMm3.nasm| INTEL
|
||||||
X64/WriteMm3.asm | INTEL
|
|
||||||
X64/WriteMm2.nasm| INTEL
|
X64/WriteMm2.nasm| INTEL
|
||||||
X64/WriteMm2.asm | INTEL
|
|
||||||
X64/WriteMm1.nasm| INTEL
|
X64/WriteMm1.nasm| INTEL
|
||||||
X64/WriteMm1.asm | INTEL
|
|
||||||
X64/WriteMm0.nasm| INTEL
|
X64/WriteMm0.nasm| INTEL
|
||||||
X64/WriteMm0.asm | INTEL
|
|
||||||
X64/ReadMm7.nasm| INTEL
|
X64/ReadMm7.nasm| INTEL
|
||||||
X64/ReadMm7.asm | INTEL
|
|
||||||
X64/ReadMm6.nasm| INTEL
|
X64/ReadMm6.nasm| INTEL
|
||||||
X64/ReadMm6.asm | INTEL
|
|
||||||
X64/ReadMm5.nasm| INTEL
|
X64/ReadMm5.nasm| INTEL
|
||||||
X64/ReadMm5.asm | INTEL
|
|
||||||
X64/ReadMm4.nasm| INTEL
|
X64/ReadMm4.nasm| INTEL
|
||||||
X64/ReadMm4.asm | INTEL
|
|
||||||
X64/ReadMm3.nasm| INTEL
|
X64/ReadMm3.nasm| INTEL
|
||||||
X64/ReadMm3.asm | INTEL
|
|
||||||
X64/ReadMm2.nasm| INTEL
|
X64/ReadMm2.nasm| INTEL
|
||||||
X64/ReadMm2.asm | INTEL
|
|
||||||
X64/ReadMm1.nasm| INTEL
|
X64/ReadMm1.nasm| INTEL
|
||||||
X64/ReadMm1.asm | INTEL
|
|
||||||
X64/ReadMm0.nasm| INTEL
|
X64/ReadMm0.nasm| INTEL
|
||||||
X64/ReadMm0.asm | INTEL
|
|
||||||
X64/FxRestore.nasm| INTEL
|
X64/FxRestore.nasm| INTEL
|
||||||
X64/FxRestore.asm | INTEL
|
|
||||||
X64/FxSave.nasm| INTEL
|
X64/FxSave.nasm| INTEL
|
||||||
X64/FxSave.asm | INTEL
|
|
||||||
X64/WriteLdtr.nasm| INTEL
|
X64/WriteLdtr.nasm| INTEL
|
||||||
X64/WriteLdtr.asm | INTEL
|
|
||||||
X64/ReadLdtr.nasm| INTEL
|
X64/ReadLdtr.nasm| INTEL
|
||||||
X64/ReadLdtr.asm | INTEL
|
|
||||||
X64/WriteIdtr.nasm| INTEL
|
X64/WriteIdtr.nasm| INTEL
|
||||||
X64/WriteIdtr.asm | INTEL
|
|
||||||
X64/ReadIdtr.nasm| INTEL
|
X64/ReadIdtr.nasm| INTEL
|
||||||
X64/ReadIdtr.asm | INTEL
|
|
||||||
X64/WriteGdtr.nasm| INTEL
|
X64/WriteGdtr.nasm| INTEL
|
||||||
X64/WriteGdtr.asm | INTEL
|
|
||||||
X64/ReadGdtr.nasm| INTEL
|
X64/ReadGdtr.nasm| INTEL
|
||||||
X64/ReadGdtr.asm | INTEL
|
|
||||||
X64/ReadTr.nasm| INTEL
|
X64/ReadTr.nasm| INTEL
|
||||||
X64/ReadTr.asm | INTEL
|
|
||||||
X64/ReadSs.nasm| INTEL
|
X64/ReadSs.nasm| INTEL
|
||||||
X64/ReadSs.asm | INTEL
|
|
||||||
X64/ReadGs.nasm| INTEL
|
X64/ReadGs.nasm| INTEL
|
||||||
X64/ReadGs.asm | INTEL
|
|
||||||
X64/ReadFs.nasm| INTEL
|
X64/ReadFs.nasm| INTEL
|
||||||
X64/ReadFs.asm | INTEL
|
|
||||||
X64/ReadEs.nasm| INTEL
|
X64/ReadEs.nasm| INTEL
|
||||||
X64/ReadEs.asm | INTEL
|
|
||||||
X64/ReadDs.nasm| INTEL
|
X64/ReadDs.nasm| INTEL
|
||||||
X64/ReadDs.asm | INTEL
|
|
||||||
X64/ReadCs.nasm| INTEL
|
X64/ReadCs.nasm| INTEL
|
||||||
X64/ReadCs.asm | INTEL
|
|
||||||
X64/WriteDr7.nasm| INTEL
|
X64/WriteDr7.nasm| INTEL
|
||||||
X64/WriteDr7.asm | INTEL
|
|
||||||
X64/WriteDr6.nasm| INTEL
|
X64/WriteDr6.nasm| INTEL
|
||||||
X64/WriteDr6.asm | INTEL
|
|
||||||
X64/WriteDr5.nasm| INTEL
|
X64/WriteDr5.nasm| INTEL
|
||||||
X64/WriteDr5.asm | INTEL
|
|
||||||
X64/WriteDr4.nasm| INTEL
|
X64/WriteDr4.nasm| INTEL
|
||||||
X64/WriteDr4.asm | INTEL
|
|
||||||
X64/WriteDr3.nasm| INTEL
|
X64/WriteDr3.nasm| INTEL
|
||||||
X64/WriteDr3.asm | INTEL
|
|
||||||
X64/WriteDr2.nasm| INTEL
|
X64/WriteDr2.nasm| INTEL
|
||||||
X64/WriteDr2.asm | INTEL
|
|
||||||
X64/WriteDr1.nasm| INTEL
|
X64/WriteDr1.nasm| INTEL
|
||||||
X64/WriteDr1.asm | INTEL
|
|
||||||
X64/WriteDr0.nasm| INTEL
|
X64/WriteDr0.nasm| INTEL
|
||||||
X64/WriteDr0.asm | INTEL
|
|
||||||
X64/ReadDr7.nasm| INTEL
|
X64/ReadDr7.nasm| INTEL
|
||||||
X64/ReadDr7.asm | INTEL
|
|
||||||
X64/ReadDr6.nasm| INTEL
|
X64/ReadDr6.nasm| INTEL
|
||||||
X64/ReadDr6.asm | INTEL
|
|
||||||
X64/ReadDr5.nasm| INTEL
|
X64/ReadDr5.nasm| INTEL
|
||||||
X64/ReadDr5.asm | INTEL
|
|
||||||
X64/ReadDr4.nasm| INTEL
|
X64/ReadDr4.nasm| INTEL
|
||||||
X64/ReadDr4.asm | INTEL
|
|
||||||
X64/ReadDr3.nasm| INTEL
|
X64/ReadDr3.nasm| INTEL
|
||||||
X64/ReadDr3.asm | INTEL
|
|
||||||
X64/ReadDr2.nasm| INTEL
|
X64/ReadDr2.nasm| INTEL
|
||||||
X64/ReadDr2.asm | INTEL
|
|
||||||
X64/ReadDr1.nasm| INTEL
|
X64/ReadDr1.nasm| INTEL
|
||||||
X64/ReadDr1.asm | INTEL
|
|
||||||
X64/ReadDr0.nasm| INTEL
|
X64/ReadDr0.nasm| INTEL
|
||||||
X64/ReadDr0.asm | INTEL
|
|
||||||
X64/WriteCr4.nasm| INTEL
|
X64/WriteCr4.nasm| INTEL
|
||||||
X64/WriteCr4.asm | INTEL
|
|
||||||
X64/WriteCr3.nasm| INTEL
|
X64/WriteCr3.nasm| INTEL
|
||||||
X64/WriteCr3.asm | INTEL
|
|
||||||
X64/WriteCr2.nasm| INTEL
|
X64/WriteCr2.nasm| INTEL
|
||||||
X64/WriteCr2.asm | INTEL
|
|
||||||
X64/WriteCr0.nasm| INTEL
|
X64/WriteCr0.nasm| INTEL
|
||||||
X64/WriteCr0.asm | INTEL
|
|
||||||
X64/ReadCr4.nasm| INTEL
|
X64/ReadCr4.nasm| INTEL
|
||||||
X64/ReadCr4.asm | INTEL
|
|
||||||
X64/ReadCr3.nasm| INTEL
|
X64/ReadCr3.nasm| INTEL
|
||||||
X64/ReadCr3.asm | INTEL
|
|
||||||
X64/ReadCr2.nasm| INTEL
|
X64/ReadCr2.nasm| INTEL
|
||||||
X64/ReadCr2.asm | INTEL
|
|
||||||
X64/ReadCr0.nasm| INTEL
|
X64/ReadCr0.nasm| INTEL
|
||||||
X64/ReadCr0.asm | INTEL
|
|
||||||
X64/ReadEflags.nasm| INTEL
|
X64/ReadEflags.nasm| INTEL
|
||||||
X64/ReadEflags.asm | INTEL
|
|
||||||
|
|
||||||
X64/Non-existing.c
|
X64/Non-existing.c
|
||||||
Math64.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
Reference in New Issue
Block a user