modernc.org/ccgo/v3@v3.16.14/lib/testdata/tcc-0.9.27/tests/tests2/73_arm64.c (about) 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 <stdint.h> 6 #include <stdio.h> 7 8 struct s1 { char x[1]; } s1 = { "0" }; 9 struct s2 { char x[2]; } s2 = { "12" }; 10 struct s3 { char x[3]; } s3 = { "345" }; 11 struct s4 { char x[4]; } s4 = { "6789" }; 12 struct s5 { char x[5]; } s5 = { "abcde" }; 13 struct s6 { char x[6]; } s6 = { "fghijk" }; 14 struct s7 { char x[7]; } s7 = { "lmnopqr" }; 15 struct s8 { char x[8]; } s8 = { "stuvwxyz" }; 16 struct s9 { char x[9]; } s9 = { "ABCDEFGHI" }; 17 struct s10 { char x[10]; } s10 = { "JKLMNOPQRS" }; 18 struct s11 { char x[11]; } s11 = { "TUVWXYZ0123" }; 19 struct s12 { char x[12]; } s12 = { "456789abcdef" }; 20 struct s13 { char x[13]; } s13 = { "ghijklmnopqrs" }; 21 struct s14 { char x[14]; } s14 = { "tuvwxyzABCDEFG" }; 22 struct s15 { char x[15]; } s15 = { "HIJKLMNOPQRSTUV" }; 23 struct s16 { char x[16]; } s16 = { "WXYZ0123456789ab" }; 24 struct s17 { char x[17]; } s17 = { "cdefghijklmnopqrs" }; 25 26 struct hfa11 { float a; } hfa11 = { 11.1 }; 27 struct hfa12 { float a, b; } hfa12 = { 12.1, 12.2 }; 28 struct hfa13 { float a, b, c; } hfa13 = { 13.1, 13.2, 13.3 }; 29 struct hfa14 { float a, b, c, d; } hfa14 = { 14.1, 14.2, 14.3, 14.4 }; 30 31 struct hfa21 { double a; } hfa21 = { 21.1 }; 32 struct hfa22 { double a, b; } hfa22 = { 22.1, 22.2 }; 33 struct hfa23 { double a, b, c; } hfa23 = { 23.1, 23.2, 23.3 }; 34 struct hfa24 { double a, b, c, d; } hfa24 = { 24.1, 24.2, 24.3, 24.4 }; 35 36 struct hfa31 { long double a; } hfa31 = { 31.1 }; 37 struct hfa32 { long double a, b; } hfa32 = { 32.1, 32.2 }; 38 struct hfa33 { long double a, b, c; } hfa33 = { 33.1, 33.2, 33.3 }; 39 struct hfa34 { long double a, b, c, d; } hfa34 = { 34.1, 34.2, 34.3, 34.4 }; 40 41 void fa_s1(struct s1 a) { printf("%.1s\n", a.x); } 42 void fa_s2(struct s2 a) { printf("%.2s\n", a.x); } 43 void fa_s3(struct s3 a) { printf("%.3s\n", a.x); } 44 void fa_s4(struct s4 a) { printf("%.4s\n", a.x); } 45 void fa_s5(struct s5 a) { printf("%.5s\n", a.x); } 46 void fa_s6(struct s6 a) { printf("%.6s\n", a.x); } 47 void fa_s7(struct s7 a) { printf("%.7s\n", a.x); } 48 void fa_s8(struct s8 a) { printf("%.8s\n", a.x); } 49 void fa_s9(struct s9 a) { printf("%.9s\n", a.x); } 50 void fa_s10(struct s10 a) { printf("%.10s\n", a.x); } 51 void fa_s11(struct s11 a) { printf("%.11s\n", a.x); } 52 void fa_s12(struct s12 a) { printf("%.12s\n", a.x); } 53 void fa_s13(struct s13 a) { printf("%.13s\n", a.x); } 54 void fa_s14(struct s14 a) { printf("%.14s\n", a.x); } 55 void fa_s15(struct s15 a) { printf("%.15s\n", a.x); } 56 void fa_s16(struct s16 a) { printf("%.16s\n", a.x); } 57 void fa_s17(struct s17 a) { printf("%.17s\n", a.x); } 58 59 void fa_hfa11(struct hfa11 a) 60 { printf("%.1f\n", a.a); } 61 void fa_hfa12(struct hfa12 a) 62 { printf("%.1f %.1f\n", a.a, a.a); } 63 void fa_hfa13(struct hfa13 a) 64 { printf("%.1f %.1f %.1f\n", a.a, a.b, a.c); } 65 void fa_hfa14(struct hfa14 a) 66 { printf("%.1f %.1f %.1f %.1f\n", a.a, a.b, a.c, a.d); } 67 68 void fa_hfa21(struct hfa21 a) 69 { printf("%.1f\n", a.a); } 70 void fa_hfa22(struct hfa22 a) 71 { printf("%.1f %.1f\n", a.a, a.a); } 72 void fa_hfa23(struct hfa23 a) 73 { printf("%.1f %.1f %.1f\n", a.a, a.b, a.c); } 74 void fa_hfa24(struct hfa24 a) 75 { printf("%.1f %.1f %.1f %.1f\n", a.a, a.b, a.c, a.d); } 76 77 void fa_hfa31(struct hfa31 a) 78 { printf("%.1Lf\n", a.a); } 79 void fa_hfa32(struct hfa32 a) 80 { printf("%.1Lf %.1Lf\n", a.a, a.a); } 81 void fa_hfa33(struct hfa33 a) 82 { printf("%.1Lf %.1Lf %.1Lf\n", a.a, a.b, a.c); } 83 void fa_hfa34(struct hfa34 a) 84 { printf("%.1Lf %.1Lf %.1Lf %.1Lf\n", a.a, a.b, a.c, a.d); } 85 86 void fa1(struct s8 a, struct s9 b, struct s10 c, struct s11 d, 87 struct s12 e, struct s13 f) 88 { 89 printf("%.3s %.3s %.3s %.3s %.3s %.3s\n", a.x, b.x, c.x, d.x, e.x, f.x); 90 } 91 92 void fa2(struct s9 a, struct s10 b, struct s11 c, struct s12 d, 93 struct s13 e, struct s14 f) 94 { 95 printf("%.3s %.3s %.3s %.3s %.3s %.3s\n", a.x, b.x, c.x, d.x, e.x, f.x); 96 } 97 98 void fa3(struct hfa14 a, struct hfa23 b, struct hfa32 c) 99 { 100 printf("%.1f %.1f %.1f %.1f %.1Lf %.1Lf\n", 101 a.a, a.d, b.a, b.c, c.a, c.b); 102 } 103 104 void fa4(struct s1 a, struct hfa14 b, struct s2 c, struct hfa24 d, 105 struct s3 e, struct hfa34 f) 106 { 107 printf("%.1s %.1f %.1f %.2s %.1f %.1f %.3s %.1Lf %.1Lf\n", 108 a.x, b.a, b.d, c.x, d.a, d.d, e.x, f.a, f.d); 109 } 110 111 void arg(void) 112 { 113 printf("Arguments:\n"); 114 fa_s1(s1); 115 fa_s2(s2); 116 fa_s3(s3); 117 fa_s4(s4); 118 fa_s5(s5); 119 fa_s6(s6); 120 fa_s7(s7); 121 fa_s8(s8); 122 fa_s9(s9); 123 fa_s10(s10); 124 fa_s11(s11); 125 fa_s12(s12); 126 fa_s13(s13); 127 fa_s14(s14); 128 fa_s15(s15); 129 fa_s16(s16); 130 fa_s17(s17); 131 fa_hfa11(hfa11); 132 fa_hfa12(hfa12); 133 fa_hfa13(hfa13); 134 fa_hfa14(hfa14); 135 fa_hfa21(hfa21); 136 fa_hfa22(hfa22); 137 fa_hfa23(hfa23); 138 fa_hfa24(hfa24); 139 fa_hfa31(hfa31); 140 fa_hfa32(hfa32); 141 fa_hfa33(hfa33); 142 fa_hfa34(hfa34); 143 fa1(s8, s9, s10, s11, s12, s13); 144 fa2(s9, s10, s11, s12, s13, s14); 145 fa3(hfa14, hfa23, hfa32); 146 fa4(s1, hfa14, s2, hfa24, s3, hfa34); 147 } 148 149 struct s1 fr_s1(void) { return s1; } 150 struct s2 fr_s2(void) { return s2; } 151 struct s3 fr_s3(void) { return s3; } 152 struct s4 fr_s4(void) { return s4; } 153 struct s5 fr_s5(void) { return s5; } 154 struct s6 fr_s6(void) { return s6; } 155 struct s7 fr_s7(void) { return s7; } 156 struct s8 fr_s8(void) { return s8; } 157 struct s9 fr_s9(void) { return s9; } 158 struct s10 fr_s10(void) { return s10; } 159 struct s11 fr_s11(void) { return s11; } 160 struct s12 fr_s12(void) { return s12; } 161 struct s13 fr_s13(void) { return s13; } 162 struct s14 fr_s14(void) { return s14; } 163 struct s15 fr_s15(void) { return s15; } 164 struct s16 fr_s16(void) { return s16; } 165 struct s17 fr_s17(void) { return s17; } 166 167 struct hfa11 fr_hfa11(void) { return hfa11; } 168 struct hfa12 fr_hfa12(void) { return hfa12; } 169 struct hfa13 fr_hfa13(void) { return hfa13; } 170 struct hfa14 fr_hfa14(void) { return hfa14; } 171 172 struct hfa21 fr_hfa21(void) { return hfa21; } 173 struct hfa22 fr_hfa22(void) { return hfa22; } 174 struct hfa23 fr_hfa23(void) { return hfa23; } 175 struct hfa24 fr_hfa24(void) { return hfa24; } 176 177 struct hfa31 fr_hfa31(void) { return hfa31; } 178 struct hfa32 fr_hfa32(void) { return hfa32; } 179 struct hfa33 fr_hfa33(void) { return hfa33; } 180 struct hfa34 fr_hfa34(void) { return hfa34; } 181 182 void ret(void) 183 { 184 struct s1 t1 = fr_s1(); 185 struct s2 t2 = fr_s2(); 186 struct s3 t3 = fr_s3(); 187 struct s4 t4 = fr_s4(); 188 struct s5 t5 = fr_s5(); 189 struct s6 t6 = fr_s6(); 190 struct s7 t7 = fr_s7(); 191 struct s8 t8 = fr_s8(); 192 struct s9 t9 = fr_s9(); 193 struct s10 t10 = fr_s10(); 194 struct s11 t11 = fr_s11(); 195 struct s12 t12 = fr_s12(); 196 struct s13 t13 = fr_s13(); 197 struct s14 t14 = fr_s14(); 198 struct s15 t15 = fr_s15(); 199 struct s16 t16 = fr_s16(); 200 struct s17 t17 = fr_s17(); 201 printf("Return values:\n"); 202 printf("%.1s\n", t1.x); 203 printf("%.2s\n", t2.x); 204 printf("%.3s\n", t3.x); 205 printf("%.4s\n", t4.x); 206 printf("%.5s\n", t5.x); 207 printf("%.6s\n", t6.x); 208 printf("%.7s\n", t7.x); 209 printf("%.8s\n", t8.x); 210 printf("%.9s\n", t9.x); 211 printf("%.10s\n", t10.x); 212 printf("%.11s\n", t11.x); 213 printf("%.12s\n", t12.x); 214 printf("%.13s\n", t13.x); 215 printf("%.14s\n", t14.x); 216 printf("%.15s\n", t15.x); 217 printf("%.16s\n", t16.x); 218 printf("%.17s\n", t17.x); 219 printf("%.1f\n", fr_hfa11().a); 220 printf("%.1f %.1f\n", fr_hfa12().a, fr_hfa12().b); 221 printf("%.1f %.1f\n", fr_hfa13().a, fr_hfa13().c); 222 printf("%.1f %.1f\n", fr_hfa14().a, fr_hfa14().d); 223 printf("%.1f\n", fr_hfa21().a); 224 printf("%.1f %.1f\n", fr_hfa22().a, fr_hfa22().b); 225 printf("%.1f %.1f\n", fr_hfa23().a, fr_hfa23().c); 226 printf("%.1f %.1f\n", fr_hfa24().a, fr_hfa24().d); 227 printf("%.1Lf\n", fr_hfa31().a); 228 printf("%.1Lf %.1Lf\n", fr_hfa32().a, fr_hfa32().b); 229 printf("%.1Lf %.1Lf\n", fr_hfa33().a, fr_hfa33().c); 230 printf("%.1Lf %.1Lf\n", fr_hfa34().a, fr_hfa34().d); 231 } 232 233 int match(const char **s, const char *f) 234 { 235 const char *p = *s; 236 for (p = *s; *f && *f == *p; f++, p++) 237 ; 238 if (!*f) { 239 *s = p - 1; 240 return 1; 241 } 242 return 0; 243 } 244 245 void myprintf(const char *format, ...) 246 { 247 const char *s; 248 va_list ap; 249 va_start(ap, format); 250 for (s = format; *s; s++) { 251 if (match(&s, "%7s")) { 252 struct s7 t7 = va_arg(ap, struct s7); 253 printf("%.7s", t7.x); 254 } 255 else if (match(&s, "%9s")) { 256 struct s9 t9 = va_arg(ap, struct s9); 257 printf("%.9s", t9.x); 258 } 259 else if (match(&s, "%hfa11")) { 260 struct hfa11 x = va_arg(ap, struct hfa11); 261 printf("%.1f,%.1f", x.a, x.a); 262 } 263 else if (match(&s, "%hfa12")) { 264 struct hfa12 x = va_arg(ap, struct hfa12); 265 printf("%.1f,%.1f", x.a, x.b); 266 } 267 else if (match(&s, "%hfa13")) { 268 struct hfa13 x = va_arg(ap, struct hfa13); 269 printf("%.1f,%.1f", x.a, x.c); 270 } 271 else if (match(&s, "%hfa14")) { 272 struct hfa14 x = va_arg(ap, struct hfa14); 273 printf("%.1f,%.1f", x.a, x.d); 274 } 275 else if (match(&s, "%hfa21")) { 276 struct hfa21 x = va_arg(ap, struct hfa21); 277 printf("%.1f,%.1f", x.a, x.a); 278 } 279 else if (match(&s, "%hfa22")) { 280 struct hfa22 x = va_arg(ap, struct hfa22); 281 printf("%.1f,%.1f", x.a, x.b); 282 } 283 else if (match(&s, "%hfa23")) { 284 struct hfa23 x = va_arg(ap, struct hfa23); 285 printf("%.1f,%.1f", x.a, x.c); 286 } 287 else if (match(&s, "%hfa24")) { 288 struct hfa24 x = va_arg(ap, struct hfa24); 289 printf("%.1f,%.1f", x.a, x.d); 290 } 291 else if (match(&s, "%hfa31")) { 292 struct hfa31 x = va_arg(ap, struct hfa31); 293 printf("%.1Lf,%.1Lf", x.a, x.a); 294 } 295 else if (match(&s, "%hfa32")) { 296 struct hfa32 x = va_arg(ap, struct hfa32); 297 printf("%.1Lf,%.1Lf", x.a, x.b); 298 } 299 else if (match(&s, "%hfa33")) { 300 struct hfa33 x = va_arg(ap, struct hfa33); 301 printf("%.1Lf,%.1Lf", x.a, x.c); 302 } 303 else if (match(&s, "%hfa34")) { 304 struct hfa34 x = va_arg(ap, struct hfa34); 305 printf("%.1Lf,%.1Lf", x.a, x.d); 306 } 307 else 308 putchar(*s); 309 } 310 putchar('\n'); 311 } 312 313 void stdarg(void) 314 { 315 printf("stdarg:\n"); 316 myprintf("%9s %9s %9s %9s %9s %9s", s9, s9, s9, s9, s9, s9); 317 myprintf("%7s %9s %9s %9s %9s %9s", s7, s9, s9, s9, s9, s9); 318 319 myprintf("HFA long double:"); 320 myprintf("%hfa34 %hfa34 %hfa34 %hfa34", hfa34, hfa34, hfa34, hfa34); 321 myprintf("%hfa33 %hfa34 %hfa34 %hfa34", hfa33, hfa34, hfa34, hfa34); 322 myprintf("%hfa32 %hfa34 %hfa34 %hfa34", hfa32, hfa34, hfa34, hfa34); 323 myprintf("%hfa31 %hfa34 %hfa34 %hfa34", hfa31, hfa34, hfa34, hfa34); 324 325 myprintf("%hfa32 %hfa33 %hfa33 %hfa33 %hfa33", 326 hfa32, hfa33, hfa33, hfa33, hfa33); 327 myprintf("%hfa31 %hfa33 %hfa33 %hfa33 %hfa33", 328 hfa31, hfa33, hfa33, hfa33, hfa33); 329 myprintf("%hfa33 %hfa33 %hfa33 %hfa33", 330 hfa33, hfa33, hfa33, hfa33); 331 332 myprintf("%hfa34 %hfa32 %hfa32 %hfa32 %hfa32", 333 hfa34, hfa32, hfa32, hfa32, hfa32); 334 myprintf("%hfa33 %hfa32 %hfa32 %hfa32 %hfa32", 335 hfa33, hfa32, hfa32, hfa32, hfa32); 336 337 myprintf("%hfa34 %hfa32 %hfa31 %hfa31 %hfa31 %hfa31", 338 hfa34, hfa32, hfa31, hfa31, hfa31, hfa31); 339 340 myprintf("HFA double:"); 341 myprintf("%hfa24 %hfa24 %hfa24 %hfa24", hfa24, hfa24, hfa24, hfa24); 342 myprintf("%hfa23 %hfa24 %hfa24 %hfa24", hfa23, hfa24, hfa24, hfa24); 343 myprintf("%hfa22 %hfa24 %hfa24 %hfa24", hfa22, hfa24, hfa24, hfa24); 344 myprintf("%hfa21 %hfa24 %hfa24 %hfa24", hfa21, hfa24, hfa24, hfa24); 345 346 myprintf("%hfa22 %hfa23 %hfa23 %hfa23 %hfa23", 347 hfa22, hfa23, hfa23, hfa23, hfa23); 348 myprintf("%hfa21 %hfa23 %hfa23 %hfa23 %hfa23", 349 hfa21, hfa23, hfa23, hfa23, hfa23); 350 myprintf("%hfa23 %hfa23 %hfa23 %hfa23", 351 hfa23, hfa23, hfa23, hfa23); 352 353 myprintf("%hfa24 %hfa22 %hfa22 %hfa22 %hfa22", 354 hfa24, hfa22, hfa22, hfa22, hfa22); 355 myprintf("%hfa23 %hfa22 %hfa22 %hfa22 %hfa22", 356 hfa23, hfa22, hfa22, hfa22, hfa22); 357 358 myprintf("%hfa24 %hfa22 %hfa21 %hfa21 %hfa21 %hfa21", 359 hfa24, hfa22, hfa21, hfa21, hfa21, hfa21); 360 361 myprintf("HFA float:"); 362 myprintf("%hfa14 %hfa14 %hfa14 %hfa14", hfa14, hfa14, hfa14, hfa14); 363 myprintf("%hfa13 %hfa14 %hfa14 %hfa14", hfa13, hfa14, hfa14, hfa14); 364 myprintf("%hfa12 %hfa14 %hfa14 %hfa14", hfa12, hfa14, hfa14, hfa14); 365 myprintf("%hfa11 %hfa14 %hfa14 %hfa14", hfa11, hfa14, hfa14, hfa14); 366 367 myprintf("%hfa12 %hfa13 %hfa13 %hfa13 %hfa13", 368 hfa12, hfa13, hfa13, hfa13, hfa13); 369 myprintf("%hfa11 %hfa13 %hfa13 %hfa13 %hfa13", 370 hfa11, hfa13, hfa13, hfa13, hfa13); 371 myprintf("%hfa13 %hfa13 %hfa13 %hfa13", 372 hfa13, hfa13, hfa13, hfa13); 373 374 myprintf("%hfa14 %hfa12 %hfa12 %hfa12 %hfa12", 375 hfa14, hfa12, hfa12, hfa12, hfa12); 376 myprintf("%hfa13 %hfa12 %hfa12 %hfa12 %hfa12", 377 hfa13, hfa12, hfa12, hfa12, hfa12); 378 379 myprintf("%hfa14 %hfa12 %hfa11 %hfa11 %hfa11 %hfa11", 380 hfa14, hfa12, hfa11, hfa11, hfa11, hfa11); 381 } 382 383 void pll(unsigned long long x) 384 { 385 printf("%llx\n", x); 386 } 387 388 void movi(void) 389 { 390 printf("MOVI:\n"); 391 pll(0); 392 pll(0xabcd); 393 pll(0xabcd0000); 394 pll(0xabcd00000000); 395 pll(0xabcd000000000000); 396 pll(0xffffabcd); 397 pll(0xabcdffff); 398 pll(0xffffffffffffabcd); 399 pll(0xffffffffabcdffff); 400 pll(0xffffabcdffffffff); 401 pll(0xabcdffffffffffff); 402 pll(0xaaaaaaaa); 403 pll(0x5555555555555555); 404 pll(0x77777777); 405 pll(0x3333333333333333); 406 pll(0xf8f8f8f8); 407 pll(0x1e1e1e1e1e1e1e1e); 408 pll(0x3f803f80); 409 pll(0x01ff01ff01ff01ff); 410 pll(0x007fffc0); 411 pll(0x03fff80003fff800); 412 pll(0x0007fffffffffe00); 413 414 pll(0xabcd1234); 415 pll(0xabcd00001234); 416 pll(0xabcd000000001234); 417 pll(0xabcd12340000); 418 pll(0xabcd000012340000); 419 pll(0xabcd123400000000); 420 pll(0xffffffffabcd1234); 421 pll(0xffffabcdffff1234); 422 pll(0xabcdffffffff1234); 423 pll(0xffffabcd1234ffff); 424 pll(0xabcdffff1234ffff); 425 pll(0xabcd1234ffffffff); 426 427 pll(0xffffef0123456789); 428 pll(0xabcdef012345ffff); 429 430 pll(0xabcdef0123456789); 431 } 432 433 static uint32_t addip0(uint32_t x) { return x + 0; } 434 static uint64_t sublp0(uint64_t x) { return x - 0; } 435 static uint32_t addip123(uint32_t x) { return x + 123; } 436 static uint64_t addlm123(uint64_t x) { return x + -123; } 437 static uint64_t sublp4095(uint64_t x) { return x - 4095; } 438 static uint32_t subim503808(uint32_t x) { return x - -503808; } 439 static uint64_t addp12345(uint64_t x) { return x + 12345; } 440 static uint32_t subp12345(uint32_t x) { return x - 12345; } 441 442 static uint32_t mvni(uint32_t x) { return 0xffffffff - x; } 443 static uint64_t negl(uint64_t x) { return 0 - x; } 444 static uint32_t rsbi123(uint32_t x) { return 123 - x; } 445 static uint64_t rsbl123(uint64_t x) { return 123 - x; } 446 447 static uint32_t andi0(uint32_t x) { return x & 0; } 448 static uint64_t andlm1(uint64_t x) { return x & -1; } 449 static uint64_t orrl0(uint64_t x) { return x | 0; } 450 static uint32_t orrim1(uint32_t x) { return x | -1; } 451 static uint32_t eori0(uint32_t x) { return x ^ 0; } 452 static uint64_t eorlm1(uint64_t x) { return x ^ -1; } 453 static uint32_t and0xf0(uint32_t x) { return x & 0xf0; } 454 static uint64_t orr0xf0(uint64_t x) { return x | 0xf0; } 455 static uint64_t eor0xf0(uint64_t x) { return x ^ 0xf0; } 456 457 static uint32_t lsli0(uint32_t x) { return x << 0; } 458 static uint32_t lsri0(uint32_t x) { return x >> 0; } 459 static int64_t asrl0(int64_t x) { return x >> 0; } 460 static uint32_t lsli1(uint32_t x) { return x << 1; } 461 static uint32_t lsli31(uint32_t x) { return x << 31; } 462 static uint64_t lsll1(uint64_t x) { return x << 1; } 463 static uint64_t lsll63(uint64_t x) { return x << 63; } 464 static uint32_t lsri1(uint32_t x) { return x >> 1; } 465 static uint32_t lsri31(uint32_t x) { return x >> 31; } 466 static uint64_t lsrl1(uint64_t x) { return x >> 1; } 467 static uint64_t lsrl63(uint64_t x) { return x >> 63; } 468 static int32_t asri1(int32_t x) { return x >> 1; } 469 static int32_t asri31(int32_t x) { return x >> 31; } 470 static int64_t asrl1(int64_t x) { return x >> 1; } 471 static int64_t asrl63(int64_t x) { return x >> 63; } 472 473 void opi(void) 474 { 475 int x = 1000; 476 pll(addip0(x)); 477 pll(sublp0(x)); 478 pll(addip123(x)); 479 pll(addlm123(x)); 480 pll(sublp4095(x)); 481 pll(subim503808(x)); 482 pll(addp12345(x)); 483 pll(subp12345(x)); 484 pll(mvni(x)); 485 pll(negl(x)); 486 pll(rsbi123(x)); 487 pll(rsbl123(x)); 488 pll(andi0(x)); 489 pll(andlm1(x)); 490 pll(orrl0(x)); 491 pll(orrim1(x)); 492 pll(eori0(x)); 493 pll(eorlm1(x)); 494 pll(and0xf0(x)); 495 pll(orr0xf0(x)); 496 pll(eor0xf0(x)); 497 pll(lsli0(x)); 498 pll(lsri0(x)); 499 pll(asrl0(x)); 500 pll(lsli1(x)); 501 pll(lsli31(x)); 502 pll(lsll1(x)); 503 pll(lsll63(x)); 504 pll(lsri1(x)); 505 pll(lsri31(x)); 506 pll(lsrl1(x)); 507 pll(lsrl63(x)); 508 pll(asri1(x)); 509 pll(asri31(x)); 510 pll(asrl1(x)); 511 pll(asrl63(x)); 512 } 513 514 void pcs(void) 515 { 516 arg(); 517 ret(); 518 stdarg(); 519 movi(); 520 opi(); 521 } 522 523 int main() 524 { 525 pcs(); 526 return 0; 527 }