From 86b80085c889cd388fa677a5ae9053fd4be3776c Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 11 Nov 2016 15:13:07 +0000 Subject: [PATCH] Accept L and LL suffixes to integer constants. PR gas/20732 * expr.c (integer_constant): If tc_allow_L_suffix is defined and non-zero then accept a L or LL suffix. * testsuite/gas/sparc/pr20732.d: New test source file. * testsuite/gas/sparc/pr20732.d: New test output file. * testsuite/gas/sparc/sparc.exp: Run new test. --- gas/ChangeLog | 9 +++++++++ gas/expr.c | 8 ++++++++ gas/testsuite/gas/sparc/pr20732.d | 14 ++++++++++++++ gas/testsuite/gas/sparc/pr20732.s | 3 +++ gas/testsuite/gas/sparc/sparc.exp | 1 + 5 files changed, 35 insertions(+) create mode 100644 gas/testsuite/gas/sparc/pr20732.d create mode 100644 gas/testsuite/gas/sparc/pr20732.s diff --git a/gas/ChangeLog b/gas/ChangeLog index 9711d3a23c6..cefa50176f3 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,12 @@ +2016-11-11 Nick Clifton + + PR gas/20732 + * expr.c (integer_constant): If tc_allow_L_suffix is defined and + non-zero then accept a L or LL suffix. + * testsuite/gas/sparc/pr20732.d: New test source file. + * testsuite/gas/sparc/pr20732.d: New test output file. + * testsuite/gas/sparc/sparc.exp: Run new test. + 2016-11-11 Szabolcs Nagy * testsuite/gas/aarch64/pac.s: Add ARMv8.3 branch instruction tests. diff --git a/gas/expr.c b/gas/expr.c index 1cdd081322f..e8d553dd422 100644 --- a/gas/expr.c +++ b/gas/expr.c @@ -515,6 +515,14 @@ integer_constant (int radix, expressionS *expressionP) if (tc_allow_U_suffix && (c == 'U' || c == 'u')) c = * input_line_pointer++; +#ifndef tc_allow_L_suffix +#define tc_allow_L_suffix 1 +#endif + /* PR 20732: Look for, and ignore, a L or LL suffix to the number. */ + if (tc_allow_L_suffix) + while (c == 'L' || c == 'l') + c = * input_line_pointer++; + if (small) { /* Here with number, in correct radix. c is the next char. diff --git a/gas/testsuite/gas/sparc/pr20732.d b/gas/testsuite/gas/sparc/pr20732.d new file mode 100644 index 00000000000..1d3ddbe9f64 --- /dev/null +++ b/gas/testsuite/gas/sparc/pr20732.d @@ -0,0 +1,14 @@ +#as: +#objdump: -dr --prefix-addresses +#name: PR20732 - make sure that the L and LL suffix is accepted on constant values + +.*: +file format .* + +Disassembly of section .text: +[0x]+000.*sethi[ ]+%hi\(0x3b9ac800\), %l5 +[0x]+004.*or[ ]+%l5, 0x200, %l5.* +[0x]+008.*sethi[ ]+%hi\(0x3b9ac800\), %l5 +[0x]+00c.*or[ ]+%l5, 0x200, %l5.* +[0x]+010.*sethi[ ]+%hi\(0x3b9ac800\), %l5 +[0x]+014.*or[ ]+%l5, 0x200, %l5.* +#pass diff --git a/gas/testsuite/gas/sparc/pr20732.s b/gas/testsuite/gas/sparc/pr20732.s new file mode 100644 index 00000000000..265c88002a2 --- /dev/null +++ b/gas/testsuite/gas/sparc/pr20732.s @@ -0,0 +1,3 @@ +set 1000000000, %l5 +set 1000000000L, %l5 +set 1000000000LL, %l5 diff --git a/gas/testsuite/gas/sparc/sparc.exp b/gas/testsuite/gas/sparc/sparc.exp index cba2d099bd4..580656f6408 100644 --- a/gas/testsuite/gas/sparc/sparc.exp +++ b/gas/testsuite/gas/sparc/sparc.exp @@ -101,6 +101,7 @@ if [istarget sparc*-*-*] { run_list_test "pr19910-2" run_dump_test "dcti-couples-v8" run_dump_test "dcti-couples-v9c" + run_dump_test "pr20732" } if [istarget sparc-*-vxworks*] { -- 2.30.2