ack/mach/proto
George Koehler 054b9c87e1 Add .data8 for 8-byte literal integers to the assembler.
This takes literal integers, not expressions, because each machine
defines its own valu_t for expressions, but valu_t can be too narrow
for an 8-byte integer, and I don't want to change all the machines to
use a wider valu_t.  Instead, change how the assembler parses literal
integers.  Remove the NUMBER token and add a NUMBER8 token for an
int64_t.  The new .data8 pseudo emits all 8 bytes of the int64_t;
expressions narrow the int64_t to a valu_t.  Don't add any checks for
integer overflow; expressions and .data* pseudos continue to ignore
overflow when a number is too wide.

This commit requires int64_t and uint64_t in the C compiler to build
the assembler.  The ACK's own C compiler doesn't have these.

For the assembler's temporary file, add NUMBER4 to store 4-byte
integers.  NUMBER4 acts like NUMBER[0-3] and only stores a
non-negative integer.  Each negative integer now takes 8 bytes (up
from 4) in the temporary file.

Move the `\fI` and `\fP` in the uni_ass(6) manual, so the square
brackets in `thing [, thing]*` are not italic.  This looks nicer in my
terminal, where italic text is underlined.
2019-08-13 11:47:44 -04:00
..
as Add .data8 for 8-byte literal integers to the assembler. 2019-08-13 11:47:44 -04:00
cg ANSI C conversion 2019-05-11 01:11:54 +08:00
fp Adopt a copy of Minix 2's ed; this allows the ACK's antiquated ed scripts to 2018-06-02 18:02:51 +02:00
grind Distributions are a pain --- let's not bother any more. Instead, we just tag 2016-09-02 23:00:38 +02:00
libg Distributions are a pain --- let's not bother any more. Instead, we just tag 2016-09-02 23:00:38 +02:00
mcg When parsing constants which don't fit into an arith, handle overflow properly 2018-09-22 12:45:59 +02:00
ncg Add tests for simple and, or, and xor; drastically improve the i80 code 2019-02-08 22:38:07 +01:00
top Fix buffer overrun: if LABEL_STARTER is seen but LABEL_TERMINATOR is not, the 2016-11-13 14:04:58 +01:00