Arm64Emitter: Add asserts for LDP/STP imm out of range
This commit is contained in:
parent
3e66db2fd7
commit
2d9ea42df2
|
@ -856,6 +856,8 @@ void ARM64XEmitter::EncodeLoadStorePair(u32 op, u32 load, IndexType type, ARM64R
|
||||||
Rt2 = DecodeReg(Rt2);
|
Rt2 = DecodeReg(Rt2);
|
||||||
Rn = DecodeReg(Rn);
|
Rn = DecodeReg(Rn);
|
||||||
|
|
||||||
|
ASSERT_MSG(DYNA_REC, imm >= -64 && imm < 64, "imm too large for load/store pair!");
|
||||||
|
|
||||||
Write32((op << 30) | (0b101 << 27) | (type_encode << 23) | (load << 22) | ((imm & 0x7F) << 15) |
|
Write32((op << 30) | (0b101 << 27) | (type_encode << 23) | (load << 22) | ((imm & 0x7F) << 15) |
|
||||||
(Rt2 << 10) | (Rn << 5) | Rt);
|
(Rt2 << 10) | (Rn << 5) | Rt);
|
||||||
}
|
}
|
||||||
|
@ -2611,6 +2613,8 @@ void ARM64FloatEmitter::EncodeLoadStorePair(u32 size, bool load, IndexType type,
|
||||||
Rt2 = DecodeReg(Rt2);
|
Rt2 = DecodeReg(Rt2);
|
||||||
Rn = DecodeReg(Rn);
|
Rn = DecodeReg(Rn);
|
||||||
|
|
||||||
|
ASSERT_MSG(DYNA_REC, imm >= -64 && imm < 64, "imm too large for load/store pair!");
|
||||||
|
|
||||||
Write32((opc << 30) | (0b1011 << 26) | (type_encode << 23) | (load << 22) | ((imm & 0x7F) << 15) |
|
Write32((opc << 30) | (0b1011 << 26) | (type_encode << 23) | (load << 22) | ((imm & 0x7F) << 15) |
|
||||||
(Rt2 << 10) | (Rn << 5) | Rt);
|
(Rt2 << 10) | (Rn << 5) | Rt);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue