fix multi level right slot load
was done for left, but forgotten for right
This commit is contained in:
parent
6e901e1718
commit
e505856af7
@ -109,15 +109,15 @@ module Mom
|
|||||||
when Symbol
|
when Symbol
|
||||||
const = Risc::SlotToReg.new( instruction , Risc.resolve_to_register(known_object) ,
|
const = Risc::SlotToReg.new( instruction , Risc.resolve_to_register(known_object) ,
|
||||||
Risc.resolve_to_index(:message , slots[0]), right)
|
Risc.resolve_to_index(:message , slots[0]), right)
|
||||||
if slots.length > 1
|
|
||||||
# desctructively replace the existing value to be loaded if more slots
|
|
||||||
index = SlotLoad.resolve_to_index(slots[0] , slots[1] ,compiler)
|
|
||||||
const << Risc::SlotToReg.new( instruction , right ,index, right)
|
|
||||||
raise "more slots not implemented #{slots}" if slots.length > 2
|
|
||||||
end
|
|
||||||
else
|
else
|
||||||
raise "We have a #{self} #{known_object}"
|
raise "We have a #{self} #{known_object}"
|
||||||
end
|
end
|
||||||
|
if slots.length > 1
|
||||||
|
# desctructively replace the existing value to be loaded if more slots
|
||||||
|
index = SlotLoad.resolve_to_index(slots[0] , slots[1] ,compiler)
|
||||||
|
const << Risc::SlotToReg.new( instruction , right ,index, right)
|
||||||
|
raise "more slots not implemented #{slots}" if slots.length > 2
|
||||||
|
end
|
||||||
const
|
const
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user