GitLab has been upgraded to 13.7.4 If you encounter any issues mail code@riscosopen.org

  1. 12 Oct, 2019 1 commit
    • Ben Avison's avatar
      Add mixed-case versions of Hdr:Proc macros · 9ced1eaf
      Ben Avison authored
      Macros in this header file had inconsistent capitalisation. This is a legacy
      of the earliest macros being `ENTRY` and `EXIT`. Macro names that are all
      uppercase or all lowercase are a bad idea, because they can clash with opcodes
      or assembler directives that are added at a later date: this is what happened
      with `ENTRY` when objasm was developed, hence the introduction of the identical
      `Entry` macro, and mass renaming across the source tree was required when it
      switched to using objasm.
      
      The other downside of all-uppercase or all-lowercase macro names is that it
      makes it impossible to design a syntax colouring algorithm that is forward
      compatible with new opcodes (and ARM continues to add new opcodes with almost
      every new minor revision of the architecture).
      
      Note that related macro names depend on the vintage of the header at which
      they were introduced: compare `ALTENTRY` with `EntryS`.
      
      Additional mixed-case versions of macros `ALTENTRY`, `EXIT`, `EXITS`, `EXITV`,
      `EXITVC`, `EXITVS`, `FRAMLDR` and `FRAMSTR` are hereby introduced. The old
      macro names are also retained (it would be a very large job to substitute them
      throughout the source tree) but at least new code can now consistently use
      mixed case.
      
      The `FRAMCOM` and `FRAMSPL` macros are for internal use of the header file,
      so uppercase versions of these did not need to be retained.
      
      Also:
      * Delete `ENTRY` macro: it's a long time since anything has been buildable
        using aasm, which is the only assembler that accepts this macro
      * Correct cut-and-paste errors in the messages `ExitVC without EntryS` and
        `ExitVS without EntryS`
      
      Version 2.83. Tagged as 'HdrSrc-2_83'
      9ced1eaf
  2. 03 Jul, 2009 1 commit
    • Steve Revill's avatar
      Added FRAMLDR/FRAMSTR macros · c522f63f
      Steve Revill authored
      Detail:
        These macros allow easy access to registers pushed on the stack during the Entry macro.
      This is simpler than the previous method of "LDR     r1, [sp, #Proc_LocalStack + 1*4]" because the new macros will calculate the correct offset even if non-continuous regs are used, and will also trap attempts to access regs that weren't pushed onto the stack.
      
        The FRAMSTR macro can be used to alter the values that will be returned on EXIT.
      Admin:
        Tested by looking at produced code in Zap
      Notes:
        Changes by James Lampard.
      
      Version 1.71. Tagged as 'HdrSrc-1_71'
      c522f63f
  3. 25 Jan, 2001 1 commit
    • Ben Avison's avatar
      Made Hdr:Proc compatible with OSLib assembler headers. · d581ec8f
      Ben Avison authored
      Detail:
        OSLib defines "True" and "False" as integer variables, but Hdr:Symbols
        defines them as logical ones. Hdr:Proc assigned "True" and "False" to
        logical variables, so there was no way that it could be used with any
        component that used any OSLib or even DefMod-generated headers. Hdr:Proc
        now uses the unambiguous "{TRUE}" and "{FALSE}" symbols.
      Admin:
        Required by SoundFileExtMSADPCM 0.06.
      
      Version 1.15. Tagged as 'HdrSrc-1_15'
      d581ec8f
  4. 04 Apr, 2000 1 commit
  5. 14 Dec, 1999 1 commit
  6. 26 Nov, 1999 1 commit
    • Stewart Brodie's avatar
      Merge of 32-bit capable macros to trunk. · 559a684e
      Stewart Brodie authored
      Detail:
        The 26-bit and 32-bit capable macros have been added.
        Header files choose which set of macros to use based on <Machine>.
        If you want the new macros, include "Hdr:APCS.<APCS>" in addition
          to the usual inclusions at the top of assembler files.
        Choices are based on the settings of macros No32bitCode and
          No26bitCode.  By default, all existing machines define these
          as {TRUE} and {FALSE} respectively.  This yields the same macros
          as before (tested in Customer F 5 build) and should yield code which
          functions on RISC OS 3.1.  Any other combination of settings is
          untested at this time.
        New assembler code should use the macros FunctionEntry, Return et al
          to ensure that they build correctly.
        New assembler code should be written to not require flag preservation
          across internal function calls and to not assume it on external
          function calls where it is possible to do so.  DO NOT simply replace
          "MOVS pc, lr" with "MOV pc, lr" as this doesn't work properly.
          Replace "MOVS pc, lr" with "Return ,LinkNotStacked"
        Do not write code which simply masks out &FC000003 from pc or some kind
          or pc originated value (eg. on r14 to attempt to remove the PSR flags
          from it.  Use the RemovePSRFromReg macro instead.
      Admin:
        Tested with Customer F 5 build.
        Requires FPEmulator 4.11
        Requires Portable 0.65 (or Portable75 0.04)
        Required by any new or modified assembler code in future, pretty much.
          Such components may not necessarily specify a dependency on this
          or any other later version of HdrSrc.
      
      Version 0.63. Tagged as 'HdrSrc-0_63'
      559a684e
  7. 05 Nov, 1996 1 commit