Commit Graph

39 Commits

Author SHA1 Message Date
c7ad1d98ca introduce the LabeListener to move instructions along when first code position changes 2018-06-09 22:13:43 +03:00
8d953a619f propagate instruction positions
still overlapping onto binaries, but a start
2018-06-05 18:11:25 +03:00
1d1c7105b4 introduce some helper methods 2018-06-02 23:02:59 +03:00
c2d450f779 fold position module and object position
simpler that way, aslo code is moving to listners
2018-06-02 21:59:41 +03:00
67100a3ef8 write adjusted address
and rename integer to address in label
1k hurray
2018-05-31 00:07:58 +03:00
53107d3ef8 reducing the label's int for return
placing the raw address in the register to jump to
puts the extra instruction at the risc level (not arm), thus changing a
lot of (brittle?) tests
2018-05-30 12:54:40 +03:00
01a2911483 using label int in interpreter 2018-05-30 11:49:29 +03:00
f9a89db10c use fake memory
fix integer offset bug
(which only didn’t cause errors as fixnums are still an order too big
and the famous +1 error hit the empty space)
2018-05-28 15:09:59 +03:00
c0cd1e0740 fix an issue where instruction was in wrong code
embarrassingly used instance variable where it should have been local
2018-05-25 19:16:13 +03:00
6f0fad0957 dragging the extra through resets
as the binary the instruction is in may change when repositioning
2018-05-25 19:04:48 +03:00
8d8cc4b016 more test fixing
only one bug to go
2018-05-24 21:20:56 +03:00
183d4152d5 loading label must translate the labels too
(psst: like arm translator already did. duh)
2018-05-24 19:20:06 +03:00
8d510c2e7e getting instruction repositioning right
big bug hunt, involving complicated maths (%)
2018-05-24 14:27:53 +03:00
0293320bb8 use a constant for the binary code offset
where the instructions start
2018-05-23 21:35:22 +03:00
a2e7d7c469 give interpreter a clock and pc
where the pc, like in cpu’s is the memory position.
That is what the interpreter works on.
But for humans, the clock is a simpler way to count where the program
is at, no. of instructions executed
2018-05-23 18:05:22 +03:00
ef2dc932ad use positions in interpreter 2018-05-20 15:52:13 +03:00
a7a62d53b2 use modified opal logger
logger was having bizarre format errors
copied and simplified (to get on)
2018-05-20 14:45:48 +03:00
a350325b6b fix function call and simple call logic
Before creating DynamicJump, the FunctionCall got a register for a
possible jump address. Now that is handled by DynamicJump and
FunctionCall just needs the method, from which it determines the
binaryCode address
2018-05-19 12:21:20 +03:00
15e4533a2f fix interpreter to use positions
tick from one (simulated memory) position to the next
(not from one instruction to the next)
2018-05-17 20:14:59 +03:00
ab4bc370ed another +1 bug 2018-05-15 16:25:55 +03:00
3c00239f36 another million index fixes 2018-05-14 15:17:04 +03:00
59e6298879 first resolved call running though
and returning an int, as it should
just the value .  .  .
2018-04-08 23:45:23 +03:00
c2860bef7a fix interpreter operator args
as in binary strings words symbols will be same
2018-04-08 01:26:29 +03:00
bf8e9e508b opal hack 2018-04-07 22:35:48 +03:00
4a2a1da3ff little spring clean 2018-04-03 15:23:19 +03:00
17b52d4e80 fix dynamic resolution
was loading self, when it needs to load receiver
some more test (up to the resolve) start working
2018-04-03 12:55:28 +03:00
beb487eb09 minor fixes 2018-04-02 19:31:08 +03:00
fb29fb6431 linked list of methods instead of list of methods
api changes slightly, especially for each, but mostly sama sama
2018-04-02 16:36:43 +03:00
6e941ebcb7 introduce load_data instruction
which just loads data to a register (used internally)
as opposed to integers, which are objects
2018-03-31 12:38:30 +03:00
4cc1d8455e fix util namespace
and instruction move ripples
2018-03-26 20:05:30 +03:00
4a26bec0f1 move eventable to util and rename common to util 2018-03-26 19:46:38 +03:00
3090ccffea keep risc and cpu instructions separate in method
that overwriting was a bit of thorn
2018-03-25 19:33:50 +03:00
793fa313a5 change operators to symbols 2018-03-24 17:53:27 +02:00
2c137e8c97 div10 test for interpreter 2018-03-24 12:21:46 +02:00
0f183b3a74 fix value return and test
slot load was wrong way around
2018-03-23 20:02:17 +02:00
472b1a638a add register logging and fix function return
return semantics used to be different, now only register is given
2018-03-23 18:56:38 +02:00
34903829ca fix interpreter test harness and start testing
interpreter on debug for now
2018-03-22 18:54:40 +02:00
b4489b1093 rename RiscTransfer to Transfer 2018-03-21 15:48:04 +05:30
aa79e41d1c rename register to risc
seems to fit the layer much better as we really have a very reduced
instruction set
2017-01-19 09:02:29 +02:00