History log of /src/sys/arch/arm/arm32/exception.S |
Revision | | Date | Author | Comments |
1.26 |
| 21-Nov-2020 |
skrll | Sprinkle some comments about ENABLE_ALIGNMENT_FAULTS leaving curcpu in r4 and curlwp in r5
|
1.25 |
| 11-Aug-2019 |
skrll | branches: 1.25.8; Trailing whitespace
|
1.24 |
| 07-Jul-2017 |
chs | branches: 1.24.6; split PUSHFRAMEINSVC into two pieces so that we can insert some additional instructions in the middle in undefinedinstruction_bounce, namely to add some additional space on the stack before the trapframe for undefineds from SVC mode. this extra space allows dtrace to emulate a "push" instruction. the initial version was from me and some improvements were from nick.
|
1.23 |
| 21-Jun-2015 |
matt | Remove duplicate ASEND(undefined_entry)
|
1.22 |
| 13-Mar-2014 |
matt | branches: 1.22.6; Add clrex when we get an abort. Simplify undefined_entry to use the undefined stack to do transfer to the undefined handler.
|
1.21 |
| 05-Mar-2014 |
matt | push/pop unsaved registers before using printf.
|
1.20 |
| 02-Dec-2013 |
joerg | Don't use cpsr_all/spsr_all with mrs, it doesn't take a mask.
|
1.19 |
| 18-Aug-2013 |
matt | Move parts of cpu.h that are not needed by MI code in <arm/locore.h> Don't include <machine/cpu.h> or <machine/frame.h>, use <arm/locore.h> Use <arm/asm.h> instead of <machine/arm.h>
|
1.18 |
| 12-Sep-2012 |
matt | branches: 1.18.2; Make sure the handler addresses are 32-bit aligned.
|
1.17 |
| 29-Aug-2012 |
matt | branches: 1.17.2; Don't use locations in .data to store exception temporaries, use decidicated space in cpu_info instead. This also moves undefined_handler_address into cpu_info as well. Use the new armreg* inlines for getting TPIDRPRW register. Add MULTIPROCESSOR version of CPU_INFO_FOREACH
|
1.16 |
| 27-Apr-2008 |
matt | branches: 1.16.18; 1.16.34; 1.16.42; Merge kernel changes in matt-armv6 to HEAD.
|
1.15 |
| 19-Jan-2008 |
chris | branches: 1.15.6; 1.15.8; 1.15.10; Remove arm support for IPKDB.
It hasn't worked since arm was broken out from arm32 in Jan 2001, and no-one has noticed or cared to fix it.
|
1.14 |
| 11-Dec-2005 |
christos | branches: 1.14.46; 1.14.50; 1.14.52; 1.14.58; 1.14.66; merge ktrace-lwp.
|
1.13 |
| 31-Oct-2003 |
scw | branches: 1.13.16; Overhaul arm32's abort handlers:
- Assume a permission fault is always the result of an attempted write, so no need to disassemble the opcode. (as discussed with Richard Earnshaw/Jason Thorpe a week or two ago)
- Split out non-MMU data aborts into separate functions, and deal correctly with XScale imprecise aborts. Specifically, the old code made no attempt to handle the double abort faults which can occur as a result of two consecutive external (imprecise) aborts. This was easy to provoke by read(2)ing from a /dev/mem offset which caused an external abort. With the old code, this would bring the system down instantly, with little clue as to why. (hint: tf_spsr held PSR_ABT32_MODE...)
- Re-write badaddr_read() to use pcb_onfault instead of adding extra overhead to data_abort_handler(). A side effect of this is that it now benefits from the XScale double abort recovery.
- Invoke the cpu-specific prefetch/data abort fixup routines only if the host cpu actually needs it. On other cpus, the code is optimised away.
- Sprinkle __predict_{false,true} in all the right places.
- G/C some excess debugging baggage.
|
1.12 |
| 30-Oct-2003 |
scw | Move the alignment fault enable/disable code into macroes to avoid needless duplication.
Additionally, merge AST handling into the same code.
exception.S and the generic irq_dispatch.S routines have been updated to use the macroes.
XXX: I have patches for the non-generic IRQ dispatch routines, but they need testing by someone with hardware.
|
1.11 |
| 26-Oct-2003 |
scw | Assume that if curpcb is NULL, we're already running with alignment faults enabled.
|
1.10 |
| 25-Oct-2003 |
scw | Skip the alignment fault enabling code if we came from SVC mode. It's already enabled in this case.
|
1.9 |
| 25-Oct-2003 |
scw | Enable alignment faults on arm32 for both kernel and userland.
If COMPAT_15 and EXEC_AOUT are defined, support per-process alignment checking where AFLTs are always enabled when running kernel code and userland ELF binaries, and dynamically disabled/ enabled when switching to/from a.out binaries. This is necessary in order to execute older a.out binaries, where gcc made deliberate use of misaligned loads under certain circumstances.
|
1.8 |
| 06-Jan-2003 |
wiz | branches: 1.8.2; interrupt with two rs.
|
1.7 |
| 13-Oct-2002 |
bjh21 | Instead of "add rd, pc, #foo - . - 8", use either "adr rd, foo" or (where appropriate) "mov lr, pc". This makes things slightly less confusing and ugly.
|
1.6 |
| 15-Aug-2002 |
briggs | * Use local label names (.Lfoo vs. (Lfoo or foo)) * When moving from cpsr, use "cpsr" instead of "cpsr_all" (which is provided, but doesn't make sense since mrs doesn't support fields like msr does).
|
1.5 |
| 17-Jan-2002 |
bjh21 | branches: 1.5.8; Separate out syscall() out into three parts: swi_handler() does stuff that all SWIs will need, then calls curproc->p_emul->e_syscall. syscall() handles native NetBSD system calls. linux_syscall() handles Linux system calls.
|
1.4 |
| 14-Jan-2002 |
bjh21 | Simplify SWI entry: syscall() now extracts the SWI comment field itself.
|
1.3 |
| 20-Dec-2001 |
thorpej | * Share a common vector page between arm26 and arm32. * Use a common set of exception handlers for all arm32 platforms. * New FIQ framework based on discussions with Ben Harris, shared between arm26 and arm32.
|
1.2 |
| 28-Nov-2001 |
thorpej | - Garbage-collect some unused cruft. - When processing ASTs, restore interrupts *after* clearing astpending.
|
1.1 |
| 28-Jul-2001 |
chris | branches: 1.1.2; 1.1.8; Move the generic arm32 files into arm/arm32 from arm32/arm32, tested kernel builds on cats and riscpc.
|
1.1.8.6 |
| 07-Jan-2003 |
thorpej | Sync with HEAD.
|
1.1.8.5 |
| 18-Oct-2002 |
nathanw | Catch up to -current.
|
1.1.8.4 |
| 19-Aug-2002 |
thorpej | Partial (ARM only) sync with trunk -- significant performance improvements for XScale-based systems.
|
1.1.8.3 |
| 28-Feb-2002 |
nathanw | Catch up to -current.
|
1.1.8.2 |
| 08-Jan-2002 |
nathanw | Catch up to -current.
|
1.1.8.1 |
| 28-Jul-2001 |
nathanw | file exception.S was added on branch nathanw_sa on 2002-01-08 00:23:08 +0000
|
1.1.2.5 |
| 06-Sep-2002 |
jdolecek | sync kqueue branch with HEAD
|
1.1.2.4 |
| 11-Feb-2002 |
jdolecek | Sync w/ -current.
|
1.1.2.3 |
| 10-Jan-2002 |
thorpej | Sync kqueue branch with -current.
|
1.1.2.2 |
| 03-Aug-2001 |
lukem | update to -current
|
1.1.2.1 |
| 28-Jul-2001 |
lukem | file exception.S was added on branch kqueue on 2001-08-03 04:10:58 +0000
|
1.5.8.1 |
| 30-Aug-2002 |
gehenna | catch up with -current.
|
1.8.2.3 |
| 21-Sep-2004 |
skrll | Fix the sync with head I botched.
|
1.8.2.2 |
| 18-Sep-2004 |
skrll | Sync with HEAD.
|
1.8.2.1 |
| 03-Aug-2004 |
skrll | Sync with HEAD
|
1.13.16.1 |
| 21-Jan-2008 |
yamt | sync with head
|
1.14.66.1 |
| 20-Jan-2008 |
bouyer | Sync with HEAD
|
1.14.58.1 |
| 18-Feb-2008 |
mjf | Sync with HEAD.
|
1.14.52.2 |
| 23-Mar-2008 |
matt | sync with HEAD
|
1.14.52.1 |
| 28-Aug-2007 |
matt | #include "assym.h" first!
|
1.14.50.1 |
| 20-Jan-2008 |
chris | Sync to HEAD.
|
1.14.46.1 |
| 28-Feb-2008 |
rjs | Sync with HEAD.
|
1.15.10.1 |
| 16-May-2008 |
yamt | sync with head.
|
1.15.8.1 |
| 18-May-2008 |
yamt | sync with head.
|
1.15.6.1 |
| 02-Jun-2008 |
mjf | Sync with HEAD.
|
1.16.42.1 |
| 28-Nov-2012 |
matt | Merge improved arm support (especially Cortex) from HEAD including OMAP and BCM53xx support.
|
1.16.34.2 |
| 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.16.34.1 |
| 30-Oct-2012 |
yamt | sync with head
|
1.16.18.2 |
| 24-Mar-2014 |
matt | Use the improved undefined method from HEAD
|
1.16.18.1 |
| 15-Feb-2014 |
matt | Merge armv7 support from HEAD, specifically support for the BCM5301X and BCM56340 evbarm kernels.
|
1.17.2.3 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
1.17.2.2 |
| 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.17.2.1 |
| 20-Nov-2012 |
tls | Resync to 2012-11-19 00:00:00 UTC
|
1.18.2.2 |
| 18-May-2014 |
rmind | sync with head
|
1.18.2.1 |
| 28-Aug-2013 |
rmind | sync with head
|
1.22.6.2 |
| 28-Aug-2017 |
skrll | Sync with HEAD
|
1.22.6.1 |
| 22-Sep-2015 |
skrll | Sync with HEAD
|
1.24.6.1 |
| 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|
1.25.8.1 |
| 14-Dec-2020 |
thorpej | Sync w/ HEAD.
|