diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index 7e7aa4a40d1a84fd2620d23a685a799191fb79ad..586372a3b6de100a72be42987d5f6bf9bb2632ef 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,3 +1,7 @@ +2013-11-27 Uros Bizjak <ubizjak@gmail.com> + + * soft-fp/op-4.h: Update from glibc. + 2013-11-27 Kugan Vivekanandarajah <kuganv@linaro.org> * libgcc2.c (__udivmoddi4): Define new implementation when @@ -24,7 +28,7 @@ 2013-11-22 Yuri Rumyantsev <ysrumyan@gmail.com> - * config/i386/cpuinfo.c (get_intel_cpu): Add Silvermont cases. + * config/i386/cpuinfo.c (get_intel_cpu): Add Silvermont cases. 2013-11-18 Jan Hubicka <jh@suse.cz> diff --git a/libgcc/soft-fp/op-4.h b/libgcc/soft-fp/op-4.h index 3515bdc497baa56abb0a8afb6171174c27e84c4e..6c6b4611662ca36c393d3ececf60542e0fbfa0af 100644 --- a/libgcc/soft-fp/op-4.h +++ b/libgcc/soft-fp/op-4.h @@ -709,7 +709,7 @@ else if (rsize <= 2*_FP_W_TYPE_SIZE) \ { \ r = X##_f[1]; \ - r <<= _FP_W_TYPE_SIZE; \ + r = (rsize <= _FP_W_TYPE_SIZE ? 0 : r << _FP_W_TYPE_SIZE); \ r += X##_f[0]; \ } \ else \ @@ -717,11 +717,11 @@ /* I'm feeling lazy so we deal with int == 3words (implausible)*/ \ /* and int == 4words as a single case. */ \ r = X##_f[3]; \ - r <<= _FP_W_TYPE_SIZE; \ + r = (rsize <= _FP_W_TYPE_SIZE ? 0 : r << _FP_W_TYPE_SIZE); \ r += X##_f[2]; \ - r <<= _FP_W_TYPE_SIZE; \ + r = (rsize <= _FP_W_TYPE_SIZE ? 0 : r << _FP_W_TYPE_SIZE); \ r += X##_f[1]; \ - r <<= _FP_W_TYPE_SIZE; \ + r = (rsize <= _FP_W_TYPE_SIZE ? 0 : r << _FP_W_TYPE_SIZE); \ r += X##_f[0]; \ } \ } \