From 8cb5c5eff2d625be6fd2b4b78a2c167d29c79cb3 Mon Sep 17 00:00:00 2001 From: SarahW Date: Sat, 27 Apr 2019 12:47:45 +0100 Subject: [PATCH] Fixed register typo in 0x81 NO_IMMEDIATES ADC/SBB. Fixes SB audio in Worms. --- src/codegen_ops_arith.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/codegen_ops_arith.c b/src/codegen_ops_arith.c index 08bb5f1..2127c57 100644 --- a/src/codegen_ops_arith.c +++ b/src/codegen_ops_arith.c @@ -1953,12 +1953,12 @@ uint32_t rop81_l(codeblock_t *block, ir_data_t *ir, uint8_t opcode, uint32_t fet break; case 0x10: /*ADC*/ - get_cf(ir, IREG_temp2); + get_cf(ir, IREG_temp3); if (block->flags & CODEBLOCK_NO_IMMEDIATES) uop_ADD(ir, IREG_temp1, IREG_temp0, IREG_temp2); else uop_ADD_IMM(ir, IREG_temp1, IREG_temp0, imm); - uop_ADD(ir, IREG_temp1, IREG_temp1, IREG_temp2); + uop_ADD(ir, IREG_temp1, IREG_temp1, IREG_temp3); uop_MEM_STORE_REG(ir, ireg_seg_base(target_seg), IREG_eaaddr, IREG_temp1); uop_MOV(ir, IREG_flags_op1, IREG_temp0); if (block->flags & CODEBLOCK_NO_IMMEDIATES) @@ -1970,12 +1970,12 @@ uint32_t rop81_l(codeblock_t *block, ir_data_t *ir, uint8_t opcode, uint32_t fet break; case 0x18: /*SBB*/ - get_cf(ir, IREG_temp2); + get_cf(ir, IREG_temp3); if (block->flags & CODEBLOCK_NO_IMMEDIATES) uop_SUB(ir, IREG_temp1, IREG_temp0, IREG_temp2); else uop_SUB_IMM(ir, IREG_temp1, IREG_temp0, imm); - uop_SUB(ir, IREG_temp1, IREG_temp1, IREG_temp2); + uop_SUB(ir, IREG_temp1, IREG_temp1, IREG_temp3); uop_MEM_STORE_REG(ir, ireg_seg_base(target_seg), IREG_eaaddr, IREG_temp1); uop_MOV(ir, IREG_flags_op1, IREG_temp0); if (block->flags & CODEBLOCK_NO_IMMEDIATES)