Commit Graph

121141 Commits

Author SHA1 Message Date
Jan Beulich
d99c62deef HP-PA: use is_whitespace()
Convert open-coded checks. At the same time use is_end_of_stmt() instead
of an open-coded check in adjacent code.
2025-02-03 12:02:50 +01:00
Jan Beulich
e782acb1c9 H8/300: use is_whitespace()
Wherever blanks are permissible in input, tabs ought to be permissible,
too. This is particularly relevant when -f is passed to gas (alongside
appropriate input). At the same time use is_end_of_stmt() instead of an
open-coded check in adjacent code.
2025-02-03 12:02:38 +01:00
Jan Beulich
6cbfc6bf23 ft32: use is_whitespace()
Wherever blanks are permissible in input, tabs ought to be permissible,
too. This is particularly relevant when -f is passed to gas (alongside
appropriate input). Also switch ISSPACE() uses over. At the same time
use is_end_of_stmt() instead of open-coded checks in adjacent code.
2025-02-03 12:02:09 +01:00
Jan Beulich
21c901a95d fr30: use is_whitespace()
Convert open-coded checks. At the same time use is_end_of_stmt() instead
of an open-coded check in adjacent code.
2025-02-03 12:01:59 +01:00
Jan Beulich
6b6b9c89a4 Epiphany: use is_whitespace()
Wherever blanks are permissible in input, tabs ought to be permissible,
too. This is particularly relevant when -f is passed to gas (alongside
appropriate input).
2025-02-03 11:59:38 +01:00
Jan Beulich
f96763060e CRx: use is_whitespace()
Wherever blanks are permissible in input, tabs ought to be permissible,
too. This is particularly relevant when -f is passed to gas (alongside
appropriate input). Also switch ISSPACE() uses over.
2025-02-03 11:59:22 +01:00
Jan Beulich
592d103956 cris: use is_whitespace()
Switch ISSPACE() uses over.

Unlike many other targets, limiting whitespace checks to just blanks is
deemed okay here: Compilers wanting to use -f / #NO_APP are apparently
required to emit only blanks (without this being written down anywhere).
2025-02-03 11:59:00 +01:00
Jan Beulich
8ea3237411 CR16: use is_whitespace()
Wherever blanks are permissible in input, tabs ought to be permissible,
too. This is particularly relevant when -f is passed to gas (alongside
appropriate input). Also switch ISSPACE() uses over.
2025-02-03 11:58:49 +01:00
Jan Beulich
8075b3eb66 C-Sky: use is_whitespace()
Wherever blanks are permissible in input, tabs ought to be permissible,
too. This is particularly relevant when -f is passed to gas (alongside
appropriate input). Also switch ISSPACE() uses over. At the same time
use is_end_of_stmt() instead of kind-of-open-coded checks.
2025-02-03 11:58:32 +01:00
Jan Beulich
81675c78e2 dlx: use is_whitespace()
Wherever blanks are permissible in input, tabs ought to be permissible,
too. This is particularly relevant when -f is passed to gas (alongside
appropriate input). Also convert open-coded checks where tabs were
already included.
2025-02-03 11:56:25 +01:00
Jan Beulich
2ce2556f84 d30v: use is_whitespace()
Wherever blanks are permissible in input, tabs ought to be permissible,
too. This is particularly relevant when -f is passed to gas (alongside
appropriate input). Also convert open-coded checks where tabs were
already included. At the same time use is_end_of_stmt() instead of open-
coded checks in adjacent code.
2025-02-03 11:56:13 +01:00
Jan Beulich
7c65d9d06f d10v: use is_whitespace()
Wherever blanks are permissible in input, tabs ought to be permissible,
too. This is particularly relevant when -f is passed to gas (alongside
appropriate input). Also convert open-coded checks where tabs were
already included. At the same time use is_end_of_stmt() instead of open-
coded checks in adjacent code.
2025-02-03 11:56:04 +01:00
Jan Beulich
72c260c6af bpf: use is_whitespace()
Wherever blanks are permissible in input, tabs ought to be permissible,
too. This is particularly relevant when -f is passed to gas (alongside
appropriate input). Various redundant nul char checks are also dropped,
where adjacent. At the same time use is_end_of_stmt() instead of an
open-coded nul char check.
2025-02-03 11:55:54 +01:00
Jan Beulich
3d782a7988 bfin: use is_whitespace()
Wherever blanks are permissible in input, tabs ought to be permissible,
too. This is particularly relevant when -f is passed to gas (alongside
appropriate input).
2025-02-03 11:55:40 +01:00
Jan Beulich
4f6f094446 gas/obj-*.c: use is_whitespace()
... for consistency of recognition of what is deemed whitespace.

