This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: egcs-1.1.2 in AIX4.3.2 and as
- To: "Ulisses T. Mello" <ulisses at watson dot ibm dot com>
- Subject: Re: egcs-1.1.2 in AIX4.3.2 and as
- From: David Edelsohn <dje at watson dot ibm dot com>
- Date: Wed, 14 Jul 1999 18:31:50 -0400
- Cc: egcs at egcs dot cygnus dot com
>>>>> "Ulisses T Mello" writes:
Ulisses> You are right, its not 32 bit, it's a 16 bit offset table. However,
Ulisses> I have compiled this code with g++ in linux and sun platforms without any
Ulisses> problem. Somehow, aix has this offset limit.
This is not an AIX limit, it is a PowerPC architecture limit on
displacements. Whatever general construct GCC is trying to use to access
the data is eventually ending up as an offsettable address. For something
this large, either G++ needs to point into the middle of the object to
obtain the entire 65536 range (GCC probably is assuming positive offsets)
or it needs to access the member via indexed addressing. Without knowing
where this access is occurring, I have no idea whether G++ could know that
the size will be too large during the compilation or not.
This is NOT an AIX or AIX assembler table limit, it is a HARDWARE
ARCHITECTURE limit. The assembler is telling you that you are trying to
assemble an instruction which overflows a displacement field.
David