mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-24 16:30:53 +08:00
sh.md (ashlsi3_std splitter): Split only after reload.
2001-07-18 Andrew Haley <aph@cambridge.redhat.com> * config/sh/sh.md (ashlsi3_std splitter): Split only after reload. (ashlsi3_n splitter): Likewise. (lshrsi3_n splitter): Likewise. (GOTaddr2picreg): Make const SImode. (sym_label2reg): Likewise. (symGOT2reg): Likewise. (symGOTOFF2reg) Likewise. (casesi_worker_0): Make unspec SImode. From-SVN: r44304
This commit is contained in:
parent
2b9d17c73c
commit
615cd49b9a
@ -1,3 +1,16 @@
|
||||
2001-07-18 Andrew Haley <aph@cambridge.redhat.com>
|
||||
|
||||
* config/sh/sh.md (ashlsi3_std splitter): Split only after reload.
|
||||
(ashlsi3_n splitter): Likewise.
|
||||
(lshrsi3_n splitter): Likewise.
|
||||
|
||||
(GOTaddr2picreg): Make const SImode.
|
||||
(sym_label2reg): Likewise.
|
||||
(symGOT2reg): Likewise.
|
||||
(symGOTOFF2reg) Likewise.
|
||||
|
||||
(casesi_worker_0): Make unspec SImode.
|
||||
|
||||
2001-07-18 Andrew Haley <aph@cambridge.redhat.com>
|
||||
|
||||
* config/sh/sh.c (barrier_align): Check that an operand really is
|
||||
|
@ -1654,6 +1654,7 @@
|
||||
shll%O2 %0
|
||||
#"
|
||||
"TARGET_SH3
|
||||
&& reload_completed
|
||||
&& GET_CODE (operands[2]) == CONST_INT
|
||||
&& ! CONST_OK_FOR_K (INTVAL (operands[2]))"
|
||||
[(set (match_dup 3) (match_dup 2))
|
||||
@ -1696,7 +1697,7 @@
|
||||
(ashift:SI (match_operand:SI 1 "arith_reg_operand" "")
|
||||
(match_operand:SI 2 "const_int_operand" "n")))
|
||||
(clobber (reg:SI T_REG))]
|
||||
""
|
||||
"reload_completed"
|
||||
[(use (reg:SI R0_REG))]
|
||||
"
|
||||
{
|
||||
@ -1744,7 +1745,7 @@
|
||||
(ashift:HI (match_operand:HI 1 "arith_reg_operand" "")
|
||||
(match_operand:HI 2 "const_int_operand" "n")))
|
||||
(clobber (reg:SI T_REG))]
|
||||
""
|
||||
"reload_completed"
|
||||
[(use (reg:SI R0_REG))]
|
||||
"
|
||||
{
|
||||
@ -1904,7 +1905,7 @@
|
||||
(lshiftrt:SI (match_operand:SI 1 "arith_reg_operand" "")
|
||||
(match_operand:SI 2 "const_int_operand" "n")))
|
||||
(clobber (reg:SI T_REG))]
|
||||
""
|
||||
"reload_completed"
|
||||
[(use (reg:SI R0_REG))]
|
||||
"
|
||||
{
|
||||
@ -3747,7 +3748,7 @@
|
||||
[(set (reg:SI R0_REG)
|
||||
(unspec [(const (unspec [(match_dup 1)] UNSPEC_PIC))]
|
||||
UNSPEC_MOVA))
|
||||
(set (match_dup 0) (const (unspec [(match_dup 1)] UNSPEC_PIC)))
|
||||
(set (match_dup 0) (const:SI (unspec:SI [(match_dup 1)] UNSPEC_PIC)))
|
||||
(set (match_dup 0) (plus:SI (match_dup 0) (reg:SI R0_REG)))]
|
||||
"" "
|
||||
{
|
||||
@ -3778,7 +3779,7 @@
|
||||
(define_expand "sym_label2reg"
|
||||
[(set (match_operand:SI 0 "" "")
|
||||
(const (minus:SI
|
||||
(const (unspec [(match_operand:SI 1 "" "")] UNSPEC_PIC))
|
||||
(const:SI (unspec:SI [(match_operand:SI 1 "" "")] UNSPEC_PIC))
|
||||
(const (plus:SI
|
||||
(match_operand:SI 2 "" "")
|
||||
(const_int 2))))))]
|
||||
@ -3786,7 +3787,7 @@
|
||||
|
||||
(define_expand "symGOT2reg"
|
||||
[(set (match_operand:SI 0 "" "")
|
||||
(const (unspec [(match_operand:SI 1 "" "")] UNSPEC_GOT)))
|
||||
(const:SI (unspec:SI [(match_operand:SI 1 "" "")] UNSPEC_GOT)))
|
||||
(set (match_dup 0) (plus:SI (match_dup 0) (match_dup 2)))
|
||||
(set (match_dup 0) (mem:SI (match_dup 0)))]
|
||||
""
|
||||
@ -3797,7 +3798,7 @@
|
||||
|
||||
(define_expand "symGOTOFF2reg"
|
||||
[(set (match_operand:SI 0 "" "")
|
||||
(const (unspec [(match_operand:SI 1 "" "")] UNSPEC_GOTOFF)))
|
||||
(const:SI (unspec:SI [(match_operand:SI 1 "" "")] UNSPEC_GOTOFF)))
|
||||
(set (match_dup 0) (plus:SI (match_dup 0) (match_dup 2)))]
|
||||
""
|
||||
"
|
||||
@ -3886,7 +3887,7 @@
|
||||
|
||||
(define_insn "casesi_worker_0"
|
||||
[(set (match_operand:SI 0 "register_operand" "=r,r")
|
||||
(unspec [(match_operand 1 "register_operand" "0,r")
|
||||
(unspec:SI [(match_operand 1 "register_operand" "0,r")
|
||||
(label_ref (match_operand 2 "" ""))] UNSPEC_CASESI))
|
||||
(clobber (match_scratch:SI 3 "=X,1"))
|
||||
(clobber (match_scratch:SI 4 "=&z,z"))]
|
||||
@ -3910,14 +3911,14 @@
|
||||
|
||||
(define_split
|
||||
[(set (match_operand:SI 0 "register_operand" "")
|
||||
(unspec [(match_operand 1 "register_operand" "")
|
||||
(unspec:SI [(match_operand 1 "register_operand" "")
|
||||
(label_ref (match_operand 2 "" ""))] UNSPEC_CASESI))
|
||||
(clobber (match_scratch:SI 3 ""))
|
||||
(clobber (match_scratch:SI 4 ""))]
|
||||
"TARGET_SH2 && reload_completed"
|
||||
[(set (reg:SI R0_REG) (unspec [(label_ref (match_dup 2))] UNSPEC_MOVA))
|
||||
(parallel [(set (match_dup 0)
|
||||
(unspec [(reg:SI R0_REG) (match_dup 1)
|
||||
(unspec:SI [(reg:SI R0_REG) (match_dup 1)
|
||||
(label_ref (match_dup 2))] UNSPEC_CASESI))
|
||||
(clobber (match_dup 3))])]
|
||||
"LABEL_NUSES (operands[2])++;")
|
||||
|
Loading…
x
Reference in New Issue
Block a user