mirror of
https://github.com/openbsd/src.git
synced 2026-06-18 23:33:33 +02:00
Minor exception handling bug and comment fixes.
Also, revert override of TARGET_BUILTIN_SETJMP_FRAME_VALUE - this was done while experimenting with sjlj exceptions support, to make them work better, but now that unwinding works it is no longer useful.
This commit is contained in:
@@ -93,7 +93,6 @@ static bool m88k_rtx_costs (rtx, int, int, int *);
|
||||
static int m88k_address_cost (rtx);
|
||||
static tree m88k_build_va_list (void);
|
||||
static tree m88k_gimplify_va_arg (tree, tree, tree *, tree *);
|
||||
static rtx m88k_builtin_setjmp_frame_value (void);
|
||||
static rtx m88k_struct_value_rtx (tree, int);
|
||||
static bool m88k_pass_by_reference (CUMULATIVE_ARGS *, enum machine_mode,
|
||||
tree, bool);
|
||||
@@ -139,9 +138,6 @@ static void m88k_setup_incoming_varargs (CUMULATIVE_ARGS *, enum machine_mode,
|
||||
#undef TARGET_GIMPLIFY_VA_ARG_EXPR
|
||||
#define TARGET_GIMPLIFY_VA_ARG_EXPR m88k_gimplify_va_arg
|
||||
|
||||
#undef TARGET_BUILTIN_SETJMP_FRAME_VALUE
|
||||
#define TARGET_BUILTIN_SETJMP_FRAME_VALUE m88k_builtin_setjmp_frame_value
|
||||
|
||||
#undef TARGET_PROMOTE_FUNCTION_ARGS
|
||||
#define TARGET_PROMOTE_FUNCTION_ARGS hook_bool_tree_true
|
||||
|
||||
@@ -1115,12 +1111,19 @@ m88k_layout_frame (void)
|
||||
if (current_function_profile)
|
||||
frame_pointer_needed = 1;
|
||||
|
||||
/* If we are producing PIC, save the addressing base register and r1. */
|
||||
if (flag_pic && current_function_uses_pic_offset_table)
|
||||
/* If we are producing PIC, save the addressing base register and r1.
|
||||
We also need to preserve the PIC register for the sake of exception
|
||||
handling. */
|
||||
if (flag_pic)
|
||||
{
|
||||
cfun->machine->save_regs[PIC_OFFSET_TABLE_REGNUM] = 1;
|
||||
cfun->machine->saved_gregs++;
|
||||
cfun->machine->save_regs[1] = 1;
|
||||
if (current_function_uses_pic_offset_table
|
||||
|| current_function_calls_eh_return)
|
||||
cfun->machine->save_regs[PIC_OFFSET_TABLE_REGNUM] = 1;
|
||||
if (current_function_uses_pic_offset_table)
|
||||
{
|
||||
cfun->machine->saved_gregs++;
|
||||
cfun->machine->save_regs[1] = 1;
|
||||
}
|
||||
}
|
||||
|
||||
/* If a frame is requested, save the previous FP, and the return
|
||||
@@ -1215,13 +1218,6 @@ m88k_initial_elimination_offset (int from, int to)
|
||||
else /* to == STACK_POINTER_REGNUM */
|
||||
return cfun->machine->frame_size + cfun->machine->hardfp_offset;
|
||||
}
|
||||
|
||||
/* Implementation of TARGET_BUILTIN_SETJMP_FRAME_VALUE. */
|
||||
static rtx
|
||||
m88k_builtin_setjmp_frame_value (void)
|
||||
{
|
||||
return hard_frame_pointer_rtx;
|
||||
}
|
||||
|
||||
static void
|
||||
m88k_maybe_dead (rtx insn)
|
||||
|
||||
@@ -1257,7 +1257,7 @@ extern const enum reg_class m88k_regno_reg_class[FIRST_PSEUDO_REGISTER];
|
||||
|
||||
/* DWARF unwinding needs two scratch registers; we choose to use r8-r9. */
|
||||
#define EH_RETURN_DATA_REGNO(N) \
|
||||
((N) < 2 ? (N) + 8 : INVALID_REGNUM)
|
||||
((N) < 2 ? (N) + 6 : INVALID_REGNUM)
|
||||
|
||||
#define EH_RETURN_HANDLER_RTX \
|
||||
RETURN_ADDR_RTX (0, hard_frame_pointer_rtx)
|
||||
|
||||
Reference in New Issue
Block a user