Process RBLK in call and interp.
@@ -1493,7 +1493,8 @@ static void call (MIR_context_t ctx, MIR_val_t *bp, MIR_op_t *insn_arg_ops, code
case MIR_T_D: call_res_args[i + nres].d = arg_vals[i].d; break;
case MIR_T_LD: call_res_args[i + nres].ld = arg_vals[i].ld; break;
case MIR_T_P:
- case MIR_T_BLK: call_res_args[i + nres].u = (uint64_t) arg_vals[i].a; break;
+ case MIR_T_BLK:
+ case MIR_T_RBLK: call_res_args[i + nres].u = (uint64_t) arg_vals[i].a; break;
default: mir_assert (FALSE);
}
}
@@ -1667,7 +1668,8 @@ static void interp (MIR_context_t ctx, MIR_item_t func_item, va_list va, MIR_val
}
case MIR_T_D: arg_vals[i].d = va_arg (va, double); break;
case MIR_T_LD: arg_vals[i].ld = va_arg (va, long double); break;
- case MIR_T_P: arg_vals[i].a = va_arg (va, void *); break;
+ case MIR_T_P:
+ case MIR_T_RBLK: arg_vals[i].a = va_arg (va, void *); break;
case MIR_T_BLK:
#if defined(__PPC64__) || defined(__aarch64__)
arg_vals[i].a = va_stack_arg_builtin (&va, arg_vars[i].size);
