From: Andrew Pinski Date: Thu, 21 Nov 2019 20:53:02 +0000 (-0800) Subject: Fix "psb CSYNC" and "bti C". X-Git-Tag: binutils-2_34~698 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0a821c4f6de9b902fd663fb23ee187b9adf4f7c4;p=thirdparty%2Fbinutils-gdb.git Fix "psb CSYNC" and "bti C". psb CYSNC was not finding that CSYNC was a correct spelling. The problem was upper case version was being put in the wrong hashtable. This fixes the problem by using the correct hashtable. Also adds testcases for the upper case versions. * config/tc-aarch64.c (md_begin): Use correct hash table for uppercase version of hint. * testsuite/gas/aarch64/system-2.s: Extend psb case to uppercase. * testsuite/gas/aarch64/system-2.d: Update. Change-Id: If43f8b85cacd24840d596c3092b0345e5f212766 --- diff --git a/gas/ChangeLog b/gas/ChangeLog index b3affbbaa17..09991524da1 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,10 @@ +2019-11-25 Andrew Pinski + + * config/tc-aarch64.c (md_begin): Use correct + hash table for uppercase version of hint. + * testsuite/gas/aarch64/system-2.s: Extend psb case to uppercase. + * testsuite/gas/aarch64/system-2.d: Update. + 2019-11-25 Christian Eggers * as.h: Define SEC_OCTETS as SEC_ELF_OCTETS if OBJ_ELF. diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c index 77a9189e7a4..c2a6a1e75d0 100644 --- a/gas/config/tc-aarch64.c +++ b/gas/config/tc-aarch64.c @@ -8782,12 +8782,15 @@ md_begin (void) for (i = 0; aarch64_hint_options[i].name != NULL; i++) { const char* name = aarch64_hint_options[i].name; + const char* upper_name = get_upper_str(name); checked_hash_insert (aarch64_hint_opt_hsh, name, (void *) (aarch64_hint_options + i)); - /* Also hash the name in the upper case. */ - checked_hash_insert (aarch64_pldop_hsh, get_upper_str (name), - (void *) (aarch64_hint_options + i)); + + /* Also hash the name in the upper case if not the same. */ + if (strcmp (name, upper_name) != 0) + checked_hash_insert (aarch64_hint_opt_hsh, upper_name, + (void *) (aarch64_hint_options + i)); } /* Set the cpu variant based on the command-line options. */ diff --git a/gas/testsuite/gas/aarch64/bti.d b/gas/testsuite/gas/aarch64/bti.d index 4f65ee5485b..e1ac7005dff 100644 --- a/gas/testsuite/gas/aarch64/bti.d +++ b/gas/testsuite/gas/aarch64/bti.d @@ -10,3 +10,6 @@ Disassembly of section \.text: .*: d503245f bti c .*: d503249f bti j .*: d50324df bti jc +.*: d503245f bti c +.*: d503249f bti j +.*: d50324df bti jc diff --git a/gas/testsuite/gas/aarch64/bti.s b/gas/testsuite/gas/aarch64/bti.s index 42f199d7014..528447b4623 100644 --- a/gas/testsuite/gas/aarch64/bti.s +++ b/gas/testsuite/gas/aarch64/bti.s @@ -6,3 +6,7 @@ bti c bti j bti jc + + bti C + bti J + bti JC diff --git a/gas/testsuite/gas/aarch64/illegal-bti.l b/gas/testsuite/gas/aarch64/illegal-bti.l index 354c6f239ac..d18f8c57d29 100644 --- a/gas/testsuite/gas/aarch64/illegal-bti.l +++ b/gas/testsuite/gas/aarch64/illegal-bti.l @@ -3,3 +3,6 @@ [^:]*:[0-9]+: Error: selected processor does not support `bti c' [^:]*:[0-9]+: Error: selected processor does not support `bti j' [^:]*:[0-9]+: Error: selected processor does not support `bti jc' +[^:]*:[0-9]+: Error: selected processor does not support `bti C' +[^:]*:[0-9]+: Error: selected processor does not support `bti J' +[^:]*:[0-9]+: Error: selected processor does not support `bti JC' diff --git a/gas/testsuite/gas/aarch64/system-2.d b/gas/testsuite/gas/aarch64/system-2.d index bcf2b8eff1f..7896dfbeffe 100644 --- a/gas/testsuite/gas/aarch64/system-2.d +++ b/gas/testsuite/gas/aarch64/system-2.d @@ -10,3 +10,4 @@ Disassembly of section \.text: 4: d503221f esb 8: d503223f psb csync c: d503223f psb csync + 10: d503223f psb csync diff --git a/gas/testsuite/gas/aarch64/system-2.s b/gas/testsuite/gas/aarch64/system-2.s index 3402e7622da..d6194491969 100644 --- a/gas/testsuite/gas/aarch64/system-2.s +++ b/gas/testsuite/gas/aarch64/system-2.s @@ -7,4 +7,5 @@ /* Statistical profiling. */ psb csync + psb CSYNC hint #0x11