1
0
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:
miod
2025-09-14 19:36:52 +00:00
parent 8f74c9ac29
commit 60ecb338a7
2 changed files with 13 additions and 17 deletions
+12 -16
View File
@@ -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)
+1 -1
View File
@@ -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)