mstorsjo added a comment.

In D70840#1767611 <https://reviews.llvm.org/D70840#1767611>, @mstorsjo wrote:

> In D70840#1767049 <https://reviews.llvm.org/D70840#1767049>, @labath wrote:
>
> > In D70840#1767028 <https://reviews.llvm.org/D70840#1767028>, @mstorsjo 
> > wrote:
> >
> > > In D70840#1765373 <https://reviews.llvm.org/D70840#1765373>, @clayborg 
> > > wrote:
> > >
> > > > So some background on how address masks are handled in LLDB:
> > > >
> > > > Typically the way we have tried to take care of the extra Thumb bit for 
> > > > ARM using:
> > > >
> > > >   lldb::addr_t Address::GetCallableLoadAddress(Target *target, bool 
> > > > is_indirect = false) const;
> > > >   lldb::addr_t GetOpcodeLoadAddress(Target *target, AddressClass 
> > > > addr_class = AddressClass::eInvalid) const;
> > > >   
> > > >
> > > > The first will add the extra bit to an address if needed. The latter 
> > > > will strip the bit if needed. This does require a target though and the 
> > > > target uses the "Architecture" class for ARM to do the work of using 
> > > > the mask. Not sure if we want to try to get an architecture class and 
> > > > use that here for stripping the bit instead of using an address mask?
> > >
> > >
> > > So, where do I get hold of an Architecture* object instance from within 
> > > the relevant contexts (within SymbolFileDWARF, where we have a reference 
> > > to the object file)? Also within source/Symbol/DWARFCallFrameInfo.cpp 
> > > where we have existing code that does the same.
> >
> >
> > Well... that's the tricky part (which I've tried to allude to in  
> > D70840#1763639 <https://reviews.llvm.org/D70840#1763639>. Currently the 
> > only thing holding an architecture object is the target class, but since 
> > one of the goals of the SymbolFile stuff is to be independent of any 
> > particular target, you cannot easily get hold of that. That is why I tried 
> > to steer this towards having this in the ArchSpec class. If we don't want 
> > that, we'll probably have to create one new Architecture instance local to 
> > each Module object...
>
>
> Ah, sorry for overlooking those parts of your comment. @clayborg - what do 
> you think of @labath's suggestions here?


Ping @clayborg - can you comment on @labath's suggestions?


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D70840/new/

https://reviews.llvm.org/D70840



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to