On 06/27/2017 01:57 AM, Alex Bennée wrote:
- /* Note this unsigned test catches TCG_CALL_ARG_DUMMY too. */
- if (arg < nb_globals) {
This test is gone but....
- dir = dir_temps[arg];
- if (dir != 0 && temp_state[arg] == TS_DEAD) {
- TCGTemp *its = arg_temp(arg);
- TCGOpcode lopc = (its->type == TCG_TYPE_I32
- ? INDEX_op_ld_i32
- : INDEX_op_ld_i64);
- TCGOp *lop = tcg_op_insert_before(s, op, lopc, 3);
-
- lop->args[0] = dir;
- lop->args[1] = temp_arg(its->mem_base);
- lop->args[2] = its->mem_offset;
-
- /* Loaded, but synced with memory. */
- temp_state[arg] = TS_MEM;
- }
+ arg_ts = arg_temp(op->args[i]);
+ dir_ts = arg_ts->state_ptr;
+ if (dir_ts && arg_ts->state == TS_DEAD) {
...we de-ref arg_ts here. So what if it was a TCG_CALL_ARG_DUMMY?
Good catch. I need to do more testing on a host that actually uses this
padding...
r~