[PATCH] D16917: [mips][micromips] Implement DCLO, DCLZ, DROTR, DROTR32 and DROTRV instructions

Simon Dardis via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 22 03:44:17 PDT 2016


sdardis requested changes to this revision.
sdardis added a comment.
This revision now requires changes to proceed.

Can you rebase and repost this patch?

You should also extend test/CodeGen/Mips/countleading.ll and test/CodeGen/Mips/mips64shift.ll for checking microMIPS64R6 for these instructions.


================
Comment at: lib/Target/Mips/MicroMips64r6InstrFormats.td:118
@@ +117,3 @@
+
+class POOL32S_2RSA5_FM_MMR6<string instr_asm, bits<9> funct> {
+  bits<5> rt;
----------------
Rename this to POOL32S_2R_SA5_FM_MMR6. Putting a '_' between the 2R and SA5 makes it a bit clearer that this class describes a instruction with a 2 register and shift amount of 5 form.

================
Comment at: lib/Target/Mips/Mips64InstrInfo.td:260-261
@@ -257,4 +259,4 @@
 /// Count Leading
 def DCLZ : CountLeading0<"dclz", GPR64Opnd>, CLO_FM<0x24>, ISA_MIPS64_NOT_64R6;
 def DCLO : CountLeading1<"dclo", GPR64Opnd>, CLO_FM<0x25>, ISA_MIPS64_NOT_64R6;
 
----------------
These need to be marked NoInMicroMips too.

================
Comment at: test/MC/Mips/micromips64r6/valid.s:157
@@ -154,1 +156,3 @@
+        drotr32 $1, $2, 4        # CHECK: drotr32 $1, $2, 4       # encoding: [0x58,0x22,0x20,0xc8]
+        drotrv $3, $6, $4        # CHECK: drotrv $3, $6, $4       # encoding: [0x58,0xc4,0x18,0xd0]
 1:
----------------
Please restore the blank line at the end.


http://reviews.llvm.org/D16917





More information about the llvm-commits mailing list