From 3d7682f3af39f449886ef071b7108597d6c74952 Mon Sep 17 00:00:00 2001 From: Duncan Smith Date: Mon, 21 Jun 2010 14:54:22 -0700 Subject: Parted out F_SUB_B to alu_sub. --- alu.asm | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'alu.asm') diff --git a/alu.asm b/alu.asm index 18f5260..22217bb 100644 --- a/alu.asm +++ b/alu.asm @@ -19,3 +19,21 @@ alu_sbc: move.w #$0202,(flag_byte-flag_storage)(a3) pop.l d2 rts + +alu_sub: + ;; SUB instruction + ;; SUB d1,d0 + ;; d1 - d0 -> d1 + ;; sets flags + + ;; XXX use lea and then d(an) if you have a spare register. + ;; preserve operands for flagging + + move.b d0,(f_tmp_src_b-flag_storage)(a3) + move.b d1,(f_tmp_dst_b-flag_storage)(a3) + move.b #1,(f_tmp_byte-flag_storage)(a3) + andi.b #%00000010,(flag_valid-flag_storage)(a3) + move.b #%00000010,(flag_byte-flag_storage)(a3) + sub d0,d1 + move sr,(f_host_sr-flag_storage)(a3) + rts -- cgit v1.2.3