Compare commits
No commits in common. "a8-beta" and "c8-beta" have entirely different histories.
@ -1,32 +0,0 @@
|
|||||||
From 51f6e7a9f4210aed0f8156c1d2e348de6f96f37d Mon Sep 17 00:00:00 2001
|
|
||||||
From: "H.J. Lu" <hjl.tools@gmail.com>
|
|
||||||
Date: Thu, 18 Mar 2021 18:34:38 -0700
|
|
||||||
Subject: [PATCH] DWARF: Check version >= 3 for DW_FORM_ref_addr
|
|
||||||
|
|
||||||
Check version >= 3, instead of version == 3 || version == 4, for
|
|
||||||
DW_FORM_ref_addr.
|
|
||||||
|
|
||||||
bfd/
|
|
||||||
|
|
||||||
PR ld/27587
|
|
||||||
* dwarf2.c (read_attribute_value): Check version >= 3 for
|
|
||||||
DW_FORM_ref_addr.
|
|
||||||
|
|
||||||
ld/
|
|
||||||
|
|
||||||
---
|
|
||||||
bfd/dwarf2.c | 2 +-
|
|
||||||
|
|
||||||
diff --git a/bfd/dwarf2.c b/bfd/dwarf2.c
|
|
||||||
index b42e641aa3b9..1d5ddef33293 100644
|
|
||||||
--- a/bfd/dwarf2.c
|
|
||||||
+++ b/bfd/dwarf2.c
|
|
||||||
@@ -1213,7 +1213,7 @@ read_attribute_value (struct attribute * attr,
|
|
||||||
case DW_FORM_ref_addr:
|
|
||||||
/* DW_FORM_ref_addr is an address in DWARF2, and an offset in
|
|
||||||
DWARF3. */
|
|
||||||
- if (unit->version == 3 || unit->version == 4)
|
|
||||||
+ if (unit->version >= 3)
|
|
||||||
{
|
|
||||||
if (unit->offset_size == 4)
|
|
||||||
attr->u.val = read_4_bytes (unit->abfd, info_ptr, info_ptr_end);
|
|
@ -1,170 +0,0 @@
|
|||||||
From 97bf40d859ffe44892b3ad2c62f011fd26fca699 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Alan Modra <amodra@gmail.com>
|
|
||||||
Date: Mon, 5 Apr 2021 08:17:06 +0930
|
|
||||||
Subject: [PATCH] PR27676, PowerPC missing extended dcbt, dcbtst mnemonics
|
|
||||||
|
|
||||||
Note that this doesn't implement the ISA to the letter regarding
|
|
||||||
dcbtds (and dcbtstds), which says that the TH field may be zero. That
|
|
||||||
doesn't make sense because allowing TH=0 would mean you no long have a
|
|
||||||
dcbtds but rather a dcbtct instruction. I'm interpreting the ISA
|
|
||||||
wording about allowing TH=0 to mean that the TH field of dcbtds is
|
|
||||||
optional (in which case the TH value is 0b1000).
|
|
||||||
|
|
||||||
opcodes/
|
|
||||||
PR 27676
|
|
||||||
* ppc-opc.c (DCBT_EO): Move earlier.
|
|
||||||
(insert_thct, extract_thct, insert_thds, extract_thds): New functions.
|
|
||||||
(powerpc_operands): Add THCT and THDS entries.
|
|
||||||
(powerpc_opcodes): Add dcbtstct, dcbtstds, dcbna, dcbtct, dcbtds.
|
|
||||||
gas/
|
|
||||||
* testsuite/gas/ppc/power4_32.d: Update.
|
|
||||||
---
|
|
||||||
gas/testsuite/gas/ppc/power4_32.d | 6 +--
|
|
||||||
opcodes/ppc-opc.c | 89 ++++++++++++++++++++++++++++---
|
|
||||||
|
|
||||||
diff --git a/gas/testsuite/gas/ppc/power4_32.d b/gas/testsuite/gas/ppc/power4_32.d
|
|
||||||
index 39c80dd4d2e5..8396d7d294fb 100644
|
|
||||||
--- a/gas/testsuite/gas/ppc/power4_32.d
|
|
||||||
+++ b/gas/testsuite/gas/ppc/power4_32.d
|
|
||||||
@@ -41,7 +41,7 @@ Disassembly of section \.text:
|
|
||||||
7c: (7c 01 17 ec|ec 17 01 7c) dcbz r1,r2
|
|
||||||
80: (7c 23 27 ec|ec 27 23 7c) dcbzl r3,r4
|
|
||||||
84: (7c 05 37 ec|ec 37 05 7c) dcbz r5,r6
|
|
||||||
- 88: (7c 05 32 2c|2c 32 05 7c) dcbt r5,r6
|
|
||||||
- 8c: (7c 05 32 2c|2c 32 05 7c) dcbt r5,r6
|
|
||||||
- 90: (7d 05 32 2c|2c 32 05 7d) dcbt r5,r6,8
|
|
||||||
+ 88: (7c 05 32 2c|2c 32 05 7c) dcbtct r5,r6
|
|
||||||
+ 8c: (7c 05 32 2c|2c 32 05 7c) dcbtct r5,r6
|
|
||||||
+ 90: (7d 05 32 2c|2c 32 05 7d) dcbtds r5,r6
|
|
||||||
#pass
|
|
||||||
diff --git a/opcodes/ppc-opc.c b/opcodes/ppc-opc.c
|
|
||||||
index 97982ab7e754..025a2ba2fba7 100644
|
|
||||||
--- a/opcodes/ppc-opc.c
|
|
||||||
+++ b/opcodes/ppc-opc.c
|
|
||||||
@@ -2205,6 +2205,74 @@ extract_sxl (uint64_t insn,
|
|
||||||
return 1;
|
|
||||||
return (insn >> 11) & 0x1;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+/* The list of embedded processors that use the embedded operand ordering
|
|
||||||
+ for the 3 operand dcbt and dcbtst instructions. */
|
|
||||||
+#define DCBT_EO (PPC_OPCODE_E500 | PPC_OPCODE_E500MC | PPC_OPCODE_476 \
|
|
||||||
+ | PPC_OPCODE_A2)
|
|
||||||
+
|
|
||||||
+/* ISA 2.03 and later specify extended mnemonics dcbtct, dcbtds, and
|
|
||||||
+ dcbtstct, dcbtstds with a note saying these should be used in new
|
|
||||||
+ programs rather than the base mnemonics "so that it can be coded
|
|
||||||
+ with TH as the last operand for all categories". For that reason
|
|
||||||
+ the extended mnemonics are enabled in the assembler for the
|
|
||||||
+ embedded processors, but not for the disassembler so as to display
|
|
||||||
+ the embedded dcbt or dcbtst expected form with TH first for
|
|
||||||
+ embedded programmers. */
|
|
||||||
+
|
|
||||||
+static uint64_t
|
|
||||||
+insert_thct (uint64_t insn,
|
|
||||||
+ int64_t value,
|
|
||||||
+ ppc_cpu_t dialect ATTRIBUTE_UNUSED,
|
|
||||||
+ const char **errmsg)
|
|
||||||
+{
|
|
||||||
+ if ((uint64_t) value > 7)
|
|
||||||
+ *errmsg = _("invalid TH value");
|
|
||||||
+ return insn | ((value & 7) << 21);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int64_t
|
|
||||||
+extract_thct (uint64_t insn,
|
|
||||||
+ ppc_cpu_t dialect,
|
|
||||||
+ int *invalid)
|
|
||||||
+{
|
|
||||||
+ /* Missing optional operands have a value of 0. */
|
|
||||||
+ if (*invalid < 0)
|
|
||||||
+ return 0;
|
|
||||||
+
|
|
||||||
+ int64_t value = (insn >> 21) & 0x1f;
|
|
||||||
+ if (value > 7 || (dialect & DCBT_EO) != 0)
|
|
||||||
+ *invalid = 1;
|
|
||||||
+
|
|
||||||
+ return value;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static uint64_t
|
|
||||||
+insert_thds (uint64_t insn,
|
|
||||||
+ int64_t value,
|
|
||||||
+ ppc_cpu_t dialect ATTRIBUTE_UNUSED,
|
|
||||||
+ const char **errmsg)
|
|
||||||
+{
|
|
||||||
+ if (value < 8 || value > 15)
|
|
||||||
+ *errmsg = _("invalid TH value");
|
|
||||||
+ return insn | ((value & 0x1f) << 21);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int64_t
|
|
||||||
+extract_thds (uint64_t insn,
|
|
||||||
+ ppc_cpu_t dialect,
|
|
||||||
+ int *invalid)
|
|
||||||
+{
|
|
||||||
+ /* Missing optional operands have a value of 8. */
|
|
||||||
+ if (*invalid < 0)
|
|
||||||
+ return 8;
|
|
||||||
+
|
|
||||||
+ int64_t value = (insn >> 21) & 0x1f;
|
|
||||||
+ if (value < 8 || value > 15 || (dialect & DCBT_EO) != 0)
|
|
||||||
+ *invalid = 1;
|
|
||||||
+
|
|
||||||
+ return value;
|
|
||||||
+}
|
|
||||||
|
|
||||||
/* The operands table.
|
|
||||||
|
|
||||||
@@ -2402,10 +2470,18 @@ const struct powerpc_operand powerpc_operands[] =
|
|
||||||
#define MO CT
|
|
||||||
{ 0x1f, 21, NULL, NULL, PPC_OPERAND_OPTIONAL },
|
|
||||||
|
|
||||||
+ /* The TH field in dcbtct. */
|
|
||||||
+#define THCT CT + 1
|
|
||||||
+ { 0x1f, 21, insert_thct, extract_thct, PPC_OPERAND_OPTIONAL },
|
|
||||||
+
|
|
||||||
+ /* The TH field in dcbtds. */
|
|
||||||
+#define THDS THCT + 1
|
|
||||||
+ { 0x1f, 21, insert_thds, extract_thds, PPC_OPERAND_OPTIONAL },
|
|
||||||
+
|
|
||||||
/* The D field in a D form instruction. This is a displacement off
|
|
||||||
a register, and implies that the next operand is a register in
|
|
||||||
parentheses. */
|
|
||||||
-#define D CT + 1
|
|
||||||
+#define D THDS + 1
|
|
||||||
{ 0xffff, 0, NULL, NULL, PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED },
|
|
||||||
|
|
||||||
/* The D8 field in a D form instruction. This is a displacement off
|
|
||||||
@@ -4211,12 +4287,6 @@ const unsigned int num_powerpc_operands = (sizeof (powerpc_operands)
|
|
||||||
#define PPCHTM PPC_OPCODE_POWER8
|
|
||||||
#define E200Z4 PPC_OPCODE_E200Z4
|
|
||||||
#define PPCLSP PPC_OPCODE_LSP
|
|
||||||
-/* The list of embedded processors that use the embedded operand ordering
|
|
||||||
- for the 3 operand dcbt and dcbtst instructions. */
|
|
||||||
-#define DCBT_EO (PPC_OPCODE_E500 | PPC_OPCODE_E500MC | PPC_OPCODE_476 \
|
|
||||||
- | PPC_OPCODE_A2)
|
|
||||||
-
|
|
||||||
-
|
|
||||||
|
|
||||||
/* The opcode table.
|
|
||||||
|
|
||||||
@@ -6592,6 +6662,8 @@ const struct powerpc_opcode powerpc_opcodes[] = {
|
|
||||||
{"mtvsrwz", X(31,243), XX1RB_MASK, PPCVSX2, 0, {XT6, RA}},
|
|
||||||
|
|
||||||
{"dcbtstt", XRT(31,246,0x10), XRT_MASK, POWER7, 0, {RA0, RB}},
|
|
||||||
+{"dcbtstct", X(31,246), X_MASK, POWER4, 0, {RA0, RB, THCT}},
|
|
||||||
+{"dcbtstds", X(31,246), X_MASK, POWER4, 0, {RA0, RB, THDS}},
|
|
||||||
{"dcbtst", X(31,246), X_MASK, POWER4, DCBT_EO, {RA0, RB, CT}},
|
|
||||||
{"dcbtst", X(31,246), X_MASK, DCBT_EO, 0, {CT, RA0, RB}},
|
|
||||||
{"dcbtst", X(31,246), X_MASK, PPC, POWER4|DCBT_EO, {RA0, RB}},
|
|
||||||
@@ -6643,6 +6715,9 @@ const struct powerpc_opcode powerpc_opcodes[] = {
|
|
||||||
{"lscbx.", XRC(31,277,1), X_MASK, M601, 0, {RT, RA, RB}},
|
|
||||||
|
|
||||||
{"dcbtt", XRT(31,278,0x10), XRT_MASK, POWER7, 0, {RA0, RB}},
|
|
||||||
+{"dcbna", XRT(31,278,0x11), XRT_MASK, POWER10, 0, {RA0, RB}},
|
|
||||||
+{"dcbtct", X(31,278), X_MASK, POWER4, 0, {RA0, RB, THCT}},
|
|
||||||
+{"dcbtds", X(31,278), X_MASK, POWER4, 0, {RA0, RB, THDS}},
|
|
||||||
{"dcbt", X(31,278), X_MASK, POWER4, DCBT_EO, {RA0, RB, CT}},
|
|
||||||
{"dcbt", X(31,278), X_MASK, DCBT_EO, 0, {CT, RA0, RB}},
|
|
||||||
{"dcbt", X(31,278), X_MASK, PPC, POWER4|DCBT_EO, {RA0, RB}},
|
|
@ -5,7 +5,7 @@
|
|||||||
Summary: A GNU collection of binary utilities
|
Summary: A GNU collection of binary utilities
|
||||||
Name: %{?scl_prefix}%{?cross}binutils%{?_with_debug:-debug}
|
Name: %{?scl_prefix}%{?cross}binutils%{?_with_debug:-debug}
|
||||||
Version: 2.36.1
|
Version: 2.36.1
|
||||||
Release: 4%{?dist}.alma.1
|
Release: 2%{?dist}
|
||||||
License: GPLv3+
|
License: GPLv3+
|
||||||
URL: https://sourceware.org/binutils
|
URL: https://sourceware.org/binutils
|
||||||
|
|
||||||
@ -252,10 +252,6 @@ Patch28: binutils-ppc-weak-undefined-plt-relocs.patch
|
|||||||
# Lifetime: Fixed in 2.38 (maybe)
|
# Lifetime: Fixed in 2.38 (maybe)
|
||||||
Patch29: binutils.unicode.patch
|
Patch29: binutils.unicode.patch
|
||||||
|
|
||||||
# Patches were taken from upstream
|
|
||||||
Patch30: PowerPC-missing-extended-dcbt-dcbtst-mnemonics.patch
|
|
||||||
Patch31: DWARF-Check-version-for-DW_FORM_ref_addr.patch
|
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
Provides: bundled(libiberty)
|
Provides: bundled(libiberty)
|
||||||
@ -918,10 +914,6 @@ exit 0
|
|||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
%changelog
|
%changelog
|
||||||
* Fri Oct 20 2023 Eduard Abdullin <eabdullin@almalinux.org> - 2.36.1-4.alma.1
|
|
||||||
- Apply DWARF-Check-version-for-DW_FORM_ref_addr.patch
|
|
||||||
- Apply PowerPC-missing-extended-dcbt-dcbtst-mnemonics.patch
|
|
||||||
|
|
||||||
* Fri Nov 26 2021 Nick Clifton <nickc@redhat.com> - 2.36.1-2
|
* Fri Nov 26 2021 Nick Clifton <nickc@redhat.com> - 2.36.1-2
|
||||||
- Add ability to control the display of unicode characters. (#2009183)
|
- Add ability to control the display of unicode characters. (#2009183)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user