bammi@dsrgsun.ces.cwru.edu (Jwahar R. Bammi) (11/13/88)
Gnu CC V1.30 and associated tools (gcc-as, gcc-ld,
gcc-ar, gcc-nm) are running under MINIX on the AtariSt. Also, i have
ported the minix library, the library/kernel interface (st*.s files)
to this environment. Gnu CC may be used in two modes - producing code
in which integers are 16 bit quantities or producing code in which
integers are 32 bit quantities. I have done the approriate things in
the library/kernel interface to facilitate the two modes. The front
end driver (gcc) picks the correct start files/libraries according to
the mode (specified by the presence/absence of the -mshort flag). I
also upgraded the lib source before starting on this, with the relevant
diffs from the Ibm V1.2-V1.3 upgrade. Also incorporated quite a
few fixes that have appeared here lately, and found some more, that i
will post. This port has all the basic floating point support in it.
Hopefully, with the help of the net, we will build up a libm.a, building
on the basic floating support (which is the same as what was provided
in the TOS port thanks to John Denning). The same source is
appropriately #ifdef'ed to produce a Unix hosted (only SunOS V3.5
tested) cross-gcc (and the tools) for minixSt.
No changes are required to the kernel/fs/mm. I intend at some point to
do the appropriate things to compile the kernel with Gcc. It runs on a
1Meg ST, provided you cut way back on the ram disk (i am currently
using a 150K ramdisk). It certainly will not run on a 520ST. How big a
program you can compile basically depends upon how well modularized
your source code is. Under TOS i have compiled some pretty large
programs that consisted of many small to medium sized source files.
If there is sufficient interest i can package up the diffs from the
Gnu distribution and make it available for FTP and/or post it. Mail me
if you are interested.
--
usenet: {decvax,sun}!cwjcc!dsrgsun!bammi jwahar r. bammi
csnet: bammi@dsrgsun.ces.CWRU.edu
arpa: bammi@dsrgsun.ces.CWRU.edu
compuServe: 71515,155
PS:
Here are some interesting figures:
source: /usr/src/test/dhry.c
NOTE
gdry gcc compiled 16 bit integers mode no register
gdryr gcc compiled 16 bit integers mode with register
gdryo gcc compiled 16 bit integers mode no register and more optimize
gdryro gcc compiled 16 bit integers mode with register and more optimize
gdryoo gcc compiled 16 bit integers mode with register and max optimize
the same for 32 bit integers mode files, they have '32' suffix.
normal optimization = -O
more optimization = -O -fomit-frame-pointer -fcombine-regs -fforce-mem \
-fforce-addr
max optimization = -O -fomit-frame-pointer -fcombine-regs -fforce-mem \
-fforce-addr -fstrength-reduce
Script started at Thu Nov 10 09:33:20 1988
% for i in gdry*
> do echo $i
> size $i
> ls -l $i
> $i
> echo "------------------------"
> echo
> done
gdry
text data bss stack memory
4716 164 7400 53256 65536 gdry
-rwxr-xr-x 1 bammi 5048 Nov 10 04:24 gdry*
Dhrystone(1.1) time for 50000 passes = 60
This machine benchmarks at 833 dhrystones/second
------------------------
gdry32
text data bss stack memory
4480 180 12700 48176 65536 gdry32
-rwxr-xr-x 1 bammi 4831 Nov 10 04:24 gdry32*
Dhrystone(1.1) time for 50000 passes = 65
This machine benchmarks at 769 dhrystones/second
------------------------
gdryo
text data bss stack memory
4644 164 7400 53328 65536 gdryo
-rwxr-xr-x 1 bammi 4971 Nov 10 04:24 gdryo*
Dhrystone(1.1) time for 50000 passes = 57
This machine benchmarks at 877 dhrystones/second
------------------------
gdryo32
text data bss stack memory
4412 180 12700 48244 65536 gdryo32
-rwxr-xr-x 1 bammi 4758 Nov 10 04:24 gdryo32*
Dhrystone(1.1) time for 50000 passes = 61
This machine benchmarks at 819 dhrystones/second
------------------------
gdryr
text data bss stack memory
4716 164 7400 53256 65536 gdryr
-rwxr-xr-x 1 bammi 5048 Nov 10 04:24 gdryr*
Dhrystone(1.1) time for 50000 passes = 60
This machine benchmarks at 833 dhrystones/second <= not suprising! same as gdry
------------------------
gdryr32
text data bss stack memory
4480 180 12700 48176 65536 gdryr32
-rwxr-xr-x 1 bammi 4831 Nov 10 04:24 gdryr32*
Dhrystone(1.1) time for 50000 passes = 65
This machine benchmarks at 769 dhrystones/second
------------------------
gdryro
text data bss stack memory
4644 164 7400 53328 65536 gdryro
-rwxr-xr-x 1 bammi 4971 Nov 10 04:24 gdryro*
Dhrystone(1.1) time for 50000 passes = 57
This machine benchmarks at 877 dhrystones/second
------------------------
gdryro32
text data bss stack memory
4412 180 12700 48244 65536 gdryro32
-rwxr-xr-x 1 bammi 4758 Nov 10 04:25 gdryro32*
Dhrystone(1.1) time for 50000 passes = 63
This machine benchmarks at 793 dhrystones/second
------------------------
gdryroo
text data bss stack memory
4644 164 7400 53328 65536 gdryroo
-rwxr-xr-x 1 bammi 4971 Nov 10 09:22 gdryroo*
Dhrystone(1.1) time for 50000 passes = 57
This machine benchmarks at 877 dhrystones/second
------------------------
gdryroo32
text data bss stack memory
4412 180 12700 48244 65536 gdryroo32
-rwxr-xr-x 1 bammi 4758 Nov 10 09:23 gdryroo32*
Dhrystone(1.1) time for 50000 passes = 59
This machine benchmarks at 847 dhrystones/second
------------------------
%
Script done at Thu Nov 10 09:50:36 1988
NOTE:
dhry: ACK compiled dhry.c no registers
dhryr : ACK compiled dhry.c with registers
Script started at Thu Nov 10 09:57:55 1988
% for i in dhry*
> do
> echo $i
> size $i
> ls -l $i
> $i
> echo "-----------------------"
> echo
> done
dhry
text data bss stack memory
5112 362 7386 52676 65536 dhry
-rwxr-xr-x 1 bammi 5682 Nov 3 02:10 dhry*
Dhrystone(1.1) time for 50000 passes = 96
This machine benchmarks at 520 dhrystones/second
-----------------------
dhryr
text data bss stack memory
5118 362 7386 52670 65536 dhryr
-rwxr-xr-x 1 bammi 5688 Nov 10 09:50 dhryr*
Dhrystone(1.1) time for 50000 passes = 95
This machine benchmarks at 526 dhrystones/second
-----------------------
%
Script done at Thu Nov 10 10:02:41 1988
usenet: {decvax,sun}!cwjcc!dsrgsun!bammi jwahar r. bammi
csnet: bammi@dsrgsun.ces.CWRU.edu
arpa: bammi@dsrgsun.ces.CWRU.edu
compuServe: 71515,155