Map %fprs to %asr6 in the Sparc assembler parser.
authorJoerg Sonnenberger <joerg@bec.de>
Wed, 19 Aug 2015 13:55:14 +0000 (13:55 +0000)
committerJoerg Sonnenberger <joerg@bec.de>
Wed, 19 Aug 2015 13:55:14 +0000 (13:55 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@245437 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/Sparc/AsmParser/SparcAsmParser.cpp
test/MC/Sparc/sparc-special-registers.s

index 02e9671697aeaf812f329031c85aff9e51066ceb..c96f49e22408602743e389e3fbc1d5a6cd2b2fa4 100644 (file)
@@ -879,6 +879,13 @@ bool SparcAsmParser::matchRegisterName(const AsmToken &Tok,
       return true;
     }
 
+    // %fprs is an alias of %asr6.
+    if (name.equals("fprs")) {
+      RegNo = ASRRegs[6];
+      RegKind = SparcOperand::rk_Special;
+      return true;
+    }
+
     if (name.equals("icc")) {
       RegNo = Sparc::ICC;
       RegKind = SparcOperand::rk_Special;
index 2cb57d720c4f8d2c2dbe3a68733ce58fb3fb5ebc..e78ddcc350548a0a22cb62c61b394eb81db22f24 100644 (file)
@@ -33,3 +33,9 @@
 
         ! CHECK: wr %i0, 5, %tbr          ! encoding: [0x81,0x9e,0x20,0x05]
         wr %i0, 5, %tbr
+
+        ! CHECK: rd %asr6, %i0         ! encoding: [0xb1,0x41,0x80,0x00]
+        rd %fprs, %i0
+
+        ! CHECK: wr %i0, 7, %asr6      ! encoding: [0x8d,0x86,0x20,0x07]
+        wr %i0, 7, %fprs