2014-06-04 10:58 GMT+04:00 Jeff Law <l...@redhat.com>:
> On 06/02/14 04:25, Ilya Enkovich wrote:
>>
>> Hi,
>>
>> This patch adds support for pointer bounds constants to be used as
>> DECL_INITIAL for constant bounds (like zero bounds).
>>
>> Bootstrapped and tested on linux-x86_64.
>>
>> Thanks,
>> Ilya
>> --
>> gcc/
>>
>> 2014-05-30  Ilya Enkovich  <ilya.enkov...@intel.com>
>>
>>         * emit-rtl.c (immed_double_const): Support MODE_POINTER_BOUNDS.
>>         (init_emit_once): Build pointer bounds zero constants.
>>         * explow.c (trunc_int_for_mode): Likewise.
>>         * varpool.c (ctor_for_folding): Do not fold constant
>>         bounds vars.
>>         * varasm.c (output_constant_pool_2): Support MODE_POINTER_BOUNDS.
>>         * config/i386/i386.c (ix86_legitimate_constant_p): Mark
>>         bounds constant as not valid.
>
>
> [ ... ]
>
>
>>
>> @@ -5875,6 +5876,11 @@ init_emit_once (void)
>>     if (STORE_FLAG_VALUE == 1)
>>       const_tiny_rtx[1][(int) BImode] = const1_rtx;
>>
>> +  for (mode = GET_CLASS_NARROWEST_MODE (MODE_POINTER_BOUNDS);
>> +       mode != VOIDmode;
>> +       mode = GET_MODE_WIDER_MODE (mode))
>> +    const_tiny_rtx[0][mode] = immed_double_const (0, 0, mode);
>
> I'm pretty sure GET_CLASS_NARROWEST_MODE should be taking a class, not a
> mode as its argument.  So something is clearly wrong here...

MODE_POINTER_BOUNDS is a class. Modes in this class are BND32mode and BND64mode.

Ilya
>
>
> jeff

Reply via email to