target-tilegx: Handle conditional move instructions

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <rth@twiddle.net>
This commit is contained in:
Richard Henderson 2015-08-22 00:15:07 -07:00
parent 2369976deb
commit f090f9f7ce

View File

@ -503,9 +503,16 @@ static TileExcp gen_rrr_opcode(DisasContext *dc, unsigned opext,
break; break;
case OE_RRR(CMOVEQZ, 0, X0): case OE_RRR(CMOVEQZ, 0, X0):
case OE_RRR(CMOVEQZ, 4, Y0): case OE_RRR(CMOVEQZ, 4, Y0):
tcg_gen_movcond_tl(TCG_COND_EQ, tdest, tsrca, load_zero(dc),
tsrcb, load_gr(dc, dest));
mnemonic = "cmoveqz";
break;
case OE_RRR(CMOVNEZ, 0, X0): case OE_RRR(CMOVNEZ, 0, X0):
case OE_RRR(CMOVNEZ, 4, Y0): case OE_RRR(CMOVNEZ, 4, Y0):
return TILEGX_EXCP_OPCODE_UNIMPLEMENTED; tcg_gen_movcond_tl(TCG_COND_NE, tdest, tsrca, load_zero(dc),
tsrcb, load_gr(dc, dest));
mnemonic = "cmovnez";
break;
case OE_RRR(CMPEQ, 0, X0): case OE_RRR(CMPEQ, 0, X0):
case OE_RRR(CMPEQ, 0, X1): case OE_RRR(CMPEQ, 0, X1):
case OE_RRR(CMPEQ, 3, Y0): case OE_RRR(CMPEQ, 3, Y0):