Skip to content

Commit

Permalink
removed targetint from lambda
Browse files Browse the repository at this point in the history
  • Loading branch information
jvanburen committed Jan 23, 2025
1 parent 1eed0a1 commit 37a8262
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 20 deletions.
17 changes: 7 additions & 10 deletions lambda/lambda.ml
Original file line number Diff line number Diff line change
Expand Up @@ -2668,9 +2668,9 @@ module Bytecode_repr = struct
let bits = function
| Unboxed_int8 -> 8
| Unboxed_int16 -> 16
| Unboxed_int32 -> 32
| Unboxed_nativeint -> Targetint.size
| Unboxed_int64 -> 64
| Unboxed_int32
| Unboxed_nativeint
| Unboxed_int64 -> failwith "not represented as a tagged integer"

let of_size = function
| (Unboxed_int8 | Unboxed_int16) as size -> Tagged size
Expand All @@ -2690,13 +2690,10 @@ end

let naked_int_cast ~src ~dst args loc =
let sign_extend arg ~bits =
let int_size = Targetint.size - 1 in
let unused_bits = int_size - bits in
if unused_bits = 0 then arg
else
let unused_bits = Lconst (const_int unused_bits) in
let left_aligned = Lprim (Plslint, [arg; unused_bits], loc) in
Lprim (Pasrint, [left_aligned; unused_bits], loc)
let int_size = Lprim (Pctconst Int_size, [Lconst const_unit], loc) in
let unused_bits = Lprim (Psubint, [int_size; Lconst(const_int bits)]) in
let left_aligned = Lprim (Plslint, [arg; unused_bits], loc) in
Lprim (Pasrint, [left_aligned; unused_bits], loc)
in
let src = Bytecode_repr.of_size src in
let dst = Bytecode_repr.of_size dst in
Expand Down
10 changes: 5 additions & 5 deletions lambda/printlambda.ml
Original file line number Diff line number Diff line change
Expand Up @@ -478,11 +478,11 @@ let peek_or_poke ppf (pp : peek_or_poke) =

let naked_integer size =
match (size : Primitive.unboxed_integer) with
| Unboxed_int8 -> "naked_i8"
| Unboxed_int16 -> "naked_i16"
| Unboxed_int32 -> "naked_i32"
| Unboxed_nativeint -> "naked_nativeint"
| Unboxed_int64 -> "naked_i64"
| Unboxed_int8 -> "int8#"
| Unboxed_int16 -> "int16#"
| Unboxed_int32 -> "int32#"
| Unboxed_nativeint -> "nativeint#"
| Unboxed_int64 -> "int64#"

let naked_integer_binop binop ni =
let binop =
Expand Down
10 changes: 5 additions & 5 deletions otherlibs/stdlib_beta/int16_u.ml
Original file line number Diff line number Diff line change
Expand Up @@ -38,15 +38,15 @@ let[@inline always] min_int () = of_int16 Int16.min_int

let[@inline always] neg x = of_int16 (Int16.neg (to_int16 x))

let[@inline always] add x y = of_int16 (Int16.add (to_int16 x) (to_int16 y))
external add : int16# -> int16# -> int16# = "%add_int16#"

let[@inline always] sub x y = of_int16 (Int16.sub (to_int16 x) (to_int16 y))
external sub : int16# -> int16# -> int16# = "%sub_int16#"

let[@inline always] mul x y = of_int16 (Int16.mul (to_int16 x) (to_int16 y))
external mul : int16# -> int16# -> int16# = "%mul_int16#"

let[@inline always] div x y = of_int16 (Int16.div (to_int16 x) (to_int16 y))
external div : int16# -> int16# -> int16# = "%sdiv_int16#"

let[@inline always] rem x y = of_int16 (Int16.rem (to_int16 x) (to_int16 y))
external rem : int16# -> int16# -> int16# = "%srem_int16#"

let[@inline always] succ x = of_int16 (Int16.succ (to_int16 x))

Expand Down

0 comments on commit 37a8262

Please sign in to comment.