In obj_elf_section_name() also generalize end-of-statement recognition
at the same time. Conversely drop the unused SKIP_SEMI_COLON() for COFF.
2025-02-03 11:55:23 +01:00
Jan Beulich
6295f4c569 avr: use is_whitespace()
Wherever blanks are permissible in input, tabs ought to be permissible,
too. This is particularly relevant when -f is passed to gas (alongside
appropriate input).
2025-02-03 11:50:43 +01:00
Jan Beulich
a51c80b8ed aarch64: use is_whitespace()
Wherever blanks are permissible in input, tabs ought to be permissible,
too. This is particularly relevant when -f is passed to gas (alongside
appropriate input).
2025-02-03 11:50:30 +01:00
Jan Beulich
c2b89e928b Arm: use is_whitespace()
Wherever blanks are permissible in input, tabs ought to be permissible,
too. This is particularly relevant when -f is passed to gas (alongside
appropriate input). At the same time use is_end_of_stmt() instead of an
open-coded nul char check.

In parse_neon_type() be more aggressive and remove the special casing of
certain characters altogether. The original default case simply having
"break" can't have been correct.
2025-02-03 11:50:20 +01:00
Jan Beulich
6dbfaa3fb3 arc: use is_whitespace()
Wherever blanks are permissible in input, tabs ought to be permissible,
too. This is particularly relevant when -f is passed to gas (alongside
appropriate input). At the same time use is_end_of_stmt() instead of
open-coded nul char checks.
2025-02-03 11:50:03 +01:00
Jan Beulich
58e59144c7 Alpha/EVAX: use is_whitespace() / is_end_of_stmt()
Don't open-code checking for ' ', '\t', and statement ending chars.
2025-02-03 11:49:48 +01:00
Jan Beulich
e8efdd32b5 gas: consolidate whitespace recognition
Let's extend lex_type[] to also cover whitespace, then having a simple
macro to uniformly recognize both blanks and tabs (and \r when it's not
EOL) as such.

In macro.c use sb_skip_white() as appropriate, instead of open-coding
it.
2025-02-03 11:48:55 +01:00
GDB Administrator
a450dd002f Automatic date update in version.in 2025-02-03 00:00:08 +00:00
Tom Tromey
8ec54fab7b Avoid "text file busy" in dw2-using-debug-str.exp
When I run:

    runtest dw2-using-debug-str.exp

... if I examine the gdb.log, I see:

    objcopy: unable to copy file '[...]/dw2-using-debug-str'; reason: Text file busy

This happens because the inferior is still running, and objcopy --
despite the invocation seemingly not needing this -- tries to open it
for writing.

This patch works around the objcopy oddity by having gdb exit (killing
the inferior) before the invocation.

Fixing this points out that the test does not work in the
--target_board=cc-with-gdb-index case.  This patch also arranges to
issue an "untested" here.
2025-02-02 10:44:17 -07:00
GDB Administrator
6e8c287967 Automatic date update in version.in 2025-02-02 00:00:10 +00:00
Tom Tromey
7d303b5799 Remove obsolete test from gdb.cp/var-tag.exp
There is a test in gdb.cp/var-tag.exp that is kfail'd.  I happened
across this while working on another series and found that the PR it
referenced was closed as invalid.  On that basis I think the test
should be deleted.

Reviewed-By: Keith Seitz <keiths@redhat.com>
2025-01-31 17:29:03 -07:00
Tom Tromey
47df9f43ef Show type- and function-domain in maint print psymbols
I neglected to update "maint print psymbols" when adding TYPE_DOMAIN
and FUNCTION_DOMAIN.  This would have been mildly helpful when
debugging a series I am working on.  This patch corrects the
oversight.

Approved-By: Andrew Burgess <aburgess@redhat.com>
2025-01-31 17:27:21 -07:00
GDB Administrator
07040558e6 Automatic date update in version.in 2025-02-01 00:00:14 +00:00
Tom Tromey
e30206560f Use "false" when setting cli_styling
I noticed a spot that uses 0 where "false" is more appropriate.
2025-01-31 14:23:32 -07:00
Tom Tromey
7684805941 Add space in name of Rust tuple type
The Rust compiler emits tuple type names with a space after the comma,
like "(i32, f64)".  This changes rust-parse.c to follow.  This isn't
ideal -- probably the DWARF reader should canonicalize these names --
but it is a bit more robust if symbol lookup should change; and anyway
this feature of gdb is probably rarely used.
2025-01-31 09:01:38 -07:00
Andrew Carlotti
71e59ebefc aarch64: Support +sme+nosve permissively
There is inconsistency regarding whether or not +sme implies +sve2 and
whether +nosve2 implies +nosme.  In particular, GCC 14 assumes the
dependency exists, and canonicalises target strings accordingly, whereas
LLVM treats the features as independent.

