* On Mon, 05 Jan 2004 at 23:46 +0100, Manfred Tremmel wrote:
Am Montag, 5. Januar 2004 05:25 schrieb David Haller:
Jep. i586 ist Pentium mit MMX (IIRC), und damit ist der Gewinn
Nö, i586 ist bereits der stinknormale Pentium ohne MMX, ebenso wie die AMD K6 CPUs, die auch kein MMX verwenden. Der Pentium mit MMX ist bereits ein i686er.
Entschuldigung - Neineineienein. Pentium mit MMX ist so ziemlich der gleiche Kern wie ohne MMX, blos eben mit den MMX-Befehlen aufgespritzt. Beides i586. i686 ist ab Pentium Pro. Das ist der, wo plötzlich alle schrien, daß er langsamer als der Pentium sei (was im Falle von Windows 95/etc. der Fall war, weil dort in gewissen Codestellen Register auf eine Art geladen wurden, die bei Pentium vorteilhaft war, den neuen Optimzer des PPro aber gewaltig durcheinander brachte, was mit ein paar Strafzyklen geahndet wurde). Als Test ein kleines C-Programm (ein Ausschnitt aus einem anderen Programm): int w, bpr; int main() { bpr=((((long)w*8+31L)/32L)*4L); return 0; } Kompiliert mit (jeweils i586 und i686 für arch eingesetzt): gcc -O2 -o test-${arch}.s -march=${arch} -S test.c (GCC: (GNU) 3.3 20030226 (prerelease) (SuSE Linux)) Wegen der Erweiterung des Integers w von int auf long kann/muss hier getrickst werden, das Kompilat für i586 behandelt negative Werte mit einem Sprung, das Kompilat für i686 verwendet den effektiveren Befehl CMOVS (move if sign). Diesen Befehl gibt es erst ab i686, wovon auch die einfache Ausführung des Programms auf einem Pentium MMX überzeugt: Peng, Illegal instruction. /apm -- GPG welcome, request public key: mailto:adalbert+key@lopez.at