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~

Reply via email to