@@ -63,13 +63,13 @@ __lltod:
6363.else
6464.L.no_round_inexact:
6565.endif
66- ld h , b
66+ ld l , b
6767 ld a, c
68- ld l , c
68+ ld h , c
6969 pop bc
7070
7171 ex (sp), hl ; (SP) = shift
72- call __llshru
72+ call __llshru_alt
7373 add a, 51 - 1 ; compensate for the implicit mantissa bit
7474
7575 ; BC/exponent = [$434*, $43E*]
@@ -79,11 +79,10 @@ __lltod:
7979 add a, a
8080 add a, c
8181 ld c, a
82- pop af ; A = rounding
83- or a, a ; NZ = round-up, Z = no-round
82+ pop af ; C = round-up, NC = no-round
8483 ld b, $43
8584.if 0
86- jr z , .L.int_to_f64_shl.no_round
85+ jr nc , .L.int_to_f64_shl.no_round
8786 ; inlined __lladd_1
8887 inc hl
8988 add hl, de
@@ -97,7 +96,7 @@ __lltod:
9796 inc bc
9897 jr .L.int_to_f64_shl.finish
9998.else
100- call nz , __lladd_1 ; round up to even
99+ call c , __lladd_1 ; round up to even
101100 jr .L.int_to_f64_shl.finish
102101.endif
103102
@@ -138,13 +137,13 @@ __ltod:
138137 ; Maximum exponent: $434 (2^52)
139138 ; It is assumed that A is [0, 51] here, or [-52, -1] before adding 52
140139 push hl
141- ld l , a
140+ ld h , a
142141 ex (sp), hl ; (SP) = shift
143- call __llshl
144- ex (sp), hl ; (SP) = shifted HL, L = shift
142+ call __llshl_alt
143+ ex (sp), hl ; (SP) = shifted HL, H = shift
145144
146145 ld a, 51
147- sub a, l
146+ sub a, h
148147
149148 ; exponent = ($400 + (base2_logarithm - 1)) << 4
150149 ; BC = $4PPM
@@ -173,8 +172,8 @@ __ltod:
173172 .extern __lneg
174173 .extern __lctlz
175174 .extern __llctlz
176- .extern __llshl
177- .extern __llshru
175+ .extern __llshl_alt
176+ .extern __llshru_alt
178177 .extern __llneg
179178 .extern __lladd_1
180179 .extern ___fe_cur_env
0 commit comments