From 5e36765df09585ec20587299f3cd2f6b3c93a443 Mon Sep 17 00:00:00 2001 From: Duncan Smith Date: Sat, 26 Jun 2010 13:44:07 -0700 Subject: Parted out ADD macro-instruction --- alu.asm | 14 ++++++++++++++ opcodes.asm | 10 ++++------ 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/alu.asm b/alu.asm index 22217bb..8fa4271 100644 --- a/alu.asm +++ b/alu.asm @@ -1,6 +1,20 @@ ;; Parting out the big math/logic routines from the ;; instruction dispatch table. +alu_add: + ;; ADD instruction + ;; ADD d1,d0 + ;; d1 + d0 -> d1 + move.b d0,f_tmp_src_b ; preserve operands for flag work + move.b d1,f_tmp_dst_b + move.b #1,(f_tmp_byte-flag_storage)(a3) + add d0,d1 + move sr,(f_host_sr-flag_storage)(a3) + move.w #0202,(flag_byte-flag_storage)(a3) + rts + +alu_adc: + alu_sbc: ;; SBC instruction ;; SBC d1,d0 diff --git a/opcodes.asm b/opcodes.asm index fca259c..9154ec4 100644 --- a/opcodes.asm +++ b/opcodes.asm @@ -1222,12 +1222,10 @@ emu_op_7f: ;; XXX check this ;; XXX make it shorter ... D: F_ADD_B MACRO ; 14 bytes? - move.b \1,f_tmp_src_b ; preserve operands for flag work - move.b \2,f_tmp_dst_b - move.b #1,(f_tmp_byte-flag_storage)(a3) - add \1,\2 - move sr,(f_host_sr-flag_storage)(a3) - move.w #0202,(flag_byte-flag_storage)(a3) + move.b \2,d1 + move.b \1,d0 + bsr alu_add + move.b d1,\2 ENDM START -- cgit v1.2.3