90935bfbbc
risc is GREEN
...
totally, man.
Small fix in method missing fixed last block tests
(why, i do not know)
2020-03-22 15:58:19 +02:00
ddd1f4e296
fix interpreter syscall and rename return reg
...
returned int for puts was same name as implicit return int
2020-03-22 14:31:43 +02:00
be684c0c43
move message to stack_pointer
...
changing a bunch of register names
some of which get names now
2020-03-22 14:31:43 +02:00
a93a3c8af5
fix most interpreter tests
2020-03-22 14:31:43 +02:00
e4a79aac50
reset flags in interpreter
...
fix at least part of the problem why comparisons dont work
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
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
0cde7c1d0a
debugging to find operator not being ssa
2020-03-22 14:31:43 +02:00
c16ed5ab3a
fix interpreter
...
by currently not checking for old register pattern
feels like wip, but passes (all but one)
2020-03-22 14:31:43 +02:00
8832df3221
Add number of registers to platform
2020-02-26 19:01:01 +02:00
e56db0a3ac
get method name out from method_missing
2019-09-17 20:18:00 +03:00
72643ebb08
Fix last parfait bug
...
missing return statement (duh)
2019-09-10 14:49:02 +03:00
0ae7c5d8aa
hacking method not found
...
was using exit, since raise is not implemented. This was ambiguous as all programs exit.
Using :died as special kernel code and bending it, and reporting it in interpreter.
2019-09-09 11:47:37 +03:00
6811fc4174
fix interpreter to output symbols
...
which amazingly lets us get at classnames etc
2019-09-08 15:31:03 +03:00
14c965360d
a basic interpret command for cli
...
part of the benchmark effort
determine amount of objects
2019-07-25 21:23:55 +03:00
Torsten Ruger
8d3a1954fa
close #21
...
Mostly replaced Fixnum with integer
also in the rx-file dependency
all travis and testing with 2.4+
2019-02-07 18:24:35 +02:00
Torsten Ruger
165036ea39
misc
2018-07-30 10:26:47 +03:00
Torsten Ruger
6f936f190d
misc to_s and small fixes
2018-07-04 08:28:29 +03:00
Torsten Ruger
e099014d63
fix dunamic jump in interpreter and misc
2018-07-03 19:15:36 +03:00
Torsten Ruger
a1197fb70c
interpreter tests working again
2018-07-02 17:29:26 +03:00
Torsten Ruger
474cd4b348
linker and collector test work again
...
had to give space a fixed number of addresses
2018-07-02 16:19:01 +03:00
Torsten Ruger
d50893bb0f
rename risc_value to register_value
...
almost to register, but it still carries that value
2018-06-29 11:39:07 +03:00
Torsten Ruger
5ec235d049
fixes outstanding misc, All green
...
Well. it's been a while, positioning is fixed (again)
apart from the upcoming BranchListener
2018-06-10 13:19:55 +03:00
Torsten Ruger
c7ad1d98ca
introduce the LabeListener to move instructions along when first code position changes
2018-06-09 22:13:43 +03:00
Torsten Ruger
8d953a619f
propagate instruction positions
...
still overlapping onto binaries, but a start
2018-06-05 18:11:25 +03:00
Torsten Ruger
1d1c7105b4
introduce some helper methods
2018-06-02 23:02:59 +03:00
Torsten Ruger
c2d450f779
fold position module and object position
...
simpler that way, aslo code is moving to listners
2018-06-02 21:59:41 +03:00
Torsten Ruger
67100a3ef8
write adjusted address
...
and rename integer to address in label
1k hurray
2018-05-31 00:07:58 +03:00
Torsten Ruger
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
Torsten Ruger
01a2911483
using label int in interpreter
2018-05-30 11:49:29 +03:00
Torsten Ruger
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
Torsten Ruger
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
Torsten Ruger
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
Torsten Ruger
8d8cc4b016
more test fixing
...
only one bug to go
2018-05-24 21:20:56 +03:00
Torsten Ruger
183d4152d5
loading label must translate the labels too
...
(psst: like arm translator already did. duh)
2018-05-24 19:20:06 +03:00
Torsten Ruger
8d510c2e7e
getting instruction repositioning right
...
big bug hunt, involving complicated maths (%)
2018-05-24 14:27:53 +03:00
Torsten Ruger
0293320bb8
use a constant for the binary code offset
...
where the instructions start
2018-05-23 21:35:22 +03:00
Torsten Ruger
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
Torsten Ruger
ef2dc932ad
use positions in interpreter
2018-05-20 15:52:13 +03:00
Torsten Ruger
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
Torsten Ruger
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
Torsten Ruger
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
Torsten Ruger
ab4bc370ed
another +1 bug
2018-05-15 16:25:55 +03:00
Torsten Ruger
3c00239f36
another million index fixes
2018-05-14 15:17:04 +03:00
Torsten Ruger
59e6298879
first resolved call running though
...
and returning an int, as it should
just the value . . .
2018-04-08 23:45:23 +03:00
Torsten Ruger
c2860bef7a
fix interpreter operator args
...
as in binary strings words symbols will be same
2018-04-08 01:26:29 +03:00
Torsten Ruger
bf8e9e508b
opal hack
2018-04-07 22:35:48 +03:00
Torsten Ruger
4a2a1da3ff
little spring clean
2018-04-03 15:23:19 +03:00
Torsten Ruger
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
Torsten Ruger
beb487eb09
minor fixes
2018-04-02 19:31:08 +03:00