aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Henderson <rth@cygnus.com>1998-11-07 03:38:33 -0800
committerRichard Henderson <rth@gcc.gnu.org>1998-11-07 03:38:33 -0800
commit35e2d030db97552fd1980f0efec744d65288077d (patch)
tree31279335b236298de418e8bfeb4c32463303d478 /gcc
parent771f9be541a1085b6d140f0f6df6aa487552844a (diff)
downloadgcc-35e2d030db97552fd1980f0efec744d65288077d.zip
gcc-35e2d030db97552fd1980f0efec744d65288077d.tar.gz
gcc-35e2d030db97552fd1980f0efec744d65288077d.tar.bz2
i386.md (call_value_pop): If we're not popping anything, defer to call_value.
* i386.md (call_value_pop): If we're not popping anything, defer to call_value. (call_pop): Likewise defer to call. From-SVN: r23556
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/i386/i386.md12
2 files changed, 18 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f74d64b..ea3e661 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+Sat Nov 7 11:37:53 1998 Richard Henderson <rth@cygnus.com>
+
+ * i386.md (call_value_pop): If we're not popping anything,
+ defer to call_value.
+ (call_pop): Likewise defer to call.
+
Sat Nov 7 02:49:56 1998 Richard Henderson <rth@cygnus.com>
* function.c (purge_addressof): Clear purge_addressof_replacements
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index e1f026a..57195df 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -6101,6 +6101,12 @@ byte_xor_operation:
{
rtx addr;
+ if (operands[3] == const0_rtx)
+ {
+ emit_insn (gen_call (operands[0], operands[1]));
+ DONE;
+ }
+
if (flag_pic)
current_function_uses_pic_offset_table = 1;
@@ -6203,6 +6209,12 @@ byte_xor_operation:
{
rtx addr;
+ if (operands[4] == const0_rtx)
+ {
+ emit_insn (gen_call_value (operands[0], operands[1], operands[2]));
+ DONE;
+ }
+
if (flag_pic)
current_function_uses_pic_offset_table = 1;