X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=arm%2Farm_emit.h;h=587ad28fb0ca82a1221e2ce6f0cd9c33c34e3103;hb=e38fee1b96c0b904d7f221a349fb2492258d5789;hp=a270a24d739d969a136b4b9eac5b0215a553c1f9;hpb=bbba320911a86c0ee373f8297f80a2b82de22039;p=gpsp.git diff --git a/arm/arm_emit.h b/arm/arm_emit.h index a270a24..587ad28 100644 --- a/arm/arm_emit.h +++ b/arm/arm_emit.h @@ -1519,7 +1519,6 @@ u32 execute_store_cpsr_body(u32 _cpsr, u32 store_mask, u32 address) thumb_decode_##type(); \ u32 __rn = prepare_load_reg(reg_rn, _rs); \ u32 __rd = prepare_store_reg(reg_rd, _rd); \ - generate_load_reg(reg_rn, _rs); \ thumb_generate_op_##op_type(name, _rd, _rs, _rn); \ complete_store_reg(__rd, _rd); \ } \ @@ -1931,6 +1930,9 @@ void execute_swi_hle_div_thumb(); void execute_swi_hle_div_c() { + if (reg[1] == 0) + // real BIOS supposedly locks up, but game can recover on interrupt + return; s32 result = (s32)reg[0] / (s32)reg[1]; reg[1] = (s32)reg[0] % (s32)reg[1]; reg[0] = result;