OSDN Git Service

The instruction DINS may be transformed into DINSU or DEXTM depending
authorJack Carter <jcarter@mips.com>
Fri, 31 Aug 2012 18:06:48 +0000 (18:06 +0000)
committerJack Carter <jcarter@mips.com>
Fri, 31 Aug 2012 18:06:48 +0000 (18:06 +0000)
commit3185f9a2ea80afec30064b7cd095f82c31dc154e
tree00e44379ea6fc446b71b0e8fcba494ef4996add7
parente4fb6eae9997e80bfedb251ca3251cbed884d4ff
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
lib/Target/Mips/Mips64InstrInfo.td
lib/Target/Mips/MipsAsmPrinter.cpp
lib/Target/Mips/MipsMCInstLower.cpp
lib/Target/Mips/MipsMCInstLower.h
test/MC/Mips/mips64extins.ll