entry.S (9e1e41c44782741c727688a19e5624d039b0de7e) entry.S (09f8a6db20e6ed8eab1b2b23d09d2458f6e15062)
1/*
2 * Low-level exception handling
3 *
4 * This file is subject to the terms and conditions of the GNU General Public
5 * License. See the file "COPYING" in the main directory of this archive
6 * for more details.
7 *
8 * Copyright (C) 2004 - 2008 by Tensilica Inc.

--- 989 unchanged lines hidden (view full) ---

998 rotw -1
999 _bbci.l a8, 30, 8f
1000 rotw -1
1001 j _WindowUnderflow12
10028: j _WindowUnderflow8
10034: j _WindowUnderflow4
1004ENDPROC(fast_alloca)
1005
1/*
2 * Low-level exception handling
3 *
4 * This file is subject to the terms and conditions of the GNU General Public
5 * License. See the file "COPYING" in the main directory of this archive
6 * for more details.
7 *
8 * Copyright (C) 2004 - 2008 by Tensilica Inc.

--- 989 unchanged lines hidden (view full) ---

998 rotw -1
999 _bbci.l a8, 30, 8f
1000 rotw -1
1001 j _WindowUnderflow12
10028: j _WindowUnderflow8
10034: j _WindowUnderflow4
1004ENDPROC(fast_alloca)
1005
1006#ifdef CONFIG_USER_ABI_CALL0_PROBE
1006/*
1007/*
1008 * fast illegal instruction handler.
1009 *
1010 * This is used to fix up user PS.WOE on the exception caused
1011 * by the first opcode related to register window. If PS.WOE is
1012 * already set it goes directly to the common user exception handler.
1013 *
1014 * Entry condition:
1015 *
1016 * a0: trashed, original value saved on stack (PT_AREG0)
1017 * a1: a1
1018 * a2: new stack pointer, original in DEPC
1019 * a3: a3
1020 * depc: a2, original value saved on stack (PT_DEPC)
1021 * excsave_1: dispatch table
1022 */
1023
1024ENTRY(fast_illegal_instruction_user)
1025
1026 rsr a0, ps
1027 bbsi.l a0, PS_WOE_BIT, user_exception
1028 s32i a3, a2, PT_AREG3
1029 movi a3, PS_WOE_MASK
1030 or a0, a0, a3
1031 wsr a0, ps
1032 l32i a3, a2, PT_AREG3
1033 l32i a0, a2, PT_AREG0
1034 rsr a2, depc
1035 rfe
1036
1037ENDPROC(fast_illegal_instruction_user)
1038#endif
1039
1040 /*
1007 * fast system calls.
1008 *
1009 * WARNING: The kernel doesn't save the entire user context before
1010 * handling a fast system call. These functions are small and short,
1011 * usually offering some functionality not available to user tasks.
1012 *
1013 * BE CAREFUL TO PRESERVE THE USER'S CONTEXT.
1014 *

--- 1033 unchanged lines hidden ---
1041 * fast system calls.
1042 *
1043 * WARNING: The kernel doesn't save the entire user context before
1044 * handling a fast system call. These functions are small and short,
1045 * usually offering some functionality not available to user tasks.
1046 *
1047 * BE CAREFUL TO PRESERVE THE USER'S CONTEXT.
1048 *

--- 1033 unchanged lines hidden ---