Revision 347be472

View differences:

libavcodec/i386/simple_idct_mmx.c
281 281
        "packssdw %%mm0, %%mm4          \n\t" /* A2-B2  a2-b2   A3-B3   a3-b3 */\
282 282
        "movq %%mm4, 16+" #dst "        \n\t"\
283 283

  
284
#define COL_IDCT(src0, src4, src1, src5, dst, rounder, shift) \
284
#define COL_IDCT(src0, src4, src1, src5, dst, shift) \
285 285
        "movq " #src0 ", %%mm0          \n\t" /* R4     R0      r4      r0 */\
286 286
        "movq " #src4 ", %%mm1          \n\t" /* R6     R2      r6      r2 */\
287 287
        "movq " #src1 ", %%mm2          \n\t" /* R3     R1      r3      r1 */\
......
294 294
        "pmaddwd %%mm1, %%mm5           \n\t" /* C6R6+C2R2      C6r6+C2r2 */\
295 295
        "movq 40(%2), %%mm6             \n\t" /* -C2    C6      -C2     C6 */\
296 296
        "pmaddwd %%mm6, %%mm1           \n\t" /* -C2R6+C6R2     -C2r6+C6r2 */\
297
        #rounder ", %%mm4               \n\t"\
298 297
        "movq %%mm4, %%mm6              \n\t" /* C4R4+C4R0      C4r4+C4r0 */\
299 298
        "movq 48(%2), %%mm7             \n\t" /* C3     C1      C3      C1 */\
300
        #rounder ", %%mm0               \n\t"\
301 299
        "pmaddwd %%mm2, %%mm7           \n\t" /* C3R3+C1R1      C3r3+C1r1 */\
302 300
        "paddd %%mm5, %%mm4             \n\t" /* A0             a0 */\
303 301
        "psubd %%mm5, %%mm6             \n\t" /* A3             a3 */\
......
458 456
DC_COND_ROW_IDCT(  96(%0),104(%0),112(%0),120(%0), 96(%1),paddd (%2), 11)
459 457

  
460 458

  
461
//IDCT(      src0,   src4,   src1,    src5,    dst, rounder, shift)
462
COL_IDCT(    (%1), 64(%1), 32(%1),  96(%1),  0(%0),/nop, 20)
463
COL_IDCT(   8(%1), 72(%1), 40(%1), 104(%1),  4(%0),/nop, 20)
464
COL_IDCT(  16(%1), 80(%1), 48(%1), 112(%1),  8(%0),/nop, 20)
465
COL_IDCT(  24(%1), 88(%1), 56(%1), 120(%1), 12(%0),/nop, 20)
459
//IDCT(      src0,   src4,   src1,    src5,    dst, shift)
460
COL_IDCT(    (%1), 64(%1), 32(%1),  96(%1),  0(%0), 20)
461
COL_IDCT(   8(%1), 72(%1), 40(%1), 104(%1),  4(%0), 20)
462
COL_IDCT(  16(%1), 80(%1), 48(%1), 112(%1),  8(%0), 20)
463
COL_IDCT(  24(%1), 88(%1), 56(%1), 120(%1), 12(%0), 20)
466 464

  
467 465
#else
468 466

  
......
705 703
Z_COND_IDCT(  96(%0),104(%0),112(%0),120(%0), 96(%1),paddd (%2), 11, 1f)
706 704

  
707 705
#undef IDCT
708
#define IDCT(src0, src4, src1, src5, dst, rounder, shift) \
706
#define IDCT(src0, src4, src1, src5, dst, shift) \
709 707
        "movq " #src0 ", %%mm0          \n\t" /* R4     R0      r4      r0 */\
710 708
        "movq " #src4 ", %%mm1          \n\t" /* R6     R2      r6      r2 */\
711 709
        "movq " #src1 ", %%mm2          \n\t" /* R3     R1      r3      r1 */\
......
718 716
        "pmaddwd %%mm1, %%mm5           \n\t" /* C6R6+C2R2      C6r6+C2r2 */\
719 717
        "movq 40(%2), %%mm6             \n\t" /* -C2    C6      -C2     C6 */\
