summaryrefslogtreecommitdiff
path: root/asmcomp/amd64/emit.mlp
diff options
context:
space:
mode:
Diffstat (limited to 'asmcomp/amd64/emit.mlp')
-rw-r--r--asmcomp/amd64/emit.mlp7
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)
| _ ->