George Koehler
a434749fd9
Widen valu_t in the assembler to 64 bits.
...
Most machines had undefined valu_t and redefined it to a different
type. Edit mach/*/as/mach0.c to remove such redefinitions, so the
next change to valu_t will affect all machines.
Edit mach/proto/as/comm0.h to change valu_t to int64_t, and add
uvalu_t and uint64_t.
Remove int64_t y_valu8 from the yacc %union, now that valu_t y_valu
can hold 64 bits. Replace y_valu8 with y_valu. The .data8 pseudo
becomes less special; it now accepts absolute expressions.
This change simplifies the assembler and seems to have no effect on
the assembled output. Among the files in share/ack/examples, the only
changes are in hilo_bas.* and startrek_c.linuxppc, but those files
seem to change whenever I rebuild them.
2019-10-04 18:58:56 -04:00
David Given
ac921080b7
Fix incorrect ori encoding.
2018-09-20 00:06:26 +02:00
David Given
ba0849c87c
Remove la; turns out that the assembler gets upset if you ask it to
...
generate more than one fixup per instruction (I think).
2018-09-14 11:30:15 +02:00
David Given
57338b1991
Fix an incorrect instruction, and incredibly broken li handling.
2018-09-12 23:59:09 +02:00
David Given
8105281534
Make sure li works properly when loading fixed up values which end up as 0. Use
...
lui rather than li to load high values.
2018-09-12 22:28:40 +02:00
David Given
8230ec42ac
Fix a subtle thinko which was causing bits 2-3 of jump targets to be reset.
2018-09-11 23:16:30 +02:00
David Given
2f8fe3ce6e
Do some cleanup; ha16[] and friends can now be used with li.
2018-09-10 23:37:04 +02:00
David Given
5dfef6f180
Rework relocations again: add RELO2HI and RELO2HISAD for the high two bytes of
...
a word.
2018-09-09 14:11:11 +02:00
David Given
b3b7c684c6
Simplify MIPS relocations. Add RELS2 (for generic high-word relocations). Add
...
support for MIPS branch-and-jump relocations.
2018-09-09 12:23:59 +02:00
David Given
75308901bc
Added hi[] and lo[] functions to the assembler; fix things enough that we now
...
get to the point of failing to link programs.
2018-09-08 22:42:06 +02:00
David Given
26c0228b14
The examples all compile now (probably incorrectly, and the libc doesn't
...
compile yet).
2018-09-04 23:55:28 +02:00
David Given
9d80756253
Lots of assembler and rule bugfixing.
2018-09-04 23:43:24 +02:00
David Given
fe5ca5a85f
Added li and la instructions.
2018-09-03 22:47:41 +02:00
David Given
26f9b4ceae
Add in floating point support to the code generator.
2018-09-03 22:06:05 +02:00
David Given
f8e71d888b
Add some painfully untested FPU instructions.
2018-09-02 21:36:09 +02:00
David Given
1d6ecddcf4
The MIPS backend is still full of holes, and cut-and-pasted PowerPC code, but
...
is beginning to look like an actual code generator.
2018-09-02 18:57:25 +02:00
David Given
4741ed8e14
Add a completely non-tested table-based MIPS assembler.
2018-09-01 19:35:31 +02:00