diff options
author | Xavier Leroy <xavier.leroy@inria.fr> | 2000-02-21 18:14:56 +0000 |
---|---|---|
committer | Xavier Leroy <xavier.leroy@inria.fr> | 2000-02-21 18:14:56 +0000 |
commit | b09f44025c213498435690ce22c21c1b156e2def (patch) | |
tree | ab031589d656602891d7a3c4032fbf1235266095 /stdlib/int32.ml | |
parent | 46ed578a07e80390a2721f9c6c22f7d877ef92e6 (diff) | |
download | ocaml-b09f44025c213498435690ce22c21c1b156e2def.tar.gz |
Ajout des types predefinis int32, int64, nativeint.
Ajout des primitives correspondantes dans le type lambda.
Optimisation de ces primitives dans le compilateur natif
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2839 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'stdlib/int32.ml')
-rw-r--r-- | stdlib/int32.ml | 36 |
1 files changed, 17 insertions, 19 deletions
diff --git a/stdlib/int32.ml b/stdlib/int32.ml index aad9880801..ab407aa8a1 100644 --- a/stdlib/int32.ml +++ b/stdlib/int32.ml @@ -14,22 +14,20 @@ (* Module [Int32]: 32-bit integers *) -type t - -external neg: t -> t = "int32_neg" -external add: t -> t -> t = "int32_add" -external sub: t -> t -> t = "int32_sub" -external mul: t -> t -> t = "int32_mul" -external div: t -> t -> t = "int32_div" -external rem: t -> t -> t = "int32_mod" -external logand: t -> t -> t = "int32_and" -external logor: t -> t -> t = "int32_or" -external logxor: t -> t -> t = "int32_xor" -external shift_left: t -> int -> t = "int32_shift_left" -external shift_right: t -> int -> t = "int32_shift_right" -external shift_right_logical: t -> int -> t = "int32_shift_right_unsigned" -external of_int: int -> t = "int32_of_int" -external to_int: t -> int = "int32_to_int" +external neg: int32 -> int32 = "%int32_neg" +external add: int32 -> int32 -> int32 = "%int32_add" +external sub: int32 -> int32 -> int32 = "%int32_sub" +external mul: int32 -> int32 -> int32 = "%int32_mul" +external div: int32 -> int32 -> int32 = "%int32_div" +external rem: int32 -> int32 -> int32 = "%int32_mod" +external logand: int32 -> int32 -> int32 = "%int32_and" +external logor: int32 -> int32 -> int32 = "%int32_or" +external logxor: int32 -> int32 -> int32 = "%int32_xor" +external shift_left: int32 -> int -> int32 = "%int32_lsl" +external shift_right: int32 -> int -> int32 = "%int32_asr" +external shift_right_logical: int32 -> int -> int32 = "%int32_lsr" +external of_int: int -> int32 = "%int32_of_int" +external to_int: int32 -> int = "%int32_to_int" let zero = of_int 0 let one = of_int 1 @@ -38,10 +36,10 @@ let succ n = add n one let pred n = sub n one let abs n = if n >= zero then n else neg n let min = shift_left one 31 -let max = add min one +let max = sub min one let lognot n = logxor n minus_one -external format : string -> t -> string = "int32_format" +external format : string -> int32 -> string = "int32_format" let to_string n = format "%d" n -external of_string: string -> t = "int32_of_string" +external of_string: string -> int32 = "int32_of_string" |