diff --git a/mach/m68k2/README b/mach/m68k2/README index 18d5c6e23..777f929d5 100644 --- a/mach/m68k2/README +++ b/mach/m68k2/README @@ -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.