change to_risc and builtin code according to last commit

Wherever space was loaded to get to the next_message
we now load the Message factory.
Otherwise much the same, only the attribute is next_object, not next_message
The binary is growing with 1k objects per factory, so i had to fix (hack) arm to handle bigger constants
close #14
This commit is contained in:
Torsten Ruger
2018-09-01 11:28:53 +03:00
parent d964e9ea9d
commit f798173a09
13 changed files with 39 additions and 37 deletions

View File

@ -63,12 +63,12 @@ module Mom
# set the method into the message
def build_message_data( builder )
builder.build do
space? << Parfait.object_space
next_message? << space[:next_message]
factory? << Parfait.object_space.get_factory_for(:Message)
next_message? << factory[:next_object]
#FIXME in a multithreaded future this should be done using lock free compare and swap.
next_message_reg! << next_message[:next_message]
space[:next_message] << next_message_reg
factory[:next_object] << next_message_reg
message[:next_message] << next_message
next_message[:caller] << message

View File

@ -26,10 +26,10 @@ module Mom
object! << message[:return_value]
caller_reg! << message[:caller]
caller_reg[:return_value] << object
space! << Parfait.object_space
next_message! << space[:next_message]
factory? << Parfait.object_space.get_factory_for(:Message)
next_message! << factory[:next_object]
message[:next_message] << next_message
space[:next_message] << message
factory[:next_object] << message
end
compiler.reset_regs
builder.build do