aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog9
-rw-r--r--gas/expr.c8
-rw-r--r--gas/testsuite/gas/sparc/pr20732.d14
-rw-r--r--gas/testsuite/gas/sparc/pr20732.s3
-rw-r--r--gas/testsuite/gas/sparc/sparc.exp1
5 files changed, 35 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 9711d3a..cefa501 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,12 @@
+2016-11-11 Nick Clifton <nickc@redhat.com>
+
+ 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 <szabolcs.nagy@arm.com>
* testsuite/gas/aarch64/pac.s: Add ARMv8.3 branch instruction tests.
diff --git a/gas/expr.c b/gas/expr.c
index 1cdd081..e8d553d 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 0000000..1d3ddbe
--- /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 0000000..265c880
--- /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 cba2d09..580656f 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*] {