diff runtime.S @ 347:b24556b45d1e

Generate handle_cycle_limit_int at runtime so it can refer to the runtime generated memory map functions
author Mike Pavone <pavone@retrodev.com>
date Tue, 21 May 2013 00:56:56 -0700
parents b46771135442
children 3923dbc2dcc4
line wrap: on
line diff
--- a/runtime.S	Sun May 19 18:40:34 2013 -0700
+++ b/runtime.S	Tue May 21 00:56:56 2013 -0700
@@ -17,59 +17,6 @@
 	pop %rcx
 skip_sync:
 	ret
-
-	.global handle_cycle_limit_int
-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
-	mov 72(%rsi), %edi
-	mov %r15d, 72(%rsi)
-	mov %edi, %r15d
-already_supervisor:
-	/* save PC */
-	sub $4, %r15d
-	mov %r15d, %edi
-	call m68k_write_long_lowfirst
-	/* save status register on stack */
-	sub $2, %r15d
-	mov %r15d, %edi
-	call get_sr
-	call m68k_write_word
-	/* update status register */
-	andb $0xF8, 5(%rsi)
-	mov 92(%rsi), %cl
-	or $0x20, %cl
-	or %cl, 5(%rsi)
-	/* calculate interrupt vector address */
-	mov 92(%rsi), %ecx
-	mov %cx, 6(%rsi) /* interrupt acknowlege */
-	shl $2, %ecx
-	add $0x60, %ecx
-	/* push %rcx
-	call debug_print_sr_int
-	pop %rcx */
-	call m68k_read_long_scratch1
-	call m68k_native_addr_and_sync
-	add $24, %eax
-	/* discard function return address */
-	pop %rdi
-	jmp *%rcx
-	ret
-skip_int:
-	cmp 84(%rsi), %eax
-	jb skip_sync_int
-	call m68k_save_context
-	mov %rsi, %rdi
-	mov %ecx, %esi
-	call sync_components
-	mov %rax, %rsi
-	call m68k_load_context
-skip_sync_int:
-	ret
 	
 sr_msg_int:
 	.asciz "SR set to $%X due to interrupt\n"