[llvm-branch-commits] [llvm] release/23.x: [SPARC][IAS] Adjust bounds check in %rX name parsing (#218301) (PR #218333)
via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Sun Aug 23 23:38:22 PDT 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-backend-sparc
Author: llvmbot
<details>
<summary>Changes</summary>
Backport e013a0f906630d014e04824681b32daa45812c7c
Requested by: @<!-- -->brad0
---
Full diff: https://github.com/llvm/llvm-project/pull/218333.diff
2 Files Affected:
- (modified) llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp (+1-1)
- (modified) llvm/test/MC/Sparc/sparc-alu-instructions.s (+2)
``````````diff
diff --git a/llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp b/llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp
index f6b8e0af67150..bab05f5e0ada8 100644
--- a/llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp
+++ b/llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp
@@ -1591,7 +1591,7 @@ MCRegister SparcAsmParser::matchRegisterName(const AsmToken &Tok,
// %r0 - %r31
int64_t RegNo = 0;
if (Name.starts_with_insensitive("r") &&
- !Name.substr(1, 2).getAsInteger(10, RegNo) && RegNo < 31) {
+ !Name.substr(1, 2).getAsInteger(10, RegNo) && RegNo <= 31) {
RegKind = SparcOperand::rk_IntReg;
return IntRegs[RegNo];
}
diff --git a/llvm/test/MC/Sparc/sparc-alu-instructions.s b/llvm/test/MC/Sparc/sparc-alu-instructions.s
index 98a3dc22b7799..903eb52034f61 100644
--- a/llvm/test/MC/Sparc/sparc-alu-instructions.s
+++ b/llvm/test/MC/Sparc/sparc-alu-instructions.s
@@ -9,6 +9,8 @@
add %r8, %r9, %l0
! CHECK: add %o0, 10, %l0 ! encoding: [0xa0,0x02,0x20,0x0a]
add %o0, 10, %l0
+ ! CHECK: add %g0, %o7, %i7 ! encoding: [0xbe,0x00,0x00,0x0f]
+ add %r0, %r15, %r31
! CHECK: addcc %g1, %g2, %g3 ! encoding: [0x86,0x80,0x40,0x02]
addcc %g1, %g2, %g3
``````````
</details>
https://github.com/llvm/llvm-project/pull/218333
More information about the llvm-branch-commits
mailing list