www.delorie.com/djgpp/bugs/show.cgi   search  
Bug 000142

When Created: 03/17/1997 11:12:11
Against DJGPP version: 2.01
By whom: Maurice.Lombardi@ujf-grenoble.fr
Abstract: message: conflict between length of operator and operands while compiling djlsr201
trying to compile djlsr201 in plain MSDOS
this message has been found three times during compilation of
SRC/LIBM/SRC/S_FINITE.S 
SRC/LIBM/SRC/SF_FINITE.S
SRC/DEBUG/FSDB/FULLSCR.C
Offending lines seem
    File    Line#                   suggested replacement
S_FINITE.S   15     setnel %al         setne %al
SF_FINITE.S  15     setnel %al         setne %al
FULLSRC.C    398    xorl %%al %%al     xor %%al %%al
After those replacements there is no more complain but check!
The first two suggestion are pretty sure because it is what
is done in corresponding files of the GNU general library
(glibc201.tar)/sysdeps/libm-i386/s_finite.s, sfinitef.s, sfinitel.s
(seem to be too enthusiastic in adding l suffix to all opcodes)
But please check that this is indeed the correct fix: I know very
little about intel ASM, practically nothing about GNU asm (I have
only read the FAQ), and I do'nt know what these codes intend to do.

Note added: 03/17/1997 22:32:59
By whom: welinder@rentec.com (Morten Welinder)
The fullscr.c thing just needs to clear out the lowest byte so "xorb"
would be the right instruction.  Nothing bad would happen if the entire
eax register got zeroed, though.

The reason that these bugs pop up now is that newer versions of gas
do a better job at validating instructions.  We weren't just "trigger-
happy" back when we added all these suffixes: not adding the suffixes
made gas assemble some instructions wrong.

Solution added: 04/12/1999 12:00:05
By whom: eliz@is.elta.co.il
Solved in v2.02.

Fixed in version on 04/12/1999 12:00:43
By whom: eliz@is.elta.co.il



  webmaster     delorie software   privacy  
  Copyright © 2010   by DJ Delorie     Updated Jul 2010