Commit ca538e97 by Uros Bizjak Committed by Uros Bizjak

predicates.md (x86_64_zext_general_operand): New.

	* config/i386/predicates.md (x86_64_zext_general_operand): New.
	* config/i386/i386.md (*zero_extendsidi2_rex64): Change operand 1
	predicate to x86_64_zext_general_operand.  Accept "Z" constraint.

From-SVN: r185073
parent 6ba4f08f
2012-03-07 Uros Bizjak <ubizjak@gmail.com>
* config/i386/predicates.md (x86_64_zext_general_operand): New.
* config/i386/i386.md (*zero_extendsidi2_rex64): Change operand 1
predicate to x86_64_zext_general_operand. Accept "Z" constraint.
2012-03-07 Walter Lee <walt@tilera.com> 2012-03-07 Walter Lee <walt@tilera.com>
* config/tilegx/tilegx.c (tilegx_expand_prologue): Don't generate * config/tilegx/tilegx.c (tilegx_expand_prologue): Don't generate
......
...@@ -3377,10 +3377,10 @@ ...@@ -3377,10 +3377,10 @@
(define_insn "*zero_extendsidi2_rex64" (define_insn "*zero_extendsidi2_rex64"
[(set (match_operand:DI 0 "nonimmediate_operand" [(set (match_operand:DI 0 "nonimmediate_operand"
"=r,o,?*Ym,?*y,?*Yi,!*x") "=r ,o,?*Ym,?*y,?*Yi,!*x")
(zero_extend:DI (zero_extend:DI
(match_operand:SI 1 "nonimmediate_operand" (match_operand:SI 1 "x86_64_zext_general_operand"
"rm,0,r ,m ,r ,m*x")))] "rmZ,0,r ,m ,r ,m*x")))]
"TARGET_64BIT" "TARGET_64BIT"
"@ "@
mov{l}\t{%1, %k0|%k0, %1} mov{l}\t{%1, %k0|%k0, %1}
......
...@@ -341,6 +341,14 @@ ...@@ -341,6 +341,14 @@
(match_operand 0 "general_operand"))) (match_operand 0 "general_operand")))
;; Return true if OP is general operand representable on x86_64 ;; Return true if OP is general operand representable on x86_64
;; as zero extended constant.
(define_predicate "x86_64_zext_general_operand"
(if_then_else (match_test "TARGET_64BIT")
(ior (match_operand 0 "nonimmediate_operand")
(match_operand 0 "x86_64_zext_immediate_operand"))
(match_operand 0 "general_operand")))
;; Return true if OP is general operand representable on x86_64
;; as either sign extended or zero extended constant. ;; as either sign extended or zero extended constant.
(define_predicate "x86_64_szext_general_operand" (define_predicate "x86_64_szext_general_operand"
(if_then_else (match_test "TARGET_64BIT") (if_then_else (match_test "TARGET_64BIT")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment