sparc_v8.S revision 1.1 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