[486] | 1 | /* *********************************************************************/ |
---|
| 2 | /* */ |
---|
| 3 | /* The Compcert verified compiler */ |
---|
| 4 | /* */ |
---|
| 5 | /* Xavier Leroy, INRIA Paris-Rocquencourt */ |
---|
| 6 | /* */ |
---|
| 7 | /* Copyright Institut National de Recherche en Informatique et en */ |
---|
| 8 | /* Automatique. All rights reserved. This file is distributed */ |
---|
| 9 | /* under the terms of the GNU General Public License as published by */ |
---|
| 10 | /* the Free Software Foundation, either version 2 of the License, or */ |
---|
| 11 | /* (at your option) any later version. This file is also distributed */ |
---|
| 12 | /* under the terms of the INRIA Non-Commercial License Agreement. */ |
---|
| 13 | /* */ |
---|
| 14 | /* *********************************************************************/ |
---|
| 15 | |
---|
| 16 | #include <caml/mlvalues.h> |
---|
| 17 | #include <caml/alloc.h> |
---|
| 18 | |
---|
| 19 | value cparser_int64_unsigned_to_float(value v) |
---|
| 20 | { |
---|
| 21 | return caml_copy_double((double)((uint64) Int64_val(v))); |
---|
| 22 | } |
---|
| 23 | |
---|
| 24 | value cparser_int64_unsigned_div(value v1, value v2) |
---|
| 25 | { |
---|
| 26 | return caml_copy_int64((uint64) Int64_val(v1) / (uint64) Int64_val(v2)); |
---|
| 27 | } |
---|
| 28 | |
---|
| 29 | value cparser_int64_unsigned_mod(value v1, value v2) |
---|
| 30 | { |
---|
| 31 | return caml_copy_int64((uint64) Int64_val(v1) % (uint64) Int64_val(v2)); |
---|
| 32 | } |
---|
| 33 | |
---|
| 34 | value cparser_int64_unsigned_compare(value v1, value v2) |
---|
| 35 | { |
---|
| 36 | uint64 n1 = (uint64) Int64_val(v1); |
---|
| 37 | uint64 n2 = (uint64) Int64_val(v2); |
---|
| 38 | if (n1 < n2) return Val_int(-1); |
---|
| 39 | if (n1 > n2) return Val_int(1); |
---|
| 40 | return Val_int(0); |
---|
| 41 | } |
---|
| 42 | |
---|