def to_risc(compiler)
      entry = @cache_entry
      compiler.add_constant( entry )
      return_label = Risc.label(self, "continue_#{object_id}")
      compiler.build("DynamicCall") do
        return_address! << return_label
        next_message! << message[:next_message]
        next_message[:return_address] << return_address
        message << message[:next_message]
        cache_entry! << entry
        cache_entry << cache_entry[:cached_method]
        add_code Risc::DynamicJump.new("DynamicCall", cache_entry )
        add_code return_label
      end
    end
def to_risc(compiler)
      entry = @cache_entry
      compiler.add_constant( entry )
      return_label = Risc.label(self, "continue_#{object_id}")
      compiler.build("DynamicCall") do
        return_address! << return_label
        next_message! << message[:next_message]
        next_message[:return_address] << return_address
        message << message[:next_message]
        cache_entry! << entry
        cache_entry << cache_entry[:cached_method]
        add_code Risc::DynamicJump.new("DynamicCall", cache_entry )
        add_code return_label
      end
    end
One could almost think that one can resolve this to a Risc::FunctionCall
  (which btw resolves to a simple jump), alas, the FunctionCall, like all other
 jumping, resolves the address at compile time.

 Instead we need a DynamicJump instruction that explicitly takes a register as
 a target (not a label)