Adapted to current situation
This commit is contained in:
parent
ec29d3b4a1
commit
60f9744253
|
@ -4,11 +4,9 @@ and a pointer to be 32 bits.
|
||||||
At present it does not support floating point operations.
|
At present it does not support floating point operations.
|
||||||
(All EM floating point instructions are translated to the
|
(All EM floating point instructions are translated to the
|
||||||
68000 "trap" instruction.)
|
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
|
(The mnemonics recognized by this assembler can be found in
|
||||||
"as/mach3.c"). As this assembler/linker does not define an
|
"as/mach3.c").
|
||||||
object (.o) format, it can only link assembly files. Consequently,
|
|
||||||
all library modules are stored as assembly files.
|
|
||||||
|
|
||||||
Some parts of the back end are system dependent, i.e. they depend
|
Some parts of the back end are system dependent, i.e. they depend
|
||||||
on the kind of target 68000 system.
|
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
|
problem. E.g. UniSoft Unix requires a "tst.b N(sp)" instruction
|
||||||
This instruction is generated by the routines "prolog()" and
|
This instruction is generated by the routines "prolog()" and
|
||||||
"save" in "cg/mach.c".
|
"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
|
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
|
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
|
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
|
ACK a.out format to your a.out format (as defined in
|
||||||
"as/frame.c") to your a.out format (as defined in
|
"/usr/include/a.out.h"). The program "cv/cv.c" does
|
||||||
"/usr/include/a.out.h"). The 1-page program "dl/cv.c" does
|
|
||||||
the job for UniSoft Unix. It probably need only be slightly
|
the job for UniSoft Unix. It probably need only be slightly
|
||||||
modified for your system. Note that the program
|
modified for your system. Note that the program
|
||||||
generates no text or bss segments, but only a data segment.
|
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.
|
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
|
The program "dl/dl.c" produces Intel Hex format on standard output
|
||||||
from an a.out file.
|
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).
|
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
|
Usually, Unix will put these on top of the stack before starting
|
||||||
the program. Note, however, that for 4-byte systems Unix will provide
|
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
|
a 4-byte argc, while _m_a_i_n expects a 2-byte argc; so the value
|
||||||
must be shortened to 2 bytes.
|
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.
|
The m68k2 code generator translates most EM instructions in line.
|
||||||
|
|
Loading…
Reference in a new issue