Commit Graph

119500 Commits

Author SHA1 Message Date
GDB Administrator
9263a7409a Automatic date update in version.in 2024-12-01 00:03:07 +00:00
GDB Administrator
70d3c8d023 Automatic date update in version.in 2024-11-30 00:01:27 +00:00
GDB Administrator
37057ea0fa Automatic date update in version.in 2024-11-29 00:00:33 +00:00
GDB Administrator
5ac471bc08 Automatic date update in version.in 2024-11-28 00:02:20 +00:00
Alan Modra
46873460b6 PR32387 ppc64 TLS optimization bug with -fno-plt code
The inline plt code emitted by gcc is incompatible with the
linker/ld.so --tls-get-addr-optimize scheme.  This is the runtime
optimisation where the first call to __tls_get_addr results in
__tls_get_addr updating the tls_index pair, then the special linker
stub using that to short-circuit second and subsequent calls for a
given tls symbol.  Enabled by default when the linker sees
__tls_get_addr_opt is preseent, and enabled in ld.so when DT_PPC64_OPT
has PPC64_OPT_TLS set.  Note that this is distinct from link-time tls
optimisation.

	PR 32387
	* elf64-ppc.c (ppc64_elf_check_relocs): Disable tls_get_addr_opt
	on detecting inline plt calls to __tls_get_addr.

(cherry picked from commit 1686dc7079)
2024-11-27 20:54:25 +10:30
GDB Administrator
2a0332b1d2 Automatic date update in version.in 2024-11-27 00:03:11 +00:00
GDB Administrator
bf181a1d7a Automatic date update in version.in 2024-11-26 00:03:39 +00:00
GDB Administrator
c365a127b2 Automatic date update in version.in 2024-11-25 00:03:44 +00:00
GDB Administrator
55d152f1f4 Automatic date update in version.in 2024-11-24 00:03:58 +00:00
GDB Administrator
785a1aaba1 Automatic date update in version.in 2024-11-23 00:03:25 +00:00
GDB Administrator
119b9da32c Automatic date update in version.in 2024-11-22 00:03:21 +00:00
GDB Administrator
78336e2592 Automatic date update in version.in 2024-11-21 00:02:39 +00:00
GDB Administrator
4dbf0681c9 Automatic date update in version.in 2024-11-20 00:02:11 +00:00
Sam James
059f365433
ld: fix -std=gnu23 compatibility wrt _Bool
GCC trunk now defaults to -std=gnu23. We return false in a few places
which can't work when true/false are a proper type (_Bool). Return NULL
where appropriate instead of false. All callers handle this appropriately.

ChangeLog:
	PR ld/32372

	* pdb.c (add_stream): Return NULL.

(cherry picked from commit bf447eec6d)
2024-11-19 06:41:06 +00:00
Sam James
74401db8de
binutils: fix -std=gnu23 compatibility wrt _Bool
GCC trunk now defaults to -std=gnu23. We return false in a few places
which can't work when true/false are a proper type (_Bool). Return NULL
where appropriate instead of false. All callers handle this appropriately.

ChangeLog:
	PR ld/32372

	* prdbg.c (visibility_name): Return NULL.

(cherry picked from commit eeff15bc88)
2024-11-19 06:40:54 +00:00
Sam James
3a88870559
opcodes: fix -std=gnu23 compatibility wrt static_assert
static_assert is declared in C23 so we can't reuse that identifier:
* Define our own static_assert conditionally;

* Rename "static assert" hacks to _N as we do already in some places
  to avoid a conflict.

ChangeLog:
	PR ld/32372

        * i386-gen.c (static_assert): Define conditionally.
        * mips-formats.h (MAPPED_INT): Rename identifier.
        (MAPPED_REG): Rename identifier.
        (OPTIONAL_MAPPED_REG): Rename identifier.
        * s390-opc.c (static_assert): Define conditionally.

(cherry picked from commit 8ebe62f3f0)
2024-11-19 06:40:43 +00:00
Sam James
cf23d68350
bfd: fix -std=gnu23 compatibility wrt _Bool
GCC trunk now defaults to -std=gnu23. We return false in a few places
which can't work when true/false are a proper type (_Bool). Return NULL
where appropriate instead of false. All callers handle this appropriately.

ChangeLog:
	PR ld/32372

	* elf32-ppc.c (ppc_elf_tls_setup): Return NULL.
        * elf32-xtensa.c (translate_reloc_bfd_fix): Ditto.
        (translate_reloc): Ditto.
        * elf64-ppc.c (update_local_sym_info): Ditto.
        * mach-o.c (bfd_mach_o_lookup_uuid_command): Ditto.
        * xsym.c (bfd_sym_read_name_table): Ditto.

(cherry picked from commit 931e4f9b09)
2024-11-19 06:40:35 +00:00
GDB Administrator
c6782bf043 Automatic date update in version.in 2024-11-19 00:02:24 +00:00
Jens Remus
d607533365 s390: Add arch15 Concurrent-Functions Facility insns
opcodes/
	* s390-opc.txt: Add arch15 Concurrent-Functions Facility
	instructions.
	* s390-opc.c (INSTR_SSF_RRDRD2, MASK_SSF_RRDRD2): New SSF
	instruction format variant.

