public BinaryOperationAction(CalculatedValue target, Op operation, JavaValue value1, JavaValue value2) { Target = target ?? throw new ArgumentNullException(nameof(target)); Operation = operation; Value1 = value1 ?? throw new ArgumentNullException(nameof(value1)); Value2 = value2 ?? throw new ArgumentNullException(nameof(value2)); }
public ConditionalJumpAction(JavaValue value, ActionBlock target, JumpCondition condition, JavaValue valueCmp = null) { Value = value ?? throw new ArgumentNullException(nameof(value)); Target = target ?? throw new ArgumentNullException(nameof(target)); Condition = condition; ValueCmp = valueCmp; }
public InvokeAction(CalculatedValue target, JavaValue instance, MethodReference method, JavaValue[] args, bool virt = false) { Target = target; Instance = instance; Method = method; Args = args; Virtual = virt; if (Instance == null) { Debug.Assert(!Virtual || !Method.HasThis); } }
public SetFieldAction(JavaValue target, JavaValue value, FieldReference field) { Target = target; Value = value; Field = field; }
public GetFieldAction(CalculatedValue target, JavaValue from, FieldReference field) { Target = target; From = @from; Field = field; }
public SetStaticAction(JavaValue value, FieldReference field) { Value = value; Field = field; }
public ArrayIndexAction(CalculatedValue target, JavaValue array, JavaValue index) { Target = target; Array = array; Index = index; }
public ArrayLengthAction(CalculatedValue target, JavaValue array) { Target = target; Array = array; }
public JavaState Pop(out JavaValue top) { return(new JavaState(_stack.Pop(out top), _locals)); }
public MonitorAction(JavaValue value, bool isEnter) { Value = value; IsEnter = isEnter; }
public ThrowAction(JavaValue value) { Value = value; }
public ReturnAction(JavaValue value = null) { Value = value; }
public ConstantSetAction(CalculatedValue target, JavaValue value) { Target = target; Value = value; }
public UnaryOperationAction(CalculatedValue target, Op operation, JavaValue value) { Target = target ?? throw new ArgumentNullException(nameof(target)); Operation = operation; Value = value ?? throw new ArgumentNullException(nameof(value)); }
public JavaState Push(JavaValue o) { return(new JavaState(_stack.Push(o), _locals)); }
public JavaState PushIf(bool cond, JavaValue val = null) { return(cond ? Push(val) : this); }
public NewArrayAction(CalculatedValue target, TypeReference type, JavaValue count) { Target = target; Type = type; Count = count; }
public JavaState Store(int index, JavaValue value) { return(new JavaState(_stack, _locals.SetItem(index, value))); }
public ArraySetAction(JavaValue array, JavaValue index, JavaValue value) { Array = array; Index = index; Value = value; }