[Bug target/39911] The 'z' suffix doesn't work with 16bit integer insn
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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