このページを編集する際は,編集に関する方針に従ってください.[]
概要[]
- gcc-4.1.0/gcc/stor-layout.cにて定義
- sizeにあった最小のモードを探す
- limitで制限をかけることができる
引数[]
- unsigned int size
- enum mode_class class
- int limit
実装[]
165 /* Return the machine mode to use for a nonscalar of SIZE bits. The
166 mode must be in class CLASS, and have exactly that many value bits;
167 it may have padding as well. If LIMIT is nonzero, modes of wider
168 than MAX_FIXED_MODE_SIZE will not be used. */
169
170 enum machine_mode
171 mode_for_size (unsigned int size, enum mode_class class, int limit)
172 {
173 enum machine_mode mode;
174
175 if (limit && size > MAX_FIXED_MODE_SIZE)
176 return BLKmode;
177
- 大きいモードへ変えていく
178 /* Get the first mode which has this size, in the specified class. */
179 for (mode = GET_CLASS_NARROWEST_MODE (class); mode != VOIDmode;
180 mode = GET_MODE_WIDER_MODE (mode))
181 if (GET_MODE_PRECISION (mode) == size)
182 return mode;
183
184 return BLKmode;
185 }