mirror of
https://github.com/RaySollium99/picodrive.git
synced 2025-09-06 23:58:04 -04:00
svp compiler: wip EXT reg stuff
git-svn-id: file:///home/notaz/opt/svn/PicoDrive@379 be3aeb3a-fb24-0410-a615-afba39da0efa
This commit is contained in:
parent
0336d6438a
commit
d527628282
5 changed files with 453 additions and 98 deletions
|
@ -9,6 +9,7 @@
|
|||
.global flush_inval_caches
|
||||
.global regfile_load
|
||||
.global regfile_store
|
||||
.global ssp_hle_800
|
||||
|
||||
@ translation cache buffer
|
||||
.text
|
||||
|
@ -93,4 +94,34 @@ regfile_store:
|
|||
bx lr
|
||||
|
||||
|
||||
#define SSP_OFFS_GR 0x400
|
||||
#define SSP_OFFS_EMUST 0x484
|
||||
#define SSP_PM0 8
|
||||
#define SSP_PC 6
|
||||
#define SSP_WAIT_PM0 0x2000
|
||||
|
||||
@ ld A, PM0
|
||||
@ andi 2
|
||||
@ bra z=1, gloc_0800
|
||||
ssp_hle_800:
|
||||
@ block prologue
|
||||
stmfd sp!, {r4-r11, lr}
|
||||
bl regfile_load
|
||||
mov r11, #0
|
||||
|
||||
ldr r0, [r7, #(SSP_OFFS_GR+SSP_PM0*4)]
|
||||
ldr r1, [r7, #SSP_OFFS_EMUST]
|
||||
tst r0, #0x20000
|
||||
orreq r1, r1, #SSP_WAIT_PM0
|
||||
addeq r11,r11, #1024
|
||||
streq r1, [r7, #SSP_OFFS_EMUST]
|
||||
movne r0, #0x04000000
|
||||
orrne r0, r0, #0x00040000
|
||||
strne r0, [r7, #(SSP_OFFS_GR+SSP_PC*4)]
|
||||
|
||||
bl regfile_store
|
||||
add r0, r11, #3
|
||||
ldmfd sp!, {r4-r11, lr}
|
||||
bx lr
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue