{
u32 store_count = 0;
u32 left_shift = 0;
- u32 i;
// Otherwise it'll return 0 things to store because it'll never
// find anything.
{
// Then we can throw out the last bit and tack it on
// to the first bit.
- u32 initial_bits = rotations[0];
stores[0] =
(stores[0] << ((top_bits + (32 - rotations[0])) & 0x1F)) |
((imm >> left_shift) & 0xFF);
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;