diff options
author | 2003-02-17 23:05:50 +0000 | |
---|---|---|
committer | 2003-02-17 23:05:50 +0000 | |
commit | 1bcedc7e3960adb9790e3db3cb790199bd862f8b (patch) | |
tree | da76b80b0f10e7869cdad5ecab63c239bb863310 | |
parent | can 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) | |
download | wireguard-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.h | 8 |
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 |