Add more checks for Fast JIT (#1433)

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
This commit is contained in:
Qiang 2022-09-01 15:31:00 +08:00 committed by GitHub
parent c64186b704
commit 18774805cc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 6 additions and 1 deletions

View File

@ -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;

View File

@ -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;
}

View File

@ -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)