aboutsummaryrefslogtreecommitdiffstats
path: root/recipes-microblaze/gcc/files/0462b5f-2014-02-23-David-Holsgrove-david.holsgrove.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-microblaze/gcc/files/0462b5f-2014-02-23-David-Holsgrove-david.holsgrove.patch')
-rw-r--r--recipes-microblaze/gcc/files/0462b5f-2014-02-23-David-Holsgrove-david.holsgrove.patch108
1 files changed, 0 insertions, 108 deletions
diff --git a/recipes-microblaze/gcc/files/0462b5f-2014-02-23-David-Holsgrove-david.holsgrove.patch b/recipes-microblaze/gcc/files/0462b5f-2014-02-23-David-Holsgrove-david.holsgrove.patch
deleted file mode 100644
index efd127de..00000000
--- a/recipes-microblaze/gcc/files/0462b5f-2014-02-23-David-Holsgrove-david.holsgrove.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-From 0462b5fb1e91183c16e204e1a6cf436ef0d8d0f8 Mon Sep 17 00:00:00 2001
-From: eager <eager@138bc75d-0d04-0410-961f-82ee72b054a4>
-Date: Sun, 23 Feb 2014 18:44:27 +0000
-Subject: [PATCH] 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
-
- * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk
- and define TARGET_ASM_OUTPUT_MI_THUNK and
- TARGET_ASM_CAN_OUTPUT_MI_THUNK.
-
-Upstream-Status: Backport
----
- gcc/config/microblaze/microblaze.c | 73 ++++++++++++++++++++++++++++++++++++++
- 2 files changed, 79 insertions(+)
-
-diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c
-index 985d26a..ba8109b 100644
---- a/gcc/config/microblaze/microblaze.c
-+++ b/gcc/config/microblaze/microblaze.c
-@@ -3087,6 +3087,73 @@ expand_pic_symbol_ref (enum machine_mode mode ATTRIBUTE_UNUSED, rtx op)
- return result;
- }
-
-+static void
-+microblaze_asm_output_mi_thunk (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED,
-+ HOST_WIDE_INT delta, HOST_WIDE_INT vcall_offset,
-+ tree function)
-+{
-+ rtx this_rtx, insn, funexp;
-+
-+ reload_completed = 1;
-+ epilogue_completed = 1;
-+
-+ /* Mark the end of the (empty) prologue. */
-+ emit_note (NOTE_INSN_PROLOGUE_END);
-+
-+ /* Find the "this" pointer. If the function returns a structure,
-+ the structure return pointer is in MB_ABI_FIRST_ARG_REGNUM. */
-+ if (aggregate_value_p (TREE_TYPE (TREE_TYPE (function)), function))
-+ this_rtx = gen_rtx_REG (Pmode, (MB_ABI_FIRST_ARG_REGNUM + 1));
-+ else
-+ this_rtx = gen_rtx_REG (Pmode, MB_ABI_FIRST_ARG_REGNUM);
-+
-+ /* Apply the constant offset, if required. */
-+ if (delta)
-+ emit_insn (gen_addsi3 (this_rtx, this_rtx, GEN_INT (delta)));
-+
-+ /* Apply the offset from the vtable, if required. */
-+ if (vcall_offset)
-+ {
-+ rtx vcall_offset_rtx = GEN_INT (vcall_offset);
-+ rtx temp1 = gen_rtx_REG (Pmode, MB_ABI_TEMP1_REGNUM);
-+
-+ emit_move_insn (temp1, gen_rtx_MEM (Pmode, this_rtx));
-+
-+ rtx loc = gen_rtx_PLUS (Pmode, temp1, vcall_offset_rtx);
-+ emit_move_insn (temp1, gen_rtx_MEM (Pmode, loc));
-+
-+ emit_insn (gen_addsi3 (this_rtx, this_rtx, temp1));
-+ }
-+
-+ /* Generate a tail call to the target function. */
-+ if (!TREE_USED (function))
-+ {
-+ assemble_external (function);
-+ TREE_USED (function) = 1;
-+ }
-+
-+ funexp = XEXP (DECL_RTL (function), 0);
-+ rtx temp2 = gen_rtx_REG (Pmode, MB_ABI_TEMP2_REGNUM);
-+
-+ if (flag_pic)
-+ emit_move_insn (temp2, expand_pic_symbol_ref (Pmode, funexp));
-+ else
-+ emit_move_insn (temp2, funexp);
-+
-+ emit_insn (gen_indirect_jump (temp2));
-+
-+ /* Run just enough of rest_of_compilation. This sequence was
-+ "borrowed" from rs6000.c. */
-+ insn = get_insns ();
-+ shorten_branches (insn);
-+ final_start_function (insn, file, 1);
-+ final (insn, file, 1);
-+ final_end_function ();
-+
-+ reload_completed = 0;
-+ epilogue_completed = 0;
-+}
-+
- bool
- microblaze_expand_move (enum machine_mode mode, rtx operands[])
- {
-@@ -3504,6 +3571,12 @@ microblaze_legitimate_constant_p (enum machine_mode mode ATTRIBUTE_UNUSED, rtx x
- #undef TARGET_SECONDARY_RELOAD
- #define TARGET_SECONDARY_RELOAD microblaze_secondary_reload
-
-+#undef TARGET_ASM_OUTPUT_MI_THUNK
-+#define TARGET_ASM_OUTPUT_MI_THUNK microblaze_asm_output_mi_thunk
-+
-+#undef TARGET_ASM_CAN_OUTPUT_MI_THUNK
-+#define TARGET_ASM_CAN_OUTPUT_MI_THUNK hook_bool_const_tree_hwi_hwi_const_tree_true
-+
- #undef TARGET_SCHED_ADJUST_COST
- #define TARGET_SCHED_ADJUST_COST microblaze_adjust_cost
-
---
-1.9.0
-