diff runtime.S @ 545:67cf0ce57d8d

Generate handle_cycle_limit at runtime so it can use the generated save/load_context functions. Since the hand written versions of save/load are no longer used they have been removed.
author Michael Pavone <pavone@retrodev.com>
date Sun, 16 Feb 2014 19:54:27 -0800
parents 8a26567852b7
children 3090d016c9e9
line wrap: on
line diff
--- a/runtime.S	Sun Feb 16 19:21:39 2014 -0800
+++ b/runtime.S	Sun Feb 16 19:54:27 2014 -0800
@@ -1,30 +1,4 @@
 
-	.global handle_cycle_limit
-	.global do_sync
-handle_cycle_limit:
-	cmp 84(%rsi), %eax
-	jb skip_sync
-do_sync:
-	push %rcx
-	push %rdi
-	call m68k_save_context
-	mov %rsi, %rdi
-	xor %esi, %esi
-	test $8, %esp
-	jnz adjust_rsp
-	call sync_components
-	jmp done_adjust
-adjust_rsp:
-	sub $8, %rsp
-	call sync_components
-	add $8, %rsp
-done_adjust:
-	mov %rax, %rsi
-	call m68k_load_context
-	pop %rdi
-	pop %rcx
-skip_sync:
-	ret
 
 invalid_msg:
 	.asciz "Invalid instruction at %X\n"
@@ -149,38 +123,3 @@
 	mov %cl, (%rsi)
 	ret
 
-	.global m68k_save_context
-m68k_save_context:
-	mov %bl, 1(%rsi) /* N Flag */
-	mov %dl, 2(%rsi) /* Z flag */
-	mov %bh, 3(%rsi) /* V flag */
-	mov %dh, 4(%rsi) /* C flag */
-	mov %r10d, 8(%rsi) /* d0 */
-	mov %r11d, 12(%rsi) /* d1 */
-	mov %r12d, 16(%rsi) /* d2 */
-	mov %r8d,  20(%rsi) /* d3 */
-	mov %r13d, 40(%rsi) /* a0 */
-	mov %r14d, 44(%rsi) /* a1 */
-	mov %r9d,  48(%rsi) /* a2 */
-	mov %r15d, 68(%rsi) /* a7 */
-	mov %eax, 80(%rsi) /* current cycle count */
-	ret
-
-	.global m68k_load_context
-m68k_load_context:
-	mov 1(%rsi), %bl /* N Flag */
-	mov 2(%rsi), %dl /* Z flag */
-	mov 3(%rsi), %bh /* V flag */
-	mov 4(%rsi), %dh /* C flag */
-	mov 8(%rsi), %r10d /* d0 */
-	mov 12(%rsi), %r11d /* d1 */
-	mov 16(%rsi), %r12d /* d2 */
-	mov 20(%rsi), %r8d  /* d3 */
-	mov 40(%rsi), %r13d /* a0 */
-	mov 44(%rsi), %r14d /* a1 */
-	mov 48(%rsi), %r9d  /* a2 */
-	mov 68(%rsi), %r15d /* a7 */
-	mov 76(%rsi), %ebp /* target cycle count */
-	mov 80(%rsi), %eax /* current cycle count */
-	ret
-