chaning calling convention not to add frame/arg types

these types are only needed to debug and can be gotten from the method (also in the mesage)
just saving the 6 instructions for every call
This was made possible through previous commits on fake_memory access
This commit is contained in:
Torsten Ruger 2018-08-12 14:47:05 +03:00
parent 28b4a2b373
commit 25d7b8bd83
2 changed files with 18 additions and 15 deletions

View File

@ -61,29 +61,28 @@ module Mom
# get the next message from space and unlink it there
# also put it into next_message of current message (and reverse)
# set name and type data in the message, from the method loaded
# set the method into the message
def build_message_data( builder )
builder.build do
space << Parfait.object_space
next_message << space[:next_message]
#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
message[:next_message] << next_message
next_message[:caller] << message
type << callable[:arguments_type]
named_list << next_message[:arguments]
named_list[:type] << type
type << callable[:frame_type]
named_list << next_message[:frame]
named_list[:type] << type
next_message[:method] << callable
#store next.next back into space
#FIXME in a multithreaded future this should be done soon after getting
# the first_message, using lock free compare and swap. Now saving regs
next_message << next_message[:next_message]
space[:next_message] << next_message
# type << callable[:arguments_type]
# named_list << next_message[:arguments]
# named_list[:type] << type
#
# type << callable[:frame_type]
# named_list << next_message[:frame]
# named_list[:type] << type
end
end
end

View File

@ -25,6 +25,10 @@ module Parfait
attr :type
def self.memory_size
16
end
def to_s
str = "NamedList len= #{get_length}"
str += " at #{Risc::Position.get(self)}" if Risc::Position.set?(self)