ack/mach/powerpc/libem
George Koehler 9077b3a5ab Teach mcg to pass our tests.
Tests pass if one edits the top build.lua to uncomment "qemuppc" from
both vars.plats and vars.plats_with_tests, and one leaves mcg in
plat/qemuppc/descr.

Add or correct some EM instructions in treebuilder.c:
 - "lof", "stf": handle negative offsets in load() and store().
 - "cuu": add using IR_FROMUI.
 - "lim", "sim": keep an entire word in ".ignmask", to be compatible
   with mach/powerpc/libem/trp.s and ncg.  We also keep a word in
   ".ignmask" in ncg for both i386 and m68020.
 - "trp": pass trap number in register.  See comment in
   helper_function_with_arg().
 - "sig": push the old value of .trppc on the stack.
 - "and ?", "ior ?", "xor ?", "com ?", "cms ?", "set ?", "inn ?":
   connect to helper functions in libem.
 - "blm", "bls": drop call to memmove() and use new helper ".bls4",
   because tests/plat/structcopy_e.c can't call memmove().
 - "xor s", "cms s": if s is large, fall back on helper function.
 - "rol", "ror": add by decomposing each rotate into 4 IR ops.
 - "rck s", "bls s": make fatal unless s is word size.
 - "loi": push multiple loads in the correct order.
 - "dup s", "exg s": if s is large, fall back on helper.
 - "dus": add using new helper ".dus4".
 - "lxl", "lxa": follow the static chain, not the dynamic chain.
 - "lor 1": materialise the stack before pushing the stack pointer.
 - "lor 2", "str 2": make fatal.
 - "los", "sts": drop calls to memcpy() and use helpers ".los4" and
   and ".sts4", so lang/m2/libm2/LtoUset.e starts working.
 - "gto": correctly read descriptor.

Change mach/powerpc/mcg/table:
 - ANY.L: add for "asp -8".
 - LOAD.L: work around register corruption.
 - COMPAREUL.I: add for "cms 8".
2018-01-31 21:05:40 -05:00
..
aar4.s Add test for EM _rck_. Fix traps in PowerPC ncg. 2017-12-24 22:37:52 -05:00
and.s Use lwzu, stwu to tighten more loops. 2017-10-18 12:12:42 -04:00
bls4.s Teach mcg to pass our tests. 2018-01-31 21:05:40 -05:00
build.lua Teach mcg to pass our tests. 2018-01-31 21:05:40 -05:00
cfi8.s In PowerPC libem, use the new features of our assembler. 2017-01-23 17:16:39 -05:00
cfu8.s Add fef 4, fif 4. Improve fef 8, fif 8. Other float changes. 2018-01-22 14:04:15 -05:00
cif8.s Stop inlining code to convert integers to floats. 2017-10-17 17:00:28 -04:00
cms.s Use lwzu, stwu to tighten more loops. 2017-10-18 12:12:42 -04:00
com.s Use lwzu, stwu to tighten more loops. 2017-10-18 12:12:42 -04:00
csa.s Add test for EM _rck_. Fix traps in PowerPC ncg. 2017-12-24 22:37:52 -05:00
csb.s Add test for EM _rck_. Fix traps in PowerPC ncg. 2017-12-24 22:37:52 -05:00
cuf8.s Stop inlining code to convert integers to floats. 2017-10-17 17:00:28 -04:00
dus4.s Teach mcg to pass our tests. 2018-01-31 21:05:40 -05:00
exg.s Revise stack shuffles and integer conversions in PowerPC ncg. 2017-12-09 18:57:10 -05:00
fd_00000000.s In PowerPC libem, use the new features of our assembler. 2017-01-23 17:16:39 -05:00
fef4.s Add fef 4, fif 4. Improve fef 8, fif 8. Other float changes. 2018-01-22 14:04:15 -05:00
fef8.s Add fef 4, fif 4. Improve fef 8, fif 8. Other float changes. 2018-01-22 14:04:15 -05:00
fif4.s Add fef 4, fif 4. Improve fef 8, fif 8. Other float changes. 2018-01-22 14:04:15 -05:00
fif8.s Add fef 4, fif 4. Improve fef 8, fif 8. Other float changes. 2018-01-22 14:04:15 -05:00
inn.s Add some comments before I forget how this stuff works. 2018-01-24 15:17:32 -05:00
ior.s Use lwzu, stwu to tighten more loops. 2017-10-18 12:12:42 -04:00
lar4.s Use .los4 in lar 4 and .sts4 in sar 4. 2017-02-13 15:22:00 -05:00
los4.s Use .los4 in lar 4 and .sts4 in sar 4. 2017-02-13 15:22:00 -05:00
rck.s Add some comments before I forget how this stuff works. 2018-01-24 15:17:32 -05:00
sar4.s Use .los4 in lar 4 and .sts4 in sar 4. 2017-02-13 15:22:00 -05:00
set.s Add some comments before I forget how this stuff works. 2018-01-24 15:17:32 -05:00
sts4.s Use .los4 in lar 4 and .sts4 in sar 4. 2017-02-13 15:22:00 -05:00
trp.s Add test for EM _rck_. Fix traps in PowerPC ncg. 2017-12-24 22:37:52 -05:00
xor.s Use lwzu, stwu to tighten more loops. 2017-10-18 12:12:42 -04:00
zer.s Use lwzu, stwu to tighten more loops. 2017-10-18 12:12:42 -04:00