ni...@lysator.liu.se (Niels Möller) writes: And, which I guess is more relevant in the sub_ddmmss context, it also means that there's little need for separate instructions for adding and subtracting constants.
The error we struck here for ARM and (one of the errors) for PPC was that we added 0 instead of subtracting zero, the latter meaning adding ~0 + 1. Using the ARM "subs rd,rm,imm12" instruction, we compute {cout, rd} = rm + ~imm + 1 while the "adds rd,rm,imm12" instruction, we compute {cout, rd} = rm + imm . which is quite different. The former will for example always set cout when rm = imm = 0 as in Vincent's example. The latter will never set carry when imm = 0 or rm = 0; -- Torbjörn Please encrypt, key id 0xC8601622 _______________________________________________ gmp-bugs mailing list gmp-bugs@gmplib.org https://gmplib.org/mailman/listinfo/gmp-bugs