Message ID | 1355236110-4159-2-git-send-email-elta.era@gmail.com |
---|---|
State | New |
Headers | show |
Please-separate-words-with-spaces-in-your-subject-line-thank-you-:)
Am 11.12.2012 16:13, schrieb Markus Armbruster:
> Please-separate-words-with-spaces-in-your-subject-line-thank-you-:)
Also all three patches should have a "target-mips: " prefix in the
subject to make clear what they touch and who must review and later
commit these.
Andreas
Thanks for your review, now I know this problem but don't have gcc can compile repl_ph instruction. I will build a gcc and resend this patch later. 2012/12/12 Andreas Färber <afaerber@suse.de> > Am 11.12.2012 16:13, schrieb Markus Armbruster: > > Please-separate-words-with-spaces-in-your-subject-line-thank-you-:) > > Also all three patches should have a "target-mips: " prefix in the > subject to make clear what they touch and who must review and later > commit these. > > Andreas > > -- > SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany > GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg >
diff --git a/target-mips/translate.c b/target-mips/translate.c index 65e6725..1701ca3 100644 --- a/target-mips/translate.c +++ b/target-mips/translate.c @@ -13769,9 +13769,10 @@ static void gen_mipsdsp_bitinsn(CPUMIPSState *env, DisasContext *ctx, check_dsp(ctx); { imm = (ctx->opcode >> 16) & 0x03FF; + imm = (int16_t)(imm << 6) >> 6; tcg_gen_movi_tl(cpu_gpr[ret], \ (target_long)((int32_t)imm << 16 | \ - (uint32_t)(uint16_t)imm)); + (uint16_t)imm)); } break; case OPC_REPLV_PH:
The immediate value is 9bits, should sign-extend to 16bits. The return value to register should sign-extend to target_long, as Richard says, removing an unnecessary cast works fun. Signed-off-by: Dongxue Zhang <elta.era@gmail.com> --- target-mips/translate.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)