fast-interp: Fix frame_offset pop order (#3101)

The issue was reported in #3062.
This commit is contained in:
Xu Jun 2024-01-31 19:26:27 +08:00 committed by GitHub
parent 5a99866c01
commit 51e25ef01f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 6 additions and 6 deletions

View File

@ -8231,11 +8231,11 @@ re_scan:
idx--) {
ret_type = *(func->func_type->types
+ func->func_type->param_count + idx);
POP_TYPE(ret_type);
#if WASM_ENABLE_FAST_INTERP != 0
/* emit the offset after return opcode */
POP_OFFSET_TYPE(ret_type);
#endif
POP_TYPE(ret_type);
}
RESET_STACK();
@ -8275,10 +8275,10 @@ re_scan:
if (func_type->param_count > 0) {
for (idx = (int32)(func_type->param_count - 1); idx >= 0;
idx--) {
POP_TYPE(func_type->types[idx]);
#if WASM_ENABLE_FAST_INTERP != 0
POP_OFFSET_TYPE(func_type->types[idx]);
#endif
POP_TYPE(func_type->types[idx]);
}
}
@ -8376,10 +8376,10 @@ re_scan:
if (func_type->param_count > 0) {
for (idx = (int32)(func_type->param_count - 1); idx >= 0;
idx--) {
POP_TYPE(func_type->types[idx]);
#if WASM_ENABLE_FAST_INTERP != 0
POP_OFFSET_TYPE(func_type->types[idx]);
#endif
POP_TYPE(func_type->types[idx]);
}
}

View File

@ -6028,11 +6028,11 @@ re_scan:
idx--) {
ret_type = *(func->func_type->types
+ func->func_type->param_count + idx);
POP_TYPE(ret_type);
#if WASM_ENABLE_FAST_INTERP != 0
/* emit the offset after return opcode */
POP_OFFSET_TYPE(ret_type);
#endif
POP_TYPE(ret_type);
}
RESET_STACK();
@ -6071,10 +6071,10 @@ re_scan:
if (func_type->param_count > 0) {
for (idx = (int32)(func_type->param_count - 1); idx >= 0;
idx--) {
POP_TYPE(func_type->types[idx]);
#if WASM_ENABLE_FAST_INTERP != 0
POP_OFFSET_TYPE(func_type->types[idx]);
#endif
POP_TYPE(func_type->types[idx]);
}
}
@ -6152,10 +6152,10 @@ re_scan:
if (func_type->param_count > 0) {
for (idx = (int32)(func_type->param_count - 1); idx >= 0;
idx--) {
POP_TYPE(func_type->types[idx]);
#if WASM_ENABLE_FAST_INTERP != 0
POP_OFFSET_TYPE(func_type->types[idx]);
#endif
POP_TYPE(func_type->types[idx]);
}
}