Mail Archives: djgpp/2001/01/03/03:51:55
Hello.
Tom St Denis wrote:
> Maybe when somebody asks for help you give insight and not conjecture.
> I know what a FAQ is I was looking for someone who I dunno, perhaps,
> maybe WORKED WITH FREEBE!!!!!!!!. I know how to type gcc -c myfile and
> such, I don't need to be treated like a dolt.
Dude, no-one was treating you like a dolt. Flaming the people in this
group isn't very nice, especially as most people are helpful.
The FAQ does contain a link the answer - one of the questions at the start
of section 8.17 is, in fact, about the error message you have found. If
you follow the link to the gcc FAQ, the problem is explained, but the
following may help.
IIRC this problem is where code has the EAX register in the input/output
arguments as well as the list of spilled (modified) registers for the
assembly statement. They tightened up the rules in gcc, since the old
behaviour was actually an error (I think).
Taking an example from libwin, I had the following:
: "=c" (Entry[1]), "=D" (Entry[0])
: "a" (0x1684), "b" (ID), "D" (0)
: "%eax", "%edx"
Here EAX and EDX shouldn't be in the spilled list on line 3, since they
are listed in the output (line 1) and input (line 2) register lists. The
fix in this case was to remove EAX and EDX from the spilled line, which
means line 3 was removed.
The fix for FreeBE is similar, I guess. Is there a FreeBE mailing list?
Maybe someone has already made this fix, since gcc 2.95.x have been out
for a while now.
> > > Should I revert to V2.8.2 of GCC to fix the problem? Or re-write
> > > FreeBE?
AFAIK gcc 2.8.2 does not exist. 2.8.1 does. A re-write of FreeBE is not
necessary - just correct the inline assembly. I guess the maintainer of
FreeBE (Shawn Hargreaves?) would be interested in the fix for the problem.
Well, I hope you sort this out.
Bye,
--
Richard Dawe
[ mailto:richdawe AT bigfoot DOT com | http://www.bigfoot.com/~richdawe/ ]
- Raw text -