changeset 251:4a7ac10ac2d9

Fix target cycle count after 68K interrupt
author Mike Pavone <pavone@retrodev.com>
date Mon, 29 Apr 2013 01:14:24 -0700
parents 5f1b68cecfc7
children 63b9a500a00b
files runtime.S
diffstat 1 files changed, 4 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/runtime.S	Mon Apr 29 00:59:50 2013 -0700
+++ b/runtime.S	Mon Apr 29 01:14:24 2013 -0700
@@ -18,6 +18,7 @@
 handle_cycle_limit_int:
 	cmp 88(%rsi), %eax
 	jb skip_int
+	mov 84(%rsi), %ebp
 	/* swap USP and SSP if not already in supervisor mode */
 	bt $5, 5(%rsi)
 	jc already_supervisor
@@ -444,9 +445,9 @@
 	jmp m68k_write_word
 	
 inccycles:
-	cmp %rbp, %rax
+	cmp %ebp, %eax
 	jnb do_limit
-	add $4, %rax
+	add $4, %eax
 	ret
 do_limit:
 	push %rcx
@@ -454,7 +455,7 @@
 	call handle_cycle_limit
 	pop %rdi
 	pop %rcx
-	add $4, %rax
+	add $4, %eax
 	ret
 
 	.global m68k_read_word_scratch1