• Jeffrey Lee's avatar
    Add initial version of VFPSupport module · 636765ec
    Jeffrey Lee authored
    Detail:
      Initial VFP/NEON support code for RISC OS. Features:
      * Basic detection code for determining VFP version. Should work OK on all architecture versions.
      * Provides code to perform VFP/NEON context switches
      * Context switches can be lazy or immediate
      * Context register dumps can be stored in user-allocated memory or memory allocated by VFPSupport
      * Basic APIs for examining contexts and reporting available hardware features
      * "FastAPI" that privileged code can use for context switching in order to avoid SWI call overheads
      Missing/unfinished features:
      * No VFP exception handler is present, so the module will refuse to run on anything but a VFPv3 system
      * Lazy context switching is simplistic, opting to activate the new context upon the first undefined instruction abort instead of checking to see if it was a VFP instruction that triggered the abort
      * No interface to allow debuggers to easily get their hands on a register dump following a crash
      * No code to automatically clean up contexts left behind by dying programs
      * Can't be used by FIQ handlers, or from code called by an FIQ handler
      * Currently uses an error base of 0!
      Other notes:
      * Doc/vfpversions contains some random notes about the different VFP/NEON versions
      * Test/test1,ffb is a BASIC program that tests most of the module's functionality
    Admin:
      Tested on Iyonix & Beagleboard. Iyonix version exits correctly, while Beagleboard version passes all tests in the test1 script.
      Need to sort out proper error numbers, and translate the error messages.
    
    
    Version 0.01. Not tagged
    636765ec
MkClean,fd7 1.58 KB