comparison gcc/function.c @ 20:9de9dad105d4

update gcc from 4.4.0 to 4.4.1.
author kent <kent@cr.ie.u-ryukyu.ac.jp>
date Thu, 24 Sep 2009 14:29:28 +0900
parents caeb520cebed 58ad6c70ea60
children 27e6f95b2c21
comparison
equal deleted inserted replaced
17:1572d6553fb6 20:9de9dad105d4
2975 2975
2976 data->entry_parm = convert_to_mode (data->nominal_mode, tempreg, 2976 data->entry_parm = convert_to_mode (data->nominal_mode, tempreg,
2977 TYPE_UNSIGNED (TREE_TYPE (parm))); 2977 TYPE_UNSIGNED (TREE_TYPE (parm)));
2978 2978
2979 if (data->stack_parm) 2979 if (data->stack_parm)
2980 /* ??? This may need a big-endian conversion on sparc64. */ 2980 {
2981 data->stack_parm 2981 int offset = subreg_lowpart_offset (data->nominal_mode,
2982 = adjust_address (data->stack_parm, data->nominal_mode, 0); 2982 GET_MODE (data->stack_parm));
2983 /* ??? This may need a big-endian conversion on sparc64. */
2984 data->stack_parm
2985 = adjust_address (data->stack_parm, data->nominal_mode, 0);
2986 if (offset && MEM_OFFSET (data->stack_parm))
2987 set_mem_offset (data->stack_parm,
2988 plus_constant (MEM_OFFSET (data->stack_parm),
2989 offset));
2990 }
2983 } 2991 }
2984 2992
2985 if (data->entry_parm != data->stack_parm) 2993 if (data->entry_parm != data->stack_parm)
2986 { 2994 {
2987 rtx src, dest; 2995 rtx src, dest;
3137 /* Estimate stack alignment from parameter alignment. */ 3145 /* Estimate stack alignment from parameter alignment. */
3138 if (SUPPORTS_STACK_ALIGNMENT) 3146 if (SUPPORTS_STACK_ALIGNMENT)
3139 { 3147 {
3140 unsigned int align = FUNCTION_ARG_BOUNDARY (data.promoted_mode, 3148 unsigned int align = FUNCTION_ARG_BOUNDARY (data.promoted_mode,
3141 data.passed_type); 3149 data.passed_type);
3150 align = MINIMUM_ALIGNMENT (data.passed_type, data.promoted_mode,
3151 align);
3142 if (TYPE_ALIGN (data.nominal_type) > align) 3152 if (TYPE_ALIGN (data.nominal_type) > align)
3143 align = TYPE_ALIGN (data.passed_type); 3153 align = MINIMUM_ALIGNMENT (data.nominal_type,
3154 TYPE_MODE (data.nominal_type),
3155 TYPE_ALIGN (data.nominal_type));
3144 if (crtl->stack_alignment_estimated < align) 3156 if (crtl->stack_alignment_estimated < align)
3145 { 3157 {
3146 gcc_assert (!crtl->stack_realign_processed); 3158 gcc_assert (!crtl->stack_realign_processed);
3147 crtl->stack_alignment_estimated = align; 3159 crtl->stack_alignment_estimated = align;
3148 } 3160 }