This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Why is __i686 undefined for x86_64 -m32 (in mainline)
On Tue, Mar 16, 2010 at 1:58 PM, Jakub Jelinek <jakub@redhat.com> wrote:
> On Tue, Mar 16, 2010 at 09:53:30PM +0100, Paolo Carlini wrote:
>> On 03/16/2010 09:40 PM, H.J. Lu wrote:
>> > We never defined __i686 for -m32 by default on x86_64. Here is
>> > a patch to define __i686 for -m32 if the processor supports it.
>> >
>> If I understand correctly the logic underlying the recent work in this
>> area, I think we certainly want your patch, because otherwise we have
>> kind of an inconsistent situation: the i686 facilites *are* available,
>> but __i686 is undefined.
>>
>> Maybe the patch should go to gcc-patches to...
>
> I don't think it is a good idea to change the meaning of the macros years
> after they have been introduced.
> You could add a different macro if you want.
> Why should be __i686 special? ?i686 does have __i586 features too, should it
> define also __i586, __i486? ?Should __core2 define __pentium4? ?Etc., etc.
>
I don't think we should add those at all. i386.c has
/* For sane SSE instruction set generation we need fcomi instruction.
It is safe to enable all CMOVE instructions. */
if (TARGET_SSE)
TARGET_CMOVE = 1;
Why not check __SSE__ or __SSE2__?
--
H.J.