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); \
} \
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;