Lines Matching defs:info_ptr

710 static void compute_save_world_info (rs6000_stack_t *info_ptr);
12909 compute_save_world_info (rs6000_stack_t *info_ptr)
12911 info_ptr->world_save_p = 1;
12912 info_ptr->world_save_p
12913 = (WORLD_SAVE_P (info_ptr)
12916 && info_ptr->first_fp_reg_save == FIRST_SAVED_FP_REGNO
12917 && info_ptr->first_gp_reg_save == FIRST_SAVED_GP_REGNO
12918 && info_ptr->first_altivec_reg_save == FIRST_SAVED_ALTIVEC_REGNO
12919 && info_ptr->cr_save_p);
12923 if (WORLD_SAVE_P (info_ptr))
12930 info_ptr->world_save_p = 0;
12935 if (WORLD_SAVE_P (info_ptr))
12940 info_ptr->vrsave_size = 4;
12943 if (info_ptr->vrsave_mask == 0)
12944 info_ptr->vrsave_mask = compute_vrsave_mask ();
12949 gcc_assert (info_ptr->first_fp_reg_save >= FIRST_SAVED_FP_REGNO
12950 && (info_ptr->first_altivec_reg_save
13068 rs6000_stack_t *info_ptr = &info;
13082 info_ptr->spe_64bit_regs_used = cfun->machine->insn_chain_scanned_p - 1;
13086 info_ptr->abi = DEFAULT_ABI;
13089 info_ptr->first_gp_reg_save = first_reg_to_save ();
13095 && info_ptr->first_gp_reg_save > RS6000_PIC_OFFSET_TABLE_REGNUM)
13096 info_ptr->gp_size = reg_size * (32 - RS6000_PIC_OFFSET_TABLE_REGNUM);
13098 info_ptr->gp_size = reg_size * (32 - info_ptr->first_gp_reg_save);
13112 if (TARGET_SPE_ABI && info_ptr->spe_64bit_regs_used != 0)
13113 info_ptr->gp_size = 0;
13115 info_ptr->first_fp_reg_save = first_fp_reg_to_save ();
13116 info_ptr->fp_size = 8 * (64 - info_ptr->first_fp_reg_save);
13118 info_ptr->first_altivec_reg_save = first_altivec_reg_to_save ();
13119 info_ptr->altivec_size = 16 * (LAST_ALTIVEC_REGNO + 1
13120 - info_ptr->first_altivec_reg_save);
13123 info_ptr->calls_p = (! current_function_is_leaf
13133 || (info_ptr->first_fp_reg_save != 64
13134 && !FP_SAVE_INLINE (info_ptr->first_fp_reg_save))
13135 || info_ptr->first_altivec_reg_save <= LAST_ALTIVEC_REGNO
13137 || info_ptr->calls_p
13140 info_ptr->lr_save_p = 1;
13149 info_ptr->cr_save_p = 1;
13151 info_ptr->cr_size = reg_size;
13165 && info_ptr->spe_64bit_regs_used != 0
13172 info_ptr->reg_size = reg_size;
13173 info_ptr->fixed_size = RS6000_SAVE_AREA;
13174 info_ptr->vars_size = RS6000_ALIGN (get_frame_size (), 8);
13175 info_ptr->parm_size = RS6000_ALIGN (current_function_outgoing_args_size,
13178 info_ptr->vars_size
13179 += RS6000_ALIGN (info_ptr->fixed_size + info_ptr->vars_size
13180 + info_ptr->parm_size,
13182 - (info_ptr->fixed_size + info_ptr->vars_size
13183 + info_ptr->parm_size);
13185 if (TARGET_SPE_ABI && info_ptr->spe_64bit_regs_used != 0)
13186 info_ptr->spe_gp_size = 8 * (32 - info_ptr->first_gp_reg_save);
13188 info_ptr->spe_gp_size = 0;
13191 info_ptr->vrsave_mask = compute_vrsave_mask ();
13193 info_ptr->vrsave_mask = 0;
13195 if (TARGET_ALTIVEC_VRSAVE && info_ptr->vrsave_mask)
13196 info_ptr->vrsave_size = 4;
13198 info_ptr->vrsave_size = 0;
13200 compute_save_world_info (info_ptr);
13211 info_ptr->fp_save_offset = - info_ptr->fp_size;
13212 info_ptr->gp_save_offset = info_ptr->fp_save_offset - info_ptr->gp_size;
13216 info_ptr->vrsave_save_offset
13217 = info_ptr->gp_save_offset - info_ptr->vrsave_size;
13221 if (info_ptr->altivec_size != 0)
13222 info_ptr->altivec_padding_size
13223 = info_ptr->vrsave_save_offset & 0xF;
13225 info_ptr->altivec_padding_size = 0;
13227 info_ptr->altivec_save_offset
13228 = info_ptr->vrsave_save_offset
13229 - info_ptr->altivec_padding_size
13230 - info_ptr->altivec_size;
13231 gcc_assert (info_ptr->altivec_size == 0
13232 || info_ptr->altivec_save_offset % 16 == 0);
13235 info_ptr->ehrd_offset = info_ptr->altivec_save_offset - ehrd_size;
13238 info_ptr->ehrd_offset = info_ptr->gp_save_offset - ehrd_size;
13239 info_ptr->cr_save_offset = reg_size; /* first word when 64-bit. */
13240 info_ptr->lr_save_offset = 2*reg_size;
13244 info_ptr->fp_save_offset = - info_ptr->fp_size;
13245 info_ptr->gp_save_offset = info_ptr->fp_save_offset - info_ptr->gp_size;
13246 info_ptr->cr_save_offset = info_ptr->gp_save_offset - info_ptr->cr_size;
13248 if (TARGET_SPE_ABI && info_ptr->spe_64bit_regs_used != 0)
13252 if (info_ptr->spe_gp_size != 0)
13253 info_ptr->spe_padding_size
13254 = 8 - (-info_ptr->cr_save_offset % 8);
13256 info_ptr->spe_padding_size = 0;
13258 info_ptr->spe_gp_save_offset
13259 = info_ptr->cr_save_offset
13260 - info_ptr->spe_padding_size
13261 - info_ptr->spe_gp_size;
13264 info_ptr->ehrd_offset = info_ptr->spe_gp_save_offset;
13268 info_ptr->vrsave_save_offset
13269 = info_ptr->cr_save_offset - info_ptr->vrsave_size;
13272 if (info_ptr->altivec_size != 0)
13273 info_ptr->altivec_padding_size
13274 = 16 - (-info_ptr->vrsave_save_offset % 16);
13276 info_ptr->altivec_padding_size = 0;
13278 info_ptr->altivec_save_offset
13279 = info_ptr->vrsave_save_offset
13280 - info_ptr->altivec_padding_size
13281 - info_ptr->altivec_size;
13284 info_ptr->ehrd_offset = info_ptr->altivec_save_offset;
13287 info_ptr->ehrd_offset = info_ptr->cr_save_offset;
13288 info_ptr->ehrd_offset -= ehrd_size;
13289 info_ptr->lr_save_offset = reg_size;
13294 info_ptr->save_size = RS6000_ALIGN (info_ptr->fp_size
13295 + info_ptr->gp_size
13296 + info_ptr->altivec_size
13297 + info_ptr->altivec_padding_size
13298 + info_ptr->spe_gp_size
13299 + info_ptr->spe_padding_size
13301 + info_ptr->cr_size
13302 + info_ptr->vrsave_size,
13305 non_fixed_size = (info_ptr->vars_size
13306 + info_ptr->parm_size
13307 + info_ptr->save_size);
13309 info_ptr->total_size = RS6000_ALIGN (non_fixed_size + info_ptr->fixed_size,
13324 if (info_ptr->calls_p)
13325 info_ptr->push_p = 1;
13328 info_ptr->push_p = non_fixed_size != 0;
13331 info_ptr->push_p = 1;
13334 info_ptr->push_p = 1;
13337 info_ptr->push_p = non_fixed_size > (TARGET_32BIT ? 220 : 288);
13340 if (info_ptr->fp_size == 0)
13341 info_ptr->fp_save_offset = 0;
13343 if (info_ptr->gp_size == 0)
13344 info_ptr->gp_save_offset = 0;
13346 if (! TARGET_ALTIVEC_ABI || info_ptr->altivec_size == 0)
13347 info_ptr->altivec_save_offset = 0;
13349 if (! TARGET_ALTIVEC_ABI || info_ptr->vrsave_mask == 0)
13350 info_ptr->vrsave_save_offset = 0;
13353 || info_ptr->spe_64bit_regs_used == 0
13354 || info_ptr->spe_gp_size == 0)
13355 info_ptr->spe_gp_save_offset = 0;
13357 if (! info_ptr->lr_save_p)
13358 info_ptr->lr_save_offset = 0;
13360 if (! info_ptr->cr_save_p)
13361 info_ptr->cr_save_offset = 0;
13363 return info_ptr;