jaydeep added a comment. In http://reviews.llvm.org/D12079#243390, @clayborg wrote:
> In http://reviews.llvm.org/D12079#242998, @jaydeep wrote: > > > In http://reviews.llvm.org/D12079#242742, @clayborg wrote: > > > > > So DumpAddress() in FormatEntity.cpp is a generic "dump any address by > > > describing it". You can't just change the code to suit your needs for > > > MIPS. This address could be any address: code or data. If you want > > > something that can take an address like 0x1000 and you ask for its > > > AddressClass and it sees that its address class is > > > eAddressClassCodeAlternateISA, and then you change it to be "0x1001", > > > this will need to be a new format type. > > > > > > DumpAddress in FormatEntity.cpp is called for the following entities: > > > > > > case Entry::Type::LineEntryStartAddress: > > > case Entry::Type::LineEntryEndAddress: > > > case Entry::Type::AddressFile: > > > case Entry::Type::AddressLoad: > > > case Entry::Type::AddressLoadOrFile: > > > case Entry::Type::FrameRegisterPC > > > > > > > > > So only the LineEntry ones should actually do what you did. > > > > > > We need to display all these entities in compressed address format. How > > about a new MIPS specific function in Address and Target class which would > > do this. > > > > Address Address::GetCallableAddress(Target *target); > > lldb::addr_t Target::GetCallableAddress (lldb::addr_t load_addr, > > AddressClass addr_class); > > > We already have this in Target: > > lldb::addr_t > GetCallableLoadAddress (lldb::addr_t load_addr, lldb::AddressClass > addr_class = lldb::eAddressClassInvalid) const; > > > So the solution here will be to modify Address::Dump() such that it detects > when an address is eAddressClassCodeAlternateISA and when that happens it > checks if the ExecutionContext parameter is non NULL, and if so, extract the > target, and check the target's architecture is MIPS, then add the extra bit > when displaying this address. As it seems that we would always want to > describe a section offset address (lldb_private::Address object) in this way > to show the MicroMIPS address space bit, right? In http://reviews.llvm.org/D12079#243390, @clayborg wrote: > In http://reviews.llvm.org/D12079#242998, @jaydeep wrote: > > > In http://reviews.llvm.org/D12079#242742, @clayborg wrote: > > > > > So DumpAddress() in FormatEntity.cpp is a generic "dump any address by > > > describing it". You can't just change the code to suit your needs for > > > MIPS. This address could be any address: code or data. If you want > > > something that can take an address like 0x1000 and you ask for its > > > AddressClass and it sees that its address class is > > > eAddressClassCodeAlternateISA, and then you change it to be "0x1001", > > > this will need to be a new format type. > > > > > > DumpAddress in FormatEntity.cpp is called for the following entities: > > > > > > case Entry::Type::LineEntryStartAddress: > > > case Entry::Type::LineEntryEndAddress: > > > case Entry::Type::AddressFile: > > > case Entry::Type::AddressLoad: > > > case Entry::Type::AddressLoadOrFile: > > > case Entry::Type::FrameRegisterPC > > > > > > > > > So only the LineEntry ones should actually do what you did. > > > > > > We need to display all these entities in compressed address format. How > > about a new MIPS specific function in Address and Target class which would > > do this. > > > > Address Address::GetCallableAddress(Target *target); > > lldb::addr_t Target::GetCallableAddress (lldb::addr_t load_addr, > > AddressClass addr_class); > > > We already have this in Target: > > lldb::addr_t > GetCallableLoadAddress (lldb::addr_t load_addr, lldb::AddressClass > addr_class = lldb::eAddressClassInvalid) const; > > > So the solution here will be to modify Address::Dump() such that it detects > when an address is eAddressClassCodeAlternateISA and when that happens it > checks if the ExecutionContext parameter is non NULL, and if so, extract the > target, and check the target's architecture is MIPS, then add the extra bit > when displaying this address. As it seems that we would always want to > describe a section offset address (lldb_private::Address object) in this way > to show the MicroMIPS address space bit, right? Yes. Repository: rL LLVM http://reviews.llvm.org/D12079 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits