private bool patchtestreg(int node, int reg) { int i = getjumpcontrol(node); int[] code = f.code_Renamed; int instr = code[i]; if (Lua.OPCODE(instr) != Lua.OP_TESTSET) { return(false); // cannot patch other instructions } if (reg != Lua.NO_REG && reg != Lua.ARGB(instr)) { code[i] = Lua.SETARG_A(instr, reg); } else // no register to put value or register already has the value { code[i] = Lua.CREATE_ABC(Lua.OP_TEST, Lua.ARGB(instr), 0, Lua.ARGC(instr)); } return(true); }