gas/testsuite/
	* gas/s390/zarch-arch15.d: Tests for arch15 Concurrent-Functions
	Facility instructions.
	* gas/s390/zarch-arch15.s: Likewise.

Signed-off-by: Jens Remus <jremus@linux.ibm.com>
(cherry picked from commit 76445f36a2)
2024-11-18 11:05:32 +01:00
Jens Remus
0b9975f647 s390: Add arch15 instruction names
opcodes/
	* s390-opc.txt: Add arch15 instruction names.

Signed-off-by: Jens Remus <jremus@linux.ibm.com>
(cherry picked from commit b0588b2173)
2024-11-18 11:05:27 +01:00
GDB Administrator
d8aacdada4 Automatic date update in version.in 2024-11-18 00:01:21 +00:00
GDB Administrator
03ee0a9199 Automatic date update in version.in 2024-11-17 00:02:17 +00:00
GDB Administrator
0091a8c415 Automatic date update in version.in 2024-11-16 00:02:19 +00:00
GDB Administrator
f5ea3fa5da Automatic date update in version.in 2024-11-15 00:02:07 +00:00
GDB Administrator
a412d080f7 Automatic date update in version.in 2024-11-14 00:02:40 +00:00
GDB Administrator
a3c4a3b987 Automatic date update in version.in 2024-11-13 00:02:06 +00:00
GDB Administrator
98588f232e Automatic date update in version.in 2024-11-12 00:02:30 +00:00
GDB Administrator
b82e225057 Automatic date update in version.in 2024-11-11 00:01:37 +00:00
GDB Administrator
63c02ed19a Automatic date update in version.in 2024-11-10 00:00:45 +00:00
GDB Administrator
25c680e28e Automatic date update in version.in 2024-11-09 00:04:11 +00:00
GDB Administrator
3375dfb5f7 Automatic date update in version.in 2024-11-08 00:02:10 +00:00
GDB Administrator
c8723f8921 Automatic date update in version.in 2024-11-07 00:02:42 +00:00
GDB Administrator
188600df95 Automatic date update in version.in 2024-11-06 00:02:50 +00:00
GDB Administrator
a3566598fb Automatic date update in version.in 2024-11-05 00:03:04 +00:00
GDB Administrator
890dde33ca Automatic date update in version.in 2024-11-04 00:01:35 +00:00
GDB Administrator
c44b34ea75 Automatic date update in version.in 2024-11-03 00:02:30 +00:00
GDB Administrator
4e9d28ea40 Automatic date update in version.in 2024-11-02 00:00:50 +00:00
Alan Modra
280374309b PR32300, --dependency-file: link dependencies are not all collected
PR 32300
	PR 31904
Revert patch accidentally committed with 057a2b4c4b

(cherry picked from commit 6ecc44f698)
2024-11-01 15:45:01 +10:30
GDB Administrator
e2731c4c25 Automatic date update in version.in 2024-11-01 00:02:54 +00:00
GDB Administrator
a48e984763 Automatic date update in version.in 2024-10-31 00:02:00 +00:00
GDB Administrator
0e23526e1f Automatic date update in version.in 2024-10-30 00:02:17 +00:00
GDB Administrator
c794f42c3f Automatic date update in version.in 2024-10-29 00:02:58 +00:00
GDB Administrator
6caaa0a37d Automatic date update in version.in 2024-10-28 00:02:22 +00:00
GDB Administrator
cc88ee6d9a Automatic date update in version.in 2024-10-27 00:01:04 +00:00
GDB Administrator
d55971924b Automatic date update in version.in 2024-10-26 00:01:33 +00:00
GDB Administrator
263815e7c2 Automatic date update in version.in 2024-10-25 00:02:19 +00:00
Andreas Krebbel
263e116833 s390: Add arch15 instructions
opcodes/
	* s390-mkopc.c (main) Accept arch15 as CPU string.
	* s390-opc.txt: Add arch15 instructions.

include/
	* opcode/s390.h (enum s390_opcode_cpu_val): Add
	S390_OPCODE_ARCH15.

gas/
	* config/tc-s390.c (s390_parse_cpu): New entry for arch15.
	* doc/c-s390.texi: Document arch15 march option.
	* doc/as.texi: Likewise.
	* testsuite/gas/s390/s390.exp: Run the arch15 related tests.
	* testsuite/gas/s390/zarch-arch15.d: Tests for arch15
	instructions.
	* testsuite/gas/s390/zarch-arch15.s: Likewise.

