Пример #1
0
 public static bool IsGPR(this VMRegisters reg)
 {
     if (reg >= VMRegisters.R0 && reg <= VMRegisters.R7)
     {
         return(true);
     }
     return(false);
 }
Пример #2
0
 public static ILInstructionPattern PushDwordReg(VMRegisters register)
 {
     return(new ILInstructionPattern(ILCode.PUSHR_DWORD, register, new ILVariablePattern(register)));
 }
Пример #3
0
 ILRegister(VMRegisters reg)
 {
     Register = reg;
     regMap.Add(reg, this);
 }
Пример #4
0
 public static ILRegister LookupRegister(VMRegisters reg)
 {
     return(regMap[reg]);
 }
Пример #5
0
 public byte this[VMRegisters reg] {
     get { return(regOrder[(int)reg]); }
 }
Пример #6
0
 public void Deallocate(IRVariable var, VMRegisters reg)
 {
     Debug.Assert(regAlloc[FromRegister(reg)] == var);
     regAlloc[FromRegister(reg)] = null;
 }
Пример #7
0
 private static int FromRegister(VMRegisters reg)
 {
     return((int)reg);
 }
Пример #8
0
 public static ILInstructionPattern PushDwordReg(VMRegisters register)
 {
     return(Instruction(ILCode.PUSHR_DWORD)
            .WithOperand(register)
            .WithArguments(new ILVariablePattern(register)));
 }
Пример #9
0
 public static ILAssignmentPattern Assignment(VMRegisters variable, ILExpressionPattern value)
 {
     return(new ILAssignmentPattern(variable, value));
 }
Пример #10
0
 public byte this[VMRegisters reg] => regOrder[(int)reg];
Пример #11
0
 public ILVariablePattern(VMRegisters register)
 {
     VariableName = register.ToString();
 }
Пример #12
0
 public IRRegister(VMRegisters reg, ASTType type)
 {
     Register = reg;
     Type     = type;
 }
Пример #13
0
 public IRRegister(VMRegisters reg)
 {
     Register = reg;
     Type     = ASTType.Ptr;
 }
Пример #14
0
 public SymbolicValue this[VMRegisters register]
 {
     get => _registers[(int)register];