Commit c199c178 authored by Jeffrey Lee's avatar Jeffrey Lee Committed by ROOL
Browse files

Add OS_AbortTrap implementation

This supports all the load/store instructions, including FPA & VFP/NEON.
Most instructions are handled directly via the base version of the
AbortTrap API that was first implemented in RISC OS Select. However, to
properly cope with LDREX/STREX, and future support for prefetch aborts,
the API has been extended to allow the kernel to request that a block of
memory is mapped in with certain permissions. For LDREX/STREX the kernel
will then rewind the PC so that the instruction can be retried directly.

Test code in Dev/AbortTrap exists in order to allow checking of all
major functionality, along with code for building the code in a
softloadable module for easier/quicker testing.
parent 3d5802b0
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -533,6 +533,7 @@ RdArgs_SWICode ROUT
Pull "R4, R8, R9, lr"
B SLVK_SetV
EXPORT ErrorBlock_BadParameters
MakeErrorBlock BadParameters
MakeErrorBlock ArgRepeated
ALIGN
......
......@@ -43,6 +43,7 @@ TranslateError_VClear ROUT
CLRV
Pull "r4,PC"
EXPORT TranslateError
TranslateError ROUT
Push "r4,LR"
MOV r4,#0
......
This diff is collapsed.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment