1. Updated function headers in all assembly files.
2. Split x86LowLevel.c into a bunch of C files to make images linked with BaseLib smaller. 3. Fixed a few minor bugs. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1066 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@@ -23,6 +23,17 @@
|
||||
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; InternalX86DisablePaging64 (
|
||||
; IN UINT16 Cs,
|
||||
; IN UINT32 EntryPoint,
|
||||
; IN UINT32 Context1, OPTIONAL
|
||||
; IN UINT32 Context2, OPTIONAL
|
||||
; IN UINT32 NewStack
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
InternalX86DisablePaging64 PROC
|
||||
cli
|
||||
shl rcx, 32
|
||||
|
@@ -23,6 +23,13 @@
|
||||
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; InternalX86FxRestore (
|
||||
; IN CONST IA32_FX_BUFFER *Buffer
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
InternalX86FxRestore PROC
|
||||
fxrstor [rcx]
|
||||
ret
|
||||
|
@@ -23,6 +23,13 @@
|
||||
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; InternalX86FxSave (
|
||||
; OUT IA32_FX_BUFFER *Buffer
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
InternalX86FxSave PROC
|
||||
fxsave [rcx]
|
||||
ret
|
||||
|
@@ -21,6 +21,14 @@
|
||||
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; InternalLongJump (
|
||||
; IN BASE_LIBRARY_JUMP_BUFFER *JumpBuffer,
|
||||
; IN UINTN Value
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
InternalLongJump PROC
|
||||
mov rbx, [rcx]
|
||||
mov rsp, [rcx + 8]
|
||||
|
@@ -31,7 +31,7 @@
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmReadCs PROC
|
||||
mov ax, cs
|
||||
mov eax, cs
|
||||
ret
|
||||
AsmReadCs ENDP
|
||||
|
||||
|
@@ -31,9 +31,8 @@
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmReadDs PROC
|
||||
mov ax, ds
|
||||
mov eax, ds
|
||||
ret
|
||||
AsmReadDs ENDP
|
||||
|
||||
END
|
||||
|
||||
|
@@ -31,7 +31,7 @@
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmReadEs PROC
|
||||
mov ax, es
|
||||
mov eax, es
|
||||
ret
|
||||
AsmReadEs ENDP
|
||||
|
||||
|
@@ -31,7 +31,7 @@
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmReadFs PROC
|
||||
mov ax, fs
|
||||
mov eax, fs
|
||||
ret
|
||||
AsmReadFs ENDP
|
||||
|
||||
|
@@ -23,6 +23,13 @@
|
||||
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; InternalX86ReadGdtr (
|
||||
; OUT IA32_DESCRIPTOR *Gdtr
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
InternalX86ReadGdtr PROC
|
||||
sgdt fword ptr [rcx]
|
||||
ret
|
||||
|
@@ -31,7 +31,7 @@
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmReadGs PROC
|
||||
mov ax, gs
|
||||
mov eax, gs
|
||||
ret
|
||||
AsmReadGs ENDP
|
||||
|
||||
|
@@ -23,6 +23,13 @@
|
||||
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; InternalX86ReadIdtr (
|
||||
; OUT IA32_DESCRIPTOR *Idtr
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
InternalX86ReadIdtr PROC
|
||||
sidt fword ptr [rcx]
|
||||
ret
|
||||
|
@@ -24,7 +24,7 @@
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINTN
|
||||
; UINT64
|
||||
; EFIAPI
|
||||
; AsmReadMm0 (
|
||||
; VOID
|
||||
|
@@ -24,7 +24,7 @@
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINTN
|
||||
; UINT64
|
||||
; EFIAPI
|
||||
; AsmReadMm1 (
|
||||
; VOID
|
||||
|
@@ -24,7 +24,7 @@
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINTN
|
||||
; UINT64
|
||||
; EFIAPI
|
||||
; AsmReadMm2 (
|
||||
; VOID
|
||||
|
@@ -24,7 +24,7 @@
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINTN
|
||||
; UINT64
|
||||
; EFIAPI
|
||||
; AsmReadMm3 (
|
||||
; VOID
|
||||
|
@@ -24,7 +24,7 @@
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINTN
|
||||
; UINT64
|
||||
; EFIAPI
|
||||
; AsmReadMm4 (
|
||||
; VOID
|
||||
|
@@ -24,7 +24,7 @@
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINTN
|
||||
; UINT64
|
||||
; EFIAPI
|
||||
; AsmReadMm5 (
|
||||
; VOID
|
||||
|
@@ -24,7 +24,7 @@
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINTN
|
||||
; UINT64
|
||||
; EFIAPI
|
||||
; AsmReadMm6 (
|
||||
; VOID
|
||||
|
@@ -24,7 +24,7 @@
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINTN
|
||||
; UINT64
|
||||
; EFIAPI
|
||||
; AsmReadMm7 (
|
||||
; VOID
|
||||
|
@@ -1,38 +0,0 @@
|
||||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation
|
||||
; All rights reserved. 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:
|
||||
;
|
||||
; ReadMsr32.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmReadMsr32 function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINT32
|
||||
; EFIAPI
|
||||
; AsmReadMsr32 (
|
||||
; IN UINT32 Index
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmReadMsr32 PROC
|
||||
rdmsr
|
||||
ret
|
||||
AsmReadMsr32 ENDP
|
||||
|
||||
END
|
@@ -31,9 +31,9 @@
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmReadMsr64 PROC
|
||||
rdmsr
|
||||
shl rax, 20h
|
||||
shrd rax, rdx, 20h
|
||||
rdmsr ; edx & eax are zero extended
|
||||
shl rdx, 20h
|
||||
or rax, rdx
|
||||
ret
|
||||
AsmReadMsr64 ENDP
|
||||
|
||||
|
@@ -32,11 +32,8 @@
|
||||
;------------------------------------------------------------------------------
|
||||
AsmReadPmc PROC
|
||||
rdpmc
|
||||
shl ecx, 1
|
||||
jnc @F
|
||||
shl rax, 20h
|
||||
shrd rax, rdx, 20h
|
||||
@@:
|
||||
shl rdx, 20h
|
||||
or rax, rdx
|
||||
ret
|
||||
AsmReadPmc ENDP
|
||||
|
||||
|
@@ -31,7 +31,7 @@
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmReadSs PROC
|
||||
mov ax, ss
|
||||
mov eax, ss
|
||||
ret
|
||||
AsmReadSs ENDP
|
||||
|
||||
|
@@ -32,8 +32,8 @@
|
||||
;------------------------------------------------------------------------------
|
||||
AsmReadTsc PROC
|
||||
rdtsc
|
||||
shl rax, 20h
|
||||
shrd rax, rdx, 20h
|
||||
shl rdx, 20h
|
||||
or rax, rdx
|
||||
ret
|
||||
AsmReadTsc ENDP
|
||||
|
||||
|
@@ -23,6 +23,13 @@
|
||||
|
||||
EXTERNDEF InternalAssertJumpBuffer:PROC
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINTN
|
||||
; EFIAPI
|
||||
; SetJump (
|
||||
; OUT BASE_LIBRARY_JUMP_BUFFER *JumpBuffer
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
SetJump PROC
|
||||
push rcx
|
||||
add rsp, -20h
|
||||
|
@@ -61,6 +61,10 @@ SavedGdt LABEL FWORD
|
||||
DW ?
|
||||
DQ ?
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; _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
|
||||
DB 16h ; push ss
|
||||
DB 0eh ; push cs
|
||||
@@ -125,6 +129,10 @@ _16Gdtr LABEL FWORD
|
||||
_16GdtrBase DQ _NullSegDesc
|
||||
_16Idtr FWORD (1 SHL 10) - 1
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; _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 edi, ss
|
||||
mov ss, edx ; set new segment selectors
|
||||
@@ -184,11 +192,14 @@ _16DsDesc LABEL QWORD
|
||||
DB 0
|
||||
GdtEnd LABEL QWORD
|
||||
|
||||
;
|
||||
; @param RegSet Pointer to a IA32_DWORD_REGS structure
|
||||
; @param Transition Pointer to the transition code
|
||||
; @return The address of the 16-bit stack after returning from user code
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
; IA32_REGISTER_SET *
|
||||
; EFIAPI
|
||||
; InternalAsmThunk16 (
|
||||
; IN IA32_REGISTER_SET *RegisterSet,
|
||||
; IN OUT VOID *Transition
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
InternalAsmThunk16 PROC USES rbp rbx rsi rdi
|
||||
mov r10d, ds
|
||||
mov r11d, es
|
||||
|
@@ -27,11 +27,12 @@
|
||||
; UINTN
|
||||
; EFIAPI
|
||||
; AsmWriteCr0 (
|
||||
; VOID
|
||||
; UINTN Cr0
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmWriteCr0 PROC
|
||||
mov cr0, rcx
|
||||
mov rax, rcx
|
||||
ret
|
||||
AsmWriteCr0 ENDP
|
||||
|
||||
|
@@ -27,11 +27,12 @@
|
||||
; UINTN
|
||||
; EFIAPI
|
||||
; AsmWriteCr2 (
|
||||
; VOID
|
||||
; UINTN Cr2
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmWriteCr2 PROC
|
||||
mov cr2, rcx
|
||||
mov rax, rcx
|
||||
ret
|
||||
AsmWriteCr2 ENDP
|
||||
|
||||
|
@@ -27,11 +27,12 @@
|
||||
; UINTN
|
||||
; EFIAPI
|
||||
; AsmWriteCr3 (
|
||||
; VOID
|
||||
; UINTN Cr3
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmWriteCr3 PROC
|
||||
mov cr3, rcx
|
||||
mov rax, rcx
|
||||
ret
|
||||
AsmWriteCr3 ENDP
|
||||
|
||||
|
@@ -27,11 +27,12 @@
|
||||
; UINTN
|
||||
; EFIAPI
|
||||
; AsmWriteCr4 (
|
||||
; VOID
|
||||
; UINTN Cr4
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmWriteCr4 PROC
|
||||
mov cr4, rcx
|
||||
mov rax, rcx
|
||||
ret
|
||||
AsmWriteCr4 ENDP
|
||||
|
||||
|
@@ -27,11 +27,12 @@
|
||||
; UINTN
|
||||
; EFIAPI
|
||||
; AsmWriteDr0 (
|
||||
; VOID
|
||||
; IN UINTN Value
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmWriteDr0 PROC
|
||||
mov dr0, rcx
|
||||
mov rax, rcx
|
||||
ret
|
||||
AsmWriteDr0 ENDP
|
||||
|
||||
|
@@ -27,11 +27,12 @@
|
||||
; UINTN
|
||||
; EFIAPI
|
||||
; AsmWriteDr1 (
|
||||
; VOID
|
||||
; IN UINTN Value
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmWriteDr1 PROC
|
||||
mov dr1, rcx
|
||||
mov rax, rcx
|
||||
ret
|
||||
AsmWriteDr1 ENDP
|
||||
|
||||
|
@@ -27,11 +27,12 @@
|
||||
; UINTN
|
||||
; EFIAPI
|
||||
; AsmWriteDr2 (
|
||||
; VOID
|
||||
; IN UINTN Value
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmWriteDr2 PROC
|
||||
mov dr2, rcx
|
||||
mov rax, rcx
|
||||
ret
|
||||
AsmWriteDr2 ENDP
|
||||
|
||||
|
@@ -27,11 +27,12 @@
|
||||
; UINTN
|
||||
; EFIAPI
|
||||
; AsmWriteDr3 (
|
||||
; VOID
|
||||
; IN UINTN Value
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmWriteDr3 PROC
|
||||
mov dr3, rcx
|
||||
mov rax, rcx
|
||||
ret
|
||||
AsmWriteDr3 ENDP
|
||||
|
||||
|
@@ -27,11 +27,12 @@
|
||||
; UINTN
|
||||
; EFIAPI
|
||||
; AsmWriteDr4 (
|
||||
; VOID
|
||||
; IN UINTN Value
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmWriteDr4 PROC
|
||||
DB 0fh, 23h, 0e1h
|
||||
mov rax, rcx
|
||||
ret
|
||||
AsmWriteDr4 ENDP
|
||||
|
||||
|
@@ -26,12 +26,13 @@
|
||||
;------------------------------------------------------------------------------
|
||||
; UINTN
|
||||
; EFIAPI
|
||||
; AsmWriteDr5 (
|
||||
; VOID
|
||||
; AsmWriteDr6 (
|
||||
; IN UINTN Value
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmWriteDr5 PROC
|
||||
DB 0fh, 23h, 0e9h
|
||||
mov rax, rcx
|
||||
ret
|
||||
AsmWriteDr5 ENDP
|
||||
|
||||
|
@@ -27,11 +27,12 @@
|
||||
; UINTN
|
||||
; EFIAPI
|
||||
; AsmWriteDr6 (
|
||||
; VOID
|
||||
; IN UINTN Value
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmWriteDr6 PROC
|
||||
mov dr6, rcx
|
||||
mov rax, rcx
|
||||
ret
|
||||
AsmWriteDr6 ENDP
|
||||
|
||||
|
@@ -27,11 +27,12 @@
|
||||
; UINTN
|
||||
; EFIAPI
|
||||
; AsmWriteDr7 (
|
||||
; VOID
|
||||
; IN UINTN Value
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmWriteDr7 PROC
|
||||
mov dr7, rcx
|
||||
mov rax, rcx
|
||||
ret
|
||||
AsmWriteDr7 ENDP
|
||||
|
||||
|
@@ -23,6 +23,13 @@
|
||||
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; InternalX86WriteGdtr (
|
||||
; IN CONST IA32_DESCRIPTOR *Idtr
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
InternalX86WriteGdtr PROC
|
||||
lgdt fword ptr [rcx]
|
||||
ret
|
||||
|
@@ -23,6 +23,13 @@
|
||||
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; InternalX86WriteIdtr (
|
||||
; IN CONST IA32_DESCRIPTOR *Idtr
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
InternalX86WriteIdtr PROC
|
||||
lidt fword ptr [rcx]
|
||||
ret
|
||||
|
@@ -24,10 +24,10 @@
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINTN
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; AsmWriteMm0 (
|
||||
; VOID
|
||||
; IN UINT64 Value
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmWriteMm0 PROC
|
||||
|
@@ -24,10 +24,10 @@
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINTN
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; AsmWriteMm1 (
|
||||
; VOID
|
||||
; IN UINT64 Value
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmWriteMm1 PROC
|
||||
|
@@ -24,10 +24,10 @@
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINTN
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; AsmWriteMm2 (
|
||||
; VOID
|
||||
; IN UINT64 Value
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmWriteMm2 PROC
|
||||
|
@@ -24,10 +24,10 @@
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINTN
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; AsmWriteMm3 (
|
||||
; VOID
|
||||
; IN UINT64 Value
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmWriteMm3 PROC
|
||||
|
@@ -24,10 +24,10 @@
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINTN
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; AsmWriteMm4 (
|
||||
; VOID
|
||||
; IN UINT64 Value
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmWriteMm4 PROC
|
||||
|
@@ -24,10 +24,10 @@
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINTN
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; AsmWriteMm5 (
|
||||
; VOID
|
||||
; IN UINT64 Value
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmWriteMm5 PROC
|
||||
|
@@ -24,10 +24,10 @@
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINTN
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; AsmWriteMm6 (
|
||||
; VOID
|
||||
; IN UINT64 Value
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmWriteMm6 PROC
|
||||
|
@@ -24,10 +24,10 @@
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINTN
|
||||
; VOID
|
||||
; EFIAPI
|
||||
; AsmWriteMm7 (
|
||||
; VOID
|
||||
; IN UINT64 Value
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmWriteMm7 PROC
|
||||
|
@@ -1,41 +0,0 @@
|
||||
;------------------------------------------------------------------------------
|
||||
;
|
||||
; Copyright (c) 2006, Intel Corporation
|
||||
; All rights reserved. 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:
|
||||
;
|
||||
; WriteMsr32.Asm
|
||||
;
|
||||
; Abstract:
|
||||
;
|
||||
; AsmWriteMsr32 function
|
||||
;
|
||||
; Notes:
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
.code
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; UINT32
|
||||
; EFIAPI
|
||||
; AsmWriteMsr32 (
|
||||
; IN UINT32 Index,
|
||||
; IN UINT32 Value
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmWriteMsr32 PROC
|
||||
mov eax, edx
|
||||
xor edx, edx
|
||||
wrmsr
|
||||
ret
|
||||
AsmWriteMsr32 ENDP
|
||||
|
||||
END
|
@@ -32,11 +32,9 @@
|
||||
; );
|
||||
;------------------------------------------------------------------------------
|
||||
AsmWriteMsr64 PROC
|
||||
push rdx
|
||||
mov eax, edx
|
||||
mov rax, rdx
|
||||
shr rdx, 20h
|
||||
wrmsr
|
||||
pop rax
|
||||
ret
|
||||
AsmWriteMsr64 ENDP
|
||||
|
||||
|
Reference in New Issue
Block a user