diff options
Diffstat (limited to 'gcc/config/sh/sh.c')
-rw-r--r-- | gcc/config/sh/sh.c | 30 |
1 files changed, 7 insertions, 23 deletions
diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c index 261ea7e..b3c46ab 100644 --- a/gcc/config/sh/sh.c +++ b/gcc/config/sh/sh.c @@ -267,7 +267,6 @@ static bool sh_callee_copies (CUMULATIVE_ARGS *, enum machine_mode, static int sh_arg_partial_bytes (CUMULATIVE_ARGS *, enum machine_mode, tree, bool); static int sh_dwarf_calling_convention (tree); -static int hard_regs_intersect_p (HARD_REG_SET *, HARD_REG_SET *); /* Initialize the GCC target structure. */ @@ -5777,7 +5776,7 @@ push_regs (HARD_REG_SET *mask, int interrupt_handler) and we have to push any floating point register, we need to switch to the correct precision first. */ if (i == FIRST_FP_REG && interrupt_handler && TARGET_FMOVD - && hard_regs_intersect_p (mask, ®_class_contents[DF_REGS])) + && hard_reg_set_intersect_p (*mask, reg_class_contents[DF_REGS])) { HARD_REG_SET unsaved; @@ -5987,10 +5986,10 @@ calc_live_regs (HARD_REG_SET *live_regs_mask) Make sure we save at least one general purpose register when we need to save target registers. */ if (interrupt_handler - && hard_regs_intersect_p (live_regs_mask, - ®_class_contents[TARGET_REGS]) - && ! hard_regs_intersect_p (live_regs_mask, - ®_class_contents[GENERAL_REGS])) + && hard_reg_set_intersect_p (*live_regs_mask, + reg_class_contents[TARGET_REGS]) + && ! hard_reg_set_intersect_p (*live_regs_mask, + reg_class_contents[GENERAL_REGS])) { SET_HARD_REG_BIT (*live_regs_mask, R0_REG); count += GET_MODE_SIZE (REGISTER_NATURAL_MODE (R0_REG)); @@ -6766,8 +6765,8 @@ sh_expand_epilogue (bool sibcall_p) int j = (FIRST_PSEUDO_REGISTER - 1) - i; if (j == FPSCR_REG && current_function_interrupt && TARGET_FMOVD - && hard_regs_intersect_p (&live_regs_mask, - ®_class_contents[DF_REGS])) + && hard_reg_set_intersect_p (live_regs_mask, + reg_class_contents[DF_REGS])) fpscr_deferred = 1; else if (j != PR_REG && TEST_HARD_REG_BIT (live_regs_mask, j)) pop (j); @@ -10643,21 +10642,6 @@ sh_init_cumulative_args (CUMULATIVE_ARGS * pcum, } } -/* Determine if two hard register sets intersect. - Return 1 if they do. */ - -static int -hard_regs_intersect_p (HARD_REG_SET *a, HARD_REG_SET *b) -{ - HARD_REG_SET c; - COPY_HARD_REG_SET (c, *a); - AND_HARD_REG_SET (c, *b); - GO_IF_HARD_REG_SUBSET (c, reg_class_contents[(int) NO_REGS], lose); - return 1; -lose: - return 0; -} - /* Replace any occurrence of FROM(n) in X with TO(n). The function does not enter into CONST_DOUBLE for the replace. |