aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/Mips/Mips64InstrInfo.td
diff options
context:
space:
mode:
authorJack Carter <jcarter@mips.com>2012-08-31 18:06:48 +0000
committerJack Carter <jcarter@mips.com>2012-08-31 18:06:48 +0000
commit3185f9a2ea80afec30064b7cd095f82c31dc154e (patch)
tree00e44379ea6fc446b71b0e8fcba494ef4996add7 /lib/Target/Mips/Mips64InstrInfo.td
parente4fb6eae9997e80bfedb251ca3251cbed884d4ff (diff)
downloadexternal_llvm-3185f9a2ea80afec30064b7cd095f82c31dc154e.zip
external_llvm-3185f9a2ea80afec30064b7cd095f82c31dc154e.tar.gz
external_llvm-3185f9a2ea80afec30064b7cd095f82c31dc154e.tar.bz2
The instruction DINS may be transformed into DINSU or DEXTM depending
on the size of the extraction and its position in the 64 bit word. This patch allows support of the dext transformations with mips64 direct object output. 0 <= msb < 32 0 <= lsb < 32 0 <= pos < 32 1 <= size <= 32 DINS The field is entirely contained in the right-most word of the doubleword 32 <= msb < 64 0 <= lsb < 32 0 <= pos < 32 2 <= size <= 64 DINSM The field straddles the words of the doubleword 32 <= msb < 64 32 <= lsb < 64 32 <= pos < 64 1 <= size <= 32 DINSU The field is entirely contained in the left-most word of the doubleword git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163010 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/Mips/Mips64InstrInfo.td')
-rw-r--r--lib/Target/Mips/Mips64InstrInfo.td4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/Target/Mips/Mips64InstrInfo.td b/lib/Target/Mips/Mips64InstrInfo.td
index 3666725..147be5d 100644
--- a/lib/Target/Mips/Mips64InstrInfo.td
+++ b/lib/Target/Mips/Mips64InstrInfo.td
@@ -222,6 +222,10 @@ let Pattern = []<dag> in {
def DEXTM : ExtBase<1, "dextm", CPU64Regs>;
}
def DINS : InsBase<7, "dins", CPU64Regs>;
+let Pattern = []<dag> in {
+ def DINSU : InsBase<6, "dinsu", CPU64Regs>;
+ def DINSM : InsBase<5, "dinsm", CPU64Regs>;
+}
let isCodeGenOnly = 1, rs = 0, shamt = 0 in {
def DSLL64_32 : FR<0x00, 0x3c, (outs CPU64Regs:$rd), (ins CPURegs:$rt),