File: vector.s

package info (click to toggle)
binutils-avr 2.26.20160125%2BAtmel3.6.2-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 365,552 kB
  • sloc: ansic: 2,480,046; asm: 892,807; exp: 188,218; cpp: 133,829; makefile: 63,886; sh: 32,212; yacc: 26,783; lisp: 16,709; xml: 7,490; perl: 6,449; python: 4,555; ada: 4,318; pascal: 3,174; lex: 2,250; cs: 879; sed: 334; f90: 298; awk: 168; objc: 134; java: 73; fortran: 43
file content (131 lines) | stat: -rw-r--r-- 3,271 bytes parent folder | download | duplicates (35)
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
	.text
	.global add_on_sign
add_on_sign:
	r4.h = r4.l = Sign (R1.h) * R5.h + Sign(r1.L) * R5.L;

	.text
	.global vit_max
vit_max:
	R7 = Vit_Max (R5, r2) (ASL);
	r0 = VIT_MAX (r0, r6) (asr);
	r5.l = vit_max (R3) (asL);
	r2.L = VIT_Max (r2) (Asr);

	.text
	.global vector_abs
vector_abs:
	R5 = ABS R5 (V);
	r2 = abs r0 (v);

	.text
	.global vector_add_sub
vector_add_sub:
	R5 = r3 +|+ R2;
	r5 = r3 +|+ r2 (Sco);
	r7 = R0 -|+ r6;
	r2 = R1 -|+ R3 (S);
	R4 = R0 +|- R2;
	R5 = r1 +|- r2 (CO);
	r6 = r3 -|- R4;
	r7 = R5 -|- R6 (co);

	r5 = r4 +|+ r3, R7 = r4 -|- r3 (Sco, ASR);
	R0 = R3 +|+ r6, R1 = R3 -|- R6 (ASL);
	R7 = R1 +|- R2, R6 = R1 -|+ R2 (S);
	r1 = r2 +|- r3, r5 = r2 -|+ r3;

	R5 = R0 + R1, R6 = R0 - R1;
	r0 = r7 + r1, r3 = r7 - r1 (s);

	r7 = A1 + A0, r5 = A1 - A0;
	r3 = a0 + a1, r6 = a0 - a1 (s);

	.text
	.global vector_ashift
vector_ashift:
	R1 = R3 >>> 15 (V);
	r4 = r0 >>> 4 (v);
	r5 = r0 << 0 (v,s);
	r2 = r2 << 12 (v, S);

	R7 = ASHIFT R5 BY R2.L (V);
	r0 = Ashift r2 by r0.L (v, s);

	.text
	.global vector_lshift
vector_lshift:
	R5 = r2 >> 15 (V);
	r0 = R1 << 2 (v);

	R4 = lshift r1 by r2.L (v);

	.text
	.global vector_max
vector_max:
	R6 = MAX (R0, R1) (V);

	.text
	.global vector_min
vector_min:
	r0 = min (r2, r7) (v);

	.text
	.global vector_mul
vector_mul:
	r2.h = r7.l * r6.h, r2.l = r7.h * r6.h;
	R4.L = R1.L * R0.L, R4.H = R1.H * R0.H;
	R0.h = R3.H * r2.l, r0.l=r3.l * r2.l;
	r5.h = r3.h * r2.h (M), r5.l = r3.L * r2.L (fu);
	R0 = r4.l * r7.l, r1 = r4.h * r7.h (s2rnd);
	R7 = R2.l * r5.l, r6 = r2.h * r5.h;
	R0.L = R7.L * R6.L, R0.H = R7.H * R6.H (ISS2);
	r3.h = r0.h * r1.h, r3.l = r0.l * r1.l (is);

	a1 = r2.l * r3.h, a0 = r2.h * R3.H;
	A0 = R1.l * R0.L, A1 += R1.h * R0.h;
	A1 = R5.h * R7.H, A0 += r5.L * r7.l (w32);
	a1 += r0.H * r1.H, A0 = R0.L * R1.l (is);
	a1 = r3.h * r4.h (m), a0 += r3.l * R4.L (FU);
	A1 += r4.H * R4.L, a0 -= r4.h * r4.h;

	r0.l = (a0 += R7.l * R6.L), R0.H = (A1 += R7.H * R6.H) (Iss2);
	r2.H = A1, r2.l = (a0 += r0.L * r1.L) (s2rnd);
	r7.h = (a1 = r2.h * r1.h), a0 += r2.l * r1.l;
	R2.H = (A1 = R7.L * R6.H), R2.L = (A0 = R7.H * R6.h);
	r6.L = (A0 = R3.L * r2.L), R6.H = (A1 += R3.H * R2.H);
	R7.h = (a1 += r6.h * r5.l), r7.l = (a0=r6.h * r5.h);
	r0.h = (A1 = r7.h * R4.l) (M), R0.l = (a0 += r7.l * r4.l);
	R5.H = (a1 = r3.h * r2.h) (m), r5.l= (a0 += r3.l * r2.l) (fu);
	r0.h = (A1 += R3.h * R2.h), R0.L = ( A0 = R3.L * R2.L) (is);

	R3 = (A1 = R6.H * R7.H) (M), A0 -= R6.L * R7.L;
	r1 = (a1 = r7.l * r4.l) (m), r0 = (a0 += r7.h * r4.h);
	R0 = (a0 += r7.l * r6.l), r1 = (a1+= r7.h * r6.h) (ISS2);
	r4 = (a0 = r6.l * r7.l), r5 = (a1 += r6.h * r7.h);
	R7 = (A1 += r3.h * r5.H), R6 = (A0 -= r3.l * r5.l);
	r5 = (a1 -= r6.h * r7.h), a0 += r6.l * r7.l;
	R3 = (A1 = r6.h * R7.h), R2 = (A0 = R6.l * r7.l);
	R5 = (A1 = r3.h * r7.h) (M), r4 = (A0 += R3.l * r7.l) (fu);
	R3 = a1, r2 = (a0 += r0.l *r1.l) (s2rnd);
	r1 = (a1 += r3.h * r2.h), r0 = (a0 = r3.l * r2.l) (is);

	.text
	.global vector_negate
vector_negate:
	R0 = - R1 (V);
	r7 = - r2 (v);

	.text
	.global vector_pack
vector_pack:
	R7 = Pack (r0.h, r1.l);
	r6 = PACK (r1.H, r6.H);
	R5 = pack (R2.L, R2.H);
	
	.text
	.global vector_search
vector_search:
	(R0, R1) = search R2 (lt);
	(r6, r7) = Search r0 (LE);
	(r3, r6) = SEARCH r1 (Gt);
	(r4, R5) = sEARch r3 (gE);