X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=cpu%2FDrZ80%2Fdrz80.s;h=c2a64df3f9157a50f3187c861ba5331a688884fe;hb=2b15cea82e68d32f5e926ab065ac233b89cfc200;hp=ff2a6b8b38d858e51027a9a69eb242a28a6d2e53;hpb=9a1f192a146e9b9752ec1a760745b1261fe9bdec;p=picodrive.git diff --git a/cpu/DrZ80/drz80.s b/cpu/DrZ80/drz80.s index ff2a6b8..c2a64df 100644 --- a/cpu/DrZ80/drz80.s +++ b/cpu/DrZ80/drz80.s @@ -12,7 +12,7 @@ .global DrZ80Ver .equiv INTERRUPT_MODE, 0 ;@0 = Use internal int handler, 1 = Use Mames int handler - .equiv FAST_Z80SP, 1 ;@0 = Use mem functions for stack pointer, 1 = Use direct mem pointer + .equiv FAST_Z80SP, 0 ;@0 = Use mem functions for stack pointer, 1 = Use direct mem pointer .equiv UPDATE_CONTEXT, 0 .equiv DRZ80_XMAP, 1 .equiv DRZ80_XMAP_MORE_INLINE, 1 @@ -212,6 +212,7 @@ z80_bad_jump: mov z80pc,r0 ldmfd sp!,{r3,r12,pc} +.if FAST_Z80SP z80_xmap_rebase_sp: ldr r1,[cpucontext,#z80_read8] sub r2,r0,#1 @@ -228,6 +229,7 @@ z80_xmap_rebase_sp: ldr pc,[cpucontext,#z80_rebaseSP] mov z80sp,r0 ldmfd sp!,{r3,r12,pc} +.endif @ FAST_Z80SP .endif @ DRZ80_XMAP @@ -4294,10 +4296,12 @@ opcode_0_7: fetch 4 ;@EX AF,AF' opcode_0_8: - add r1,cpucontext,#z80a2 - swp z80a,z80a,[r1] - add r1,cpucontext,#z80f2 - swp z80f,z80f,[r1] + ldr r0,[cpucontext,#z80a2] + ldr r1,[cpucontext,#z80f2] + str z80a,[cpucontext,#z80a2] + str z80f,[cpucontext,#z80f2] + mov z80a,r0 + mov z80f,r1 fetch 4 ;@ADD HL,BC opcode_0_9: @@ -5336,12 +5340,15 @@ opcode_D_8: fetch 5 ;@EXX opcode_D_9: - add r1,cpucontext,#z80bc2 - swp z80bc,z80bc,[r1] - add r1,cpucontext,#z80de2 - swp z80de,z80de,[r1] - add r1,cpucontext,#z80hl2 - swp z80hl,z80hl,[r1] + ldr r0,[cpucontext,#z80bc2] + ldr r1,[cpucontext,#z80de2] + ldr r2,[cpucontext,#z80hl2] + str z80bc,[cpucontext,#z80bc2] + str z80de,[cpucontext,#z80de2] + str z80hl,[cpucontext,#z80hl2] + mov z80bc,r0 + mov z80de,r1 + mov z80hl,r2 fetch 4 ;@JP C,$+3 opcode_D_A: