aboutsummaryrefslogtreecommitdiffstats
path: root/aarch64/Machregsaux.ml
blob: 98e461ebcc745d0e2f1f4252c3b8d37508a2f4f8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
(* *********************************************************************)
(*                                                                     *)
(*              The Compcert verified compiler                         *)
(*                                                                     *)
(*         Xavier Leroy, Collège de France and INRIA Paris             *)
(*                                                                     *)
(*  Copyright Institut National de Recherche en Informatique et en     *)
(*  Automatique.  All rights reserved.  This file is distributed       *)
(*  under the terms of the INRIA Non-Commercial License Agreement.     *)
(*                                                                     *)
(* *********************************************************************)

(** Auxiliary functions on machine registers *)

let is_scratch_register s =
  s = "X16" || s = "x16" || s = "X30" || s = "x30"

let class_of_type = function
  | AST.Tint | AST.Tlong -> 0
  | AST.Tfloat | AST.Tsingle -> 1
  | AST.Tany32 | AST.Tany64 -> assert false

(* number of available registers per class *)
let nr_regs = [| 29; 32 |]