This patch removes the positive implication while retaining the negative
implication.  This is the more permissive choice in each case, and
allows us to support target strings written with either interpretation
in mind.

This reduces our ability to detect invalid instructions, but we already
can't rely on this detection because gas doesn't know whether functions
might be executed in streaming mode and/or non-streaming mode.

The aarch64_feature_enable_set change is functionally redundant within
this patch.  It is included because the longer term intention is to
instead remove the workaround in aarch64_parse_features, once the
internal feature checks have been modified to support having both
AARCH64_FEATURE_SME set and AARCH64_FEATURE_SVE unset.

Similarly, the dependency from +sme to +fp16 is currently redundant, but
this redundancy relies upon an incorrect dependency from +fcma to +fp16.
This can be fixed in the future, but it might require modifying internal
feature checks for a few FCMA instructions, so it's left unchanged for
now.
2025-01-31 15:16:44 +00:00
Andrew Carlotti
99b90c4611 aarch64: Fix fp8 feature dependencies
We agreed with LLVM that we shouldn't enforce the architectural
dependencies between fp8 muliplication features, so remove them.

Additionally, fix a typo in the gating for FEAT_SME_F8F16 instructions,
which were mistakenly gated by +sme-f8f32 instead.  Until now this
mistake had been masked by the dependency between the features.
2025-01-31 15:16:44 +00:00
Andrew Carlotti
0fad7627cf aarch64: Fix overly lax +frintts dependency
We agreed with LLVM that +frintts should only enable +fp, not +simd.
This also matches the dependency used in GCC.
2025-01-31 15:16:43 +00:00
Lulu Cai
a73d904700 LoongArch: Do not relax against __[start|stop]_SECNAME symbol 2025-01-31 10:38:14 +00:00
Jan Beulich
43a7719af5 x86/APX: correct libbfd's EVEX Rn -> Bn transformations
In the recent GOTPCREL addition I screwed up, in clearing the Rn bits
afterwards rather than setting them. While that ought to be benign (for
the bits being ignored in situations like this), we still want to leave
"canonical" encodings.

The pre-existing GOTTPOFF conversion wasn't doing quite correctly
either: We cannot assume the incoming Bn bits to be in a particular
state, as for the addressing form in question they're ignored as well.

To address both, introduce a helper function. This is then also an
overall reduction of (source) code size (and use of "magic" numbers).
2025-01-31 10:07:54 +01:00
Jan Beulich
b2d844097b x86/APX: GETSEC cannot be used with REX2
It lives in a "forbidden" row, yet its disassembler table entry was
lacking a respective marker.
2025-01-31 10:07:32 +01:00
Jan Beulich
d188bb12f7 x86: support RMPREAD insn
Like for RMPUPDATE documentation is about to change as far as operands
are concerned. They're merely the other way around here.

While adjustind gas documentation, also add the missing RMPQUERY
counterparts there.
2025-01-31 10:06:02 +01:00
Jan Beulich
4612bba098 x86: RMPUPDATE wants operands in different form
AMD are about to update their doc, to help clarify that what we
currently do isn't quite right: In particular it is not %rax but %rcx
which is affected by address size. In fact, that's a normal memory
operand, just not expressed via ModR/M byte, but fixed to (%rcx) (or
(%ecx) with 32-bit addressing).

To support this in the assembler, generalize memory operand handling so
far specific to XLAT (which isn't really a string insn, but requires its
memory operand to be (%bx) / (%ebx) / (%rbx)).

In the disassembler mimic handling after XLAT's, too.
2025-01-31 10:05:36 +01:00
Jan Beulich
36fa5275c1 x86-64: omit "default" segment prefixes from string insn disassembly
Printing implicit %ds: and %es: prefixes is pretty meaningless in 64-bit
mode. The SDM explicitly omits them for the 64-bit forms, and it
obviously has them for the other ones only to cover non-64-bit modes
(oddly enough the AMD PM has them present).
2025-01-31 10:04:45 +01:00
Jan Beulich
77ad112d8c RISC-V: widen LEB128 support
Do away with at least one of the limitations - all other targets permit
multiple values to be specified with a single directive. Re-arrange the
logic further to also overcome an internal error in
riscv_insert_uleb128_fixes(), as e.g. observed by the all/sleb128-2
testcase. This way there's also no need to parse expressions twice,
thus also not raising the same diagnostics (if any) twice.

