diff options
author | Nate Begeman <natebegeman@mac.com> | 2005-08-18 18:01:39 +0000 |
---|---|---|
committer | Nate Begeman <natebegeman@mac.com> | 2005-08-18 18:01:39 +0000 |
commit | a69404781344c4aee05935ee921bbf2844911bc0 (patch) | |
tree | 54e9152ef09f8adf15c2ba9b1ae7551e859685dd /lib/Target/PowerPC/PPCISelPattern.cpp | |
parent | 36b708f05720c407f5e5657f2fd4b0677702ad46 (diff) |
Improve ISD::Constant codegen.
Now for int foo() { return -1; } we generate:
_foo:
li r3, -1
blr
instead of
_foo:
lis r2, -1
ori r3, r2, 65535
blr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22864 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/PowerPC/PPCISelPattern.cpp')
-rw-r--r-- | lib/Target/PowerPC/PPCISelPattern.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/Target/PowerPC/PPCISelPattern.cpp b/lib/Target/PowerPC/PPCISelPattern.cpp index 6eddcc48f1..1ffa6dcb0e 100644 --- a/lib/Target/PowerPC/PPCISelPattern.cpp +++ b/lib/Target/PowerPC/PPCISelPattern.cpp @@ -1736,7 +1736,7 @@ unsigned ISel::SelectExpr(SDOperand N, bool Recording) { assert(N.getValueType() == MVT::i32 && "Only i32 constants are legal on this target!"); int v = (int)cast<ConstantSDNode>(N)->getValue(); - unsigned Hi = Hi16(v); + unsigned Hi = HA16(v); unsigned Lo = Lo16(v); if (Hi && Lo) { Tmp1 = MakeIntReg(); |