summaryrefslogtreecommitdiff
path: root/newlib/libc/machine/w65/udivhi3.s
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc/machine/w65/udivhi3.s')
-rw-r--r--newlib/libc/machine/w65/udivhi3.s30
1 files changed, 30 insertions, 0 deletions
diff --git a/newlib/libc/machine/w65/udivhi3.s b/newlib/libc/machine/w65/udivhi3.s
new file mode 100644
index 00000000000..07d091e8045
--- /dev/null
+++ b/newlib/libc/machine/w65/udivhi3.s
@@ -0,0 +1,30 @@
+ .global ___udivhi3
+
+___udivhi3:
+ stz <r0
+ ldy #1
+ ldx <r4
+ lda <r5
+
+div1:
+ asl a
+ bcs div2
+ iny
+ cpy #17
+ bne div1
+
+div2: ror a
+
+div4: pha
+ txa
+ sec
+ sbc 1,s
+ bcc div3
+ tax
+
+div3: rol <r0
+ pla
+ lsr a
+ dey
+ bne div4
+ rtl