2 * SPARC assembly matrix code.
5 #ifndef _SPARC_MATRIX_H
6 #define _SPARC_MATRIX_H
10 #define MATH_ASM_PTR_SIZE 8
11 #include "math/m_vector_asm.h"
14 #define MATH_ASM_PTR_SIZE 4
15 #include "math/m_vector_asm.h"
40 #define LDMATRIX_0_1_2_3_12_13_14_15(BASE) \
41 ldd [BASE + ( 0 * 0x4)], M0; \
42 ldd [BASE + ( 2 * 0x4)], M2; \
43 ldd [BASE + (12 * 0x4)], M12; \
44 ldd [BASE + (14 * 0x4)], M14
46 #define LDMATRIX_0_1_12_13(BASE) \
47 ldd [BASE + ( 0 * 0x4)], M0; \
48 ldd [BASE + (12 * 0x4)], M12
50 #define LDMATRIX_0_12_13(BASE) \
51 ld [BASE + ( 0 * 0x4)], M0; \
52 ldd [BASE + (12 * 0x4)], M12
54 #define LDMATRIX_0_1_2_12_13_14(BASE) \
55 ldd [BASE + ( 0 * 0x4)], M0; \
56 ld [BASE + ( 2 * 0x4)], M2; \
57 ldd [BASE + (12 * 0x4)], M12; \
58 ld [BASE + (14 * 0x4)], M14
60 #define LDMATRIX_0_12_13_14(BASE) \
61 ld [BASE + ( 0 * 0x4)], M0; \
62 ldd [BASE + (12 * 0x4)], M12; \
63 ld [BASE + (14 * 0x4)], M14
65 #define LDMATRIX_0_14(BASE) \
66 ld [BASE + ( 0 * 0x4)], M0; \
67 ld [BASE + (14 * 0x4)], M14
69 #define LDMATRIX_0_1_2_3_4_5_6_7_12_13_14_15(BASE) \
70 ldd [BASE + ( 0 * 0x4)], M0; \
71 ldd [BASE + ( 2 * 0x4)], M2; \
72 ldd [BASE + ( 4 * 0x4)], M4; \
73 ldd [BASE + ( 6 * 0x4)], M6; \
74 ldd [BASE + (12 * 0x4)], M12; \
75 ldd [BASE + (14 * 0x4)], M14
77 #define LDMATRIX_0_5_12_13(BASE) \
78 ld [BASE + ( 0 * 0x4)], M0; \
79 ld [BASE + ( 5 * 0x4)], M5; \
80 ldd [BASE + (12 * 0x4)], M12
82 #define LDMATRIX_0_1_2_3_4_5_6_12_13_14(BASE) \
83 ldd [BASE + ( 0 * 0x4)], M0; \
84 ldd [BASE + ( 2 * 0x4)], M2; \
85 ldd [BASE + ( 4 * 0x4)], M4; \
86 ld [BASE + ( 6 * 0x4)], M6; \
87 ldd [BASE + (12 * 0x4)], M12; \
88 ld [BASE + (14 * 0x4)], M14
90 #define LDMATRIX_0_5_12_13_14(BASE) \
91 ld [BASE + ( 0 * 0x4)], M0; \
92 ld [BASE + ( 5 * 0x4)], M5; \
93 ldd [BASE + (12 * 0x4)], M12; \
94 ld [BASE + (14 * 0x4)], M14
96 #define LDMATRIX_0_5_14(BASE) \
97 ld [BASE + ( 0 * 0x4)], M0; \
98 ld [BASE + ( 5 * 0x4)], M5; \
99 ld [BASE + (14 * 0x4)], M14
101 #define LDMATRIX_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15(BASE) \
102 ldd [BASE + ( 0 * 0x4)], M0; \
103 ldd [BASE + ( 2 * 0x4)], M2; \
104 ldd [BASE + ( 4 * 0x4)], M4; \
105 ldd [BASE + ( 6 * 0x4)], M6; \
106 ldd [BASE + ( 8 * 0x4)], M8; \
107 ldd [BASE + (10 * 0x4)], M10; \
108 ldd [BASE + (12 * 0x4)], M12; \
109 ldd [BASE + (14 * 0x4)], M14
111 #define LDMATRIX_0_1_4_5_12_13(BASE) \
112 ldd [BASE + ( 0 * 0x4)], M0; \
113 ldd [BASE + ( 4 * 0x4)], M4; \
114 ldd [BASE + (12 * 0x4)], M12
116 #define LDMATRIX_0_5_12_13(BASE) \
117 ld [BASE + ( 0 * 0x4)], M0; \
118 ld [BASE + ( 5 * 0x4)], M5; \
119 ldd [BASE + (12 * 0x4)], M12
121 #define LDMATRIX_0_1_2_4_5_6_8_9_10(BASE) \
122 ldd [BASE + ( 0 * 0x4)], M0; \
123 ld [BASE + ( 2 * 0x4)], M2; \
124 ldd [BASE + ( 4 * 0x4)], M4; \
125 ld [BASE + ( 6 * 0x4)], M6; \
126 ldd [BASE + ( 8 * 0x4)], M8; \
127 ld [BASE + (10 * 0x4)], M10
129 #define LDMATRIX_0_1_2_4_5_6_8_9_10_12_13_14(BASE) \
130 ldd [BASE + ( 0 * 0x4)], M0; \
131 ld [BASE + ( 2 * 0x4)], M2; \
132 ldd [BASE + ( 4 * 0x4)], M4; \
133 ld [BASE + ( 6 * 0x4)], M6; \
134 ldd [BASE + ( 8 * 0x4)], M8; \
135 ld [BASE + (10 * 0x4)], M10; \
136 ldd [BASE + (12 * 0x4)], M12; \
137 ld [BASE + (14 * 0x4)], M14
139 #define LDMATRIX_0_5_10(BASE) \
140 ld [BASE + ( 0 * 0x4)], M0; \
141 ld [BASE + ( 5 * 0x4)], M5; \
142 ld [BASE + (10 * 0x4)], M10;
144 #define LDMATRIX_0_5_10_12_13_14(BASE) \
145 ld [BASE + ( 0 * 0x4)], M0; \
146 ld [BASE + ( 5 * 0x4)], M5; \
147 ld [BASE + (10 * 0x4)], M10; \
148 ldd [BASE + (12 * 0x4)], M12; \
149 ld [BASE + (14 * 0x4)], M14
151 #define LDMATRIX_0_5_8_9_10_14(BASE) \
152 ld [BASE + ( 0 * 0x4)], M0; \
153 ld [BASE + ( 5 * 0x4)], M5; \
154 ldd [BASE + ( 8 * 0x4)], M8; \
155 ld [BASE + (10 * 0x4)], M10; \
156 ld [BASE + (14 * 0x4)], M14
158 #endif /* !(_SPARC_MATRIX_H) */