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
This commit is contained in:
@ -42,9 +42,9 @@ module Register
|
||||
frame_tmp = space_tmp.next_reg_use
|
||||
# get the next_frame
|
||||
from = Parfait::Space.object_space.send( kind )
|
||||
kind_index = from.get_layout().index_of( kind )
|
||||
kind_index = from.get_layout().index_of( kind ) + 1 # should be resolve_index to hide the +1
|
||||
raise "index not found for #{kind}.#{kind.class}" unless kind_index
|
||||
new_codes << GetSlot.new( Register.frame_reg , kind_index , frame_tmp) # 2 index of next_frame
|
||||
new_codes << GetSlot.new( Register.frame_reg , kind_index , frame_tmp)
|
||||
# save next frame into space
|
||||
new_codes << SetSlot.new( frame_tmp , space_tmp , space_index)
|
||||
block.replace(code , new_codes )
|
||||
|
@ -28,7 +28,7 @@ module Register
|
||||
return Register.resolve_index( :message , :name)
|
||||
when Virtual::NewArgSlot
|
||||
puts "from: #{from.index}"
|
||||
return Register.resolve_index( :message , :name) + 1 + from.index
|
||||
return Register.resolve_index( :message , :name) + from.index
|
||||
else
|
||||
raise "not implemented for #{from.class}"
|
||||
end
|
||||
|
Reference in New Issue
Block a user