summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunyan He <junyan.he@linux.intel.com>2015-01-26 18:18:03 +0800
committerZhigang Gong <zhigang.gong@intel.com>2015-01-28 12:45:14 +0800
commit2757e2eeb6ca68bf2c725ed66cedb55c82ee6e90 (patch)
tree4f2c3be7fcee58e38a220bd78aee66ab18ef6615
parent600d23b04e8be609fa5dcdc6ffcc0e383799cd40 (diff)
Fix the long bitcast post schedule bug.
The tmp registers are in wrong type of float, which will cause the post schedule error. Signed-off-by: Junyan He <junyan.he@linux.intel.com> Reviewed-by: "Yang, Rong R" <rong.r.yang@intel.com> Reviewed-by: Zhigang Gong <zhigang.gong@linux.intel.com>
-rw-r--r--backend/src/backend/gen_insn_selection.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/backend/src/backend/gen_insn_selection.cpp b/backend/src/backend/gen_insn_selection.cpp
index 628fa2f1..6aa7e0e9 100644
--- a/backend/src/backend/gen_insn_selection.cpp
+++ b/backend/src/backend/gen_insn_selection.cpp
@@ -3623,12 +3623,12 @@ namespace gbe
GBE_ASSERT(isInt64); // Must relate to long and char conversion.
if (narrowDst) {
for (int i = 0; i < wideNum; i++) {
- tmp[i] = sel.selReg(sel.reg(FAMILY_QWORD));
+ tmp[i] = sel.selReg(sel.reg(FAMILY_QWORD), ir::TYPE_U64);
sel.UNPACK_LONG(tmp[i], sel.selReg(insn.getSrc(i), srcType));
}
} else {
for (int i = 0; i < wideNum; i++) {
- tmp[i] = sel.selReg(sel.reg(FAMILY_QWORD));
+ tmp[i] = sel.selReg(sel.reg(FAMILY_QWORD), ir::TYPE_U64);
}
}
}