aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Henderson <rth@cygnus.com>2000-08-03 21:14:52 -0700
committerRichard Henderson <rth@gcc.gnu.org>2000-08-03 21:14:52 -0700
commit1183777788eafb694ad7857ccd31bcff0f37616b (patch)
treeecdc1f24363738ced00c0e569379e929b81926b1 /gcc
parentba89d661ac573f2402fa4f3b4cb117c8c74968e2 (diff)
downloadgcc-1183777788eafb694ad7857ccd31bcff0f37616b.zip
gcc-1183777788eafb694ad7857ccd31bcff0f37616b.tar.gz
gcc-1183777788eafb694ad7857ccd31bcff0f37616b.tar.bz2
i386.md (return_indirect_internal): New.
* i386.md (return_indirect_internal): New. * i386.c (ix86_expand_epilogue): Use it. From-SVN: r35471
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/i386/i386.c2
-rw-r--r--gcc/config/i386/i386.md8
3 files changed, 14 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 237bf48..ab59c2e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2000-08-03 Richard Henderson <rth@cygnus.com>
+
+ * config/i386/i386.md (return_indirect_internal): New.
+ * config/i386/i386.c (ix86_expand_epilogue): Use it.
+
2000-08-03 Zack Weinberg <zack@wolery.cumb.org>
* cpplex.c (parse_name): Might have to glue a CPP_OTHER token
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index c02dfc7..3a2603e 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -2138,7 +2138,7 @@ ix86_expand_epilogue (emit_return)
emit_insn (gen_popsi1 (ecx));
emit_insn (gen_addsi3 (stack_pointer_rtx, stack_pointer_rtx, popc));
- emit_indirect_jump (ecx);
+ emit_jump_insn (gen_return_indirect_internal (ecx));
}
else
emit_jump_insn (gen_return_pop_internal (popc));
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index b6324b6..1d771e4 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -8681,6 +8681,14 @@
(set_attr "length_immediate" "2")
(set_attr "modrm" "0")])
+(define_insn "return_indirect_internal"
+ [(return)
+ (use (match_operand:SI 0 "register_operand" "r"))]
+ "reload_completed"
+ "jmp\\t%*%0"
+ [(set_attr "type" "ibr")
+ (set_attr "length_immediate" "0")])
+
(define_insn "nop"
[(const_int 0)]
""