aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKoakuma <koachan@protonmail.com>2024-06-09 10:14:50 +0700
committerGitHub <noreply@github.com>2024-06-09 10:14:50 +0700
commit715a5d8d93a8383e50e9400303313288c0e5b0de (patch)
tree6cfbf298321cac10505a61d7b743f5732b0a6e04
parent44f93578d2508d7d67f7ca3bd1edf2393c19d11c (diff)
downloadllvm-715a5d8d93a8383e50e9400303313288c0e5b0de.zip
llvm-715a5d8d93a8383e50e9400303313288c0e5b0de.tar.gz
llvm-715a5d8d93a8383e50e9400303313288c0e5b0de.tar.bz2
[SPARC][IAS] Add aliases for %asr20-21 as defined in JPS1
This adds %set_softint and %clear_softint alias for %asr20 and %asr21 as defined in JPS1. Reviewers: jrtc27, brad0, s-barannikov, rorth Reviewed By: s-barannikov Pull Request: https://github.com/llvm/llvm-project/pull/94247
-rw-r--r--llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp11
-rw-r--r--llvm/test/MC/Sparc/sparcv9-instructions.s4
2 files changed, 13 insertions, 2 deletions
diff --git a/llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp b/llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp
index 185b2fe..e4f5c64 100644
--- a/llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp
+++ b/llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp
@@ -1384,12 +1384,11 @@ MCRegister SparcAsmParser::matchRegisterName(const AsmToken &Tok,
}
// JPS1 extension - aliases for ASRs
- // Section A.51 - Read State Register
+ // Section 5.2.11 - Ancillary State Registers (ASRs)
if (Name == "pcr") {
RegKind = SparcOperand::rk_Special;
return SP::ASR16;
}
-
if (Name == "pic") {
RegKind = SparcOperand::rk_Special;
return SP::ASR17;
@@ -1402,6 +1401,14 @@ MCRegister SparcAsmParser::matchRegisterName(const AsmToken &Tok,
RegKind = SparcOperand::rk_Special;
return SP::ASR19;
}
+ if (Name == "set_softint") {
+ RegKind = SparcOperand::rk_Special;
+ return SP::ASR20;
+ }
+ if (Name == "clear_softint") {
+ RegKind = SparcOperand::rk_Special;
+ return SP::ASR21;
+ }
if (Name == "softint") {
RegKind = SparcOperand::rk_Special;
return SP::ASR22;
diff --git a/llvm/test/MC/Sparc/sparcv9-instructions.s b/llvm/test/MC/Sparc/sparcv9-instructions.s
index b947243..d461c82 100644
--- a/llvm/test/MC/Sparc/sparcv9-instructions.s
+++ b/llvm/test/MC/Sparc/sparcv9-instructions.s
@@ -502,6 +502,10 @@
wr %i0, %i1, %ccr
! V9: wr %i0, 1, %ccr ! encoding: [0x85,0x86,0x20,0x01]
wr %i0, 1, %ccr
+ ! V9: wr %i0, 1, %asr20 ! encoding: [0xa9,0x86,0x20,0x01]
+ wr %i0, 1, %set_softint
+ ! V9: wr %i0, 1, %asr21 ! encoding: [0xab,0x86,0x20,0x01]
+ wr %i0, 1, %clear_softint
! V9: st %o1, [%o0] ! encoding: [0xd2,0x22,0x00,0x00]
stw %o1, [%o0]