sparc_matrix.h revision 7943b349d696f8030f0d2f836ad42a762f4c6026
1/* $Id: sparc_matrix.h,v 1.1 2001/05/23 14:27:03 brianp Exp $ */ 2 3#define M0 %f16 4#define M1 %f17 5#define M2 %f18 6#define M3 %f19 7#define M4 %f20 8#define M5 %f21 9#define M6 %f22 10#define M7 %f23 11#define M8 %f24 12#define M9 %f25 13#define M10 %f26 14#define M11 %f27 15#define M12 %f28 16#define M13 %f29 17#define M14 %f30 18#define M15 %f31 19 20/* Seems to work, disable if unaligned traps begin to appear... -DaveM */ 21#define USE_LD_DOUBLE 22 23#ifndef USE_LD_DOUBLE 24 25#define LDMATRIX_0_1_2_3_12_13_14_15(BASE) \ 26 ld [BASE + ( 0 * 0x4)], M0; \ 27 ld [BASE + ( 1 * 0x4)], M1; \ 28 ld [BASE + ( 2 * 0x4)], M2; \ 29 ld [BASE + ( 3 * 0x4)], M3; \ 30 ld [BASE + (12 * 0x4)], M12; \ 31 ld [BASE + (13 * 0x4)], M13; \ 32 ld [BASE + (14 * 0x4)], M14; \ 33 ld [BASE + (15 * 0x4)], M15 34 35#define LDMATRIX_0_1_12_13(BASE) \ 36 ld [BASE + ( 0 * 0x4)], M0; \ 37 ld [BASE + ( 1 * 0x4)], M1; \ 38 ld [BASE + (12 * 0x4)], M12; \ 39 ld [BASE + (13 * 0x4)], M13 40 41#define LDMATRIX_0_12_13(BASE) \ 42 ld [BASE + ( 0 * 0x4)], M0; \ 43 ld [BASE + (12 * 0x4)], M12; \ 44 ld [BASE + (13 * 0x4)], M13 45 46#define LDMATRIX_0_1_2_12_13_14(BASE) \ 47 ld [BASE + ( 0 * 0x4)], M0; \ 48 ld [BASE + ( 1 * 0x4)], M1; \ 49 ld [BASE + ( 2 * 0x4)], M2; \ 50 ld [BASE + (12 * 0x4)], M12; \ 51 ld [BASE + (13 * 0x4)], M13; \ 52 ld [BASE + (14 * 0x4)], M14 53 54#define LDMATRIX_0_12_13_14(BASE) \ 55 ld [BASE + ( 0 * 0x4)], M0; \ 56 ld [BASE + (12 * 0x4)], M12; \ 57 ld [BASE + (13 * 0x4)], M13; \ 58 ld [BASE + (14 * 0x4)], M14 59 60#define LDMATRIX_0_14(BASE) \ 61 ld [BASE + ( 0 * 0x4)], M0; \ 62 ld [BASE + (14 * 0x4)], M14 63 64#define LDMATRIX_0_1_2_3_4_5_6_7_12_13_14_15(BASE) \ 65 ld [BASE + ( 0 * 0x4)], M0; \ 66 ld [BASE + ( 1 * 0x4)], M1; \ 67 ld [BASE + ( 2 * 0x4)], M2; \ 68 ld [BASE + ( 3 * 0x4)], M3; \ 69 ld [BASE + ( 4 * 0x4)], M4; \ 70 ld [BASE + ( 5 * 0x4)], M5; \ 71 ld [BASE + ( 6 * 0x4)], M6; \ 72 ld [BASE + ( 7 * 0x4)], M7; \ 73 ld [BASE + (12 * 0x4)], M12; \ 74 ld [BASE + (13 * 0x4)], M13; \ 75 ld [BASE + (14 * 0x4)], M14; \ 76 ld [BASE + (15 * 0x4)], M15 77 78#define LDMATRIX_0_1_4_5_12_13(BASE) \ 79 ld [BASE + ( 0 * 0x4)], M0; \ 80 ld [BASE + ( 1 * 0x4)], M1; \ 81 ld [BASE + ( 4 * 0x4)], M4; \ 82 ld [BASE + ( 5 * 0x4)], M5; \ 83 ld [BASE + (12 * 0x4)], M12; \ 84 ld [BASE + (13 * 0x4)], M13 85 86#define LDMATRIX_0_5_12_13(BASE) \ 87 ld [BASE + ( 0 * 0x4)], M0; \ 88 ld [BASE + ( 5 * 0x4)], M5; \ 89 ld [BASE + (12 * 0x4)], M12; \ 90 ld [BASE + (13 * 0x4)], M13 91 92#define LDMATRIX_0_1_2_3_4_5_6_12_13_14(BASE) \ 93 ld [BASE + ( 0 * 0x4)], M0; \ 94 ld [BASE + ( 1 * 0x4)], M1; \ 95 ld [BASE + ( 2 * 0x4)], M2; \ 96 ld [BASE + ( 3 * 0x4)], M3; \ 97 ld [BASE + ( 4 * 0x4)], M4; \ 98 ld [BASE + ( 5 * 0x4)], M5; \ 99 ld [BASE + ( 6 * 0x4)], M6; \ 100 ld [BASE + (12 * 0x4)], M12; \ 101 ld [BASE + (13 * 0x4)], M13; \ 102 ld [BASE + (14 * 0x4)], M14 103 104#define LDMATRIX_0_5_12_13_14(BASE) \ 105 ld [BASE + ( 0 * 0x4)], M0; \ 106 ld [BASE + ( 5 * 0x4)], M5; \ 107 ld [BASE + (12 * 0x4)], M12; \ 108 ld [BASE + (13 * 0x4)], M13; \ 109 ld [BASE + (14 * 0x4)], M14 110 111#define LDMATRIX_0_5_14(BASE) \ 112 ld [BASE + ( 0 * 0x4)], M0; \ 113 ld [BASE + ( 5 * 0x4)], M5; \ 114 ld [BASE + (14 * 0x4)], M14 115 116#define LDMATRIX_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15(BASE) \ 117 ld [BASE + ( 0 * 0x4)], M0; \ 118 ld [BASE + ( 1 * 0x4)], M1; \ 119 ld [BASE + ( 2 * 0x4)], M2; \ 120 ld [BASE + ( 3 * 0x4)], M3; \ 121 ld [BASE + ( 4 * 0x4)], M4; \ 122 ld [BASE + ( 5 * 0x4)], M5; \ 123 ld [BASE + ( 6 * 0x4)], M6; \ 124 ld [BASE + ( 7 * 0x4)], M7; \ 125 ld [BASE + ( 8 * 0x4)], M8; \ 126 ld [BASE + ( 9 * 0x4)], M9; \ 127 ld [BASE + (10 * 0x4)], M10; \ 128 ld [BASE + (11 * 0x4)], M11; \ 129 ld [BASE + (12 * 0x4)], M12; \ 130 ld [BASE + (13 * 0x4)], M13; \ 131 ld [BASE + (14 * 0x4)], M14; \ 132 ld [BASE + (15 * 0x4)], M15 133 134#define LDMATRIX_0_5_12_13(BASE) \ 135 ld [BASE + ( 0 * 0x4)], M0; \ 136 ld [BASE + ( 5 * 0x4)], M5; \ 137 ld [BASE + (12 * 0x4)], M12; \ 138 ld [BASE + (13 * 0x4)], M13 139 140#define LDMATRIX_0_1_2_4_5_6_8_9_10_12_13_14(BASE) \ 141 ld [BASE + ( 0 * 0x4)], M0; \ 142 ld [BASE + ( 1 * 0x4)], M1; \ 143 ld [BASE + ( 2 * 0x4)], M2; \ 144 ld [BASE + ( 4 * 0x4)], M4; \ 145 ld [BASE + ( 5 * 0x4)], M5; \ 146 ld [BASE + ( 6 * 0x4)], M6; \ 147 ld [BASE + ( 8 * 0x4)], M8; \ 148 ld [BASE + ( 9 * 0x4)], M9; \ 149 ld [BASE + (10 * 0x4)], M10; \ 150 ld [BASE + (12 * 0x4)], M12; \ 151 ld [BASE + (13 * 0x4)], M13; \ 152 ld [BASE + (14 * 0x4)], M14 153 154#define LDMATRIX_0_5_10_12_13_14(BASE) \ 155 ld [BASE + ( 0 * 0x4)], M0; \ 156 ld [BASE + ( 5 * 0x4)], M5; \ 157 ld [BASE + (10 * 0x4)], M10; \ 158 ld [BASE + (12 * 0x4)], M12; \ 159 ld [BASE + (13 * 0x4)], M13; \ 160 ld [BASE + (14 * 0x4)], M14 161 162#define LDMATRIX_0_5_8_9_10_14(BASE) \ 163 ld [BASE + ( 0 * 0x4)], M0; \ 164 ld [BASE + ( 5 * 0x4)], M5; \ 165 ld [BASE + ( 8 * 0x4)], M8; \ 166 ld [BASE + ( 9 * 0x4)], M9; \ 167 ld [BASE + (10 * 0x4)], M10; \ 168 ld [BASE + (14 * 0x4)], M14 169 170#else /* !(USE_LD_DOUBLE) */ 171 172#define LDMATRIX_0_1_2_3_12_13_14_15(BASE) \ 173 ldd [BASE + ( 0 * 0x4)], M0; \ 174 ldd [BASE + ( 2 * 0x4)], M2; \ 175 ldd [BASE + (12 * 0x4)], M12; \ 176 ldd [BASE + (14 * 0x4)], M14 177 178#define LDMATRIX_0_1_12_13(BASE) \ 179 ldd [BASE + ( 0 * 0x4)], M0; \ 180 ldd [BASE + (12 * 0x4)], M12 181 182#define LDMATRIX_0_12_13(BASE) \ 183 ld [BASE + ( 0 * 0x4)], M0; \ 184 ldd [BASE + (12 * 0x4)], M12 185 186#define LDMATRIX_0_1_2_12_13_14(BASE) \ 187 ldd [BASE + ( 0 * 0x4)], M0; \ 188 ld [BASE + ( 2 * 0x4)], M2; \ 189 ldd [BASE + (12 * 0x4)], M12; \ 190 ld [BASE + (14 * 0x4)], M14 191 192#define LDMATRIX_0_12_13_14(BASE) \ 193 ld [BASE + ( 0 * 0x4)], M0; \ 194 ldd [BASE + (12 * 0x4)], M12; \ 195 ld [BASE + (14 * 0x4)], M14 196 197#define LDMATRIX_0_14(BASE) \ 198 ld [BASE + ( 0 * 0x4)], M0; \ 199 ld [BASE + (14 * 0x4)], M14 200 201#define LDMATRIX_0_1_2_3_4_5_6_7_12_13_14_15(BASE) \ 202 ldd [BASE + ( 0 * 0x4)], M0; \ 203 ldd [BASE + ( 2 * 0x4)], M2; \ 204 ldd [BASE + ( 4 * 0x4)], M4; \ 205 ldd [BASE + ( 6 * 0x4)], M6; \ 206 ldd [BASE + (12 * 0x4)], M12; \ 207 ldd [BASE + (14 * 0x4)], M14 208 209#define LDMATRIX_0_5_12_13(BASE) \ 210 ld [BASE + ( 0 * 0x4)], M0; \ 211 ld [BASE + ( 5 * 0x4)], M5; \ 212 ldd [BASE + (12 * 0x4)], M12 213 214#define LDMATRIX_0_1_2_3_4_5_6_12_13_14(BASE) \ 215 ldd [BASE + ( 0 * 0x4)], M0; \ 216 ldd [BASE + ( 2 * 0x4)], M2; \ 217 ldd [BASE + ( 4 * 0x4)], M4; \ 218 ld [BASE + ( 6 * 0x4)], M6; \ 219 ldd [BASE + (12 * 0x4)], M12; \ 220 ld [BASE + (14 * 0x4)], M14 221 222#define LDMATRIX_0_5_12_13_14(BASE) \ 223 ld [BASE + ( 0 * 0x4)], M0; \ 224 ld [BASE + ( 5 * 0x4)], M5; \ 225 ldd [BASE + (12 * 0x4)], M12; \ 226 ld [BASE + (14 * 0x4)], M14 227 228#define LDMATRIX_0_5_14(BASE) \ 229 ld [BASE + ( 0 * 0x4)], M0; \ 230 ld [BASE + ( 5 * 0x4)], M5; \ 231 ld [BASE + (14 * 0x4)], M14 232 233#define LDMATRIX_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15(BASE) \ 234 ldd [BASE + ( 0 * 0x4)], M0; \ 235 ldd [BASE + ( 2 * 0x4)], M2; \ 236 ldd [BASE + ( 4 * 0x4)], M4; \ 237 ldd [BASE + ( 6 * 0x4)], M6; \ 238 ldd [BASE + ( 8 * 0x4)], M8; \ 239 ldd [BASE + (10 * 0x4)], M10; \ 240 ldd [BASE + (12 * 0x4)], M12; \ 241 ldd [BASE + (14 * 0x4)], M14 242 243#define LDMATRIX_0_1_4_5_12_13(BASE) \ 244 ldd [BASE + ( 0 * 0x4)], M0; \ 245 ldd [BASE + ( 4 * 0x4)], M4; \ 246 ldd [BASE + (12 * 0x4)], M12 247 248#define LDMATRIX_0_5_12_13(BASE) \ 249 ld [BASE + ( 0 * 0x4)], M0; \ 250 ld [BASE + ( 5 * 0x4)], M5; \ 251 ldd [BASE + (12 * 0x4)], M12 252 253#define LDMATRIX_0_1_2_4_5_6_8_9_10_12_13_14(BASE) \ 254 ldd [BASE + ( 0 * 0x4)], M0; \ 255 ld [BASE + ( 2 * 0x4)], M2; \ 256 ldd [BASE + ( 4 * 0x4)], M4; \ 257 ld [BASE + ( 6 * 0x4)], M6; \ 258 ldd [BASE + ( 8 * 0x4)], M8; \ 259 ld [BASE + (10 * 0x4)], M10; \ 260 ldd [BASE + (12 * 0x4)], M12; \ 261 ld [BASE + (14 * 0x4)], M14 262 263#define LDMATRIX_0_5_10_12_13_14(BASE) \ 264 ld [BASE + ( 0 * 0x4)], M0; \ 265 ld [BASE + ( 5 * 0x4)], M5; \ 266 ld [BASE + (10 * 0x4)], M10; \ 267 ldd [BASE + (12 * 0x4)], M12; \ 268 ld [BASE + (14 * 0x4)], M14 269 270#define LDMATRIX_0_5_8_9_10_14(BASE) \ 271 ld [BASE + ( 0 * 0x4)], M0; \ 272 ld [BASE + ( 5 * 0x4)], M5; \ 273 ldd [BASE + ( 8 * 0x4)], M8; \ 274 ld [BASE + (10 * 0x4)], M10; \ 275 ld [BASE + (14 * 0x4)], M14 276 277#endif /* USE_LD_DOUBLE */ 278