[Issue 673] ABI as documented is 32 bit specific.. how about 64 bits?

d-bugmail at puremagic.com d-bugmail at puremagic.com
Tue Dec 12 10:54:59 PST 2006


http://d.puremagic.com/issues/show_bug.cgi?id=673





------- Comment #6 from smjg at iname.com  2006-12-12 12:54 -------
(In reply to comment #5)
> Because vtable layout is but just a tiny portion of the ABI. 

What's that to do with anything?  It goes without saying that the layout in
memory of _anything_ that relies on pointers must be defined in terms of the
platform's pointer size.

> One major area
> that will end up being different is exception handling.  The EH mechanisms
> differ by OS, by cpu, and by wordsize.  For example, the win32 eh mechanism is
> _signifigantly_ different from the win64 mechanism.  For some details, see this
> talk:  http://www.nwcpp.org/Meetings/2006/10.html
> 
> Those parts of the document are still blank, obviously, but at some point they
> will be I hope/expect.

Exactly.  So it'll just as well be different on different 32-bit platforms and
on different 64-bit platforms.  So by your reasoning, surely we should have a
whole separate ABI for each possible (OS, cpu, wordsize) combination.

Having loads of separate ABIs would make them a nightmare to maintain.  Just
have one basic ABI, with variations only where really necessary.  In the case
of EH, state that it's compatible with the platform's own exception handling
mechanism, and then describe it more specifically for each platform as
necessary.


-- 



More information about the Digitalmars-d-bugs mailing list