Andrea Gussoni 1f1ceb7172 Initialized repo with Rodinia 3.1 8 年 前
..
README 1f1ceb7172 Initialized repo with Rodinia 3.1 8 年 前
TC-README 1f1ceb7172 Initialized repo with Rodinia 3.1 8 年 前
TC-machine-2.h 1f1ceb7172 Initialized repo with Rodinia 3.1 8 年 前
TC-machine.h 1f1ceb7172 Initialized repo with Rodinia 3.1 8 年 前
machine.h 1f1ceb7172 Initialized repo with Rodinia 3.1 8 年 前

README

README file for compiling Meschach with Think C
===============================================

Received 8th June, 1995 from Brent Boyer (boyer@jumpjibe.stanford.edu).


I have modified this file to make the Meschach routines work on a
Macintosh with THINK C 7.0.4. I realize that THINK C is now on
version 8.x and that Metrowerk's CodeWarrior is a competetive
development environment, but 7.0.4 is what I have available. My
system is a Quadra 650 running MacOS 7.5.1. The compile options
described below should work for any 68K Mac with a floating point
unit; they probably have to be modified for Power Macs.

Below I describe the steps I took to build a library project for all
the Meschach routines.


Step 1)
_________

First create an appropriate version of THINK's ANSI library.
What I did was copy their project "ANSI" to one I called
"ANSI(020, 881, 4b ints)". I then selected these compiler ("THINK
C...") options before bringing the project up to date:

-- first, under "Language Settings"
1) choose "Factory Settings"
2) also change "Infer prototypes" to "Require prototypes"
(as a former Pascal programmer, I curse the
person who introduced infered prototypes!)
(Note: you _cannot_ choose "ANSI Settings"; if
you do, then the compilation of the ANSI
project will fail! Talk to the people at
Symantec about this one ...)

-- next, under "Compiler Settings"
1) turn "Generate 68020 instructions" ON
2) turn "Generate 68881 instructions" ON
3) turn "4-byte ints" ON
(so int == long int <==> 32 bits)
4) make sure that "8-byte doubles" turned OFF
(so double == long double)
5) turn "Native floating-point format" ON

(The other options probably do not matter either way)

(Note: 2) and 5) ==> type double will be the 96 bit
MC68881 floating point extended precision type;
these options give the best speed and good accuracy too)

-- optionally, under "Code Optimization"
1) turn "Use Global Optimizer" ON


Step 2)
_________

Create a project ("Meschach") containing all the Meschach
routines that can serve as a library. After opening a new project
("ANSI Project" type) to which you added all the source code files,
select these compiler ("THINK C...") options before bringing the
project up to date:
-- first, under "Language Settings"
1) choose "ANSI Settings"
(tragically, will have to leave "Infer prototypes" on)

-- next, under "Compiler Settings", make the same choices as
when compiled "ANSI(020, 881, 4b ints)"
1) turn "Generate 68020 instructions" ON
2) turn "Generate 68881 instructions" ON
3) turn "4-byte ints" ON (so int == long int <==> 32 bits)
4) make sure that "8-byte doubles" turned OFF
(so double == long double)
5) turn "Native floating-point format" ON

(Note: the THINK C compiler, quite correctly, insists
that pointer types agree exactly.
This means that the function "px_sign" in the file
"pxop.c" will not compile unless the line
numtransp = myqsort(px2->pe, px2->size);
is replaced with
numtransp = myqsort( (int *) px2->pe, px2->size );
since the field "pe" is a pointer to type u_int, not
an int, which the function "myqsort" expects.
I made this change.)
[D.Stewart: This change will be made to the next
distribution of Meschach.]

You should then be able to simply add this project to any of your own
projects so that it functions as a library. The original "machine.h"
file may be found in the folder "origStuff" along with the *.shar
files.


-- Brent Boyer
6/7/95

[Note: The file MACHINES/ThinkC/totalMacSetup.hqx has been moved to the
top directory, and is not automatically part of the main distribution.
The reason for this is the amount of space it takes up.

-- David Stewart, 8th Sept., 1995.]