MdePkg/Library/BaseLib/Ipf/AccessMsrDb.s File Reference


Detailed Description

IPF specific Machine Specific Registers accessing functions.
This implementation uses raw data to prepresent the assembly instruction of
mov msr[]= and mov =msr[].
Copyright (c) 2008, 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.


AsmReadMsr
Reads the current value of a Machine Specific Register (MSR).
Reads and returns the current value of the Machine Specific Register specified by Index. No
parameter checking is performed on Index, and if the Index value is beyond the implemented MSR
register range, a Reserved Register/Field fault may occur. The caller must either guarantee that
Index is valid, or the caller must set up fault handlers to catch the faults. This function is
only available on IPF.
Arguments :
On Entry : The 8-bit Machine Specific Register index to read.
Return Value: The current value of the Machine Specific Register specified by Index.
.text
.type AsmReadMsr,
.proc AsmReadMsr
.regstk 1, 0, 0, 0

AsmReadMsr::
The follow 16 bytes stand for the bundle of
mov r8=msr[in0];;
since MSFT tool chain does not support mov =msr[] instruction
data1 0x0D
data1 0x40
data1 0x00
data1 0x40
data1 0x16
data1 0x04
data1 0x00
data1 0x00
data1 0x00
data1 0x02
data1 0x00
data1 0x00
data1 0x00
data1 0x00
data1 0x04
data1 0x00
br.ret.sptk b0;;
.endp AsmReadMsr

AsmWriteMsr
Writes the current value of a Machine Specific Register (MSR).
Writes Value to the Machine Specific Register specified by Index. Value is returned. No
parameter checking is performed on Index, and if the Index value is beyond the implemented MSR
register range, a Reserved Register/Field fault may occur. The caller must either guarantee that
Index is valid, or the caller must set up fault handlers to catch the faults. This function is
only available on IPF.
Arguments :
On Entry : The 8-bit Machine Specific Register index to write.
The 64-bit value to write to the Machine Specific Register.
Return Value: The 64-bit value to write to the Machine Specific Register.
.text
.type AsmWriteMsr,
.proc AsmWriteMsr
.regstk 2, 0, 0, 0

AsmWriteMsr::
The follow 16 bytes stand for the bundle of
mov msr[in0] = in1
mov r8 = in1;;
since MSFT tool chain does not support mov msr[]= instruction
data1 0x0D
data1 0x00
data1 0x84
data1 0x40
data1 0x06
data1 0x04
data1 0x00
data1 0x00
data1 0x00
data1 0x02
data1 0x00
data1 0x00
data1 0x01
data1 0x08
data1 0x01
data1 0x84
srlz.d;;
br.ret.sptk b0;;
.endp AsmWriteMsr



Generated on Thu Sep 24 23:14:22 2015 for MdePkg[ALL] by  doxygen 1.5.7.1