720 718
        "pmaddwd %%mm6, %%mm1           \n\t" /* -C2R6+C6R2     -C2r6+C6r2 */\
721
        #rounder ", %%mm4               \n\t"\
722 719
        "movq %%mm4, %%mm6              \n\t" /* C4R4+C4R0      C4r4+C4r0 */\
723 720
        "movq 48(%2), %%mm7             \n\t" /* C3     C1      C3      C1 */\
724
        #rounder ", %%mm0               \n\t"\
725 721
        "pmaddwd %%mm2, %%mm7           \n\t" /* C3R3+C1R1      C3r3+C1r1 */\
726 722
        "paddd %%mm5, %%mm4             \n\t" /* A0             a0 */\
727 723
        "psubd %%mm5, %%mm6             \n\t" /* A3             a3 */\
......
782 778
        "movd %%mm5, 80+" #dst "        \n\t"
783 779

  
784 780

  
785
//IDCT(  src0,   src4,   src1,    src5,    dst, rounder, shift)
786
IDCT(    (%1), 64(%1), 32(%1),  96(%1),  0(%0),/nop, 20)
787
IDCT(   8(%1), 72(%1), 40(%1), 104(%1),  4(%0),/nop, 20)
788
IDCT(  16(%1), 80(%1), 48(%1), 112(%1),  8(%0),/nop, 20)
789
IDCT(  24(%1), 88(%1), 56(%1), 120(%1), 12(%0),/nop, 20)
781
//IDCT(  src0,   src4,   src1,    src5,    dst, shift)
782
IDCT(    (%1), 64(%1), 32(%1),  96(%1),  0(%0), 20)
783
IDCT(   8(%1), 72(%1), 40(%1), 104(%1),  4(%0), 20)
784
IDCT(  16(%1), 80(%1), 48(%1), 112(%1),  8(%0), 20)
785
IDCT(  24(%1), 88(%1), 56(%1), 120(%1), 12(%0), 20)
790 786
        "jmp 9f                         \n\t"
791 787

  
792 788
        "#.balign 16                    \n\t"\
......
795 791
Z_COND_IDCT(  96(%0),104(%0),112(%0),120(%0), 96(%1),paddd (%2), 11, 5f)
796 792

  
797 793
#undef IDCT
798
#define IDCT(src0, src4, src1, src5, dst, rounder, shift) \
794
#define IDCT(src0, src4, src1, src5, dst, shift) \
799 795
        "movq " #src0 ", %%mm0          \n\t" /* R4     R0      r4      r0 */\
800 796
        "movq " #src4 ", %%mm1          \n\t" /* R6     R2      r6      r2 */\
801 797
        "movq " #src5 ", %%mm3          \n\t" /* R7     R5      r7      r5 */\
......
807 803
        "pmaddwd %%mm1, %%mm5           \n\t" /* C6R6+C2R2      C6r6+C2r2 */\
808 804
        "movq 40(%2), %%mm6             \n\t" /* -C2    C6      -C2     C6 */\
809 805
        "pmaddwd %%mm6, %%mm1           \n\t" /* -C2R6+C6R2     -C2r6+C6r2 */\
810
        #rounder ", %%mm4               \n\t"\
811 806
        "movq %%mm4, %%mm6              \n\t" /* C4R4+C4R0      C4r4+C4r0 */\
812
        #rounder ", %%mm0               \n\t"\
813 807
        "paddd %%mm5, %%mm4             \n\t" /* A0             a0 */\
814 808
        "psubd %%mm5, %%mm6             \n\t" /* A3             a3 */\
815 809
        "movq %%mm0, %%mm5              \n\t" /* -C4R4+C4R0     -C4r4+C4r0 */\
......
859 853
        "movd %%mm1, 64+" #dst "        \n\t"\
860 854
        "movd %%mm5, 80+" #dst "        \n\t"
