@@ -2217,17 +2217,20 @@ static void gen_data_manipulation(DisasContext *ctx, int rs1, int rs2, int opera
2217
2217
int_cond = extract32 (ctx -> opcode ,0 ,4 );
2218
2218
TCGv condResult = condition_satisfied (tcg_ctx , int_cond );
2219
2219
cont = gen_new_label (tcg_ctx );
2220
+ end = gen_new_label (tcg_ctx );
2220
2221
2221
- tcg_gen_movi_i32 (tcg_ctx , operand_local , 0x00000000 );
2222
2222
tcg_gen_brcondi_i32 (tcg_ctx , TCG_COND_NE , condResult , 0x1 , cont );
2223
- tcg_gen_movi_i32 (tcg_ctx , operand_local , 0x00000001 );
2223
+ tcg_gen_movi_i32 (tcg_ctx , operand_local , 0x00000001 );
2224
+ tcg_gen_br (tcg_ctx , end );
2224
2225
2225
2226
gen_set_label (tcg_ctx , cont );
2226
-
2227
+ tcg_gen_movi_i32 (tcg_ctx , operand_local , 0x00000000 );
2228
+
2229
+ gen_set_label (tcg_ctx , end );
2227
2230
gen_set_gpr (tcg_ctx , rs2 , operand_local );
2228
2231
2229
- tcg_temp_free (tcg_ctx , condResult );
2230
- tcg_temp_free (tcg_ctx , operand_local );
2232
+ tcg_temp_free (tcg_ctx , condResult );
2233
+ tcg_temp_free (tcg_ctx , operand_local );
2231
2234
}
2232
2235
break ;
2233
2236
@@ -4250,6 +4253,7 @@ static void decode_RH850_32(CPURH850State *env, DisasContext *ctx)
4250
4253
}
4251
4254
else
4252
4255
{
4256
+ printf ("gen SETF\r\n" );
4253
4257
gen_data_manipulation (ctx , rs1 , rs2 , OPC_RH850_SETF_cccc_reg2 );
4254
4258
}
4255
4259
break ;
0 commit comments