[unix-pc.general] GNU C

ford@elgar.UUCP (Mike "Ford" Ditto) (06/20/88)

In article <735@naucse.UUCP> rrr@naucse.UUCP (Bob Rose ) writes:
>In article <1015@umbc3.UMD.EDU>, alex@umbc3.UMD.EDU (Alex S. Crain) writes:
> > BTW: I use gcc-1.18 as my default compiler because I find it superior to 
> > /bin/cc even without debugging support. (I will recompile w/ cc if I really
> > need sdb)
>
>I'm not sure about this. The way gcc does an interger  multiply is gross!
>(it calls a routine that calls a routine that does a multiply)

Since the 68010 has no 32-bit multiply instruction, a library function
is the best way for the compiler to do it.  The call-a-routine-that-
calls-a-routine is only if you haven't configured gcc to call the
standard library routine (the same one that the normal C compiler
uses).  Gcc then will deffault to the multiply routine in the "gnulib"
library which really only exists for such "stub" routines.

					-=] Ford [=-

"Once there were parking lots,		(In Real Life:  Mike Ditto)
now it's a peaceful oasis.		ford@kenobi.cts.com
This was a Pizza Hut,			...!sdcsvax!crash!kenobi!ford
now it's all covered with daisies." -- Talking Heads

rrr@naucse.UUCP (Bob Rose ) (06/21/88)

In article <192@elgar.UUCP>, ford@elgar.UUCP (Mike "Ford" Ditto) writes:
> In article <735@naucse.UUCP> rrr@naucse.UUCP (Bob Rose ) writes:
> >In article <1015@umbc3.UMD.EDU>, alex@umbc3.UMD.EDU (Alex S. Crain) writes:
> > > BTW: I use gcc-1.18 as my default compiler because I find ...
> >
> >I'm not sure about this. The way gcc does an interger  multiply is gross!
> >(it calls a routine that calls a routine that does a multiply)
> 
> Since the 68010 has no 32-bit multiply instruction, a library function
> is the best way for the compiler to do it.  The call-a-routine-that-
> calls-a-routine is only if you haven't configured gcc to call the
> standard library routine (the same one that the normal C compiler
> uses).  Gcc then will deffault to the multiply routine in the "gnulib"
> library which really only exists for such "stub" routines.

I've spent the last two week's doing some major hacking to gcc. And oooh
some of the fun things I've seen.
First if you let gcc default the multiply instruction you get a function
call to `mulsi3' which is just the C function
	int mulsi3(a,b) {return a*b;}

(This of course must be compiled with cc, not gcc)
So the following C code gets compiled by gcc as

	C code				Asm
	a = b*f()			jsr f
					mov.l	d0,-(sp)
					mov.l	b,-(sp)
					jsr	mulsi3
					mov.l	d0,a

Now if you muck around you can force the first arguement of
a library call to be in d0 so the code becomes

	C code				Asm
	a = b*f()			jsr f
					mov.l	b,-(sp)
					jsr	muls__	# the standard routine
					mov.l	d0,a

Pretty neat and it saves two move instructions (one of them is
in the multiply routine.) So lets compile this code

	C code				Asm
	a = f()*b			jsr f
					mov.l	d0,d2
					mov.l	b,d0
					mov.l	d2,-(sp)
					jsr	muls__	# the standard routine
					mov.l	d0,a

Gag me with a spoon! Gcc has forgot that multiply is reflexive (because
it has been turned into a function call.) If you try to tell gcc that
multiply is not a function call on the 68000 you screw up the stack.

Now is all this mucking around worth it. I think so, I have gotten
a 20% improvement in drystones 2.0. (Note this version of gcc in not
fully debugged yet, it trashes a few registers.) If you (or alex)
have gotten gcc to link to the standard routines in a reasonable manner,
I would sure like the diff's.

				-bob

Joe_E_Powell@cup.portal.com (06/24/88)

After hearing all this talk about the Gcc compiler, I have still not seen
it available anywhere on the Net.  Would someone be kind enough to post it
to this newsgroup (unix-pc)?

Joe E. Powell

karl@triceratops.cis.ohio-state.edu (Karl Kleinpaste) (06/29/88)

Joe_E_Powell@cup.portal.com writes:
   After hearing all this talk about the Gcc compiler, I have still not seen
   it available anywhere on the Net.  Would someone be kind enough to post it
   to this newsgroup (unix-pc)?

No.  GCC is huge.  The compressed distribution tar file is 1.7Mb long.
You can get it from a number of places, though.  If you're on the
Internet, just ftp it from prep.ai.mit.edu.  If you have only UUCP
available, check the instructions for getting to osu-cis via anonymous
UUCP which were last posted to comp.sources.d on 7 June, due to expire
19 July unless I re-issue with a Supersedes: header.  Its Message-ID:
<15236@tut.cis.ohio-state.edu>.  It'll cost you a couple hours' long
distance phone time, but it's yours for the taking.

There are other places to get it, but for obvious reasons, I don't
keep track of the rest of them.

--Karl

richard@uhccux.uhcc.hawaii.edu (Richard Foulk) (06/30/88)

}    After hearing all this talk about the Gcc compiler, I have still not seen
}    it available anywhere on the Net.  Would someone be kind enough to post it
}    to this newsgroup (unix-pc)?
} 
} No.  GCC is huge.  The compressed distribution tar file is 1.7Mb long.
} You can get it from a number of places, though.  [...]

To build gcc takes a huge amount of space too.  I started out with over
10 megs free on my system, and that's still not enough.

If the binaries aren't too large perhaps it would be a good idea for
someone to post them.  I'm sure there are a number of people who simply
don't have sufficient space to build it themselves.

Just a thought.

Richard

randy@umn-cs.cs.umn.edu (Randy Orrison) (06/30/88)

In article <2008@uhccux.uhcc.hawaii.edu> richard@uhccux.UUCP (Richard Foulk) writes:
|}    After hearing all this talk about the Gcc compiler, I have still not seen
|}    it available anywhere on the Net.  Would someone be kind enough to post it
|}    to this newsgroup (unix-pc)?
|} 
|} No.  GCC is huge.  The compressed distribution tar file is 1.7Mb long.
|} You can get it from a number of places, though.  [...]
|
|If the binaries aren't too large perhaps it would be a good idea for
|someone to post them.  I'm sure there are a number of people who simply
|don't have sufficient space to build it themselves.
|
|Richard

I will repeat my offer of making TeX available via anonymous FTP, and I'll
add GCC to it.  If...  someone can get them to me.  (Or tell me where I
can get them cheaply).  I'd like to be able to make the following available:
	TeX binaries
	TeX sources
	gcc binaries
	gcc sources

I probably could also make them available via mail for those without ftp
access, though that is just a maybe.

If you have these, and can get them to me, let me know!

	-randy


-- 
Randy Orrison, Control Data, Arden Hills, MN
randy@ux.acss.umn.edu	{bungia, uunet!hi-csc, rutgers, sun}!umn-cs!randy
	"I consulted all the sages I could find in Yellow Pages,
	but there aren't many of them."			-APP

brant@manta.UUCP (Brant Cheikes) (07/03/88)

In article <6053@umn-cs.cs.umn.edu> randy@umn-cs.UUCP (Randy Orrison) writes:
>I will repeat my offer of making TeX available via anonymous FTP [...]
>I'd like to be able to make the following available:
>	TeX binaries
>	TeX sources
[...]
>If you have these, and can get them to me, let me know!

I'll repeat an earlier message re TeX for the 3b1.  There's a package
called "web2c" available by anonymous FTP from ics.uci.edu, in the pub
area.  Web2c provides the capability to take the TeX WEB language
source code, translate it into C, which then compiles without incident
on a 3b1 using the stock compiler.  The TeX WEB code is also sitting
there on ics.uci.edu.  Using web2c, you can build TeX, LaTeX, BibTeX,
Metafont.  The only thing you don't have is the dvi previewer and the
dvi drivers that Ed Hepler (elh@vu-vlsi) distributes.
-- 
Brant Cheikes
University of Pennsylvania
Department of Computer and Information Science
Internet: manta!brant@bpa.bell-atl.com, UUCP: {bpa,drexel}!manta!brant