| 256 | } |
| 257 | } |
| 258 | void common_bsfr32e32(CPU* cpu, U32 address, U32 dstReg) { |
| 259 | U32 value=cpu->memory->readd(address); |
| 260 | cpu->fillFlagsNoZF(); |
| 261 | if (value==0) { |
| 262 | cpu->addZF(); |
| 263 | } else { |
| 264 | U32 result = 0; |
| 265 | while ((value & 0x01)==0) { result++; value>>=1; } |
| 266 | cpu->removeZF(); |
| 267 | cpu->reg[dstReg].u32=result; |
| 268 | } |
| 269 | } |
| 270 | void common_bsrr16r16(CPU* cpu, U32 srcReg, U32 dstReg) { |
| 271 | U16 value=cpu->reg[srcReg].u16; |
| 272 | cpu->fillFlagsNoZF(); |
no test coverage detected