From: tnfchris Date: Wed, 2 Aug 2017 08:55:59 +0000 (+0000) Subject: 2017-08-02 Tamar Christina X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ab1e85ebfa3a755d631d98fd05e1a08b6ed015e1;p=thirdparty%2Fgcc.git 2017-08-02 Tamar Christina * config/aarch64/aarch64.c (aarch64_reinterpret_float_as_int): Correct endianness. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250818 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d9f8e3e7e8cc..6cd5ca7001b9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2017-08-02 Tamar Christina + + * config/aarch64/aarch64.c (aarch64_reinterpret_float_as_int): + Correct endianness. + 2017-08-02 Jakub Jelinek PR middle-end/79499 diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c index 5a2ad7e9156a..fac5063686fc 100644 --- a/gcc/config/aarch64/aarch64.c +++ b/gcc/config/aarch64/aarch64.c @@ -4733,9 +4733,14 @@ aarch64_reinterpret_float_as_int (rtx value, unsigned HOST_WIDE_INT *intval) CONST_DOUBLE_REAL_VALUE (value), REAL_MODE_FORMAT (mode)); - ival = zext_hwi (res[0], 32); - if (GET_MODE_BITSIZE (mode) == GET_MODE_BITSIZE (DFmode)) - ival |= (zext_hwi (res[1], 32) << 32); + if (mode == DFmode) + { + int order = BYTES_BIG_ENDIAN ? 1 : 0; + ival = zext_hwi (res[order], 32); + ival |= (zext_hwi (res[1 - order], 32) << 32); + } + else + ival = zext_hwi (res[0], 32); *intval = ival; return true;