diff options
Diffstat (limited to 'asmcomp/arm64/emit.mlp')
| -rw-r--r-- | asmcomp/arm64/emit.mlp | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/asmcomp/arm64/emit.mlp b/asmcomp/arm64/emit.mlp index bc0513940b..eec5915648 100644 --- a/asmcomp/arm64/emit.mlp +++ b/asmcomp/arm64/emit.mlp @@ -565,13 +565,12 @@ let emit_instr i = | Lop(Iconst_int n | Iconst_blockheader n) -> emit_intconst i.res.(0) n | Lop(Iconst_float f) -> - let b = Int64.bits_of_float f in - if b = 0L then + if f = 0L then ` fmov {emit_reg i.res.(0)}, xzr\n` - else if is_immediate_float b then - ` fmov {emit_reg i.res.(0)}, #{emit_printf "0x%Lx" b}\n` + else if is_immediate_float f then + ` fmov {emit_reg i.res.(0)}, #{emit_printf "0x%Lx" f}\n` else begin - let lbl = float_literal b in + let lbl = float_literal f in ` adrp {emit_reg reg_tmp1}, {emit_label lbl}\n`; ` ldr {emit_reg i.res.(0)}, [{emit_reg reg_tmp1}, #:lo12:{emit_label lbl}]\n` end |