Signed-off-by: Andreas Krebbel <krebbel@linux.ibm.com>
Reviewed-by: Jens Remus <jremus@linux.ibm.com>
(cherry picked from commit a98a6fa2d8)
2024-10-24 14:29:45 +02:00
Jens Remus
645da6d426 s390: Relax risbg[n]z, risb{h|l}gz, {rns|ros|rxs}bgt operand constraints
This leverages commit ("s390: Simplify (dis)assembly of insn operands
with const bits") to relax the operand constraints of the immediate
operand that contains the constant Z- or T-bit of the following extended
mnemonics:
risbgz, risbgnz, risbhgz, risblgz, rnsbgt, rosbgt, rxsbgt

Previously those instructions were the only ones where the assembler
on s390 restricted the specification of the subject I3/I4 operand values
exactly according to their specification to an unsigned 6- or 5-bit
unsigned integer. For any other instructions the assembler allows to
specify any operand value allowed by the instruction format, regardless
of whether the instruction specification is more restrictive.

Allow to specify the subject I3/I4 operand as unsigned 8-bit integer
with the constant operand bits being ORed during assembly.
Relax the instructions subject significant operand bit masks to only
consider the Z/T-bit as significant, so that the instructions get
disassembled as their *z or *t flavor regardless of whether any reserved
bits are set in addition to the Z/T-bit.
Adapt the rnsbg, rosbg, and rxsbg test cases not to inadvertently set
the T-bit in operand I3, as they otherwise get disassembled as their
rnsbgt, rosbgt, and rxsbgt counterpart.

This aligns GNU Assembler to LLVM Assembler.

opcodes/
	* s390-opc.c (U6_18, U5_27, U6_26): Remove.
	(INSTR_RIE_RRUUU2, INSTR_RIE_RRUUU3, INSTR_RIE_RRUUU4): Define
	as INSTR_RIE_RRUUU while retaining insn fmt mask.
	(MASK_RIE_RRUUU2, MASK_RIE_RRUUU3, MASK_RIE_RRUUU4): Treat only
	Z/T-bit of I3/I4 operand as significant.

gas/testsuite/
	* gas/s390/zarch-z10.s (rnsbg, rosbg, rxsbg): Do not set T-bit.

Reported-by: Dominik Steenken <dost@de.ibm.com>
Suggested-by: Ulrich Weigand <ulrich.weigand@de.ibm.com>
Signed-off-by: Jens Remus <jremus@linux.ibm.com>
(cherry picked from commit b8b60e2d0c)
2024-10-24 14:29:45 +02:00
Jens Remus
7f7047a9c6 s390: Simplify (dis)assembly of insn operands with const bits
Simplify assembly and disassembly of extended mnemonics with operands
with constant ORed bits:
Their instruction template already contains the respective constant
operand bits, as they are significant to distinguish the extended from
their base mnemonic. Operands are ORed into the instruction template.
Therefore it is not necessary to OR the constant bits into the operand
value during assembly in s390_insert_operand.
Additionally the constant operand bits from the instruction template
can be used to mask them from the operand value during disassembly in
s390_print_insn_with_opcode. For now do so for non-length unsigned
integer operands only.

The separate instruction formats need to be retained, as their masks
differ, which is relevant during disassembly to distinguish the base
and extended mnemonics from each other.

This affects the following extended mnemonics:
- vfaebs, vfaehs, vfaefs
- vfaezb, vfaezh, vfaezf
- vfaezbs, vfaezhs, vfaezfs
- vstrcbs, vstrchs, vstrcfs
- vstrczb, vstrczh, vstrczf
- vstrczbs, vstrczhs, vstrczfs
- wcefb, wcdgb
- wcelfb, wcdlgb
- wcfeb, wcgdb
- wclfeb, wclgdb
- wfisb, wfidb, wfixb
- wledb, wflrd, wflrx

include/
	* opcode/s390.h (S390_OPERAND_OR1, S390_OPERAND_OR2,
	S390_OPERAND_OR8): Remove.

opcodes/
	* s390-opc.c (U4_OR1_24, U4_OR2_24, U4_OR8_28): Remove.
	(INSTR_VRR_VVV0U1, INSTR_VRR_VVV0U2, INSTR_VRR_VVV0U3): Define
	as INSTR_VRR_VVV0U0 while retaining respective insn fmt mask.
	(INSTR_VRR_VV0UU8): Define as INSTR_VRR_VV0UU while retaining
	respective insn fmt mask.
	(INSTR_VRR_VVVU0VB1, INSTR_VRR_VVVU0VB2, INSTR_VRR_VVVU0VB3):
	Define as INSTR_VRR_VVVU0VB while retaining respective insn fmt
	mask.
	* s390-dis.c (s390_print_insn_with_opcode): Mask constant
	operand bits set in insn template of non-length unsigned
	integer operands.

gas/
	* config/tc-s390.c (s390_insert_operand): Do not OR constant
	operand value bits.

Signed-off-by: Jens Remus <jremus@linux.ibm.com>
(cherry picked from commit a3f1e7c56a)
2024-10-24 14:29:45 +02:00
Jens Remus
e759236450 s390: Align opcodes to lower-case
opcodes/
	* s390-opc.txt (rdp): Change opcode to lower-case.

Signed-off-by: Jens Remus <jremus@linux.ibm.com>
(cherry picked from commit 1afe02759f)
2024-10-24 14:29:45 +02:00