Skip to content

Commit

Permalink
Add more checks for Fast JIT (bytecodealliance#1433)
Browse files Browse the repository at this point in the history
Add more checks for Fast JIT to fix the issues reported by instrument test:
- add check for the jit_value before pushing it into the stack
- add check at the end of form_and_translate_func
- add checks after each jit pass
  • Loading branch information
FromLiQg authored Sep 1, 2022
1 parent c64186b commit 1877480
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 1 deletion.
2 changes: 1 addition & 1 deletion core/iwasm/fast-jit/jit_compiler.c
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ apply_compiler_passes(JitCompContext *cc)
cc->cur_pass_no = p - jit_globals.passes;
bh_assert(*p < COMPILER_PASS_NUM);

if (!compiler_passes[*p].run(cc)) {
if (!compiler_passes[*p].run(cc) || jit_get_last_error(cc)) {
LOG_VERBOSE("JIT: compilation failed at pass[%td] = %s\n",
p - jit_globals.passes, compiler_passes[*p].name);
return false;
Expand Down
3 changes: 3 additions & 0 deletions core/iwasm/fast-jit/jit_frontend.c
Original file line number Diff line number Diff line change
Expand Up @@ -731,6 +731,9 @@ form_and_translate_func(JitCompContext *cc)
*(jit_annl_end_bcip(cc, cc->exit_label)) =
cc->cur_wasm_module->load_addr;

if (jit_get_last_error(cc)) {
return false;
}
return true;
}

Expand Down
2 changes: 2 additions & 0 deletions core/iwasm/fast-jit/jit_frontend.h
Original file line number Diff line number Diff line change
Expand Up @@ -513,6 +513,8 @@ set_local_f64(JitFrame *frame, int n, JitReg val)

#define PUSH(jit_value, value_type) \
do { \
if (!jit_value) \
goto fail; \
if (!jit_cc_push_value(cc, value_type, jit_value)) \
goto fail; \
} while (0)
Expand Down

0 comments on commit 1877480

Please sign in to comment.