+++ /dev/null
-/// @file\r
-/// IPF specific External Interrupt Control Registers accessing functions\r
-///\r
-/// Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>\r
-/// This program and the accompanying materials\r
-/// are licensed and made available under the terms and conditions of the BSD License\r
-/// which accompanies this distribution. The full text of the license may be found at\r
-/// http://opensource.org/licenses/bsd-license.php.\r
-///\r
-/// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-/// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-///\r
-/// Module Name: AccessEicr.s\r
-///\r
-///\r
-\r
-//---------------------------------------------------------------------------------\r
-//++\r
-// AsmReadLid\r
-//\r
-// This routine is used to read the value of Local Interrupt ID Register (LID).\r
-//\r
-// Arguments :\r
-//\r
-// On Entry :\r
-//\r
-// Return Value: The current value of LID.\r
-//\r
-//--\r
-//----------------------------------------------------------------------------------\r
-.text\r
-.type AsmReadLid, @function\r
-.proc AsmReadLid\r
-\r
-AsmReadLid::\r
- mov r8 = cr.lid;;\r
- srlz.d;;\r
- br.ret.dpnt b0;;\r
-.endp AsmReadLid\r
-\r
-//---------------------------------------------------------------------------------\r
-//++\r
-// AsmWriteLid\r
-//\r
-// This routine is used to write the value to Local Interrupt ID Register (LID).\r
-//\r
-// Arguments :\r
-//\r
-// On Entry : The value need to be written to LID.\r
-//\r
-// Return Value: The value written to LID.\r
-//\r
-//--\r
-//----------------------------------------------------------------------------------\r
-.text\r
-.type AsmWriteLid, @function\r
-.proc AsmWriteLid\r
-.regstk 1, 0, 0, 0\r
-\r
-AsmWriteLid::\r
- mov cr.lid = in0\r
- mov r8 = in0;;\r
- srlz.d;;\r
- br.ret.dpnt b0;;\r
-.endp AsmWriteLid\r
-\r
-\r
-//---------------------------------------------------------------------------------\r
-//++\r
-// AsmReadIvr\r
-//\r
-// This routine is used to read the value of External Interrupt Vector Register (IVR).\r
-//\r
-// Arguments :\r
-//\r
-// On Entry :\r
-//\r
-// Return Value: The current value of IVR.\r
-//\r
-//--\r
-//----------------------------------------------------------------------------------\r
-.text\r
-.type AsmReadIvr, @function\r
-.proc AsmReadIvr\r
-\r
-AsmReadIvr::\r
- mov r8 = cr.ivr;;\r
- srlz.d;;\r
- br.ret.dpnt b0;;\r
-.endp AsmReadIvr\r
-\r
-\r
-//---------------------------------------------------------------------------------\r
-//++\r
-// AsmReadTpr\r
-//\r
-// This routine is used to read the value of Task Priority Register (TPR).\r
-//\r
-// Arguments :\r
-//\r
-// On Entry :\r
-//\r
-// Return Value: The current value of TPR.\r
-//\r
-//--\r
-//----------------------------------------------------------------------------------\r
-.text\r
-.type AsmReadTpr, @function\r
-.proc AsmReadTpr\r
-\r
-AsmReadTpr::\r
- mov r8 = cr.tpr;;\r
- br.ret.dpnt b0;;\r
-.endp AsmReadTpr\r
-\r
-//---------------------------------------------------------------------------------\r
-//++\r
-// AsmWriteTpr\r
-//\r
-// This routine is used to write the value to Task Priority Register (TPR).\r
-//\r
-// Arguments :\r
-//\r
-// On Entry : The value need to be written to TPR.\r
-//\r
-// Return Value: The value written to TPR.\r
-//\r
-//--\r
-//----------------------------------------------------------------------------------\r
-.text\r
-.type AsmWriteTpr, @function\r
-.proc AsmWriteTpr\r
-.regstk 1, 0, 0, 0\r
-\r
-AsmWriteTpr::\r
- mov cr.tpr = in0\r
- mov r8 = in0;;\r
- srlz.d;;\r
- br.ret.dpnt b0;;\r
-.endp AsmWriteTpr\r
-\r
-\r
-//---------------------------------------------------------------------------------\r
-//++\r
-// AsmWriteEoi\r
-//\r
-// This routine is used to write the value to End of External Interrupt Register (EOI).\r
-//\r
-// Arguments :\r
-//\r
-// On Entry : The value need to be written to EOI.\r
-//\r
-// Return Value: The value written to EOI.\r
-//\r
-//--\r
-//----------------------------------------------------------------------------------\r
-.text\r
-.type AsmWriteEoi, @function\r
-.proc AsmWriteEoi\r
-\r
-AsmWriteEoi::\r
- mov cr.eoi = r0;;\r
- srlz.d;;\r
- br.ret.dpnt b0;;\r
-.endp AsmWriteEoi\r
-\r
-\r
-//---------------------------------------------------------------------------------\r
-//++\r
-// AsmReadIrr0\r
-//\r
-// This routine is used to Read the value of External Interrupt Request Register 0 (IRR0).\r
-//\r
-// Arguments :\r
-//\r
-// On Entry :\r
-//\r
-// Return Value: The current value of IRR0.\r
-//\r
-//--\r
-//----------------------------------------------------------------------------------\r
-.text\r
-.type AsmReadIrr0, @function\r
-.proc AsmReadIrr0\r
-\r
-AsmReadIrr0::\r
- mov r8 = cr.irr0;;\r
- br.ret.dpnt b0;;\r
-.endp AsmReadIrr0\r
-\r
-\r
-//---------------------------------------------------------------------------------\r
-//++\r
-// AsmReadIrr1\r
-//\r
-// This routine is used to Read the value of External Interrupt Request Register 1 (IRR1).\r
-//\r
-// Arguments :\r
-//\r
-// On Entry :\r
-//\r
-// Return Value: The current value of IRR1.\r
-//\r
-//--\r
-//----------------------------------------------------------------------------------\r
-.text\r
-.type AsmReadIrr1, @function\r
-.proc AsmReadIrr1\r
-\r
-AsmReadIrr1::\r
- mov r8 = cr.irr1;;\r
- br.ret.dpnt b0;;\r
-.endp AsmReadIrr1\r
-\r
-\r
-//---------------------------------------------------------------------------------\r
-//++\r
-// AsmReadIrr2\r
-//\r
-// This routine is used to Read the value of External Interrupt Request Register 2 (IRR2).\r
-//\r
-// Arguments :\r
-//\r
-// On Entry :\r
-//\r
-// Return Value: The current value of IRR2.\r
-//\r
-//--\r
-//----------------------------------------------------------------------------------\r
-.text\r
-.type AsmReadIrr2, @function\r
-.proc AsmReadIrr2\r
-\r
-AsmReadIrr2::\r
- mov r8 = cr.irr2;;\r
- br.ret.dpnt b0;;\r
-.endp AsmReadIrr2\r
-\r
-\r
-//---------------------------------------------------------------------------------\r
-//++\r
-// AsmReadIrr3\r
-//\r
-// This routine is used to Read the value of External Interrupt Request Register 3 (IRR3).\r
-//\r
-// Arguments :\r
-//\r
-// On Entry :\r
-//\r
-// Return Value: The current value of IRR3.\r
-//\r
-//--\r
-//----------------------------------------------------------------------------------\r
-.text\r
-.type AsmReadIrr3, @function\r
-.proc AsmReadIrr3\r
-\r
-AsmReadIrr3::\r
- mov r8 = cr.irr3;;\r
- br.ret.dpnt b0;;\r
-.endp AsmReadIrr3\r
-\r
-\r
-//---------------------------------------------------------------------------------\r
-//++\r
-// AsmReadItv\r
-//\r
-// This routine is used to Read the value of Interval Timer Vector Register (ITV).\r
-//\r
-// Arguments :\r
-//\r
-// On Entry :\r
-//\r
-// Return Value: The current value of ITV.\r
-//\r
-//--\r
-//----------------------------------------------------------------------------------\r
-.text\r
-.type AsmReadItv, @function\r
-.proc AsmReadItv\r
-\r
-AsmReadItv::\r
- mov r8 = cr.itv;;\r
- br.ret.dpnt b0;;\r
-.endp AsmReadItv\r
-\r
-//---------------------------------------------------------------------------------\r
-//++\r
-// AsmWriteItv\r
-//\r
-// This routine is used to write the value to Interval Timer Vector Register (ITV).\r
-//\r
-// Arguments :\r
-//\r
-// On Entry : The value need to be written to ITV\r
-//\r
-// Return Value: The value written to ITV.\r
-//\r
-//--\r
-//----------------------------------------------------------------------------------\r
-.text\r
-.type AsmWriteItv, @function\r
-.proc AsmWriteItv\r
-.regstk 1, 0, 0, 0\r
-\r
-AsmWriteItv::\r
- mov cr.itv = in0\r
- mov r8 = in0;;\r
- srlz.d;;\r
- br.ret.dpnt b0;;\r
-.endp AsmWriteItv\r
-\r
-\r
-//---------------------------------------------------------------------------------\r
-//++\r
-// AsmReadPmv\r
-//\r
-// This routine is used to Read the value of Performance Monitoring Vector Register (PMV).\r
-//\r
-// Arguments :\r
-//\r
-// On Entry :\r
-//\r
-// Return Value: The current value of PMV.\r
-//\r
-//--\r
-//----------------------------------------------------------------------------------\r
-.text\r
-.type AsmReadPmv, @function\r
-.proc AsmReadPmv\r
-\r
-AsmReadPmv::\r
- mov r8 = cr.pmv;;\r
- br.ret.dpnt b0;;\r
-.endp AsmReadPmv\r
-\r
-//---------------------------------------------------------------------------------\r
-//++\r
-// AsmWritePmv\r
-//\r
-// This routine is used to write the value to Performance Monitoring Vector Register (PMV).\r
-//\r
-// Arguments :\r
-//\r
-// On Entry : The value need to be written to PMV\r
-//\r
-// Return Value: The value written to PMV.\r
-//\r
-//--\r
-//----------------------------------------------------------------------------------\r
-.text\r
-.type AsmWritePmv, @function\r
-.proc AsmWritePmv\r
-.regstk 1, 0, 0, 0\r
-\r
-AsmWritePmv::\r
- mov cr.pmv = in0\r
- mov r8 = in0;;\r
- srlz.d;;\r
- br.ret.dpnt b0;;\r
-.endp AsmWritePmv\r
-\r
-\r
-//---------------------------------------------------------------------------------\r
-//++\r
-// AsmReadCmcv\r
-//\r
-// This routine is used to Read the value of Corrected Machine Check Vector Register (CMCV).\r
-//\r
-// Arguments :\r
-//\r
-// On Entry :\r
-//\r
-// Return Value: The current value of CMCV.\r
-//\r
-//--\r
-//----------------------------------------------------------------------------------\r
-.text\r
-.type AsmReadCmcv, @function\r
-.proc AsmReadCmcv\r
-\r
-AsmReadCmcv::\r
- mov r8 = cr.cmcv;;\r
- br.ret.dpnt b0;;\r
-.endp AsmReadCmcv\r
-\r
-//---------------------------------------------------------------------------------\r
-//++\r
-// AsmWriteCmcv\r
-//\r
-// This routine is used to write the value to Corrected Machine Check Vector Register (CMCV).\r
-//\r
-// Arguments :\r
-//\r
-// On Entry : The value need to be written to CMCV\r
-//\r
-// Return Value: The value written to CMCV.\r
-//\r
-//--\r
-//----------------------------------------------------------------------------------\r
-.text\r
-.type AsmWriteCmcv, @function\r
-.proc AsmWriteCmcv\r
-.regstk 1, 0, 0, 0\r
-\r
-AsmWriteCmcv::\r
- mov cr.cmcv = in0\r
- mov r8 = in0;;\r
- srlz.d;;\r
- br.ret.dpnt b0;;\r
-.endp AsmWriteCmcv\r
-\r
-\r
-//---------------------------------------------------------------------------------\r
-//++\r
-// AsmReadLrr0\r
-//\r
-// This routine is used to read the value of Local Redirection Register 0 (LRR0).\r
-//\r
-// Arguments :\r
-//\r
-// On Entry :\r
-//\r
-// Return Value: The current value of LRR0.\r
-//\r
-//--\r
-//----------------------------------------------------------------------------------\r
-.text\r
-.type AsmReadLrr0, @function\r
-.proc AsmReadLrr0\r
-\r
-AsmReadLrr0::\r
- mov r8 = cr.lrr0;;\r
- br.ret.dpnt b0;;\r
-.endp AsmReadLrr0\r
-\r
-//---------------------------------------------------------------------------------\r
-//++\r
-// AsmWriteLrr0\r
-//\r
-// This routine is used to write the value to Local Redirection Register 0 (LRR0).\r
-//\r
-// Arguments :\r
-//\r
-// On Entry : The value need to be written to LRR0.\r
-//\r
-// Return Value: The value written to LRR0.\r
-//\r
-//--\r
-//----------------------------------------------------------------------------------\r
-.text\r
-.type AsmWriteLrr0, @function\r
-.proc AsmWriteLrr0\r
-.regstk 1, 0, 0, 0\r
-\r
-AsmWriteLrr0::\r
- mov cr.lrr0 = in0\r
- mov r8 = in0;;\r
- srlz.d;;\r
- br.ret.dpnt b0;;\r
-.endp AsmWriteLrr0\r
-\r
-\r
-//---------------------------------------------------------------------------------\r
-//++\r
-// AsmReadLrr1\r
-//\r
-// This routine is used to read the value of Local Redirection Register 1 (LRR1).\r
-//\r
-// Arguments :\r
-//\r
-// On Entry :\r
-//\r
-// Return Value: The current value of LRR1.\r
-//\r
-//--\r
-//----------------------------------------------------------------------------------\r
-.text\r
-.type AsmReadLrr1, @function\r
-.proc AsmReadLrr1\r
-\r
-AsmReadLrr1::\r
- mov r8 = cr.lrr1;;\r
- br.ret.dpnt b0;;\r
-.endp AsmReadLrr1\r
-\r
-//---------------------------------------------------------------------------------\r
-//++\r
-// AsmWriteLrr1\r
-//\r
-// This routine is used to write the value to Local Redirection Register 1 (LRR1).\r
-//\r
-// Arguments :\r
-//\r
-// On Entry : The value need to be written to LRR1.\r
-//\r
-// Return Value: The value written to LRR1.\r
-//\r
-//--\r
-//----------------------------------------------------------------------------------\r
-.text\r
-.type AsmWriteLrr1, @function\r
-.proc AsmWriteLrr1\r
-.regstk 1, 0, 0, 0\r
-\r
-AsmWriteLrr1::\r
- mov cr.lrr1 = in0\r
- mov r8 = in0;;\r
- srlz.d;;\r
- br.ret.dpnt b0;;\r
-.endp AsmWriteLrr1\r
-\r