Torbjorn Granlund <t...@gmplib.org> writes: > But I lack unit testing code for the function, making hacking quite > cumbersome. I don't feel safe hacking *any* GMP assembly code without > tests/devel/try.c's function and access checks.
tests/mpn/t-div.c includes tests for mpn_div_qr_1, including single guard limbs before and after the q area. That provides for some reasonable testing, and I was running while GMP_CHECK_RANDOMIZE=0 ./t-div ; : ; done over night in the weekend. But sure, support also in try.c would be good. > (1) Shorten a dep chain, and avoid keeping CF live over an inc > instruction. The cmov doesn't really depend on sbb, since the > latter insn never really changes carry. (This might btw be useful > to teach loppmixer!) Right, using cmov (instead of masking) allows some more reordering. > (2) Reallocate Q2 to an "old" register (not r8-r15) and then use the > 32-bit form of "adc $0,reg". That form is shorter. Clever! > (3) Offet UP to avoid the offset in the loop. Should be straight forward. Or one could offset UN, but I think it's nice to be able to use dec / jnz for the loop. Or is the obscure "loop" decrement and branch instruction useful? Regards, /Niels -- Niels Möller. PGP-encrypted email is preferred. Keyid C0B98E26. Internet email is subject to wholesale government surveillance. _______________________________________________ gmp-devel mailing list gmp-devel@gmplib.org http://gmplib.org/mailman/listinfo/gmp-devel