On 4/30/21 11:02 AM, Matheus K. Ferst wrote:
But in this case ADDI probably doesn't use PLS_D. You could use
static bool trans_PADDI(DisasContext *ctx, arg_PLS_D *a)
{
arg_D d;
if (!resolve_PLS_D(ctx, &d, a)) {
return false;
}
return trans_ADDI(ctx, &d);
}
making sure to use int64_t in the offset for arg_D.
We'd keep trans_ADDI with the same signature to avoid creating an arg_D on the
stack. Patch 4 added type specification, maybe we can define an arg_D within
arg_PLD_D? I'll play a bit to see if it works.
That starts to creep, with e.g. ADDIS now requiring arg_PLD_D. You'll want to
audit the other D-form insns to see what other special cases there are.
r~