void GenIncDecLocal(int regDst, int opSz, int ofs, int tok) { int instr = MipsInstrAddU; if (tok != tokInc) instr = MipsInstrSubU; GenReadLocal(regDst, opSz, ofs); GenPrintInstr3Operands(instr, 0, regDst, 0, regDst, 0, MipsOpConst, 1); GenWriteLocal(regDst, opSz, ofs); GenExtendRegIfNeeded(regDst, opSz); }
STATIC void GenPostIncDecLocal(int regDst, int opSz, int ofs, int tok) { int instr = Tr32InstrAdd; if (tok != tokPostInc) instr = Tr32InstrSub; GenReadLocal(regDst, opSz, ofs); GenPrintInstr3Operands(instr, 0, regDst, 0, regDst, 0, Tr32OpConst, 1); GenWriteLocal(regDst, opSz, ofs); GenPrintInstr3Operands(instr, 0, regDst, 0, regDst, 0, Tr32OpConst, -1); GenExtendRegIfNeeded(regDst, opSz); }