|
@@ -395,6 +395,14 @@ class LoweringState(object):
|
|
return bytecode_to_tree.create_assign(
|
|
return bytecode_to_tree.create_assign(
|
|
self.load_definition(value.pointer), self.load_definition(value.value))
|
|
self.load_definition(value.pointer), self.load_definition(value.value))
|
|
|
|
|
|
|
|
+ def lower_input(self, _):
|
|
|
|
+ """Lowers an 'input' value."""
|
|
|
|
+ return bytecode_to_tree.create_input(self.jit.use_input_function)
|
|
|
|
+
|
|
|
|
+ def lower_output(self, value):
|
|
|
|
+ """Lowers an 'output' value."""
|
|
|
|
+ return bytecode_to_tree.create_output(self.load_definition(value.output_value))
|
|
|
|
+
|
|
value_lowerings = {
|
|
value_lowerings = {
|
|
cfg_ir.Literal : lower_literal,
|
|
cfg_ir.Literal : lower_literal,
|
|
cfg_ir.CheckLocalExists : lower_check_local_exists,
|
|
cfg_ir.CheckLocalExists : lower_check_local_exists,
|
|
@@ -403,7 +411,9 @@ class LoweringState(object):
|
|
cfg_ir.AllocateRootNode : lower_alloc_root_node,
|
|
cfg_ir.AllocateRootNode : lower_alloc_root_node,
|
|
cfg_ir.DeallocateRootNode : lower_free_root_node,
|
|
cfg_ir.DeallocateRootNode : lower_free_root_node,
|
|
cfg_ir.LoadPointer : lower_load_pointer,
|
|
cfg_ir.LoadPointer : lower_load_pointer,
|
|
- cfg_ir.StoreAtPointer : lower_store_pointer
|
|
|
|
|
|
+ cfg_ir.StoreAtPointer : lower_store_pointer,
|
|
|
|
+ cfg_ir.Input : lower_input,
|
|
|
|
+ cfg_ir.Output : lower_output
|
|
}
|
|
}
|
|
|
|
|
|
def lower_flow(self, flow):
|
|
def lower_flow(self, flow):
|