- 08 Feb, 2014 2 commits
-
-
Jeffrey Lee authored
Detail: This update adds the support code necessary to allow the VFPv2 coprocessor in the Raspberry Pi to be used in its full IEEE-compliant mode, and to add support for the generation of errors on VFP match exceptions (division by zero, etc.) SoftFloat Release 2b (http://www.jhauser.us/arithmetic/SoftFloat.html) is used to perform the floating point calculations in software, ensuring their accuracy. As with FPEmulator, the support code will only be included on machines which require it; at the moment this decision is handled by the makefile, based around the target machine type. Note that the current version of the support code does not implement default NaN or flush-to-zero mode, so it is not a fully accurate emulation of the hardware. Also added a new SWI, VFPSupport_ExceptionDump, for creating and reading a VFP context exception dump, and a new reason code to VFPSupport_Features to query which exception enable bits are supported File changes: - Makefile - Rewritten...
-
Jeffrey Lee authored
Detail: This is a copy of VFPSupport-0_05 from bsd/RiscOS/Sources/HWSupport It's being moved to the 'mixed' folder as the next version will contain sources using several different licences Admin: Untested Version 0.05. Retagged as 'VFPSupport-0_05'
-
- 18 Oct, 2012 1 commit
-
-
Jeffrey Lee authored
Detail: s/Module - Fixed context save & restore code to ensure FPEXC EX & FP2V bits are clear when accessing FPSCR and the main VFP registers. Without doing this, attempting to save or restore a context which has a pending exception will trigger an exception itself. Test/test2,ffb - Simple test to make sure save/restore of contexts with pending exceptions works properly Test/test1,ffb - Added brief description, changed file from plain text to tokenised BASIC to prevent it accidentally happening later on Admin: Tested on Raspberry Pi Programs which need support code to run or trigger math exceptions no longer trigger an undefined instruction abort from within VFPSupport Version 0.05. Tagged as 'VFPSupport-0_05'
-
- 21 Jul, 2012 1 commit
-
-
Jeffrey Lee authored
Detail: s/Module: - CheckHardware can now correctly determine that the ARM1176JZF-S is ARMv6, not ARMv7 - Added initial support for VFPv1/v2; currently only supports implementations that use FSTMX/FLDMX standard format 1, and for which we know we can read the MVFR0/MVFR1 registers. I.e. only VFP11 supported at present. - Fixed null pointer dereference in ExamineContext when examining the active context Admin: Tested on Raspberry Pi with high processor vectors Note there is no support code present, so using the coprocessor outside of RunFast mode will result in aborts. Version 0.04. Tagged as 'VFPSupport-0_04'
-
- 20 Mar, 2012 1 commit
-
-
Jeffrey Lee authored
Detail: Resources/UK/Messages, s/Errors, hdr/VFPSupport - Errors now declared in public header. New/updated error messages and symbols. s/GetAll - Changed GET order to work with errors in header file s/Module - Disallow instantiation. Manually issue Service_ModulePostFinal during finalisation, to give clients slightly more warning than the kernel does. Admin: Tested in OMAP3 ROM Version 0.03. Tagged as 'VFPSupport-0_03'
-
- 01 Feb, 2011 2 commits
-
-
Jeffrey Lee authored
Detail: s/Module, hdr/VFPSupport - VFPSupport_Create_LazyActivate & VFPSupport_Create_Activate now renamed to ..._CreateContext_... like they were meant to have been in my last checkin Admin: Tested on rev A2 BB-xM Version 0.02. Not tagged
-
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'
-
- 25 Nov, 2010 2 commits
-
-
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
-
Jeffrey Lee authored
-