[fpc-devel] Bug 4004

Hans-Peter Diettrich DrDiettrich at compuserve.de
Thu Jun 9 17:09:35 CEST 2005


Gerhard Scholz wrote:
> 
> ...
> > I'm not sure, at least
> >
> > > .L9:
> > >      movw %dx,-12(%ebp)
> > > .Ll3:
> >
> > suggests that the target is not an integer, but instead is a (possibly
> > unsigned) word type. Please check again!
> ...
> 
> This is the result of the compilation: "ppc386 tord -al" (shortened of
> course).
> 
> Since "MOVW" moves 16-bit values, it does not matter if it's signed or not,
> it just has to be 16 bit of something.

The MOVW is not the offending instruction, the range/overflow checks are
implemented in separate code. That code will reflect the precise data
type of the two bytes, moved by MOVW.

I'm not very experienced in reading Intel assembler code, so somebody
else should explain what data type is assumed in the checking code.

DoDi






More information about the fpc-devel mailing list