[PATCH] D157232: [SPARC][IAS] Add v9 encoding of %fq
Koakuma via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sun Aug 6 07:12:20 PDT 2023
koakuma created this revision.
koakuma added reviewers: brad, barannikov88, jrtc27, arsenm.
Herald added subscribers: fedor.sergeev, hiraditya, jyknight.
Herald added a project: All.
koakuma requested review of this revision.
Herald added subscribers: llvm-commits, wdng.
Herald added a project: LLVM.
While both SPARCv7/v8 and v9 has a register named `%fq`, they encode it differently, so we need to differentiate between them.
Depends on D157231 <https://reviews.llvm.org/D157231>
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D157232
Files:
llvm/lib/Target/Sparc/SparcInstrInfo.td
llvm/test/MC/Sparc/sparcv9-instructions.s
Index: llvm/test/MC/Sparc/sparcv9-instructions.s
===================================================================
--- llvm/test/MC/Sparc/sparcv9-instructions.s
+++ llvm/test/MC/Sparc/sparcv9-instructions.s
@@ -416,6 +416,10 @@
! V9: rdpr %wstate, %i5 ! encoding: [0xbb,0x53,0x80,0x00]
rdpr %wstate,%i5
+ ! V8: error: instruction requires a CPU feature not currently enabled
+ ! V8-NEXT: rdpr %fq,%i5
+ ! V9: rdpr %fq, %i5 ! encoding: [0xbb,0x53,0xc0,0x00]
+ rdpr %fq,%i5
! V8: error: instruction requires a CPU feature not currently enabled
! V8-NEXT: rdpr %ver,%i5
! V9: rdpr %ver, %i5 ! encoding: [0xbb,0x57,0xc0,0x00]
Index: llvm/lib/Target/Sparc/SparcInstrInfo.td
===================================================================
--- llvm/lib/Target/Sparc/SparcInstrInfo.td
+++ llvm/lib/Target/Sparc/SparcInstrInfo.td
@@ -1769,6 +1769,15 @@
def RDPR : F3_1<2, 0b101010,
(outs IntRegs:$rd), (ins PRRegs:$rs1),
"rdpr $rs1, $rd", []>;
+
+// Special case %fq as the register is also used in V8
+// (albeit with different instructions and encoding)
+// This allows us to reuse the register definition and
+// the "%fq" designation while giving it a different encoding.
+let Uses = [FQ], rs1 = 15, rs2 = 0 in
+ def RDFQ : F3_1<2, 0b101010,
+ (outs IntRegs:$rd), (ins),
+ "rdpr %fq, $rd", []>;
}
// Section A.62 - Write Privileged Register Instructions
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D157232.547580.patch
Type: text/x-patch
Size: 1547 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230806/bfe07d5d/attachment.bin>
More information about the llvm-commits
mailing list