Note how this addresses a pre-existing XFAIL (where the comment wasn't
really applicable either for RISC-V).

Also update documentation, also to mention that differences between
symbols may be used with .uleb128 (albeit I'm uncertain whether there
are limitations).
2025-01-31 10:04:01 +01:00
Tom Tromey
114434a1f1 Use "require" a two gdb.dwarf2 test files
A couple of ".tcl" files in gdb.dwarf2 escaped notice during the
"require" refactoring.  This patch fixes these to use "require" rather
than if/return.
2025-01-30 22:51:49 -07:00
GDB Administrator
36e173e092 Automatic date update in version.in 2025-01-31 00:00:07 +00:00
Alexandra Hájková
202655d42a gdb: add first gdbreplay test, connect.exp
When the changes on the remote protocol are made,
we want to test all the corner cases to prevent
regressions.  Currently it can be tricky to simulate
some corner case conditions that would expose possible
regressions.  When I want to add or change the remote
protocol packet, I need to hack gdbserver to send a
corrupted packet or an error to make sure GDB is able
to handle such a case.

This test makes it easy to send a corruped packet or
an error message to GDB using the gdbreplay tool and
check GDB deals with it as we expect it to.

This test starts a communication with gdbsever setting
the remotelog file.  Then, it modifies the remotelog with
update_log proc, injects an error message instead of
the expected replay to the vMustReplyEmpty packet in order
to test GDB reacts to the error response properly.  After
the remotelog modification, this test restarts GDB and starts
communication with gdbreply instead of the gdbserver using
the remotelog.

Add a lib/gdbreplay-support.exp.  update_log proc matches lines
from GDB to gdbserver in a remotelogfile.  Once a match is found then
the custom line is used to build a replacement line to send from
gdbserver to GDB.

Approved-By: Andrew Burgess <aburgess@redhat.com>
2025-01-30 20:37:12 +01:00
Tom Tromey
f77f3d6d9c Re-enable background reading
All the reported races have been fixed, so this patch re-enabled
background DWARF reading.

Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=31751
Tested-By: Tom de Vries <tdevries@suse.de>
2025-01-30 11:30:57 -07:00
Simon Marchi
d0cfeca7e9 gdb: remove unused includes from dwarf2/index-write.c
These includes are reported as unused by clangd.

Change-Id: Ibf3cdc881abad5f5969edca623412ceac7212149
2025-01-30 12:46:54 -05:00
Simon Marchi
bbd252584f gdb: remove includes from dwarf2/mapped-index.h
They are unused, according to clangd.

Add some includes to other files, which were relying on transitive
includes.

Change-Id: I3bcb4be93b3a18bf44a4068f4067e567f83e1d4f
2025-01-30 12:46:54 -05:00
Simon Marchi
7bdf69f1c1 gdb: remove unused include from dwarf2/read.c
It is unused, according to clangd.

Change-Id: Ieadb84a2b1953b70d82a28775472fd347a809a62
2025-01-30 12:46:54 -05:00
Simon Marchi
21a793bf8d gdb: remove unused include, add forward declaration in dwarf2/parent-map.h
dwarf2_per_bfd is used but never declared in this file, forward-declare
it.

dwarf2/types.h is unused, according to clangd.

Change-Id: I324b68894008af20307030c9e36c5abe06e36a78
2025-01-30 12:46:54 -05:00
Simon Marchi
707e7716f0 gdb: remove unused include in symtab.h
This include is unused, according to clangd.

Change-Id: Ifbc2fe75b02c9ae9b3e2f1184bbcc4dc7095a554
2025-01-30 12:46:54 -05:00
Simon Marchi
45f211f15e gdb: include symtab.h in quick-symbol.h
quick-symbol.h uses domain_search_flags, defined in symtab.h.

Change-Id: I5c4ae272da929eb6a8dd593bcd96a2aacf0ca99f
2025-01-30 12:46:54 -05:00
Nick Clifton
f5d5d53e80 Remove a couple of entries in the binutils MAINTAINERS file 2025-01-30 16:01:02 +00:00