void GenIncDecIdent(int regDst, int opSz, int label, int tok) { int instr = MipsInstrAddU; if (tok != tokInc) instr = MipsInstrSubU; GenReadIdent(regDst, opSz, label); GenPrintInstr3Operands(instr, 0, regDst, 0, regDst, 0, MipsOpConst, 1); GenWriteIdent(regDst, opSz, label); GenExtendRegIfNeeded(regDst, opSz); }
STATIC void GenPostIncDecIdent(int regDst, int opSz, int label, int tok) { int instr = Tr32InstrAdd; if (tok != tokPostInc) instr = Tr32InstrSub; GenReadIdent(regDst, opSz, label); GenPrintInstr3Operands(instr, 0, regDst, 0, regDst, 0, Tr32OpConst, 1); GenWriteIdent(regDst, opSz, label); GenPrintInstr3Operands(instr, 0, regDst, 0, regDst, 0, Tr32OpConst, -1); GenExtendRegIfNeeded(regDst, opSz); }