[PATCH] D18387: [LLVM][MC] Fix JR encoding for MIPSR6 ISA
Nitesh Jain via llvm-commits
llvm-commits at lists.llvm.org
Wed Mar 23 02:03:14 PDT 2016
nitesh.jain created this revision.
nitesh.jain added reviewers: dsanders, vkalintiris.
nitesh.jain added subscribers: jaydeep, bhushan, sagar, mohit.bhakkad, llvm-commits.
nitesh.jain set the repository for this revision to rL LLVM.
Herald added a subscriber: dsanders.
As per the MIPS32R6 spec. the assembler should accept JR and map it to JALR encoding. This Patch fix these.
Repository:
rL LLVM
http://reviews.llvm.org/D18387
Files:
lib/Target/Mips/MipsInstrInfo.td
test/MC/Mips/mips32r6/valid.s
test/MC/Mips/mips64r6/valid.s
Index: test/MC/Mips/mips64r6/valid.s
===================================================================
--- test/MC/Mips/mips64r6/valid.s
+++ test/MC/Mips/mips64r6/valid.s
@@ -140,6 +140,8 @@
j 1328 # CHECK: j 1328 # encoding: [0x08,0x00,0x01,0x4c]
jal 21100 # CHECK: jal 21100 # encoding: [0x0c,0x00,0x14,0x9b]
jr.hb $4 # CHECK: jr.hb $4 # encoding: [0x00,0x80,0x04,0x09]
+ jr $ra # CHECK: jr $ra # encoding: [0x03,0xe0,0x00,0x09]
+ jr $25 # CHECK: jr $25 # encoding: [0x03,0x20,0x00,0x09]
jalr.hb $4 # CHECK: jalr.hb $4 # encoding: [0x00,0x80,0xfc,0x09]
jalr.hb $4, $5 # CHECK: jalr.hb $4, $5 # encoding: [0x00,0xa0,0x24,0x09]
jialc $5, 256 # CHECK: jialc $5, 256 # encoding: [0xf8,0x05,0x01,0x00]
Index: test/MC/Mips/mips32r6/valid.s
===================================================================
--- test/MC/Mips/mips32r6/valid.s
+++ test/MC/Mips/mips32r6/valid.s
@@ -161,6 +161,8 @@
j 1328 # CHECK: j 1328 # encoding: [0x08,0x00,0x01,0x4c]
jal 21100 # CHECK: jal 21100 # encoding: [0x0c,0x00,0x14,0x9b]
jr.hb $4 # CHECK: jr.hb $4 # encoding: [0x00,0x80,0x04,0x09]
+ jr $ra # CHECK: jr $ra # encoding: [0x03,0xe0,0x00,0x09]
+ jr $25 # CHECK: jr $25 # encoding: [0x03,0x20,0x00,0x09]
jalr.hb $4 # CHECK: jalr.hb $4 # encoding: [0x00,0x80,0xfc,0x09]
jalr.hb $4, $5 # CHECK: jalr.hb $4, $5 # encoding: [0x00,0xa0,0x24,0x09]
ldc2 $8, -701($at) # CHECK: ldc2 $8, -701($1) # encoding: [0x49,0xc8,0x0d,0x43]
Index: lib/Target/Mips/MipsInstrInfo.td
===================================================================
--- lib/Target/Mips/MipsInstrInfo.td
+++ lib/Target/Mips/MipsInstrInfo.td
@@ -1660,7 +1660,7 @@
/// Jump and Branch Instructions
def J : MMRel, JumpFJ<jmptarget, "j", br, bb, "j">, FJ<2>,
AdditionalRequires<[RelocStatic]>, IsBranch;
-def JR : MMRel, IndirectBranch<"jr", GPR32Opnd>, MTLO_FM<8>;
+def JR : MMRel, IndirectBranch<"jr", GPR32Opnd>, MTLO_FM<8>, ISA_MIPS1_NOT_32R6_64R6;
def BEQ : MMRel, CBranch<"beq", brtarget, seteq, GPR32Opnd>, BEQ_FM<4>;
def BEQL : MMRel, CBranch<"beql", brtarget, seteq, GPR32Opnd, 0>,
BEQ_FM<20>, ISA_MIPS2_NOT_32R6_64R6;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D18387.51390.patch
Type: text/x-patch
Size: 2708 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160323/f719786f/attachment.bin>
More information about the llvm-commits
mailing list