diff options
author | Koakuma <koachan@protonmail.com> | 2024-06-09 10:14:50 +0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-06-09 10:14:50 +0700 |
commit | 715a5d8d93a8383e50e9400303313288c0e5b0de (patch) | |
tree | 6cfbf298321cac10505a61d7b743f5732b0a6e04 | |
parent | 44f93578d2508d7d67f7ca3bd1edf2393c19d11c (diff) | |
download | llvm-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.cpp | 11 | ||||
-rw-r--r-- | llvm/test/MC/Sparc/sparcv9-instructions.s | 4 |
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] |