i386.md (movdi_extzv_1): New.
gcc/ 2005-07-18 Jan Beulich <jbeulich@novell.com> * i386.md (movdi_extzv_1): New. (zero_extendhidi2): Combine alternatives and never force use of REX64 prefix. (zero_extendqidi2): Likewise. Don't restrict input selection. From-SVN: r102128
This commit is contained in:
parent
ba9bb602ee
commit
422edd6fff
@ -1,3 +1,10 @@
|
||||
2005-07-18 Jan Beulich <jbeulich@novell.com>
|
||||
|
||||
* i386.md (movdi_extzv_1): New.
|
||||
(zero_extendhidi2): Combine alternatives and never force use of
|
||||
REX64 prefix.
|
||||
(zero_extendqidi2): Likewise. Don't restrict input selection.
|
||||
|
||||
2005-07-17 Daniel Berlin <dberlin@dberlin.org>
|
||||
|
||||
Fix PR tree-optimization/22531
|
||||
|
@ -1685,6 +1685,16 @@
|
||||
(set_attr "memory" "load")
|
||||
(set_attr "mode" "QI")])
|
||||
|
||||
(define_insn "*movdi_extzv_1"
|
||||
[(set (match_operand:DI 0 "register_operand" "=R")
|
||||
(zero_extract:DI (match_operand 1 "ext_register_operand" "Q")
|
||||
(const_int 8)
|
||||
(const_int 8)))]
|
||||
"TARGET_64BIT"
|
||||
"movz{bl|x}\t{%h1, %k0|%k0, %h1}"
|
||||
[(set_attr "type" "imovx")
|
||||
(set_attr "mode" "DI")])
|
||||
|
||||
(define_insn "*movsi_extzv_1"
|
||||
[(set (match_operand:SI 0 "register_operand" "=R")
|
||||
(zero_extract:SI (match_operand 1 "ext_register_operand" "Q")
|
||||
@ -3189,24 +3199,20 @@
|
||||
"split_di (&operands[0], 1, &operands[3], &operands[4]);")
|
||||
|
||||
(define_insn "zero_extendhidi2"
|
||||
[(set (match_operand:DI 0 "register_operand" "=r,r")
|
||||
(zero_extend:DI (match_operand:HI 1 "nonimmediate_operand" "r,m")))]
|
||||
[(set (match_operand:DI 0 "register_operand" "=r")
|
||||
(zero_extend:DI (match_operand:HI 1 "nonimmediate_operand" "rm")))]
|
||||
"TARGET_64BIT"
|
||||
"@
|
||||
movz{wl|x}\t{%1, %k0|%k0, %1}
|
||||
movz{wq|x}\t{%1, %0|%0, %1}"
|
||||
"movz{wl|x}\t{%1, %k0|%k0, %1}"
|
||||
[(set_attr "type" "imovx")
|
||||
(set_attr "mode" "SI,DI")])
|
||||
(set_attr "mode" "DI")])
|
||||
|
||||
(define_insn "zero_extendqidi2"
|
||||
[(set (match_operand:DI 0 "register_operand" "=r,r")
|
||||
(zero_extend:DI (match_operand:QI 1 "nonimmediate_operand" "Q,m")))]
|
||||
[(set (match_operand:DI 0 "register_operand" "=r")
|
||||
(zero_extend:DI (match_operand:QI 1 "nonimmediate_operand" "rm")))]
|
||||
"TARGET_64BIT"
|
||||
"@
|
||||
movz{bl|x}\t{%1, %k0|%k0, %1}
|
||||
movz{bq|x}\t{%1, %0|%0, %1}"
|
||||
"movz{bl|x}\t{%1, %k0|%k0, %1}"
|
||||
[(set_attr "type" "imovx")
|
||||
(set_attr "mode" "SI,DI")])
|
||||
(set_attr "mode" "DI")])
|
||||
|
||||
;; Sign extension instructions
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user