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


Detailed Description

IPF specific Global Control Registers accessing functions
Copyright (c) 2006 - 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.
Module Name: AccessGcr.s

AsmReadDcr
This routine is used to Read the value of Default Control Register (DCR).
Arguments :
On Entry :
Return Value: The current value of DCR.
.text
.type AsmReadDcr,
.proc AsmReadDcr

AsmReadDcr::
mov r8 = cr.dcr;;
br.ret.dpnt b0;;
.endp AsmReadDcr

AsmWriteDcr
This routine is used to write the value to Default Control Register (DCR).
Arguments :
On Entry : The value need to be written to DCR
Return Value: The value written to DCR.
.text
.type AsmWriteDcr,
.proc AsmWriteDcr
.regstk 1, 0, 0, 0

AsmWriteDcr::
mov cr.dcr = in0
mov r8 = in0;;
srlz.i;;
srlz.d;;
br.ret.dpnt b0;;
.endp AsmWriteDcr


AsmReadItc
This routine is used to Read the value of Interval Timer Counter Register (ITC).
Arguments :
On Entry :
Return Value: The current value of ITC.
.text
.type AsmReadItc,
.proc AsmReadItc

AsmReadItc::
mov r8 = ar.itc;;
br.ret.dpnt b0;;
.endp AsmReadItc

AsmWriteItc
This routine is used to write the value to Interval Timer Counter Register (ITC).
Arguments :
On Entry : The value need to be written to the ITC
Return Value: The value written to the ITC.
.text
.type AsmWriteItc,
.proc AsmWriteItc
.regstk 1, 0, 0, 0

AsmWriteItc::
mov ar.itc = in0
mov r8 = in0;;
br.ret.dpnt b0;;
.endp AsmWriteItc


AsmReadItm
This routine is used to Read the value of Interval Timer Match Register (ITM).
Arguments :
On Entry :
Return Value: The current value of ITM.
.text
.type AsmReadItm,
.proc AsmReadItm

AsmReadItm::
mov r8 = cr.itm;;
br.ret.dpnt b0;;
.endp AsmReadItm

AsmWriteItm
This routine is used to write the value to Interval Timer Match Register (ITM).
Arguments :
On Entry : The value need to be written to ITM
Return Value: The value written to ITM.
.text
.type AsmWriteItm,
.proc AsmWriteItm
.regstk 1, 0, 0, 0

AsmWriteItm::
mov cr.itm = in0
mov r8 = in0;;
srlz.d;
br.ret.dpnt b0;;
.endp AsmWriteItm


AsmReadIva
This routine is used to read the value of Interruption Vector Address Register (IVA).
Arguments :
On Entry :
Return Value: The current value of IVA.
.text
.type AsmReadIva,
.proc AsmReadIva

AsmReadIva::
mov r8 = cr.iva;;
br.ret.dpnt b0;;
.endp AsmReadIva

AsmWriteIva
This routine is used to write the value to Interruption Vector Address Register (IVA).
Arguments :
On Entry : The value need to be written to IVA
Return Value: The value written to IVA.
.text
.type AsmWriteIva,
.proc AsmWriteIva
.regstk 1, 3, 0, 0

AsmWriteIva::
alloc loc1=ar.pfs,1,4,0,0 ;;

mov loc2 = psr
rsm 0x6000 // Make sure interrupts are masked

mov cr.iva = in0
srlz.i;;
mov psr.l = loc2;;
srlz.i;;
srlz.d;;
mov ar.pfs=loc1 ;;
mov r8 = in0;;
br.ret.dpnt b0;;
.endp AsmWriteIva


AsmReadPta
This routine is used to read the value of Page Table Address Register (PTA).
Arguments :
On Entry :
Return Value: The current value of PTA.
.text
.type AsmReadPta,
.proc AsmReadPta

AsmReadPta::
mov r8 = cr.pta;;
br.ret.dpnt b0;;
.endp AsmReadPta

AsmWritePta
This routine is used to write the value to Page Table Address Register (PTA)).
Arguments :
On Entry : The value need to be written to PTA
Return Value: The value written to PTA.
.text
.type AsmWritePta,
.proc AsmWritePta
.regstk 1, 0, 0, 0

AsmWritePta::
mov cr.pta = in0
mov r8 = in0;;
srlz.i;;
srlz.d;;
br.ret.dpnt b0;;
.endp AsmWritePta


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