| @@ -0,0 +1,405 @@ |
| 1 | +// This program is designed to test some arm64-specific things, such as the |
| 2 | +// calling convention, but should give the same results on any architecture. |
| 3 | + |
| 4 | +#include <stdarg.h> |
| 5 | +#include <stdio.h> |
| 6 | + |
| 7 | +struct s1 { char x[1]; } s1 = { "0" }; |
| 8 | +struct s2 { char x[2]; } s2 = { "12" }; |
| 9 | +struct s3 { char x[3]; } s3 = { "345" }; |
| 10 | +struct s4 { char x[4]; } s4 = { "6789" }; |
| 11 | +struct s5 { char x[5]; } s5 = { "abcde" }; |
| 12 | +struct s6 { char x[6]; } s6 = { "fghijk" }; |
| 13 | +struct s7 { char x[7]; } s7 = { "lmnopqr" }; |
| 14 | +struct s8 { char x[8]; } s8 = { "stuvwxyz" }; |
| 15 | +struct s9 { char x[9]; } s9 = { "ABCDEFGHI" }; |
| 16 | +struct s10 { char x[10]; } s10 = { "JKLMNOPQRS" }; |
| 17 | +struct s11 { char x[11]; } s11 = { "TUVWXYZ0123" }; |
| 18 | +struct s12 { char x[12]; } s12 = { "456789abcdef" }; |
| 19 | +struct s13 { char x[13]; } s13 = { "ghijklmnopqrs" }; |
| 20 | +struct s14 { char x[14]; } s14 = { "tuvwxyzABCDEFG" }; |
| 21 | +struct s15 { char x[15]; } s15 = { "HIJKLMNOPQRSTUV" }; |
| 22 | +struct s16 { char x[16]; } s16 = { "WXYZ0123456789ab" }; |
| 23 | +struct s17 { char x[17]; } s17 = { "cdefghijklmnopqrs" }; |
| 24 | + |
| 25 | +struct hfa11 { float a; } hfa11 = { 11.1 }; |
| 26 | +struct hfa12 { float a, b; } hfa12 = { 12.1, 12.2 }; |
| 27 | +struct hfa13 { float a, b, c; } hfa13 = { 13.1, 13.2, 13.3 }; |
| 28 | +struct hfa14 { float a, b, c, d; } hfa14 = { 14.1, 14.2, 14.3, 14.4 }; |
| 29 | + |
| 30 | +struct hfa21 { double a; } hfa21 = { 21.1 }; |
| 31 | +struct hfa22 { double a, b; } hfa22 = { 22.1, 22.2 }; |
| 32 | +struct hfa23 { double a, b, c; } hfa23 = { 23.1, 23.2, 23.3 }; |
| 33 | +struct hfa24 { double a, b, c, d; } hfa24 = { 24.1, 24.2, 24.3, 24.4 }; |
| 34 | + |
| 35 | +struct hfa31 { long double a; } hfa31 = { 31.1 }; |
| 36 | +struct hfa32 { long double a, b; } hfa32 = { 32.1, 32.2 }; |
| 37 | +struct hfa33 { long double a, b, c; } hfa33 = { 33.1, 33.2, 33.3 }; |
| 38 | +struct hfa34 { long double a, b, c, d; } hfa34 = { 34.1, 34.2, 34.3, 34.4 }; |
| 39 | + |
| 40 | +void fa_s1(struct s1 a) { printf("%.1s\n", a.x); } |
| 41 | +void fa_s2(struct s2 a) { printf("%.2s\n", a.x); } |
| 42 | +void fa_s3(struct s3 a) { printf("%.3s\n", a.x); } |
| 43 | +void fa_s4(struct s4 a) { printf("%.4s\n", a.x); } |
| 44 | +void fa_s5(struct s5 a) { printf("%.5s\n", a.x); } |
| 45 | +void fa_s6(struct s6 a) { printf("%.6s\n", a.x); } |
| 46 | +void fa_s7(struct s7 a) { printf("%.7s\n", a.x); } |
| 47 | +void fa_s8(struct s8 a) { printf("%.8s\n", a.x); } |
| 48 | +void fa_s9(struct s9 a) { printf("%.9s\n", a.x); } |
| 49 | +void fa_s10(struct s10 a) { printf("%.10s\n", a.x); } |
| 50 | +void fa_s11(struct s11 a) { printf("%.11s\n", a.x); } |
| 51 | +void fa_s12(struct s12 a) { printf("%.12s\n", a.x); } |
| 52 | +void fa_s13(struct s13 a) { printf("%.13s\n", a.x); } |
| 53 | +void fa_s14(struct s14 a) { printf("%.14s\n", a.x); } |
| 54 | +void fa_s15(struct s15 a) { printf("%.15s\n", a.x); } |
| 55 | +void fa_s16(struct s16 a) { printf("%.16s\n", a.x); } |
| 56 | +void fa_s17(struct s17 a) { printf("%.17s\n", a.x); } |
| 57 | + |
| 58 | +void fa_hfa11(struct hfa11 a) |
| 59 | +{ printf("%.1f\n", a.a); } |
| 60 | +void fa_hfa12(struct hfa12 a) |
| 61 | +{ printf("%.1f %.1f\n", a.a, a.a); } |
| 62 | +void fa_hfa13(struct hfa13 a) |
| 63 | +{ printf("%.1f %.1f %.1f\n", a.a, a.b, a.c); } |
| 64 | +void fa_hfa14(struct hfa14 a) |
| 65 | +{ printf("%.1f %.1f %.1f %.1f\n", a.a, a.b, a.c, a.d); } |
| 66 | + |
| 67 | +void fa_hfa21(struct hfa21 a) |
| 68 | +{ printf("%.1f\n", a.a); } |
| 69 | +void fa_hfa22(struct hfa22 a) |
| 70 | +{ printf("%.1f %.1f\n", a.a, a.a); } |
| 71 | +void fa_hfa23(struct hfa23 a) |
| 72 | +{ printf("%.1f %.1f %.1f\n", a.a, a.b, a.c); } |
| 73 | +void fa_hfa24(struct hfa24 a) |
| 74 | +{ printf("%.1f %.1f %.1f %.1f\n", a.a, a.b, a.c, a.d); } |
| 75 | + |
| 76 | +void fa_hfa31(struct hfa31 a) |
| 77 | +{ printf("%.1Lf\n", a.a); } |
| 78 | +void fa_hfa32(struct hfa32 a) |
| 79 | +{ printf("%.1Lf %.1Lf\n", a.a, a.a); } |
| 80 | +void fa_hfa33(struct hfa33 a) |
| 81 | +{ printf("%.1Lf %.1Lf %.1Lf\n", a.a, a.b, a.c); } |
| 82 | +void fa_hfa34(struct hfa34 a) |
| 83 | +{ printf("%.1Lf %.1Lf %.1Lf %.1Lf\n", a.a, a.b, a.c, a.d); } |
| 84 | + |
| 85 | +void fa1(struct s8 a, struct s9 b, struct s10 c, struct s11 d, |
| 86 | + struct s12 e, struct s13 f) |
| 87 | +{ |
| 88 | + printf("%.3s %.3s %.3s %.3s %.3s %.3s\n", a.x, b.x, c.x, d.x, e.x, f.x); |
| 89 | +} |
| 90 | + |
| 91 | +void fa2(struct s9 a, struct s10 b, struct s11 c, struct s12 d, |
| 92 | + struct s13 e, struct s14 f) |
| 93 | +{ |
| 94 | + printf("%.3s %.3s %.3s %.3s %.3s %.3s\n", a.x, b.x, c.x, d.x, e.x, f.x); |
| 95 | +} |
| 96 | + |
| 97 | +void fa3(struct hfa14 a, struct hfa23 b, struct hfa32 c) |
| 98 | +{ |
| 99 | + printf("%.1f %.1f %.1f %.1f %.1Lf %.1Lf\n", |
| 100 | + a.a, a.d, b.a, b.c, c.a, c.b); |
| 101 | +} |
| 102 | + |
| 103 | +void fa4(struct s1 a, struct hfa14 b, struct s2 c, struct hfa24 d, |
| 104 | + struct s3 e, struct hfa34 f) |
| 105 | +{ |
| 106 | + printf("%.1s %.1f %.1f %.2s %.1f %.1f %.3s %.1Lf %.1Lf\n", |
| 107 | + a.x, b.a, b.d, c.x, d.a, d.d, e.x, f.a, f.d); |
| 108 | +} |
| 109 | + |
| 110 | +void arg(void) |
| 111 | +{ |
| 112 | + printf("Arguments:\n"); |
| 113 | + fa_s1(s1); |
| 114 | + fa_s2(s2); |
| 115 | + fa_s3(s3); |
| 116 | + fa_s4(s4); |
| 117 | + fa_s5(s5); |
| 118 | + fa_s6(s6); |
| 119 | + fa_s7(s7); |
| 120 | + fa_s8(s8); |
| 121 | + fa_s9(s9); |
| 122 | + fa_s10(s10); |
| 123 | + fa_s11(s11); |
| 124 | + fa_s12(s12); |
| 125 | + fa_s13(s13); |
| 126 | + fa_s14(s14); |
| 127 | + fa_s15(s15); |
| 128 | + fa_s16(s16); |
| 129 | + fa_s17(s17); |
| 130 | + fa_hfa11(hfa11); |
| 131 | + fa_hfa12(hfa12); |
| 132 | + fa_hfa13(hfa13); |
| 133 | + fa_hfa14(hfa14); |
| 134 | + fa_hfa21(hfa21); |
| 135 | + fa_hfa22(hfa22); |
| 136 | + fa_hfa23(hfa23); |
| 137 | + fa_hfa24(hfa24); |
| 138 | + fa_hfa31(hfa31); |
| 139 | + fa_hfa32(hfa32); |
| 140 | + fa_hfa33(hfa33); |
| 141 | + fa_hfa34(hfa34); |
| 142 | + fa1(s8, s9, s10, s11, s12, s13); |
| 143 | + fa2(s9, s10, s11, s12, s13, s14); |
| 144 | + fa3(hfa14, hfa23, hfa32); |
| 145 | + fa4(s1, hfa14, s2, hfa24, s3, hfa34); |
| 146 | +} |
| 147 | + |
| 148 | +struct s1 fr_s1(void) { return s1; } |
| 149 | +struct s2 fr_s2(void) { return s2; } |
| 150 | +struct s3 fr_s3(void) { return s3; } |
| 151 | +struct s4 fr_s4(void) { return s4; } |
| 152 | +struct s5 fr_s5(void) { return s5; } |
| 153 | +struct s6 fr_s6(void) { return s6; } |
| 154 | +struct s7 fr_s7(void) { return s7; } |
| 155 | +struct s8 fr_s8(void) { return s8; } |
| 156 | +struct s9 fr_s9(void) { return s9; } |
| 157 | +struct s10 fr_s10(void) { return s10; } |
| 158 | +struct s11 fr_s11(void) { return s11; } |
| 159 | +struct s12 fr_s12(void) { return s12; } |
| 160 | +struct s13 fr_s13(void) { return s13; } |
| 161 | +struct s14 fr_s14(void) { return s14; } |
| 162 | +struct s15 fr_s15(void) { return s15; } |
| 163 | +struct s16 fr_s16(void) { return s16; } |
| 164 | +struct s17 fr_s17(void) { return s17; } |
| 165 | + |
| 166 | +struct hfa11 fr_hfa11(void) { return hfa11; } |
| 167 | +struct hfa12 fr_hfa12(void) { return hfa12; } |
| 168 | +struct hfa13 fr_hfa13(void) { return hfa13; } |
| 169 | +struct hfa14 fr_hfa14(void) { return hfa14; } |
| 170 | + |
| 171 | +struct hfa21 fr_hfa21(void) { return hfa21; } |
| 172 | +struct hfa22 fr_hfa22(void) { return hfa22; } |
| 173 | +struct hfa23 fr_hfa23(void) { return hfa23; } |
| 174 | +struct hfa24 fr_hfa24(void) { return hfa24; } |
| 175 | + |
| 176 | +struct hfa31 fr_hfa31(void) { return hfa31; } |
| 177 | +struct hfa32 fr_hfa32(void) { return hfa32; } |
| 178 | +struct hfa33 fr_hfa33(void) { return hfa33; } |
| 179 | +struct hfa34 fr_hfa34(void) { return hfa34; } |
| 180 | + |
| 181 | +void ret(void) |
| 182 | +{ |
| 183 | + printf("Return values:\n"); |
| 184 | + printf("%.1s\n", &fr_s1().x[0]); |
| 185 | + printf("%.2s\n", &fr_s2().x[0]); |
| 186 | + printf("%.3s\n", &fr_s3().x[0]); |
| 187 | + printf("%.4s\n", &fr_s4().x[0]); |
| 188 | + printf("%.5s\n", &fr_s5().x[0]); |
| 189 | + printf("%.6s\n", &fr_s6().x[0]); |
| 190 | + printf("%.7s\n", &fr_s7().x[0]); |
| 191 | + printf("%.8s\n", &fr_s8().x[0]); |
| 192 | + printf("%.9s\n", &fr_s9().x[0]); |
| 193 | + printf("%.10s\n", &fr_s10().x[0]); |
| 194 | + printf("%.11s\n", &fr_s11().x[0]); |
| 195 | + printf("%.12s\n", &fr_s12().x[0]); |
| 196 | + printf("%.13s\n", &fr_s13().x[0]); |
| 197 | + printf("%.14s\n", &fr_s14().x[0]); |
| 198 | + printf("%.15s\n", &fr_s15().x[0]); |
| 199 | + printf("%.16s\n", &fr_s16().x[0]); |
| 200 | + printf("%.17s\n", &fr_s17().x[0]); |
| 201 | + printf("%.1f\n", fr_hfa11().a); |
| 202 | + printf("%.1f %.1f\n", fr_hfa12().a, fr_hfa12().b); |
| 203 | + printf("%.1f %.1f\n", fr_hfa13().a, fr_hfa13().c); |
| 204 | + printf("%.1f %.1f\n", fr_hfa14().a, fr_hfa14().d); |
| 205 | + printf("%.1f\n", fr_hfa21().a); |
| 206 | + printf("%.1f %.1f\n", fr_hfa22().a, fr_hfa22().b); |
| 207 | + printf("%.1f %.1f\n", fr_hfa23().a, fr_hfa23().c); |
| 208 | + printf("%.1f %.1f\n", fr_hfa24().a, fr_hfa24().d); |
| 209 | + printf("%.1Lf\n", fr_hfa31().a); |
| 210 | + printf("%.1Lf %.1Lf\n", fr_hfa32().a, fr_hfa32().b); |
| 211 | + printf("%.1Lf %.1Lf\n", fr_hfa33().a, fr_hfa33().c); |
| 212 | + printf("%.1Lf %.1Lf\n", fr_hfa34().a, fr_hfa34().d); |
| 213 | +} |
| 214 | + |
| 215 | +int match(const char **s, const char *f) |
| 216 | +{ |
| 217 | + const char *p = *s; |
| 218 | + for (p = *s; *f && *f == *p; f++, p++) |
| 219 | + ; |
| 220 | + if (!*f) { |
| 221 | + *s = p - 1; |
| 222 | + return 1; |
| 223 | + } |
| 224 | + return 0; |
| 225 | +} |
| 226 | + |
| 227 | +void myprintf(const char *format, ...) |
| 228 | +{ |
| 229 | + const char *s; |
| 230 | + va_list ap; |
| 231 | + va_start(ap, format); |
| 232 | + for (s = format; *s; s++) { |
| 233 | + if (match(&s, "%7s")) |
| 234 | + printf("%.7s", &va_arg(ap, struct s7).x[0]); |
| 235 | + else if (match(&s, "%9s")) |
| 236 | + printf("%.9s", &va_arg(ap, struct s9).x[0]); |
| 237 | + else if (match(&s, "%hfa11")) { |
| 238 | + struct hfa11 x = va_arg(ap, struct hfa11); |
| 239 | + printf("%.1f,%.1f", x.a, x.a); |
| 240 | + } |
| 241 | + else if (match(&s, "%hfa12")) { |
| 242 | + struct hfa12 x = va_arg(ap, struct hfa12); |
| 243 | + printf("%.1f,%.1f", x.a, x.b); |
| 244 | + } |
| 245 | + else if (match(&s, "%hfa13")) { |
| 246 | + struct hfa13 x = va_arg(ap, struct hfa13); |
| 247 | + printf("%.1f,%.1f", x.a, x.c); |
| 248 | + } |
| 249 | + else if (match(&s, "%hfa14")) { |
| 250 | + struct hfa14 x = va_arg(ap, struct hfa14); |
| 251 | + printf("%.1f,%.1f", x.a, x.d); |
| 252 | + } |
| 253 | + else if (match(&s, "%hfa21")) { |
| 254 | + struct hfa21 x = va_arg(ap, struct hfa21); |
| 255 | + printf("%.1f,%.1f", x.a, x.a); |
| 256 | + } |
| 257 | + else if (match(&s, "%hfa22")) { |
| 258 | + struct hfa22 x = va_arg(ap, struct hfa22); |
| 259 | + printf("%.1f,%.1f", x.a, x.b); |
| 260 | + } |
| 261 | + else if (match(&s, "%hfa23")) { |
| 262 | + struct hfa23 x = va_arg(ap, struct hfa23); |
| 263 | + printf("%.1f,%.1f", x.a, x.c); |
| 264 | + } |
| 265 | + else if (match(&s, "%hfa24")) { |
| 266 | + struct hfa24 x = va_arg(ap, struct hfa24); |
| 267 | + printf("%.1f,%.1f", x.a, x.d); |
| 268 | + } |
| 269 | + else if (match(&s, "%hfa31")) { |
| 270 | + struct hfa31 x = va_arg(ap, struct hfa31); |
| 271 | + printf("%.1Lf,%.1Lf", x.a, x.a); |
| 272 | + } |
| 273 | + else if (match(&s, "%hfa32")) { |
| 274 | + struct hfa32 x = va_arg(ap, struct hfa32); |
| 275 | + printf("%.1Lf,%.1Lf", x.a, x.b); |
| 276 | + } |
| 277 | + else if (match(&s, "%hfa33")) { |
| 278 | + struct hfa33 x = va_arg(ap, struct hfa33); |
| 279 | + printf("%.1Lf,%.1Lf", x.a, x.c); |
| 280 | + } |
| 281 | + else if (match(&s, "%hfa34")) { |
| 282 | + struct hfa34 x = va_arg(ap, struct hfa34); |
| 283 | + printf("%.1Lf,%.1Lf", x.a, x.d); |
| 284 | + } |
| 285 | + else |
| 286 | + putchar(*s); |
| 287 | + } |
| 288 | + putchar('\n'); |
| 289 | +} |
| 290 | + |
| 291 | +void stdarg(void) |
| 292 | +{ |
| 293 | + printf("stdarg:\n"); |
| 294 | + myprintf("%9s %9s %9s %9s %9s %9s", s9, s9, s9, s9, s9, s9); |
| 295 | + myprintf("%7s %9s %9s %9s %9s %9s", s7, s9, s9, s9, s9, s9); |
| 296 | + |
| 297 | + myprintf("HFA long double:"); |
| 298 | + myprintf("%hfa34 %hfa34 %hfa34 %hfa34", hfa34, hfa34, hfa34, hfa34); |
| 299 | + myprintf("%hfa33 %hfa34 %hfa34 %hfa34", hfa33, hfa34, hfa34, hfa34); |
| 300 | + myprintf("%hfa32 %hfa34 %hfa34 %hfa34", hfa32, hfa34, hfa34, hfa34); |
| 301 | + myprintf("%hfa31 %hfa34 %hfa34 %hfa34", hfa31, hfa34, hfa34, hfa34); |
| 302 | + |
| 303 | + myprintf("%hfa32 %hfa33 %hfa33 %hfa33 %hfa33", |
| 304 | + hfa32, hfa33, hfa33, hfa33, hfa33); |
| 305 | + myprintf("%hfa31 %hfa33 %hfa33 %hfa33 %hfa33", |
| 306 | + hfa31, hfa33, hfa33, hfa33, hfa33); |
| 307 | + myprintf("%hfa33 %hfa33 %hfa33 %hfa33", |
| 308 | + hfa33, hfa33, hfa33, hfa33); |
| 309 | + |
| 310 | + myprintf("%hfa34 %hfa32 %hfa32 %hfa32 %hfa32", |
| 311 | + hfa34, hfa32, hfa32, hfa32, hfa32); |
| 312 | + myprintf("%hfa33 %hfa32 %hfa32 %hfa32 %hfa32", |
| 313 | + hfa33, hfa32, hfa32, hfa32, hfa32); |
| 314 | + |
| 315 | + myprintf("%hfa34 %hfa32 %hfa31 %hfa31 %hfa31 %hfa31", |
| 316 | + hfa34, hfa32, hfa31, hfa31, hfa31, hfa31); |
| 317 | + |
| 318 | + myprintf("HFA double:"); |
| 319 | + myprintf("%hfa24 %hfa24 %hfa24 %hfa24", hfa24, hfa24, hfa24, hfa24); |
| 320 | + myprintf("%hfa23 %hfa24 %hfa24 %hfa24", hfa23, hfa24, hfa24, hfa24); |
| 321 | + myprintf("%hfa22 %hfa24 %hfa24 %hfa24", hfa22, hfa24, hfa24, hfa24); |
| 322 | + myprintf("%hfa21 %hfa24 %hfa24 %hfa24", hfa21, hfa24, hfa24, hfa24); |
| 323 | + |
| 324 | + myprintf("%hfa22 %hfa23 %hfa23 %hfa23 %hfa23", |
| 325 | + hfa22, hfa23, hfa23, hfa23, hfa23); |
| 326 | + myprintf("%hfa21 %hfa23 %hfa23 %hfa23 %hfa23", |
| 327 | + hfa21, hfa23, hfa23, hfa23, hfa23); |
| 328 | + myprintf("%hfa23 %hfa23 %hfa23 %hfa23", |
| 329 | + hfa23, hfa23, hfa23, hfa23); |
| 330 | + |
| 331 | + myprintf("%hfa24 %hfa22 %hfa22 %hfa22 %hfa22", |
| 332 | + hfa24, hfa22, hfa22, hfa22, hfa22); |
| 333 | + myprintf("%hfa23 %hfa22 %hfa22 %hfa22 %hfa22", |
| 334 | + hfa23, hfa22, hfa22, hfa22, hfa22); |
| 335 | + |
| 336 | + myprintf("%hfa24 %hfa22 %hfa21 %hfa21 %hfa21 %hfa21", |
| 337 | + hfa24, hfa22, hfa21, hfa21, hfa21, hfa21); |
| 338 | + |
| 339 | + myprintf("HFA float:"); |
| 340 | + myprintf("%hfa14 %hfa14 %hfa14 %hfa14", hfa14, hfa14, hfa14, hfa14); |
| 341 | + myprintf("%hfa13 %hfa14 %hfa14 %hfa14", hfa13, hfa14, hfa14, hfa14); |
| 342 | + myprintf("%hfa12 %hfa14 %hfa14 %hfa14", hfa12, hfa14, hfa14, hfa14); |
| 343 | + myprintf("%hfa11 %hfa14 %hfa14 %hfa14", hfa11, hfa14, hfa14, hfa14); |
| 344 | + |
| 345 | + myprintf("%hfa12 %hfa13 %hfa13 %hfa13 %hfa13", |
| 346 | + hfa12, hfa13, hfa13, hfa13, hfa13); |
| 347 | + myprintf("%hfa11 %hfa13 %hfa13 %hfa13 %hfa13", |
| 348 | + hfa11, hfa13, hfa13, hfa13, hfa13); |
| 349 | + myprintf("%hfa13 %hfa13 %hfa13 %hfa13", |
| 350 | + hfa13, hfa13, hfa13, hfa13); |
| 351 | + |
| 352 | + myprintf("%hfa14 %hfa12 %hfa12 %hfa12 %hfa12", |
| 353 | + hfa14, hfa12, hfa12, hfa12, hfa12); |
| 354 | + myprintf("%hfa13 %hfa12 %hfa12 %hfa12 %hfa12", |
| 355 | + hfa13, hfa12, hfa12, hfa12, hfa12); |
| 356 | + |
| 357 | + myprintf("%hfa14 %hfa12 %hfa11 %hfa11 %hfa11 %hfa11", |
| 358 | + hfa14, hfa12, hfa11, hfa11, hfa11, hfa11); |
| 359 | +} |
| 360 | + |
| 361 | +void pll(unsigned long long x) |
| 362 | +{ |
| 363 | + printf("%llx\n", x); |
| 364 | +} |
| 365 | + |
| 366 | +void movi(void) |
| 367 | +{ |
| 368 | + printf("MOVI:\n"); |
| 369 | + pll(0); |
| 370 | + pll(0xabcd); |
| 371 | + pll(0xabcd0000); |
| 372 | + pll(0xabcd00000000); |
| 373 | + pll(0xabcd000000000000); |
| 374 | + pll(0xffffabcd); |
| 375 | + pll(0xabcdffff); |
| 376 | + pll(0xffffffffffffabcd); |
| 377 | + pll(0xffffffffabcdffff); |
| 378 | + pll(0xffffabcdffffffff); |
| 379 | + pll(0xabcdffffffffffff); |
| 380 | + pll(0xaaaaaaaa); |
| 381 | + pll(0x5555555555555555); |
| 382 | + pll(0x77777777); |
| 383 | + pll(0x3333333333333333); |
| 384 | + pll(0xf8f8f8f8); |
| 385 | + pll(0x1e1e1e1e1e1e1e1e); |
| 386 | + pll(0x3f803f80); |
| 387 | + pll(0x01ff01ff01ff01ff); |
| 388 | + pll(0x007fffc0); |
| 389 | + pll(0x03fff80003fff800); |
| 390 | + pll(0x0007fffffffffe00); |
| 391 | +} |
| 392 | + |
| 393 | +void pcs(void) |
| 394 | +{ |
| 395 | + arg(); |
| 396 | + ret(); |
| 397 | + stdarg(); |
| 398 | + movi(); |
| 399 | +} |
| 400 | + |
| 401 | +int main() |
| 402 | +{ |
| 403 | + pcs(); |
| 404 | + return 0; |
| 405 | +} |