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



_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to