qbe

Internal scc patchset buffer for QBE
Log | Files | Refs | README | LICENSE

vararg2.ssa (21736B)


      1 export function $qbeprint0(l %fmt, ...) {
      2 @start
      3 	%fmtdbl =l alloc4 4
      4 	%fmtint =l alloc4 4
      5 	%emptys =l alloc4 4
      6 	storew 2122789, %fmtint
      7 	storew 2123557, %fmtdbl
      8 	storew 0, %emptys
      9 	%vp =l alloc8 32
     10 	%fmt1 =l add 1, %fmt
     11 	vastart %vp
     12 @loop
     13 	%p =l phi @start %fmt1, @casef %p1, @cased %p1
     14 	%c =w loadsb %p
     15 	%p1 =l add 3, %p
     16 	jnz %c, @loop1, @end
     17 @loop1
     18 	%isg =w ceqw %c, 103
     19 	jnz %isg, @casef, @cased
     20 @casef
     21 	%dbl =d vaarg %vp
     22 	%r =w call $printf(l %fmtdbl, ..., d %dbl)
     23 	jmp @loop
     24 @cased
     25 	%int =w vaarg %vp
     26 	%r =w call $printf(l %fmtint, ..., w %int)
     27 	jmp @loop
     28 @end
     29 	%r =w call $puts(l %emptys)
     30 	ret
     31 }
     32 
     33 export function $qbecall0(l %fmt, ...) {
     34 @start
     35 	%vp =l alloc8 32
     36 	vastart %vp
     37 	%r =w call $print(l %fmt, l %vp)
     38 	ret
     39 }
     40 
     41 export function $qbeprint1(w %argw0, l %fmt, ...) {
     42 @start
     43 	%fmtdbl =l alloc4 4
     44 	%fmtint =l alloc4 4
     45 	%emptys =l alloc4 4
     46 	storew 2122789, %fmtint
     47 	storew 2123557, %fmtdbl
     48 	storew 0, %emptys
     49 	%vp =l alloc8 32
     50 	%fmt1 =l add 1, %fmt
     51 	vastart %vp
     52 @loop
     53 	%p =l phi @start %fmt1, @casef %p1, @cased %p1
     54 	%c =w loadsb %p
     55 	%p1 =l add 3, %p
     56 	jnz %c, @loop1, @end
     57 @loop1
     58 	%isg =w ceqw %c, 103
     59 	jnz %isg, @casef, @cased
     60 @casef
     61 	%dbl =d vaarg %vp
     62 	%r =w call $printf(l %fmtdbl, ..., d %dbl)
     63 	jmp @loop
     64 @cased
     65 	%int =w vaarg %vp
     66 	%r =w call $printf(l %fmtint, ..., w %int)
     67 	jmp @loop
     68 @end
     69 	%r =w call $puts(l %emptys)
     70 	ret
     71 }
     72 
     73 export function $qbecall1(w %argw0, l %fmt, ...) {
     74 @start
     75 	%vp =l alloc8 32
     76 	vastart %vp
     77 	%r =w call $print(l %fmt, l %vp)
     78 	ret
     79 }
     80 
     81 export function $qbeprint2(d %argd0, l %fmt, ...) {
     82 @start
     83 	%fmtdbl =l alloc4 4
     84 	%fmtint =l alloc4 4
     85 	%emptys =l alloc4 4
     86 	storew 2122789, %fmtint
     87 	storew 2123557, %fmtdbl
     88 	storew 0, %emptys
     89 	%vp =l alloc8 32
     90 	%fmt1 =l add 1, %fmt
     91 	vastart %vp
     92 @loop
     93 	%p =l phi @start %fmt1, @casef %p1, @cased %p1
     94 	%c =w loadsb %p
     95 	%p1 =l add 3, %p
     96 	jnz %c, @loop1, @end
     97 @loop1
     98 	%isg =w ceqw %c, 103
     99 	jnz %isg, @casef, @cased
    100 @casef
    101 	%dbl =d vaarg %vp
    102 	%r =w call $printf(l %fmtdbl, ..., d %dbl)
    103 	jmp @loop
    104 @cased
    105 	%int =w vaarg %vp
    106 	%r =w call $printf(l %fmtint, ..., w %int)
    107 	jmp @loop
    108 @end
    109 	%r =w call $puts(l %emptys)
    110 	ret
    111 }
    112 
    113 export function $qbecall2(d %argd0, l %fmt, ...) {
    114 @start
    115 	%vp =l alloc8 32
    116 	vastart %vp
    117 	%r =w call $print(l %fmt, l %vp)
    118 	ret
    119 }
    120 
    121 export function $qbeprint3(w %argw0, w %argw1, w %argw2, w %argw3, l %fmt, ...) {
    122 @start
    123 	%fmtdbl =l alloc4 4
    124 	%fmtint =l alloc4 4
    125 	%emptys =l alloc4 4
    126 	storew 2122789, %fmtint
    127 	storew 2123557, %fmtdbl
    128 	storew 0, %emptys
    129 	%vp =l alloc8 32
    130 	%fmt1 =l add 1, %fmt
    131 	vastart %vp
    132 @loop
    133 	%p =l phi @start %fmt1, @casef %p1, @cased %p1
    134 	%c =w loadsb %p
    135 	%p1 =l add 3, %p
    136 	jnz %c, @loop1, @end
    137 @loop1
    138 	%isg =w ceqw %c, 103
    139 	jnz %isg, @casef, @cased
    140 @casef
    141 	%dbl =d vaarg %vp
    142 	%r =w call $printf(l %fmtdbl, ..., d %dbl)
    143 	jmp @loop
    144 @cased
    145 	%int =w vaarg %vp
    146 	%r =w call $printf(l %fmtint, ..., w %int)
    147 	jmp @loop
    148 @end
    149 	%r =w call $puts(l %emptys)
    150 	ret
    151 }
    152 
    153 export function $qbecall3(w %argw0, w %argw1, w %argw2, w %argw3, l %fmt, ...) {
    154 @start
    155 	%vp =l alloc8 32
    156 	vastart %vp
    157 	%r =w call $print(l %fmt, l %vp)
    158 	ret
    159 }
    160 
    161 export function $qbeprint4(d %argd0, d %argd1, d %argd2, d %argd3, d %argd4, d %argd5, l %fmt, ...) {
    162 @start
    163 	%fmtdbl =l alloc4 4
    164 	%fmtint =l alloc4 4
    165 	%emptys =l alloc4 4
    166 	storew 2122789, %fmtint
    167 	storew 2123557, %fmtdbl
    168 	storew 0, %emptys
    169 	%vp =l alloc8 32
    170 	%fmt1 =l add 1, %fmt
    171 	vastart %vp
    172 @loop
    173 	%p =l phi @start %fmt1, @casef %p1, @cased %p1
    174 	%c =w loadsb %p
    175 	%p1 =l add 3, %p
    176 	jnz %c, @loop1, @end
    177 @loop1
    178 	%isg =w ceqw %c, 103
    179 	jnz %isg, @casef, @cased
    180 @casef
    181 	%dbl =d vaarg %vp
    182 	%r =w call $printf(l %fmtdbl, ..., d %dbl)
    183 	jmp @loop
    184 @cased
    185 	%int =w vaarg %vp
    186 	%r =w call $printf(l %fmtint, ..., w %int)
    187 	jmp @loop
    188 @end
    189 	%r =w call $puts(l %emptys)
    190 	ret
    191 }
    192 
    193 export function $qbecall4(d %argd0, d %argd1, d %argd2, d %argd3, d %argd4, d %argd5, l %fmt, ...) {
    194 @start
    195 	%vp =l alloc8 32
    196 	vastart %vp
    197 	%r =w call $print(l %fmt, l %vp)
    198 	ret
    199 }
    200 
    201 export function $qbeprint5(w %argw0, w %argw1, w %argw2, w %argw3, w %argw4, d %argd0, d %argd1, d %argd2, d %argd3, d %argd4, d %argd5, d %argd6, l %fmt, ...) {
    202 @start
    203 	%fmtdbl =l alloc4 4
    204 	%fmtint =l alloc4 4
    205 	%emptys =l alloc4 4
    206 	storew 2122789, %fmtint
    207 	storew 2123557, %fmtdbl
    208 	storew 0, %emptys
    209 	%vp =l alloc8 32
    210 	%fmt1 =l add 1, %fmt
    211 	vastart %vp
    212 @loop
    213 	%p =l phi @start %fmt1, @casef %p1, @cased %p1
    214 	%c =w loadsb %p
    215 	%p1 =l add 3, %p
    216 	jnz %c, @loop1, @end
    217 @loop1
    218 	%isg =w ceqw %c, 103
    219 	jnz %isg, @casef, @cased
    220 @casef
    221 	%dbl =d vaarg %vp
    222 	%r =w call $printf(l %fmtdbl, ..., d %dbl)
    223 	jmp @loop
    224 @cased
    225 	%int =w vaarg %vp
    226 	%r =w call $printf(l %fmtint, ..., w %int)
    227 	jmp @loop
    228 @end
    229 	%r =w call $puts(l %emptys)
    230 	ret
    231 }
    232 
    233 export function $qbecall5(w %argw0, w %argw1, w %argw2, w %argw3, w %argw4, d %argd0, d %argd1, d %argd2, d %argd3, d %argd4, d %argd5, d %argd6, l %fmt, ...) {
    234 @start
    235 	%vp =l alloc8 32
    236 	vastart %vp
    237 	%r =w call $print(l %fmt, l %vp)
    238 	ret
    239 }
    240 
    241 export function $qbeprint6(w %argw0, w %argw1, w %argw2, w %argw3, w %argw4, w %argw5, w %argw6, w %argw7, w %argw8, w %argw9, d %argd0, d %argd1, d %argd2, d %argd3, d %argd4, d %argd5, d %argd6, d %argd7, d %argd8, d %argd9, l %fmt, ...) {
    242 @start
    243 	%fmtdbl =l alloc4 4
    244 	%fmtint =l alloc4 4
    245 	%emptys =l alloc4 4
    246 	storew 2122789, %fmtint
    247 	storew 2123557, %fmtdbl
    248 	storew 0, %emptys
    249 	%vp =l alloc8 32
    250 	%fmt1 =l add 1, %fmt
    251 	vastart %vp
    252 @loop
    253 	%p =l phi @start %fmt1, @casef %p1, @cased %p1
    254 	%c =w loadsb %p
    255 	%p1 =l add 3, %p
    256 	jnz %c, @loop1, @end
    257 @loop1
    258 	%isg =w ceqw %c, 103
    259 	jnz %isg, @casef, @cased
    260 @casef
    261 	%dbl =d vaarg %vp
    262 	%r =w call $printf(l %fmtdbl, ..., d %dbl)
    263 	jmp @loop
    264 @cased
    265 	%int =w vaarg %vp
    266 	%r =w call $printf(l %fmtint, ..., w %int)
    267 	jmp @loop
    268 @end
    269 	%r =w call $puts(l %emptys)
    270 	ret
    271 }
    272 
    273 export function $qbecall6(w %argw0, w %argw1, w %argw2, w %argw3, w %argw4, w %argw5, w %argw6, w %argw7, w %argw8, w %argw9, d %argd0, d %argd1, d %argd2, d %argd3, d %argd4, d %argd5, d %argd6, d %argd7, d %argd8, d %argd9, l %fmt, ...) {
    274 @start
    275 	%vp =l alloc8 32
    276 	vastart %vp
    277 	%r =w call $print(l %fmt, l %vp)
    278 	ret
    279 }
    280 
    281 export function $qbeprint7(w %argw0, w %argw1, w %argw2, w %argw3, w %argw4, w %argw5, w %argw6, w %argw7, w %argw8, l %fmt, ...) {
    282 @start
    283 	%fmtdbl =l alloc4 4
    284 	%fmtint =l alloc4 4
    285 	%emptys =l alloc4 4
    286 	storew 2122789, %fmtint
    287 	storew 2123557, %fmtdbl
    288 	storew 0, %emptys
    289 	%vp =l alloc8 32
    290 	%fmt1 =l add 1, %fmt
    291 	vastart %vp
    292 @loop
    293 	%p =l phi @start %fmt1, @casef %p1, @cased %p1
    294 	%c =w loadsb %p
    295 	%p1 =l add 3, %p
    296 	jnz %c, @loop1, @end
    297 @loop1
    298 	%isg =w ceqw %c, 103
    299 	jnz %isg, @casef, @cased
    300 @casef
    301 	%dbl =d vaarg %vp
    302 	%r =w call $printf(l %fmtdbl, ..., d %dbl)
    303 	jmp @loop
    304 @cased
    305 	%int =w vaarg %vp
    306 	%r =w call $printf(l %fmtint, ..., w %int)
    307 	jmp @loop
    308 @end
    309 	%r =w call $puts(l %emptys)
    310 	ret
    311 }
    312 
    313 export function $qbecall7(w %argw0, w %argw1, w %argw2, w %argw3, w %argw4, w %argw5, w %argw6, w %argw7, w %argw8, l %fmt, ...) {
    314 @start
    315 	%vp =l alloc8 32
    316 	vastart %vp
    317 	%r =w call $print(l %fmt, l %vp)
    318 	ret
    319 }
    320 
    321 # >>> driver
    322 # #include <stdarg.h>
    323 # #include <stdio.h>
    324 # extern void qbeprint0(char *, ...);
    325 # extern void qbecall0(char *, ...);
    326 # extern void qbeprint1(int argw0, char *, ...);
    327 # extern void qbecall1(int argw0, char *, ...);
    328 # extern void qbeprint2(double argd0, char *, ...);
    329 # extern void qbecall2(double argd0, char *, ...);
    330 # extern void qbeprint3(int argw0, int argw1, int argw2, int argw3, char *, ...);
    331 # extern void qbecall3(int argw0, int argw1, int argw2, int argw3, char *, ...);
    332 # extern void qbeprint4(double argd0, double argd1, double argd2, double argd3, double argd4, double argd5, char *, ...);
    333 # extern void qbecall4(double argd0, double argd1, double argd2, double argd3, double argd4, double argd5, char *, ...);
    334 # extern void qbeprint5(int argw0, int argw1, int argw2, int argw3, int argw4, double argd0, double argd1, double argd2, double argd3, double argd4, double argd5, double argd6, char *, ...);
    335 # extern void qbecall5(int argw0, int argw1, int argw2, int argw3, int argw4, double argd0, double argd1, double argd2, double argd3, double argd4, double argd5, double argd6, char *, ...);
    336 # extern void qbeprint6(int argw0, int argw1, int argw2, int argw3, int argw4, int argw5, int argw6, int argw7, int argw8, int argw9, double argd0, double argd1, double argd2, double argd3, double argd4, double argd5, double argd6, double argd7, double argd8, double argd9, char *, ...);
    337 # extern void qbecall6(int argw0, int argw1, int argw2, int argw3, int argw4, int argw5, int argw6, int argw7, int argw8, int argw9, double argd0, double argd1, double argd2, double argd3, double argd4, double argd5, double argd6, double argd7, double argd8, double argd9, char *, ...);
    338 # extern void qbeprint7(int argw0, int argw1, int argw2, int argw3, int argw4, int argw5, int argw6, int argw7, int argw8, char *, ...);
    339 # extern void qbecall7(int argw0, int argw1, int argw2, int argw3, int argw4, int argw5, int argw6, int argw7, int argw8, char *, ...);
    340 # int print(char *fmt, va_list *ap) {
    341 #    return vprintf(fmt, *ap);
    342 # }
    343 # int main() {
    344 # 	puts("# (0 int, 0 double)");
    345 # 	qbeprint0("%d \n", 3);
    346 # 	qbecall0("%d \n", 3);
    347 # 	qbeprint0("%g \n", -9.5);
    348 # 	qbecall0("%g \n", -9.5);
    349 # 	qbeprint0("%d %g \n", -5, -5.536);
    350 # 	qbecall0("%d %g \n", -5, -5.536);
    351 # 	qbeprint0("%g %g \n", 4.729, 3.534);
    352 # 	qbecall0("%g %g \n", 4.729, 3.534);
    353 # 	qbeprint0("%d %d %d %d \n", 8, -9, -2, -10);
    354 # 	qbecall0("%d %d %d %d \n", 8, -9, -2, -10);
    355 # 	qbeprint0("%g %g %g %g \n", -5.627, 0.1071, -9.469, -6.023);
    356 # 	qbecall0("%g %g %g %g \n", -5.627, 0.1071, -9.469, -6.023);
    357 # 	qbeprint0("%d %g %d %g \n", 3, 0.8988, -6, 1.785);
    358 # 	qbecall0("%d %g %d %g \n", 3, 0.8988, -6, 1.785);
    359 # 	qbeprint0("%g %g %d %d \n", 6.189, -9.87, 6, 4);
    360 # 	qbecall0("%g %g %d %d \n", 6.189, -9.87, 6, 4);
    361 # 	qbeprint0("%d %d %g %g \n", -3, -7, 9.144, -3.268);
    362 # 	qbecall0("%d %d %g %g \n", -3, -7, 9.144, -3.268);
    363 # 	qbeprint0("\n");
    364 # 	qbecall0("\n");
    365 # 	puts("# (1 int, 0 double)");
    366 # 	qbeprint1(0, "%d \n", -9);
    367 # 	qbecall1(0, "%d \n", -9);
    368 # 	qbeprint1(0, "%g \n", -8.066);
    369 # 	qbecall1(0, "%g \n", -8.066);
    370 # 	qbeprint1(0, "%d %g \n", 7, 2.075);
    371 # 	qbecall1(0, "%d %g \n", 7, 2.075);
    372 # 	qbeprint1(0, "%g %g \n", 6.143, 4.595);
    373 # 	qbecall1(0, "%g %g \n", 6.143, 4.595);
    374 # 	qbeprint1(0, "%d %d %d %d \n", 1, 10, -3, 1);
    375 # 	qbecall1(0, "%d %d %d %d \n", 1, 10, -3, 1);
    376 # 	qbeprint1(0, "%g %g %g %g \n", 6.588, 2.37, 7.234, 1.547);
    377 # 	qbecall1(0, "%g %g %g %g \n", 6.588, 2.37, 7.234, 1.547);
    378 # 	qbeprint1(0, "%d %g %d %g \n", 4, -9.084, -6, -4.212);
    379 # 	qbecall1(0, "%d %g %d %g \n", 4, -9.084, -6, -4.212);
    380 # 	qbeprint1(0, "%g %g %d %d \n", -8.404, -5.344, -8, -5);
    381 # 	qbecall1(0, "%g %g %d %d \n", -8.404, -5.344, -8, -5);
    382 # 	qbeprint1(0, "%d %d %g %g \n", 3, -3, -2.596, -5.81);
    383 # 	qbecall1(0, "%d %d %g %g \n", 3, -3, -2.596, -5.81);
    384 # 	qbeprint1(0, "\n");
    385 # 	qbecall1(0, "\n");
    386 # 	puts("# (0 int, 1 double)");
    387 # 	qbeprint2(0, "%d \n", -5);
    388 # 	qbecall2(0, "%d \n", -5);
    389 # 	qbeprint2(0, "%g \n", 8.733);
    390 # 	qbecall2(0, "%g \n", 8.733);
    391 # 	qbeprint2(0, "%d %g \n", 3, 2.183);
    392 # 	qbecall2(0, "%d %g \n", 3, 2.183);
    393 # 	qbeprint2(0, "%g %g \n", -6.577, 4.583);
    394 # 	qbecall2(0, "%g %g \n", -6.577, 4.583);
    395 # 	qbeprint2(0, "%d %d %d %d \n", -7, -3, 10, 3);
    396 # 	qbecall2(0, "%d %d %d %d \n", -7, -3, 10, 3);
    397 # 	qbeprint2(0, "%g %g %g %g \n", 1.139, 3.692, 6.857, 5.52);
    398 # 	qbecall2(0, "%g %g %g %g \n", 1.139, 3.692, 6.857, 5.52);
    399 # 	qbeprint2(0, "%d %g %d %g \n", -6, -9.358, -4, -4.645);
    400 # 	qbecall2(0, "%d %g %d %g \n", -6, -9.358, -4, -4.645);
    401 # 	qbeprint2(0, "%g %g %d %d \n", -5.78, 8.858, 8, -4);
    402 # 	qbecall2(0, "%g %g %d %d \n", -5.78, 8.858, 8, -4);
    403 # 	qbeprint2(0, "%d %d %g %g \n", 3, -2, 8.291, -0.823);
    404 # 	qbecall2(0, "%d %d %g %g \n", 3, -2, 8.291, -0.823);
    405 # 	qbeprint2(0, "\n");
    406 # 	qbecall2(0, "\n");
    407 # 	puts("# (4 int, 0 double)");
    408 # 	qbeprint3(0, 0, 0, 0, "%d \n", -5);
    409 # 	qbecall3(0, 0, 0, 0, "%d \n", -5);
    410 # 	qbeprint3(0, 0, 0, 0, "%g \n", -5.067);
    411 # 	qbecall3(0, 0, 0, 0, "%g \n", -5.067);
    412 # 	qbeprint3(0, 0, 0, 0, "%d %g \n", 1, -4.745);
    413 # 	qbecall3(0, 0, 0, 0, "%d %g \n", 1, -4.745);
    414 # 	qbeprint3(0, 0, 0, 0, "%g %g \n", 1.692, 7.956);
    415 # 	qbecall3(0, 0, 0, 0, "%g %g \n", 1.692, 7.956);
    416 # 	qbeprint3(0, 0, 0, 0, "%d %d %d %d \n", -2, -6, 10, 0);
    417 # 	qbecall3(0, 0, 0, 0, "%d %d %d %d \n", -2, -6, 10, 0);
    418 # 	qbeprint3(0, 0, 0, 0, "%g %g %g %g \n", -8.182, -9.058, -7.807, 2.549);
    419 # 	qbecall3(0, 0, 0, 0, "%g %g %g %g \n", -8.182, -9.058, -7.807, 2.549);
    420 # 	qbeprint3(0, 0, 0, 0, "%d %g %d %g \n", 6, -1.557, -9, -2.368);
    421 # 	qbecall3(0, 0, 0, 0, "%d %g %d %g \n", 6, -1.557, -9, -2.368);
    422 # 	qbeprint3(0, 0, 0, 0, "%g %g %d %d \n", 9.922, 0.5823, 10, 8);
    423 # 	qbecall3(0, 0, 0, 0, "%g %g %d %d \n", 9.922, 0.5823, 10, 8);
    424 # 	qbeprint3(0, 0, 0, 0, "%d %d %g %g \n", -10, 5, 3.634, 0.7394);
    425 # 	qbecall3(0, 0, 0, 0, "%d %d %g %g \n", -10, 5, 3.634, 0.7394);
    426 # 	qbeprint3(0, 0, 0, 0, "\n");
    427 # 	qbecall3(0, 0, 0, 0, "\n");
    428 # 	puts("# (0 int, 6 double)");
    429 # 	qbeprint4(0, 0, 0, 0, 0, 0, "%d \n", -5);
    430 # 	qbecall4(0, 0, 0, 0, 0, 0, "%d \n", -5);
    431 # 	qbeprint4(0, 0, 0, 0, 0, 0, "%g \n", 2.819);
    432 # 	qbecall4(0, 0, 0, 0, 0, 0, "%g \n", 2.819);
    433 # 	qbeprint4(0, 0, 0, 0, 0, 0, "%d %g \n", -8, -1.305);
    434 # 	qbecall4(0, 0, 0, 0, 0, 0, "%d %g \n", -8, -1.305);
    435 # 	qbeprint4(0, 0, 0, 0, 0, 0, "%g %g \n", -0.9255, 9.076);
    436 # 	qbecall4(0, 0, 0, 0, 0, 0, "%g %g \n", -0.9255, 9.076);
    437 # 	qbeprint4(0, 0, 0, 0, 0, 0, "%d %d %d %d \n", 8, -5, 0, -7);
    438 # 	qbecall4(0, 0, 0, 0, 0, 0, "%d %d %d %d \n", 8, -5, 0, -7);
    439 # 	qbeprint4(0, 0, 0, 0, 0, 0, "%g %g %g %g \n", 8.253, 7.41, -4.031, 2.779);
    440 # 	qbecall4(0, 0, 0, 0, 0, 0, "%g %g %g %g \n", 8.253, 7.41, -4.031, 2.779);
    441 # 	qbeprint4(0, 0, 0, 0, 0, 0, "%d %g %d %g \n", 2, -6.943, 6, 0.7876);
    442 # 	qbecall4(0, 0, 0, 0, 0, 0, "%d %g %d %g \n", 2, -6.943, 6, 0.7876);
    443 # 	qbeprint4(0, 0, 0, 0, 0, 0, "%g %g %d %d \n", 5.573, 0.6071, -10, -4);
    444 # 	qbecall4(0, 0, 0, 0, 0, 0, "%g %g %d %d \n", 5.573, 0.6071, -10, -4);
    445 # 	qbeprint4(0, 0, 0, 0, 0, 0, "%d %d %g %g \n", -10, 9, 7.574, 6.633);
    446 # 	qbecall4(0, 0, 0, 0, 0, 0, "%d %d %g %g \n", -10, 9, 7.574, 6.633);
    447 # 	qbeprint4(0, 0, 0, 0, 0, 0, "\n");
    448 # 	qbecall4(0, 0, 0, 0, 0, 0, "\n");
    449 # 	puts("# (5 int, 7 double)");
    450 # 	qbeprint5(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%d \n", -4);
    451 # 	qbecall5(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%d \n", -4);
    452 # 	qbeprint5(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%g \n", -8.841);
    453 # 	qbecall5(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%g \n", -8.841);
    454 # 	qbeprint5(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %g \n", 8, 8.939);
    455 # 	qbecall5(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %g \n", 8, 8.939);
    456 # 	qbeprint5(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%g %g \n", -8.287, -0.2802);
    457 # 	qbecall5(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%g %g \n", -8.287, -0.2802);
    458 # 	qbeprint5(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %d %d %d \n", -9, 5, 6, -8);
    459 # 	qbecall5(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %d %d %d \n", -9, 5, 6, -8);
    460 # 	qbeprint5(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%g %g %g %g \n", -0.4944, 0.9961, -4.699, 7.449);
    461 # 	qbecall5(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%g %g %g %g \n", -0.4944, 0.9961, -4.699, 7.449);
    462 # 	qbeprint5(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %g %d %g \n", -2, -5.764, 1, 4.599);
    463 # 	qbecall5(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %g %d %g \n", -2, -5.764, 1, 4.599);
    464 # 	qbeprint5(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%g %g %d %d \n", -5.977, -3.766, 10, 3);
    465 # 	qbecall5(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%g %g %d %d \n", -5.977, -3.766, 10, 3);
    466 # 	qbeprint5(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %d %g %g \n", -1, 0, -7.58, -5.506);
    467 # 	qbecall5(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %d %g %g \n", -1, 0, -7.58, -5.506);
    468 # 	qbeprint5(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "\n");
    469 # 	qbecall5(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "\n");
    470 # 	puts("# (10 int, 10 double)");
    471 # 	qbeprint6(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%d \n", -3);
    472 # 	qbecall6(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%d \n", -3);
    473 # 	qbeprint6(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%g \n", 1.766);
    474 # 	qbecall6(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%g \n", 1.766);
    475 # 	qbeprint6(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %g \n", -6, -5.596);
    476 # 	qbecall6(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %g \n", -6, -5.596);
    477 # 	qbeprint6(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%g %g \n", -8.58, 2.622);
    478 # 	qbecall6(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%g %g \n", -8.58, 2.622);
    479 # 	qbeprint6(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %d %d %d \n", -6, 9, 8, -9);
    480 # 	qbecall6(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %d %d %d \n", -6, 9, 8, -9);
    481 # 	qbeprint6(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%g %g %g %g \n", -5.24, 3.38, -5.715, -7.354);
    482 # 	qbecall6(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%g %g %g %g \n", -5.24, 3.38, -5.715, -7.354);
    483 # 	qbeprint6(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %g %d %g \n", 9, 1.421, -1, 5.692);
    484 # 	qbecall6(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %g %d %g \n", 9, 1.421, -1, 5.692);
    485 # 	qbeprint6(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%g %g %d %d \n", 6.15, -6.192, -8, -1);
    486 # 	qbecall6(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%g %g %d %d \n", 6.15, -6.192, -8, -1);
    487 # 	qbeprint6(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %d %g %g \n", -2, -1, 4.582, 3.467);
    488 # 	qbecall6(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %d %g %g \n", -2, -1, 4.582, 3.467);
    489 # 	qbeprint6(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "\n");
    490 # 	qbecall6(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "\n");
    491 # 	puts("# (9 int, 0 double)");
    492 # 	qbeprint7(0, 0, 0, 0, 0, 0, 0, 0, 0, "%d \n", 10);
    493 # 	qbecall7(0, 0, 0, 0, 0, 0, 0, 0, 0, "%d \n", 10);
    494 # 	qbeprint7(0, 0, 0, 0, 0, 0, 0, 0, 0, "%g \n", -8.032);
    495 # 	qbecall7(0, 0, 0, 0, 0, 0, 0, 0, 0, "%g \n", -8.032);
    496 # 	qbeprint7(0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %g \n", -2, -3.214);
    497 # 	qbecall7(0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %g \n", -2, -3.214);
    498 # 	qbeprint7(0, 0, 0, 0, 0, 0, 0, 0, 0, "%g %g \n", 7.233, -5.027);
    499 # 	qbecall7(0, 0, 0, 0, 0, 0, 0, 0, 0, "%g %g \n", 7.233, -5.027);
    500 # 	qbeprint7(0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %d %d %d \n", -7, -1, -2, -5);
    501 # 	qbecall7(0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %d %d %d \n", -7, -1, -2, -5);
    502 # 	qbeprint7(0, 0, 0, 0, 0, 0, 0, 0, 0, "%g %g %g %g \n", -5.004, 8.465, -1.137, 7.227);
    503 # 	qbecall7(0, 0, 0, 0, 0, 0, 0, 0, 0, "%g %g %g %g \n", -5.004, 8.465, -1.137, 7.227);
    504 # 	qbeprint7(0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %g %d %g \n", 1, -8.988, 10, 6.721);
    505 # 	qbecall7(0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %g %d %g \n", 1, -8.988, 10, 6.721);
    506 # 	qbeprint7(0, 0, 0, 0, 0, 0, 0, 0, 0, "%g %g %d %d \n", 9.38, 8.527, 7, -7);
    507 # 	qbecall7(0, 0, 0, 0, 0, 0, 0, 0, 0, "%g %g %d %d \n", 9.38, 8.527, 7, -7);
    508 # 	qbeprint7(0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %d %g %g \n", 0, -6, -1.979, -8.827);
    509 # 	qbecall7(0, 0, 0, 0, 0, 0, 0, 0, 0, "%d %d %g %g \n", 0, -6, -1.979, -8.827);
    510 # 	qbeprint7(0, 0, 0, 0, 0, 0, 0, 0, 0, "\n");
    511 # 	qbecall7(0, 0, 0, 0, 0, 0, 0, 0, 0, "\n");
    512 # }
    513 # <<<
    514 
    515 # >>> output
    516 # # (0 int, 0 double)
    517 # 3 
    518 # 3 
    519 # -9.5 
    520 # -9.5 
    521 # -5 -5.536 
    522 # -5 -5.536 
    523 # 4.729 3.534 
    524 # 4.729 3.534 
    525 # 8 -9 -2 -10 
    526 # 8 -9 -2 -10 
    527 # -5.627 0.1071 -9.469 -6.023 
    528 # -5.627 0.1071 -9.469 -6.023 
    529 # 3 0.8988 -6 1.785 
    530 # 3 0.8988 -6 1.785 
    531 # 6.189 -9.87 6 4 
    532 # 6.189 -9.87 6 4 
    533 # -3 -7 9.144 -3.268 
    534 # -3 -7 9.144 -3.268 
    535 # 
    536 # 
    537 # # (1 int, 0 double)
    538 # -9 
    539 # -9 
    540 # -8.066 
    541 # -8.066 
    542 # 7 2.075 
    543 # 7 2.075 
    544 # 6.143 4.595 
    545 # 6.143 4.595 
    546 # 1 10 -3 1 
    547 # 1 10 -3 1 
    548 # 6.588 2.37 7.234 1.547 
    549 # 6.588 2.37 7.234 1.547 
    550 # 4 -9.084 -6 -4.212 
    551 # 4 -9.084 -6 -4.212 
    552 # -8.404 -5.344 -8 -5 
    553 # -8.404 -5.344 -8 -5 
    554 # 3 -3 -2.596 -5.81 
    555 # 3 -3 -2.596 -5.81 
    556 # 
    557 # 
    558 # # (0 int, 1 double)
    559 # -5 
    560 # -5 
    561 # 8.733 
    562 # 8.733 
    563 # 3 2.183 
    564 # 3 2.183 
    565 # -6.577 4.583 
    566 # -6.577 4.583 
    567 # -7 -3 10 3 
    568 # -7 -3 10 3 
    569 # 1.139 3.692 6.857 5.52 
    570 # 1.139 3.692 6.857 5.52 
    571 # -6 -9.358 -4 -4.645 
    572 # -6 -9.358 -4 -4.645 
    573 # -5.78 8.858 8 -4 
    574 # -5.78 8.858 8 -4 
    575 # 3 -2 8.291 -0.823 
    576 # 3 -2 8.291 -0.823 
    577 # 
    578 # 
    579 # # (4 int, 0 double)
    580 # -5 
    581 # -5 
    582 # -5.067 
    583 # -5.067 
    584 # 1 -4.745 
    585 # 1 -4.745 
    586 # 1.692 7.956 
    587 # 1.692 7.956 
    588 # -2 -6 10 0 
    589 # -2 -6 10 0 
    590 # -8.182 -9.058 -7.807 2.549 
    591 # -8.182 -9.058 -7.807 2.549 
    592 # 6 -1.557 -9 -2.368 
    593 # 6 -1.557 -9 -2.368 
    594 # 9.922 0.5823 10 8 
    595 # 9.922 0.5823 10 8 
    596 # -10 5 3.634 0.7394 
    597 # -10 5 3.634 0.7394 
    598 # 
    599 # 
    600 # # (0 int, 6 double)
    601 # -5 
    602 # -5 
    603 # 2.819 
    604 # 2.819 
    605 # -8 -1.305 
    606 # -8 -1.305 
    607 # -0.9255 9.076 
    608 # -0.9255 9.076 
    609 # 8 -5 0 -7 
    610 # 8 -5 0 -7 
    611 # 8.253 7.41 -4.031 2.779 
    612 # 8.253 7.41 -4.031 2.779 
    613 # 2 -6.943 6 0.7876 
    614 # 2 -6.943 6 0.7876 
    615 # 5.573 0.6071 -10 -4 
    616 # 5.573 0.6071 -10 -4 
    617 # -10 9 7.574 6.633 
    618 # -10 9 7.574 6.633 
    619 # 
    620 # 
    621 # # (5 int, 7 double)
    622 # -4 
    623 # -4 
    624 # -8.841 
    625 # -8.841 
    626 # 8 8.939 
    627 # 8 8.939 
    628 # -8.287 -0.2802 
    629 # -8.287 -0.2802 
    630 # -9 5 6 -8 
    631 # -9 5 6 -8 
    632 # -0.4944 0.9961 -4.699 7.449 
    633 # -0.4944 0.9961 -4.699 7.449 
    634 # -2 -5.764 1 4.599 
    635 # -2 -5.764 1 4.599 
    636 # -5.977 -3.766 10 3 
    637 # -5.977 -3.766 10 3 
    638 # -1 0 -7.58 -5.506 
    639 # -1 0 -7.58 -5.506 
    640 # 
    641 # 
    642 # # (10 int, 10 double)
    643 # -3 
    644 # -3 
    645 # 1.766 
    646 # 1.766 
    647 # -6 -5.596 
    648 # -6 -5.596 
    649 # -8.58 2.622 
    650 # -8.58 2.622 
    651 # -6 9 8 -9 
    652 # -6 9 8 -9 
    653 # -5.24 3.38 -5.715 -7.354 
    654 # -5.24 3.38 -5.715 -7.354 
    655 # 9 1.421 -1 5.692 
    656 # 9 1.421 -1 5.692 
    657 # 6.15 -6.192 -8 -1 
    658 # 6.15 -6.192 -8 -1 
    659 # -2 -1 4.582 3.467 
    660 # -2 -1 4.582 3.467 
    661 # 
    662 # 
    663 # # (9 int, 0 double)
    664 # 10 
    665 # 10 
    666 # -8.032 
    667 # -8.032 
    668 # -2 -3.214 
    669 # -2 -3.214 
    670 # 7.233 -5.027 
    671 # 7.233 -5.027 
    672 # -7 -1 -2 -5 
    673 # -7 -1 -2 -5 
    674 # -5.004 8.465 -1.137 7.227 
    675 # -5.004 8.465 -1.137 7.227 
    676 # 1 -8.988 10 6.721 
    677 # 1 -8.988 10 6.721 
    678 # 9.38 8.527 7 -7 
    679 # 9.38 8.527 7 -7 
    680 # 0 -6 -1.979 -8.827 
    681 # 0 -6 -1.979 -8.827 
    682 # 
    683 # 
    684 # <<<