delorie.com/archives/browse.cgi | search |
X-Recipient: | archive-cygwin AT delorie DOT com |
DomainKey-Signature: | a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id |
:list-unsubscribe:list-subscribe:list-archive:list-post | |
:list-help:sender:subject:to:references:from:message-id:date | |
:mime-version:in-reply-to:content-type; q=dns; s=default; b=pI60 | |
MDqhprhrfjNlc73umqUCG7Aqlw03C6P4fRlQdkVSnyRejEjjUCnOPtPgFcPC0hTq | |
j5ofiZBNW+CuLgs6j80WJzAmR9G0TSq1QgaPlejQ26INEPjKCu4cb7KBDKuA+UDz | |
NvKiZc7mOSICPKavjLNnXAgq9EUG7RNvxy4fYYI= | |
DKIM-Signature: | v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id |
:list-unsubscribe:list-subscribe:list-archive:list-post | |
:list-help:sender:subject:to:references:from:message-id:date | |
:mime-version:in-reply-to:content-type; s=default; bh=BU20Fd4JaG | |
XGjKDK+vLYcIsduQQ=; b=MFiGBpbZhd6GzmjDY0/QI0spJLbWpsGOmOKJG43goL | |
jIiDG4WjhJ5rcS8HLnwkONAGi1jmhME1vTodV+DMdWavogOH15R0vwj+jXTSN0XQ | |
eQgWQU5TwJGvcHK7wO8VY/+3fPuQQHCXvjv35JVLWZVaU+OhdgWg7bBLBAWe+NGx | |
4= | |
Mailing-List: | contact cygwin-help AT cygwin DOT com; run by ezmlm |
List-Id: | <cygwin.cygwin.com> |
List-Subscribe: | <mailto:cygwin-subscribe AT cygwin DOT com> |
List-Archive: | <http://sourceware.org/ml/cygwin/> |
List-Post: | <mailto:cygwin AT cygwin DOT com> |
List-Help: | <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs> |
Sender: | cygwin-owner AT cygwin DOT com |
Mail-Followup-To: | cygwin AT cygwin DOT com |
Delivered-To: | mailing list cygwin AT cygwin DOT com |
Authentication-Results: | sourceware.org; auth=none |
X-Virus-Found: | No |
X-Spam-SWARE-Status: | No, score=-1.9 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD,SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=H*f:sk:CAOTD34, H*i:sk:CAOTD34 |
X-HELO: | mx1.redhat.com |
DMARC-Filter: | OpenDMARC Filter v1.3.2 mx1.redhat.com 32F8081226 |
Authentication-Results: | ext-mx01.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com |
Authentication-Results: | ext-mx01.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=eblake AT redhat DOT com |
DKIM-Filter: | OpenDKIM Filter v2.11.0 mx1.redhat.com 32F8081226 |
Subject: | Re: bug in lrint [was: FW: Printing long int in C program under cygwin64] |
To: | cygwin AT cygwin DOT com |
References: | <6f28f46906804c6f8f6b4b861e202492 AT CASMBX02 DOT oslo DOT ngi DOT no> <d252aaae-b298-6fc8-7e5b-8d8be9f27f21 AT redhat DOT com> <CAOTD34Y=0udiWCAmkyEywJA6=NrUkG-T9hqXNHWckMbgkdmn_w AT mail DOT gmail DOT com> <CAOTD34YW5KoSH3unhrHfEW7Ni8-DGOPsiXNTwn75UwOhdUfVbg AT mail DOT gmail DOT com> |
From: | Eric Blake <eblake AT redhat DOT com> |
Openpgp: | url=http://people.redhat.com/eblake/eblake.gpg |
Message-ID: | <fcf6ac78-b7b2-340d-a9a5-7c75738cedac@redhat.com> |
Date: | Wed, 24 May 2017 11:57:26 -0500 |
User-Agent: | Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.1.0 |
MIME-Version: | 1.0 |
In-Reply-To: | <CAOTD34YW5KoSH3unhrHfEW7Ni8-DGOPsiXNTwn75UwOhdUfVbg@mail.gmail.com> |
X-IsSubscribed: | yes |
--WAGAV97574n0UV6uImtO5ivQA9uVXSmjW Content-Type: multipart/mixed; boundary="aBJou2fKOCLpQusCMPa45nVoePSntoWoL"; protected-headers="v1" From: Eric Blake <eblake AT redhat DOT com> To: cygwin AT cygwin DOT com Message-ID: <fcf6ac78-b7b2-340d-a9a5-7c75738cedac AT redhat DOT com> Subject: Re: bug in lrint [was: FW: Printing long int in C program under cygwin64] References: <6f28f46906804c6f8f6b4b861e202492 AT CASMBX02 DOT oslo DOT ngi DOT no> <d252aaae-b298-6fc8-7e5b-8d8be9f27f21 AT redhat DOT com> <CAOTD34Y=0udiWCAmkyEywJA6=NrUkG-T9hqXNHWckMbgkdmn_w AT mail DOT gmail DOT com> <CAOTD34YW5KoSH3unhrHfEW7Ni8-DGOPsiXNTwn75UwOhdUfVbg AT mail DOT gmail DOT com> In-Reply-To: <CAOTD34YW5KoSH3unhrHfEW7Ni8-DGOPsiXNTwn75UwOhdUfVbg AT mail DOT gmail DOT com> --aBJou2fKOCLpQusCMPa45nVoePSntoWoL Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable On 05/24/2017 11:53 AM, Erik Bray wrote: >>> dropping down to assembly; it could very well be that the assembly code >>> is incorrectly truncating things at 32 bits (where it is just fine for >>> 32-bit Cygwin, but wrong for 64-bit): >>> >>> long lrint (double x) >>> { >>> long retval =3D 0L; >>> #if defined(_AMD64_) || defined(__x86_64__) || defined(_X86_) || >>> defined(__i386__) >>> __asm__ __volatile__ ("fistpl %0" : "=3Dm" (retval) : "t" (x) : "st"= ); > Actually, I take it back. gdb/objdump (and presumably binutils in > general) was being deceptive to me about the nature of that mov > instruction. And in fact the fistpl should be fistpq. That fixes it. Is fistpq right on 32-bit, or is this a case where we need different assembly for 32-bit (fistpl) vs. 64-bit (fistql) to match the size of long that we are converting to? --=20 Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3266 Virtualization: qemu.org | libvirt.org --aBJou2fKOCLpQusCMPa45nVoePSntoWoL-- --WAGAV97574n0UV6uImtO5ivQA9uVXSmjW Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 Comment: Public key at http://people.redhat.com/eblake/eblake.gpg Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQEcBAEBCAAGBQJZJbt2AAoJEKeha0olJ0Nqx70H/jeyZ5MOh7tIAcMtqmSLOs3Q h6lAOjJ/wt+0Ea6ZTj9l0+/N4MHMg+E3aDt2/L+e3wk7uyxfCbhG5cXKBZDnltGK t4Ni3M12J7Qxi04VaBh317lY7N+gc+pi+OUkoaBEhF5Alrxhvm3JriDm7suNZJWh Pr8XGle/j/JVfQmbBgRQGBpxEqtsMHnPU/Bw55SdDgBTlEdVPcrO/u0HTdUKSXyZ YibY6Rx3Q9sycKmA88MWWgAShAvHHJHFlDEEN6Vg2z1pXbCesP1TQT1+n9xwAnC0 8FET7XiXNXIk2eN1kB+TtSIjlWeZ41+kXCP2ATwqdB3P7aWv9/4D2uKuXIxu6nE= =blvd -----END PGP SIGNATURE----- --WAGAV97574n0UV6uImtO5ivQA9uVXSmjW--
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |