diff options
author | Anton Korobeynikov <asl@math.spbu.ru> | 2009-07-16 13:47:14 +0000 |
---|---|---|
committer | Anton Korobeynikov <asl@math.spbu.ru> | 2009-07-16 13:47:14 +0000 |
commit | c8301d17a861ef47c7b01a486391f288b035e692 (patch) | |
tree | b8898bffbfb7630fdc5a65844486882eebcee305 /lib/Target/SystemZ/SystemZInstrInfo.td | |
parent | 30da5380e042c9010ed0623b7abd89e73c5ae91d (diff) | |
download | llvm-c8301d17a861ef47c7b01a486391f288b035e692.tar.gz llvm-c8301d17a861ef47c7b01a486391f288b035e692.tar.bz2 llvm-c8301d17a861ef47c7b01a486391f288b035e692.tar.xz |
Add mem-imm stores
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75933 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/SystemZ/SystemZInstrInfo.td')
-rw-r--r-- | lib/Target/SystemZ/SystemZInstrInfo.td | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/Target/SystemZ/SystemZInstrInfo.td b/lib/Target/SystemZ/SystemZInstrInfo.td index 5ba96f6dee..f1baa45734 100644 --- a/lib/Target/SystemZ/SystemZInstrInfo.td +++ b/lib/Target/SystemZ/SystemZInstrInfo.td @@ -223,6 +223,20 @@ def MOV64mr : Pseudo<(outs), (ins rriaddr:$dst, GR64:$src), "stg\t{$src, $dst}", [(store GR64:$src, rriaddr:$dst)]>; +// FIXME: displacements here are really 12 bit, not 20! +def MOV8mi : Pseudo<(outs), (ins riaddr:$dst, i32imm:$src), + "mvi\t{$dst, $src}", + [(truncstorei8 (i32 imm:$src), riaddr:$dst)]>; +def MOV16mi : Pseudo<(outs), (ins riaddr:$dst, i32imm:$src), + "mvhhi\t{$dst, $src}", + [(truncstorei16 (i32 imm:$src), riaddr:$dst)]>; +def MOV32mi16 : Pseudo<(outs), (ins riaddr:$dst, i32imm:$src), + "mvhi\t{$dst, $src}", + [(store (i32 immSExt16:$src), riaddr:$dst)]>; +def MOV64mi16 : Pseudo<(outs), (ins riaddr:$dst, i64imm:$src), + "mvghi\t{$dst, $src}", + [(store (i64 immSExt16:$src), riaddr:$dst)]>; + // extloads def MOVSX64rm8 : Pseudo<(outs GR64:$dst), (ins rriaddr:$src), "lgb\t{$dst, $src}", |