This is the mail archive of the gcc-patches@gcc.gnu.org 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/39911: The 'z' suffix doesn't work with 16bit integer insn


H.J. Lu wrote:
On Mon, Apr 27, 2009 at 1:26 PM, Uros Bizjak <ubizjak@gmail.com> wrote:
H.J. Lu wrote:

I checked the history on i386.c. %z works on x87 insns as far as back
to the initial version on gcc.gnu.org in 1992 and %z never worked on
memory operand with integer insns. I don't believe we should break
%z now. We should use %Z to support integer insns.

The problem is, that users want "%z" due to the comment in i386.md. Whether
gcc uses "%Z" or "%z" internally does not matter at all. I propose that we
go ahead with my patch to see if/what breaks. It is just a matter of
changing the letter throughout a couple of source files to switch the
modifiers.


Since we won't change 4.3/4.4 branches, we should update comments
on 4.3/4.4 branches to reflect how 'z' is actually used in gcc. It should have
zero impact.. OK for 4.3/4.4?

I suggest that we leave this mess on 4.3 and 4.4 branches as is. x87 insns with register operands don't get suffixes, and suffixes for FP and integer memory operands of the same size are different (i.e. "s" and "l" for 32bit and 64bit FP ops vs. "s", "l" and "ll" for 16bit, 32bit and 64bit integer ops). Having "b", "w", "l" and "q" suffixes for integer insns doesn't fit into this at all.


Uros.
Thanks.



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