This is the mail archive of the binutils@sourceware.org mailing list for the binutils 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] x86: conditionalize x87 instructions and registers


>>> "H.J. Lu" <hjl.tools@gmail.com> 24.07.09 15:37 >>>
>> +  if (r->reg_type.bitfield.floatreg
>> +      && !cpu_arch_flags.bitfield.cpu8087
>> +      && !cpu_arch_flags.bitfield.cpu287
>> +      && !cpu_arch_flags.bitfield.cpu387)
>> +    return (const reg_entry *) NULL;
>> +
>
>I assume FISTTP  > 687 > 387 > 287 > 8087. If it is

No, specifically not - feni/fdisi are 8087 *only* and fsetpm/frstpm are 287
*only*. Thus only FISTTP > 687 > 387 (explaining why the code above
doesn't check for 687 and FISTTP), which is also reflected in how the Cpu*
masks are set up in opcodes/i386-gen.c (387 does not include 287, and
287 does not include 8087).

>the case, please change it to
>
> if (r->reg_type.bitfield.floatreg  && !cpu_arch_flags.bitfield.cpu8087)
>    return (const reg_entry *) NULL;
>
>OK with this change.

OK with that explanation, but code unchanged?

Jan


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