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 --- |