Torsten Ruger
9d36d72ee5
load arg type directly into the object
...
Was going through the method, but the type is just as constant and
saves 2 instructions 4 every call
2017-01-04 21:34:51 +02:00
Torsten Ruger
f0350601a7
Move the space instance to the parfait module
...
A better fit, maybe even a pattern for singletons
2016-12-30 14:10:49 +02:00
Torsten Ruger
a00f6be3ba
remove the space instance from register machine
...
bad design, probably from the booting
2016-12-30 14:04:59 +02:00
Torsten Ruger
b5f04ec718
mostly renames from the type change
...
also making setters as explicit set_xx methods
2016-12-29 18:45:32 +02:00
Torsten Ruger
e551732f18
tighter integration with factory methods for adding code
...
define methods to collapse the code Register.
in add_code Register.factory_method
most instructions done, except op and branch that are rare
2016-12-28 20:37:54 +02:00
Torsten Ruger
9cf56b3aa6
use factory functions consistently to create instructions
2016-12-28 19:01:58 +02:00
Torsten Ruger
4cf732d395
use transfer factory
2016-12-28 18:37:15 +02:00
Torsten Ruger
57c038f13b
use load_constant factory method
2016-12-28 18:31:29 +02:00
Torsten Ruger
4412eda105
small refactor and rename
2016-12-28 18:16:39 +02:00
Torsten Ruger
903fc3e4cf
much ripples from changing the calling convention
...
See previous commit
Now args and locals are arrays in the Message
2016-12-27 20:39:39 +02:00
Torsten Ruger
f648bf7bd5
rename also get_slot, to slot_to_reg
...
makes source and target clear
2016-12-25 18:05:39 +02:00
Torsten Ruger
35adf9a5e6
rename set_slot
...
set_slot was clear about the target, but not the source.
Better with reg_to_slot (and soon it’s inverse slot_to_reg)
2016-12-25 18:02:39 +02:00
Torsten Ruger
756cb52a98
renames compiler to method_compiler
2016-12-18 14:15:19 +02:00
Torsten Ruger
b3a9d8b1bc
register and boot consequences of typed method
2016-12-14 13:23:46 +02:00
Torsten Ruger
da553f996f
move compiler to typed
...
starting to get rid of soml, bit by bit
2016-12-08 15:25:20 +02:00
Torsten Ruger
f50d7b57a4
fix the putstring sys call indexing
...
index 0 is the marker word , so like in some, all indexes 1 based
works :-)
2015-11-15 22:03:06 +02:00
Torsten Ruger
6137833140
change args argument to create method to be hash
...
was array and didn’t carry types and names
2015-11-11 20:41:02 +02:00
Torsten Ruger
f2c7ed827d
simplify the __init
...
admittedly more source code, but half the runtime
mainly just using message (not new)
made possible by call sequence change
2015-11-07 21:58:19 +02:00
Torsten Ruger
834266e11e
improve label names a bit
2015-11-01 19:13:40 +02:00
Torsten Ruger
7e24f63327
polish sources
2015-10-29 22:31:28 +02:00
Torsten Ruger
191be8d2f6
use compiler to generate methods and their instructions
2015-10-28 21:37:42 +02:00
Torsten Ruger
c245272e52
don't export current
2015-10-28 14:37:40 +02:00
Torsten Ruger
ef6cb2a069
use instruction steam from message
...
had been attached there last week, but was still used mainly through
the source (which i’m trying to remove)
2015-10-28 14:33:38 +02:00
Torsten Ruger
7e0778dc70
remove return_type
...
soon to be obsolete with multi returns
2015-10-28 12:19:10 +02:00
Torsten Ruger
57f37ec023
removed blocks and moved to labels
...
somewhat easier to understand the code as a linked list
relatively painless change, considering
2015-10-23 21:27:36 +03:00
Torsten Ruger
6754518daf
prune builtin
...
will need much less, many more things can be expressed in soml
2015-10-23 15:13:05 +03:00
Torsten Ruger
dcbd3c7091
fold last of the virtual into register
2015-10-22 18:16:29 +03:00
Torsten Ruger
d767caf479
remove MethodCall and thus all virtual instructions
2015-10-18 19:27:46 +03:00
Torsten Ruger
6c7e4c0fe2
stop pinning self and frame
...
before: r0-message , r1-self , r2-frame , r3-new_message , r4 + tmps
now: r0-message , r1-new_message , r2 + tmps
programs got smaller, less fuss
also fix in return implementation that got the address from the wrong
message
2015-10-18 17:20:19 +03:00
Torsten Ruger
3d83f203ca
fixing and testing operators
2015-10-15 09:32:47 +03:00
Torsten Ruger
1141ed9c99
type now means class name
...
update reader (with new type definition)
remove type class (now symbol)
update all types to class name symbols
2015-10-14 16:16:03 +03:00
Torsten Ruger
d899d542a4
checking return type is a type
2015-10-14 14:02:34 +03:00
Torsten Ruger
dd3381e38b
move type to phial and add type to reg_ref
2015-10-10 19:14:27 +03:00
Torsten Ruger
9fe01c7b31
remove unknown type
2015-09-23 18:35:37 +03:00
Torsten Ruger
36f635f7c1
adding sources to register instructions
2015-07-27 12:13:39 +03:00
Torsten Ruger
b61c73acdd
renamed info to MethodSource
2015-07-03 20:13:03 +03:00
Torsten Ruger
69781fb505
remoe sys call message
...
and rely on linux to restore all registers
save message in r8
2015-07-02 13:48:32 +03:00
Torsten Ruger
7136450bde
move put string to string where it belongs
2015-07-01 21:45:41 +03:00
Torsten Ruger
135fcaa8fa
static message chain
...
Rewrote Message + frame, only static linked list needed, not dynamic
frames either
2015-07-01 19:27:18 +03:00
Torsten Ruger
fb67f550ec
more index fixes, this time arguments
2015-07-01 09:48:20 +03:00
Torsten Ruger
9541712af8
fixing all the indexes
...
with the type word and layout
but the list starting at 1, indexes still need 1 added
and for arm x 4.
Tried to get all that into one function, resolve_index
2015-06-30 18:38:56 +03:00
Torsten Ruger
7e9b940890
add init_message to space
...
so kernel::__init can use that and the first next_message does not need
to be reused
2015-06-30 09:52:17 +03:00
Torsten Ruger
b8090e0ecd
fix init to load into new message
2015-06-30 09:37:25 +03:00
Torsten Ruger
0f2c8e4201
finally scoping builtin to register
...
had put this off because it breaks history
but now the references to register stuff which
builtin is off course full of, become much shorter
2015-06-29 21:03:58 +03:00
Torsten Ruger
ef42abe611
unifying register comstants
...
were in several files with different names
many files touched, but just renames
2015-06-27 21:16:46 +03:00
Torsten Ruger
97b4c469f8
fixing register order in some instructions
...
and their use
Arm is confusing as it has result as first arg
we use forward logic, i.e. from -> to
2015-06-27 20:09:21 +03:00
Torsten Ruger
32e1903884
finished init routine
...
and better implemented sys calls
2015-06-25 16:31:09 +03:00
Torsten Ruger
1a82ebcd69
mor on sys call implementation
2015-06-23 19:55:54 +03:00
Torsten Ruger
2aba926f1f
start on reworking sys calls
2015-06-22 22:48:42 +03:00
Torsten Ruger
cdf17a73b2
changed Set order
...
from to seems more logical than to,from
2015-06-21 13:29:27 +03:00