summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAstrid Smith2011-10-20 23:11:54 -0700
committerAstrid Smith2011-10-20 23:11:54 -0700
commitef89049eae1d7e2591bef44a3e8151131fb4bed2 (patch)
tree249591a3ea8bb11c9ec3e29a5d0f6c53ad6199a1
parentbc73dcf297780bad3b84666619ee1ebedb0c4792 (diff)
More size fixes
Now A68k is happy, but ld-tigcc chokes on its output.
-rw-r--r--flags.asm2
-rw-r--r--main.asm2
-rw-r--r--opcodes.asm.m414
3 files changed, 12 insertions, 6 deletions
diff --git a/flags.asm b/flags.asm
index 343e8a6..6282336 100644
--- a/flags.asm
+++ b/flags.asm
@@ -95,7 +95,7 @@ FNPV_ok:
f_calc_parity:
andi.w #$ff,d1
move.b lut_parity-flag_storage(a3,d1.w),d1
- move.w flag_byte(pc),d0
+ move.b (flag_byte),d0
and.b #%11110111,d0
or.w #%0000100000000000,d0
or.b d1,d0
diff --git a/main.asm b/main.asm
index cde9e89..76b84fe 100644
--- a/main.asm
+++ b/main.asm
@@ -54,7 +54,7 @@ __main:
lea emu_plain_op,a5
;; ... aaaaand we're off!
- bsr emu_run
+ jsr emu_run
bsr emu_teardown
bsr display_teardown
diff --git a/opcodes.asm.m4 b/opcodes.asm.m4
index 26c2425..c88f728 100644
--- a/opcodes.asm.m4
+++ b/opcodes.asm.m4
@@ -3366,7 +3366,9 @@ OP_ED(c1,«»)
;; PC <- immed.w
OPCODE(c2,«
jsr f_norm_z
- beq.s emu_op_c3
+ bne local(continue)
+ jmp emu_op_c3 ; shame this has to be a long jump
+local(continue):
add.l #2,epc
»)
;nok
@@ -3462,7 +3464,9 @@ OP_ED(c7,«»)
;; RET Z
OPCODE(c8,«
jsr f_norm_z
- bne.s emu_op_c9
+ beq local(continue)
+ jmp emu_op_c9 ; shame this has to be a long jump
+local(continue):
»)
;nok
@@ -3522,7 +3526,9 @@ OP_ED(cb,«»)
;; CALL Z,immed.w
OPCODE(cc,«
jsr f_norm_z
- bne.s emu_op_cd
+ beq local(continue)
+ jmp emu_op_cd
+local(continue):
add.l #2,epc
»)
;nok
@@ -4134,7 +4140,7 @@ OP_ED(f3,«»)
OPCODE(f5,«
jsr flags_normalize
LOHI eaf
- move.b flag_byte(pc),eaf
+ move.b (flag_byte),eaf
;; XXX wrong, af is not normalized by flags_normalize?
HILO eaf
PUSHW eaf