ack/mach
George Koehler e867861f6d Add 8-byte long long for linux68k.
Add rules for 8-byte integers to m68020 ncg.  Add 8-byte long long to
ACK C on linux68k.  Enable long-long tests for linux68k.  The tests
pass in our emulator using musahi; I don't have a real 68k processor
and haven't tried other emulators.

Still missing are conversions between 8-byte integers and any size of
floats.  The long-long tests don't cover these conversions, and our
emulator can't do floating-point.

Our build always enables TBL68020 and uses word size 4.  Without
TBL68020, 8-byte multiply and divide are missing.  With word size 2,
some conversions between 2-byte and 8-byte integers are missing.

Fix .cii in libem, which didn't work when converting from 1-byte or
2-byte integers.  Now .cii and .cuu work, but also add some rules to
skip .cii and .cuu when converting 8-byte integers.  The new rule for
loc 4 loc 8 cii `with test_set4` exposes a bug: the table may believe
that the condition codes test a 4-byte register when they only test a
word or byte, and this incorrect test may describe an unsigned word or
byte as negative.  Another rule `with exact test_set1+test_set2` works
around the bug by ignoring the negative flag, because a zero-extended
word or byte is never negative.

The old rules for comparison and logic do work with 8-byte integers
and bitsets, but add some specific 8-byte rules to skip libem calls or
loops.  There were no rules for 8-byte arithmetic, shift, or rotate;
so add some.  There is a register shortage, because the table requires
preserving d3 to d7, leaving only 3 data registers (d0, d1, d2) for
8-byte operations.  Because of the shortage, the code may move data to
an address register, or read a memory location more than once.

The multiplication and division code are translations of the i386
code.  They pass the tests, but might not give the best performance on
a real 68k processor.
2019-09-24 13:32:17 -04:00
..
6500 Fix several compiler warnings by adding braces 2019-05-14 23:21:19 +08:00
6800 Fix several compiler warnings by adding braces 2019-05-14 23:21:19 +08:00
6805 Fix several compiler warnings by adding braces 2019-05-14 23:21:19 +08:00
6809 Fix several compiler warnings by adding braces 2019-05-14 23:21:19 +08:00
arm Fix several compiler warnings by adding braces 2019-05-14 23:21:19 +08:00
em22 Add the core of a simple em22 platform. Unfortunately it doesn't work; the old 2018-06-10 20:25:48 +09:00
em24 Distributions are a pain --- let's not bother any more. Instead, we just tag 2016-09-02 23:00:38 +02:00
em44 Distributions are a pain --- let's not bother any more. Instead, we just tag 2016-09-02 23:00:38 +02:00
i80 Teach some ncg machines to use .data8 2019-08-13 15:37:05 -04:00
i86 Teach some ncg machines to use .data8 2019-08-13 15:37:05 -04:00
i386 Tweak i386 rules for adi 8, sli 8, sru 8. 2019-09-18 14:09:51 -04:00
m68k2 Fix several compiler warnings by adding braces 2019-05-14 23:21:19 +08:00
m68k4 Distributions are a pain --- let's not bother any more. Instead, we just tag 2016-09-02 23:00:38 +02:00
m68020 Add 8-byte long long for linux68k. 2019-09-24 13:32:17 -04:00
mantra Distributions are a pain --- let's not bother any more. Instead, we just tag 2016-09-02 23:00:38 +02:00
minix Distributions are a pain --- let's not bother any more. Instead, we just tag 2016-09-02 23:00:38 +02:00
minixST Distributions are a pain --- let's not bother any more. Instead, we just tag 2016-09-02 23:00:38 +02:00
mips Fix issue with logical operations and small signed constants which turned out 2019-02-13 20:56:10 +01:00
moon3/ncg Distributions are a pain --- let's not bother any more. Instead, we just tag 2016-09-02 23:00:38 +02:00
ns Fix several compiler warnings by adding braces 2019-05-14 23:21:19 +08:00
pdp Fix several compiler warnings by adding braces 2019-05-14 23:21:19 +08:00
pmds Distributions are a pain --- let's not bother any more. Instead, we just tag 2016-09-02 23:00:38 +02:00
pmds4 Distributions are a pain --- let's not bother any more. Instead, we just tag 2016-09-02 23:00:38 +02:00
powerpc Teach some ncg machines to use .data8 2019-08-13 15:37:05 -04:00
proto Add .data8 for 8-byte literal integers to the assembler. 2019-08-13 11:47:44 -04:00
s2650 Fix several compiler warnings by adding braces 2019-05-14 23:21:19 +08:00
sparc Distributions are a pain --- let's not bother any more. Instead, we just tag 2016-09-02 23:00:38 +02:00
sparc_solaris Distributions are a pain --- let's not bother any more. Instead, we just tag 2016-09-02 23:00:38 +02:00
sun2 Distributions are a pain --- let's not bother any more. Instead, we just tag 2016-09-02 23:00:38 +02:00
sun3 Distributions are a pain --- let's not bother any more. Instead, we just tag 2016-09-02 23:00:38 +02:00
vax4 Fix several compiler warnings by adding braces 2019-05-14 23:21:19 +08:00
vc4 Teach some ncg machines to use .data8 2019-08-13 15:37:05 -04:00
xenix3 Distributions are a pain --- let's not bother any more. Instead, we just tag 2016-09-02 23:00:38 +02:00
z80 Fix several compiler warnings by adding braces 2019-05-14 23:21:19 +08:00
z8000 Fix several compiler warnings by adding braces 2019-05-14 23:21:19 +08:00