861 855

  
862
//IDCT(  src0,   src4,   src1,    src5,    dst, rounder, shift)
863
IDCT(    (%1), 64(%1), 32(%1),  96(%1),  0(%0),/nop, 20)
864
IDCT(   8(%1), 72(%1), 40(%1), 104(%1),  4(%0),/nop, 20)
865
IDCT(  16(%1), 80(%1), 48(%1), 112(%1),  8(%0),/nop, 20)
866
IDCT(  24(%1), 88(%1), 56(%1), 120(%1), 12(%0),/nop, 20)
856
//IDCT(  src0,   src4,   src1,    src5,    dst, shift)
857
IDCT(    (%1), 64(%1), 32(%1),  96(%1),  0(%0), 20)
858
IDCT(   8(%1), 72(%1), 40(%1), 104(%1),  4(%0), 20)
859
IDCT(  16(%1), 80(%1), 48(%1), 112(%1),  8(%0), 20)
860
IDCT(  24(%1), 88(%1), 56(%1), 120(%1), 12(%0), 20)
867 861
        "jmp 9f                         \n\t"
868 862

  
869 863
        "#.balign 16                    \n\t"\
......
871 865
Z_COND_IDCT(  96(%0),104(%0),112(%0),120(%0), 96(%1),paddd (%2), 11, 7f)
872 866

  
873 867
#undef IDCT
874
#define IDCT(src0, src4, src1, src5, dst, rounder, shift) \
868
#define IDCT(src0, src4, src1, src5, dst, shift) \
875 869
        "movq " #src0 ", %%mm0          \n\t" /* R4     R0      r4      r0 */\
876 870
        "movq " #src5 ", %%mm3          \n\t" /* R7     R5      r7      r5 */\
877 871
        "movq 16(%2), %%mm4             \n\t" /* C4     C4      C4      C4 */\
878 872
        "pmaddwd %%mm0, %%mm4           \n\t" /* C4R4+C4R0      C4r4+C4r0 */\
879 873
        "movq 24(%2), %%mm5             \n\t" /* -C4    C4      -C4     C4 */\
880 874
        "pmaddwd %%mm5, %%mm0           \n\t" /* -C4R4+C4R0     -C4r4+C4r0 */\
881
        #rounder ", %%mm4               \n\t"\
882 875
        "movq %%mm4, %%mm6              \n\t" /* C4R4+C4R0      C4r4+C4r0 */\
883
        #rounder ", %%mm0               \n\t"\
884 876
        "movq %%mm0, %%mm5              \n\t" /* -C4R4+C4R0     -C4r4+C4r0 */\
885 877
        "movq 56(%2), %%mm1             \n\t" /* C7     C5      C7      C5 */\
886 878
        "pmaddwd %%mm3, %%mm1           \n\t" /* C7R7+C5R5      C7r7+C5r5 */\
......
927 919
        "movd %%mm5, 80+" #dst "        \n\t"
928 920

  
929 921

  
930
//IDCT(  src0,   src4,   src1,    src5,    dst, rounder, shift)
931
IDCT(    (%1), 64(%1), 32(%1),  96(%1),  0(%0),/nop, 20)
932
IDCT(   8(%1), 72(%1), 40(%1), 104(%1),  4(%0),/nop, 20)
933
IDCT(  16(%1), 80(%1), 48(%1), 112(%1),  8(%0),/nop, 20)
934
IDCT(  24(%1), 88(%1), 56(%1), 120(%1), 12(%0),/nop, 20)
922
//IDCT(  src0,   src4,   src1,    src5,    dst, shift)
923
IDCT(    (%1), 64(%1), 32(%1),  96(%1),  0(%0), 20)
924
IDCT(   8(%1), 72(%1), 40(%1), 104(%1),  4(%0), 20)
925
IDCT(  16(%1), 80(%1), 48(%1), 112(%1),  8(%0), 20)
926
IDCT(  24(%1), 88(%1), 56(%1), 120(%1), 12(%0), 20)
935 927
        "jmp 9f                         \n\t"
936 928

  
937 929
        "#.balign 16                    \n\t"\
