Linking libgcc for M68K improperly?

Holland, Alexander MHX HollaA@HPD.Abbott.com
Fri Feb 2 18:13:00 GMT 2001


Hi,

I built an image for an M68K-COFF target using GCC 2.95.2 hosted under
Cygwin. The following  libgcc.a functions from my image were obtained using
objdump. Note line a311c: According to my 68k instruction manual, the bsrl
instruction results in pc + 0x00000022 -> pc, which by my calculations  is
a313e and not a3140 as it should be. Does anyone have any
theories/explanations what might be going on? 

000a3110 <__modsi3>:
   a3110:	222f 0008      	movel %sp@(8),%d1
   a3114:	202f 0004      	movel %sp@(4),%d0
   a3118:	2f01           	movel %d1,%sp@-
   a311a:	2f00           	movel %d0,%sp@-
   a311c:	61ff 0000 0022 	bsrl a3140 <__divsi3>
   a3122:	508f           	addql #8,%sp
   a3124:	222f 0008      	movel %sp@(8),%d1
   a3128:	2f01           	movel %d1,%sp@-
   a312a:	2f00           	movel %d0,%sp@-
   a312c:	61ff ffff ffbe 	bsrl a30ec <__mulsi3>
   a3132:	508f           	addql #8,%sp
   a3134:	222f 0004      	movel %sp@(4),%d1
   a3138:	9280           	subl %d0,%d1
   a313a:	2001           	movel %d1,%d0
   a313c:	4e75           	rts
	...

000a3140 <__divsi3>:
   a3140:	2f02           	movel %d2,%sp@-
   a3142:	7401           	moveq #1,%d2
   a3144:	222f 000c      	movel %sp@(12),%d1
   a3148:	6a04           	bpls a314e <L1>
   a314a:	4481           	negl %d1
   a314c:	4402           	negb %d2

Thanks,
Alex

------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sourceware.cygnus.com



More information about the crossgcc mailing list