aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'erts/emulator/beam/utils.c')
-rw-r--r--erts/emulator/beam/utils.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/erts/emulator/beam/utils.c b/erts/emulator/beam/utils.c
index e67a793b9a..5e22aa42c8 100644
--- a/erts/emulator/beam/utils.c
+++ b/erts/emulator/beam/utils.c
@@ -2657,8 +2657,10 @@ tailrecur_ne:
switch(_NUMBER_CODE(a_tag, b_tag)) {
case SMALL_BIG:
- big = small_to_big(signed_val(a), big_buf);
- j = big_comp(big, bw);
+ j = big_sign(bw) ? 1 : -1;
+ break;
+ case BIG_SMALL:
+ j = big_sign(aw) ? -1 : 1;
break;
case SMALL_FLOAT:
GET_DOUBLE(bw, f2);
@@ -2674,10 +2676,6 @@ tailrecur_ne:
j = signed_val(a) - (Sint) f2.fd;
}
break;
- case BIG_SMALL:
- big = small_to_big(signed_val(b), big_buf);
- j = big_comp(aw, big);
- break;
case BIG_FLOAT:
GET_DOUBLE(bw, f2);
if ((f2.fd < 9007199254740990.0 && f2.fd > -9007199254740990.0)) {