|
@@ -521,6 +521,11 @@ class DebugInfoInstruction(Instruction):
|
|
"""Gets this instruction's result type."""
|
|
"""Gets this instruction's result type."""
|
|
return self.value.get_result_type()
|
|
return self.value.get_result_type()
|
|
|
|
|
|
|
|
+ def get_result_name_override(self, code_generator):
|
|
|
|
+ """Gets a value that overrides the code generator's result name for this
|
|
|
|
+ instruction if it is not None."""
|
|
|
|
+ return self.value.get_result_name_override(code_generator)
|
|
|
|
+
|
|
def get_children(self):
|
|
def get_children(self):
|
|
"""Gets this instruction's sequence of child instructions."""
|
|
"""Gets this instruction's sequence of child instructions."""
|
|
return [self.value]
|
|
return [self.value]
|
|
@@ -532,9 +537,15 @@ class DebugInfoInstruction(Instruction):
|
|
|
|
|
|
def generate_python_def(self, code_generator):
|
|
def generate_python_def(self, code_generator):
|
|
"""Generates Python code for this instruction."""
|
|
"""Generates Python code for this instruction."""
|
|
- code_generator.source_map_builder.push_debug_info(self.debug_info)
|
|
|
|
- self.value.generate_python_def(code_generator)
|
|
|
|
- code_generator.source_map_builder.pop_debug_info(self.debug_info)
|
|
|
|
|
|
+ if self.has_result_temporary():
|
|
|
|
+ code_generator.source_map_builder.push_debug_info(self.debug_info)
|
|
|
|
+ code_generator.append_move_definition(self, self.value)
|
|
|
|
+ code_generator.source_map_builder.pop_debug_info()
|
|
|
|
+
|
|
|
|
+ def generate_python_use(self, code_generator):
|
|
|
|
+ """Generates a Python expression that retrieves this instruction's
|
|
|
|
+ result. The expression is returned as a string."""
|
|
|
|
+ return self.value.generate_python_use(code_generator)
|
|
|
|
|
|
def __repr__(self):
|
|
def __repr__(self):
|
|
return "DebugInfoInstruction(%r, %r)" % (self.value, self.debug_info)
|
|
return "DebugInfoInstruction(%r, %r)" % (self.value, self.debug_info)
|