summaryrefslogtreecommitdiff
path: root/stdlib/int32.ml
diff options
context:
space:
mode:
authorXavier Leroy <xavier.leroy@inria.fr>2000-02-21 18:14:56 +0000
committerXavier Leroy <xavier.leroy@inria.fr>2000-02-21 18:14:56 +0000
commitb09f44025c213498435690ce22c21c1b156e2def (patch)
treeab031589d656602891d7a3c4032fbf1235266095 /stdlib/int32.ml
parent46ed578a07e80390a2721f9c6c22f7d877ef92e6 (diff)
downloadocaml-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.ml36
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"