first, Thank you very much Driver!!!!!
my english is poor, pls forgive me .
i search the prolem in goole, i find a article . i guess you are right. but how can i do for resolving this register problem .
next is the article , if you have time ,pls help me .
how to compile:
% g++ -maix64 -g -o bigfile2 bigfile2.cc -save-temps -v
error message:
Reading specs from /usr/local/lib/gcc-lib/rs6000-ibm-aix5.1.0.0/3.0.1/specs
Configured with: ../configure rs6000-ibm-aix5.1.0.0
Thread model: single
gcc version 3.0.1
GNU CPP version 3.0.1 (cpplib)
ignoring nonexistent directory "/usr/local/rs6000-ibm-aix5.1.0.0/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/local/include/g++-v3
/usr/local/include/g++-v3/rs6000-ibm-aix5.1.0.0
/usr/local/include/g++-v3/backward
/usr/local/include
/usr/local/lib/gcc-lib/rs6000-ibm-aix5.1.0.0/3.0.1/include
/usr/include
End of search list.
/usr/local/lib/gcc-lib/rs6000-ibm-aix5.1.0.0/3.0.1/cc1plus -fpreprocessed bigfile2.ii -quiet -dumpbase bigfile2.cc -maix64 -g -version -o bigfile2.s
GNU CPP version 3.0.1 (cpplib)
GNU C++ version 3.0.1 (rs6000-ibm-aix5.1.0.0)
compiled by GNU C version 2.9-aix43-010414.
as -u -a64 -mppc64 -o bigfile2.o bigfile2.s
Assembler:
bigfile2.s: line 96894: The displacement must be greater than or equal to
-32768 and less than or equal to 32767.
bigfile2.s: line 96903: The displacement must be greater than or equal to
-32768 and less than or equal to 32767.
bigfile2.s: line 96912: The displacement must be greater than or equal to
-32768 and less than or equal to 32767.
bigfile2.s: line 96921: The displacement must be greater than or equal to
-32768 and less than or equal to 32767.
....
This assembler is AIX's assembler.
IBM AIX development team says, this error is not assember's problem:
Problem is with g++ compiler. You are hitting the
hardware limitation. To make it clear consider an opcode
.
ld r4,X(r3);
.
where X will be at most 16 bit.
So irrespective of 64bit or 32 bit object file
we can traverse an offset value of 16 bit.
While creating the assembly listing g++ crossed
the limitation. So assembler throws series of error
messages.
.
Customer can use IBM compiler, which takes care
of this problem and we are not supporting the g++
compiler.
.
Release:
gcc version 3.0.1
Environment:
AIX 5.1 (Maintenance Level 01)
(rs6000-ibm-aix5.1.0.0)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=4587