Mail Archives: djgpp-workers/1999/09/09/15:50:20
Using `-march=pentium' is supposed to generate code
that only runs on Pentiums and above.
CPU optimizations (the old `-m486') are now
controlled by `-mcpu=pentium'.
Probably the best way is to default to
`-march=i386 -mcpu=pentium' in the specs, i.e.
generate code that runs on all i386 CPUs but
optimize for the i586 (this also influences
default alignment et. al.).
Rebuilding or reconfiguring gcc should not be
necessary (unless gcc was compiled with -march=pentium
itself).
Markus
On 09-Sep-1999 pavenis AT lanet DOT lv wrote:
> Hi!
>
> Sorry to say, but we should not mirror out binaries of port of gcc-
> 2.95.1. I must rebuild them for target i386-pc-msdosdjgpp
>
> The problem was that we have found very rare problem when
> compiler with options -march=pentium -mcpu=pentium generates code
> which doesn't run on i386. It seems to be very rare as it took half a
> year to found it (my own software written in C++ is being used on 386
> and never crashed due to similar things) as the same problem was with
> port of egcs-1.1.2
>
> Andris
>
> ------------------ assembler code generated by gcc-2.95
> leal -16(%ecx),%ebx
> movl $-1,%eax
> leal 8(%ebx),%edx
> /APP
> .byte 0xf0, 0x0f, 0xc1, 0x02
> /NO_APP
> cmpl $1,%eax
> jne L712
> ------------------------- what I'm getting from objdump
> -----------------------
> 4f7: b8 ff ff ff ff movl $0xffffffff,%eax
> 4fc: 8d 53 08 leal 0x8(%ebx),%edx
> 4ff: f0 0f c1 02 lock xaddl %eax,(%edx)
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> This command is valid for i486++
> 503: 83 f8 01 cmpl $0x1,%eax
> 506: 75 34 jne 53c
> <_replace__t12basic_string3ZcZt18string_char_traits1ZcZt24__defaul
> t_alloc_template2b0i0UlUlPCcUl+0x1e4>
>
---- Markus F.X.J. Oberhumer <markus DOT oberhumer AT jk DOT uni-linz DOT ac DOT at> ----
---- http://wildsau.idv.uni-linz.ac.at/mfx/ ----
---- 5E CB 5C 85 DE AF 9E BF E9 DA 7E 6A 39 F8 CC 67 ----
3 WARPS TO URANUS
- Raw text -