1. 01 Feb, 2011 1 commit
    • Jeffrey Lee's avatar
      Tweak VFPSupport API and add support for contexts stored in application space · 1355ea60
      Jeffrey Lee authored
      Detail:
        s/Module, hdr/VFPSupport - New/changed features:
        - Contexts can now be flagged as being in application space if they're created with the VFPSupport_Context_AppSpace flag
        - VFPSupport_ChangeContext accepts a VFPSupport_ChangeContext_AppSpace flag, which will force the context change to occur in a nonlazy manner if the currently active context is in application space
        - VFPSupport_CreateContext accepts a VFPSupport_CreateContext_LazyActivate flag, to indicate that after creation the context should be activated lazily (unlike VFSupport_CreateContext_Activate)
        - VFPSupport_Context_Activate renamed to VFPSupport_CreateContext_Activate for clarity
        - VFPSupport_CheckContext now ignores the Activate/LazyActivate flags, so the same flag word can be passed to Check & Create
        - "Context ID" simplified to just "Context pointer", as an indiciation of the fact that I now have no plans to make VFPSupport keep a master list of extant contexts
          - This makes it legal for programs to move/copy/delete contexts as long as they've made sure that the ExamineContext doesn't indicate that any part of the context is active
        - VFPSupport_ExamineContext now returns the context size in R4 instead of the context ID
        Test/test1,ffb - Updated to work with new API
      Admin:
        Tested on rev A2 BB-xM.
        VFPSupport_ExamineContext change is backwards-incompatible!
      
      
      Version 0.02. Tagged as 'VFPSupport-0_02'
      1355ea60
  2. 25 Nov, 2010 2 commits
    • 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...
      636765ec
    • Jeffrey Lee's avatar
      created by srccommit. · d9a85246
      Jeffrey Lee authored
      d9a85246