Added support fun for long shifts
authormichaelh <michaelh@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Thu, 2 Aug 2001 15:22:42 +0000 (15:22 +0000)
committermichaelh <michaelh@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Thu, 2 Aug 2001 15:22:42 +0000 (15:22 +0000)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@1123 4a8a32a2-be11-0410-ad9d-d568d2c75423

device/lib/z80/Makefile
device/lib/z80/shift.s [new file with mode: 0644]

index f26d835dcf69ff3ebbafadebdcda282a0e8e4a0a..753ddd2683617437db370df16d05edb9c132d50a 100644 (file)
@@ -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 (file)
index 0000000..e148568
--- /dev/null
@@ -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$