🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: gnu.gcc.help
Article #50122

BULL DPX/2 Port problem

#50122
From: "Neil S. Briscoe"
Date: Mon, 15 Nov 1993 16:46
169 lines
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!neil

Show 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