ni...@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 _______________________________________________ gmp-bugs mailing list gmp-bugs@gmplib.org https://gmplib.org/mailman/listinfo/gmp-bugs