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"?

I think we can live without the testcase, since it is too much complication to detect asm support in the testsuite for this mnemonic. We can trust gcc that it can substitute "q" for "ll" in this case.


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