aboutsummaryrefslogtreecommitdiff
path: root/target-mips/op_helper.c
diff options
context:
space:
mode:
Diffstat (limited to 'target-mips/op_helper.c')
-rw-r--r--target-mips/op_helper.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/target-mips/op_helper.c b/target-mips/op_helper.c
index 93cd55e019..c5a4c93698 100644
--- a/target-mips/op_helper.c
+++ b/target-mips/op_helper.c
@@ -192,16 +192,6 @@ static always_inline void set_HI_LOT0 (uint64_t HILO)
env->HI[env->current_tc][0] = (int32_t)(HILO >> 32);
}
-void do_mult (void)
-{
- set_HILO((int64_t)(int32_t)T0 * (int64_t)(int32_t)T1);
-}
-
-void do_multu (void)
-{
- set_HILO((uint64_t)(uint32_t)T0 * (uint64_t)(uint32_t)T1);
-}
-
void do_madd (void)
{
int64_t tmp;
@@ -306,6 +296,18 @@ void do_mulshiu (void)
}
#endif /* TARGET_LONG_BITS > HOST_LONG_BITS */
+#ifdef TARGET_MIPS64
+void do_dmult (void)
+{
+ muls64(&(env->LO[env->current_tc][0]), &(env->HI[env->current_tc][0]), T0, T1);
+}
+
+void do_dmultu (void)
+{
+ mulu64(&(env->LO[env->current_tc][0]), &(env->HI[env->current_tc][0]), T0, T1);
+}
+#endif
+
#ifdef CONFIG_USER_ONLY
void do_mfc0_random (void)
{