diff options
author | 2019-06-08 18:48:04 +0100 | |
---|---|---|
committer | 2019-06-08 18:48:04 +0100 | |
commit | c7f028de987b25249879415d4eb730ee13e47d9b (patch) | |
tree | bc942517b2a3e5640919091ed0548081364fd998 /9.1.0 | |
parent | 3.3.6: cut 1.11 patchset (diff) | |
download | gcc-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.patch | 120 | ||||
-rw-r--r-- | 9.1.0/gentoo/README.history | 3 |
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 |