From 5db2aed1297e7590beb35c43fa5ae40c44e2b686 Mon Sep 17 00:00:00 2001 From: Kugel Fuhr <98353208+kugelfuhr@users.noreply.github.com> Date: Thu, 26 Jun 2025 07:40:04 +0200 Subject: [PATCH] Allow "sp" as an alias for "c_sp" for backwards compatibility. Using it will work but generates a linker warning. Added a test to check for this warning. --- asminc/zeropage.inc | 6 ++++++ libsrc/runtime/sp-compat.s | 11 +++++++++++ test/asm/listing/ref/sp-compat.ld65err2-ref | 1 + test/asm/listing/sp-compat.s | 7 +++++++ 4 files changed, 25 insertions(+) create mode 100644 libsrc/runtime/sp-compat.s create mode 100644 test/asm/listing/ref/sp-compat.ld65err2-ref create mode 100644 test/asm/listing/sp-compat.s diff --git a/asminc/zeropage.inc b/asminc/zeropage.inc index 5285779ba..2d4b144db 100644 --- a/asminc/zeropage.inc +++ b/asminc/zeropage.inc @@ -13,6 +13,12 @@ .globalzp tmp1, tmp2, tmp3, tmp4 .globalzp regbank + ; The following symbol is supplied for compatibility reasons only, it + ; will get removed in future versions. Using it will cause a linker + ; warning. + .globalzp sp + + ; The size of the register bank regbanksize = 6 diff --git a/libsrc/runtime/sp-compat.s b/libsrc/runtime/sp-compat.s new file mode 100644 index 000000000..797fef47b --- /dev/null +++ b/libsrc/runtime/sp-compat.s @@ -0,0 +1,11 @@ +; +; Kugelfuhr, 2025-06-26 +; +; Add "sp" as an alias for "c_sp" so we don't break old code but emit a +; linker warning if it is used. Added after renaming "sp" to "c_sp". +; + +.include "zeropage.inc" +.export sp := c_sp +.assert 0, ldwarning, "Symbol 'sp' is deprecated - please use 'c_sp' instead" + diff --git a/test/asm/listing/ref/sp-compat.ld65err2-ref b/test/asm/listing/ref/sp-compat.ld65err2-ref new file mode 100644 index 000000000..fe2611088 --- /dev/null +++ b/test/asm/listing/ref/sp-compat.ld65err2-ref @@ -0,0 +1 @@ +ld65: Warning: runtime/sp-compat.s:10: Symbol 'sp' is deprecated - please use 'c_sp' instead diff --git a/test/asm/listing/sp-compat.s b/test/asm/listing/sp-compat.s new file mode 100644 index 000000000..8c22a71d3 --- /dev/null +++ b/test/asm/listing/sp-compat.s @@ -0,0 +1,7 @@ +.include "zeropage.inc" + +.proc _func + ldy #0 + lda (sp),y + rts +.endproc