0ed5e74748
Fixing ripples from previous
2020-03-22 14:31:43 +02:00
17a7f29b0c
define and use syscall_XX registers
...
rather than use hardcoded r0 etc use syscall_X
change the syscalls and interpreter to use them
later use platform to map from syscall_X to actually used register (like r0 in arm)
2020-03-22 14:31:43 +02:00
3b50fee158
fix stray misc in slot
2020-03-22 14:31:43 +02:00
9f609bdb06
fix mod and tests
2020-03-22 14:31:43 +02:00
7232c28ecd
operator also fell into ssa trap
...
relying on register identity
in fact the whole operator concept was geared towards this, using 2 regs instead of one to avoid the whole issue
better now
2020-03-22 14:31:43 +02:00
3145547315
init fell into the ssa tap, fixed
...
reducing and assuming the same register, buuh
adds a transfer instruction that can hopefully be removed by analysis
2020-03-22 14:31:43 +02:00
5b0c1195e4
Fix interpreter and resolve method
...
Interpreter was not handling ssa correctly (ie overwriting)
Resolve was assuming wrong registers (also non ssa)
return value still broken
2020-03-22 14:31:43 +02:00
4db71c1c03
fix all uses of operators now they are ssa
2020-03-22 14:31:43 +02:00
f2250bc206
fix resolve and introduce method to chop strings to max
...
strings are 20 bytes. I want to implement the extension idea, just not now
2020-03-22 14:31:43 +02:00
504fc3509e
fix set_internal_word register
2020-03-22 14:31:43 +02:00
d125a1528a
Fix set_internal_byte registers
2020-03-22 14:31:43 +02:00
2656bfacb2
create a reduce_int on RegisterSlot
...
that just passes through to RegisterValue by calling to_reg
2020-03-22 14:31:43 +02:00
17a1121408
fix putstring registers
2020-03-22 14:31:43 +02:00
3a3a9277b3
fix operators registers
2020-03-22 14:31:43 +02:00
8867d60c13
fix method_missing register
...
logic is still wrong, even it is slightly less (at least loading the method name)
2020-03-22 14:31:43 +02:00
cf5a3c0102
fix inits registers
...
surprisingly easy. shorter code and more readable tests
2020-03-22 14:31:43 +02:00
8abcaa330b
fix allocate in builder
...
which accessed unknown types.
also moved assert_allocate to support
2020-03-22 14:31:43 +02:00
05ddc70fd6
fix get_internal word register names
...
seems previous commits broke the return
2020-03-22 14:31:43 +02:00
a70e510548
fix test_exit registers
2020-03-22 14:31:43 +02:00
fb4fa598f2
fix get_internal_byte
...
improved operators and tests
some logic errors still
2020-03-22 14:31:43 +02:00
c1cfc12a1c
converted resolve_method
...
Big, left till last, but surprisingly painless
2020-03-22 14:31:43 +02:00
12fe0b9a10
add constants automatically
2020-03-22 14:31:43 +02:00
e6729b8b60
fixing instruction tests
2020-03-22 14:31:43 +02:00
22d513d895
fix div4 and tests
...
also bug in reduce_int, compiler not carried through
2020-03-22 14:31:43 +02:00
eed9ba082f
Fix div10 and test
...
fix and use load_data (similar to load_constant)
and integrate into load_object when appropriate (ie for integers)
2020-03-22 14:31:43 +02:00
bd02f69824
reduce_int was overwriting register
...
No more. But the type question is open, ie what type does the resulting register have
2020-03-22 14:31:43 +02:00
1760b5b203
fix comparison test and helpers
...
moving to passing the instruction number, not the instruction
so in the error message we can say where the error is
(otherwise minitest is good enough to supress the trace of asserts calling asserts)
2020-03-22 14:31:43 +02:00
9c5d17a3bb
Fix div10 without method_missing
...
but reanimate infer_type to auto create the needed regsiters
also some helpers
2020-03-22 14:31:43 +02:00
3688c967d3
Fix comparison macro
...
which leaves a definite need for instruction level testing
2020-03-22 14:31:43 +02:00
2af953e1d2
last instruciton, dynamic_call
...
next macros
2020-03-22 14:31:43 +02:00
7f5ebab800
did block yield
2020-03-22 14:31:43 +02:00
a4c0b8e5f9
did return sequence
...
surprisingly easy. also some check polish
2020-03-22 14:31:43 +02:00
db5a59f735
Unify instruction namings also dirs
...
Was getting confused myself, where it was instruction or instructions, when if the base class was inside or out of dir.
Now dirs are plural, and base class is inside.
2020-03-22 14:31:43 +02:00
f3d299208e
fix message_setup with new builder
2020-03-22 14:31:43 +02:00
ff49ff50c0
Convert SimpleCall to new regs
...
Also fix bug in RegsiterValue/Slot with chain, where logic was dodgy and compiler not set
2020-03-22 14:31:43 +02:00
4b303977a7
Fix first Slot instruction that uses builder
...
now without method_missing and names
but still with instance_eval, hmm. Tried without, makes code much less readable
2020-03-22 14:31:43 +02:00
4888b3b6db
Starting to rework slot instructions that create risc
...
have to go through all and all macros and all thems tests. What did the wise man say: one step at a time
2020-03-22 14:31:43 +02:00
088017bc05
SA for Slotted derivations
...
Object and Constant similarity are coming more into focus. Will unite after the merge
2020-03-22 14:31:43 +02:00
393f0d9a60
fix argument transfer (to be logical)
2020-02-27 18:19:27 +02:00
685022a6e0
Externalise register allocation into own class
...
On the way to the register allocation
2020-02-27 11:57:18 +02:00
8832df3221
Add number of registers to platform
2020-02-26 19:01:01 +02:00
8df2e4bf08
SlotLanguage reborn in the Machine
...
Just added the compiler, that can parse Slot directly into SlotMachine code (no language layer in between)
Still unclear wheather the Maker is a thing, but since it was in the Language layer i did not remove it (yet)
Otherwise just the compiler and all the tests, moved from the slot_language.
2020-02-19 02:19:14 +07:00
d751c53d1d
Add a SameCheck and rename the label
...
SameCheck is very similar to NotSameCheck, but only used from the language
Label was named jump, fixed that
2020-02-19 02:16:44 +07:00
2d11078a37
Slotted constructor cleanup
2020-02-17 14:45:54 +07:00
c1679bd6ff
Makes slots linked list
...
slots used to ba an array of symbols
Now we have an object for each slot, that holds the name and the next_slot
relatively easy change, though quite broad
2020-02-17 14:29:45 +07:00
21817b182e
Start to make slots recursive
2020-02-17 14:26:50 +07:00
b7df6f66f9
rename the XX_slot classes to SlottedXX
...
move to slotted and slots (wip)
2020-02-15 21:05:04 +07:00
8b29326957
moving know_object out of the base class
...
object is only common to constant and object slots (which should be unified)
On the way to making the array recursive
2020-02-15 15:32:22 +07:00
6aa6b32c50
move slot out of instruction dir
...
since it is not an instruction, just a helper
also doing this before rewriting slot recursively
2020-02-15 14:52:44 +07:00
3c762c4fe7
Rename SlotDefinition to Slot
...
And the derived XXDefinitions to XXSlot
Just to be more consistent
And possibly free the Definition for the Language side
2020-02-11 16:19:52 +07:00