Skip to content

Commit 9a1b28e

Browse files
committed
CR
Signed-off-by: Mateusz Front <mateusz.front@swmansion.com>
1 parent 886acf3 commit 9a1b28e

1 file changed

Lines changed: 3 additions & 2 deletions

File tree

libs/jit/src/jit.erl

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1352,15 +1352,16 @@ first_pass(<<?OP_BS_GET_BINARY2, Rest0/binary>>, MMod, MSt0, State0) ->
13521352
MSt11 = MMod:sub(MSt10, SizeReg, BSOffsetReg1),
13531353
{MSt11, SizeReg};
13541354
is_integer(Size) ->
1355-
% SizeReg is binary size
1355+
% SizeReg contains binary size in bytes as a term
13561356
MSt11 =
13571357
if
13581358
(Size * Unit) rem 8 =/= 0 ->
13591359
MMod:call_primitive_last(MSt10, ?PRIM_RAISE_ERROR, [
13601360
ctx, jit_state, offset, ?UNSUPPORTED_ATOM
13611361
]);
13621362
true ->
1363-
MMod:sub(MSt10, SizeReg, (Size * Unit) div 8)
1363+
% Equivalent of SizeReg - (((Size * Unit) div 8) bsl 4)
1364+
MMod:sub(MSt10, SizeReg, (Size * Unit) bsl 1)
13641365
end,
13651366
MSt12 = cond_jump_to_label({{free, SizeReg}, '<', BSOffsetReg1}, Fail, MMod, MSt11),
13661367
{MSt12, (Size * Unit) div 8};

0 commit comments

Comments
 (0)