@@ -1334,7 +1334,7 @@ first_pass(<<?OP_BS_GET_FLOAT2, Rest0/binary>>, MMod, MSt0, State0) ->
13341334 ? ASSERT_ALL_NATIVE_FREE (MSt0 ),
13351335 {Fail , Rest1 } = decode_label (Rest0 ),
13361336 {MSt1 , Src , Rest2 } = decode_typed_compact_term (Rest1 , MMod , MSt0 , State0 ),
1337- {_Live , Rest3 } = decode_literal (Rest2 ),
1337+ {Live , Rest3 } = decode_literal (Rest2 ),
13381338 {MSt2 , Size , Rest4 } = decode_typed_compact_term (Rest3 , MMod , MSt1 , State0 ),
13391339 {Unit , Rest5 } = decode_literal (Rest4 ),
13401340 {FlagsValue , Rest6 } = decode_literal (Rest5 ),
@@ -1348,24 +1348,19 @@ first_pass(<<?OP_BS_GET_FLOAT2, Rest0/binary>>, MMod, MSt0, State0) ->
13481348 MSt5 = MMod :mul (MSt4 , SizeReg , Unit ),
13491349 {MSt5 , SizeReg }
13501350 end ,
1351- {MSt7 , BSBinaryReg } = MMod :get_array_element (MSt6 , MatchStateRegPtr , 1 ),
1352- {MSt8 , BSOffsetReg } = MMod :get_array_element (MSt7 , MatchStateRegPtr , 2 ),
1353- {MSt9 , Result } = MMod :call_primitive (MSt8 , ? PRIM_BITSTRING_EXTRACT_FLOAT , [
1354- ctx , {free , BSBinaryReg }, BSOffsetReg , NumBits , {free , FlagsValue }
1351+ {MSt7 , Result } = MMod :call_primitive (MSt6 , ? PRIM_BITSTRING_EXTRACT_FLOAT , [
1352+ ctx , jit_state , {free , MatchStateRegPtr }, {free , NumBits }, {free , FlagsValue }, Live
13551353 ]),
1356- MSt10 = cond_jump_to_label ({Result , '==' , ? FALSE_ATOM }, Fail , MMod , MSt9 ),
1357- MSt11 = MMod :add (MSt10 , BSOffsetReg , NumBits ),
1358- MSt12 = MMod :free_native_registers (MSt11 , [NumBits ]),
1359- MSt13 = MMod :move_to_array_element (MSt12 , BSOffsetReg , MatchStateRegPtr , 2 ),
1360- MSt14 = MMod :free_native_registers (MSt13 , [BSOffsetReg , MatchStateRegPtr ]),
1361- {MSt15 , Dest , Rest7 } = decode_dest (Rest6 , MMod , MSt14 ),
1354+ MSt8 = handle_error_if ({Result , '==' , 0 }, MMod , MSt7 ),
1355+ MSt9 = cond_jump_to_label ({Result , '==' , ? FALSE_ATOM }, Fail , MMod , MSt8 ),
1356+ {MSt10 , Dest , Rest7 } = decode_dest (Rest6 , MMod , MSt9 ),
13621357 ? TRACE (" OP_BS_GET_FLOAT2 ~p ,~p ,~p ,~p ,~p ,~p ,~p \n " , [
1363- Fail , Src , _Live , Size , Unit , FlagsValue , Dest
1358+ Fail , Src , Live , Size , Unit , FlagsValue , Dest
13641359 ]),
1365- MSt16 = MMod :move_to_vm_register (MSt15 , Result , Dest ),
1366- MSt17 = MMod :free_native_registers (MSt16 , [Result ]),
1367- ? ASSERT_ALL_NATIVE_FREE (MSt17 ),
1368- first_pass (Rest7 , MMod , MSt17 , State0 );
1360+ MSt11 = MMod :move_to_vm_register (MSt10 , Result , Dest ),
1361+ MSt12 = MMod :free_native_registers (MSt11 , [Result ]),
1362+ ? ASSERT_ALL_NATIVE_FREE (MSt12 ),
1363+ first_pass (Rest7 , MMod , MSt12 , State0 );
13691364% 119
13701365first_pass (<<? OP_BS_GET_BINARY2 , Rest0 /binary >>, MMod , MSt0 , State0 ) ->
13711366 ? ASSERT_ALL_NATIVE_FREE (MSt0 ),
0 commit comments