From f0a07164d083f179eded5dd981dcaa5fd4ca594a Mon Sep 17 00:00:00 2001 From: michaelh Date: Thu, 2 Aug 2001 15:22:42 +0000 Subject: [PATCH] Added support fun for long shifts git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@1123 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- device/lib/z80/Makefile | 2 +- device/lib/z80/shift.s | 85 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 device/lib/z80/shift.s diff --git a/device/lib/z80/Makefile b/device/lib/z80/Makefile index f26d835d..753ddd26 100644 --- a/device/lib/z80/Makefile +++ b/device/lib/z80/Makefile @@ -5,7 +5,7 @@ TOPDIR = ../../.. SCC = $(TOPDIR)/bin/sdcc -mz80 SAS = $(TOPDIR)/bin/as-z80 -OBJ = div.o mul.o putchar.o printf.o # asm_strings.o string.s +OBJ = div.o mul.o putchar.o printf.o shift.o # asm_strings.o string.s LIB = z80.lib CC = $(SCC) AS = $(SAS) diff --git a/device/lib/z80/shift.s b/device/lib/z80/shift.s new file mode 100644 index 00000000..e1485682 --- /dev/null +++ b/device/lib/z80/shift.s @@ -0,0 +1,85 @@ + ;; +__rrulong_rr_s:: + ld hl,#2+4 + add hl,sp + + ld c,(hl) + dec hl + ld d,(hl) + dec hl + ld e,(hl) + dec hl + ld a,(hl) + dec hl + ld l,(hl) + ld h,a + + ld a,c +1$: + or a,a + ret z + + rr d + rr e + rr h + rr l + + dec a + jp 1$ + +__rrslong_rr_s:: + ld hl,#2+4 + add hl,sp + + ld c,(hl) + dec hl + ld d,(hl) + dec hl + ld e,(hl) + dec hl + ld a,(hl) + dec hl + ld l,(hl) + ld h,a + + ld a,c +1$: + or a,a + ret z + + sra d + rr e + rr h + rr l + + dec a + jp 1$ + +__rlslong_rr_s:: +__rlulong_rr_s:: + ld hl,#2+4 + add hl,sp + + ld c,(hl) + dec hl + ld d,(hl) + dec hl + ld e,(hl) + dec hl + ld a,(hl) + dec hl + ld l,(hl) + ld h,a + + ld a,c +1$: + or a,a + ret z + + rl l + rl h + rl e + rl d + + dec a + jp 1$ -- 2.30.2