PATCH: PR target/39590: inline asm %z on amd64 says "ll" instead of "q"

H.J. Lu hjl.tools@gmail.com
Wed Apr 22 14:53:00 GMT 2009


On Wed, Apr 22, 2009 at 6:53 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
> On Wed, Apr 22, 2009 at 6:45 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
>> On Wed, Apr 22, 2009 at 5:54 AM, Uros Bizjak <ubizjak@gmail.com> wrote:
>>> On Wed, Apr 22, 2009 at 2:28 PM, Jakub Jelinek <jakub@redhat.com> wrote:
>>>
>>>>> I think that we should move special fild/fist handling out of 'z' into
>>>>> new 'Z' operand modifier. This simplifies code a lot, and enables all
>>>>> sorts of special fild/fist handling to be handled in one place without
>>>>> overloading (otherwise undocumented!) 'z' modifier too much.
>>>>
>>>> Wouldn't it be better to keep %zN as is and add %ZN which would expand
>>>> to q instead of ll for 64-bit operand?
>>>> When a new modifier is added, I don't see any advantages of modifying the
>>>> behaviour of %zN.
>>>
>>> This is in fact the core of the problem. People are using %z, and this
>>> modifier will generate "ll" suffix when DImode memory operand is
>>> processed. We are changing %z to avoid this, so %z will always
>>> generate "q", no matter if assembler supports fildq or not.
>>>
>>
>> Do we need a testcase for "%z"?
>>
>
> We also need to document 'Z' in i386.md.
>

FWIW, this change will break existing asm statement with "fild%z".


-- 
H.J.



More information about the Gcc-patches mailing list