🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.asm
Article #1803

Re: pusha/popa

#1803
From: Wojciech Muła
Date: Sun, 22 Jun 2008 23:25
41 lines
2281 bytes
On Fri, 9 May 2008 22:27:28 +0200 Wojciech Muła (czyli ja) wrote:

> "Wiktor S." <wswiktor&poczta,fm@no.spam> wrote:
> 
> > > Ile cykli wynosi opóźnienie pusha/popa na Core2?
> > 
> > Porównaj jakiś bilion nopów z taką samą ilością pusha+popa i
> > będziesz wiedział ;-)
> 
> To już prędzej wprost zmierzyć liczbę cykli za pomocą PMC.
> Ale dopiero w przyszłym tygodniu będę miał komputer z Core2 --
> wtedy przetestuję i Wam podam wyniki.

Długo to trwało, ale wreszcie znalazłem czas na parę testów na Core2 E8200.


1. Test samego PUSHA:

		mov [old_ESP], esp	// zachowanie rejestru esp
	pętla:
		pusha
		mov esp, [old_ESP]
		loop pętla

   Pętla powtarzana 10 mln razy --- ok. 14-15 cykli/iterację; trzeba wziąć
   poprawkę na obsługę pętli oraz odtwarzanie ESP, myślę że to będzie 1-2
   cykle.  Dla porównania kod symulujący PUSHA złożony z szeregu pojedynczych
   instrukcji PUSH wykonuje się w czasie ok. 12-16 cykli, więc nieco szybciej.


2. Test pary PUSHA/POPA:

	pętla:
		pushal
		popal
		loop pętla

   Pętla powtarzana 10 mln razy --- 19-20 cykli/iterację.  [Prawie] równoważy
   kod złożony z instrukcji PUSH i POP potrzebuje trochę mniej, bo 15-19 cykli.

w.
Technical Details
Message-ID: <20080623012501.0bd14695@cat.tac>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!wsisiz.edu.pl!newsfeed.neostrada.pl!atlantis.news.neostrada.pl!news.neostrada.pl!not-for-mail
References: <20080507205055.7d137227.wojciech_mula@poczta.null.onet.pl.invalid> <fvvs9d$8ge$1@news.onet.pl> <20080509222728.d222f33f.wojciech_mula@poczta.null.onet.pl.invalid>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!wsisiz.edu.pl!newsfeed.neostrada.pl!atlantis.news.neostrada.pl!news.neostrada.pl!not-for-mail
From: Wojciech Muła
 <wojciech_mula@poczta.null.onet.pl.invalid>
Newsgroups: pl.comp.lang.asm
Subject: Re: pusha/popa
Date: Mon, 23 Jun 2008 01:25:01 +0200
Organization: http://www.republika.pl/wmula
Lines: 50
Message-ID: <20080623012501.0bd14695@cat.tac>
References: <20080507205055.7d137227.wojciech_mula@poczta.null.onet.pl.invalid> <fvvs9d$8ge$1@news.onet.pl> <20080509222728.d222f33f.wojciech_mula@poczta.null.onet.pl.invalid>
NNTP-Posting-Host: aeau250.neoplus.adsl.tpnet.pl
Mime-Version: 1.0
X-Trace: nemesis.news.neostrada.pl 1214177534 26490 79.186.20.250 (22 Jun 2008 23:32:14 GMT)
X-Complaints-To: usenet@news.neostrada.pl
NNTP-Posting-Date: Sun, 22 Jun 2008 23:32:14 +0000 (UTC)
X-Newsreader: Claws Mail 3.4.0 (GTK+ 2.12.10; i486-pc-linux-gnu)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit