This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: egcs-1.1.2 in AIX4.3.2 and as


>>>>> "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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]