aboutsummaryrefslogtreecommitdiffstats
path: root/test/monniaux/division/my_udiv32.s
blob: 0f4fd127ec2b25ea183ae685e482726d951c2e67 (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
36
	.align 8
	.global my_udiv32
	.type	my_udiv32, @function
my_udiv32:
	zxwd $r1 = $r1
	make $r3 = 0x3ff0000000000000 # 1.0
	zxwd $r0 = $r0
	;;
	floatud.rn $r5 = $r1, 0
	;;
	floatuw.rn $r2 = $r1, 0
	;;
	finvw $r2 = $r2
	;;

	fwidenlwd $r2 = $r2
	floatud.rn $r4 = $r0, 0
	;;
	ffmsd $r3 = $r2, $r5
	;;
	ffmad $r2 = $r2, $r3
	;;
	fmuld $r2 = $r2, $r4
	;;
	fixedud.rn $r2 = $r2, 0
	;;
	msbfw $r0 = $r2, $r1
	zxwd $r1 = $r2
	addw $r2 = $r2, -1
	;;
	cmoved.wltz $r0? $r1 = $r2
	;;
	copyd $r0 = $r1
	ret
	;;
	.size	my_udiv32, .-my_udiv32