+2002-04-18 Bob Wilson <bob.wilson@acm.org>
+
+ * config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill,
+ __xtensa_nonlocal_goto): Use a syscall instructions to flush
+ the register windows.
+
2002-04-18 Zack Weinberg <zack@codesourcery.com>
* real.h: Define REAL_VALUE_TYPE_SIZE as 96 or 160, as
#include "xtensa/xtensa-config.h"
-/* __xtensa_libgcc_window_spill: This function uses a series of nested
- calls to flush out all but the current register window. This is
- used to set up the stack so that arbitrary frames can be accessed.
- The functions used for the nested calls are also reused by the
- nonlocal goto function below. */
-
- .align 4
- .global __xtensa_libgcc_window_spill
- .type __xtensa_libgcc_window_spill,@function
-__xtensa_libgcc_window_spill:
- entry sp, 48
- call4 .L__wdwspill_assist52 // called with call8, only need a call4
- retw
- .size __xtensa_libgcc_window_spill,.-__xtensa_libgcc_window_spill
+/* __xtensa_libgcc_window_spill: This function flushes out all but the
+ current register window. This is used to set up the stack so that
+ arbitrary frames can be accessed. */
- .align 4
-.L__wdwspill_assist56:
- entry sp, 16
- call4 .L__wdwspill_assist52
- retw
- .align 4
-.L__wdwspill_assist52:
- entry sp, 48
- call12 .L__wdwspill_assist40
- retw
- .align 4
-.L__wdwspill_assist40:
- entry sp, 48
- call12 .L__wdwspill_assist28
- retw
- .align 4
-.L__wdwspill_assist28:
- entry sp, 48
- call12 .L__wdwspill_assist16
- retw
- .align 4
-.L__wdwspill_assist16:
- entry sp, 16
- movi a15, 0
+ .align 4
+ .global __xtensa_libgcc_window_spill
+ .type __xtensa_libgcc_window_spill,@function
+__xtensa_libgcc_window_spill:
+ entry sp, 32
+ movi a2, 0
+ syscall
retw
+ .size __xtensa_libgcc_window_spill,.-__xtensa_libgcc_window_spill
/* __xtensa_nonlocal_goto: This code does all the hard work of a
entry sp, 32
/* flush registers */
- call8 .L__wdwspill_assist56
+ mov a5, a2
+ movi a2, 0
+ syscall
+ mov a2, a5
/* Because the save area for a0-a3 is stored one frame below
the one identified by a2, the only way to restore those