This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PATCH: Darwin FP constant peephole (again)



On Tuesday, December 18, 2001, at 05:55 PM, Aldy Hernandez wrote:

>>>>>> "Dale" == Dale Johannesen <dalej@apple.com> writes:
>
> it looks much better as a function :)
>
>> +/* The convention appears to be to define this wherever it is used.
>> +   With legitimize_reload_address now defined here, 
>> REG_MODE_OK_FOR_BASE_P
>> +   is now used here.  */
>> +#ifndef REG_MODE_OK_FOR_BASE_P
>> +#define REG_MODE_OK_FOR_BASE_P(REGNO, MODE) REG_OK_FOR_BASE_P (REGNO)
>> +#endif
>
> perhaps this should go either in reload.h or in rs6000.h.  IMO we
> shouldn't be defining target macros in the .c file.

Yeah.  But see reload.c, which is where I got this.

>> +#if TARGET_MACHO
>> +  if (DEFAULT_ABI == ABI_DARWIN && flag_pic
>> +      && GET_CODE (x) == LO_SUM
>> +      && GET_CODE (XEXP (x, 0)) == PLUS
>> +      && XEXP (XEXP (x, 0), 0) == pic_offset_table_rtx
>> +      && GET_CODE (XEXP (XEXP (x, 0), 1)) == HIGH
>> +      && GET_CODE (XEXP (XEXP (XEXP (x, 0), 1), 0)) == CONST
>> +      && XEXP (XEXP (XEXP (x, 0), 1), 0) == XEXP (x, 1)
>> +      && GET_CODE (XEXP (XEXP (x, 1), 0)) == MINUS
>> +      && GET_CODE (XEXP (XEXP (XEXP (x, 1), 0), 0)) == SYMBOL_REF
>> +      && GET_CODE (XEXP (XEXP (XEXP (x, 1), 0), 1)) == SYMBOL_REF)
>> +    {
>> +      /* Result of previous invocation of this function on Darwin
>> +        floating point constant. */
>> +      push_reload (XEXP (x, 0), NULL_RTX, &XEXP (x, 0), NULL,
>> +               BASE_REG_CLASS, Pmode, VOIDmode, 0, 0,
>> +               opnum, (enum reload_type)type);
>> +      *win = 1;
>> +      return x;
>> +    }
>> +#endif
>
> do these have to be conditionally compiled?  We're trying to cut down
> on conditionally compiled code when possible.

The other one has to be because of machopic_function_base_name(), at
least that's the easiest way to deal with it and consistent with all
the other places where it's referenced.  This one doesn't have to, but
they go together, so it seems cleaner to me to have this one conditional
also.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]