Ticket #1641: hq_asm.diff

File hq_asm.diff, 7.1 KB (added by cyxx, 20 years ago)
  • common/scaler/hq2x_i386.asm

    RCS file: /cvsroot/scummvm/scummvm/common/scaler/hq2x_i386.asm,v
    retrieving revision 1.1
    diff -u -r1.1 hq2x_i386.asm
     
    488488    sub     dword[moduloDst],ecx
    489489    shl     dword[moduloDst],1
    490490    mov     ebx,[ebp+srcPitch]
    491     mov     dword[prevline],0
    492491    mov     dword[nextline],ebx
    493492    mov     dword[moduloSrc],ebx
    494493    sub     dword[moduloSrc],ecx
     494    neg     ebx
     495    mov     dword[prevline],ebx
    495496.loopy
    496497    mov     ecx,[ebp+Xres]
    497     sub     ecx,2                 ; x={Xres-2, Xres-1} are special cases.
    498498    mov     dword[xcounter],ecx
    499     ; x=0 - special case
    500     mov     ebx,[prevline]
    501     movq    mm5,[esi+ebx]
    502     movq    mm6,[esi]
    503     mov     ebx,[nextline]
    504     movq    mm7,[esi+ebx]
    505     movd    eax,mm5
    506     movzx   edx,ax
    507     mov     [w1],edx
    508     mov     [w2],edx
    509     shr     eax,16
    510     mov     [w3],eax
    511     movd    eax,mm6
    512     movzx   edx,ax 
    513     mov     [w4],edx
    514     mov     [w5],edx
    515     shr     eax,16
    516     mov     [w6],eax
    517     movd    eax,mm7
    518     movzx   edx,ax 
    519     mov     [w7],edx
    520     mov     [w8],edx
    521     shr     eax,16
    522     mov     [w9],eax
    523     jmp     .flags
    524499.loopx
    525500    mov     ebx,[prevline]
    526501    movq    mm5,[esi+ebx-2]
     
    18051780    add     esi,2
    18061781    add     edi,4
    18071782    dec     dword[xcounter]
    1808     jle     .xres_2
     1783    jz      .nexty
    18091784    jmp     .loopx
    1810 .xres_2
    1811     ; x=Xres-2 - special case
    1812     jl      .xres_1
    1813     mov     ebx,[prevline]
    1814     movq    mm5,[esi+ebx-4]
    1815     movq    mm6,[esi-4]
    1816     mov     ebx,[nextline]
    1817     movq    mm7,[esi+ebx-4]
    1818     psrlq   mm5,16
    1819     psrlq   mm6,16
    1820     psrlq   mm7,16
    1821     movd    eax,mm5
    1822     movzx   edx,ax
    1823     mov     [w1],edx
    1824     shr     eax,16
    1825     mov     [w2],eax
    1826     psrlq   mm5,32
    1827     movd    eax,mm5
    1828     mov     [w3],eax
    1829     movd    eax,mm6
    1830     movzx   edx,ax
    1831     mov     [w4],edx
    1832     shr     eax,16
    1833     mov     [w5],eax
    1834     psrlq   mm6,32
    1835     movd    eax,mm6
    1836     mov     [w6],eax
    1837     movd    eax,mm7
    1838     movzx   edx,ax
    1839     mov     [w7],edx
    1840     shr     eax,16
    1841     mov     [w8],eax
    1842     psrlq   mm7,32
    1843     movd    eax,mm7
    1844     mov     [w9],eax
    1845     jmp     .flags
    1846 .xres_1
    1847     cmp     dword[xcounter],-1
    1848     jl      .nexty
    1849     ; x=Xres-1 - special case
    1850     mov     ebx,[prevline]
    1851     movq    mm5,[esi+ebx-6]
    1852     movq    mm6,[esi-6]
    1853     mov     ebx,[nextline]
    1854     movq    mm7,[esi+ebx-6]
    1855     psrlq   mm5,32
    1856     psrlq   mm6,32
    1857     psrlq   mm7,32
    1858     movd    eax,mm5
    1859     movzx   edx,ax 
    1860     mov     [w1],edx
    1861     shr     eax,16
    1862     mov     [w2],eax
    1863     mov     [w3],eax
    1864     movd    eax,mm6
    1865     movzx   edx,ax 
    1866     mov     [w4],edx
    1867     shr     eax,16
    1868     mov     [w5],eax
    1869     mov     [w6],eax
    1870     movd    eax,mm7
    1871     movzx   edx,ax 
    1872     mov     [w7],edx
    1873     shr     eax,16
    1874     mov     [w8],eax
    1875     mov     [w9],eax
    1876     jmp     .flags
    18771785.nexty
    18781786    add     esi,dword[moduloSrc]
    18791787    add     edi,dword[moduloDst]
    18801788    dec     dword[linesleft]
    18811789    jz      .fin
    18821790    mov     ebx,[ebp+srcPitch]
    1883     cmp     dword[linesleft],1
    1884     je      .lastline
    18851791    mov     dword[nextline],ebx
    18861792    neg     ebx
    18871793    mov     dword[prevline],ebx
    18881794    jmp     .loopy
    1889 .lastline
    1890     mov     dword[nextline],0
    1891     neg     ebx
    1892     mov     dword[prevline],ebx
    1893     jmp     .loopy
    18941795.fin
    18951796    emms
    18961797    popad
  • common/scaler/hq3x_i386.asm

    RCS file: /cvsroot/scummvm/scummvm/common/scaler/hq3x_i386.asm,v
    retrieving revision 1.1
    diff -u -r1.1 hq3x_i386.asm
     
    426426    mov     ecx,[ebp+Xres]
    427427    shl     ecx,1
    428428    mov     ebx,[ebp+srcPitch]
    429     mov     dword[prevline],0
    430429    mov     dword[nextline],ebx
    431430    mov     dword[moduloSrc],ebx
    432431    sub     dword[moduloSrc],ecx
     432    neg     ebx
     433    mov     dword[prevline],ebx
    433434.loopy
    434435    mov     ecx,[ebp+Xres]
    435     sub     ecx,2                 ; x={Xres-2, Xres-1} are special cases.
    436436    mov     dword[xcounter],ecx
    437     ; x=0 - special case
    438     mov     ebx,[prevline]
    439     movq    mm5,[esi+ebx]
    440     movq    mm6,[esi]
    441     mov     ebx,[nextline]
    442     movq    mm7,[esi+ebx]
    443     movd    eax,mm5
    444     movzx   edx,ax 
    445     mov     [w1],edx
    446     mov     [w2],edx
    447     shr     eax,16
    448     mov     [w3],eax
    449     movd    eax,mm6
    450     movzx   edx,ax 
    451     mov     [w4],edx
    452     mov     [w5],edx
    453     shr     eax,16
    454     mov     [w6],eax
    455     movd    eax,mm7
    456     movzx   edx,ax 
    457     mov     [w7],edx
    458     mov     [w8],edx
    459     shr     eax,16
    460     mov     [w9],eax
    461     jmp     .flags
    462437.loopx
    463438    mov     ebx,[prevline]
    464439    movq    mm5,[esi+ebx-2]
     
    23972372    add     esi,2
    23982373    add     edi,6
    23992374    dec     dword[xcounter]
    2400     jle     .xres_2
     2375    jz      .nexty
    24012376    jmp     .loopx
    2402 .xres_2
    2403     ; x=Xres-2 - special case
    2404     jl      .xres_1
    2405     mov     ebx,[prevline]
    2406     movq    mm5,[esi+ebx-4]
    2407     movq    mm6,[esi-4]
    2408     mov     ebx,[nextline]
    2409     movq    mm7,[esi+ebx-4]
    2410     psrlq   mm5,16
    2411     psrlq   mm6,16
    2412     psrlq   mm7,16
    2413     movd    eax,mm5
    2414     movzx   edx,ax
    2415     mov     [w1],edx
    2416     shr     eax,16
    2417     mov     [w2],eax
    2418     psrlq   mm5,32
    2419     movd    eax,mm5
    2420     mov     [w3],eax
    2421     movd    eax,mm6
    2422     movzx   edx,ax
    2423     mov     [w4],edx
    2424     shr     eax,16
    2425     mov     [w5],eax
    2426     psrlq   mm6,32
    2427     movd    eax,mm6
    2428     mov     [w6],eax
    2429     movd    eax,mm7
    2430     movzx   edx,ax
    2431     mov     [w7],edx
    2432     shr     eax,16
    2433     mov     [w8],eax
    2434     psrlq   mm7,32
    2435     movd    eax,mm7
    2436     mov     [w9],eax
    2437     jmp     .flags
    2438 .xres_1
    2439     cmp     dword[xcounter],-1
    2440     jl      .nexty
    2441     ; x=Xres-1 - special case
    2442     mov     ebx,[prevline]
    2443     movq    mm5,[esi+ebx-6]
    2444     movq    mm6,[esi-6]
    2445     mov     ebx,[nextline]
    2446     movq    mm7,[esi+ebx-6]
    2447     psrlq   mm5,32
    2448     psrlq   mm6,32
    2449     psrlq   mm7,32
    2450     movd    eax,mm5
    2451     movzx   edx,ax 
    2452     mov     [w1],edx
    2453     shr     eax,16
    2454     mov     [w2],eax
    2455     mov     [w3],eax
    2456     movd    eax,mm6
    2457     movzx   edx,ax 
    2458     mov     [w4],edx
    2459     shr     eax,16
    2460     mov     [w5],eax
    2461     mov     [w6],eax
    2462     movd    eax,mm7
    2463     movzx   edx,ax 
    2464     mov     [w7],edx
    2465     shr     eax,16
    2466     mov     [w8],eax
    2467     mov     [w9],eax
    2468     jmp     .flags
    24692377.nexty
    24702378    add     esi,dword[moduloSrc]
    24712379    add     edi,dword[moduloDst]
    24722380    dec     dword[linesleft]
    24732381    jz      .fin
    24742382    mov     ebx,[ebp+srcPitch]
    2475     cmp     dword[linesleft],1
    2476     je      .lastline
    24772383    mov     dword[nextline],ebx
    24782384    neg     ebx
    24792385    mov     dword[prevline],ebx
    24802386    jmp     .loopy
    2481 .lastline
    2482     mov     dword[nextline],0
    2483     neg     ebx
    2484     mov     dword[prevline],ebx
    2485     jmp     .loopy
    24862387.fin
    24872388    emms
    24882389    popad