Beispiel #1
0
 public override CILInstruction Execute(mmchecker.vm.ThreadState threadState)
 {
     // TODONOW: Fix this when semantic for ldarg and starg is clear
     if(CanExecute(threadState) == false)
         throw new Exception("This instruction is not ready to execute");
     VMValue source = threadState.GetValue(threadState.ThreadStack.Pop());
     VMValue target = threadState.GetLocalArgument(argIndex);
     target.IsThreadLocal = true;
     DelayedWrite dw = new DelayedWrite(target.GUID, source.GUID, this);
     threadState.AddPendingAction(dw);
     return threadState.CurrentMethod.GetNextInstruction(this);
 }
Beispiel #2
0
 public override bool CanExecute(mmchecker.vm.ThreadState threadState)
 {
     return threadState.GetLocalArgument(argIndex).IsConcrete;
 }