This is the mail archive of the 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: PR target/39590: inline asm %z on amd64 says "ll" instead of "q"

H.J. Lu 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
I was thinking that we can "hide" %Z somehow to discourage its use. I'll add a short description anyway.


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