From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 81184 invoked by alias); 29 May 2018 14:01:04 -0000 Mailing-List: contact newlib-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: newlib-cvs-owner@sourceware.org Received: (qmail 81016 invoked by uid 9078); 29 May 2018 14:01:01 -0000 Date: Tue, 29 May 2018 14:01:00 -0000 Message-ID: <20180529140101.81013.qmail@sourceware.org> Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Corinna Vinschen To: newlib-cvs@sourceware.org Subject: [newlib-cygwin] fix llrint and lrint for 52 <= exponent <= 62 X-Act-Checkin: newlib-cygwin X-Git-Author: Matthias Kannwischer X-Git-Refname: refs/heads/master X-Git-Oldrev: 3305f3557064a3cc981e3566959d7833bb81e192 X-Git-Newrev: fcfea0ae2d213383f38b06690b6cf1454f2ac82d X-SW-Source: 2018-q2/txt/msg00005.txt.bz2 https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=fcfea0ae2d213383f38b06690b6cf1454f2ac82d commit fcfea0ae2d213383f38b06690b6cf1454f2ac82d Author: Matthias Kannwischer Date: Mon May 14 14:00:18 2018 +0100 fix llrint and lrint for 52 <= exponent <= 62 Diff: --- newlib/libm/common/s_llrint.c | 4 ++-- newlib/libm/common/s_lrint.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/newlib/libm/common/s_llrint.c b/newlib/libm/common/s_llrint.c index 8b8a846..72452db 100644 --- a/newlib/libm/common/s_llrint.c +++ b/newlib/libm/common/s_llrint.c @@ -93,9 +93,9 @@ long long int if (j0 >= 52) /* 64bit return: j0 in [52,62] */ /* 64bit return: left shift amt in [32,42] */ - result = ((long long int) ((i0 & 0x000fffff) | 0x0010000) << (j0 - 20)) | + result = ((long long int) ((i0 & 0x000fffff) | 0x00100000) << (j0 - 20)) | /* 64bit return: right shift amt in [0,10] */ - (i1 << (j0 - 52)); + ((long long int) i1 << (j0 - 52)); else { /* 64bit return: j0 in [20,51] */ diff --git a/newlib/libm/common/s_lrint.c b/newlib/libm/common/s_lrint.c index 9d2cb73..b37f50f 100644 --- a/newlib/libm/common/s_lrint.c +++ b/newlib/libm/common/s_lrint.c @@ -131,9 +131,9 @@ TWO52[2]={ if (j0 >= 52) /* 64bit return: j0 in [52,62] */ /* 64bit return: left shift amt in [32,42] */ - result = ((long int) ((i0 & 0x000fffff) | 0x0010000) << (j0 - 20)) | + result = ((long int) ((i0 & 0x000fffff) | 0x00100000) << (j0 - 20)) | /* 64bit return: right shift amt in [0,10] */ - (i1 << (j0 - 52)); + ((long int) i1 << (j0 - 52)); else { /* 32bit return: j0 in [20,30] */