Support sendable class

Issue: https://gitee.com/openharmony/arkcompiler_ets_frontend/issues/I8O7O2wq

Signed-off-by: huyunhui <huyunhui1@huawei.com>
Change-Id: I9fdcaac9a239d8d0f56ed8a783adf14e57bfb887
This commit is contained in:
huyunhui 2023-12-24 08:21:50 +00:00
parent 00fda7f9ea
commit a4b767e6e9
3 changed files with 34 additions and 4 deletions

View File

@ -540,6 +540,13 @@ static void AddBytecodeIndexDependencies(MethodItem *method, const Function &fun
AddDependencyByIndex(method, insn, entities.literalarray_items, 1);
continue;
}
if (insn.opcode == Opcode::CALLRUNTIME_DEFINESENDABLECLASS) {
AddDependencyByIndex(method, insn, entities.method_items);
AddDependencyByIndex(method, insn, entities.literalarray_items, 1);
continue;
}
if (insn.HasFlag(InstFlags::METHOD_ID)) {
AddDependencyByIndex(method, insn, entities.method_items);
continue;

View File

@ -255,7 +255,7 @@ isa_information:
last_throw_prefixed_opcode_idx: 0x09
last_wide_prefixed_opcode_idx: 0x13
last_deprecated_prefixed_opcode_idx: 0x2e
last_callruntime_prefixed_opcode_idx: 0x06
last_callruntime_prefixed_opcode_idx: 0x0a
prefixes:
- name: throw
@ -818,6 +818,29 @@ groups:
format: [pref_op_imm_8_v_8]
prefix: callruntime
properties: [jit_ic_slot, two_slot]
- sig: callruntime.definesendableclass imm1, method_id, literalarray_id, imm2, v:in:top
acc: out:top
opcode_idx: [0x07]
format: [pref_op_imm1_16_id1_16_id2_16_imm2_16_v_8]
prefix: callruntime
properties: [method_id, ic_slot, one_slot, literalarray_id]
- sig: callruntime.newsendablelexenv imm
acc: out:top
opcode_idx: [0x08]
format: [pref_op_imm_16]
prefix: callruntime
- sig: callruntime.definesendablemethod imm1, method_id, imm2
acc: inout:top
opcode_idx: [0x09]
format: [pref_op_imm1_8_id_16_imm2_8]
prefix: callruntime
properties: [method_id, ic_slot, one_slot]
- sig: callruntime.createsendableprivateproperty imm, literalarray_id
acc: none
opcode_idx: [0x0a]
format: [pref_op_imm_16_id_16]
prefix: callruntime
properties: [literalarray_id]
- title: throw instructions
description: throw instructions

View File

@ -560,14 +560,14 @@ bool CheckHeader(const os::mem::ConstBytePtr &ptr, const std::string_view &filen
LOG(ERROR, PANDAFILE) << "Unable to open file '" << filename << "' with bytecode version "
<< VersionToString(file_version);
if (file_version < minVersion) {
LOG(ERROR, PANDAFILE) << "Minimum supported abc file version on the current system image is "
LOG(ERROR, PANDAFILE) << "Minimum supported abc file version on the current system image is "
<< VersionToString(minVersion)
<< "Please upgrade the sdk tools to generate supported version of abc files \
or execute the abc file on former version of system image"
or execute the abc file on former version of system image";
} else {
LOG(ERROR, PANDAFILE) << "Maximum supported abc file version on the current system image is "
<< VersionToString(version)
<< "Please upgrade the system image or use former version of SDK tools to generate abc files"
<< "Please upgrade the system image or use former version of SDK tools to generate abc files";
}
return false;
}