Article View: pl.comp.lang.asm
Article #2552Re: [1/3 NTG] C - Optymalizacje wstawkami
From: "Bogdan (bogdro)
Date: Wed, 13 Feb 2019 20:38
Date: Wed, 13 Feb 2019 20:38
60 lines
1666 bytes
1666 bytes
W dniu 12.02.2019 o 21:23, Bogdan (bogdro) pisze: [...] >> call _QueryPerformanceCounter@4 >> subl $4, %esp >> movl $2137483647, %ecx >> leal 143(%esp), %ebx >> leal 133(%esp), %edi >> movb $0, 143(%esp) >> .p2align 4,,10 >> L2: >> movl %ecx, %eax >> subl $1, %ebx >> imull %esi >> movl %ecx, %eax >> sarl $31, %eax >> sarl $2, %edx >> subl %eax, %edx >> leal (%edx,%edx,4), %eax >> addl %eax, %eax >> subl %eax, %ecx >> orl $48, %ecx >> cmpl %edi, %ebx >> movb %cl, (%ebx) >> movl %edx, %ecx >> jne L2 >> leal 72(%esp), %eax >> movl %eax, (%esp) >> call _QueryPerformanceCounter@4 >> subl $4, %esp >> >> >> Zakładam, że cała akcja dzieje się pomiędzy dwoma wywołaniami QueryPerformanceCounter. > > > Tak, poza "subl $4, %esp", rzecz jasna (usuwanie argumentów ze stosu). > > >> Da się tu coś istotnego wywalić? >> Na moje oko (skłute składnią AT&T :D) kompilator wyłapał i uwzględnił sąsiadujące modulo i dzielenie przez 10. >> A wtedy - nic tu się nie urwie (ponad poziom szumu). > > > No, można byłoby przestać używać pamięci, a wziąć jakiś nieużywany > rejestr, np. EBP. Autokorekta: za bardzo się przykleiłem do poprzedniej funkcji, wyliczającej tylko modulo, a ta funkcja przerabia liczbę na znaki. Oczywiście jedno odniesienie do pamięci jest tu potrzebne - do miejsca, gdzie będzie wynik. [...] -- Pozdrawiam/Regards - Bogdan (GNU/Linux & FreeDOS) Kurs asemblera x86 (DOS, GNU/Linux): http://bogdro.evai.pl Grupy dyskusyjne o asm: pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32 www.Xiph.org www.TorProject.org Soft(EN): http://bogdro.evai.pl/soft
Message-ID:
<5c64721b$0$501$65785112@news.neostrada.pl>
Path:
polish.pugleaf.net!archive.newsdeef.eu!apf1.newsdeef.eu!not-for-mail
References:
<30292520-12bd-49f0-b5ce-39c9af378a4c@googlegroups.com> <5c5b41d7$0$501$65785112@news.neostrada.pl> <781a3ad8-10bb-42aa-939f-dc6c11efa783@googlegroups.com> <5c5df439$0$476$65785112@news.neostrada.pl> <0f221c6c-4754-475f-a906-373a1fba35db@googlegroups.com> <5c632b27$0$488$65785112@news.neostrada.pl>