diff options
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/i386/i386.md | 12 |
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; |