1. 27 Jan, 2013 1 commit
    • Robert Sprowson's avatar
      IOMD moved to distinct machine · 2ddd6e61
      Robert Sprowson authored
      Comments updated in CortexA8/CortexA9/STB55/STB5cx/Tungsten.
      Machine '32' offers SoftOnly now.
      Removed fpemedusa and Phoebe.
      Removed some proliferating !MkROM obey files.
      
      Version 4.31. Tagged as 'FPASC-4_31'
      2ddd6e61
  2. 10 May, 2012 1 commit
  3. 02 Jan, 2012 1 commit
  4. 12 Sep, 2011 1 commit
  5. 06 Aug, 2011 1 commit
    • Jeffrey Lee's avatar
      Update to work with zero page relocation · 19a98c14
      Jeffrey Lee authored
      Detail:
        Unlike most modules which can just store the zero page pointers in their workspace, FPEmulator is a bit trickier since the zero page pointers are needed from within abort handlers and other places where the module workspace pointer is hard to come by (in fact, FPEmulator uses FPEAnchor to store the module workspace pointer)
        So rather than break/rework lots of perfectly good code, there are now three different FPEmulator builds available, selected via the new FPEAnchorType option:
        * FPEAnchorType=Low will select a build suitable for machines with FPEAnchor at its original location in zero page. This is the default for ROM builds.
        * FPEAnchorType=High will select a build suitable for the FPEAnchor location (&ffff0ff4) that's used with zero page relocation. Machines with relocated zero page must specify this option in their components file.
        * FPEAnchorType=Local will select a build suitable for softloading. Rather than rely on using a zero page location for storing the workspace pointer, the module just stores it within itself. This option is selected automatically for RAM builds and can't be overriden via the components file.
        File changes:
        riscos/Makefile - Reworked makefile to support the new options
        riscos/FPEMacros - Updated AdrWS macro to work with FPEAnchorType=Local
        riscos/options - For non-local builds, declare the appropriate value for FPEAnchor
        riscos/start - Use appropriate FPEAnchor initialisation code
      Admin:
        All 3 configs tested (ROM builds on BB-xM, RAM softload on Iyonix)
      
      
      Version 4.29. Tagged as 'FPASC-4_29'
      19a98c14
  6. 23 Jun, 2010 1 commit
  7. 22 May, 2010 7 commits
    • Ben Avison's avatar
      Fix interrupt hole on post-indexed load from r13 in non-USR modes · 1d182c17
      Ben Avison authored
      Detail:
        Emulation of instructions like LDFD were doing writeback to r13 with
        interrupts disabled but then re-enabling interrupts before actually
        reading memory, thereby leaving a window for an interrupt to be handled and
        corrupt the unprotected stack memory below r13.
        Fixes ROOL ticket #225.
      Admin:
        Changes originally by mwuerthner and committed by srevill on 2009-12-04.
      
      Tagged as 'FPASC-4_28'
      1d182c17
    • Ben Avison's avatar
      Fixed an error in "UseCLZ" case · 7da0e8cd
      Ben Avison authored
      Detail:
        Broke certain denormalised cases of multiply, divide and remainder.
        Problem originally reported on Iyonix discussion group (failed Paranoia tesst).
      Admin:
        Changes originally committed by kbracey on 2004-09-21.
      
      Tagged as 'FPASC-4_23'
      7da0e8cd
    • Ben Avison's avatar
      Multiple fixes · 9d4798d6
      Ben Avison authored
      Detail:
        * Denormalised numbers now held consistently in their nominal precision.
          MVF/MNF/ABS of a denormalised number without a change of precision
          treated specially, much like signalling NaNs. This prevents spurious
          underflow traps if they're enabled. Previously
      
               ; Underflow traps on
               LDFS    F0,DenormalisedSingle
               MVFS    F0,F0
      
          or
      
               ; Underflow traps off
               LDFD    F0,SmallestNormalDouble
               MUFD    F0,F0,#0.5
               ; Turn underflow traps on
               STFD    F0,xxx
      
          would have generated traps.
      
        * LDFP/STFP rearrangement of NaN significands reinstated, as DDT
          can now make use of it.
      
        * Typos in over/underflow code for LDFP corrected.
      
        * Experimental dynamic rounding controls added to FPSR (for emulator
          only). Currently disabled; does not affect LDFP or STFP yet.
      
      Admin:
        Changes originally committed by kbracey on 2004-01-26.
      
      Tagged as 'FPASC-4_21'
      9d4798d6
    • Ben Avison's avatar
      Bug fix, and optimisation for XScale · dce7dc2f
      Ben Avison authored
      Detail:
        * Bug fix in STFP - minor error at bottom of word.
        * New switch to allow use of CLZ.
      Admin:
        Changes originally committed by kbracey on 2003-02-21.
      
      Tagged as 'FPASC-4_20'
      dce7dc2f
    • Ben Avison's avatar
      Two changes to Generated NaN handling in ARM's core · 294e81b9
      Ben Avison authored
      Detail:
        * Generated NaNs were always negative - they were supposed to have a sign
          based on the operands. As a side effect, some internal routines were not
          obeying their advertised API - this has been corrected.
        * Generated NaNs no longer contained a reason code - this was a deliberate
          ARM change, but I'm going to have a philosophical disagreement and reverse
          it.
      Admin:
        Changes originally committed by kbracey on 2002-03-04.
      
      Tagged as 'FPASC-4_18'
      294e81b9
    • Ben Avison's avatar
      Support for processors which feature Thumb mode. · 50bb8c9f
      Ben Avison authored
      Detail:
        Added check to make sure we ignore undefined instruction exceptions generated
        while in Thumb state.
      Admin:
        Changes originally committed by kbracey on 2001-05-31.
        This fix was originally applied to an earlier version of ARM's code and has
        been rebased at ARM's version 1.13 for licensing reasons.
        However, since this was the last change before ARM version 1.13 was merged
        into the RISC OS source tree (on 2001-07-25), it is also representative of
        the the RISC OS sources at that date, barring licence header differences.
      
      Tagged as 'Thumb-fix' and 'FPASC-4_16'
      50bb8c9f
    • Ben Avison's avatar
      Add Use64bitMultiply option. · b7f7d326
      Ben Avison authored
      Detail:
        ARMv4 architecture (e.g. StrongARM) gains UMULL instruction which enables
        faster calculations at the expense of ARM 2/3/6/7 compatibility.
      Admin:
        Changes originally by kbracey, committed 1998-03-27 by mstphens.
        This fix was originally applied to an earlier version of ARM's code and has
        been rebased at ARM's version 1.13 for licensing reasons.
      
      Tagged as 'UMULL-fix'
      b7f7d326
  8. 21 May, 2010 2 commits
    • Ben Avison's avatar
      Workaround for pre-rev 3 SA110 chips. · 3b620adc
      Ben Avison authored
      Detail:
        These had a silicon bug in STM^ instructions - enable workaround by defining
        SASTMhatbroken.
      Admin:
        This fix was originally applied to an earlier version of ARM's code and has
        been rebased at ARM's version 1.13 for licensing reasons.
      
      Tagged as 'StrongARM-fix'
      3b620adc
    • Ben Avison's avatar
      Initial import on a vendor branch for ARM's BSD-licenced releases of the FPASC. · 827b1609
      Ben Avison authored
      This is version 1.13. The original distribution archive is in doc/fpe400.zip.
      The coresrc subdirectory is the only part of the official distribution used
      in the RISC OS implementation, and is rearranged to use a "s" subdirectory
      rather than a ".s" suffix as is customary for RISC OS builds.
      827b1609
  9. 04 Dec, 2009 1 commit
  10. 30 Apr, 2009 1 commit
    • Ben Avison's avatar
      Change to build options. · c3137b50
      Ben Avison authored
      Detail:
        Machine=32 is now built so that it doesn't use UMULL. This is because we
        now require it to operate on ARMv3 Risc PCs and A7000(+).
      Admin:
        Untested, but should be low risk.
      
      Version 4.27. Tagged as 'FPASC-4_27'
      c3137b50
  11. 19 Jun, 2006 1 commit
  12. 16 Mar, 2005 1 commit
  13. 25 Jan, 2005 1 commit
  14. 12 Nov, 2004 1 commit
    • Ben Avison's avatar
      BBE tidying. · 2b27010d
      Ben Avison authored
      Detail:
        Exports VersionNum to BBE.
        Also removed dynamic dependencies fom Makefile.
      Admin:
        Tested in a Tungsten BBE build.
      
      Retagged, since this won't affect existing builds.
      2b27010d
  15. 21 Sep, 2004 1 commit
  16. 02 Jul, 2004 1 commit
  17. 20 Jun, 2004 2 commits
  18. 26 Jan, 2004 1 commit
    • Kevin Bracey's avatar
      * Denormalised numbers now held consistently in their nominal precision. · ce61b80e
      Kevin Bracey authored
        MVF/MNF/ABS of a denormalised number without a change of precision
        treated specially, much like signalling NaNs. This prevents spurious
        underflow traps if they're enabled. Previously
      
             ; Underflow traps on
             LDFS    F0,DenormalisedSingle
             MVFS    F0,F0
      
        or
      
             ; Underflow traps off
             LDFD    F0,SmallestNormalDouble
             MUFD    F0,F0,#0.5
             ; Turn underflow traps on
             STFD    F0,xxx
      
        would have generated traps.
      
      * LDFP/STFP rearrangement of NaN significands reinstated, as DDT
        can now make use of it.
      
      * Typos in over/underflow code for LDFP corrected.
      
      * Makefile changed to build in rm.${SYSTEM} instead of rm.${MACHINE}.
      
      * Experimental dynamic rounding controls added to FPSR (for emulator
        only). Currently disabled; does not affect LDFP or STFP yet.
      
      Version 4.21. Tagged as 'FPASC-4_21'
      ce61b80e
  19. 21 Feb, 2003 1 commit
  20. 12 Apr, 2002 1 commit
    • Steve Revill's avatar
      * Fixed install phase; · 928be59e
      Steve Revill authored
        * Moved stripdepnd out of Makefile;
        * Variants passed on amu command line.
      Detail:
        * You can now specify the precise build variant of the FPEmulator by passing
          System=... and FPE_APCS=... on the amu command line. There are now more
          files in riscos.s to set the options for various types (as per Wimp).
          The default FPE as was is now built with: System="RO380" FPE_APCS="3/32bit"
      Admin:
        Builds.
      Version 4.19. Tagged as 'FPASC-4_19'
      928be59e
  21. 04 Mar, 2002 1 commit
    • Kevin Bracey's avatar
      Two changes to ARM's version 1.17 core: · 8f2c3a3e
      Kevin Bracey authored
      * Generated NaNs were always negative - they were supposed to have a sign
        based on the operands. As a side effect, some internal routines were not
        obeying their advertised API - this has been corrected.
      * Generated NaNs no longer contained a reason code - this was a deliberate
        ARM change, but I'm going to have a philosophical disagreement and reverse
        it.
      
      Version 4.18. Tagged as 'FPASC-4_18'
      8f2c3a3e
  22. 31 Aug, 2001 2 commits
  23. 25 Jul, 2001 1 commit
  24. 31 May, 2001 1 commit
  25. 02 Oct, 2000 1 commit
  26. 24 Mar, 2000 2 commits
    • Kevin Bracey's avatar
      Fixed error in multiply routine reported by RISC OS Ltd. · aa5adf86
      Kevin Bracey authored
      Detail:
        When the long multiply option was added on the Ursula branch, an inexplicable
        change to a single instruction in the original non-long multiply code
        appeared.
        Result would have been slightly inaccurate multiplies when both operands
        had more than 32 bits of mantissa.
        Original code restored.
      
      Version 4.13. Tagged as 'FPASC-4_13'
      aa5adf86
    • Kevin Bracey's avatar
      Multiple context version of FP emulator and FPA support code - FP in callbacks... · a2049d5a
      Kevin Bracey authored
      Multiple context version of FP emulator and FPA support code - FP in callbacks and interrupts can now be yours.
      
        Exception dumps now available (integer and FP).
      
      Detail:
      * Changed to multiple-context version of the core. This will allow floating-
        point to be used safely in callbacks and interrupt routines (as long as
        you call the appropriate context changing SWIs). This activates the
        dormant SWIs FPEmulator_ChangeContext, FPEmulator_ContextLength and
        FPEmulator_InitContext. FPEmulator_DeactivateContext and
        FPEmulator_ActivateContext now have full functionality.
      
      * Added new SWI interfaces to core: FPEmulator_Abort, FPEmulator_LoadContext
        and FPEmulator_SaveContext.
      
      * On FP exceptions, integer registers are copied into the exception dump area.
        (TO DO: registers are USR mode ones - should take pains to figure out
        SVC or IRQ ones as required).
      
      * The FPEmulator now has an exception dump area for floating point registers -
        a suitable version of Debugger will show these with *ShowFPRegs.
      
      * FPEmulator_ChangeContext and FPEmulator_DeactivateContext now return -1
        for the default context.
      
      * Run time detection of SVC stack position added.
      
      * No longer creates a MessageTrans descriptor on the stack.
      
      * Removed broken STM^ fudge from the FPA veneer, as the only StrongARMs that
        need it can't use the FPA.
      
      * Fixed a typo in core_abort.
      
      * Stopped continuous emulation runs crossing 4K page boundaries, with a view
        to improving abort handling.
      
      * Use of DREG debugging macros fixed (line endings were being inserted in the
        wrong place).
      
      * Prototype code to catch aborts inside the emulator and change the registers
        to make it look like the emulated instruction aborted. This is cute, but
        causes problems with anything like Ursula's lazy task-swapping. Really this
        needs to be done only on fatal aborts. Compiled out for now.
      
      Version 4.12. Tagged as 'FPASC-4_12'
      a2049d5a
  27. 26 Nov, 1999 1 commit
  28. 03 Aug, 1999 1 commit
    • Kevin Bracey's avatar
      Ursula branch merged. This contains: · 5b362524
      Kevin Bracey authored
        Use of UMULL (compiled out).
        Service call table.
        Runs in UND32 mode (requires latest Kernel), giving a speed boost.
      
      Version 4.10. Tagged as 'FPASC-4_10'
      5b362524
  29. 21 Sep, 1998 2 commits