internal override void Apply(FunctionBuilder dest)
 {
     dest.Add(new OpcodeSpecial(cpu => {
         int k = cpu.Pop().Int;
         if (k < 0 || k >= objs.Length)
         {
             throw new Exception(string.Format("index out of bounds for local instance array: {0} (max: {1})", k, objs.Length));
         }
         cpu.Push(new XValue(objs[k]));
     }));
 }
 internal override void Apply(FunctionBuilder dest)
 {
     dest.Add(new OpcodeSpecial(cpu => {
         cpu.Push(new XValue(obj));
     }));
 }
 internal override void Apply(FunctionBuilder dest)
 {
     dest.Add(new OpcodeSpecial(cfa.PutIndexed));
 }
 internal override void Apply(FunctionBuilder dest)
 {
     dest.Add(new OpcodeSpecial(cf.Get));
 }
 internal override void Apply(FunctionBuilder dest)
 {
     dest.Add(new OpcodeRefLocalIndexed(off, len));
 }
 internal override void Apply(FunctionBuilder dest)
 {
     dest.Add(new OpcodeRefLocal(off));
 }
 internal override void Apply(FunctionBuilder dest)
 {
     dest.Add(new OpcodePutLocal(off, ltype));
 }