summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorespie <espie@openbsd.org>2003-02-17 23:05:50 +0000
committerespie <espie@openbsd.org>2003-02-17 23:05:50 +0000
commit1bcedc7e3960adb9790e3db3cb790199bd862f8b (patch)
treeda76b80b0f10e7869cdad5ecab63c239bb863310
parentcan use the same bus_space_read_region_4() to copy both type1 and type4 prom; tested on type4 by me and miod on type1 (diff)
downloadwireguard-openbsd-1bcedc7e3960adb9790e3db3cb790199bd862f8b.tar.xz
wireguard-openbsd-1bcedc7e3960adb9790e3db3cb790199bd862f8b.zip
fix trampoline support on hppa. Tested by mickey@
(does not solve the C++ ctor problem, sorry)
-rw-r--r--gnu/egcs/gcc/config/pa/pa.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/gnu/egcs/gcc/config/pa/pa.h b/gnu/egcs/gcc/config/pa/pa.h
index a6508e697f1..b4a6f9d5ac5 100644
--- a/gnu/egcs/gcc/config/pa/pa.h
+++ b/gnu/egcs/gcc/config/pa/pa.h
@@ -1365,6 +1365,13 @@ extern union tree_node *current_function_decl;
#define TRAMPOLINE_SIZE (11 * 4)
+/* Targets redefine this to invoke code to either flush the cache,
+ or enable stack execution (or both). */
+
+#ifndef FINALIZE_TRAMPOLINE
+#define FINALIZE_TRAMPOLINE(TRAMP)
+#endif
+
/* Emit RTL insns to initialize the variable parts of a trampoline.
FNADDR is an RTX for the address of the function's pure code.
CXT is an RTX for the static chain value for the function.
@@ -1388,6 +1395,7 @@ extern union tree_node *current_function_decl;
end_addr = force_reg (SImode, plus_constant (start_addr, 32)); \
emit_insn (gen_icacheflush (start_addr, end_addr, start_addr, \
gen_reg_rtx (SImode), gen_reg_rtx (SImode)));\
+ FINALIZE_TRAMPOLINE(TRAMP);
}
/* Emit code for a call to builtin_saveregs. We must emit USE insns which