......
939 931
Z_COND_IDCT(  96(%0),104(%0),112(%0),120(%0), 96(%1),paddd (%2), 11, 3f)
940 932

  
941 933
#undef IDCT
942
#define IDCT(src0, src4, src1, src5, dst, rounder, shift) \
934
#define IDCT(src0, src4, src1, src5, dst, shift) \
943 935
        "movq " #src0 ", %%mm0          \n\t" /* R4     R0      r4      r0 */\
944 936
        "movq " #src1 ", %%mm2          \n\t" /* R3     R1      r3      r1 */\
945 937
        "movq " #src5 ", %%mm3          \n\t" /* R7     R5      r7      r5 */\
......
947 939
        "pmaddwd %%mm0, %%mm4           \n\t" /* C4R4+C4R0      C4r4+C4r0 */\
948 940
        "movq 24(%2), %%mm5             \n\t" /* -C4    C4      -C4     C4 */\
949 941
        "pmaddwd %%mm5, %%mm0           \n\t" /* -C4R4+C4R0     -C4r4+C4r0 */\
950
        #rounder ", %%mm4               \n\t"\
951 942
        "movq %%mm4, %%mm6              \n\t" /* C4R4+C4R0      C4r4+C4r0 */\
952 943
        "movq 48(%2), %%mm7             \n\t" /* C3     C1      C3      C1 */\
953
        #rounder ", %%mm0               \n\t"\
954 944
        "pmaddwd %%mm2, %%mm7           \n\t" /* C3R3+C1R1      C3r3+C1r1 */\
955 945
        "movq %%mm0, %%mm5              \n\t" /* -C4R4+C4R0     -C4r4+C4r0 */\
956 946
        "movq 56(%2), %%mm1             \n\t" /* C7     C5      C7      C5 */\
......
1006 996
        "movd %%mm4, 64+" #dst "        \n\t"\
1007 997
        "movd %%mm5, 80+" #dst "        \n\t"
1008 998

  
1009
//IDCT(  src0,   src4,   src1,    src5,    dst, rounder, shift)
1010
IDCT(    (%1), 64(%1), 32(%1),  96(%1),  0(%0),/nop, 20)
1011
IDCT(   8(%1), 72(%1), 40(%1), 104(%1),  4(%0),/nop, 20)
1012
IDCT(  16(%1), 80(%1), 48(%1), 112(%1),  8(%0),/nop, 20)
1013
IDCT(  24(%1), 88(%1), 56(%1), 120(%1), 12(%0),/nop, 20)
999
//IDCT(  src0,   src4,   src1,    src5,    dst, shift)
1000
IDCT(    (%1), 64(%1), 32(%1),  96(%1),  0(%0), 20)
1001
IDCT(   8(%1), 72(%1), 40(%1), 104(%1),  4(%0), 20)
1002
IDCT(  16(%1), 80(%1), 48(%1), 112(%1),  8(%0), 20)
1003
IDCT(  24(%1), 88(%1), 56(%1), 120(%1), 12(%0), 20)
1014 1004
        "jmp 9f                         \n\t"
1015 1005

  
1016 1006
        "#.balign 16                    \n\t"\
1017 1007
        "3:                             \n\t"
1018 1008
#undef IDCT
1019
#define IDCT(src0, src4, src1, src5, dst, rounder, shift) \
1009
#define IDCT(src0, src4, src1, src5, dst, shift) \
1020 1010
        "movq " #src0 ", %%mm0          \n\t" /* R4     R0      r4      r0 */\
1021 1011
        "movq " #src1 ", %%mm2          \n\t" /* R3     R1      r3      r1 */\
1022 1012
        "movq 16(%2), %%mm4             \n\t" /* C4     C4      C4      C4 */\
1023 1013
        "pmaddwd %%mm0, %%mm4           \n\t" /* C4R4+C4R0      C4r4+C4r0 */\
1024 1014
        "movq 24(%2), %%mm5             \n\t" /* -C4    C4      -C4     C4 */\
1025 1015
        "pmaddwd %%mm5, %%mm0           \n\t" /* -C4R4+C4R0     -C4r4+C4r0 */\
1026
        #rounder ", %%mm4               \n\t"\
1027 1016
        "movq %%mm4, %%mm6              \n\t" /* C4R4+C4R0      C4r4+C4r0 */\
