Mercurial > hg > CbC > CbC_gcc
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 } |