📄 _csl_intc0restoreirq.asm
字号:
****************************************************************************
* E X P O R T E D F U N C T I O N S
****************************************************************************
.global __CSL_intc0RestoreIRQ
****************************************************************************
* P A S S - T H R U C O D E
****************************************************************************
.text
.state32
; the MODE bits [4:0] in PSR
__INTC0_CPSR_MODE_MASK .equ 0x0000001F
__INTC0_CPSR_MODE_SHIFT .equ 0x00
; the IRQ bit [7] in PSR
__INTC0_CPSR_IRQ_MASK .equ 0x00000080
__INTC0_CPSR_IRQ_SHIFT .equ 0x07
; the FIQ bit [6] in PSR
__INTC0_CPSR_FIQ_MASK .equ 0x00000040
__INTC0_CPSR_FIQ_SHIFT .equ 0x06
****************************************************************************
* P U B L I C F U N C T I O N S
****************************************************************************
****************************************************************************
* _CSL_Intc0IrqEnableState
* _CSL_intc0RestoreIRQ (
* _CSL_Intc0IrqEnableState prevState
* )
****************************************************************************
__CSL_intc0RestoreIRQ:
; argument in R0 -> the IRQ enable-state
; return value in R0 -> the IRQ bit pattern
mov r0, r0, lsl #__INTC0_CPSR_IRQ_SHIFT ; shift the bit to position
and r0, r0, #__INTC0_CPSR_IRQ_MASK ; and mask out extraneous bits
mrs r1, cpsr
bic r2, r1, #__INTC0_CPSR_IRQ_MASK ; clear out the current value
orr r2, r2, r0 ; and put in the new one
msr cpsr, r2
and r0, r1, #__INTC0_CPSR_IRQ_MASK ; get the IRQ bits into R0
mov r0, r0, lsr #__INTC0_CPSR_IRQ_SHIFT ; shift into the LSBs
bx lr
.state16
.global $_CSL_intc0RestoreIRQ
$_CSL_intc0RestoreIRQ:
bx pc
nop
.state32
b __CSL_intc0RestoreIRQ
****************************************************************************
* End of _CSL_intc0RestoreIRQ.asm
****************************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -