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]

[PATCH, i386]: Correct sse3_monitor and sse2_maskmovdqu patterns for Pmode != word_mode


Hello!

These two insns have implicit address operands, so when Pmode !=
word_mode (x32 with -maddress-mode=short) we have to instruct the
linker to emit 0x67 address override prefix.

The patch also changes *sse3_monitor pattern to emit mnemonic with
implicit operands, to avoid duplicating operands in reverse order for
Intel syntax.

2013-08-13  Uros Bizjak  <ubizjak@gmail.com>

    * config/i386/sse.md (*sse2_maskmovdqu): Emit addr32 prefix
    when Pmode != word_mode.  Add length_address attribute.
    (sse3_monitor_<mode>): Merge from sse3_monitor and
    sse3_monitor64_<mode> insn patterns.  Emit addr32 prefix when
    Pmode != word_mode.  Update insn length attribute.
    * config/i386/i386.c (ix86_option_override_internal): Update
    ix86_gen_monitor selection for merged sse3_monitor insn.

Patch was tested on x86_64-pc-linux-gnu {,-m32} and committed to mainline SVN.

Uros.

Attachment: p.diff.txt
Description: Text document


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