Thread overview
bug report
Oct 24, 2002
Eduardo Nunes
Oct 24, 2002
Jan Knepper
Oct 24, 2002
Eduardo Nunes
Oct 24, 2002
Walter
October 24, 2002
Walter,

The compiler generate bad code for CMatrix::rotate method, when used with
the switches,
-5 -o+all.
but correct code without -5 switch.
in attach is a example code.

btw, what is the pentium favored code guidelines used by the compiler, besides code reordering?

Thanks,

Eduardo Nunes
ed@sky3d.com




October 24, 2002
Eduardo Nunes wrote:

> The compiler generate bad code for CMatrix::rotate method, when used with
> the switches,
> -5 -o+all.
> but correct code without -5 switch.
> in attach is a example code.

Tried without the -o+all switch and with the -5 switch?

Jan


October 24, 2002
"Jan Knepper" <jan@smartsoft.us> wrote in message news:3DB7F2B4.F33A72D1@smartsoft.us...
> Eduardo Nunes wrote:
>
> > The compiler generate bad code for CMatrix::rotate method, when used
with
> > the switches,
> > -5 -o+all.
> > but correct code without -5 switch.
> > in attach is a example code.
>
> Tried without the -o+all switch and with the -5 switch?
>
> Jan
>
yes,

sc bug2.cpp    (good code)
sc -5 bug2.cpp (good code)
sc -o+all bug2.cpp (good code)
sc -5 -o+all bug2.cpp (bad code)

from reading the generated code, the main difference and the crash point is:

  mov EAX,FLAT:_DATA[00h]
  mov EDX,FLAT:_DATA[04h]
  mov ECX,EAX
  mov 060h[EAX],EAX    <<< crash, EAX=0, EDX=0

the compiler version is 8.30,

Eduardo Nunes,
ed@sky3d.com



October 24, 2002
Thanks, I'll take a look. -Walter