• Jeffrey Lee's avatar
    Optimise DivRem and PSR manipulation macros · bd0ce26f
    Jeffrey Lee authored
    Detail:
      hdr/Macros - DivRem is now able to use UDIV when building for architectures that support it. A "norem" option is also available, to allow the remainder calculation to be skipped if it's not needed (since we don't get it for free when using UDIV).
      hdr/CPU/Generic32 - PHPSEI, WritePSRc and SetMode now use the ARMv6 CPS instruction where possible, delivering performance gains compared to the equivalent MSR. Where CPS isn't used, WritePSRc now attempts to emit a single MSR instead of the 4 instructions generated by the SCPSR macro.
    Admin:
      Tested on Cortex-A15
      PSR manipulation macros trialed on a few different CPU architectures to arrive at the conclusion that CPS is as good or better than MSR
    
    
    Version 2.60. Tagged as 'HdrSrc-2_60'
    bd0ce26f
Generic32 29.1 KB