From 3288d74e3db0ba0596da0c3b19a849669ac69831 Mon Sep 17 00:00:00 2001 From: Jose Rodriguez Date: Wed, 13 Nov 2024 12:50:36 +0100 Subject: [PATCH] refact: move bitwise implementations to bitwise/ --- src/arch/z80/backend/runtime/core.py | 16 +++--- .../zx48k/runtime/{ => bitwise}/band16.asm | 1 - .../zx48k/runtime/{ => bitwise}/band32.asm | 1 - .../runtime/bitwise}/bnot16.asm | 1 - .../runtime/bitwise}/bnot32.asm | 1 - .../zx48k/runtime/{ => bitwise}/bor16.asm | 1 - .../zx48k/runtime/{ => bitwise}/bor32.asm | 1 - .../runtime/bitwise}/bxor16.asm | 1 - .../zx48k/runtime/{ => bitwise}/bxor32.asm | 3 +- .../zxnext/runtime/{ => bitwise}/band16.asm | 1 - .../zxnext/runtime/{ => bitwise}/band32.asm | 1 - .../runtime/bitwise}/bnot16.asm | 1 - .../runtime/bitwise}/bnot32.asm | 1 - .../zxnext/runtime/{ => bitwise}/bor16.asm | 1 - .../zxnext/runtime/{ => bitwise}/bor32.asm | 1 - .../runtime/bitwise}/bxor16.asm | 1 - .../zxnext/runtime/{ => bitwise}/bxor32.asm | 3 +- tests/functional/arch/zx48k/bnot8.asm | 52 +++++++++++++++++++ tests/functional/arch/zx48k/bnot8.bas | 10 ++++ tests/functional/arch/zx48k/bxor32.asm | 6 +-- 20 files changed, 75 insertions(+), 29 deletions(-) rename src/lib/arch/zx48k/runtime/{ => bitwise}/band16.asm (99%) rename src/lib/arch/zx48k/runtime/{ => bitwise}/band32.asm (99%) rename src/lib/arch/{zxnext/runtime => zx48k/runtime/bitwise}/bnot16.asm (99%) rename src/lib/arch/{zxnext/runtime => zx48k/runtime/bitwise}/bnot32.asm (99%) rename src/lib/arch/zx48k/runtime/{ => bitwise}/bor16.asm (99%) rename src/lib/arch/zx48k/runtime/{ => bitwise}/bor32.asm (99%) rename src/lib/arch/{zxnext/runtime => zx48k/runtime/bitwise}/bxor16.asm (99%) rename src/lib/arch/zx48k/runtime/{ => bitwise}/bxor32.asm (95%) rename src/lib/arch/zxnext/runtime/{ => bitwise}/band16.asm (99%) rename src/lib/arch/zxnext/runtime/{ => bitwise}/band32.asm (99%) rename src/lib/arch/{zx48k/runtime => zxnext/runtime/bitwise}/bnot16.asm (99%) rename src/lib/arch/{zx48k/runtime => zxnext/runtime/bitwise}/bnot32.asm (99%) rename src/lib/arch/zxnext/runtime/{ => bitwise}/bor16.asm (99%) rename src/lib/arch/zxnext/runtime/{ => bitwise}/bor32.asm (99%) rename src/lib/arch/{zx48k/runtime => zxnext/runtime/bitwise}/bxor16.asm (99%) rename src/lib/arch/zxnext/runtime/{ => bitwise}/bxor32.asm (95%) create mode 100644 tests/functional/arch/zx48k/bnot8.asm create mode 100644 tests/functional/arch/zx48k/bnot8.bas diff --git a/src/arch/z80/backend/runtime/core.py b/src/arch/z80/backend/runtime/core.py index 0d0190a44..ed1452635 100644 --- a/src/arch/z80/backend/runtime/core.py +++ b/src/arch/z80/backend/runtime/core.py @@ -148,14 +148,14 @@ class CoreLabels: CoreLabels.ARRAY: "array.asm", CoreLabels.ARRAY_PTR: "array.asm", CoreLabels.ARRAYSTR_FREE_MEM: "arraystrfree.asm", - CoreLabels.BAND16: "band16.asm", - CoreLabels.BAND32: "band32.asm", - CoreLabels.BNOT16: "bnot16.asm", - CoreLabels.BNOT32: "bnot32.asm", - CoreLabels.BOR16: "bor16.asm", - CoreLabels.BOR32: "bor32.asm", - CoreLabels.BXOR16: "bxor16.asm", - CoreLabels.BXOR32: "bxor32.asm", + CoreLabels.BAND16: "bitwise/band16.asm", + CoreLabels.BAND32: "bitwise/band32.asm", + CoreLabels.BNOT16: "bitwise/bnot16.asm", + CoreLabels.BNOT32: "bitwise/bnot32.asm", + CoreLabels.BOR16: "bitwise/bor16.asm", + CoreLabels.BOR32: "bitwise/bor32.asm", + CoreLabels.BXOR16: "bitwise/bxor16.asm", + CoreLabels.BXOR32: "bitwise/bxor32.asm", CoreLabels.CHECK_BREAK: "break.asm", CoreLabels.DIVF: "divf.asm", CoreLabels.DIVF16: "divf16.asm", diff --git a/src/lib/arch/zx48k/runtime/band16.asm b/src/lib/arch/zx48k/runtime/bitwise/band16.asm similarity index 99% rename from src/lib/arch/zx48k/runtime/band16.asm rename to src/lib/arch/zx48k/runtime/bitwise/band16.asm index a6d1bc36c..a7ff382ca 100644 --- a/src/lib/arch/zx48k/runtime/band16.asm +++ b/src/lib/arch/zx48k/runtime/bitwise/band16.asm @@ -20,4 +20,3 @@ __BAND16: ret pop namespace - diff --git a/src/lib/arch/zx48k/runtime/band32.asm b/src/lib/arch/zx48k/runtime/bitwise/band32.asm similarity index 99% rename from src/lib/arch/zx48k/runtime/band32.asm rename to src/lib/arch/zx48k/runtime/bitwise/band32.asm index c9b855ca1..311c37b67 100644 --- a/src/lib/arch/zx48k/runtime/band32.asm +++ b/src/lib/arch/zx48k/runtime/bitwise/band32.asm @@ -37,4 +37,3 @@ __BAND32: ret pop namespace - diff --git a/src/lib/arch/zxnext/runtime/bnot16.asm b/src/lib/arch/zx48k/runtime/bitwise/bnot16.asm similarity index 99% rename from src/lib/arch/zxnext/runtime/bnot16.asm rename to src/lib/arch/zx48k/runtime/bitwise/bnot16.asm index 1718aee94..b1b8ffe63 100644 --- a/src/lib/arch/zxnext/runtime/bnot16.asm +++ b/src/lib/arch/zx48k/runtime/bitwise/bnot16.asm @@ -20,4 +20,3 @@ __BNOT16: ret pop namespace - diff --git a/src/lib/arch/zxnext/runtime/bnot32.asm b/src/lib/arch/zx48k/runtime/bitwise/bnot32.asm similarity index 99% rename from src/lib/arch/zxnext/runtime/bnot32.asm rename to src/lib/arch/zx48k/runtime/bitwise/bnot32.asm index 97f6db5fd..243870646 100644 --- a/src/lib/arch/zxnext/runtime/bnot32.asm +++ b/src/lib/arch/zx48k/runtime/bitwise/bnot32.asm @@ -28,4 +28,3 @@ __BNOT32: ret pop namespace - diff --git a/src/lib/arch/zx48k/runtime/bor16.asm b/src/lib/arch/zx48k/runtime/bitwise/bor16.asm similarity index 99% rename from src/lib/arch/zx48k/runtime/bor16.asm rename to src/lib/arch/zx48k/runtime/bitwise/bor16.asm index 5dfa8a3f9..03fd45db8 100644 --- a/src/lib/arch/zx48k/runtime/bor16.asm +++ b/src/lib/arch/zx48k/runtime/bitwise/bor16.asm @@ -20,4 +20,3 @@ __BOR16: ret pop namespace - diff --git a/src/lib/arch/zx48k/runtime/bor32.asm b/src/lib/arch/zx48k/runtime/bitwise/bor32.asm similarity index 99% rename from src/lib/arch/zx48k/runtime/bor32.asm rename to src/lib/arch/zx48k/runtime/bitwise/bor32.asm index b768ed358..470578b2f 100644 --- a/src/lib/arch/zx48k/runtime/bor32.asm +++ b/src/lib/arch/zx48k/runtime/bitwise/bor32.asm @@ -37,4 +37,3 @@ __BOR32: ret pop namespace - diff --git a/src/lib/arch/zxnext/runtime/bxor16.asm b/src/lib/arch/zx48k/runtime/bitwise/bxor16.asm similarity index 99% rename from src/lib/arch/zxnext/runtime/bxor16.asm rename to src/lib/arch/zx48k/runtime/bitwise/bxor16.asm index 7775c4033..297d853e4 100644 --- a/src/lib/arch/zxnext/runtime/bxor16.asm +++ b/src/lib/arch/zx48k/runtime/bitwise/bxor16.asm @@ -20,4 +20,3 @@ __BXOR16: ret pop namespace - diff --git a/src/lib/arch/zx48k/runtime/bxor32.asm b/src/lib/arch/zx48k/runtime/bitwise/bxor32.asm similarity index 95% rename from src/lib/arch/zx48k/runtime/bxor32.asm rename to src/lib/arch/zx48k/runtime/bitwise/bxor32.asm index 942f0f894..d0100f704 100644 --- a/src/lib/arch/zx48k/runtime/bxor32.asm +++ b/src/lib/arch/zx48k/runtime/bitwise/bxor32.asm @@ -20,7 +20,7 @@ __BXOR32: xor l ld c, a ; BC <- BC & HL - pop hl ; Return dddress + pop hl ; Return address ex (sp), hl ; HL <- High part of 2nd Operand ld a, d @@ -37,4 +37,3 @@ __BXOR32: ret pop namespace - diff --git a/src/lib/arch/zxnext/runtime/band16.asm b/src/lib/arch/zxnext/runtime/bitwise/band16.asm similarity index 99% rename from src/lib/arch/zxnext/runtime/band16.asm rename to src/lib/arch/zxnext/runtime/bitwise/band16.asm index a6d1bc36c..a7ff382ca 100644 --- a/src/lib/arch/zxnext/runtime/band16.asm +++ b/src/lib/arch/zxnext/runtime/bitwise/band16.asm @@ -20,4 +20,3 @@ __BAND16: ret pop namespace - diff --git a/src/lib/arch/zxnext/runtime/band32.asm b/src/lib/arch/zxnext/runtime/bitwise/band32.asm similarity index 99% rename from src/lib/arch/zxnext/runtime/band32.asm rename to src/lib/arch/zxnext/runtime/bitwise/band32.asm index c9b855ca1..311c37b67 100644 --- a/src/lib/arch/zxnext/runtime/band32.asm +++ b/src/lib/arch/zxnext/runtime/bitwise/band32.asm @@ -37,4 +37,3 @@ __BAND32: ret pop namespace - diff --git a/src/lib/arch/zx48k/runtime/bnot16.asm b/src/lib/arch/zxnext/runtime/bitwise/bnot16.asm similarity index 99% rename from src/lib/arch/zx48k/runtime/bnot16.asm rename to src/lib/arch/zxnext/runtime/bitwise/bnot16.asm index 1718aee94..b1b8ffe63 100644 --- a/src/lib/arch/zx48k/runtime/bnot16.asm +++ b/src/lib/arch/zxnext/runtime/bitwise/bnot16.asm @@ -20,4 +20,3 @@ __BNOT16: ret pop namespace - diff --git a/src/lib/arch/zx48k/runtime/bnot32.asm b/src/lib/arch/zxnext/runtime/bitwise/bnot32.asm similarity index 99% rename from src/lib/arch/zx48k/runtime/bnot32.asm rename to src/lib/arch/zxnext/runtime/bitwise/bnot32.asm index 97f6db5fd..243870646 100644 --- a/src/lib/arch/zx48k/runtime/bnot32.asm +++ b/src/lib/arch/zxnext/runtime/bitwise/bnot32.asm @@ -28,4 +28,3 @@ __BNOT32: ret pop namespace - diff --git a/src/lib/arch/zxnext/runtime/bor16.asm b/src/lib/arch/zxnext/runtime/bitwise/bor16.asm similarity index 99% rename from src/lib/arch/zxnext/runtime/bor16.asm rename to src/lib/arch/zxnext/runtime/bitwise/bor16.asm index 5dfa8a3f9..03fd45db8 100644 --- a/src/lib/arch/zxnext/runtime/bor16.asm +++ b/src/lib/arch/zxnext/runtime/bitwise/bor16.asm @@ -20,4 +20,3 @@ __BOR16: ret pop namespace - diff --git a/src/lib/arch/zxnext/runtime/bor32.asm b/src/lib/arch/zxnext/runtime/bitwise/bor32.asm similarity index 99% rename from src/lib/arch/zxnext/runtime/bor32.asm rename to src/lib/arch/zxnext/runtime/bitwise/bor32.asm index b768ed358..470578b2f 100644 --- a/src/lib/arch/zxnext/runtime/bor32.asm +++ b/src/lib/arch/zxnext/runtime/bitwise/bor32.asm @@ -37,4 +37,3 @@ __BOR32: ret pop namespace - diff --git a/src/lib/arch/zx48k/runtime/bxor16.asm b/src/lib/arch/zxnext/runtime/bitwise/bxor16.asm similarity index 99% rename from src/lib/arch/zx48k/runtime/bxor16.asm rename to src/lib/arch/zxnext/runtime/bitwise/bxor16.asm index 7775c4033..297d853e4 100644 --- a/src/lib/arch/zx48k/runtime/bxor16.asm +++ b/src/lib/arch/zxnext/runtime/bitwise/bxor16.asm @@ -20,4 +20,3 @@ __BXOR16: ret pop namespace - diff --git a/src/lib/arch/zxnext/runtime/bxor32.asm b/src/lib/arch/zxnext/runtime/bitwise/bxor32.asm similarity index 95% rename from src/lib/arch/zxnext/runtime/bxor32.asm rename to src/lib/arch/zxnext/runtime/bitwise/bxor32.asm index 942f0f894..d0100f704 100644 --- a/src/lib/arch/zxnext/runtime/bxor32.asm +++ b/src/lib/arch/zxnext/runtime/bitwise/bxor32.asm @@ -20,7 +20,7 @@ __BXOR32: xor l ld c, a ; BC <- BC & HL - pop hl ; Return dddress + pop hl ; Return address ex (sp), hl ; HL <- High part of 2nd Operand ld a, d @@ -37,4 +37,3 @@ __BXOR32: ret pop namespace - diff --git a/tests/functional/arch/zx48k/bnot8.asm b/tests/functional/arch/zx48k/bnot8.asm new file mode 100644 index 000000000..11ffa2d6a --- /dev/null +++ b/tests/functional/arch/zx48k/bnot8.asm @@ -0,0 +1,52 @@ + org 32768 +.core.__START_PROGRAM: + di + push ix + push iy + exx + push hl + exx + ld hl, 0 + add hl, sp + ld (.core.__CALL_BACK__), hl + ei + jp .core.__MAIN_PROGRAM__ +.core.__CALL_BACK__: + DEFW 0 +.core.ZXBASIC_USER_DATA: + ; Defines USER DATA Length in bytes +.core.ZXBASIC_USER_DATA_LEN EQU .core.ZXBASIC_USER_DATA_END - .core.ZXBASIC_USER_DATA + .core.__LABEL__.ZXBASIC_USER_DATA_LEN EQU .core.ZXBASIC_USER_DATA_LEN + .core.__LABEL__.ZXBASIC_USER_DATA EQU .core.ZXBASIC_USER_DATA +_a: + DEFB 00 +_b: + DEFB 00 +.core.ZXBASIC_USER_DATA_END: +.core.__MAIN_PROGRAM__: + ld a, 255 + ld (_b), a + ld a, 255 + ld (_a), a + ld a, 254 + ld (_b), a + ld a, 254 + ld (_a), a + cpl + ld (_b), a + ld hl, 0 + ld b, h + ld c, l +.core.__END_PROGRAM: + di + ld hl, (.core.__CALL_BACK__) + ld sp, hl + exx + pop hl + exx + pop iy + pop ix + ei + ret + ;; --- end of user code --- + END diff --git a/tests/functional/arch/zx48k/bnot8.bas b/tests/functional/arch/zx48k/bnot8.bas new file mode 100644 index 000000000..2833288db --- /dev/null +++ b/tests/functional/arch/zx48k/bnot8.bas @@ -0,0 +1,10 @@ +' TEST for Bitwise NOT 16 bits + +DIM a as UByte +DIM b as UByte + +b = bNOT 0 +a = bNOT 0 +b = bNOT 1 +a = bNOT 1 +b = bNOT a diff --git a/tests/functional/arch/zx48k/bxor32.asm b/tests/functional/arch/zx48k/bxor32.asm index c59d7124e..07b206800 100644 --- a/tests/functional/arch/zx48k/bxor32.asm +++ b/tests/functional/arch/zx48k/bxor32.asm @@ -102,7 +102,7 @@ _b: ei ret ;; --- end of user code --- -#line 1 "/zxbasic/src/arch/zx48k/library-asm/bxor32.asm" +#line 1 "/zxbasic/src/lib/arch/zx48k/runtime/bitwise/bxor32.asm" ; FASTCALL bitwise xor 32 version. ; Performs 32bit xor 32bit and returns the bitwise ; result DE,HL @@ -119,7 +119,7 @@ __BXOR32: ld a, c xor l ld c, a ; BC <- BC & HL - pop hl ; Return dddress + pop hl ; Return address ex (sp), hl ; HL <- High part of 2nd Operand ld a, d xor h @@ -131,5 +131,5 @@ __BXOR32: ld l, c ; HL <- BC ; Always return DE,HL pair regs ret pop namespace -#line 80 "bxor32.bas" +#line 80 "arch/zx48k/bxor32.bas" END