[llvm] [AMDGPU] Ensure positive InstOffset for buffer operations (PR #145504)
Shilei Tian via llvm-commits
llvm-commits at lists.llvm.org
Tue Jun 24 06:38:14 PDT 2025
================
@@ -803,6 +803,21 @@ DecodeStatus AMDGPUDisassembler::getInstruction(MCInst &MI, uint64_t &Size,
}
}
+ // Validate buffer offset for GFX12+ - must be positive
+ if ((MCII->get(MI.getOpcode()).TSFlags &
+ (SIInstrFlags::MTBUF | SIInstrFlags::MUBUF)) &&
+ AMDGPU::isGFX12Plus(STI)) {
+ int OffsetIdx =
+ AMDGPU::getNamedOperandIdx(MI.getOpcode(), AMDGPU::OpName::offset);
+ if (OffsetIdx != -1) {
+ uint32_t Imm = MI.getOperand(OffsetIdx).getImm();
+ int64_t SignedOffset = SignExtend64<24>(Imm);
+ if (SignedOffset < 0) {
+ return MCDisassembler::Fail;
+ }
----------------
shiltian wrote:
```suggestion
if (SignedOffset < 0)
return MCDisassembler::Fail;
```
https://github.com/llvm/llvm-project/pull/145504
More information about the llvm-commits
mailing list