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:
parent
28b4a2b373
commit
25d7b8bd83
@ -61,29 +61,28 @@ module Mom
|
|||||||
|
|
||||||
# get the next message from space and unlink it there
|
# get the next message from space and unlink it there
|
||||||
# also put it into next_message of current message (and reverse)
|
# 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 )
|
def build_message_data( builder )
|
||||||
builder.build do
|
builder.build do
|
||||||
space << Parfait.object_space
|
space << Parfait.object_space
|
||||||
next_message << space[:next_message]
|
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
|
message[:next_message] << next_message
|
||||||
next_message[:caller] << 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
|
next_message[:method] << callable
|
||||||
|
|
||||||
#store next.next back into space
|
# type << callable[:arguments_type]
|
||||||
#FIXME in a multithreaded future this should be done soon after getting
|
# named_list << next_message[:arguments]
|
||||||
# the first_message, using lock free compare and swap. Now saving regs
|
# named_list[:type] << type
|
||||||
next_message << next_message[:next_message]
|
#
|
||||||
space[:next_message] << next_message
|
# type << callable[:frame_type]
|
||||||
|
# named_list << next_message[:frame]
|
||||||
|
# named_list[:type] << type
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -25,6 +25,10 @@ module Parfait
|
|||||||
|
|
||||||
attr :type
|
attr :type
|
||||||
|
|
||||||
|
def self.memory_size
|
||||||
|
16
|
||||||
|
end
|
||||||
|
|
||||||
def to_s
|
def to_s
|
||||||
str = "NamedList len= #{get_length}"
|
str = "NamedList len= #{get_length}"
|
||||||
str += " at #{Risc::Position.get(self)}" if Risc::Position.set?(self)
|
str += " at #{Risc::Position.get(self)}" if Risc::Position.set?(self)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user