xref: /netbsd/lib/libarch/sparc/v8/sparc_v8.S (revision c4a72b64)
1/*
2 * GCC generated output for sparc v8 mul/div/rem operations.
3 * Included in the sparc_v8.so shared library for use on sparc v8
4 * machines instead of the libc.so versions.
5 */
6	.file	"sparc_v8.S"
7.section	".text"
8
9/*--- .umul ---*/
10	.align 4
11	.global .umul
12	.type	 .umul,@function
13	.proc	016
14
15.umul:
16	!#PROLOGUE# 0
17	!#PROLOGUE# 1
18	retl
19	 umul	%o0, %o1, %o0
20.LLfe1:
21	.size	 .umul,.LLfe1-.umul
22
23/*--- .mul ---*/
24	.align 4
25	.global .mul
26	.type	 .mul,@function
27	.proc	04
28.mul:
29	!#PROLOGUE# 0
30	!#PROLOGUE# 1
31	retl
32	 smul	%o0, %o1, %o0
33.LLfe2:
34	.size	 .mul,.LLfe2-.mul
35
36/*--- .udiv ---*/
37	.align 4
38	.global .udiv
39	.type	 .udiv,@function
40	.proc	016
41.udiv:
42	wr	%g0, 0, %y
43	nop; nop; nop
44	retl
45	 udiv	%o0, %o1, %o0
46.LLfe3:
47	.size	 .udiv,.LLfe3-.udiv
48
49/*--- .div ---*/
50	.align 4
51	.global .div
52	.type	 .div,@function
53	.proc	04
54
55.div:
56	sra	%o0, 31, %g2
57	wr	%g2, 0, %y
58	nop; nop; nop
59	retl
60	 sdiv	%o0, %o1, %o0
61.LLfe4:
62	.size	 .div,.LLfe4-.div
63
64/*--- .urem ---*/
65	.align 4
66	.global .urem
67	.type	 .urem,@function
68	.proc	016
69.urem:
70	wr	%g0, %g0, %y
71	nop; nop; nop
72	udiv	%o0, %o1, %g2
73	smul	%g2, %o1, %g2
74	retl
75	 sub	%o0, %g2, %o0
76.LLfe5:
77	.size	 .urem,.LLfe5-.urem
78
79/*--- .rem ---*/
80	.align 4
81	.global .rem
82	.type	 .rem,@function
83	.proc	04
84.rem:
85	sra	%o0, 31, %g3
86	wr	%g3, 0, %y
87	nop; nop; nop
88	sdiv	%o0, %o1, %g2
89	smul	%g2, %o1, %g2
90	retl
91	 sub	%o0, %g2, %o0
92.LLfe6:
93	.size	 .rem,.LLfe6-.rem
94	!.ident	"GCC: (GNU) 2.95.3 20010315 (release) (NetBSD nb3)"
95