[PATCH v2 2.6.38-rc8-tip 6/20] 6: x86: analyze instruction and determine fixups.

Srikar Dronamraju srikar@linux.vnet.ibm.com
Fri Mar 18 19:13:00 GMT 2011


* Srikar Dronamraju <srikar@linux.vnet.ibm.com> [2011-03-19 00:19:22]:

> * Roland McGrath <roland@hack.frob.com> [2011-03-18 11:36:29]:
> 
> > > handle_riprel_insn() returns 0 if the instruction is not rip-relative
> > > returns 1 if its rip-relative but can use XOL slots.
> > > returns -1 if its rip-relative but cannot use XOL.
> > > 
> > > We dont see any instructions that are rip-relative and cannot use XOL.
> > > so the check and return are redundant and I will remove that in the next
> > > patch.
> > 
> > How is that?  You can only adjust a rip-relative instruction correctly if
> > the instruction copy is within 2GB of the original target address, which
> > cannot be presumed to always be the case in user address space layout
> > (unlike the kernel).
> > 
> 
> So we rewrite the copy of instruction (stored in XOL) such that it
> accesses its memory operand indirectly thro a scratch register.
> The contents of the scratch register are stored before singlestep and
> restored later.
> 
> Can you please tell us if this doesnt work?
> 

Infact we have tested using rip-relative addresses and it has
worked very well. So we have verified that it does work. Can you
please tell us why you dont think this works?

-- 
Thanks and Regards
Srikar



More information about the Systemtap mailing list