Showing changes from revision #0 to #1:
Added | Removed | Changed
Entry | |
---|---|
R0 | Flags: |
Bit 0: Get exception dump | |
Bit 1: Get exception context | |
Bit 2: Clear exception dump | |
Bit 3: Create exception dump | |
Other bits: Reserved, should be zero | |
R1 | Context pointer (if bit 3 of flags set) |
Otherwise ignored |
Exit | |
---|---|
R0 | Copy of exception dump (if bit 0 of flags set), otherwise preserved |
R1 | Exception context (if bit 1 of flags set), otherwise preserved |
All other registers preserved |
This call allows for reading and writing of the VFP exception dump that VFPSupport maintains. VFPSupport will automatically fill the exception dump with a copy of the current VFP context whenever a trapped exception occurs and raises a RISC OS error. This call allows code to read that exception dump, or to create its own exception dump should it desire. The exception dump is a standard VFP context structure, and so can be examined using VFPSupport_ExamineContext.
Behaviour of the call is controlled by the flags value in R0. Multiple flags can be specified at once. They order of processing and their behaviour is described below:
All operations on the exception buffer occur in an atomic manner. For example, setting bits 0, 1 and 2 allow for the contents of the buffer to be read and then cleared. If a subsequent exception occurs halfway through the operation then it will not affect the returned results, but it will be correctly stored within the exception buffer. However, if lack of memory prevents the exception from being returned to the caller, then it will still be cleared from the internal buffer.