diff options
Diffstat (limited to 'asmcomp/amd64/emit.mlp')
| -rw-r--r-- | asmcomp/amd64/emit.mlp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/asmcomp/amd64/emit.mlp b/asmcomp/amd64/emit.mlp index 1e39a9490d..4c012009e7 100644 --- a/asmcomp/amd64/emit.mlp +++ b/asmcomp/amd64/emit.mlp @@ -421,12 +421,11 @@ let output_epilogue f = let float_constants = ref ([] : (int64 * int) list) let add_float_constant cst = - let repr = Int64.bits_of_float cst in try - List.assoc repr !float_constants + List.assoc cst !float_constants with Not_found -> let lbl = new_label() in - float_constants := (repr, lbl) :: !float_constants; + float_constants := (cst, lbl) :: !float_constants; lbl let emit_float_constant f lbl = @@ -470,7 +469,7 @@ let emit_instr fallthrough i = else I.mov (nat n) (res i 0) | Lop(Iconst_float f) -> - begin match Int64.bits_of_float f with + begin match f with | 0x0000_0000_0000_0000L -> (* +0.0 *) I.xorpd (res i 0) (res i 0) | _ -> |
