Bill Allombert on Thu, 28 Oct 2004 18:17:14 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
level0 kernel |
Hello PARI-dev, I have some suggestion to clean up the level0 kernel: In some circumstance we have only the INLINE function but not the GCC macro. Unfortunately the LOCAL_HIREMAINDER trick only work for the GCC macro. The LOCAL_HIREMAINDER trick give slightly better performance. One way to fix that could be to add a normal macro like #define addll(x,y) addll_ov((x),(y),&overflow) and an INLINE function addll_ov(ulong x, ulong y, ulong *overflow) { const ulong z = x+y; *overflow=(z<x); return (long) z; } This allow LOCAL_HIREMAINDER to work with non-GCC compiler. Alternatively we can provide GCC macro version of all level0 INLINE function. Cheers, Bill.