diff options
author | Petar Jovanovic <petarj@mips.com> | 2013-02-07 19:36:09 +0100 |
---|---|---|
committer | Aurelien Jarno <aurelien@aurel32.net> | 2013-02-23 22:20:45 +0100 |
commit | a345481baa2b2fb3d54f8c9ddb58dfcaf75786df (patch) | |
tree | f644378b66e59d6f0251c62ab43244f117584d28 | |
parent | 9c19eb1e205b29018f6f61c5f43db6abbe7dc0e5 (diff) |
target-mips: fix for sign-issue in MULQ_W helper
Correct sign-propagation before multiplication in MULQ_W helper.
The change also fixes previously incorrect expected values in the
tests for MULQ_RS.W and MULQ_S.W.
Signed-off-by: Petar Jovanovic <petarj@mips.com>
Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
-rw-r--r-- | target-mips/dsp_helper.c | 2 | ||||
-rw-r--r-- | tests/tcg/mips/mips32-dspr2/mulq_rs_w.c | 2 | ||||
-rw-r--r-- | tests/tcg/mips/mips32-dspr2/mulq_s_w.c | 2 |
3 files changed, 3 insertions, 3 deletions
diff --git a/target-mips/dsp_helper.c b/target-mips/dsp_helper.c index 6781da8214..841f47b91d 100644 --- a/target-mips/dsp_helper.c +++ b/target-mips/dsp_helper.c @@ -2689,7 +2689,7 @@ MAQ_SA_W(maq_sa_w_phr, 0); target_ulong helper_##name(target_ulong rs, target_ulong rt, \ CPUMIPSState *env) \ { \ - uint32_t rs_t, rt_t; \ + int32_t rs_t, rt_t; \ int32_t tempI; \ int64_t tempL; \ \ diff --git a/tests/tcg/mips/mips32-dspr2/mulq_rs_w.c b/tests/tcg/mips/mips32-dspr2/mulq_rs_w.c index 669405faf1..7ba633bc17 100644 --- a/tests/tcg/mips/mips32-dspr2/mulq_rs_w.c +++ b/tests/tcg/mips/mips32-dspr2/mulq_rs_w.c @@ -8,7 +8,7 @@ int main() rs = 0x80001234; rt = 0x80004321; - result = 0x80005555; + result = 0x7FFFAAAB; __asm ("mulq_rs.w %0, %1, %2\n\t" diff --git a/tests/tcg/mips/mips32-dspr2/mulq_s_w.c b/tests/tcg/mips/mips32-dspr2/mulq_s_w.c index df148b7ffb..9c2be06cc0 100644 --- a/tests/tcg/mips/mips32-dspr2/mulq_s_w.c +++ b/tests/tcg/mips/mips32-dspr2/mulq_s_w.c @@ -8,7 +8,7 @@ int main() rs = 0x80001234; rt = 0x80004321; - result = 0x80005555; + result = 0x7FFFAAAB; __asm ("mulq_s.w %0, %1, %2\n\t" |