| 304 | } |
| 305 | } |
| 306 | void common_bsrr32e32(CPU* cpu, U32 address, U32 dstReg) { |
| 307 | U32 value=cpu->memory->readd(address); |
| 308 | cpu->fillFlagsNoZF(); |
| 309 | if (value==0) { |
| 310 | cpu->addZF(); |
| 311 | } else { |
| 312 | U32 result = 31; |
| 313 | while ((value & 0x80000000)==0) { result--; value<<=1; } |
| 314 | cpu->removeZF(); |
| 315 | cpu->reg[dstReg].u32=result; |
| 316 | } |
| 317 | } |
no test coverage detected