diff options
| author | Duraid Madina <duraid@octopus.com.au> | 2005-04-07 12:32:24 +0000 |
|---|---|---|
| committer | Duraid Madina <duraid@octopus.com.au> | 2005-04-07 12:32:24 +0000 |
| commit | b484f7c55e30bf3a8a6a462a1eb9a1de9f985183 (patch) | |
| tree | 76b0336b9e35fe8cfa1d68158e7046bfa0575617 /llvm/lib | |
| parent | 7d13eae2540e202d9b920cfe9000667253a4b874 (diff) | |
| download | bcm5719-llvm-b484f7c55e30bf3a8a6a462a1eb9a1de9f985183.tar.gz bcm5719-llvm-b484f7c55e30bf3a8a6a462a1eb9a1de9f985183.zip | |
add immediate forms of add, sub, shift
llvm-svn: 21129
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/IA64/IA64InstrInfo.td | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/llvm/lib/Target/IA64/IA64InstrInfo.td b/llvm/lib/Target/IA64/IA64InstrInfo.td index 1c8858171cc..0424b3be2ef 100644 --- a/llvm/lib/Target/IA64/IA64InstrInfo.td +++ b/llvm/lib/Target/IA64/IA64InstrInfo.td @@ -16,6 +16,12 @@ include "IA64InstrFormats.td" def u6imm : Operand<i8>; +def s8imm : Operand<i8> { + let PrintMethod = "printS8ImmOperand"; +} +def s14imm : Operand<i16> { + let PrintMethod = "printS14ImmOperand"; +} def s16imm : Operand<i16>; def s21imm : Operand<i32> { let PrintMethod = "printS21ImmOperand"; @@ -107,8 +113,12 @@ def SHLI : AForm<0x03, 0x0b, (ops GR:$dst, GR:$src1, s21imm:$imm), "shl $dst = $src1, $imm;;">; // FIXME: 6 immediate bits, not 21 def SHRU : AForm<0x03, 0x0b, (ops GR:$dst, GR:$src1, GR:$src2), "shr.u $dst = $src1, $src2;;">; +def SHRUI : AForm<0x03, 0x0b, (ops GR:$dst, GR:$src1, s21imm:$imm), + "shr.u $dst = $src1, $imm;;">; def SHRS : AForm<0x03, 0x0b, (ops GR:$dst, GR:$src1, GR:$src2), "shr $dst = $src1, $src2;;">; +def SHRSI : AForm<0x03, 0x0b, (ops GR:$dst, GR:$src1, s21imm:$imm), + "shr $dst = $src1, $imm;;">; def DEPZ : AForm<0x03, 0x0b, (ops GR:$dst, GR:$src1, u6imm:$imm1, u6imm:$imm2), "dep.z $dst = $src1, $imm1, $imm2;;">; @@ -177,6 +187,8 @@ def BCMPEQ : AForm<0x03, 0x0b, (ops PR:$dst1, PR:$dst2, GR:$src1, GR:$src2), def ADD : AForm<0x03, 0x0b, (ops GR:$dst, GR:$src1, GR:$src2), "add $dst = $src1, $src2;;">; +def ADDIMM14 : AForm<0x03, 0x0b, (ops GR:$dst, GR:$src1, s14imm:$imm), + "adds $dst = $imm, $src1;;">; def ADDIMM22 : AForm<0x03, 0x0b, (ops GR:$dst, GR:$src1, s21imm:$imm), "add $dst = $imm, $src1;;">; @@ -194,6 +206,8 @@ def TPCMPIMM8NE : AForm<0x03, 0x0b, def SUB : AForm<0x03, 0x0b, (ops GR:$dst, GR:$src1, GR:$src2), "sub $dst = $src1, $src2;;">; +def SUBIMM8 : AForm<0x03, 0x0b, (ops GR:$dst, s8imm:$imm, GR:$src2), + "sub $dst = $imm, $src2;;">; def ST1 : AForm<0x03, 0x0b, (ops GR:$dstPtr, GR:$value), "st1 [$dstPtr] = $value;;">; |

