aboutsummaryrefslogtreecommitdiff
path: root/target-mips/op_helper.c
diff options
context:
space:
mode:
authorths <ths@c046a42c-6fe2-441c-8c8c-71466251a162>2008-06-20 14:35:19 +0000
committerths <ths@c046a42c-6fe2-441c-8c8c-71466251a162>2008-06-20 14:35:19 +0000
commit92af06d216857de77bcadaf86cf9675cce9f1d3c (patch)
tree703cd09351247c06ebf8494677f2a247f5708143 /target-mips/op_helper.c
parent278ed7c329b7e5a8dbef8da7efd42a5b73ca785d (diff)
Convert vr54xx multiply instructions to TCG.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4756 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-mips/op_helper.c')
-rw-r--r--target-mips/op_helper.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/target-mips/op_helper.c b/target-mips/op_helper.c
index 696295b904..16d3023a45 100644
--- a/target-mips/op_helper.c
+++ b/target-mips/op_helper.c
@@ -168,10 +168,9 @@ void do_dclz (void)
#endif /* TARGET_MIPS64 */
/* 64 bits arithmetic for 32 bits hosts */
-#if TARGET_LONG_BITS > HOST_LONG_BITS
static always_inline uint64_t get_HILO (void)
{
- return (env->HI[env->current_tc][0] << 32) | (uint32_t)env->LO[env->current_tc][0];
+ return ((uint64_t)(env->HI[env->current_tc][0]) << 32) | (uint32_t)env->LO[env->current_tc][0];
}
static always_inline void set_HILO (uint64_t HILO)
@@ -192,6 +191,7 @@ static always_inline void set_HI_LOT0 (uint64_t HILO)
env->HI[env->current_tc][0] = (int32_t)(HILO >> 32);
}
+#if TARGET_LONG_BITS > HOST_LONG_BITS
void do_madd (void)
{
int64_t tmp;
@@ -223,6 +223,7 @@ void do_msubu (void)
tmp = ((uint64_t)(uint32_t)T0 * (uint64_t)(uint32_t)T1);
set_HILO(get_HILO() - tmp);
}
+#endif /* TARGET_LONG_BITS > HOST_LONG_BITS */
/* Multiplication variants of the vr54xx. */
void do_muls (void)
@@ -294,7 +295,6 @@ void do_mulshiu (void)
{
set_HIT0_LO(0 - ((uint64_t)(uint32_t)T0 * (uint64_t)(uint32_t)T1));
}
-#endif /* TARGET_LONG_BITS > HOST_LONG_BITS */
#ifdef TARGET_MIPS64
void do_dmult (void)