do not copy name of method

so that the resolve can compare name identity
which is what is does, not equality
this (and some other bug) is crashing arm currently
This commit is contained in:
2020-03-25 12:43:57 +02:00
parent b2dce92883
commit bc558d1f0d
5 changed files with 16 additions and 11 deletions

View File

@ -72,6 +72,7 @@ module Arm
codes << ArmMachine.mov( :pc , code.register)
codes
end
def translate_DynamicJump(code)
index = Parfait.object_space.get_type_by_class_name(:CallableMethod).variable_index(:binary)
codes = ArmMachine.ldr( code.register , code.register , arm_index(index) )

View File

@ -140,6 +140,10 @@ class Symbol
#puts "LL #{l.class}"
l
end
alias :ct_type :get_type
def value
self
end
def padded_length
Parfait::Object.padded( to_s.length + 4)
end

View File

@ -38,7 +38,7 @@ module SlotMachine
# currently a fail results in sys exit
def to_risc( compiler )
builder = compiler.builder(self)
word = builder.load_object(Parfait.new_word(@name.to_s))
word = builder.load_object(@name)
entry = builder.load_object(@cache_entry)
while_start_label = Risc.label(to_s, "resolve_#{name}_#{object_id}")
ok_label = Risc.label(to_s, "ok_resolve_#{name}_#{object_id}")