This patch drops implicit assumptions on int/unsigned types being at least 32 bit wide. This is not always true on 16 bit targets such as MSP430.
This patch contains the following changes:
- rep_clz(a) and src_rep_t_clz(a) for 64-bit rep_t from soft-float utility headers are moved to int_lib.h as a common clzdi(a) implementation (signedness was changed to match one of __builtin_clz series of intrinsics). The original functions was turned into inline proxy functions that merely adapt the signedness
- __floatsi[st]f and __floatunsi[st]f3 are updated to accept a signed/unsigned integer argument of a specific width
- similar changes were made for some unit tests
- __udivmoddi4 switched to ctzsi macro defined in int_lib.h instead of __builtin_ctz
- the *vfp LibCall versions were NOT touched