diff options
author | Tamar Christina <tamar.christina@arm.com> | 2017-08-02 08:55:59 +0000 |
---|---|---|
committer | Tamar Christina <tnfchris@gcc.gnu.org> | 2017-08-02 08:55:59 +0000 |
commit | 5c22bb4836c535c027a94e22dbfa33d406ae7c89 (patch) | |
tree | 8d844630743a7e0a85a4e97987ff0d86332f73b7 | |
parent | e4f0733af41d5fa2035f6eceb24a74ccba13afcf (diff) | |
download | gcc-5c22bb4836c535c027a94e22dbfa33d406ae7c89.zip gcc-5c22bb4836c535c027a94e22dbfa33d406ae7c89.tar.gz gcc-5c22bb4836c535c027a94e22dbfa33d406ae7c89.tar.bz2 |
aarch64.c (aarch64_reinterpret_float_as_int): Correct endianness.
2017-08-02 Tamar Christina <tamar.christina@arm.com>
* config/aarch64/aarch64.c (aarch64_reinterpret_float_as_int):
Correct endianness.
From-SVN: r250818
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/aarch64/aarch64.c | 11 |
2 files changed, 13 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d9f8e3e..6cd5ca7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2017-08-02 Tamar Christina <tamar.christina@arm.com> + + * config/aarch64/aarch64.c (aarch64_reinterpret_float_as_int): + Correct endianness. + 2017-08-02 Jakub Jelinek <jakub@redhat.com> PR middle-end/79499 diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c index 5a2ad7e..fac5063 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; |