コード例 #1
0
ファイル: InstructionList.cs プロジェクト: modulexcite/pash-1
 public void EmitLoadLocalFromClosure(int index)
 {
     if (InstructionList._loadLocalFromClosure == null)
     {
         InstructionList._loadLocalFromClosure = new Instruction[64];
     }
     if (index >= (int)InstructionList._loadLocalFromClosure.Length)
     {
         this.Emit(new LoadLocalFromClosureInstruction(index));
         return;
     }
     else
     {
         InstructionList instructionList = this;
         Instruction     instruction     = InstructionList._loadLocalFromClosure[index];
         Instruction     instruction1    = instruction;
         if (instruction == null)
         {
             LoadLocalFromClosureInstruction loadLocalFromClosureInstruction = new LoadLocalFromClosureInstruction(index);
             Instruction instruction2 = loadLocalFromClosureInstruction;
             InstructionList._loadLocalFromClosure[index] = loadLocalFromClosureInstruction;
             instruction1 = instruction2;
         }
         instructionList.Emit(instruction1);
         return;
     }
 }
コード例 #2
0
        public void EmitLoadLocalFromClosure(int index)
        {
            if (s_loadLocalFromClosure == null)
            {
                s_loadLocalFromClosure = new Instruction[LocalInstrCacheSize];
            }

            if (index < s_loadLocalFromClosure.Length)
            {
                Emit(s_loadLocalFromClosure[index] ?? (s_loadLocalFromClosure[index] = new LoadLocalFromClosureInstruction(index)));
            }
            else
            {
                Emit(new LoadLocalFromClosureInstruction(index));
            }
        }