示例#1
0
 public void Visit(FieldAddressEntry entry)
 {
     Print($"FLD_ADDR {entry.Name}");
     _indent++;
     entry.Op1.Accept(this);
     _indent--;
 }
示例#2
0
        public void Import(Instruction instruction, ImportContext context, IILImporterProxy importer)
        {
            var fieldDefOrRef = instruction.Operand as IField;
            var fieldDef      = fieldDefOrRef.ResolveFieldDef();

            var obj = importer.PopExpression();


            if (obj.Kind != StackValueKind.ObjRef && obj.Kind != StackValueKind.ByRef)
            {
                throw new NotImplementedException($"LoadFieldImporter does not support {obj.Kind}");
            }

            var node = new FieldAddressEntry(fieldDef.Name, obj, fieldDef?.FieldOffset ?? 0);

            importer.PushExpression(node);
        }
示例#3
0
 public void Visit(FieldAddressEntry entry)
 {
     _sb.AppendLine($"       ┌──▌  t{entry.Op1.TreeID}");
     _sb.AppendLine($"       fieldAddr {entry.Name}");
 }
 public void Visit(FieldAddressEntry entry)
 {
     _genericStackEntryVisitor.Visit <FieldAddressEntry>(entry);
 }
示例#5
0
 public void Visit(FieldAddressEntry entry)
 {
     entry.Op1.Accept(this);
     SetNext(entry);
 }