Messages in this thread | | | Date | Wed, 7 Aug 1996 09:11:13 -0400 | From | Robert L Krawitz <> | Subject | Re: Linux-2.0.11 |
| |
Date: Tue, 6 Aug 1996 21:01:28 +0200 From: Philippe Strauss <root@urbanet.ch>
Anyway, since the i386, the instruction set has only been very slightly augmented on each new ix86 (only some stuff to make SMP boards without too much pain on 586). The number of register has growed, thats the reason of the -m486 flag of gcc. There is then no obvious reason to make specific extensions of gcc on each stepping of brand new intel, AMD, Cyrix or whatever.
The number of user registers on each chip is the same (as opposed to the model specific registers of the Pentium, which aren't general purpose registers). There are very definite reasons to have different optimizers in gcc for each chip. The Pentium, for example, has much more complicated pipelines than earlier processors, and choosing instructions that pair in the two pipes can improve performance quite a bit.
The reason why the kernel config ask you about your CPU is to try to turn on the best optimization for your CPU, but in no way gcc (at time of this writing) will generate code only for P6 or AMD kX. You can play with -malign-jumps=2 -malign-loops=2 -malign-functions=2 which align jumps/loops/functions on 64bits boundaries, the performance improvement is most of the time psychologic :*)
Actually, -malign-foobar=2 aligns (jumps|loops|functions) to 4-byte (2^2) boundaries.
-- Robert Krawitz <rlk@tiac.net> http://www.tiac.net/users/rlk/
Member of the League for Programming Freedom -- mail lpf@uunet.uu.net Tall Clubs International -- tci-request@aptinc.com or 1-800-521-2512
| |