comparison i386/snowdsp_mmx.c @ 5595:9da9e00a04a5 libavcodec

cosmetics remove brain amputated mmx wrappers around sse2 macros fix name of ..._sub macro to match ..._add naming
author michael
date Sun, 26 Aug 2007 01:20:09 +0000
parents 384629ebcb93
children 051caa9c1ba5
comparison
equal deleted inserted replaced
5594:384629ebcb93 5595:9da9e00a04a5
410 snow_vertical_compose_sse2_load_add("movdqa",r,t0,t1,t2,t3) 410 snow_vertical_compose_sse2_load_add("movdqa",r,t0,t1,t2,t3)
411 411
412 #define snow_vertical_compose_sse2_add(r,t0,t1,t2,t3)\ 412 #define snow_vertical_compose_sse2_add(r,t0,t1,t2,t3)\
413 snow_vertical_compose_sse2_load_add("paddw",r,t0,t1,t2,t3) 413 snow_vertical_compose_sse2_load_add("paddw",r,t0,t1,t2,t3)
414 414
415 #define snow_vertical_compose_sse2_sub(s0,s1,s2,s3,t0,t1,t2,t3)\ 415 #define snow_vertical_compose_r2r_sub(s0,s1,s2,s3,t0,t1,t2,t3)\
416 "psubw %%"s0", %%"t0" \n\t"\ 416 "psubw %%"s0", %%"t0" \n\t"\
417 "psubw %%"s1", %%"t1" \n\t"\ 417 "psubw %%"s1", %%"t1" \n\t"\
418 "psubw %%"s2", %%"t2" \n\t"\ 418 "psubw %%"s2", %%"t2" \n\t"\
419 "psubw %%"s3", %%"t3" \n\t" 419 "psubw %%"s3", %%"t3" \n\t"
420 420
422 "movdqa %%"s0", (%%"w",%%"REG_d",2) \n\t"\ 422 "movdqa %%"s0", (%%"w",%%"REG_d",2) \n\t"\
423 "movdqa %%"s1", 16(%%"w",%%"REG_d",2) \n\t"\ 423 "movdqa %%"s1", 16(%%"w",%%"REG_d",2) \n\t"\
424 "movdqa %%"s2", 32(%%"w",%%"REG_d",2) \n\t"\ 424 "movdqa %%"s2", 32(%%"w",%%"REG_d",2) \n\t"\
425 "movdqa %%"s3", 48(%%"w",%%"REG_d",2) \n\t" 425 "movdqa %%"s3", 48(%%"w",%%"REG_d",2) \n\t"
426 426
427 #define snow_vertical_compose_sse2_sra(n,t0,t1,t2,t3)\ 427 #define snow_vertical_compose_sra(n,t0,t1,t2,t3)\
428 "psraw $"n", %%"t0" \n\t"\ 428 "psraw $"n", %%"t0" \n\t"\
429 "psraw $"n", %%"t1" \n\t"\ 429 "psraw $"n", %%"t1" \n\t"\
430 "psraw $"n", %%"t2" \n\t"\ 430 "psraw $"n", %%"t2" \n\t"\
431 "psraw $"n", %%"t3" \n\t" 431 "psraw $"n", %%"t3" \n\t"
432 432
433 #define snow_vertical_compose_sse2_r2r_add(s0,s1,s2,s3,t0,t1,t2,t3)\ 433 #define snow_vertical_compose_r2r_add(s0,s1,s2,s3,t0,t1,t2,t3)\
434 "paddw %%"s0", %%"t0" \n\t"\ 434 "paddw %%"s0", %%"t0" \n\t"\
435 "paddw %%"s1", %%"t1" \n\t"\ 435 "paddw %%"s1", %%"t1" \n\t"\
436 "paddw %%"s2", %%"t2" \n\t"\ 436 "paddw %%"s2", %%"t2" \n\t"\
437 "paddw %%"s3", %%"t3" \n\t" 437 "paddw %%"s3", %%"t3" \n\t"
438 438
462 "mov %4, %%"REG_S" \n\t" 462 "mov %4, %%"REG_S" \n\t"
463 463
464 snow_vertical_compose_sse2_load(REG_S,"xmm0","xmm2","xmm4","xmm6") 464 snow_vertical_compose_sse2_load(REG_S,"xmm0","xmm2","xmm4","xmm6")
465 snow_vertical_compose_sse2_add(REG_a,"xmm0","xmm2","xmm4","xmm6") 465 snow_vertical_compose_sse2_add(REG_a,"xmm0","xmm2","xmm4","xmm6")
466 snow_vertical_compose_sse2_move("xmm0","xmm2","xmm4","xmm6","xmm1","xmm3","xmm5","xmm7") 466 snow_vertical_compose_sse2_move("xmm0","xmm2","xmm4","xmm6","xmm1","xmm3","xmm5","xmm7")
467 snow_vertical_compose_sse2_sra("1","xmm0","xmm2","xmm4","xmm6") 467 snow_vertical_compose_sra("1","xmm0","xmm2","xmm4","xmm6")
468 snow_vertical_compose_sse2_r2r_add("xmm1","xmm3","xmm5","xmm7","xmm0","xmm2","xmm4","xmm6") 468 snow_vertical_compose_r2r_add("xmm1","xmm3","xmm5","xmm7","xmm0","xmm2","xmm4","xmm6")
469 469
470 "pcmpeqd %%xmm1, %%xmm1 \n\t" 470 "pcmpeqd %%xmm1, %%xmm1 \n\t"
471 "psllw $15, %%xmm1 \n\t" 471 "psllw $15, %%xmm1 \n\t"
472 "psrlw $14, %%xmm1 \n\t" 472 "psrlw $14, %%xmm1 \n\t"
473 "mov %5, %%"REG_a" \n\t" 473 "mov %5, %%"REG_a" \n\t"
474 474
475 snow_vertical_compose_sse2_r2r_add("xmm1","xmm1","xmm1","xmm1","xmm0","xmm2","xmm4","xmm6") 475 snow_vertical_compose_r2r_add("xmm1","xmm1","xmm1","xmm1","xmm0","xmm2","xmm4","xmm6")
476 snow_vertical_compose_sse2_sra("2","xmm0","xmm2","xmm4","xmm6") 476 snow_vertical_compose_sra("2","xmm0","xmm2","xmm4","xmm6")
477 snow_vertical_compose_sse2_load(REG_a,"xmm1","xmm3","xmm5","xmm7") 477 snow_vertical_compose_sse2_load(REG_a,"xmm1","xmm3","xmm5","xmm7")
478 snow_vertical_compose_sse2_sub("xmm0","xmm2","xmm4","xmm6","xmm1","xmm3","xmm5","xmm7") 478 snow_vertical_compose_r2r_sub("xmm0","xmm2","xmm4","xmm6","xmm1","xmm3","xmm5","xmm7")
479 snow_vertical_compose_sse2_store(REG_a,"xmm1","xmm3","xmm5","xmm7") 479 snow_vertical_compose_sse2_store(REG_a,"xmm1","xmm3","xmm5","xmm7")
480 "mov %3, %%"REG_c" \n\t" 480 "mov %3, %%"REG_c" \n\t"
481 snow_vertical_compose_sse2_load(REG_S,"xmm0","xmm2","xmm4","xmm6") 481 snow_vertical_compose_sse2_load(REG_S,"xmm0","xmm2","xmm4","xmm6")
482 snow_vertical_compose_sse2_add(REG_c,"xmm1","xmm3","xmm5","xmm7") 482 snow_vertical_compose_sse2_add(REG_c,"xmm1","xmm3","xmm5","xmm7")
483 snow_vertical_compose_sse2_sub("xmm1","xmm3","xmm5","xmm7","xmm0","xmm2","xmm4","xmm6") 483 snow_vertical_compose_r2r_sub("xmm1","xmm3","xmm5","xmm7","xmm0","xmm2","xmm4","xmm6")
484 snow_vertical_compose_sse2_store(REG_S,"xmm0","xmm2","xmm4","xmm6") 484 snow_vertical_compose_sse2_store(REG_S,"xmm0","xmm2","xmm4","xmm6")
485 "mov %2, %%"REG_a" \n\t" 485 "mov %2, %%"REG_a" \n\t"
486 486
487 "pcmpeqw %%xmm7, %%xmm7 \n\t" 487 "pcmpeqw %%xmm7, %%xmm7 \n\t"
488 "pcmpeqw %%xmm5, %%xmm5 \n\t" 488 "pcmpeqw %%xmm5, %%xmm5 \n\t"
489 "psllw $15, %%xmm7 \n\t" 489 "psllw $15, %%xmm7 \n\t"
490 "psrlw $13, %%xmm5 \n\t" 490 "psrlw $13, %%xmm5 \n\t"
491 "paddw %%xmm7, %%xmm5 \n\t" 491 "paddw %%xmm7, %%xmm5 \n\t"
492 snow_vertical_compose_sse2_r2r_add("xmm5","xmm5","xmm5","xmm5","xmm0","xmm2","xmm4","xmm6") 492 snow_vertical_compose_r2r_add("xmm5","xmm5","xmm5","xmm5","xmm0","xmm2","xmm4","xmm6")
493 "movq (%%"REG_a",%%"REG_d",2), %%xmm1 \n\t" 493 "movq (%%"REG_a",%%"REG_d",2), %%xmm1 \n\t"
494 "movq 8(%%"REG_a",%%"REG_d",2), %%xmm3 \n\t" 494 "movq 8(%%"REG_a",%%"REG_d",2), %%xmm3 \n\t"
495 "paddw %%xmm7, %%xmm1 \n\t" 495 "paddw %%xmm7, %%xmm1 \n\t"
496 "paddw %%xmm7, %%xmm3 \n\t" 496 "paddw %%xmm7, %%xmm3 \n\t"
497 "pavgw %%xmm1, %%xmm0 \n\t" 497 "pavgw %%xmm1, %%xmm0 \n\t"
500 "movq 24(%%"REG_a",%%"REG_d",2), %%xmm3 \n\t" 500 "movq 24(%%"REG_a",%%"REG_d",2), %%xmm3 \n\t"
501 "paddw %%xmm7, %%xmm1 \n\t" 501 "paddw %%xmm7, %%xmm1 \n\t"
502 "paddw %%xmm7, %%xmm3 \n\t" 502 "paddw %%xmm7, %%xmm3 \n\t"
503 "pavgw %%xmm1, %%xmm4 \n\t" 503 "pavgw %%xmm1, %%xmm4 \n\t"
504 "pavgw %%xmm3, %%xmm6 \n\t" 504 "pavgw %%xmm3, %%xmm6 \n\t"
505 snow_vertical_compose_sse2_sub("xmm7","xmm7","xmm7","xmm7","xmm0","xmm2","xmm4","xmm6") 505 snow_vertical_compose_r2r_sub("xmm7","xmm7","xmm7","xmm7","xmm0","xmm2","xmm4","xmm6")
506 snow_vertical_compose_sse2_sra("1","xmm0","xmm2","xmm4","xmm6") 506 snow_vertical_compose_sra("1","xmm0","xmm2","xmm4","xmm6")
507 snow_vertical_compose_sse2_add(REG_c,"xmm0","xmm2","xmm4","xmm6") 507 snow_vertical_compose_sse2_add(REG_c,"xmm0","xmm2","xmm4","xmm6")
508 508
509 "mov %1, %%"REG_S" \n\t" 509 "mov %1, %%"REG_S" \n\t"
510 510
511 snow_vertical_compose_sse2_sra("2","xmm0","xmm2","xmm4","xmm6") 511 snow_vertical_compose_sra("2","xmm0","xmm2","xmm4","xmm6")
512 snow_vertical_compose_sse2_add(REG_c,"xmm0","xmm2","xmm4","xmm6") 512 snow_vertical_compose_sse2_add(REG_c,"xmm0","xmm2","xmm4","xmm6")
513 snow_vertical_compose_sse2_store(REG_c,"xmm0","xmm2","xmm4","xmm6") 513 snow_vertical_compose_sse2_store(REG_c,"xmm0","xmm2","xmm4","xmm6")
514 snow_vertical_compose_sse2_add(REG_S,"xmm0","xmm2","xmm4","xmm6") 514 snow_vertical_compose_sse2_add(REG_S,"xmm0","xmm2","xmm4","xmm6")
515 snow_vertical_compose_sse2_move("xmm0","xmm2","xmm4","xmm6","xmm1","xmm3","xmm5","xmm7") 515 snow_vertical_compose_sse2_move("xmm0","xmm2","xmm4","xmm6","xmm1","xmm3","xmm5","xmm7")
516 snow_vertical_compose_sse2_sra("1","xmm0","xmm2","xmm4","xmm6") 516 snow_vertical_compose_sra("1","xmm0","xmm2","xmm4","xmm6")
517 snow_vertical_compose_sse2_r2r_add("xmm1","xmm3","xmm5","xmm7","xmm0","xmm2","xmm4","xmm6") 517 snow_vertical_compose_r2r_add("xmm1","xmm3","xmm5","xmm7","xmm0","xmm2","xmm4","xmm6")
518 snow_vertical_compose_sse2_add(REG_a,"xmm0","xmm2","xmm4","xmm6") 518 snow_vertical_compose_sse2_add(REG_a,"xmm0","xmm2","xmm4","xmm6")
519 snow_vertical_compose_sse2_store(REG_a,"xmm0","xmm2","xmm4","xmm6") 519 snow_vertical_compose_sse2_store(REG_a,"xmm0","xmm2","xmm4","xmm6")
520 520
521 "2: \n\t" 521 "2: \n\t"
522 "sub $32, %%"REG_d" \n\t" 522 "sub $32, %%"REG_d" \n\t"
537 snow_vertical_compose_mmx_load_add("movq",r,t0,t1,t2,t3) 537 snow_vertical_compose_mmx_load_add("movq",r,t0,t1,t2,t3)
538 538
539 #define snow_vertical_compose_mmx_add(r,t0,t1,t2,t3)\ 539 #define snow_vertical_compose_mmx_add(r,t0,t1,t2,t3)\
540 snow_vertical_compose_mmx_load_add("paddw",r,t0,t1,t2,t3) 540 snow_vertical_compose_mmx_load_add("paddw",r,t0,t1,t2,t3)
541 541
542 #define snow_vertical_compose_mmx_sub(s0,s1,s2,s3,t0,t1,t2,t3)\
543 snow_vertical_compose_sse2_sub(s0,s1,s2,s3,t0,t1,t2,t3)
544
545 #define snow_vertical_compose_mmx_store(w,s0,s1,s2,s3)\ 542 #define snow_vertical_compose_mmx_store(w,s0,s1,s2,s3)\
546 "movq %%"s0", (%%"w",%%"REG_d",2) \n\t"\ 543 "movq %%"s0", (%%"w",%%"REG_d",2) \n\t"\
547 "movq %%"s1", 8(%%"w",%%"REG_d",2) \n\t"\ 544 "movq %%"s1", 8(%%"w",%%"REG_d",2) \n\t"\
548 "movq %%"s2", 16(%%"w",%%"REG_d",2) \n\t"\ 545 "movq %%"s2", 16(%%"w",%%"REG_d",2) \n\t"\
549 "movq %%"s3", 24(%%"w",%%"REG_d",2) \n\t" 546 "movq %%"s3", 24(%%"w",%%"REG_d",2) \n\t"
550
551 #define snow_vertical_compose_mmx_sra(n,t0,t1,t2,t3)\
552 snow_vertical_compose_sse2_sra(n,t0,t1,t2,t3)
553
554 #define snow_vertical_compose_mmx_r2r_add(s0,s1,s2,s3,t0,t1,t2,t3)\
555 snow_vertical_compose_sse2_r2r_add(s0,s1,s2,s3,t0,t1,t2,t3)
556 547
557 #define snow_vertical_compose_mmx_move(s0,s1,s2,s3,t0,t1,t2,t3)\ 548 #define snow_vertical_compose_mmx_move(s0,s1,s2,s3,t0,t1,t2,t3)\
558 "movq %%"s0", %%"t0" \n\t"\ 549 "movq %%"s0", %%"t0" \n\t"\
559 "movq %%"s1", %%"t1" \n\t"\ 550 "movq %%"s1", %%"t1" \n\t"\
560 "movq %%"s2", %%"t2" \n\t"\ 551 "movq %%"s2", %%"t2" \n\t"\
579 "mov %4, %%"REG_S" \n\t" 570 "mov %4, %%"REG_S" \n\t"
580 571
581 snow_vertical_compose_mmx_load(REG_S,"mm0","mm2","mm4","mm6") 572 snow_vertical_compose_mmx_load(REG_S,"mm0","mm2","mm4","mm6")
582 snow_vertical_compose_mmx_add(REG_a,"mm0","mm2","mm4","mm6") 573 snow_vertical_compose_mmx_add(REG_a,"mm0","mm2","mm4","mm6")
583 snow_vertical_compose_mmx_move("mm0","mm2","mm4","mm6","mm1","mm3","mm5","mm7") 574 snow_vertical_compose_mmx_move("mm0","mm2","mm4","mm6","mm1","mm3","mm5","mm7")
584 snow_vertical_compose_mmx_sra("1","mm0","mm2","mm4","mm6") 575 snow_vertical_compose_sra("1","mm0","mm2","mm4","mm6")
585 snow_vertical_compose_mmx_r2r_add("mm1","mm3","mm5","mm7","mm0","mm2","mm4","mm6") 576 snow_vertical_compose_r2r_add("mm1","mm3","mm5","mm7","mm0","mm2","mm4","mm6")
586 577
587 "pcmpeqw %%mm1, %%mm1 \n\t" 578 "pcmpeqw %%mm1, %%mm1 \n\t"
588 "psllw $15, %%mm1 \n\t" 579 "psllw $15, %%mm1 \n\t"
589 "psrlw $14, %%mm1 \n\t" 580 "psrlw $14, %%mm1 \n\t"
590 "mov %5, %%"REG_a" \n\t" 581 "mov %5, %%"REG_a" \n\t"
591 582
592 snow_vertical_compose_mmx_r2r_add("mm1","mm1","mm1","mm1","mm0","mm2","mm4","mm6") 583 snow_vertical_compose_r2r_add("mm1","mm1","mm1","mm1","mm0","mm2","mm4","mm6")
593 snow_vertical_compose_mmx_sra("2","mm0","mm2","mm4","mm6") 584 snow_vertical_compose_sra("2","mm0","mm2","mm4","mm6")
594 snow_vertical_compose_mmx_load(REG_a,"mm1","mm3","mm5","mm7") 585 snow_vertical_compose_mmx_load(REG_a,"mm1","mm3","mm5","mm7")
595 snow_vertical_compose_mmx_sub("mm0","mm2","mm4","mm6","mm1","mm3","mm5","mm7") 586 snow_vertical_compose_r2r_sub("mm0","mm2","mm4","mm6","mm1","mm3","mm5","mm7")
596 snow_vertical_compose_mmx_store(REG_a,"mm1","mm3","mm5","mm7") 587 snow_vertical_compose_mmx_store(REG_a,"mm1","mm3","mm5","mm7")
597 "mov %3, %%"REG_c" \n\t" 588 "mov %3, %%"REG_c" \n\t"
598 snow_vertical_compose_mmx_load(REG_S,"mm0","mm2","mm4","mm6") 589 snow_vertical_compose_mmx_load(REG_S,"mm0","mm2","mm4","mm6")
599 snow_vertical_compose_mmx_add(REG_c,"mm1","mm3","mm5","mm7") 590 snow_vertical_compose_mmx_add(REG_c,"mm1","mm3","mm5","mm7")
600 snow_vertical_compose_mmx_sub("mm1","mm3","mm5","mm7","mm0","mm2","mm4","mm6") 591 snow_vertical_compose_r2r_sub("mm1","mm3","mm5","mm7","mm0","mm2","mm4","mm6")
601 snow_vertical_compose_mmx_store(REG_S,"mm0","mm2","mm4","mm6") 592 snow_vertical_compose_mmx_store(REG_S,"mm0","mm2","mm4","mm6")
602 "mov %2, %%"REG_a" \n\t" 593 "mov %2, %%"REG_a" \n\t"
603 "pcmpeqw %%mm7, %%mm7 \n\t" 594 "pcmpeqw %%mm7, %%mm7 \n\t"
604 "pcmpeqw %%mm5, %%mm5 \n\t" 595 "pcmpeqw %%mm5, %%mm5 \n\t"
605 "psllw $15, %%mm7 \n\t" 596 "psllw $15, %%mm7 \n\t"
606 "psrlw $13, %%mm5 \n\t" 597 "psrlw $13, %%mm5 \n\t"
607 "paddw %%mm7, %%mm5 \n\t" 598 "paddw %%mm7, %%mm5 \n\t"
608 snow_vertical_compose_mmx_r2r_add("mm5","mm5","mm5","mm5","mm0","mm2","mm4","mm6") 599 snow_vertical_compose_r2r_add("mm5","mm5","mm5","mm5","mm0","mm2","mm4","mm6")
609 "movq (%%"REG_a",%%"REG_d",2), %%mm1 \n\t" 600 "movq (%%"REG_a",%%"REG_d",2), %%mm1 \n\t"
610 "movq 8(%%"REG_a",%%"REG_d",2), %%mm3 \n\t" 601 "movq 8(%%"REG_a",%%"REG_d",2), %%mm3 \n\t"
611 "paddw %%mm7, %%mm1 \n\t" 602 "paddw %%mm7, %%mm1 \n\t"
612 "paddw %%mm7, %%mm3 \n\t" 603 "paddw %%mm7, %%mm3 \n\t"
613 "pavgw %%mm1, %%mm0 \n\t" 604 "pavgw %%mm1, %%mm0 \n\t"
616 "movq 24(%%"REG_a",%%"REG_d",2), %%mm3 \n\t" 607 "movq 24(%%"REG_a",%%"REG_d",2), %%mm3 \n\t"
617 "paddw %%mm7, %%mm1 \n\t" 608 "paddw %%mm7, %%mm1 \n\t"
618 "paddw %%mm7, %%mm3 \n\t" 609 "paddw %%mm7, %%mm3 \n\t"
619 "pavgw %%mm1, %%mm4 \n\t" 610 "pavgw %%mm1, %%mm4 \n\t"
620 "pavgw %%mm3, %%mm6 \n\t" 611 "pavgw %%mm3, %%mm6 \n\t"
621 snow_vertical_compose_sse2_sub("mm7","mm7","mm7","mm7","mm0","mm2","mm4","mm6") 612 snow_vertical_compose_r2r_sub("mm7","mm7","mm7","mm7","mm0","mm2","mm4","mm6")
622 snow_vertical_compose_mmx_sra("1","mm0","mm2","mm4","mm6") 613 snow_vertical_compose_sra("1","mm0","mm2","mm4","mm6")
623 snow_vertical_compose_mmx_add(REG_c,"mm0","mm2","mm4","mm6") 614 snow_vertical_compose_mmx_add(REG_c,"mm0","mm2","mm4","mm6")
624 615
625 "mov %1, %%"REG_S" \n\t" 616 "mov %1, %%"REG_S" \n\t"
626 617
627 snow_vertical_compose_mmx_sra("2","mm0","mm2","mm4","mm6") 618 snow_vertical_compose_sra("2","mm0","mm2","mm4","mm6")
628 snow_vertical_compose_mmx_add(REG_c,"mm0","mm2","mm4","mm6") 619 snow_vertical_compose_mmx_add(REG_c,"mm0","mm2","mm4","mm6")
629 snow_vertical_compose_mmx_store(REG_c,"mm0","mm2","mm4","mm6") 620 snow_vertical_compose_mmx_store(REG_c,"mm0","mm2","mm4","mm6")
630 snow_vertical_compose_mmx_add(REG_S,"mm0","mm2","mm4","mm6") 621 snow_vertical_compose_mmx_add(REG_S,"mm0","mm2","mm4","mm6")
631 snow_vertical_compose_mmx_move("mm0","mm2","mm4","mm6","mm1","mm3","mm5","mm7") 622 snow_vertical_compose_mmx_move("mm0","mm2","mm4","mm6","mm1","mm3","mm5","mm7")
632 snow_vertical_compose_mmx_sra("1","mm0","mm2","mm4","mm6") 623 snow_vertical_compose_sra("1","mm0","mm2","mm4","mm6")
633 snow_vertical_compose_mmx_r2r_add("mm1","mm3","mm5","mm7","mm0","mm2","mm4","mm6") 624 snow_vertical_compose_r2r_add("mm1","mm3","mm5","mm7","mm0","mm2","mm4","mm6")
634 snow_vertical_compose_mmx_add(REG_a,"mm0","mm2","mm4","mm6") 625 snow_vertical_compose_mmx_add(REG_a,"mm0","mm2","mm4","mm6")
635 snow_vertical_compose_mmx_store(REG_a,"mm0","mm2","mm4","mm6") 626 snow_vertical_compose_mmx_store(REG_a,"mm0","mm2","mm4","mm6")
636 627
637 "2: \n\t" 628 "2: \n\t"
638 "sub $16, %%"REG_d" \n\t" 629 "sub $16, %%"REG_d" \n\t"