1028 1017
        "movq 48(%2), %%mm7             \n\t" /* C3     C1      C3      C1 */\
1029
        #rounder ", %%mm0               \n\t"\
1030 1018
        "pmaddwd %%mm2, %%mm7           \n\t" /* C3R3+C1R1      C3r3+C1r1 */\
1031 1019
        "movq %%mm0, %%mm5              \n\t" /* -C4R4+C4R0     -C4r4+C4r0 */\
1032 1020
        "movq 64(%2), %%mm3             \n\t"\
......
1072 1060
        "movd %%mm5, 80+" #dst "        \n\t"
1073 1061

  
1074 1062

  
1075
//IDCT(  src0,   src4,   src1,    src5,    dst, rounder, shift)
1076
IDCT(    (%1), 64(%1), 32(%1),  96(%1),  0(%0),/nop, 20)
1077
IDCT(   8(%1), 72(%1), 40(%1), 104(%1),  4(%0),/nop, 20)
1078
IDCT(  16(%1), 80(%1), 48(%1), 112(%1),  8(%0),/nop, 20)
1079
IDCT(  24(%1), 88(%1), 56(%1), 120(%1), 12(%0),/nop, 20)
1063
//IDCT(  src0,   src4,   src1,    src5,    dst, shift)
1064
IDCT(    (%1), 64(%1), 32(%1),  96(%1),  0(%0), 20)
1065
IDCT(   8(%1), 72(%1), 40(%1), 104(%1),  4(%0), 20)
1066
IDCT(  16(%1), 80(%1), 48(%1), 112(%1),  8(%0), 20)
1067
IDCT(  24(%1), 88(%1), 56(%1), 120(%1), 12(%0), 20)
1080 1068
        "jmp 9f                         \n\t"
1081 1069

  
1082 1070
        "#.balign 16                    \n\t"\
1083 1071
        "5:                             \n\t"
1084 1072
#undef IDCT
1085
#define IDCT(src0, src4, src1, src5, dst, rounder, shift) \
1073
#define IDCT(src0, src4, src1, src5, dst, shift) \
1086 1074
        "movq " #src0 ", %%mm0          \n\t" /* R4     R0      r4      r0 */\
1087 1075
        "movq " #src4 ", %%mm1          \n\t" /* R6     R2      r6      r2 */\
1088 1076
        "movq 16(%2), %%mm4             \n\t" /* C4     C4      C4      C4 */\
......
1093 1081
        "pmaddwd %%mm1, %%mm5           \n\t" /* C6R6+C2R2      C6r6+C2r2 */\
1094 1082
        "movq 40(%2), %%mm6             \n\t" /* -C2    C6      -C2     C6 */\
1095 1083
        "pmaddwd %%mm6, %%mm1           \n\t" /* -C2R6+C6R2     -C2r6+C6r2 */\
1096
        #rounder ", %%mm4               \n\t"\
1097 1084
        "movq %%mm4, %%mm6              \n\t" /* C4R4+C4R0      C4r4+C4r0 */\
1098 1085
        "paddd %%mm5, %%mm4             \n\t" /* A0             a0 */\
1099
        #rounder ", %%mm0               \n\t"\
1100 1086
        "psubd %%mm5, %%mm6             \n\t" /* A3             a3 */\
1101 1087
        "movq %%mm0, %%mm5              \n\t" /* -C4R4+C4R0     -C4r4+C4r0 */\
1102 1088
        "paddd %%mm1, %%mm0             \n\t" /* A1             a1 */\
......
1110 1096
        "movq 32(%2), %%mm7             \n\t" /* C6     C2      C6      C2 */\
1111 1097
        "pmaddwd %%mm3, %%mm7           \n\t" /* C6R6+C2R2      C6r6+C2r2 */\
1112 1098
        "pmaddwd 40(%2), %%mm3          \n\t" /* -C2R6+C6R2     -C2r6+C6r2 */\
1113
        #rounder ", %%mm1               \n\t"\
1114 1099
        "paddd %%mm1, %%mm7             \n\t" /* A0             a0 */\
