ack/plat/linuxmips
George Koehler 20a4d401d0 Add first long-long test for linux386.
Skip the long-long test set on other platforms, because they don't
have long long.  Each platform would need to implement 8-byte
operations like `adi 8` in its code generator, and set long long to
8 bytes in its descr file.

The first test is for negation, addition, and subtraction.  It also
requires comparison for equality.
2019-09-05 13:13:02 -04:00
..
include Add a completely non-tested table-based MIPS assembler. 2018-09-01 19:35:31 +02:00
libsys Call proper Linux system calls proper-like. 2018-09-09 18:57:12 +02:00
tests Add first long-long test for linux386. 2019-09-05 13:13:02 -04:00
boot.s Make the MIPS boot code produce correct code. 2018-09-18 23:39:04 +02:00
build-pkg.lua Added library skeletons. 2018-09-05 00:07:07 +02:00
build-tools.lua The MIPS backend is still full of holes, and cut-and-pasted PowerPC code, but 2018-09-02 18:57:25 +02:00
descr Use the correct ELF processor flags; align properly. 2018-09-09 18:57:35 +02:00
README Updated READMEs with the MIPS platform. 2018-09-18 23:49:31 +02:00

The linuxmips platform
======================

linuxmips is a little-endian MIPS32r2 BSP that produces Linux MIPS executables.

This port only implements a very limited number of system calls; basically,
just enough to make the demo apps run. Adding more is easy, but there are some
subtleties that require more thought. The port should be considered only in
proof-of-concept stage right now.

Important note: you *can't* link access ELF shared libraries from these
executables. In other words, you have to all your work from inside ACK.

IEEE floating point is available, but requires an FPU.

The executables are generated with aelfslod and are extremely simple; there's
one rwx ELF section which contains all the application's code and data. This
is not optimal, but it does work. Symbols are provided.


Bugs
====

isatty() is a stub and always returns 0.


Example command line
====================

ack -mlinuxmips -O -o linuxmips.exe examples/paranoia.c

The file linuxmips.exe can then be run on a MIPS32r2 Linux machine (or on an
emulation thereof).


David Given
dg@cowlark.com