This is the mail archive of the gcc-bugs@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]

Unaligned store double gcc 2.95.1 sparc-sun-solaris2.7 -mcpu=ultrasparc


[I couldn't get my message below 100k because of header files in the .ii
file.  The entire report is available at
ftp://ftp.advent.com/pub/downloads/all/gcc-bug.mail.]


I get a bus error for the following instruction:

std %f2, [%sp+164]

It appears to try to store a doubleword at a non-doubleword aligned
address.  I note that this takes place in the context of loading
arguments for a hairy function call (35 arguments).  Is there any limit
on the number of arguments?  I couldn't find a limit in the standard.
If there is such a limit, is there a way to get an error message or
warning for breaching it?

 Thanks,
  Kevin Neel
  Advent Software


A bit more context for the line:
 st %l6, [%sp+120]
 st %g4, [%sp+148]
 st %i3, [%sp+156]
 st %i4, [%sp+160]
 std %f2, [%sp+164]
 st %l0, [%sp+180]
 st %l1, [%sp+184]
 st %o7, [%sp+188]
 st %g2, [%sp+200]
 st %g3, [%sp+204]
 ld [%fp-1332], %l3
 st %l2, [%sp+212]
 st %l3, [%sp+208]
 st %g0, [%sp+192]
 st %l7, [%sp+196]
 call
HitInvestment__FP10at_contextG10genNumericT1G9genStringP13agaInvestmentP18ag
aLocationAccountP11agaStrategyT3P8genYNodeG7genTimeT1N31P17agaInventoryState
P15bisJournalEntryldT3T9N39dddUlUlT1P8agaPartyT14_P19agaFinancialAccountT4T9
T1,
0
 st %i0, [%sp+220]


Here is the machine type:

nazgul%  uname -a
SunOS nazgul 5.7 Generic_106541-07 sun4u sparc SUNW,Ultra-Enterprise
nazgul%


Here is the compilation output (.ii file attached):
g++ -fpermissive -fno-strict-aliasing -pipe -x c++
-I/home/kneel/dev40c/generate/inc -I/home/kneel/dev40c/bis/inc
-I/home/kneel/dev40c/kbsvcs/inc -I/home/kneel/dev40c/aga/inc
-I/home/kneel/dev40c/kbsvcs/inc -I/home/kneel/dev40c/atl/inc
-I/home/kneel/dev40c/domain/inc -I/home/kneel/dev40c/fincalc/inc
-I/home/kneel/dev40c/atlspecs/inc -I/home/kneel/dev40c/solaris/inc
-I/home/kneel/dev40c/core/inc -I/home/kneel/dev40c/public/inc -Dsolaris
-DOSVER=5 -DOPTIMIZE -DVERSION_ID="4.0.0.d0"
-DINSTALL_DIR="/home/kneel/dev40c/geneva/src/release/geneva-4.0.0.d0" -g
-DDEBUG -Winline -c kneel_hitinv.cpp -O2 -mcpu=ultrasparc -save-temps -v
-Wno-inline
g++: Warning: -pipe ignored since -save-temps specified
Reading specs from
/home/kneel/gcc/inst-v8/lib/gcc-lib/sparc-sun-solaris2.7/2.95.1/specs
gcc version 2.95.1 19990816 (release)
 /home/kneel/gcc/inst-v8/lib/gcc-lib/sparc-sun-solaris2.7/2.95.1/cpp
-lang-c++ -v -I/home/kneel/dev40c/generate/inc
-I/home/kneel/dev40c/bis/inc -I/home/kneel/dev40c/kbsvcs/inc
-I/home/kneel/dev40c/aga/inc -I/home/kneel/dev40c/kbsvcs/inc
-I/home/kneel/dev40c/atl/inc -I/home/kneel/dev40c/domain/inc
-I/home/kneel/dev40c/fincalc/inc -I/home/kneel/dev40c/atlspecs/inc
-I/home/kneel/dev40c/solaris/inc -I/home/kneel/dev40c/core/inc
-I/home/kneel/dev40c/public/inc -D__GNUC__=2 -D__GNUG__=2
-D__GNUC_MINOR__=95 -D__cplusplus -Dsparc -Dsun -Dunix -D__svr4__
-D__SVR4 -D__sparc__ -D__sun__ -D__unix__ -D__svr4__ -D__SVR4 -D__sparc
-D__sun -D__unix -Asystem(unix) -Asystem(svr4) -D__EXCEPTIONS
-D__OPTIMIZE__ -g -Winline -Wno-inline -D__sparc_v9__
-D__GCC_NEW_VARARGS__ -Acpu(sparc) -Amachine(sparc) -Dsolaris -DOSVER=5
-DOPTIMIZE -DVERSION_ID="4.0.0.d0"
-DINSTALL_DIR="/home/kneel/dev40c/geneva/src/release/geneva-4.0.0.d0"
-DDEBUG kneel_hitinv.cpp kneel_hitinv.ii
GNU CPP version 2.95.1 19990816 (release) (sparc)
#include "..." search starts here:
#include <...> search starts here:
 /home/kneel/dev40c/generate/inc
 /home/kneel/dev40c/bis/inc
 /home/kneel/dev40c/kbsvcs/inc
 /home/kneel/dev40c/aga/inc
 /home/kneel/dev40c/kbsvcs/inc
 /home/kneel/dev40c/atl/inc
 /home/kneel/dev40c/fincalc/inc
 /home/kneel/dev40c/atlspecs/inc
 /home/kneel/dev40c/core/inc
 /home/kneel/dev40c/public/inc

/home/kneel/gcc/inst-v8/lib/gcc-lib/sparc-sun-solaris2.7/2.95.1/../../../../
include/g++-3
 /usr/local/include

/home/kneel/gcc/inst-v8/lib/gcc-lib/sparc-sun-solaris2.7/2.95.1/../../../../
sparc-sun-solaris2.7/include
 /home/kneel/gcc/inst-v8/lib/gcc-lib/sparc-sun-solaris2.7/2.95.1/include
 /usr/include
End of search list.
The following default directories have been omitted from the search
path:
End of omitted list.
 /home/kneel/gcc/inst-v8/lib/gcc-lib/sparc-sun-solaris2.7/2.95.1/cc1plus
kneel_hitinv.ii -quiet -dumpbase kneel_hitinv.cc -mcpu=ultrasparc -g -O2
-Winline -Wno-inline -version -fpermissive -fno-strict-aliasing -o
kneel_hitinv.s
GNU C++ version 2.95.1 19990816 (release) (sparc-sun-solaris2.7)
compiled by GNU C version 2.95.1 19990816 (release).
 /home/kneel/gcc/inst-v8/sparc-sun-solaris2.7/bin/as -V -Qy -s
-xarch=v8plusa -o kneel_hitinv.o kneel_hitinv.s
GNU assembler version 2.9.1 (sparc-sun-solaris2.7), using BFD version
2.9.1



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