[Hexagon] Fix range checks for immediate operands
The output assembly (textual) contains the instruction r29 = add(r29,#4294967136) The value 4294967136 is -160 when interpreted as a signed 32-bit integer, so it fits in the range of the immediate operand without a constant extender. The range check in HexagonInstrInfo was putting the operand value into an int variable, reporting no need for an extender. This resulted in a packet with 4 instructions, including the "add". The corresponding check in HexagonMCInstrInfo was using an int64_t variable, causing the range check to fail, and an extender to be emitted when lowering to MCInst, resulting in a packet with too many instructions.
Loading
Please sign in to comment