On 1/13/21 7:24 AM, Philippe Mathieu-Daudé wrote: > case INDEX_op_ld8s_i32: > case INDEX_op_ld8s_i64: > - tcg_out_mem_long(s, LBZ, LBZX, args[0], args[1], args[2]); > + tcg_out_mem_long(s, LBZ, LBZX, a0, a1, a2); > tcg_out32(s, EXTSB | RS(args[0]) | RA(args[0]));
Missed replacements. > - a0 = args[0], a1 = args[1], a2 = args[2]; > if (const_args[2]) { Missed replacement. > do_addi_32: > tcg_out_mem_long(s, ADDI, ADD, a0, a1, (int32_t)a2); > @@ -2475,7 +2481,6 @@ static void tcg_out_op(TCGContext *s, TCGOpcode opc, > const TCGArg *args, > } > break; > case INDEX_op_sub_i32: > - a0 = args[0], a1 = args[1], a2 = args[2]; > if (const_args[1]) { > if (const_args[2]) { And again. Let's just drop the hoisting parts and only do the signature parts for now. I'd rather think of a way to split up this large function than waste time optimizing it. r~