[Bug target/39911] The 'z' suffix doesn't work with 16bit integer insn

2009-04-26 Thread hjl dot tools at gmail dot com


--- Comment #1 from hjl dot tools at gmail dot com  2009-04-26 18:42 ---
Created an attachment (id=17716)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17716&action=view)
A patch

Since "%z' never really worked on integer instructions, this
patch makes "%Z" for integer instructions only while providing
backward compatibility for existing asm statements.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39911



[Bug target/39911] The 'z' suffix doesn't work with 16bit integer insn

2009-04-26 Thread hjl dot tools at gmail dot com


--- Comment #2 from hjl dot tools at gmail dot com  2009-04-26 18:45 ---
Created an attachment (id=17717)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17717&action=view)
A patch

The updated patch.


-- 

hjl dot tools at gmail dot com changed:

   What|Removed |Added

  Attachment #17716|0   |1
is obsolete||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39911



[Bug target/39911] The 'z' suffix doesn't work with 16bit integer insn

2009-04-26 Thread ubizjak at gmail dot com


--- Comment #3 from ubizjak at gmail dot com  2009-04-26 18:55 ---
(In reply to comment #1)
> Created an attachment (id=17716)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17716&action=view) [edit]
> A patch
> 
> Since "%z' never really worked on integer instructions, this
> patch makes "%Z" for integer instructions only while providing
> backward compatibility for existing asm statements.

But this issue arises because users want %z on integer insn!

My proposal is, to enhance %Z to handle all x87 operands/instructions and leave
%z for integer instructions.  I hope there is no users of %z with x87 insns.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39911



[Bug target/39911] The 'z' suffix doesn't work with 16bit integer insn

2009-04-26 Thread hjl dot tools at gmail dot com


--- Comment #4 from hjl dot tools at gmail dot com  2009-04-26 19:03 ---
(In reply to comment #3)
> (In reply to comment #1)
> > Created an attachment (id=17716)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17716&action=view) [edit]
> > A patch
> > 
> > Since "%z' never really worked on integer instructions, this
> > patch makes "%Z" for integer instructions only while providing
> > backward compatibility for existing asm statements.
> 
> But this issue arises because users want %z on integer insn!
> 
> My proposal is, to enhance %Z to handle all x87 operands/instructions and 
> leave
> %z for integer instructions.  I hope there is no users of %z with x87 insns.
> 

It may break existing working asm statements with "%z" on x87
instructions. Since "%z" never really worked on asm statements
with "%z" on integer insns, there is little risk to break
existing working asm statements with "%z" for my proposal.
With older gcc, asm statements with "%z" on integer insns
don't work. With fixed gcc, they can use "%Z".


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39911



[Bug target/39911] The 'z' suffix doesn't work with 16bit integer insn

2009-04-26 Thread jakub at gcc dot gnu dot org


--- Comment #5 from jakub at gcc dot gnu dot org  2009-04-26 19:15 ---
I agree with H.J. on this, IMHO %zN should stay as it used to always work and
users that want to use something on integer instructions should use the new
%ZN.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39911



[Bug target/39911] The 'z' suffix doesn't work with 16bit integer insn

2009-04-26 Thread hjl dot tools at gmail dot com


--- Comment #6 from hjl dot tools at gmail dot com  2009-04-26 20:35 ---
A patch is posted at

http://gcc.gnu.org/ml/gcc-patches/2009-04/msg02055.html


-- 

hjl dot tools at gmail dot com changed:

   What|Removed |Added

URL||http://gcc.gnu.org/ml/gcc-
   ||patches/2009-
   ||04/msg02055.html


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39911



[Bug target/39911] The 'z' suffix doesn't work with 16bit integer insn

2009-04-27 Thread uros at gcc dot gnu dot org


--- Comment #7 from uros at gcc dot gnu dot org  2009-04-28 06:54 ---
Subject: Bug 39911

Author: uros
Date: Tue Apr 28 06:54:02 2009
New Revision: 146874

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=146874
Log:
PR target/39911
* config/i386/i386.c (print_operand) ['Z']: Handle floating point
and integer modes for x87 operands.  Do not ICE for unsupported size,
generate error instead.  Generate error for unsupported operand types.
['z']: Do not handle HImode memory operands specially.  Warning
for floating-point operands.  Fallthru to 'Z' for unsupported operand
types.  Do not ICE for unsupported size, generate error instead.
(output_387_binary_op): Use %Z to output operands.
(output_fp_compare): Ditto.
(output_387_reg_move): Ditto.

testsuite/ChangeLog:

PR target/39911
* gcc.target/i386/pr39911.c: New test.


Added:
trunk/gcc/testsuite/gcc.target/i386/pr39911.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/i386.c
trunk/gcc/config/i386/i386.md
trunk/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39911



[Bug target/39911] The 'z' suffix doesn't work with 16bit integer insn

2009-04-27 Thread ubizjak at gmail dot com


--- Comment #8 from ubizjak at gmail dot com  2009-04-28 06:56 ---
%z now works as expected for integer insns with register and memory operands.


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.5.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39911