aboutsummaryrefslogtreecommitdiff
path: root/tcg
diff options
context:
space:
mode:
authorpbrook <pbrook@c046a42c-6fe2-441c-8c8c-71466251a162>2008-09-23 22:31:10 +0000
committerpbrook <pbrook@c046a42c-6fe2-441c-8c8c-71466251a162>2008-09-23 22:31:10 +0000
commit88422e2ebdcdb5bf877ed0084086180570b4b52f (patch)
treec80bd72924e56608b2d4ffb2a2534ded857db88a /tcg
parenta9dd6843be390ec94a4e51cbaa50c43b7cb0357a (diff)
Fix tcg_gen_concat32_i64 on 64-bit hosts.
Signed-off-by: Paul Brook <paul@codesourcery.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5306 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'tcg')
-rw-r--r--tcg/tcg-op.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/tcg/tcg-op.h b/tcg/tcg-op.h
index acb0dffed6..8acb003d53 100644
--- a/tcg/tcg-op.h
+++ b/tcg/tcg-op.h
@@ -1418,8 +1418,9 @@ static inline void tcg_gen_concat32_i64(TCGv dest, TCGv low, TCGv high)
tcg_gen_concat_i32_i64(dest, low, high);
#else
TCGv tmp = tcg_temp_new(TCG_TYPE_I64);
+ tcg_gen_ext32u_i64(dest, low);
tcg_gen_shli_i64(tmp, high, 32);
- tcg_gen_or_i64(dest, low, tmp);
+ tcg_gen_or_i64(dest, dest, tmp);
tcg_temp_free(tmp);
#endif
}