aboutsummaryrefslogtreecommitdiff
path: root/9.1.0
diff options
context:
space:
mode:
authorSergei Trofimovich <slyfox@gentoo.org>2019-06-08 18:48:04 +0100
committerSergei Trofimovich <slyfox@gentoo.org>2019-06-08 18:48:04 +0100
commitc7f028de987b25249879415d4eb730ee13e47d9b (patch)
treebc942517b2a3e5640919091ed0548081364fd998 /9.1.0
parent3.3.6: cut 1.11 patchset (diff)
downloadgcc-patches-c7f028de987b25249879415d4eb730ee13e47d9b.tar.gz
gcc-patches-c7f028de987b25249879415d4eb730ee13e47d9b.tar.bz2
gcc-patches-c7f028de987b25249879415d4eb730ee13e47d9b.zip
9.1.0: backport PR90751 (hppa64 entry stub)
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Diffstat (limited to '9.1.0')
-rw-r--r--9.1.0/gentoo/29_all_hppa64-patchable-entry-90751.patch120
-rw-r--r--9.1.0/gentoo/README.history3
2 files changed, 123 insertions, 0 deletions
diff --git a/9.1.0/gentoo/29_all_hppa64-patchable-entry-90751.patch b/9.1.0/gentoo/29_all_hppa64-patchable-entry-90751.patch
new file mode 100644
index 0000000..d93fe0a
--- /dev/null
+++ b/9.1.0/gentoo/29_all_hppa64-patchable-entry-90751.patch
@@ -0,0 +1,120 @@
+https://gcc.gnu.org/PR90751
+
+From 5df07cedc211b67011688e911db34ee18997eedf Mon Sep 17 00:00:00 2001
+From: danglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>
+Date: Fri, 7 Jun 2019 23:20:44 +0000
+Subject: [PATCH] PR target/90751 * config/pa/pa-linux.h
+ (ASM_DECLARE_FUNCTION_NAME): Update comment. Call pa_output_function_label.
+ (TARGET_ASM_FUNCTION_PROLOGUE): define. *
+ config/pa/pa-protos.h (pa_output_function_label): Declare. *
+ config/pa/pa.c (pa_output_function_prologue): Add ATTRIBUTE_UNUSED to
+ declaration. (pa_linux_output_function_prologue): Declare.
+ (TARGET_ASM_FUNCTION_PROLOGUE): Delete define.
+ (pa_output_function_label): New. (pa_output_function_prologue): Revise
+ to use pa_output_function_label. (pa_linux_output_function_prologue):
+ New. * config/pa/pa.h (TARGET_ASM_FUNCTION_PROLOGUE): Define.
+
+git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-9-branch@272061 138bc75d-0d04-0410-961f-82ee72b054a4
+--- a/gcc/config/pa/pa-linux.h
++++ b/gcc/config/pa/pa-linux.h
+@@ -109,9 +109,14 @@ along with GCC; see the file COPYING3. If not see
+ { \
+ ASM_OUTPUT_TYPE_DIRECTIVE (FILE, NAME, "function"); \
+ ASM_DECLARE_RESULT (FILE, DECL_RESULT (DECL)); \
++ pa_output_function_label (FILE); \
+ } \
+ while (0)
+
++/* Output function prologue for linux. */
++#undef TARGET_ASM_FUNCTION_PROLOGUE
++#define TARGET_ASM_FUNCTION_PROLOGUE pa_linux_output_function_prologue
++
+ /* As well as globalizing the label, we need to encode the label
+ to ensure a plabel is generated in an indirect call. */
+
+--- a/gcc/config/pa/pa-protos.h
++++ b/gcc/config/pa/pa-protos.h
+@@ -108,6 +108,7 @@ extern void pa_asm_output_aligned_local (FILE *, const char *,
+ extern void pa_hpux_asm_output_external (FILE *, tree, const char *);
+ extern HOST_WIDE_INT pa_initial_elimination_offset (int, int);
+ extern HOST_WIDE_INT pa_function_arg_size (machine_mode, const_tree);
++extern void pa_output_function_label (FILE *);
+
+ extern const int pa_magic_milli[];
+
+--- a/gcc/config/pa/pa.c
++++ b/gcc/config/pa/pa.c
+@@ -118,7 +118,8 @@ static void set_reg_plus_d (int, int, HOST_WIDE_INT, int);
+ static rtx pa_function_value (const_tree, const_tree, bool);
+ static rtx pa_libcall_value (machine_mode, const_rtx);
+ static bool pa_function_value_regno_p (const unsigned int);
+-static void pa_output_function_prologue (FILE *);
++static void pa_output_function_prologue (FILE *) ATTRIBUTE_UNUSED;
++static void pa_linux_output_function_prologue (FILE *) ATTRIBUTE_UNUSED;
+ static void update_total_code_bytes (unsigned int);
+ static void pa_output_function_epilogue (FILE *);
+ static int pa_adjust_cost (rtx_insn *, int, rtx_insn *, int, unsigned int);
+@@ -262,8 +263,6 @@ static size_t n_deferred_plabels = 0;
+ #undef TARGET_ASM_INTEGER
+ #define TARGET_ASM_INTEGER pa_assemble_integer
+
+-#undef TARGET_ASM_FUNCTION_PROLOGUE
+-#define TARGET_ASM_FUNCTION_PROLOGUE pa_output_function_prologue
+ #undef TARGET_ASM_FUNCTION_EPILOGUE
+ #define TARGET_ASM_FUNCTION_EPILOGUE pa_output_function_epilogue
+
+@@ -3842,16 +3841,10 @@ pa_compute_frame_size (poly_int64 size, int *fregs_live)
+ & ~(PREFERRED_STACK_BOUNDARY / BITS_PER_UNIT - 1));
+ }
+
+-/* On HP-PA, move-double insns between fpu and cpu need an 8-byte block
+- of memory. If any fpu reg is used in the function, we allocate
+- such a block here, at the bottom of the frame, just in case it's needed.
++/* Output function label, and associated .PROC and .CALLINFO statements. */
+
+- If this function is a leaf procedure, then we may choose not
+- to do a "save" insn. The decision about whether or not
+- to do this is made in regclass.c. */
+-
+-static void
+-pa_output_function_prologue (FILE *file)
++void
++pa_output_function_label (FILE *file)
+ {
+ /* The function's label and associated .PROC must never be
+ separated and must be output *after* any profiling declarations
+@@ -3897,7 +3890,22 @@ pa_output_function_prologue (FILE *file)
+ fprintf (file, ",ENTRY_FR=%d", fr_saved + 11);
+
+ fputs ("\n\t.ENTRY\n", file);
++}
++
++/* Output function prologue. */
+
++static void
++pa_output_function_prologue (FILE *file)
++{
++ pa_output_function_label (file);
++ remove_useless_addtr_insns (0);
++}
++
++/* The label is output by ASM_DECLARE_FUNCTION_NAME on linux. */
++
++static void
++pa_linux_output_function_prologue (FILE *file ATTRIBUTE_UNUSED)
++{
+ remove_useless_addtr_insns (0);
+ }
+
+--- a/gcc/config/pa/pa.h
++++ b/gcc/config/pa/pa.h
+@@ -1305,3 +1305,6 @@ do { \
+
+ /* Target CPU versions for D. */
+ #define TARGET_D_CPU_VERSIONS pa_d_target_versions
++
++/* Output default function prologue for hpux. */
++#define TARGET_ASM_FUNCTION_PROLOGUE pa_output_function_prologue
+--
+2.21.0
+
diff --git a/9.1.0/gentoo/README.history b/9.1.0/gentoo/README.history
index 8325d74..0c5cd73 100644
--- a/9.1.0/gentoo/README.history
+++ b/9.1.0/gentoo/README.history
@@ -1,3 +1,6 @@
+2 TODO
+ + 29_all_hppa64-patchable-entry-90751.patch
+
1.1 1 Jun 2019
+ 26_all_ipa-incomplete.patch
+ 27_all_es-po.patch