projects
/
oota-llvm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
remove the FnArgWords cache to make way for future changes.
[oota-llvm.git]
/
lib
/
Target
/
SystemZ
/
SystemZOperands.td
diff --git
a/lib/Target/SystemZ/SystemZOperands.td
b/lib/Target/SystemZ/SystemZOperands.td
index 0ee48c3ebafbc13c1922303013e3ef406a475a6a..0de50fde582b8ca76cc9639d30de0d7d504534f3 100644
(file)
--- a/
lib/Target/SystemZ/SystemZOperands.td
+++ b/
lib/Target/SystemZ/SystemZOperands.td
@@
-67,6
+67,10
@@
def HI32 : SDNodeXForm<imm, [{
return getI32Imm(N->getZExtValue() >> 32);
}]>;
return getI32Imm(N->getZExtValue() >> 32);
}]>;
+def GetI64FromI32 : SDNodeXForm<imm, [{
+ return CurDAG->getTargetConstant(N->getSExtValue(), MVT::i64);
+}]>;
+
def i32ll16 : PatLeaf<(i32 imm), [{
// i32ll16 predicate - true if the 32-bit immediate has only rightmost 16
// bits set.
def i32ll16 : PatLeaf<(i32 imm), [{
// i32ll16 predicate - true if the 32-bit immediate has only rightmost 16
// bits set.
@@
-134,10
+138,10
@@
def i64hh16c : PatLeaf<(i64 imm), [{
def immSExt16 : PatLeaf<(imm), [{
// immSExt16 predicate - true if the immediate fits in a 16-bit sign extended
// field.
def immSExt16 : PatLeaf<(imm), [{
// immSExt16 predicate - true if the immediate fits in a 16-bit sign extended
// field.
- if (N->getValueType(0) ==
E
VT::i64) {
+ if (N->getValueType(0) ==
M
VT::i64) {
uint64_t val = N->getZExtValue();
return ((int64_t)val == (int16_t)val);
uint64_t val = N->getZExtValue();
return ((int64_t)val == (int16_t)val);
- } else if (N->getValueType(0) ==
E
VT::i32) {
+ } else if (N->getValueType(0) ==
M
VT::i32) {
uint32_t val = N->getZExtValue();
return ((int32_t)val == (int16_t)val);
}
uint32_t val = N->getZExtValue();
return ((int32_t)val == (int16_t)val);
}