aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/rs6000/rs6000.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config/rs6000/rs6000.c')
-rw-r--r--gcc/config/rs6000/rs6000.c65
1 files changed, 34 insertions, 31 deletions
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index fe6a9001a4e..1bb50b5fa70 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -6777,14 +6777,16 @@ rs6000_emit_move (rtx dest, rtx source, enum machine_mode mode)
return;
}
- if (reload_in_progress && cfun->machine->sdmode_stack_slot != NULL_RTX)
- cfun->machine->sdmode_stack_slot =
- eliminate_regs (cfun->machine->sdmode_stack_slot, VOIDmode, NULL_RTX);
+ if (reload_in_progress
+ && MACHINE_FUNCTION (*cfun)->sdmode_stack_slot != NULL_RTX)
+ MACHINE_FUNCTION (*cfun)->sdmode_stack_slot =
+ eliminate_regs (MACHINE_FUNCTION (*cfun)->sdmode_stack_slot, VOIDmode,
+ NULL_RTX);
if (reload_in_progress
&& mode == SDmode
&& MEM_P (operands[0])
- && rtx_equal_p (operands[0], cfun->machine->sdmode_stack_slot)
+ && rtx_equal_p (operands[0], MACHINE_FUNCTION (*cfun)->sdmode_stack_slot)
&& REG_P (operands[1]))
{
if (FP_REGNO_P (REGNO (operands[1])))
@@ -6807,7 +6809,7 @@ rs6000_emit_move (rtx dest, rtx source, enum machine_mode mode)
&& mode == SDmode
&& REG_P (operands[0])
&& MEM_P (operands[1])
- && rtx_equal_p (operands[1], cfun->machine->sdmode_stack_slot))
+ && rtx_equal_p (operands[1], MACHINE_FUNCTION (*cfun)->sdmode_stack_slot))
{
if (FP_REGNO_P (REGNO (operands[0])))
{
@@ -8509,7 +8511,7 @@ setup_incoming_varargs (CUMULATIVE_ARGS *cum, enum machine_mode mode,
gcc_assert (reg_save_area == virtual_stack_vars_rtx);
}
- cfun->machine->varargs_save_offset = offset;
+ MACHINE_FUNCTION (*cfun)->varargs_save_offset = offset;
save_area = plus_constant (virtual_stack_vars_rtx, offset);
}
}
@@ -8727,9 +8729,9 @@ rs6000_va_start (tree valist, rtx nextarg)
/* Find the register save area. */
t = make_tree (TREE_TYPE (sav), virtual_stack_vars_rtx);
- if (cfun->machine->varargs_save_offset)
+ if (MACHINE_FUNCTION (*cfun)->varargs_save_offset)
t = build2 (POINTER_PLUS_EXPR, TREE_TYPE (sav), t,
- size_int (cfun->machine->varargs_save_offset));
+ size_int (MACHINE_FUNCTION (*cfun)->varargs_save_offset));
t = build2 (MODIFY_EXPR, TREE_TYPE (sav), sav, t);
TREE_SIDE_EFFECTS (t) = 1;
expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
@@ -13606,13 +13608,13 @@ rs6000_secondary_memory_needed_rtx (enum machine_mode mode)
ret = assign_stack_local (mode, GET_MODE_SIZE (mode), 0);
else
{
- rtx mem = cfun->machine->sdmode_stack_slot;
+ rtx mem = MACHINE_FUNCTION (*cfun)->sdmode_stack_slot;
gcc_assert (mem != NULL_RTX);
if (!eliminated)
{
mem = eliminate_regs (mem, VOIDmode, NULL_RTX);
- cfun->machine->sdmode_stack_slot = mem;
+ MACHINE_FUNCTION (*cfun)->sdmode_stack_slot = mem;
eliminated = true;
}
ret = mem;
@@ -14113,7 +14115,7 @@ rs6000_alloc_sdmode_stack_slot (void)
basic_block bb;
gimple_stmt_iterator gsi;
- gcc_assert (cfun->machine->sdmode_stack_slot == NULL_RTX);
+ gcc_assert (MACHINE_FUNCTION (*cfun)->sdmode_stack_slot == NULL_RTX);
FOR_EACH_BB (bb)
for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi))
@@ -14122,8 +14124,8 @@ rs6000_alloc_sdmode_stack_slot (void)
if (ret)
{
rtx stack = assign_stack_local (DDmode, GET_MODE_SIZE (DDmode), 0);
- cfun->machine->sdmode_stack_slot = adjust_address_nv (stack,
- SDmode, 0);
+ MACHINE_FUNCTION (*cfun)->sdmode_stack_slot
+ = adjust_address_nv (stack, SDmode, 0);
return;
}
}
@@ -14138,8 +14140,8 @@ rs6000_alloc_sdmode_stack_slot (void)
|| TYPE_MODE (DECL_ARG_TYPE (t)) == SDmode)
{
rtx stack = assign_stack_local (DDmode, GET_MODE_SIZE (DDmode), 0);
- cfun->machine->sdmode_stack_slot = adjust_address_nv (stack,
- SDmode, 0);
+ MACHINE_FUNCTION (*cfun)->sdmode_stack_slot
+ = adjust_address_nv (stack, SDmode, 0);
return;
}
}
@@ -14148,8 +14150,8 @@ rs6000_alloc_sdmode_stack_slot (void)
static void
rs6000_instantiate_decls (void)
{
- if (cfun->machine->sdmode_stack_slot != NULL_RTX)
- instantiate_decl_rtl (cfun->machine->sdmode_stack_slot);
+ if (MACHINE_FUNCTION (*cfun)->sdmode_stack_slot != NULL_RTX)
+ instantiate_decl_rtl (MACHINE_FUNCTION (*cfun)->sdmode_stack_slot);
}
/* Given an rtx X being reloaded into a reg required to be
@@ -14619,14 +14621,14 @@ rs6000_get_some_local_dynamic_name (void)
{
rtx insn;
- if (cfun->machine->some_ld_name)
- return cfun->machine->some_ld_name;
+ if (MACHINE_FUNCTION (*cfun)->some_ld_name)
+ return MACHINE_FUNCTION (*cfun)->some_ld_name;
for (insn = get_insns (); insn ; insn = NEXT_INSN (insn))
if (INSN_P (insn)
&& for_each_rtx (&PATTERN (insn),
rs6000_get_some_local_dynamic_name_1, 0))
- return cfun->machine->some_ld_name;
+ return MACHINE_FUNCTION (*cfun)->some_ld_name;
gcc_unreachable ();
}
@@ -14643,7 +14645,7 @@ rs6000_get_some_local_dynamic_name_1 (rtx *px, void *data ATTRIBUTE_UNUSED)
const char *str = XSTR (x, 0);
if (SYMBOL_REF_TLS_MODEL (x) == TLS_MODEL_LOCAL_DYNAMIC)
{
- cfun->machine->some_ld_name = str;
+ MACHINE_FUNCTION (*cfun)->some_ld_name = str;
return 1;
}
}
@@ -17555,10 +17557,11 @@ rs6000_stack_info (void)
if (TARGET_SPE)
{
/* Cache value so we don't rescan instruction chain over and over. */
- if (cfun->machine->insn_chain_scanned_p == 0)
- cfun->machine->insn_chain_scanned_p
+ if (MACHINE_FUNCTION (*cfun)->insn_chain_scanned_p == 0)
+ MACHINE_FUNCTION (*cfun)->insn_chain_scanned_p
= spe_func_has_64bit_regs_p () + 1;
- info_ptr->spe_64bit_regs_used = cfun->machine->insn_chain_scanned_p - 1;
+ info_ptr->spe_64bit_regs_used
+ = MACHINE_FUNCTION (*cfun)->insn_chain_scanned_p - 1;
}
/* Select which calling sequence. */
@@ -17605,7 +17608,7 @@ rs6000_stack_info (void)
/* Does this function call anything? */
info_ptr->calls_p = (! current_function_is_leaf
- || cfun->machine->ra_needs_full_frame);
+ || MACHINE_FUNCTION (*cfun)->ra_needs_full_frame);
/* Determine if we need to save the link register. */
if ((DEFAULT_ABI == ABI_AIX
@@ -18031,7 +18034,7 @@ rs6000_return_addr (int count, rtx frame)
don't try to be too clever here. */
if (count != 0 || (DEFAULT_ABI != ABI_AIX && flag_pic))
{
- cfun->machine->ra_needs_full_frame = 1;
+ MACHINE_FUNCTION (*cfun)->ra_needs_full_frame = 1;
return
gen_rtx_MEM
@@ -18044,7 +18047,7 @@ rs6000_return_addr (int count, rtx frame)
RETURN_ADDRESS_OFFSET)));
}
- cfun->machine->ra_need_lr = 1;
+ MACHINE_FUNCTION (*cfun)->ra_need_lr = 1;
return get_hard_reg_initial_val (Pmode, LR_REGNO);
}
@@ -18112,8 +18115,8 @@ rs6000_ra_ever_killed (void)
if (cfun->is_thunk)
return 0;
- if (cfun->machine->lr_save_state)
- return cfun->machine->lr_save_state - 1;
+ if (MACHINE_FUNCTION (*cfun)->lr_save_state)
+ return MACHINE_FUNCTION (*cfun)->lr_save_state - 1;
/* regs_ever_live has LR marked as used if any sibcalls are present,
but this should not force saving and restoring in the
@@ -18289,7 +18292,7 @@ rs6000_emit_eh_reg_restore (rtx source, rtx scratch)
state of lr_save_p so any change from here on would be a bug. In
particular, stop rs6000_ra_ever_killed from considering the SET
of lr we may have added just above. */
- cfun->machine->lr_save_state = info->lr_save_p + 1;
+ MACHINE_FUNCTION (*cfun)->lr_save_state = info->lr_save_p + 1;
}
static GTY(()) alias_set_type set = -1;
@@ -19041,7 +19044,7 @@ rs6000_savres_strategy (rs6000_stack_t *info, bool savep,
|| sibcall
|| crtl->calls_eh_return
|| !info->lr_save_p
- || cfun->machine->ra_need_lr
+ || MACHINE_FUNCTION (*cfun)->ra_need_lr
|| info->total_size > 32767);
savres_fprs_inline = (common
|| info->first_fp_reg_save == 64