+ ldmfd sp!,{r8,r9,pc}\r
+\r
+z80_xmap_rebase_pc:\r
+ ldr r1,[cpucontext,#z80_read8]\r
+ mov r2,r0,lsr #Z80_MEM_SHIFT\r
+ ldr r1,[r1,r2,lsl #2]\r
+ movs r1,r1,lsl #1\r
+ strcc r1,[cpucontext,#z80pc_base]\r
+ addcc z80pc,r1,r0\r
+ bxcc lr\r
+\r
+z80_bad_jump:\r
+ stmfd sp!,{r3,r12,lr}\r
+ mov lr,pc\r
+ ldr pc,[cpucontext,#z80_rebasePC]\r
+ mov z80pc,r0\r
+ ldmfd sp!,{r3,r12,pc}\r
+\r
+z80_xmap_rebase_sp:\r
+ ldr r1,[cpucontext,#z80_read8]\r
+ sub r2,r0,#1\r
+ mov r2,r2,lsl #16\r
+ mov r2,r2,lsr #(Z80_MEM_SHIFT+16)\r
+ ldr r1,[r1,r2,lsl #2]\r
+ movs r1,r1,lsl #1\r
+ strcc r1,[cpucontext,#z80sp_base]\r
+ addcc z80sp,r1,r0\r
+ bxcc lr\r
+\r
+ stmfd sp!,{r3,r12,lr}\r
+ mov lr,pc\r
+ ldr pc,[cpucontext,#z80_rebaseSP]\r
+ mov z80sp,r0\r
+ ldmfd sp!,{r3,r12,pc}\r
+ \r
+.endif @ DRZ80_XMAP\r