1115 1100
        "paddd %%mm1, %%mm1             \n\t" /* 2C0            2c0 */\
1116
        #rounder ", %%mm2               \n\t"\
1117 1101
        "psubd %%mm7, %%mm1             \n\t" /* A3             a3 */\
1118 1102
        "paddd %%mm2, %%mm3             \n\t" /* A1             a1 */\
1119 1103
        "paddd %%mm2, %%mm2             \n\t" /* 2C1            2c1 */\
......
1140 1124
        "movq %%mm5, 80+" #dst "        \n\t"
1141 1125

  
1142 1126

  
1143
//IDCT(  src0,   src4,   src1,    src5,    dst, rounder, shift)
1144
IDCT(    0(%1), 64(%1), 32(%1),  96(%1),  0(%0),/nop, 20)
1145
//IDCT(   8(%1), 72(%1), 40(%1), 104(%1),  4(%0),/nop, 20)
1146
IDCT(  16(%1), 80(%1), 48(%1), 112(%1),  8(%0),/nop, 20)
1147
//IDCT(  24(%1), 88(%1), 56(%1), 120(%1), 12(%0),/nop, 20)
1127
//IDCT(  src0,   src4,   src1,    src5,    dst, shift)
1128
IDCT(    0(%1), 64(%1), 32(%1),  96(%1),  0(%0), 20)
1129
//IDCT(   8(%1), 72(%1), 40(%1), 104(%1),  4(%0), 20)
1130
IDCT(  16(%1), 80(%1), 48(%1), 112(%1),  8(%0), 20)
1131
//IDCT(  24(%1), 88(%1), 56(%1), 120(%1), 12(%0), 20)
1148 1132
        "jmp 9f                         \n\t"
1149 1133

  
1150 1134

  
1151 1135
        "#.balign 16                    \n\t"\
1152 1136
        "1:                             \n\t"
1153 1137
#undef IDCT
1154
#define IDCT(src0, src4, src1, src5, dst, rounder, shift) \
1138
#define IDCT(src0, src4, src1, src5, dst, shift) \
1155 1139
        "movq " #src0 ", %%mm0          \n\t" /* R4     R0      r4      r0 */\
1156 1140
        "movq " #src4 ", %%mm1          \n\t" /* R6     R2      r6      r2 */\
1157 1141
        "movq " #src1 ", %%mm2          \n\t" /* R3     R1      r3      r1 */\
......
1163 1147
        "pmaddwd %%mm1, %%mm5           \n\t" /* C6R6+C2R2      C6r6+C2r2 */\
1164 1148
        "movq 40(%2), %%mm6             \n\t" /* -C2    C6      -C2     C6 */\
1165 1149
        "pmaddwd %%mm6, %%mm1           \n\t" /* -C2R6+C6R2     -C2r6+C6r2 */\
1166
        #rounder ", %%mm4               \n\t"\
1167 1150
        "movq %%mm4, %%mm6              \n\t" /* C4R4+C4R0      C4r4+C4r0 */\
1168 1151
        "movq 48(%2), %%mm7             \n\t" /* C3     C1      C3      C1 */\
1169
        #rounder ", %%mm0               \n\t"\
1170 1152
        "pmaddwd %%mm2, %%mm7           \n\t" /* C3R3+C1R1      C3r3+C1r1 */\
1171 1153
        "paddd %%mm5, %%mm4             \n\t" /* A0             a0 */\
1172 1154
        "psubd %%mm5, %%mm6             \n\t" /* A3             a3 */\
......
1216 1198
        "movd %%mm5, 80+" #dst "        \n\t"
