diff options
author | Fabian <copy@copy.sh> | 2021-03-02 11:14:59 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-02 17:14:59 +0000 |
commit | a477306691d1230e0d9e84015a5ab7ff28d108b2 (patch) | |
tree | 3e8bca2372ac3089263f9c8d1added976e0878ea /stdlib/int32.ml | |
parent | 685f14c695ff64f849d9e0274d75ad72b4914d75 (diff) | |
download | ocaml-a477306691d1230e0d9e84015a5ab7ff28d108b2.tar.gz |
Optimise Int32.unsigned_to_int on 64-bit (#10244)
Diffstat (limited to 'stdlib/int32.ml')
-rw-r--r-- | stdlib/int32.ml | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/stdlib/int32.ml b/stdlib/int32.ml index e159851e5a..79864d6d3d 100644 --- a/stdlib/int32.ml +++ b/stdlib/int32.ml @@ -63,8 +63,8 @@ let unsigned_to_int = None | 64 -> (* So that it compiles in 32-bit *) - let move = int_of_string "0x1_0000_0000" in - fun n -> let i = to_int n in Some (if i < 0 then i + move else i) + let mask = 0xFFFF lsl 16 lor 0xFFFF in + fun n -> Some (to_int n land mask) | _ -> assert false |