Torsten Ruger
|
beb487eb09
|
minor fixes
|
2018-04-02 19:31:08 +03:00 |
|
Torsten Ruger
|
65d57c8c7c
|
removing unconditional
just Branch is fine
|
2018-04-02 19:30:34 +03:00 |
|
Torsten Ruger
|
299a130761
|
small cleanup
|
2018-04-02 18:30:03 +03:00 |
|
Torsten Ruger
|
9fafbe4e96
|
remove Kernel class for clarification
since it was a class it was fake anyway
moved methods to object
|
2018-04-02 17:06:31 +03:00 |
|
Torsten Ruger
|
87eee0b66e
|
add object method missing as sys exit
functions get added twice and thus removed once
remove restriction for now
|
2018-04-02 16:49:30 +03:00 |
|
Torsten Ruger
|
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 |
|
Torsten Ruger
|
ad497b34f1
|
test interpreters event firing
|
2018-04-01 22:50:15 +03:00 |
|
Torsten Ruger
|
599679d6e8
|
simplest if
without true/false or logic
|
2018-04-01 22:42:27 +03:00 |
|
Torsten Ruger
|
48e4e3de9a
|
add returns to tests so program ends in syscall exit
|
2018-04-01 22:19:21 +03:00 |
|
Torsten Ruger
|
9efeb58061
|
fix ret_to_byte
by the now familiar unwrapping of args and wrapping of return
|
2018-04-01 22:16:17 +03:00 |
|
Torsten Ruger
|
1a19683e7d
|
fix RegToByte
seems to work, but does not end in syscall
|
2018-04-01 21:59:06 +03:00 |
|
Torsten Ruger
|
3a9539a071
|
adds multiplication
without overflow testing, like the others
|
2018-04-01 21:18:08 +03:00 |
|
Torsten Ruger
|
1d57c59dab
|
fix putstring
mainly returning an integer object rather than fixnum
|
2018-04-01 18:57:43 +03:00 |
|
Torsten Ruger
|
b1376e83bd
|
add integer minus
rework plus to make that easy
|
2018-04-01 15:26:53 +03:00 |
|
Torsten Ruger
|
972cf47c8b
|
adding returns to all builtins
|
2018-04-01 15:17:16 +03:00 |
|
Torsten Ruger
|
def67205f0
|
fix mod4
which is just shift right by 2 after all
|
2018-04-01 15:13:12 +03:00 |
|
Torsten Ruger
|
10fa61aa9f
|
fix integer plus
mostly forgot the return sequence
|
2018-04-01 14:56:01 +03:00 |
|
Torsten Ruger
|
8acfda457f
|
fix div10
by reducing the incoming integer to fixnum
and then pushing the fixnum result into a new integer
|
2018-04-01 14:50:13 +03:00 |
|
Torsten Ruger
|
5a861d4ed5
|
move some compiler helpers to the compiler itself
|
2018-04-01 14:09:30 +03:00 |
|
Torsten Ruger
|
168c2e862f
|
move wip tests
|
2018-04-01 14:01:17 +03:00 |
|
Torsten Ruger
|
5c89884df9
|
fix binary code mixup
mixed get_word with get_internal_word
|
2018-04-01 12:13:14 +03:00 |
|
Torsten Ruger
|
727069a306
|
perfectly adding two numbers
with only 7k lines of code :-)
|
2018-04-01 12:00:59 +03:00 |
|
Torsten Ruger
|
15d2b585e6
|
fix integer and data object get/set word
instance variables first, then raw data
keep value reader for now
|
2018-04-01 11:56:04 +03:00 |
|
Torsten Ruger
|
4725b81270
|
get those integers crated and used
|
2018-03-31 20:21:27 +03:00 |
|
Torsten Ruger
|
5b92b6b785
|
get plus (+) working
alas, new integer is not created yet
|
2018-03-31 19:37:24 +03:00 |
|
Torsten Ruger
|
a2173645b3
|
remove the :int shorthand
|
2018-03-31 19:17:55 +03:00 |
|
Torsten Ruger
|
696886cc94
|
remove Data2 in favour of Data4
as we write a Marker, type and marker make up 2
so data2 is just the type, not useful
|
2018-03-31 19:12:06 +03:00 |
|
Torsten Ruger
|
a5189570c6
|
fix remaining constant issues
all but integer creation
and integer builtins off course
|
2018-03-31 13:58:08 +03:00 |
|
Torsten Ruger
|
cb9f6973d9
|
fix true false and nil constant
going from mom to parfait
basics in place, more ripples to fix
|
2018-03-31 13:47:02 +03:00 |
|
Torsten Ruger
|
9e9b5c7f37
|
move to parfait integers in risc layer
loading constants means loading parfait objects
objects have to me collected in machine
integer ok, string/true/false/nil next
|
2018-03-31 13:25:59 +03:00 |
|
Torsten Ruger
|
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 |
|
Torsten Ruger
|
ee8b9469af
|
fix argument indexing
good old index bug, off by one
this time forgot about parfait 1-indexing
|
2018-03-30 20:01:31 +03:00 |
|
Torsten Ruger
|
b997f01236
|
simple arg test
yields no insights
|
2018-03-30 18:13:17 +03:00 |
|
Torsten Ruger
|
e68b28d66d
|
fix helper
and start on arg test
|
2018-03-30 18:05:38 +03:00 |
|
Torsten Ruger
|
1956f18faa
|
add an integer plus
not correctly handling integer objects yet
|
2018-03-30 17:09:02 +03:00 |
|
Torsten Ruger
|
efcc33f8a1
|
get an elf written
|
2018-03-29 20:37:25 +03:00 |
|
Torsten Ruger
|
3844a738cd
|
rename assembler to text_writer
as “assembly” really happens in the machine now
|
2018-03-29 18:17:19 +03:00 |
|
Torsten Ruger
|
e012f16d7f
|
fix positioning and the assembly works
|
2018-03-29 18:03:21 +03:00 |
|
Torsten Ruger
|
34b16a2332
|
use a binary code for the first jump
|
2018-03-29 17:39:31 +03:00 |
|
Torsten Ruger
|
00be522419
|
each word for binary
|
2018-03-29 17:38:59 +03:00 |
|
Torsten Ruger
|
7cf253ad9c
|
change assembler to write binary code objects
also all debug in hex
|
2018-03-29 12:16:27 +03:00 |
|
Torsten Ruger
|
ce58de2671
|
repeat until no more exception
move class to where it is used
|
2018-03-28 19:49:16 +03:00 |
|
Torsten Ruger
|
5eee79719d
|
reenable now working tests
|
2018-03-28 13:04:25 +03:00 |
|
Torsten Ruger
|
606e3f8cb3
|
fix calling to binaries
used to be to the method, but we assemble the method to its own
position.
Throw in a test for binary calling
|
2018-03-28 13:00:03 +03:00 |
|
Torsten Ruger
|
7493d738e1
|
have to translate the labels
and use binary as function call target
(because we don’t have the translated label)
|
2018-03-28 12:50:07 +03:00 |
|
Torsten Ruger
|
85ddf53429
|
create methods with binaries and extend them later
Binary is new jump target for function call
|
2018-03-28 12:49:17 +03:00 |
|
Torsten Ruger
|
105e8f7092
|
some better and some missing arm test
for the exceptional case
|
2018-03-28 12:16:28 +03:00 |
|
Torsten Ruger
|
fcb7f652eb
|
found the culprit
|
2018-03-28 11:37:17 +03:00 |
|
Torsten Ruger
|
500851d246
|
start on new binary creation process
now writing into BinaryCode instead of stream
also in the risc layer, not arm, for reusability
|
2018-03-27 20:47:41 +03:00 |
|
Torsten Ruger
|
2e57674008
|
remove io.write_unsigned_8
and replace with write_unsigned_32, so that is the only used
method from the stream
Next up, replace the actual “stream” with a binary code writer
|
2018-03-27 19:37:52 +03:00 |
|