[Issue 5570] 64 bit C ABI not followed for passing structs and complex numbers as function parameters

d-bugmail at puremagic.com d-bugmail at puremagic.com
Sun Jun 17 14:48:14 PDT 2012


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


klickverbot <code at klickverbot.at> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |code at klickverbot.at


--- Comment #21 from klickverbot <code at klickverbot.at> 2012-06-17 14:50:19 PDT ---
When fixing the remaining issues, please also consider treating dynamic D
arrays as »struct Array(T) { T* ptr; size_t length; }« on x86_64, i.e. passing
them in two integer registers (if available).

This is what GDC and LDC are doing right now, since always passing them on the
stack, like DMD does right now, would require quite a lot of extra effort in
resp. additions to the respective backend code.

There currently is a »pass on the stack for efficiency« comment in
TypeDArray::toArgTypes(), but I can't quite see why this should be true in the
general case, to be honest.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list