mips.md (tablejump_internal3, [...]): Tack on a `use' of the table label, so flow analysis will recognize a tablejump.
* config/mips/mips.md (tablejump_internal3, tablejump_internal4 and matching define_insns): Tack on a `use' of the table label, so flow analysis will recognize a tablejump. From-SVN: r22898
This commit is contained in:
parent
1bba619903
commit
5924eecfbc
@ -1,3 +1,9 @@
|
||||
Wed Oct 7 21:19:46 1998 Ken Raeburn <raeburn@cygnus.com>
|
||||
|
||||
* config/mips/mips.md (tablejump_internal3, tablejump_internal4
|
||||
and matching define_insns): Tack on a `use' of the table label, so
|
||||
flow analysis will recognize a tablejump.
|
||||
|
||||
Wed Oct 7 17:33:39 1998 Richard Henderson <rth@cygnus.com>
|
||||
|
||||
* gcse.c (pre_insert_insn): Tweek to notice that calls do not
|
||||
|
@ -8883,9 +8883,10 @@ move\\t%0,%z4\\n\\
|
||||
(set_attr "length" "1")])
|
||||
|
||||
(define_expand "tablejump_internal3"
|
||||
[(set (pc)
|
||||
(plus:SI (match_operand:SI 0 "register_operand" "d")
|
||||
(label_ref:SI (match_operand:SI 1 "" ""))))]
|
||||
[(parallel [(set (pc)
|
||||
(plus:SI (match_operand:SI 0 "register_operand" "d")
|
||||
(label_ref:SI (match_operand:SI 1 "" ""))))
|
||||
(use (label_ref:SI (match_dup 1)))])]
|
||||
""
|
||||
"")
|
||||
|
||||
@ -8942,7 +8943,8 @@ move\\t%0,%z4\\n\\
|
||||
(define_insn ""
|
||||
[(set (pc)
|
||||
(plus:SI (match_operand:SI 0 "register_operand" "d")
|
||||
(label_ref:SI (match_operand:SI 1 "" ""))))]
|
||||
(label_ref:SI (match_operand:SI 1 "" ""))))
|
||||
(use (label_ref:SI (match_dup 1)))]
|
||||
"!(Pmode == DImode) && next_active_insn (insn) != 0
|
||||
&& GET_CODE (PATTERN (next_active_insn (insn))) == ADDR_DIFF_VEC
|
||||
&& PREV_INSN (next_active_insn (insn)) == operands[1]"
|
||||
@ -8958,9 +8960,10 @@ move\\t%0,%z4\\n\\
|
||||
(set_attr "length" "2")])
|
||||
|
||||
(define_expand "tablejump_internal4"
|
||||
[(set (pc)
|
||||
(plus:DI (match_operand:DI 0 "se_register_operand" "d")
|
||||
(label_ref:DI (match_operand:SI 1 "" ""))))]
|
||||
[(parallel [(set (pc)
|
||||
(plus:DI (match_operand:DI 0 "se_register_operand" "d")
|
||||
(label_ref:DI (match_operand:SI 1 "" ""))))
|
||||
(use (label_ref:DI (match_dup 1)))])]
|
||||
""
|
||||
"")
|
||||
|
||||
@ -8970,7 +8973,8 @@ move\\t%0,%z4\\n\\
|
||||
(define_insn ""
|
||||
[(set (pc)
|
||||
(plus:DI (match_operand:DI 0 "se_register_operand" "d")
|
||||
(label_ref:DI (match_operand:SI 1 "" ""))))]
|
||||
(label_ref:DI (match_operand:SI 1 "" ""))))
|
||||
(use (label_ref:DI (match_dup 1)))]
|
||||
"Pmode == DImode && next_active_insn (insn) != 0
|
||||
&& GET_CODE (PATTERN (next_active_insn (insn))) == ADDR_DIFF_VEC
|
||||
&& PREV_INSN (next_active_insn (insn)) == operands[1]"
|
||||
|
Loading…
Reference in New Issue
Block a user