[PATCH] D12628: [mips][microMIPS] Implement PAUSE, RDHWR, RDPGPR, SDBBP, SIGRIE, SSNOP, SYNC, SYNCI and WAIT instructions

Hrvoje Varga via llvm-commits llvm-commits at lists.llvm.org
Fri Oct 16 01:02:49 PDT 2015


hvarga added inline comments.

================
Comment at: lib/Target/Mips/MicroMipsInstrInfo.td:945
@@ -944,3 +944,3 @@
   def TLBWR_MM : MMRel, TLB<"tlbwr">, COP0_TLB_FM_MM<0xcd>;
 
   def SDBBP_MM : MMRel, SYS_FT<"sdbbp">, SDBBP_FM_MM;
----------------
I don't know why I changed the TLBWR_MM. This was a mistake. Probably I was trying experimenting with something unrelated. Thank you for pointing this out.

================
Comment at: test/MC/Mips/micromips-control-instructions.s:14
@@ -13,6 +13,3 @@
 # CHECK-EL:    sdbbp 34                   # encoding: [0x22,0x00,0x7c,0xdb]
-# CHECK-EL:    .set push
-# CHECK-EL:    .set mips32r2
-# CHECK-EL:    rdhwr $5, $29
-# CHECK-EL:    .set pop                   # encoding: [0xbd,0x00,0x3c,0x6b]
+# CHECK-EL:    rdhwr $5, $29              # encoding: [0xbd,0x00,0x3c,0x6b]
 # CHECK-EL:    cache 1, 8($5)             # encoding: [0x25,0x20,0x08,0x60]
----------------
According to https://dmz-portal.mips.com/bugz/show_bug.cgi?id=459, mips32r2 version of RDHWR emits those directives in mips32 mode. I had a disscussion with zoran.jovanovic quite some time ago and we agreed that there is no need for micromips version of RDHWR to emit those instructions.

This also helped me to implement the RDHWR for micromips32r6 just by setting NotInMicroMips in AdditionalPredicates for RDHWR definition in lib/Target/Mips/MipsInstrInfo.td. So by setting this I also removed directives that were expected for RDHWR assembler test in test/MC/Mips/micromips-control-instructions.s


http://reviews.llvm.org/D12628





More information about the llvm-commits mailing list