MdePkg/Library/BaseLib/Ipf/AccessEicr.s File Reference
Detailed Description
IPF specific External Interrupt Control Registers accessing functions
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: AccessEicr.s
AsmReadLid
This routine is used to read the value of Local Interrupt ID Register (LID).
Arguments :
On Entry :
Return Value: The current value of LID.
.text
.type AsmReadLid,
.proc AsmReadLid
AsmReadLid::
mov r8 = cr.lid;;
srlz.d;;
br.ret.dpnt b0;;
.endp AsmReadLid
AsmWriteLid
This routine is used to write the value to Local Interrupt ID Register (LID).
Arguments :
On Entry : The value need to be written to LID.
Return Value: The value written to LID.
.text
.type AsmWriteLid,
.proc AsmWriteLid
.regstk 1, 0, 0, 0
AsmWriteLid::
mov cr.lid = in0
mov r8 = in0;;
srlz.d;;
br.ret.dpnt b0;;
.endp AsmWriteLid
AsmReadIvr
This routine is used to read the value of External Interrupt Vector Register (IVR).
Arguments :
On Entry :
Return Value: The current value of IVR.
.text
.type AsmReadIvr,
.proc AsmReadIvr
AsmReadIvr::
mov r8 = cr.ivr;;
srlz.d;;
br.ret.dpnt b0;;
.endp AsmReadIvr
AsmReadTpr
This routine is used to read the value of Task Priority Register (TPR).
Arguments :
On Entry :
Return Value: The current value of TPR.
.text
.type AsmReadTpr,
.proc AsmReadTpr
AsmReadTpr::
mov r8 = cr.tpr;;
br.ret.dpnt b0;;
.endp AsmReadTpr
AsmWriteTpr
This routine is used to write the value to Task Priority Register (TPR).
Arguments :
On Entry : The value need to be written to TPR.
Return Value: The value written to TPR.
.text
.type AsmWriteTpr,
.proc AsmWriteTpr
.regstk 1, 0, 0, 0
AsmWriteTpr::
mov cr.tpr = in0
mov r8 = in0;;
srlz.d;;
br.ret.dpnt b0;;
.endp AsmWriteTpr
AsmWriteEoi
This routine is used to write the value to End of External Interrupt Register (EOI).
Arguments :
On Entry : The value need to be written to EOI.
Return Value: The value written to EOI.
.text
.type AsmWriteEoi,
.proc AsmWriteEoi
AsmWriteEoi::
mov cr.eoi = r0;;
srlz.d;;
br.ret.dpnt b0;;
.endp AsmWriteEoi
AsmReadIrr0
This routine is used to Read the value of External Interrupt Request Register 0 (IRR0).
Arguments :
On Entry :
Return Value: The current value of IRR0.
.text
.type AsmReadIrr0,
.proc AsmReadIrr0
AsmReadIrr0::
mov r8 = cr.irr0;;
br.ret.dpnt b0;;
.endp AsmReadIrr0
AsmReadIrr1
This routine is used to Read the value of External Interrupt Request Register 1 (IRR1).
Arguments :
On Entry :
Return Value: The current value of IRR1.
.text
.type AsmReadIrr1,
.proc AsmReadIrr1
AsmReadIrr1::
mov r8 = cr.irr1;;
br.ret.dpnt b0;;
.endp AsmReadIrr1
AsmReadIrr2
This routine is used to Read the value of External Interrupt Request Register 2 (IRR2).
Arguments :
On Entry :
Return Value: The current value of IRR2.
.text
.type AsmReadIrr2,
.proc AsmReadIrr2
AsmReadIrr2::
mov r8 = cr.irr2;;
br.ret.dpnt b0;;
.endp AsmReadIrr2
AsmReadIrr3
This routine is used to Read the value of External Interrupt Request Register 3 (IRR3).
Arguments :
On Entry :
Return Value: The current value of IRR3.
.text
.type AsmReadIrr3,
.proc AsmReadIrr3
AsmReadIrr3::
mov r8 = cr.irr3;;
br.ret.dpnt b0;;
.endp AsmReadIrr3
AsmReadItv
This routine is used to Read the value of Interval Timer Vector Register (ITV).
Arguments :
On Entry :
Return Value: The current value of ITV.
.text
.type AsmReadItv,
.proc AsmReadItv
AsmReadItv::
mov r8 = cr.itv;;
br.ret.dpnt b0;;
.endp AsmReadItv
AsmWriteItv
This routine is used to write the value to Interval Timer Vector Register (ITV).
Arguments :
On Entry : The value need to be written to ITV
Return Value: The value written to ITV.
.text
.type AsmWriteItv,
.proc AsmWriteItv
.regstk 1, 0, 0, 0
AsmWriteItv::
mov cr.itv = in0
mov r8 = in0;;
srlz.d;;
br.ret.dpnt b0;;
.endp AsmWriteItv
AsmReadPmv
This routine is used to Read the value of Performance Monitoring Vector Register (PMV).
Arguments :
On Entry :
Return Value: The current value of PMV.
.text
.type AsmReadPmv,
.proc AsmReadPmv
AsmReadPmv::
mov r8 = cr.pmv;;
br.ret.dpnt b0;;
.endp AsmReadPmv
AsmWritePmv
This routine is used to write the value to Performance Monitoring Vector Register (PMV).
Arguments :
On Entry : The value need to be written to PMV
Return Value: The value written to PMV.
.text
.type AsmWritePmv,
.proc AsmWritePmv
.regstk 1, 0, 0, 0
AsmWritePmv::
mov cr.pmv = in0
mov r8 = in0;;
srlz.d;;
br.ret.dpnt b0;;
.endp AsmWritePmv
AsmReadCmcv
This routine is used to Read the value of Corrected Machine Check Vector Register (CMCV).
Arguments :
On Entry :
Return Value: The current value of CMCV.
.text
.type AsmReadCmcv,
.proc AsmReadCmcv
AsmReadCmcv::
mov r8 = cr.cmcv;;
br.ret.dpnt b0;;
.endp AsmReadCmcv
AsmWriteCmcv
This routine is used to write the value to Corrected Machine Check Vector Register (CMCV).
Arguments :
On Entry : The value need to be written to CMCV
Return Value: The value written to CMCV.
.text
.type AsmWriteCmcv,
.proc AsmWriteCmcv
.regstk 1, 0, 0, 0
AsmWriteCmcv::
mov cr.cmcv = in0
mov r8 = in0;;
srlz.d;;
br.ret.dpnt b0;;
.endp AsmWriteCmcv
AsmReadLrr0
This routine is used to read the value of Local Redirection Register 0 (LRR0).
Arguments :
On Entry :
Return Value: The current value of LRR0.
.text
.type AsmReadLrr0,
.proc AsmReadLrr0
AsmReadLrr0::
mov r8 = cr.lrr0;;
br.ret.dpnt b0;;
.endp AsmReadLrr0
AsmWriteLrr0
This routine is used to write the value to Local Redirection Register 0 (LRR0).
Arguments :
On Entry : The value need to be written to LRR0.
Return Value: The value written to LRR0.
.text
.type AsmWriteLrr0,
.proc AsmWriteLrr0
.regstk 1, 0, 0, 0
AsmWriteLrr0::
mov cr.lrr0 = in0
mov r8 = in0;;
srlz.d;;
br.ret.dpnt b0;;
.endp AsmWriteLrr0
AsmReadLrr1
This routine is used to read the value of Local Redirection Register 1 (LRR1).
Arguments :
On Entry :
Return Value: The current value of LRR1.
.text
.type AsmReadLrr1,
.proc AsmReadLrr1
AsmReadLrr1::
mov r8 = cr.lrr1;;
br.ret.dpnt b0;;
.endp AsmReadLrr1
AsmWriteLrr1
This routine is used to write the value to Local Redirection Register 1 (LRR1).
Arguments :
On Entry : The value need to be written to LRR1.
Return Value: The value written to LRR1.
.text
.type AsmWriteLrr1,
.proc AsmWriteLrr1
.regstk 1, 0, 0, 0
AsmWriteLrr1::
mov cr.lrr1 = in0
mov r8 = in0;;
srlz.d;;
br.ret.dpnt b0;;
.endp AsmWriteLrr1