Article View: gnu.gcc.help
Article #50122BULL DPX/2 Port problem
From: "Neil S. Briscoe"
Date: Mon, 15 Nov 1993 16:46
Date: Mon, 15 Nov 1993 16:46
169 lines
5252 bytes
5252 bytes
Well, somehow, my name got picked out of the hat to assist someone with
a problem porting gcc to a Bull DPX/2.
Sadly, I know little about gcc and the person who updated us recently
is away.
Below is the information I have been given, you may respond either
directly to me, to this list, or to the person with the problem, whose
name is Graham Alwood and whose address is 100065.1661@compuserve.com
== Given information starts here==
Below is the .s file produced with xgcc when it was trying to compile
the first object in the libgcc2.a library. This was done using gas.
gcc was configured with:
./configure dpx2 --with-gnu-as --with-gnu-ld
Here is the .s file that was produced:
.file "libgcc2.c"
gcc2_compiled.:
___gnu_compiled_c:
.text
.even
.globl ___muldi3
___muldi3:
link a6,#0
moveml #0x3e00,sp@-
movel a6@(8),d3
movel a6@(12),d4
movel a6@(16),d5
movel a6@(20),d6
movel d4,d0
#APP
mulul d6,d1:d0
#NO_APP
movel d0,a1
movel d1,a0
movel a0,d0
movel a1,d1
movel d4,d2
mulsl d5,d2
mulsl d6,d3
addl d3,d2
movel a0,d0
addl d2,d0
moveml a6@(-20),#0x7c
unlk a6
rts
I have included the output from the compiler from where libgcc1.a
is built to where the errors occur in libgcc2.a.
I hope this is of some help.
Thanks again, Graham Allwood.
rm -f tmplibgcc1.a
set -e; \
for name in _mulsi3 _udivsi3 _divsi3 _umodsi3 _modsi3 _lshrsi3 _lshlsi3
_ashrsi3 _ashlsi3 _divdf3 _muldf3 _negdf2 _adddf3 _subdf3 _fixdfsi
_fixsfsi _floatsidf _floatsisf _truncdfsf2 _extendsfdf2 _addsf3 _negsf2
_subsf3 _mulsf3 _divsf3 _eqdf2 _nedf2 _gtdf2 _gedf2 _ltdf2 _ledf2 _eqsf2
_nesf2 _gtsf2 _gesf2 _ltsf2 _lesf2; \
do \
echo ${name}; \
rm -f ${name}.o; \
cc -O -I. -I. -I./config -c -DL${name} ./libgcc1.c; \
if [ $? -eq 0 ] ; then true; else exit 1; fi; \
mv libgcc1.o ${name}.o; \
ar qc tmplibgcc1.a ${name}.o; \
rm -f ${name}.o; \
done
_mulsi3
_udivsi3
_divsi3
_umodsi3
_modsi3
_lshrsi3
_lshlsi3
_ashrsi3
_ashlsi3
_divdf3
_muldf3
_negdf2
_adddf3
_subdf3
_fixdfsi
_fixsfsi
_floatsidf
_floatsisf
_truncdfsf2
_extendsfdf2
_addsf3
_negsf2
_subsf3
_mulsf3
_divsf3
_eqdf2
_nedf2
_gtdf2
_gedf2
_ltdf2
_ledf2
_eqsf2
_nesf2
_gtsf2
_gesf2
_ltsf2
_lesf2
for file in .. ; \
do \
if [ x${file} != x.. ]; then \
name=`echo ${file} | sed -e 's/[.]c$//' -e 's/[.]asm$//'`; \
echo ${name}; \
if [ ${name}.asm = ${file} ]; then \
cp ${file} ${name}.s || exit 1; file=${name}.s; \
else true; fi; \
cc -O -I. -I. -I./config -c ${file}; \
if [ $? -eq 0 ] ; then true; else exit 1; fi; \
ar qc tmplibgcc1.a ${name}.o; \
if [ $? -eq 0 ] ; then true; else exit 1; fi; \
rm -f ${name}.[so]; \
else true; \
fi; \
done
mv tmplibgcc1.a libgcc1.a
if [ -f /usr/include/limits.h ] ; then \
cat ./limitx.h ./glimits.h ./limity.h > xlimits.h; \
else \
cat ./glimits.h > xlimits.h; \
fi
if [ -f libgcc2.ready ] ; then \
true; \
else \
touch libgcc2.ready; \
fi
rm -f tmplibgcc2.a
set -e; \
for name in _muldi3 _divdi3 _moddi3 _udivdi3 _umoddi3 _negdi2 _lshrdi3
_lshldi3 _ashldi3 _ashrdi3 _ffsdi2 _udiv_w_sdiv _udivmoddi4 _cmpdi2
_ucmpdi2 _floatdidf _floatdisf _fixunsdfsi _fixunssfsi _fixunsdfdi
_fixdfdi _fixunssfdi _fixsfdi _fixxfdi _fixunsxfdi _floatdixf _fixunsxfsi
__gcc_bcmp _varargs _eprintf _op_new _new_handler _op_delete
_bb _shtab _clear_cache _trampoline __main _exit _ctors; \
do \
echo ${name}; \
./xgcc -B./ -O2 -DIN_GCC -D_SYSV -D__DPX2__ -Dncl_mr=1 -I. -I. -I./config -c -DL${name} \
./libgcc2.c -o ${name}.o; \
if [ $? -eq 0 ] ; then true; else exit 1; fi; \
ar rc tmplibgcc2.a ${name}.o; \
rm -f ${name}.o; \
done
_muldi3
/usr/tmp/cca03914.s:8: operands mismatch -- statement `link a6,#0' ignored
/usr/tmp/cca03914.s:9: Malformed operand -- statement `moveml #0x3e00,sp@-' ignored
/usr/tmp/cca03914.s:16: operands mismatch -- statement `mulul d6,d1:d0' ignored
/usr/tmp/cca03914.s:23: operands mismatch -- statement `mulsl d5,d2' ignored
/usr/tmp/cca03914.s:24: operands mismatch -- statement `mulsl d6,d3' ignored
/usr/tmp/cca03914.s:25: operands mismatch -- statement `addl d3,d2' ignored
/usr/tmp/cca03914.s:27: operands mismatch -- statement `addl d2,d0' ignored
/usr/tmp/cca03914.s:29: operands mismatch -- statement `unlk a6' ignored
make: *** [libgcc2.a] Error 1
[root:426]>
--
Neil S. Briscoe Telephone: +44 252 376737
System Administrator Fax: +44 252 376644
Email: neil@salmon.demon.co.uk
nbriscoe@cix.compulink.co.uk
Technical Details
Message-ID:
<CGJLA9.1xu@salmon.demon.co.uk>Path:
arc1-ca.pugleaf.net!gmd.de!xlink.net!howland.reston.ans.net!pipex!demon!salmon!neilShow Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit
X-Google-Thread: 11318c,28eb684c6248e2ac,start
X-Google-Attributes: gid11318c,public
X-Google-ArrivalTime: 1993-11-15 09:14:15 PST
Newsgroups: gnu.gcc.help
From: neil@salmon.demon.co.uk ("Neil S. Briscoe")
Path: arc1-ca.pugleaf.net!gmd.de!xlink.net!howland.reston.ans.net!pipex!demon!salmon!neil
Subject: BULL DPX/2 Port problem
Organization: Bartec Medical Systems Ltd
X-Newsreader: Tin 1.1 PL4
Date: Mon, 15 Nov 1993 16:46:56 +0000
Message-ID: <CGJLA9.1xu@salmon.demon.co.uk>
Sender: usenet@demon.co.uk
Lines: 169