7f75f5eb1e
*Due space limitations only the debug version of kenobigc is supported, this means there is a bit less space for cheats. git-svn-id: svn://localhost/Users/andi/Downloads/code/trunk@2 be6c1b03-d731-4111-a574-e37d80d43941
71 lines
1.1 KiB
ArmAsm
71 lines
1.1 KiB
ArmAsm
#define CPSR_IRQDIS 0x80
|
|
#define CPSR_FIQDIS 0x40
|
|
|
|
.arm
|
|
|
|
.globl _dc_inval_entries
|
|
.globl _dc_flush_entries
|
|
.globl _dc_flush
|
|
.globl _dc_inval
|
|
.globl _ic_inval
|
|
.globl _drain_write_buffer
|
|
.globl _tlb_inval
|
|
.globl irq_kill
|
|
.globl irq_restore
|
|
|
|
.text
|
|
|
|
irq_kill:
|
|
mrs r1, cpsr
|
|
and r0, r1, #(CPSR_IRQDIS|CPSR_FIQDIS)
|
|
orr r1, r1, #(CPSR_IRQDIS|CPSR_FIQDIS)
|
|
msr cpsr_c, r1
|
|
bx lr
|
|
|
|
irq_restore:
|
|
mrs r1, cpsr
|
|
bic r1, r1, #(CPSR_IRQDIS|CPSR_FIQDIS)
|
|
orr r1, r1, r0
|
|
msr cpsr_c, r1
|
|
bx lr
|
|
|
|
_dc_inval_entries:
|
|
mcr p15, 0, r0, c7, c6, 1
|
|
add r0, #0x20
|
|
subs r1, #1
|
|
bne _dc_inval_entries
|
|
bx lr
|
|
|
|
_dc_flush_entries:
|
|
mcr p15, 0, r0, c7, c10, 1
|
|
add r0, #0x20
|
|
subs r1, #1
|
|
bne _dc_flush_entries
|
|
bx lr
|
|
|
|
_dc_flush:
|
|
mrc p15, 0, pc, c7, c10, 3
|
|
bne _dc_flush
|
|
bx lr
|
|
|
|
_dc_inval:
|
|
mov r0, #0
|
|
mcr p15, 0, r0, c7, c6, 0
|
|
bx lr
|
|
|
|
_ic_inval:
|
|
mov r0, #0
|
|
mcr p15, 0, r0, c7, c5, 0
|
|
bx lr
|
|
|
|
_drain_write_buffer:
|
|
mov r0, #0
|
|
mcr p15, 0, r0, c7, c10, 4
|
|
bx lr
|
|
|
|
_tlb_inval:
|
|
mov r0, #0
|
|
mcr p15, 0, r0, c8, c7
|
|
bx lr
|
|
|