Applied patch #2762516
[fw/sdcc] / device / lib / z80 / shift.s
index e148568248f2aac7776321e7aa2ff72e4165604d..43b94f5adbfb2a20b9a99abec7a8692235d09f13 100644 (file)
@@ -1,85 +1,75 @@
         ;;
-__rrulong_rr_s::                
+__rrulong_rrx_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$:
+        ld      a,(hl)
         or      a,a
-        ret     z
-
-        rr      d
-        rr      e
-        rr      h
+       pop     bc
+       pop     hl
+       pop     de
+       push    de
+       push    hl
+       push    bc
+        ret     Z
+        ld      b,a
+        ld      a,e
+1$:
+        srl     d
+        rra
+        rr     h
         rr      l
 
-        dec     a
-        jp      1$
+        djnz    1$
+        ld      e,a
+        ret
 
-__rrslong_rr_s::        
+__rrslong_rrx_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$:
+        ld      a,(hl)
         or      a,a
-        ret     z
-
+       pop     bc
+       pop     hl
+       pop     de
+       push    de
+       push    hl
+       push    bc
+        ret     Z
+        ld      b,a
+        ld      a,e
+2$:
         sra     d
-        rr      e
-        rr      h
+        rra
+        rr     h
         rr      l
 
-        dec     a
-        jp      1$
-        
-__rlslong_rr_s::                
-__rlulong_rr_s::                
+        djnz    2$
+        ld      e,a
+        ret
+
+__rlslong_rrx_s::
+__rlulong_rrx_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$:
+        ld      a,(hl)
         or      a,a
-        ret     z
-
-        rl      l
-        rl      h
-        rl      e
-        rl      d
+       pop     bc
+       pop     hl
+       pop     de
+       push    de
+       push    hl
+       push    bc
+        ret     Z
+        ld      b,a
+        ld      a,e
+3$:
+        add     hl,hl
+        rla
+        rl     d
 
-        dec     a        
-        jp      1$
+        djnz    3$
+        ld      e,a
+        ret