99 open Hints_declaration
147 val dpi1__o__Reg_to_dec__o__inject :
148 (I8051.register, 'a1) Types.dPair -> Interference.decision Types.sig0
150 val eject__o__Reg_to_dec__o__inject :
151 I8051.register Types.sig0 -> Interference.decision Types.sig0
153 val reg_to_dec__o__inject :
154 I8051.register -> Interference.decision Types.sig0
156 val dpi1__o__Reg_to_dec :
157 (I8051.register, 'a1) Types.dPair -> Interference.decision
159 val eject__o__Reg_to_dec : I8051.register Types.sig0 -> Interference.decision
162 | Arg_decision_colour of I8051.register
163 | Arg_decision_spill of Nat.nat
164 | Arg_decision_imm of BitVector.byte
166 val arg_decision_rect_Type4 :
167 (I8051.register -> 'a1) -> (Nat.nat -> 'a1) -> (BitVector.byte -> 'a1) ->
170 val arg_decision_rect_Type5 :
171 (I8051.register -> 'a1) -> (Nat.nat -> 'a1) -> (BitVector.byte -> 'a1) ->
174 val arg_decision_rect_Type3 :
175 (I8051.register -> 'a1) -> (Nat.nat -> 'a1) -> (BitVector.byte -> 'a1) ->
178 val arg_decision_rect_Type2 :
179 (I8051.register -> 'a1) -> (Nat.nat -> 'a1) -> (BitVector.byte -> 'a1) ->
182 val arg_decision_rect_Type1 :
183 (I8051.register -> 'a1) -> (Nat.nat -> 'a1) -> (BitVector.byte -> 'a1) ->
186 val arg_decision_rect_Type0 :
187 (I8051.register -> 'a1) -> (Nat.nat -> 'a1) -> (BitVector.byte -> 'a1) ->
190 val arg_decision_inv_rect_Type4 :
191 arg_decision -> (I8051.register -> __ -> 'a1) -> (Nat.nat -> __ -> 'a1) ->
192 (BitVector.byte -> __ -> 'a1) -> 'a1
194 val arg_decision_inv_rect_Type3 :
195 arg_decision -> (I8051.register -> __ -> 'a1) -> (Nat.nat -> __ -> 'a1) ->
196 (BitVector.byte -> __ -> 'a1) -> 'a1
198 val arg_decision_inv_rect_Type2 :
199 arg_decision -> (I8051.register -> __ -> 'a1) -> (Nat.nat -> __ -> 'a1) ->
200 (BitVector.byte -> __ -> 'a1) -> 'a1
202 val arg_decision_inv_rect_Type1 :
203 arg_decision -> (I8051.register -> __ -> 'a1) -> (Nat.nat -> __ -> 'a1) ->
204 (BitVector.byte -> __ -> 'a1) -> 'a1
206 val arg_decision_inv_rect_Type0 :
207 arg_decision -> (I8051.register -> __ -> 'a1) -> (Nat.nat -> __ -> 'a1) ->
208 (BitVector.byte -> __ -> 'a1) -> 'a1
210 val arg_decision_discr : arg_decision -> arg_decision -> __
212 val arg_decision_jmdiscr : arg_decision -> arg_decision -> __
214 val dpi1__o__Reg_to_arg_dec__o__inject :
215 (I8051.register, 'a1) Types.dPair -> arg_decision Types.sig0
217 val eject__o__Reg_to_arg_dec__o__inject :
218 I8051.register Types.sig0 -> arg_decision Types.sig0
220 val reg_to_arg_dec__o__inject : I8051.register -> arg_decision Types.sig0
222 val dpi1__o__Reg_to_arg_dec :
223 (I8051.register, 'a1) Types.dPair -> arg_decision
225 val eject__o__Reg_to_arg_dec : I8051.register Types.sig0 -> arg_decision
227 val preserve_carry_bit :
228 AST.ident List.list -> Bool.bool -> Joint.joint_seq List.list ->
229 Joint.joint_seq List.list
233 val dpi1__o__beval_of_byte__o__inject :
234 (BitVector.byte, 'a1) Types.dPair -> ByteValues.beval Types.sig0
236 val eject__o__beval_of_byte__o__inject :
237 BitVector.byte Types.sig0 -> ByteValues.beval Types.sig0
239 val beval_of_byte__o__inject : BitVector.byte -> ByteValues.beval Types.sig0
241 val dpi1__o__beval_of_byte :
242 (BitVector.byte, 'a1) Types.dPair -> ByteValues.beval
244 val eject__o__beval_of_byte : BitVector.byte Types.sig0 -> ByteValues.beval
246 val set_dp_by_offset :
247 AST.ident List.list -> Nat.nat -> Joint.joint_seq List.list
250 AST.ident List.list -> Nat.nat -> I8051.register -> Nat.nat ->
251 Joint.joint_seq List.list
253 val set_stack_not_a :
254 AST.ident List.list -> Nat.nat -> Nat.nat -> I8051.register ->
255 Joint.joint_seq List.list
258 AST.ident List.list -> Nat.nat -> Nat.nat -> Joint.joint_seq List.list
261 AST.ident List.list -> Nat.nat -> Nat.nat -> I8051.register ->
262 Joint.joint_seq List.list
265 AST.ident List.list -> Nat.nat -> Nat.nat -> BitVector.byte ->
266 Joint.joint_seq List.list
269 AST.ident List.list -> Nat.nat -> Bool.bool -> Interference.decision ->
270 arg_decision -> Joint.joint_seq List.list
272 val arg_is_spilled : arg_decision -> Bool.bool
274 val is_spilled : Interference.decision -> Bool.bool
276 val newframe : AST.ident List.list -> Nat.nat -> Joint.joint_seq List.list
278 val delframe : AST.ident List.list -> Nat.nat -> Joint.joint_seq List.list
280 val commutative : BackEndOps.op2 -> Bool.bool
282 val uses_carry : BackEndOps.op2 -> Bool.bool
284 val sets_carry : BackEndOps.op2 -> Bool.bool
287 AST.ident List.list -> Nat.nat -> Bool.bool -> BackEndOps.op2 ->
288 Interference.decision -> arg_decision -> arg_decision -> Joint.joint_seq
291 val translate_op2_smart :
292 AST.ident List.list -> Nat.nat -> Bool.bool -> BackEndOps.op2 ->
293 Interference.decision -> arg_decision -> arg_decision -> Joint.joint_seq
296 val dec_to_arg_dec : Interference.decision -> arg_decision
298 val reg_to_dec__o__dec_arg_dec__o__inject :
299 I8051.register -> arg_decision Types.sig0
301 val dpi1__o__Reg_to_dec__o__dec_arg_dec__o__inject :
302 (I8051.register, 'a1) Types.dPair -> arg_decision Types.sig0
304 val eject__o__Reg_to_dec__o__dec_arg_dec__o__inject :
305 I8051.register Types.sig0 -> arg_decision Types.sig0
307 val dpi1__o__dec_arg_dec__o__inject :
308 (Interference.decision, 'a1) Types.dPair -> arg_decision Types.sig0
310 val eject__o__dec_arg_dec__o__inject :
311 Interference.decision Types.sig0 -> arg_decision Types.sig0
313 val dec_arg_dec__o__inject : Interference.decision -> arg_decision Types.sig0
315 val reg_to_dec__o__dec_arg_dec : I8051.register -> arg_decision
317 val dpi1__o__Reg_to_dec__o__dec_arg_dec :
318 (I8051.register, 'a1) Types.dPair -> arg_decision
320 val eject__o__Reg_to_dec__o__dec_arg_dec :
321 I8051.register Types.sig0 -> arg_decision
323 val dpi1__o__dec_arg_dec :
324 (Interference.decision, 'a1) Types.dPair -> arg_decision
326 val eject__o__dec_arg_dec : Interference.decision Types.sig0 -> arg_decision
329 AST.ident List.list -> Nat.nat -> Bool.bool -> BackEndOps.op1 ->
330 Interference.decision -> Interference.decision -> Joint.joint_seq List.list
332 val translate_opaccs :
333 AST.ident List.list -> Nat.nat -> Bool.bool -> BackEndOps.opAccs ->
334 Interference.decision -> Interference.decision -> arg_decision ->
335 arg_decision -> Joint.joint_seq List.list
338 AST.ident List.list -> Nat.nat -> arg_decision -> arg_decision ->
339 Joint.joint_seq List.list
341 val translate_store :
342 AST.ident List.list -> Nat.nat -> Bool.bool -> arg_decision -> arg_decision
343 -> arg_decision -> Joint.joint_seq List.list
346 AST.ident List.list -> Nat.nat -> Bool.bool -> Interference.decision ->
347 arg_decision -> arg_decision -> Joint.joint_seq List.list
349 val translate_address :
350 __ List.list -> Nat.nat -> Bool.bool -> __ -> BitVector.word ->
351 Interference.decision -> Interference.decision -> Joint.joint_seq List.list
354 AST.ident List.list -> Joint.joint_internal_function -> Nat.nat ->
355 Fixpoints.valuation -> Interference.coloured_graph -> Nat.nat ->
356 Graphs.label -> Joint.joint_step -> Blocks.bind_step_block
358 val translate_fin_step :
359 AST.ident List.list -> Graphs.label -> Joint.joint_fin_step ->
360 Blocks.bind_fin_block
363 Fixpoints.fixpoint_computer -> Interference.coloured_graph_computer ->
364 AST.ident List.list -> Joint.joint_closed_internal_function ->
365 (Registers.register, TranslateUtils.b_graph_translate_data)
369 Fixpoints.fixpoint_computer -> Interference.coloured_graph_computer ->
370 ERTL.ertl_program -> ((LTL.ltl_program, Joint.stack_cost_model) Types.prod,