ReadAddress() 공개 메소드

public ReadAddress ( ) : long
리턴 long
예제 #1
0
        public VariableInfo(Architecture arch, TargetBinaryReader reader)
        {
            Index = reader.ReadLeb128 ();
            Offset = reader.ReadSLeb128 ();
            Size = reader.ReadLeb128 ();
            BeginLiveness = reader.ReadLeb128 ();
            EndLiveness = reader.ReadLeb128 ();

            MonoType = new TargetAddress (
                reader.TargetMemoryInfo.AddressDomain, reader.ReadAddress ());

            Mode = (AddressMode) (Index & AddressModeFlags);
            Index = (int) ((long) Index & ~AddressModeFlags);

            Report.Debug (DebugFlags.JitSymtab, "VARIABLE INFO: {0} {1} {2} {3} {4}",
                      Mode, Index, Offset, Size, arch);

            if ((Mode == AddressMode.Register) || (Mode == AddressMode.RegOffset))
                Index = arch.RegisterMap [Index];

            Report.Debug (DebugFlags.JitSymtab, "VARIABLE INFO #1: {0}", Index);

            HasLivenessInfo = (BeginLiveness != 0) && (EndLiveness != 0);
        }
예제 #2
0
 protected TargetAddress ReadAddress(TargetBinaryReader reader, AddressDomain domain)
 {
     long address = reader.ReadAddress ();
     if (address != 0)
         return new TargetAddress (domain, address);
     else
         return TargetAddress.Null;
 }