i386.md (*indirect_jump): Macroize using P mode iterator.
authorUros Bizjak <ubizjak@gmail.com>
Fri, 6 Jun 2008 11:57:16 +0000 (13:57 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Fri, 6 Jun 2008 11:57:16 +0000 (13:57 +0200)
* config/i386/i386.md (*indirect_jump): Macroize using P
mode iterator.  Remove !TARGET_64BIT from insn constraints.
(*tablejump_1): Ditto.
(*indirect_jump_rex64): Remove insn pattern.
(*tablejump_1_rex64): Ditto.
(eh_return_<mode>): Macroize using P mode iterator from eh_return_di
and eh_return_si insn patterns.

From-SVN: r136431

gcc/ChangeLog
gcc/config/i386/i386.md

index 8ba854ef3bb4ea5990d0bfa24e599181c6517ac2..e4cc38734c0ae809a059d8291d310ac4b33e3922 100644 (file)
@@ -1,3 +1,13 @@
+2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (*indirect_jump): Macroize using P
+       mode iterator.  Remove !TARGET_64BIT from insn constraints.
+       (*tablejump_1): Ditto.
+       (*indirect_jump_rex64): Remove insn pattern.
+       (*tablejump_1_rex64): Ditto.
+       (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
+       and eh_return_si insn patterns.
+
 2008-06-06  Richard Guenther  <rguenther@suse.de>
 
        * tree-ssa-structalias.c (merge_smts_into): Remove.
index 00a16d988e141b40080f27a73b0770e56a82c73e..6debb18d2a0a9a5bdbd3aae1d4e909cd0c5041cd 100644 (file)
   "")
 
 (define_insn "*indirect_jump"
-  [(set (pc) (match_operand:SI 0 "nonimmediate_operand" "rm"))]
-  "!TARGET_64BIT"
-  "jmp\t%A0"
-  [(set_attr "type" "ibr")
-   (set_attr "length_immediate" "0")])
-
-(define_insn "*indirect_jump_rtx64"
-  [(set (pc) (match_operand:DI 0 "nonimmediate_operand" "rm"))]
-  "TARGET_64BIT"
+  [(set (pc) (match_operand:P 0 "nonimmediate_operand" "rm"))]
+  ""
   "jmp\t%A0"
   [(set_attr "type" "ibr")
    (set_attr "length_immediate" "0")])
 })
 
 (define_insn "*tablejump_1"
-  [(set (pc) (match_operand:SI 0 "nonimmediate_operand" "rm"))
-   (use (label_ref (match_operand 1 "" "")))]
-  "!TARGET_64BIT"
-  "jmp\t%A0"
-  [(set_attr "type" "ibr")
-   (set_attr "length_immediate" "0")])
-
-(define_insn "*tablejump_1_rtx64"
-  [(set (pc) (match_operand:DI 0 "nonimmediate_operand" "rm"))
+  [(set (pc) (match_operand:P 0 "nonimmediate_operand" "rm"))
    (use (label_ref (match_operand 1 "" "")))]
-  "TARGET_64BIT"
+  ""
   "jmp\t%A0"
   [(set_attr "type" "ibr")
    (set_attr "length_immediate" "0")])
   DONE;
 })
 
-(define_insn_and_split "eh_return_si"
-  [(set (pc)
-        (unspec [(match_operand:SI 0 "register_operand" "c")]
-                UNSPEC_EH_RETURN))]
-  "!TARGET_64BIT"
-  "#"
-  "reload_completed"
-  [(const_int 0)]
-  "ix86_expand_epilogue (2); DONE;")
-
-(define_insn_and_split "eh_return_di"
+(define_insn_and_split "eh_return_<mode>"
   [(set (pc)
-        (unspec [(match_operand:DI 0 "register_operand" "c")]
+        (unspec [(match_operand:P 0 "register_operand" "c")]
                 UNSPEC_EH_RETURN))]
-  "TARGET_64BIT"
+  ""
   "#"
   "reload_completed"
   [(const_int 0)]