OSDN Git Service
(root)
/
android-x86
/
external-llvm.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
586e653
)
Fix X86/inline-asm.ll:test2, a case where an input value was implicitly
author
Chris Lattner
<sabre@nondot.org>
Thu, 8 Jun 2006 18:27:11 +0000
(18:27 +0000)
committer
Chris Lattner
<sabre@nondot.org>
Thu, 8 Jun 2006 18:27:11 +0000
(18:27 +0000)
truncated.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28733
91177308
-0d34-0410-b5e6-
96231b3b80d8
lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
patch
|
blob
|
history
diff --git
a/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
b/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
index
57f7446
..
0a9cb63
100644
(file)
--- a/
lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
+++ b/
lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
@@
-1804,9
+1804,12
@@
void RegsForValue::getCopyToRegs(SDOperand Val, SelectionDAG &DAG,
// If there is a single register and the types differ, this must be
// a promotion.
if (RegVT != ValueVT) {
- if (MVT::isInteger(RegVT))
- Val = DAG.getNode(ISD::ANY_EXTEND, RegVT, Val);
- else
+ if (MVT::isInteger(RegVT)) {
+ if (RegVT < ValueVT)
+ Val = DAG.getNode(ISD::TRUNCATE, RegVT, Val);
+ else
+ Val = DAG.getNode(ISD::ANY_EXTEND, RegVT, Val);
+ } else
Val = DAG.getNode(ISD::FP_EXTEND, RegVT, Val);
}
Chain = DAG.getCopyToReg(Chain, Regs[0], Val, Flag);