Adapted to current situation

This commit is contained in:
ceriel 1987-02-01 22:13:26 +00:00
parent ec29d3b4a1
commit 60f9744253

View file

@ -4,11 +4,9 @@ and a pointer to be 32 bits.
At present it does not support floating point operations.
(All EM floating point instructions are translated to the
68000 "trap" instruction.)
The m68k2 back end generates code for the ACK 68000 assembler/linker.
The m68k2 back end generates code for the ACK 68000 assembler.
(The mnemonics recognized by this assembler can be found in
"as/mach3.c"). As this assembler/linker does not define an
object (.o) format, it can only link assembly files. Consequently,
all library modules are stored as assembly files.
"as/mach3.c").
Some parts of the back end are system dependent, i.e. they depend
on the kind of target 68000 system.
@ -27,13 +25,12 @@ on the kind of target 68000 system.
problem. E.g. UniSoft Unix requires a "tst.b N(sp)" instruction
This instruction is generated by the routines "prolog()" and
"save" in "cg/mach.c".
- The output of the ACK 68000 assembler/linker is an a.out file that
- The output of the ACK 68000 linker is an a.out file that
has a different format as an a.out file on your system. (As most
68000 systems have different a.out formats, there is no such thing
as "the" 68000 a.out format). So a program is needed to convert the
ACK a.out format (i.e. a series of "emitrecs" as defined in
"as/frame.c") to your a.out format (as defined in
"/usr/include/a.out.h"). The 1-page program "dl/cv.c" does
ACK a.out format to your a.out format (as defined in
"/usr/include/a.out.h"). The program "cv/cv.c" does
the job for UniSoft Unix. It probably need only be slightly
modified for your system. Note that the program
generates no text or bss segments, but only a data segment.
@ -41,14 +38,12 @@ on the kind of target 68000 system.
68000, you will need a program to download the ACK a.out file.
The program "dl/dl.c" produces Intel Hex format on standard output
from an a.out file.
- The EM runtime start-off ("libem/head_em.s") may have to be modified.
- The EM runtime start-off ("libsys/head_em.s") may have to be modified.
It should call the procedure _m_a_i_n with parameters (argc,argv,envp).
Usually, Unix will put these on top of the stack before starting
the program. Note, however, that for 4-byte systems Unix will provide
a 4-byte argc, while _m_a_i_n expects a 2-byte argc; so the value
must be shortened to 2 bytes.
The head_em also does a brk() system call to allocate the bss.
(The size of the bss cannot be obtained from an ACK a.out file).
The m68k2 code generator translates most EM instructions in line.