summaryrefslogtreecommitdiff
path: root/newlib/libc/machine/w65/sdivhi3.s
blob: 7958f11e777aa605ea285eaf4af05cbca7a758a5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
	.global	___sdivhi3

___sdivhi3:
	lda	<r4
	ldx	<r5		

	ldy	#0		!flag positive result
	rol	a
	ror	a
	bpl	L10

	iny			!flag negative result
	eor	#0xFFFF
	inc	a

L10:	pha
	txa
	bpl	L20

	dey			!flag negative/positive result
	eor	#0xFFFF
	inc	a
	tax

L20:	pla
	phy
	jsr	>udv
	ply
	beq	Lend		!if positive result

	eor	#0xFFFF		!negate result
	inc	a

Lend:	sta	<r0
	rtl