[llvm] r190232 - [mips] Add definition of instruction "drotr32" (double rotate right plus 32).
Akira Hatanaka
ahatanaka at mips.com
Fri Sep 6 17:18:01 PDT 2013
Author: ahatanak
Date: Fri Sep 6 19:18:01 2013
New Revision: 190232
URL: http://llvm.org/viewvc/llvm-project?rev=190232&view=rev
Log:
[mips] Add definition of instruction "drotr32" (double rotate right plus 32).
Modified:
llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp
llvm/trunk/lib/Target/Mips/Mips64InstrInfo.td
llvm/trunk/test/MC/Mips/mips64-alu-instructions.s
Modified: llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp?rev=190232&r1=190231&r2=190232&view=diff
==============================================================================
--- llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp (original)
+++ llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp Fri Sep 6 19:18:01 2013
@@ -155,6 +155,9 @@ static void LowerLargeShift(MCInst& Inst
case Mips::DSRA:
Inst.setOpcode(Mips::DSRA32);
return;
+ case Mips::DROTR:
+ Inst.setOpcode(Mips::DROTR32);
+ return;
}
}
@@ -206,6 +209,7 @@ EncodeInstruction(const MCInst &MI, raw_
case Mips::DSLL:
case Mips::DSRL:
case Mips::DSRA:
+ case Mips::DROTR:
LowerLargeShift(TmpInst);
break;
// Double extract instruction is chosen by pos and size operands
Modified: llvm/trunk/lib/Target/Mips/Mips64InstrInfo.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mips/Mips64InstrInfo.td?rev=190232&r1=190231&r2=190232&view=diff
==============================================================================
--- llvm/trunk/lib/Target/Mips/Mips64InstrInfo.td (original)
+++ llvm/trunk/lib/Target/Mips/Mips64InstrInfo.td Fri Sep 6 19:18:01 2013
@@ -111,6 +111,7 @@ let Predicates = [HasMips64r2, HasStdEnc
SRA_FM<0x3a, 1>;
def DROTRV : shift_rotate_reg<"drotrv", GPR64Opnd, rotr>,
SRLV_FM<0x16, 1>;
+ def DROTR32 : shift_rotate_imm<"drotr32", uimm5, GPR64Opnd>, SRA_FM<0x3e, 1>;
}
/// Load and Store Instructions
Modified: llvm/trunk/test/MC/Mips/mips64-alu-instructions.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/Mips/mips64-alu-instructions.s?rev=190232&r1=190231&r2=190232&view=diff
==============================================================================
--- llvm/trunk/test/MC/Mips/mips64-alu-instructions.s (original)
+++ llvm/trunk/test/MC/Mips/mips64-alu-instructions.s Fri Sep 6 19:18:01 2013
@@ -1,4 +1,4 @@
-# RUN: llvm-mc %s -triple=mipsel-unknown-linux -show-encoding -mcpu=mips64r2 | FileCheck %s
+# RUN: llvm-mc %s -triple=mips64el-unknown-linux -show-encoding -mcpu=mips64r2 | FileCheck %s
# Check that the assembler can handle the documented syntax
# for arithmetic and logical instructions.
#------------------------------------------------------------------------------
@@ -73,6 +73,8 @@
# CHECK: daddiu $9, $6, -15001 # encoding: [0x67,0xc5,0xc9,0x64]
# CHECK: daddiu $9, $9, -15001 # encoding: [0x67,0xc5,0x29,0x65]
# CHECK: daddu $9, $6, $7 # encoding: [0x2d,0x48,0xc7,0x00]
+# CHECK: drotr $9, $6, 20 # encoding: [0x3a,0x4d,0x26,0x00]
+# CHECK: drotr32 $9, $6, 52 # encoding: [0x3e,0x4d,0x26,0x00]
# CHECK: madd $6, $7 # encoding: [0x00,0x00,0xc7,0x70]
# CHECK: maddu $6, $7 # encoding: [0x01,0x00,0xc7,0x70]
# CHECK: msub $6, $7 # encoding: [0x04,0x00,0xc7,0x70]
@@ -94,6 +96,8 @@
daddiu $9,$6,-15001
daddiu $9,-15001
daddu $9,$6,$7
+ drotr $9, $6, 20
+ drotr32 $9, $6, 52
madd $6,$7
maddu $6,$7
msub $6,$7
More information about the llvm-commits
mailing list