From d7151e66d10131930a4f3e6a350f60110cf8f758 Mon Sep 17 00:00:00 2001 From: pagefault <> Date: Fri, 7 Sep 2001 23:33:19 +0000 Subject: [PATCH] Code optimisations --- zsnes/src/linux/copyvwin.asm | 27 ++++++++++++++++++--------- zsnes/src/linux/sdlintrf.asm | 6 ++++-- zsnes/src/win/copyvwin.asm | 27 ++++++++++++++++++--------- zsnes/src/win/winintrf.asm | 6 ++++-- 4 files changed, 44 insertions(+), 22 deletions(-) diff --git a/zsnes/src/linux/copyvwin.asm b/zsnes/src/linux/copyvwin.asm index 8f2e786e..f193180a 100644 --- a/zsnes/src/linux/copyvwin.asm +++ b/zsnes/src/linux/copyvwin.asm @@ -251,7 +251,8 @@ NEWSYM copy640x480x16bwin .fslloop mov dword[edi],0 add edi,4 - loop .fslloop + dec ecx + jnz .fslloop add edi,[AddEndBytes] inc ebx dec dl @@ -844,7 +845,8 @@ Process2xSaIwin: .nextb mov dword[ebx],0FFFFFFFFh add ebx,4 - loop .nextb + dec ecx + jnz .nextb pop ebx jmp .returninterp .ignorehr @@ -896,7 +898,8 @@ Process2xSaIwin: .loop mov dword[es:edi],0 add edi,4 - loop .loop + dec ecx + jnz .loop pop es emms ret @@ -1091,7 +1094,8 @@ MMXInterpolwin: .fslloop mov dword[edi],0 add edi,4 - loop .fslloop + dec ecx + jnz .fslloop add edi,[AddEndBytes] inc ebx mov ecx,64 @@ -1282,7 +1286,8 @@ NEWSYM interpolate640x480x16bwin add esi,2 add edi,4 add edx,4 - loop .a + dec ecx + jnz .a add esi,66 add edi,[AddEndBytes] add edi,4 @@ -1314,7 +1319,8 @@ NEWSYM interpolate640x480x16bwin add esi,2 add edi,4 add edx,4 - loop .c + dec ecx + jnz .c add edi,4 add edi,[AddEndBytes] mov edx,[spritetablea] @@ -1324,7 +1330,8 @@ NEWSYM interpolate640x480x16bwin mov [edi],eax add edx,4 add edi,4 - loop .d + dec ecx + jnz .d add esi,66 inc dword[InterPtr] add edi,[AddEndBytes] @@ -1384,7 +1391,8 @@ NEWSYM interpolate640x480x16bwin .fslloop mov dword[edi],0 add edi,4 - loop .fslloop + dec ecx + jnz .fslloop add edi,[AddEndBytes] inc ebx dec dl @@ -1421,7 +1429,8 @@ NEWSYM interpolate640x480x16bwin .fslloop2 mov dword[edi],0 add edi,4 - loop .fslloop2 + dec ecx + jnz .fslloop2 add edi,[AddEndBytes] dec byte[lineleft] jnz near .loopab diff --git a/zsnes/src/linux/sdlintrf.asm b/zsnes/src/linux/sdlintrf.asm index fd317d78..0b96facf 100644 --- a/zsnes/src/linux/sdlintrf.asm +++ b/zsnes/src/linux/sdlintrf.asm @@ -654,7 +654,8 @@ NEWSYM Get_Dir ;.noslash mov [eax],dl inc eax - loop .loop + dec ecx + jnz .loop popad ret @@ -897,7 +898,8 @@ NEWSYM vidpastecopyscr ; GUI screen render mov bx,[GUICPC+ebx*2] mov [eax+edx*2],bx dec edx - loop .loop + dec ecx + jnz .loop .no16bconv popad jmp DrawScreen diff --git a/zsnes/src/win/copyvwin.asm b/zsnes/src/win/copyvwin.asm index 2d4f935e..88fd8e9a 100644 --- a/zsnes/src/win/copyvwin.asm +++ b/zsnes/src/win/copyvwin.asm @@ -251,7 +251,8 @@ NEWSYM copy640x480x16bwin .fslloop mov dword[edi],0 add edi,4 - loop .fslloop + dec ecx + jnz .fslloop add edi,[AddEndBytes] inc ebx dec dl @@ -844,7 +845,8 @@ Process2xSaIwin: .nextb mov dword[ebx],0FFFFFFFFh add ebx,4 - loop .nextb + dec ecx + jnz .nextb pop ebx jmp .returninterp .ignorehr @@ -896,7 +898,8 @@ Process2xSaIwin: .loop mov dword[es:edi],0 add edi,4 - loop .loop + dec ecx + jnz .loop pop es emms ret @@ -1091,7 +1094,8 @@ MMXInterpolwin: .fslloop mov dword[edi],0 add edi,4 - loop .fslloop + dec ecx + jnz .fslloop add edi,[AddEndBytes] inc ebx mov ecx,64 @@ -1282,7 +1286,8 @@ NEWSYM interpolate640x480x16bwin add esi,2 add edi,4 add edx,4 - loop .a + dec ecx + jnz .a add esi,66 add edi,[AddEndBytes] add edi,4 @@ -1314,7 +1319,8 @@ NEWSYM interpolate640x480x16bwin add esi,2 add edi,4 add edx,4 - loop .c + dec ecx + jnz .c add edi,4 add edi,[AddEndBytes] mov edx,[spritetablea] @@ -1324,7 +1330,8 @@ NEWSYM interpolate640x480x16bwin mov [edi],eax add edx,4 add edi,4 - loop .d + dec ecx + jnz .d add esi,66 inc dword[InterPtr] add edi,[AddEndBytes] @@ -1384,7 +1391,8 @@ NEWSYM interpolate640x480x16bwin .fslloop mov dword[edi],0 add edi,4 - loop .fslloop + dec ecx + jnz .fslloop add edi,[AddEndBytes] inc ebx dec dl @@ -1421,7 +1429,8 @@ NEWSYM interpolate640x480x16bwin .fslloop2 mov dword[edi],0 add edi,4 - loop .fslloop2 + dec ecx + jnz .fslloop2 add edi,[AddEndBytes] dec byte[lineleft] jnz near .loopab diff --git a/zsnes/src/win/winintrf.asm b/zsnes/src/win/winintrf.asm index b565fca9..2421b07b 100644 --- a/zsnes/src/win/winintrf.asm +++ b/zsnes/src/win/winintrf.asm @@ -818,7 +818,8 @@ NEWSYM Get_Dir .noslash mov [eax],dl inc eax - loop .loop + dec ecx + jnz .loop popad push edx call _getdrive @@ -1183,7 +1184,8 @@ NEWSYM vidpastecopyscr ; GUI screen render mov bx,[GUICPC+ebx*2] mov [eax+edx*2],bx dec edx - loop .loop + dec ecx + jnz .loop .no16bconv popad jmp DrawScreen