diff runtime.S @ 86:3d3966c254b2

RTE doesn't crash the emulator anymore
author Mike Pavone <pavone@retrodev.com>
date Wed, 26 Dec 2012 18:20:23 -0800
parents 1db2a0b655d1
children 60b5c9e2f4e0
line wrap: on
line diff
--- a/runtime.S	Wed Dec 26 17:50:24 2012 -0800
+++ b/runtime.S	Wed Dec 26 18:20:23 2012 -0800
@@ -268,10 +268,12 @@
 	.global m68k_write_long_lowfirst
 m68k_write_long_lowfirst:
 	push %rdi
+	push %rcx
 	add $2, %edi
 	call m68k_write_word
+	pop %rcx
+	pop %rdi
 	shr $16, %ecx
-	pop %rdi
 	jmp m68k_write_word
 
 	.global m68k_write_long_highfirst
@@ -391,8 +393,8 @@
 dyn_addr_msg:
 	.asciz "Program needs dynamically calculated native address\n"
 	
-	.global m68k_native_addr
-m68k_native_addr:
+	.global m68k_native_addr_and_sync
+m68k_native_addr_and_sync:
 	call m68k_save_context
 	push %rcx
 	mov %rsi, %rdi
@@ -406,8 +408,8 @@
 	call m68k_load_context
 	ret
 
-	.global m68k_native_addr_and_sync
-m68k_native_addr_and_sync:
+	.global m68k_native_addr
+m68k_native_addr:
 	call m68k_save_context
 	push %rsi
 	mov 144(%rsi), %rdi