`push' instructions (was: Bug fixes)

Tue, 17 Jun 1997 00:42:15 +0200 (MET DST)


According to PredatorZeta:
> 
> Just little clarifying.....:))
> No. Surely not on 80x86 machines. Look this (is for Pentium):
> 
> 1      push (mem)            take 2 cycles NOT pairable 
> 
> 2   a) mov (mem), reg     take 1 cycle pairable 
>                                      AGI Stall (1 cycle+cut off pairing
> system)
>      b) push reg               take 1 cycle pairable
> 
>       TOTAL:                    3 cycles
> 
> Well, is 2 (not pairable) versus 2 1/2 (not pairable) cycles.....
> However, with a manual re-ordering it could take only 1 cycle...8-))
> 
> Hope this clarify......

Partially.  As far as I understand the above, it's

    push (mem)          2 cycles not pairable

    mov (mem), reg      1 cycle pariable
    push reg            1 cycle pairable

so both versions have the same speed, but the second one
is pairable (-;whatever that means ... I guess it means that
it is executed in parallel with a floating point operation,
right?).  So the second version would be potentially faster,
but at least not slower.

It seems that I have missed something ...

Partially confused,

    Peter

 Dipl.-Phys. Peter Gerwinski, Essen, Germany, free physicist and programmer
peter.gerwinski@uni-essen.de - http://home.pages.de/~peter.gerwinski/ [970201]
 maintainer GNU Pascal [970510] - http://home.pages.de/~gnu-pascal/ [970125]


Peter Gerwinski (peter@agnes.dida.physik.uni-essen.de)

HTML conversion by Lluís de Yzaguirre i Maura
Institut de Lingüística Aplicada - Universitat "Pompeu Fabra"
e-mail: de_yza@upf.es