fix(relinker): decode EMMS without a ModRM byte
This commit is contained in:
parent
64066b6e9a
commit
ee57519cb0
|
|
@ -130,6 +130,7 @@ inline constexpr std::uint8_t TwoByteModRmRangeFMin = 0x38;
|
|||
inline constexpr std::uint8_t TwoByteModRmRangeFMax = 0x3A;
|
||||
inline constexpr std::uint8_t TwoByteModRmRangeGMin = 0x54;
|
||||
inline constexpr std::uint8_t TwoByteModRmRangeGMax = 0x7F;
|
||||
inline constexpr std::uint8_t TwoByteEmms = 0x77;
|
||||
inline constexpr std::uint8_t TwoByteModRmRangeHMin = 0xD0;
|
||||
inline constexpr std::uint8_t TwoByteModRmRangeHMax = 0xFE;
|
||||
inline constexpr std::uint8_t TwoByteNopModRm = 0x1F;
|
||||
|
|
|
|||
|
|
@ -252,7 +252,7 @@ std::size_t X64InstructionDecoder::Decode(const std::uint8_t* data, std::size_t
|
|||
(opcode >= TwoByteModRmRangeCMin && opcode <= TwoByteModRmRangeCMax) ||
|
||||
(opcode >= TwoByteModRmRangeDMin && opcode <= TwoByteModRmRangeDMax) ||
|
||||
(opcode >= TwoByteModRmRangeEMin && opcode <= TwoByteModRmRangeEMax) ||
|
||||
(opcode >= TwoByteModRmRangeGMin && opcode <= TwoByteModRmRangeGMax) ||
|
||||
(opcode >= TwoByteModRmRangeGMin && opcode <= TwoByteModRmRangeGMax && opcode != TwoByteEmms) ||
|
||||
(opcode >= TwoByteModRmRangeHMin && opcode <= TwoByteModRmRangeHMax) ||
|
||||
(opcode >= TwoByteModRmRangeIMin && opcode <= TwoByteModRmRangeIMax) ||
|
||||
(opcode >= TwoBytePrefetchGrpMin && opcode <= TwoBytePrefetchGrpMax) ||
|
||||
|
|
|
|||
Loading…
Reference in New Issue