1217 1199

  
1218 1200

  
1219
//IDCT(  src0,   src4,   src1,    src5,    dst, rounder, shift)
1220
IDCT(    (%1), 64(%1), 32(%1),  96(%1),  0(%0),/nop, 20)
1221
IDCT(   8(%1), 72(%1), 40(%1), 104(%1),  4(%0),/nop, 20)
1222
IDCT(  16(%1), 80(%1), 48(%1), 112(%1),  8(%0),/nop, 20)
1223
IDCT(  24(%1), 88(%1), 56(%1), 120(%1), 12(%0),/nop, 20)
1201
//IDCT(  src0,   src4,   src1,    src5,    dst, shift)
1202
IDCT(    (%1), 64(%1), 32(%1),  96(%1),  0(%0), 20)
1203
IDCT(   8(%1), 72(%1), 40(%1), 104(%1),  4(%0), 20)
1204
IDCT(  16(%1), 80(%1), 48(%1), 112(%1),  8(%0), 20)
1205
IDCT(  24(%1), 88(%1), 56(%1), 120(%1), 12(%0), 20)
1224 1206
        "jmp 9f                         \n\t"
1225 1207

  
1226 1208

  
1227 1209
        "#.balign 16                    \n\t"
1228 1210
        "7:                             \n\t"
1229 1211
#undef IDCT
1230
#define IDCT(src0, src4, src1, src5, dst, rounder, shift) \
1212
#define IDCT(src0, src4, src1, src5, dst, shift) \
1231 1213
        "movq " #src0 ", %%mm0          \n\t" /* R4     R0      r4      r0 */\
1232 1214
        "movq 16(%2), %%mm4             \n\t" /* C4     C4      C4      C4 */\
1233 1215
        "pmaddwd %%mm0, %%mm4           \n\t" /* C4R4+C4R0      C4r4+C4r0 */\
1234 1216
        "movq 24(%2), %%mm5             \n\t" /* -C4    C4      -C4     C4 */\
1235 1217
        "pmaddwd %%mm5, %%mm0           \n\t" /* -C4R4+C4R0     -C4r4+C4r0 */\
1236
        #rounder ", %%mm4               \n\t"\
1237
        #rounder ", %%mm0               \n\t"\
1238 1218
        "psrad $" #shift ", %%mm4       \n\t"\
1239 1219
        "psrad $" #shift ", %%mm0       \n\t"\
1240 1220
        "movq 8+" #src0 ", %%mm2        \n\t" /* R4     R0      r4      r0 */\
......
1243 1223
        "movq 24(%2), %%mm7             \n\t" /* -C4    C4      -C4     C4 */\
1244 1224
        "pmaddwd %%mm7, %%mm2           \n\t" /* -C4R4+C4R0     -C4r4+C4r0 */\
1245 1225
        "movq 32(%2), %%mm7             \n\t" /* C6     C2      C6      C2 */\
1246
        #rounder ", %%mm1               \n\t"\
1247
        #rounder ", %%mm2               \n\t"\
1248 1226
        "psrad $" #shift ", %%mm1       \n\t"\
1249 1227
        "packssdw %%mm1, %%mm4          \n\t" /* A0     a0 */\
1250 1228
        "movq %%mm4, " #dst "           \n\t"\
......
1258 1236
        "movq %%mm4, 64+" #dst "        \n\t"\
1259 1237
        "movq %%mm0, 80+" #dst "        \n\t"
1260 1238

  
1261
//IDCT(  src0,   src4,   src1,    src5,    dst, rounder, shift)
1262
IDCT(   0(%1), 64(%1), 32(%1),  96(%1),  0(%0),/nop, 20)
1263
//IDCT(   8(%1), 72(%1), 40(%1), 104(%1),  4(%0),/nop, 20)
1264
IDCT(  16(%1), 80(%1), 48(%1), 112(%1),  8(%0),/nop, 20)
1265
//IDCT(  24(%1), 88(%1), 56(%1), 120(%1), 12(%0),/nop, 20)
1239
//IDCT(  src0,   src4,   src1,    src5,    dst, shift)
1240
IDCT(   0(%1), 64(%1), 32(%1),  96(%1),  0(%0), 20)
1241
//IDCT(   8(%1), 72(%1), 40(%1), 104(%1),  4(%0), 20)
1242
IDCT(  16(%1), 80(%1), 48(%1), 112(%1),  8(%0), 20)
1243
//IDCT(  24(%1), 88(%1), 56(%1), 120(%1), 12(%0), 20)
1266 1244

  
1267 1245

  
1268 1246
#endif

Also available in: Unified diff