|
In the function patchlistaux:static void patchlistaux (FuncState *fs, int list, int vtarget, int reg,int dtarget) {while (list != NO_JUMP) {int next = getjump(fs, list);if (patchtestreg(fs, list, reg))fixjump(fs, list, vtarget);elsefixjump(fs, list, dtarget); /* jump to default target */list = next;}}what dose the param vtarget and dtarget actual mean?Another question is, if patchtestreg return true,means list is an OP_TESTSET or OP_TEST instruction,but their format is not the same as OP_JMP,which is iAsBx,but in function fixjump it use SETARG_sBx macro to set sBx param.How could SETARG_sBx being used in OP_TESTSET or OP_TEST instruction?