Doubleword Shift Left Logical Plus 32
authorJack Carter <jcarter@mips.com>
Mon, 16 Jul 2012 15:14:51 +0000 (15:14 +0000)
committerJack Carter <jcarter@mips.com>
Mon, 16 Jul 2012 15:14:51 +0000 (15:14 +0000)
commite035f65b16956cdb7ba29e741b7e3c04a8ce4d24
treeea58432ec6155317779d6adabcc181ccebb68180
parent694fbf17777f96e65e782667826dbccbe7524c32
Doubleword Shift Left Logical Plus 32

Mips shift instructions DSLL, DSRL and DSRA are transformed into
DSLL32, DSRL32 and DSRA32 respectively if the shift amount is between
32 and 63

Here is a description of DSLL:

Purpose: Doubleword Shift Left Logical Plus 32
To execute a left-shift of a doubleword by a fixed amount--32 to 63 bits

Description: GPR[rd] <- GPR[rt] << (sa+32)

The 64-bit doubleword contents of GPR rt are shifted left, inserting
 zeros into the emptied bits; the result is placed in
GPR rd. The bit-shift amount in the range 0 to 31 is specified by sa.

This patch implements the direct object output of these instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160277 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/mips64shift.ll [new file with mode: 0644]