Subject: Re: bin/14489: C++ compiler problem cross compiling from alpha to i386
To: None <netbsd-bugs@netbsd.org>
From: Robert Elz <kre@munnari.OZ.AU>
List: netbsd-bugs
Date: 11/07/2001 01:55:36
Date: Wed, 7 Nov 2001 01:40:28 +0700 (ICT)
From: kre@munnari.OZ.AU
Message-ID: <200111061840.fA6IeSn04752@brandenburg.cs.mu.OZ.AU>
| /var/tmp/ccesZfXi.s:852: Error: Value of 4294967296 too large for field of 4 bytes at 1724
The code in question is ...
movzwl %dx,%eax
leal (%eax,%eax,2),%eax
leal tags+4294962496(,%eax,4),%ebx
jmp .L90
.align 4
.L89:
leal -12(%ebp),%ebx
.L90:
I don't understand much about i386 processors, but I doubt that it
is really wanting to make a 4GB offset (plus a bit) from what's in
some register...
This has all the smells of some code that assumes integers will
overflow at 2^32, and knows that the overflow is irrelevant, and
wants it to be ignored (but didn't bother explicitly masking).
All of the errors were that kind of thing - different instructions,
but always "tags+big_number".
This is just in case this helps someone find & fix the problem.
kre