aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorVenkataramanan Kumar <venkataramanan.kumar@amd.com>2015-06-05 06:38:32 +0000
committerVenkataramanan Kumar <vekumar@gcc.gnu.org>2015-06-05 06:38:32 +0000
commitedf1fd6defa3ed02f1079376b0eecd51cbcb3e44 (patch)
tree6613818f014f228c282637b0c4bf5889fdf609be /gcc
parent14ae1d88b337dcd79f6bfe29263b8a8ae07c38b3 (diff)
downloadgcc-edf1fd6defa3ed02f1079376b0eecd51cbcb3e44.zip
gcc-edf1fd6defa3ed02f1079376b0eecd51cbcb3e44.tar.gz
gcc-edf1fd6defa3ed02f1079376b0eecd51cbcb3e44.tar.bz2
sse.md (sse3_mwait): Swap the operand constriants.
2015-06-05 Venkataramanan Kumar <venkataramanan.kumar@amd.com> * config/i386/sse.md (sse3_mwait): Swap the operand constriants. From-SVN: r224146
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/config/i386/sse.md8
2 files changed, 9 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a052bd3..5eb2f40 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2015-06-05 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
+
+ * config/i386/sse.md (sse3_mwait): Swap the operand constriants.
+
2015-06-04 DJ Delorie <dj@redhat.com>
* config/msp430/msp430.md (movsi_s): New. Special case for
diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md
index e44ba9a..4ef51d6 100644
--- a/gcc/config/i386/sse.md
+++ b/gcc/config/i386/sse.md
@@ -13218,10 +13218,12 @@
(set_attr "atom_sse_attr" "fence")
(set_attr "memory" "unknown")])
-
+;; As per AMD and Intel ISA manuals, the first operand is extensions
+;; and it goes to %ecx. The second operand received is hints and it goes
+;; to %eax.
(define_insn "sse3_mwait"
- [(unspec_volatile [(match_operand:SI 0 "register_operand" "a")
- (match_operand:SI 1 "register_operand" "c")]
+ [(unspec_volatile [(match_operand:SI 0 "register_operand" "c")
+ (match_operand:SI 1 "register_operand" "a")]
UNSPECV_MWAIT)]
"TARGET_SSE3"
;; 64bit version is "mwait %rax,%rcx". But only lower 32bits are used.