This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
__builtin_apply patch
- To: egcs at cygnus dot com
- Subject: __builtin_apply patch
- From: Scott Christley <scottc at net-community dot com>
- Date: Thu, 13 Nov 1997 19:12:40 -0800
Thu Nov 13 16:59:16 1997 Scott Christley <scottc@net-community.com>
* expr.c (expand_builtin_apply): Prefer nonlocal over block.
diff -rcP ./expr.c ../netc-971104-1/expr.c
*** ./expr.c Thu Nov 13 16:43:14 1997
--- ../netc-971104-1/expr.c Thu Nov 13 16:54:00 1997
***************
*** 9594,9600 ****
/* Push a new argument block and copy the arguments. */
do_pending_stack_adjust ();
! emit_stack_save (SAVE_BLOCK, &old_stack_level, NULL_RTX);
/* Push a block of memory onto the stack to store the memory arguments.
Save the address in a register, and copy the memory arguments. ??? I
--- 9594,9607 ----
/* Push a new argument block and copy the arguments. */
do_pending_stack_adjust ();
!
! /* Save the stack with nonlocal if available */
! #ifdef HAVE_save_stack_nonlocal
! if (HAVE_save_stack_nonlocal)
! emit_stack_save (SAVE_NONLOCAL, &old_stack_level, NULL_RTX);
! else
! #endif
! emit_stack_save (SAVE_BLOCK, &old_stack_level, NULL_RTX);
/* Push a block of memory onto the stack to store the memory arguments.
Save the address in a register, and copy the memory arguments. ??? I
***************
*** 9720,9726 ****
CALL_INSN_FUNCTION_USAGE (call_insn) = call_fusage;
/* Restore the stack. */
! emit_stack_restore (SAVE_BLOCK, old_stack_level, NULL_RTX);
/* Return the address of the result block. */
return copy_addr_to_reg (XEXP (result, 0));
--- 9727,9738 ----
CALL_INSN_FUNCTION_USAGE (call_insn) = call_fusage;
/* Restore the stack. */
! #ifdef HAVE_save_stack_nonlocal
! if (HAVE_save_stack_nonlocal)
! emit_stack_restore (SAVE_NONLOCAL, &old_stack_level, NULL_RTX);
! else
! #endif
! emit_stack_restore (SAVE_BLOCK, old_stack_level, NULL_RTX);
/* Return the address of the result block. */
return copy_addr_to_reg (XEXP (result, 0));