fat_init violates host ABI on Win64
Torbjörn Granlund
tg at gmplib.org
Tue Apr 25 20:07:00 UTC 2017
nisse at lysator.liu.se (Niels Möller) writes:
I wonder if one could use some m4 macrology to reduce clutter. Maybe
one macro for the pattern
IFSTD(` sub $8, %rsp ')
IFDOS(` sub $40, %rsp ')
ASSERT(nz, `test $15, %rsp')
CALL( mpn_add_n)
IFSTD(` add $8, %rsp ')
IFDOS(` add $40, %rsp ')
used when it's known that rsp = 8 (mod 16), and another one when it's
known that rsp = 0 (mod 16).
There seems to be a few uses of CALL that want to do this differently,
though, e.g., gcd_1.asm, maybe it would also help to move (and rename)
its conditional definition of STACK_ALLOC.
One could consider more advanced stack frame management. Incorporating
stack adjustments in the CALL macro might make sense, but then other
stack allocation (push and direct sub X,%rsp) needs to be taken into
account, and ideally any direct allocation should incorporate allignment
with adjustments in CALL then suppressed.
I haven't bothered with this since only a handful functions perform
calls.
--
Torbjörn
Please encrypt, key id 0xC8601622
More information about the gmp-bugs
mailing list