diff options
Diffstat (limited to 'backend/Selectionaux.ml')
-rw-r--r-- | backend/Selectionaux.ml | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/backend/Selectionaux.ml b/backend/Selectionaux.ml index 8acae8f2..fcf8e238 100644 --- a/backend/Selectionaux.ml +++ b/backend/Selectionaux.ml @@ -39,6 +39,7 @@ let cost_unop = function | Osingleoflong | Osingleoflongu -> assert false let cost_binop = function + | Oexpect _ -> 0 | Oadd | Osub -> 1 | Omul -> 2 | Odiv | Odivu | Omod | Omodu -> assert false @@ -73,13 +74,13 @@ let fast_cmove ty = | "arm", _ -> (match ty with Tint | Tfloat | Tsingle -> true | _ -> false) | "powerpc", "e5500" -> - (match ty with Tint -> true | Tlong -> true | _ -> false) + (match ty with Tint | Tlong -> true | _ -> false) | "powerpc", _ -> false | "riscV", _ -> false | "x86", _ -> - (match ty with Tint -> true | Tlong -> Archi.ptr64 | _ -> false) - | _, _ -> - assert false + (match ty with Tint -> true | Tlong -> Archi.ptr64 | _ -> false) + | "kvx", _ -> true + | a, m -> failwith (Printf.sprintf "fast_cmove: unknown arch %s %s" a m) (* The if-conversion heuristic depend on the -fif-conversion and -Obranchless flags. |