]> rtime.felk.cvut.cz Git - l4.git/blob - l4/pkg/ocaml/ocaml/contrib/asmcomp/proc.mli
Update
[l4.git] / l4 / pkg / ocaml / ocaml / contrib / asmcomp / proc.mli
1 (***********************************************************************)
2 (*                                                                     *)
3 (*                           Objective Caml                            *)
4 (*                                                                     *)
5 (*            Xavier Leroy, projet Cristal, INRIA Rocquencourt         *)
6 (*                                                                     *)
7 (*  Copyright 1996 Institut National de Recherche en Informatique et   *)
8 (*  en Automatique.  All rights reserved.  This file is distributed    *)
9 (*  under the terms of the Q Public License version 1.0.               *)
10 (*                                                                     *)
11 (***********************************************************************)
12
13 (* $Id: proc.mli 2553 1999-11-17 18:59:06Z xleroy $ *)
14
15 (* Processor descriptions *)
16
17 (* Instruction selection *)
18 val word_addressed: bool
19
20 (* Registers available for register allocation *)
21 val num_register_classes: int
22 val register_class: Reg.t -> int
23 val num_available_registers: int array
24 val first_available_register: int array
25 val register_name: int -> string
26 val phys_reg: int -> Reg.t
27 val rotate_registers: bool
28
29 (* Calling conventions *)
30 val loc_arguments: Reg.t array -> Reg.t array * int
31 val loc_results: Reg.t array -> Reg.t array
32 val loc_parameters: Reg.t array -> Reg.t array
33 val loc_external_arguments: Reg.t array -> Reg.t array * int
34 val loc_external_results: Reg.t array -> Reg.t array
35 val loc_exn_bucket: Reg.t
36
37 (* Maximal register pressures for pre-spilling *)
38 val safe_register_pressure: Mach.operation -> int
39 val max_register_pressure: Mach.operation -> int array
40
41 (* Registers destroyed by operations *)
42 val destroyed_at_oper: Mach.instruction_desc -> Reg.t array
43 val destroyed_at_raise: Reg.t array
44
45 (* Info for laying out the stack frame *)
46 val num_stack_slots: int array
47 val contains_calls: bool ref
48
49 (* Calling the assembler *)
50 val assemble_file: string -> string -> int