Example #1
0
        private void RewriteBraf()
        {
            this.iclass = InstrClass.Delay | InstrClass.Transfer;
            var reg = binder.EnsureRegister(((RegisterOperand)instr.Operands[0]).Register);

            m.GotoD(m.IAdd(instr.Address + 4, reg));
        }
Example #2
0
        private void RewriteBraf()
        {
            rtlc = RtlClass.Delay | RtlClass.Transfer;
            var reg = binder.EnsureRegister(((RegisterOperand)instr.op1).Register);

            m.GotoD(m.IAdd(instr.Address + 4, reg));
        }
Example #3
0
        private void RewriteRtsd()
        {
            var linkReg = Reg(0);
            var offset  = Imm(1);

            if (linkReg.Storage == Registers.GpRegs[15] &&
                offset.ToInt32() == 8)
            {
                m.ReturnD(0, 0);
            }
            else
            {
                m.GotoD(m.IAdd(linkReg, offset));
            }
        }
Example #4
0
        private void RewriteJump(MipsInstruction instr)
        {
            var dst = RewriteOperand(instr.op1);

            emitter.GotoD(dst);
        }
Example #5
0
 private void RewriteJ()
 {
     m.GotoD(Addr(instrCur.Operands[0]));
 }