<div dir="ltr"><div>Hello Tim,</div><div><br></div><div><br></div>Thanks for this documents a lot<div><br></div><div>Will check.</div><div><br></div><div>Regards,</div><div>Miodrag</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Mar 13, 2016 at 6:05 PM, Tim Northover <span dir="ltr"><<a href="mailto:t.p.northover@gmail.com" target="_blank">t.p.northover@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Miodrag,<br>
<br>
On 13 March 2016 at 07:01, Miodrag Milanovic via cfe-dev<br>
<span class=""><<a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a>> wrote:<br>
> Is there any document describing member function pointers and memory<br>
> organisation for it per platform since there seems to be a different meaning<br>
> at least on Intel and ARM ?<br>
<br>
</span>These are the two documents:<br>
<br>
AArch32: <a href="http://infocenter.arm.com/help/topic/com.arm.doc.ihi0041e/IHI0041E_cppabi.pdf" rel="noreferrer" target="_blank">http://infocenter.arm.com/help/topic/com.arm.doc.ihi0041e/IHI0041E_cppabi.pdf</a><br>
AArch64: <a href="http://infocenter.arm.com/help/topic/com.arm.doc.ihi0059b/IHI0059B_cppabi64.pdf" rel="noreferrer" target="_blank">http://infocenter.arm.com/help/topic/com.arm.doc.ihi0059b/IHI0059B_cppabi64.pdf</a><br>
<br>
Both delegate to the Itanium C++ ABI with some twists. For member<br>
function pointers, I think the virtual/non-virtual bit is just shunted<br>
onto the "this" adjustment (because the low bit of the code pointer<br>
decides whether the function is ARM/Thumb in 32-bit mode so isn't<br>
freely modifiable).<br>
<br>
Cheers.<br>
<span class="HOEnZb"><font color="#888888"><br>
Tim.<br>
</font></span></blockquote></div><br></div>