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:
Torsten Ruger
2015-06-30 18:38:56 +03:00
parent 88f45cbf15
commit 9541712af8
7 changed files with 16 additions and 14 deletions

View File

@ -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 )

View File

@ -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