summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2000-08-04 04:14:52 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2000-08-04 04:14:52 +0000
commit403c0692f22f126b8353efa471cd5388d7f94536 (patch)
treeecdc1f24363738ced00c0e569379e929b81926b1
parent71aa9da49a647f40be52849e809d9264b1601629 (diff)
downloadppe42-gcc-403c0692f22f126b8353efa471cd5388d7f94536.tar.gz
ppe42-gcc-403c0692f22f126b8353efa471cd5388d7f94536.zip
* i386.md (return_indirect_internal): New.
* i386.c (ix86_expand_epilogue): Use it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@35471 138bc75d-0d04-0410-961f-82ee72b054a4
-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 237bf485eee..ab59c2e60b3 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 c02dfc77346..3a2603e0836 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 b6324b6ff7a..1d771e4a5cd 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)]
""
OpenPOWER on IntegriCloud