riscv: Use run-time endianess for floating point literals

Message ID mvma5x245vb.fsf@suse.de
State Accepted
Headers
Series riscv: Use run-time endianess for floating point literals |

Checks

Context Check Description
snail/binutils-gdb-check success Github commit url

Commit Message

Andreas Schwab June 14, 2023, 11:53 a.m. UTC
  gas/
	PR binutils/30551
	* config/tc-riscv.c (md_atof): Use target_big_endian instead of
	TARGET_BYTES_BIG_ENDIAN.
	* testsuite/gas/riscv/float-be.d: New file.
	* testsuite/gas/riscv/float-le.d: New file.
	* testsuite/gas/riscv/float.s: New file.
---
 gas/config/tc-riscv.c              | 2 +-
 gas/testsuite/gas/riscv/float-be.d | 8 ++++++++
 gas/testsuite/gas/riscv/float-le.d | 8 ++++++++
 gas/testsuite/gas/riscv/float.s    | 3 +++
 4 files changed, 20 insertions(+), 1 deletion(-)
 create mode 100644 gas/testsuite/gas/riscv/float-be.d
 create mode 100644 gas/testsuite/gas/riscv/float-le.d
 create mode 100644 gas/testsuite/gas/riscv/float.s
  

Comments

Nelson Chu June 16, 2023, 12:25 a.m. UTC | #1
Ok, looks good, thanks.

Nelson

On Wed, Jun 14, 2023 at 7:54 PM Andreas Schwab via Binutils <
binutils@sourceware.org> wrote:

> gas/
>         PR binutils/30551
>         * config/tc-riscv.c (md_atof): Use target_big_endian instead of
>         TARGET_BYTES_BIG_ENDIAN.
>         * testsuite/gas/riscv/float-be.d: New file.
>         * testsuite/gas/riscv/float-le.d: New file.
>         * testsuite/gas/riscv/float.s: New file.
> ---
>  gas/config/tc-riscv.c              | 2 +-
>  gas/testsuite/gas/riscv/float-be.d | 8 ++++++++
>  gas/testsuite/gas/riscv/float-le.d | 8 ++++++++
>  gas/testsuite/gas/riscv/float.s    | 3 +++
>  4 files changed, 20 insertions(+), 1 deletion(-)
>  create mode 100644 gas/testsuite/gas/riscv/float-be.d
>  create mode 100644 gas/testsuite/gas/riscv/float-le.d
>  create mode 100644 gas/testsuite/gas/riscv/float.s
>
> diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c
> index 7684fa7e06d..e915b82eafa 100644
> --- a/gas/config/tc-riscv.c
> +++ b/gas/config/tc-riscv.c
> @@ -3693,7 +3693,7 @@ md_assemble (char *str)
>  const char *
>  md_atof (int type, char *litP, int *sizeP)
>  {
> -  return ieee_md_atof (type, litP, sizeP, TARGET_BYTES_BIG_ENDIAN);
> +  return ieee_md_atof (type, litP, sizeP, target_big_endian);
>  }
>
>  void
> diff --git a/gas/testsuite/gas/riscv/float-be.d
> b/gas/testsuite/gas/riscv/float-be.d
> new file mode 100644
> index 00000000000..ca6b23636ff
> --- /dev/null
> +++ b/gas/testsuite/gas/riscv/float-be.d
> @@ -0,0 +1,8 @@
> +# source: float.s
> +# objdump: -sj .data
> +# as: -mbig-endian
> +
> +.*:[   ]+file format .*bigriscv
> +
> +Contents of section \.data:
> + 0000 3f8ccccd 40019999 9999999a.*
> diff --git a/gas/testsuite/gas/riscv/float-le.d
> b/gas/testsuite/gas/riscv/float-le.d
> new file mode 100644
> index 00000000000..306abf6ece8
> --- /dev/null
> +++ b/gas/testsuite/gas/riscv/float-le.d
> @@ -0,0 +1,8 @@
> +# source: float.s
> +# objdump: -sj .data
> +# as: -mlittle-endian
> +
> +.*:[   ]+file format .*littleriscv
> +
> +Contents of section \.data:
> + 0000 cdcc8c3f 9a999999 99990140.*
> diff --git a/gas/testsuite/gas/riscv/float.s
> b/gas/testsuite/gas/riscv/float.s
> new file mode 100644
> index 00000000000..ddc0969595f
> --- /dev/null
> +++ b/gas/testsuite/gas/riscv/float.s
> @@ -0,0 +1,3 @@
> +       .data
> +       .float  1.1
> +       .double 2.2
> --
> 2.41.0
>
>
> --
> Andreas Schwab, SUSE Labs, schwab@suse.de
> GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE  1748 E4D4 88E3 0EEA B9D7
> "And now for something completely different."
>
  

Patch

diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c
index 7684fa7e06d..e915b82eafa 100644
--- a/gas/config/tc-riscv.c
+++ b/gas/config/tc-riscv.c
@@ -3693,7 +3693,7 @@  md_assemble (char *str)
 const char *
 md_atof (int type, char *litP, int *sizeP)
 {
-  return ieee_md_atof (type, litP, sizeP, TARGET_BYTES_BIG_ENDIAN);
+  return ieee_md_atof (type, litP, sizeP, target_big_endian);
 }
 
 void
diff --git a/gas/testsuite/gas/riscv/float-be.d b/gas/testsuite/gas/riscv/float-be.d
new file mode 100644
index 00000000000..ca6b23636ff
--- /dev/null
+++ b/gas/testsuite/gas/riscv/float-be.d
@@ -0,0 +1,8 @@ 
+# source: float.s
+# objdump: -sj .data
+# as: -mbig-endian
+
+.*:[ 	]+file format .*bigriscv
+
+Contents of section \.data:
+ 0000 3f8ccccd 40019999 9999999a.*
diff --git a/gas/testsuite/gas/riscv/float-le.d b/gas/testsuite/gas/riscv/float-le.d
new file mode 100644
index 00000000000..306abf6ece8
--- /dev/null
+++ b/gas/testsuite/gas/riscv/float-le.d
@@ -0,0 +1,8 @@ 
+# source: float.s
+# objdump: -sj .data
+# as: -mlittle-endian
+
+.*:[ 	]+file format .*littleriscv
+
+Contents of section \.data:
+ 0000 cdcc8c3f 9a999999 99990140.*
diff --git a/gas/testsuite/gas/riscv/float.s b/gas/testsuite/gas/riscv/float.s
new file mode 100644
index 00000000000..ddc0969595f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/float.s
@@ -0,0 +1,3 @@ 
+	.data
+	.float	1.1
+	.double	2.2