Skip to content

Commit 040f33d

Browse files
committed
OP_BS_*UTF*: replace VERIFY_IS_MATCH_STATE with asserts
Erlang compiler refuses to compile assembly if src is not a match state. For example: ``` test_op_bs_get_utf8_asm:1: function bs_get_utf8/1+4: Internal consistency check failed - please report this bug. Instruction: {test,bs_skip_utf16, {f,3}, [{x,0},3,{field_flags,[unsigned,big]}]} Error: {bad_type,{needed,{t_bs_context,1}},{actual,any}}: ``` So we can assume we always have a match state. Signed-off-by: Paul Guyot <pguyot@kallisys.net>
1 parent 2285afb commit 040f33d

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

src/libAtomVM/opcodesswitch.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4043,7 +4043,7 @@ HOT_FUNC int scheduler_entry_point(GlobalContext *glb)
40434043
#ifdef IMPL_EXECUTE_LOOP
40444044
TRACE("bs_get_utf8/5, fail=%i src=0x%lx arg2=0x%lx arg3=0x%lx dreg=%c%i\n", fail, src, arg2, arg3, T_DEST_REG(dreg));
40454045

4046-
VERIFY_IS_MATCH_STATE(src, "bs_get_utf8");
4046+
assert(term_is_match_state(src));
40474047

40484048
term src_bin = term_get_match_state_binary(src);
40494049
avm_int_t offset_bits = term_get_match_state_offset(src);
@@ -4080,7 +4080,7 @@ HOT_FUNC int scheduler_entry_point(GlobalContext *glb)
40804080
#ifdef IMPL_EXECUTE_LOOP
40814081
TRACE("bs_skip_utf8/4, fail=%i src=0x%lx arg2=0x%lx arg3=0x%lx\n", fail, src, arg2, arg3);
40824082

4083-
VERIFY_IS_MATCH_STATE(src, "bs_get_utf8");
4083+
assert(term_is_match_state(src));
40844084

40854085
term src_bin = term_get_match_state_binary(src);
40864086
avm_int_t offset_bits = term_get_match_state_offset(src);
@@ -4180,7 +4180,7 @@ HOT_FUNC int scheduler_entry_point(GlobalContext *glb)
41804180
#ifdef IMPL_EXECUTE_LOOP
41814181
TRACE("bs_get_utf16/5, fail=%i src=0x%lx arg2=0x%lx flags=0x%"PRIu32" dreg=%c%i\n", fail, src, arg2, flags_value, T_DEST_REG(dreg));
41824182

4183-
VERIFY_IS_MATCH_STATE(src, "bs_get_utf16");
4183+
assert(term_is_match_state(src));
41844184

41854185
term src_bin = term_get_match_state_binary(src);
41864186
avm_int_t offset_bits = term_get_match_state_offset(src);
@@ -4217,7 +4217,7 @@ HOT_FUNC int scheduler_entry_point(GlobalContext *glb)
42174217
#ifdef IMPL_EXECUTE_LOOP
42184218
TRACE("bs_skip_utf16/5, fail=%i src=0x%lx arg2=0x%lx flags=0x%lx\n", fail, src, arg2, flags);
42194219

4220-
VERIFY_IS_MATCH_STATE(src, "bs_skip_utf16");
4220+
assert(term_is_match_state(src));
42214221

42224222
term src_bin = term_get_match_state_binary(src);
42234223
avm_int_t offset_bits = term_get_match_state_offset(src);
@@ -4293,7 +4293,7 @@ HOT_FUNC int scheduler_entry_point(GlobalContext *glb)
42934293
#ifdef IMPL_EXECUTE_LOOP
42944294
TRACE("bs_get_utf32/5, fail=%i src=0x%lx arg2=0x%lx flags=0x%"PRIu32" dreg=%c%i\n", fail, src, arg2, flags_value, T_DEST_REG(dreg));
42954295

4296-
VERIFY_IS_MATCH_STATE(src, "bs_get_utf32");
4296+
assert(term_is_match_state(src));
42974297

42984298
term src_bin = term_get_match_state_binary(src);
42994299
avm_int_t offset_bits = term_get_match_state_offset(src);
@@ -4329,7 +4329,7 @@ HOT_FUNC int scheduler_entry_point(GlobalContext *glb)
43294329
#ifdef IMPL_EXECUTE_LOOP
43304330
TRACE("bs_skip_utf32/5, fail=%i src=0x%lx arg2=0x%lx flags=0x%lx\n", fail, src, arg2, flags);
43314331

4332-
VERIFY_IS_MATCH_STATE(src, "bs_skip_utf32");
4332+
assert(term_is_match_state(src));
43334333

43344334
term src_bin = term_get_match_state_binary(src);
43354335
avm_int_t offset_bits = term_get_match_state_offset(src);

0 commit comments

Comments
 (0)