Skip to content

SDK v15.0.0

Compare
Choose a tag to compare
@github-actions github-actions released this 27 Mar 17:27
· 95 commits to main since this release
47b35b2

Breaking changes

  • llvm-mos/llvm-mos#456 - 65816 assembler changes - @asiekierka
    • lda >addr was previously interpreted as lda mos16hi(addr), but now will be interpreted as lda mos24(addr). This is unlikely to break production code.
    • lda <addr8 was previously interpreted as lda mos16lo(addr), but now will be interpreted as lda mos8(addr). As the two relocations are functionally (but not semantically) equivalent, this should not break production code.
    • Likewise, functional (but not semantic) changes involve the relocations emitted by immediate expressions (lda #val).

New features

  • #316 - Add C++ fixed point math library - @jroweboy
    • Supports various fractional and integral bit sizes.
    • Supports user-defined literals for common sizes (e.g., 9.4_12_4 is the 16-bit fixed point number with 12 integral bits and 8 fractional bits that is closest in value to 9.4).

Bug fixes

  • llvm-mos/llvm-mos#456 - 65816 assembler changes - @asiekierka

    • The immediate and address modifiers (#<, #>, #^, <, !, >) now adhere to WDC recommendations as documented in the 65816 datasheet.
    • In particular, this means the behaviour of lda >addr changes, while lda !addr and lda #^addr have been introduced.
      Immediate expressions now emit R_MOS_IMM8 and R_MOS_IMM16, while address expressions now emit R_MOS_ADDR8 and R_MOS_ADDR16 relocations.
    • Some error messages have been adjusted to more accurately represent the assembler's limitations.
    • Bugs/limitations in the SPC700 assembler's handling of addr + X and addr + Y addressing mode syntaxes have been fixed, and a test has been added.
    • S and R can now be used as register names in stack-relative addressing modes instead of SP and RP. This matches WDC 65816 and 65EL02 documentation/recommendations, respectively.
  • dc85a7d - Fix is_floating_pointr_v C++ <type_traits> typo