| 280 | } |
| 281 | } |
| 282 | void common_bsrr16e16(CPU* cpu, U32 address, U32 dstReg) { |
| 283 | U16 value=cpu->memory->readw(address); |
| 284 | cpu->fillFlagsNoZF(); |
| 285 | if (value==0) { |
| 286 | cpu->addZF(); |
| 287 | } else { |
| 288 | U16 result = 15; |
| 289 | while ((value & 0x8000)==0) { result--; value<<=1; } |
| 290 | cpu->removeZF(); |
| 291 | cpu->reg[dstReg].u16=result; |
| 292 | } |
| 293 | } |
| 294 | void common_bsrr32r32(CPU* cpu, U32 srcReg, U32 dstReg) { |
| 295 | U32 value=cpu->reg[srcReg].u32; |
| 296 | cpu->fillFlagsNoZF(); |
no test coverage detected