summaryrefslogtreecommitdiffstats
path: root/libc/sysdeps/linux/nios/NR_Math1.S
blob: 5d5169ba866969d9315d851c5d3a549d4860f21b (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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63


	.include "NM_Macros.S"

	.file	"okmul.c"
gcc2_compiled.:
	.text
	.p2align 1
	.globl __mulsi3
	.type	 __mulsi3,@function
__mulsi3:

	;SKP0	%o0,31
	;NEG	%o1
	;ABS	%o0

		.MACRO ZSTEP bit
		SKP0	%o0,\bit
		ADD	%g0,%o1
		LSLI	%o1,1
		.ENDM

	MOVI	%g0,0
	ZSTEP	0
	ZSTEP	1
	ZSTEP	2
	ZSTEP	3
	ZSTEP	4
	ZSTEP	5
	ZSTEP	6
	ZSTEP	7
	ZSTEP	8
	ZSTEP	9
	ZSTEP	10
	ZSTEP	11
	ZSTEP	12
	ZSTEP	13
	ZSTEP	14
	ZSTEP	15
	ZSTEP	16
	ZSTEP	17
	ZSTEP	18
	ZSTEP	19
	ZSTEP	20
	ZSTEP	21
	ZSTEP	22
	ZSTEP	23
	ZSTEP	24
	ZSTEP	25
	ZSTEP	26
	ZSTEP	27
	ZSTEP	28
	ZSTEP	29
	ZSTEP	30
	ZSTEP	31
	; No bit 31: we already set %o0 to positive

	JMP	%o7
	MOV	%o0,%g0

.Lfe1:
	.size	 __mulsi3,.Lfe1-__mulsi3