From bbe79f845fe1c695ba61bece26f1369f4bbfddd3 Mon Sep 17 00:00:00 2001 From: Mike Stump Date: Thu, 25 Jul 1996 22:00:09 +0000 Subject: [PATCH] install EH code From-SVN: r12564 --- gcc/config/pa/pa.h | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h index ac03586b7c1..16d20f98fbc 100644 --- a/gcc/config/pa/pa.h +++ b/gcc/config/pa/pa.h @@ -2323,12 +2323,27 @@ extern void hppa_encode_label (); removing the dead (but important) initialization of REFERENCE. */ -#define DO_GLOBAL_DTORS_BODY \ -do { \ - extern void __gcc_plt_call (); \ - void (*reference)() = &__gcc_plt_call; \ - func_ptr *p; \ - __asm__ ("" : : "r" (reference)); \ - for (p = __DTOR_LIST__ + 1; *p; ) \ - (*p++) (); \ +#define DO_GLOBAL_DTORS_BODY \ +do { \ + extern void __gcc_plt_call (); \ + void (*reference)() = &__gcc_plt_call; \ + func_ptr *p; \ + __asm__ ("" : : "r" (reference)); \ + for (p = __DTOR_LIST__ + 1; *p; ) \ + (*p++) (); \ } while (0) + +/* The current return address is in [%sp-20]. */ +#define RETURN_ADDR_RTX(COUNT, FRAME) \ + ((COUNT == 0) \ + ? gen_rtx (MEM, Pmode, \ + memory_address (Pmode, plus_constant (FRAME, \ + 5 * UNITS_PER_WORD))) \ + : (rtx) 0) + +/* Used to mask out junk bits from the return address, such as + processor state, interrupt status, condition codes and the like. */ +#define MASK_RETURN_ADDR \ + /* The priviledge level is in the two low order bits, mask em out \ + of the return address. */ \ + (GEN_INT (0xfffffffc)) -- 2.30.2