Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1.  
  2. if used mmx128_mix_2
  3.  
  4. align 4
  5. mmx128_mix_2:
  6.            prefetcht1 [eax+128]
  7.            prefetcht1 [ebx+128]
  8.  
  9.            movaps xmm0, [eax]
  10.            movaps xmm1, [eax+16]
  11.            movaps xmm2, [eax+32]
  12.            movaps xmm3, [eax+48]
  13.            movaps xmm4, [eax+64]
  14.            movaps xmm5, [eax+80]
  15.            movaps xmm6, [eax+96]
  16.            movaps xmm7, [eax+112]
  17.  
  18.            paddsw xmm0, [ebx]
  19.            movaps [edi], xmm0
  20.            paddsw xmm1,[ebx+16]
  21.            movaps [edi+16], xmm1
  22.            paddsw xmm2, [ebx+32]
  23.            movaps [edi+32], xmm2
  24.            paddsw xmm3, [ebx+48]
  25.            movaps [edi+48], xmm3
  26.            paddsw xmm4, [ebx+64]
  27.            movaps [edi+64], xmm4
  28.            paddsw xmm5, [ebx+80]
  29.            movaps [edi+80], xmm5
  30.            paddsw xmm6, [ebx+96]
  31.            movaps [edi+96], xmm6
  32.            paddsw xmm7, [ebx+112]
  33.            movaps [edi+112], xmm7
  34.            ret
  35.  
  36. align 4
  37. mmx128_mix_3:
  38.            prefetcht1 [eax+128]
  39.            prefetcht1 [ebx+128]
  40.            prefetcht1 [ecx+128]
  41.  
  42.            movaps xmm0, [eax]
  43.            movaps xmm1, [eax+16]
  44.            movaps xmm2, [eax+32]
  45.            movaps xmm3, [eax+48]
  46.            movaps xmm4, [eax+64]
  47.            movaps xmm5, [eax+80]
  48.            movaps xmm6, [eax+96]
  49.            movaps xmm7, [eax+112]
  50.  
  51.            paddsw xmm0, [ebx]
  52.            paddsw xmm1, [ebx+16]
  53.            paddsw xmm2, [ebx+32]
  54.            paddsw xmm3, [ebx+48]
  55.            paddsw xmm4, [ebx+64]
  56.            paddsw xmm5, [ebx+80]
  57.            paddsw xmm6, [ebx+96]
  58.            paddsw xmm7, [ebx+112]
  59.  
  60.            paddsw xmm0, [ecx]
  61.            movaps [edi], xmm0
  62.            paddsw xmm1, [ecx+16]
  63.            movaps [edi+16], xmm1
  64.            paddsw xmm2, [ecx+32]
  65.            movaps [edi+32], xmm2
  66.            paddsw xmm3, [ecx+48]
  67.            movaps [edi+48], xmm3
  68.            paddsw xmm4, [ecx+64]
  69.            movaps [edi+64], xmm4
  70.            paddsw xmm5, [ecx+80]
  71.            movaps [edi+80], xmm5
  72.            paddsw xmm6, [ecx+96]
  73.            movaps [edi+96], xmm6
  74.            paddsw xmm7, [ecx+112]
  75.            movaps [edi+112], xmm7
  76.            ret
  77.  
  78. align 4
  79. mmx128_mix_4:
  80.            prefetcht1 [eax+128]
  81.            prefetcht1 [ebx+128]
  82.            prefetcht1 [ecx+128]
  83.            prefetcht1 [edx+128]
  84.  
  85.            movaps xmm0, [eax]
  86.            movaps xmm2, [eax+16]
  87.            movaps xmm4, [eax+32]
  88.            movaps xmm6, [eax+48]
  89.            movaps xmm1, [ebx]
  90.            movaps xmm3, [ebx+16]
  91.            movaps xmm5, [ebx+32]
  92.            movaps xmm7, [ebx+48]
  93.  
  94.            paddsw xmm0, [ecx]
  95.            paddsw xmm2, [ecx+16]
  96.            paddsw xmm4, [ecx+32]
  97.            paddsw xmm6, [ecx+48]
  98.            paddsw xmm1, [edx]
  99.            paddsw xmm3, [edx+16]
  100.            paddsw xmm5, [edx+32]
  101.            paddsw xmm7, [edx+48]
  102.  
  103.            paddsw xmm0, xmm1
  104.            movaps [edi], xmm0
  105.            paddsw xmm2, xmm3
  106.            movaps [edi+16], xmm2
  107.            paddsw xmm4, xmm5
  108.            movaps [edi+32], xmm4
  109.            paddsw xmm6, xmm7
  110.            movaps [edi+48], xmm6
  111.  
  112.            movaps xmm0, [eax+64]
  113.            movaps xmm2, [eax+80]
  114.            movaps xmm4, [eax+96]
  115.            movaps xmm6, [eax+112]
  116.  
  117.            movaps xmm1, [ebx+64]
  118.            movaps xmm3, [ebx+80]
  119.            movaps xmm5, [ebx+96]
  120.            movaps xmm7, [ebx+112]
  121.            paddsw xmm0, [ecx+64]
  122.            paddsw xmm2, [ecx+80]
  123.            paddsw xmm4, [ecx+96]
  124.            paddsw xmm6, [ecx+112]
  125.  
  126.            paddsw xmm1, [edx+64]
  127.            paddsw xmm3, [edx+80]
  128.            paddsw xmm5, [edx+96]
  129.            paddsw xmm7, [edx+112]
  130.            paddsw xmm0, xmm1
  131.            movaps [edi+64], xmm0
  132.            paddsw xmm2, xmm3
  133.            movaps [edi+80], xmm2
  134.            paddsw xmm4, xmm5
  135.            movaps [edi+96], xmm4
  136.            paddsw xmm6, xmm7
  137.            movaps [edi+112], xmm6
  138.            ret
  139. end if
  140.