1b1994897Sopenharmony_ci# Copyright (c) 2021-2022 Huawei Device Co., Ltd. 2b1994897Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License"); 3b1994897Sopenharmony_ci# you may not use this file except in compliance with the License. 4b1994897Sopenharmony_ci# You may obtain a copy of the License at 5b1994897Sopenharmony_ci# 6b1994897Sopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0 7b1994897Sopenharmony_ci# 8b1994897Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software 9b1994897Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS, 10b1994897Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11b1994897Sopenharmony_ci# See the License for the specific language governing permissions and 12b1994897Sopenharmony_ci# limitations under the License. 13b1994897Sopenharmony_ci 14b1994897Sopenharmony_ci--- 15b1994897Sopenharmony_ci 16b1994897Sopenharmony_cichapters: 17b1994897Sopenharmony_ci - name: General design 18b1994897Sopenharmony_ci text: > 19b1994897Sopenharmony_ci VM is register based with dedicated accumulator register, which serves as an implicit operand to instructions. 20b1994897Sopenharmony_ci 21b1994897Sopenharmony_ci - name: Registers 22b1994897Sopenharmony_ci text: > 23b1994897Sopenharmony_ci Registers are wide enough to hold a single reference when working with objects. 24b1994897Sopenharmony_ci When used for primitive types, registers width should be considered as 64 bits. 25b1994897Sopenharmony_ci When used for object types, registers should be considered wide enough to hold a reference to an object. 26b1994897Sopenharmony_ci The scope of a register is function frame (also known as activation record). If instruction defines not all 64 27b1994897Sopenharmony_ci bits of a register, undefined bits shall not be accessed in verified code. 28b1994897Sopenharmony_ci Register field width in instruction encoding could be 4 (16 addressable registers), 8 (256 registers) or 29b1994897Sopenharmony_ci 16 (65536 registers) bits. 30b1994897Sopenharmony_ci 31b1994897Sopenharmony_ci - name: Accumulator 32b1994897Sopenharmony_ci text: > 33b1994897Sopenharmony_ci Accumulator is a special register which is implicitly used by instructions as a source and/or destination operand. 34b1994897Sopenharmony_ci The main goal of using accumulator is to improve encoding density without losing much in performance. Therefore, 35b1994897Sopenharmony_ci the general intuition regarding accumulator usage is to utilize the accumulator as much as possible taking it as 36b1994897Sopenharmony_ci a source from previous instruction result and passing it to the next instruction in its destination operand. 37b1994897Sopenharmony_ci Moreover, when instruction has more than one source operands, the value which lives shorter should be passed 38b1994897Sopenharmony_ci through the accumulator. If it is profitable however, variations of instructions that don't write into the 39b1994897Sopenharmony_ci accumulator are also introduced. For example, moving arguments for `call.range` instruction may be done by 40b1994897Sopenharmony_ci register-to-register moves. 41b1994897Sopenharmony_ci 42b1994897Sopenharmony_ci - name: Calling sequence 43b1994897Sopenharmony_ci text: > 44b1994897Sopenharmony_ci On execution of a call bytecode a new function frame is created. All necessary arguments are copied from the 45b1994897Sopenharmony_ci caller frame onto the top of the callee frame such as the last argument is placed in the register with the largest 46b1994897Sopenharmony_ci index and the first argument is placed into the register with the index equal to the size of frame subtracted by 47b1994897Sopenharmony_ci the number of arguments. Accumulator value is considered as undefined and shall not be read in verified bytecode. 48b1994897Sopenharmony_ci On return, callee frame is destroyed. If function return value is non-void, it is passed to caller via 49b1994897Sopenharmony_ci accumulator. Otherwise accumulator content in caller frame is considered as undefined and shall not 50b1994897Sopenharmony_ci be read in verified bytecode. 51b1994897Sopenharmony_ci 52b1994897Sopenharmony_ci - name: Supported primitive types 53b1994897Sopenharmony_ci text: | 54b1994897Sopenharmony_ci VM support operations on registers with i32 and i64 integral values. However, 8-bit and 16-bit integral values 55b1994897Sopenharmony_ci can be loaded/stored into records and arrays with corresponding bytecodes. In that case, VM will extend/truncate 56b1994897Sopenharmony_ci value to match storage size with i32. Similarly, passing an 8-bit or 16-bit value to a function can be emulated by 57b1994897Sopenharmony_ci passing a value, which is zero or sign-extended to i32. 58b1994897Sopenharmony_ci VM support operations on registers with f32 and f64 values, which corresponds to IEEE-754 single and double precision 59b1994897Sopenharmony_ci floating-point represenation. 60b1994897Sopenharmony_ci Primitive data type of a register is not tracked by VM and is interpreted by separate bytecodes. 61b1994897Sopenharmony_ci Integral values are not inherently signed or unsigned, signedness is interpreted by bytecodes as well. 62b1994897Sopenharmony_ci If bytecode treats register value as signed integer, it uses two's complement representation. 63b1994897Sopenharmony_ci To denote that bytecode treats register values as unsigned integer, u32/u64 notation is used. 64b1994897Sopenharmony_ci For moves, loads and stores it is not always possible to denote a type of result, because it depends on type 65b1994897Sopenharmony_ci of source object. In that case, bNN notation is used, where NN is bit size of result. Therefore, for example, 66b1994897Sopenharmony_ci b64 is a union of f64 and i64. 67b1994897Sopenharmony_ci 68b1994897Sopenharmony_ci ### Floating-point literals 69b1994897Sopenharmony_ci 70b1994897Sopenharmony_ci Decimal floating-point literals can have the following parts: 71b1994897Sopenharmony_ci 72b1994897Sopenharmony_ci - Sign ("`+`" or "`-`") 73b1994897Sopenharmony_ci - Whole number part 74b1994897Sopenharmony_ci - Decimal point 75b1994897Sopenharmony_ci - Fractional part 76b1994897Sopenharmony_ci - Exponent indicator ("`e`") 77b1994897Sopenharmony_ci - Exponent sign 78b1994897Sopenharmony_ci - Exponent 79b1994897Sopenharmony_ci 80b1994897Sopenharmony_ci Decimal floating-point literals must have at least one digit and either decimal point or exponent part. 81b1994897Sopenharmony_ci 82b1994897Sopenharmony_ci Special values: 83b1994897Sopenharmony_ci 84b1994897Sopenharmony_ci - Positive zero (+0.0, hexadecimal representation is `0x0000000000000000`) 85b1994897Sopenharmony_ci - Negative zero (-0.0, hexadecimal representation is `0x8000000000000000`) 86b1994897Sopenharmony_ci - Minimal positive value (4.9E-324, hexadecimal representation is `0x0000000000000001`) 87b1994897Sopenharmony_ci - Maximal negative value (-4.9E-324, hexadecimal representation is `0x8000000000000001`) 88b1994897Sopenharmony_ci - Maximal positive value (1.7976931348623157e308, hexadecimal representation is `0x7fefffffffffffff`) 89b1994897Sopenharmony_ci - Minimal negative value (-1.7976931348623157e308, hexadecimal representation is `0xffefffffffffffff`) 90b1994897Sopenharmony_ci - Positive infinity (hexadecimal representation is `0x7ff0000000000000`) 91b1994897Sopenharmony_ci - Negative infinity (hexadecimal representation is `0xfff0000000000000`) 92b1994897Sopenharmony_ci - Not a number - set of all NaN values (one of hexadecimal representations is `0x7ff8000000000000`) 93b1994897Sopenharmony_ci 94b1994897Sopenharmony_ci - name: Language-dependent types 95b1994897Sopenharmony_ci text: > 96b1994897Sopenharmony_ci Panda VM supports type hierarchies according to the language it executes. That way, creation (or loading 97b1994897Sopenharmony_ci from constant pool) of strings, arrays, exception objects results into an object of type native to language, 98b1994897Sopenharmony_ci including inheritance relations. 99b1994897Sopenharmony_ci 100b1994897Sopenharmony_ci - name: Dynamically-typed languages support 101b1994897Sopenharmony_ci text: > 102b1994897Sopenharmony_ci Panda VM supports languages with dynamic types. It represents dynamic values through special 'any' values, 103b1994897Sopenharmony_ci which wraps a value itself (both primitive and objects) and corresponding type info. VM tracks type of registers, 104b1994897Sopenharmony_ci that hold 'any' value, whether they are primitive or not. Virtual registers and accumulator are wide enough 105b1994897Sopenharmony_ci to hold 'any' value. When VM executes code inside dynamically-typed language context, regular static instructions 106b1994897Sopenharmony_ci also may be used. 107b1994897Sopenharmony_ci 108b1994897Sopenharmony_ci# File format and ISA versioning 109b1994897Sopenharmony_cimin_version: 0.0.0.2 110b1994897Sopenharmony_civersion: 13.0.0.0 111b1994897Sopenharmony_ci 112b1994897Sopenharmony_ci# 0 is default value, alaways reflects to the newest version. 113b1994897Sopenharmony_ci# Due to historical reasons, bytecode version is upgraded to 13.0.0.0 in API15. 114b1994897Sopenharmony_ciapi_version_map: [[0, 13.0.0.0], [9, 9.0.0.0], [10, 9.0.0.0], [11, 11.0.2.0], [12, 12.0.6.0], [13, 12.0.6.0], 115b1994897Sopenharmony_ci [14, 12.0.6.0], [15, 13.0.0.0]] 116b1994897Sopenharmony_ci 117b1994897Sopenharmony_ci# When delete bytecode or having any incompatible modification on bytecode, 118b1994897Sopenharmony_ci# please add the incompatible version in this list for prompting error message. 119b1994897Sopenharmony_ciincompatible_version: [11.0.0.0, 11.0.1.0] 120b1994897Sopenharmony_ci 121b1994897Sopenharmony_ciproperties: 122b1994897Sopenharmony_ci - tag: type_id 123b1994897Sopenharmony_ci description: Use an id which resolves into a type constant. 124b1994897Sopenharmony_ci - tag: method_id 125b1994897Sopenharmony_ci description: Use an id which resolves into a method constant. 126b1994897Sopenharmony_ci - tag: string_id 127b1994897Sopenharmony_ci description: Use an id which resolves into a string constant. 128b1994897Sopenharmony_ci - tag: literalarray_id 129b1994897Sopenharmony_ci description: Use an id which resolves into a constant literalarray. 130b1994897Sopenharmony_ci - tag: field_id 131b1994897Sopenharmony_ci description: Use an id which resolves into a field reference. 132b1994897Sopenharmony_ci - tag: call 133b1994897Sopenharmony_ci description: Pass control to the callee method. 134b1994897Sopenharmony_ci - tag: call_virt 135b1994897Sopenharmony_ci description: Pass control to the callee method via virtual call. 136b1994897Sopenharmony_ci - tag: return 137b1994897Sopenharmony_ci description: Pass control to the caller method. 138b1994897Sopenharmony_ci - tag: suspend 139b1994897Sopenharmony_ci description: Suspend current method and pass control to the caller one. 140b1994897Sopenharmony_ci - tag: jump 141b1994897Sopenharmony_ci description: Pass control to another bytecode in a current method. 142b1994897Sopenharmony_ci - tag: conditional 143b1994897Sopenharmony_ci description: Operate based on computed condition, otherwise is no operation. 144b1994897Sopenharmony_ci - tag: float 145b1994897Sopenharmony_ci description: Perform floating point operation. 146b1994897Sopenharmony_ci - tag: dynamic 147b1994897Sopenharmony_ci description: Operates on 'any' values. 148b1994897Sopenharmony_ci - tag: maybe_dynamic 149b1994897Sopenharmony_ci description: May operate on 'any' values depending on language context. 150b1994897Sopenharmony_ci - tag: language_type 151b1994897Sopenharmony_ci description: Creates objects of type depending on language context. 152b1994897Sopenharmony_ci - tag: initialize_type 153b1994897Sopenharmony_ci description: May initialize type instance during execution. 154b1994897Sopenharmony_ci - tag: ic_slot 155b1994897Sopenharmony_ci description: Use the immedate number after opcode of length 8-bit or 16-bit as ic slot. 156b1994897Sopenharmony_ci - tag: jit_ic_slot 157b1994897Sopenharmony_ci description: Use the immedate number after opcode of length 8-bit as jit ic slot. 158b1994897Sopenharmony_ci - tag: one_slot 159b1994897Sopenharmony_ci description: The intruction occupies one ic slot. 160b1994897Sopenharmony_ci - tag: two_slot 161b1994897Sopenharmony_ci description: The intruction occupies two ic slots. 162b1994897Sopenharmony_ci - tag: eight_bit_ic 163b1994897Sopenharmony_ci description: The instruction occupies ic slots of 8 bit width. 164b1994897Sopenharmony_ci - tag: sixteen_bit_ic 165b1994897Sopenharmony_ci description: The instruction occupies ic slots of 16 bit width. 166b1994897Sopenharmony_ci - tag: eight_sixteen_bit_ic 167b1994897Sopenharmony_ci description: The instruction occupies ic slots of both 8 and 16 bit width. 168b1994897Sopenharmony_ci - tag: conditional_throw 169b1994897Sopenharmony_ci description: The throw instruction can throw an excepton only if certain conditions are met. 170b1994897Sopenharmony_ci - tag: range_0 171b1994897Sopenharmony_ci description: Indicates that the instruction takes some consective registers as inputs. 172b1994897Sopenharmony_ci The start register of these consective inputs is the last register of the instruction. 173b1994897Sopenharmony_ci The number of consective inputs is the last immediate of the instruction. 174b1994897Sopenharmony_ci - tag: range_1 175b1994897Sopenharmony_ci description: Indicates that the instruction takes some consective registers as inputs. 176b1994897Sopenharmony_ci The start register of these consective inputs is the last register of the instruction. 177b1994897Sopenharmony_ci The number of consective inputs is the last immediate of the instruction plus 1. 178b1994897Sopenharmony_ci 179b1994897Sopenharmony_ciexceptions: 180b1994897Sopenharmony_ci - tag: x_none 181b1994897Sopenharmony_ci description: Bytecode doesn't throw exceptions. 182b1994897Sopenharmony_ci - tag: x_null 183b1994897Sopenharmony_ci description: Bytecode throws NullPointerException in case of null reference as a source. 184b1994897Sopenharmony_ci - tag: x_bounds 185b1994897Sopenharmony_ci description: Bytecode throws ArrayIndexOutOfBoundsException if index is out of bounds of an array. 186b1994897Sopenharmony_ci - tag: x_negsize 187b1994897Sopenharmony_ci description: Bytecode throws NegativeArraySizeException if index is less than zero. 188b1994897Sopenharmony_ci - tag: x_store 189b1994897Sopenharmony_ci description: Bytecode throws ArrayStoreException if element isn't instance of array's element type. 190b1994897Sopenharmony_ci - tag: x_abstract 191b1994897Sopenharmony_ci description: Bytecode throws AbstractMethodError if resolved method has no implementation. 192b1994897Sopenharmony_ci - tag: x_arith 193b1994897Sopenharmony_ci description: Bytecode throws ArithmeticException if the divisor is 0. 194b1994897Sopenharmony_ci - tag: x_cast 195b1994897Sopenharmony_ci description: Bytecode throws ClassCastException if type cast failed. 196b1994897Sopenharmony_ci - tag: x_classdef 197b1994897Sopenharmony_ci description: Bytecode throws NoClassDefFoundError if type cast failed. 198b1994897Sopenharmony_ci - tag: x_oom 199b1994897Sopenharmony_ci description: Bytecode throws OutOfMemoryError if failed to allocate object. 200b1994897Sopenharmony_ci - tag: x_init 201b1994897Sopenharmony_ci description: Bytecode throws ExceptionInInitializerError if unexpected exception occurred in a static initializer. 202b1994897Sopenharmony_ci - tag: x_call 203b1994897Sopenharmony_ci description: Bytecode may throw an error if an exception occures in the called bytecode. 204b1994897Sopenharmony_ci - tag: x_throw 205b1994897Sopenharmony_ci description: Bytecode's primary role is to throw provided exception object. 206b1994897Sopenharmony_ci - tag: x_link 207b1994897Sopenharmony_ci description: Bytecode may throw NoClassDefFoundError if failed to resolve id. 208b1994897Sopenharmony_civerification: 209b1994897Sopenharmony_ci - tag: none 210b1994897Sopenharmony_ci description: Instruction is always valid. 211b1994897Sopenharmony_ci - tag: v1_array 212b1994897Sopenharmony_ci description: First operand contains a reference to an array. 213b1994897Sopenharmony_ci - tag: v1_object 214b1994897Sopenharmony_ci description: First operand contains a reference to an object (other than array). 215b1994897Sopenharmony_ci - tag: v1_array_type 216b1994897Sopenharmony_ci # TODO: specify 217b1994897Sopenharmony_ci description: First operand contains a reference to an array of elements of type corresponding to bytecode. 218b1994897Sopenharmony_ci - tag: v1_i32 219b1994897Sopenharmony_ci description: First operand contains a value of i32 type. 220b1994897Sopenharmony_ci - tag: v1_type 221b1994897Sopenharmony_ci description: First operand contains a value of type corresponding to bytecode. 222b1994897Sopenharmony_ci - tag: v1_obj_or_null 223b1994897Sopenharmony_ci description: First operand contains a reference to an object or null. 224b1994897Sopenharmony_ci - tag: v2_i32 225b1994897Sopenharmony_ci description: Second operand contains a value of i32 type. 226b1994897Sopenharmony_ci - tag: v2_object 227b1994897Sopenharmony_ci description: Second operand contains a reference to an object (other than array). 228b1994897Sopenharmony_ci - tag: v2_type 229b1994897Sopenharmony_ci description: Second operand contains a value of type corresponding to bytecode. 230b1994897Sopenharmony_ci - tag: acc_i32 231b1994897Sopenharmony_ci description: Accumulator contains a value of i32 type. 232b1994897Sopenharmony_ci - tag: acc_type 233b1994897Sopenharmony_ci description: Accumulator contains a value of type corresponding to bytecode. # TODO: specify 234b1994897Sopenharmony_ci - tag: acc_return_type 235b1994897Sopenharmony_ci # TODO: specify, including assignment compatibility (see Java 'areturn') 236b1994897Sopenharmony_ci description: Accumulator type is compatible with method return type. 237b1994897Sopenharmony_ci - tag: v1_throw_type 238b1994897Sopenharmony_ci description: First operand contains a reference to an instance of class Throwable or of a subclass of Throwable. 239b1994897Sopenharmony_ci - tag: acc_obj_or_null 240b1994897Sopenharmony_ci description: Accumulator contains a reference to an object or null. 241b1994897Sopenharmony_ci - tag: type_id_array 242b1994897Sopenharmony_ci description: Type_id operand must correspond to an array type. 243b1994897Sopenharmony_ci - tag: type_id_object 244b1994897Sopenharmony_ci description: Type_id operand must correspond to an object type (other than array). 245b1994897Sopenharmony_ci - tag: type_id_any_object 246b1994897Sopenharmony_ci description: Type_id operand must correspond to any object type. 247b1994897Sopenharmony_ci - tag: method_id_static 248b1994897Sopenharmony_ci description: Method_id must resolve to a static method or into initializer for a type other than one-dimensional array. 249b1994897Sopenharmony_ci - tag: method_id_non_static 250b1994897Sopenharmony_ci description: Method_id must resolve to a non-static method. 251b1994897Sopenharmony_ci - tag: method_id_non_abstract 252b1994897Sopenharmony_ci description: Method_id must resolve to a method that has implementation. 253b1994897Sopenharmony_ci - tag: method_id_accessible 254b1994897Sopenharmony_ci description: Method_id must resolve to a method which is accessible. 255b1994897Sopenharmony_ci - tag: constant_string_id 256b1994897Sopenharmony_ci description: Id must resolve into a constant-pool string. 257b1994897Sopenharmony_ci - tag: constant_literalarray_id 258b1994897Sopenharmony_ci description: Id must resolve into a constant literalarray. 259b1994897Sopenharmony_ci - tag: compatible_arguments 260b1994897Sopenharmony_ci description: Arguments provided to a method must be of compatible types. # TODO: specify compatibility 261b1994897Sopenharmony_ci - tag: method_init_obj 262b1994897Sopenharmony_ci description: Method_id must resolve into initializer for a type other than one-dimensional array. 263b1994897Sopenharmony_ci - tag: branch_target 264b1994897Sopenharmony_ci description: Branch target should point to a beginning of an instruction of the same method. 265b1994897Sopenharmony_ci - tag: field_id_non_static 266b1994897Sopenharmony_ci description: Field_id must resolve to a non-static object field. 267b1994897Sopenharmony_ci - tag: field_id_static 268b1994897Sopenharmony_ci description: Field_id must resolve to a static field. 269b1994897Sopenharmony_ci - tag: field_id_size 270b1994897Sopenharmony_ci description: Field_id must resolve to a field of size corresponding to bytecode. 271b1994897Sopenharmony_ci - tag: valid_in_dynamic_context 272b1994897Sopenharmony_ci description: Instruction valid only for dynamically-typed language context. 273b1994897Sopenharmony_ci 274b1994897Sopenharmony_ciisa_information: 275b1994897Sopenharmony_ci - description: The last encoding number of various ISA. It should be maintained as long as ISA changes. 276b1994897Sopenharmony_ci last_opcode_idx: 0xdc 277b1994897Sopenharmony_ci last_throw_prefixed_opcode_idx: 0x09 278b1994897Sopenharmony_ci last_wide_prefixed_opcode_idx: 0x13 279b1994897Sopenharmony_ci last_deprecated_prefixed_opcode_idx: 0x2e 280b1994897Sopenharmony_ci last_callruntime_prefixed_opcode_idx: 0x19 281b1994897Sopenharmony_ci 282b1994897Sopenharmony_ciprefixes: 283b1994897Sopenharmony_ci - name: throw 284b1994897Sopenharmony_ci description: throw operations. 285b1994897Sopenharmony_ci opcode_idx: 0xfe 286b1994897Sopenharmony_ci - name: wide 287b1994897Sopenharmony_ci description: operations with wider width. 288b1994897Sopenharmony_ci opcode_idx: 0xfd 289b1994897Sopenharmony_ci - name: deprecated 290b1994897Sopenharmony_ci description: deprecated instructions but are keeped for compatibility. 291b1994897Sopenharmony_ci opcode_idx: 0xfc 292b1994897Sopenharmony_ci - name: callruntime 293b1994897Sopenharmony_ci description: call runtime methods. 294b1994897Sopenharmony_ci opcode_idx: 0xfb 295b1994897Sopenharmony_ci 296b1994897Sopenharmony_cigroups: 297b1994897Sopenharmony_ci - title: constant object loaders 298b1994897Sopenharmony_ci description: instructions which operate on constant objects. 299b1994897Sopenharmony_ci verification: 300b1994897Sopenharmony_ci - none 301b1994897Sopenharmony_ci exceptions: 302b1994897Sopenharmony_ci - x_none 303b1994897Sopenharmony_ci properties: 304b1994897Sopenharmony_ci - acc_read 305b1994897Sopenharmony_ci - acc_write 306b1994897Sopenharmony_ci namespace: ecmascript 307b1994897Sopenharmony_ci pseudo: | 308b1994897Sopenharmony_ci acc = ecma_op(acc, operand_0, ..., operands_n) 309b1994897Sopenharmony_ci semantics: | 310b1994897Sopenharmony_ci skip 311b1994897Sopenharmony_ci instructions: 312b1994897Sopenharmony_ci - sig: ldnan 313b1994897Sopenharmony_ci acc: out:top 314b1994897Sopenharmony_ci opcode_idx: [0x6a] 315b1994897Sopenharmony_ci format: [op_none] 316b1994897Sopenharmony_ci - sig: ldinfinity 317b1994897Sopenharmony_ci acc: out:top 318b1994897Sopenharmony_ci opcode_idx: [0x6b] 319b1994897Sopenharmony_ci format: [op_none] 320b1994897Sopenharmony_ci - sig: ldundefined 321b1994897Sopenharmony_ci acc: out:top 322b1994897Sopenharmony_ci opcode_idx: [0x00] 323b1994897Sopenharmony_ci format: [op_none] 324b1994897Sopenharmony_ci - sig: ldnull 325b1994897Sopenharmony_ci acc: out:top 326b1994897Sopenharmony_ci opcode_idx: [0x01] 327b1994897Sopenharmony_ci format: [op_none] 328b1994897Sopenharmony_ci - sig: ldsymbol 329b1994897Sopenharmony_ci acc: out:top 330b1994897Sopenharmony_ci opcode_idx: [0xad] 331b1994897Sopenharmony_ci format: [op_none] 332b1994897Sopenharmony_ci - sig: ldglobal 333b1994897Sopenharmony_ci opcode_idx: [0x6d] 334b1994897Sopenharmony_ci acc: out:top 335b1994897Sopenharmony_ci format: [op_none] 336b1994897Sopenharmony_ci - sig: ldtrue 337b1994897Sopenharmony_ci acc: out:top 338b1994897Sopenharmony_ci opcode_idx: [0x02] 339b1994897Sopenharmony_ci format: [op_none] 340b1994897Sopenharmony_ci - sig: ldfalse 341b1994897Sopenharmony_ci acc: out:top 342b1994897Sopenharmony_ci opcode_idx: [0x03] 343b1994897Sopenharmony_ci format: [op_none] 344b1994897Sopenharmony_ci - sig: ldhole 345b1994897Sopenharmony_ci acc: out:top 346b1994897Sopenharmony_ci opcode_idx: [0x70] 347b1994897Sopenharmony_ci format: [op_none] 348b1994897Sopenharmony_ci - sig: deprecated.ldlexenv 349b1994897Sopenharmony_ci acc: out:top 350b1994897Sopenharmony_ci opcode_idx: [0x00] 351b1994897Sopenharmony_ci format: [pref_op_none] 352b1994897Sopenharmony_ci prefix: deprecated 353b1994897Sopenharmony_ci - sig: ldnewtarget 354b1994897Sopenharmony_ci acc: out:top 355b1994897Sopenharmony_ci opcode_idx: [0x6e] 356b1994897Sopenharmony_ci format: [op_none] 357b1994897Sopenharmony_ci - sig: ldthis 358b1994897Sopenharmony_ci acc: out:top 359b1994897Sopenharmony_ci opcode_idx: [0x6f] 360b1994897Sopenharmony_ci format: [op_none] 361b1994897Sopenharmony_ci - sig: poplexenv 362b1994897Sopenharmony_ci acc: none 363b1994897Sopenharmony_ci opcode_idx: [0x69] 364b1994897Sopenharmony_ci format: [op_none] 365b1994897Sopenharmony_ci - sig: deprecated.poplexenv 366b1994897Sopenharmony_ci acc: out:top 367b1994897Sopenharmony_ci opcode_idx: [0x01] 368b1994897Sopenharmony_ci format: [pref_op_none] 369b1994897Sopenharmony_ci prefix: deprecated 370b1994897Sopenharmony_ci - sig: getunmappedargs 371b1994897Sopenharmony_ci acc: out:top 372b1994897Sopenharmony_ci opcode_idx: [0x6c] 373b1994897Sopenharmony_ci format: [op_none] 374b1994897Sopenharmony_ci - sig: asyncfunctionenter 375b1994897Sopenharmony_ci acc: out:top 376b1994897Sopenharmony_ci opcode_idx: [0xae] 377b1994897Sopenharmony_ci format: [op_none] 378b1994897Sopenharmony_ci - sig: ldfunction 379b1994897Sopenharmony_ci acc: out:top 380b1994897Sopenharmony_ci opcode_idx: [0xaf] 381b1994897Sopenharmony_ci format: [op_none] 382b1994897Sopenharmony_ci - sig: debugger 383b1994897Sopenharmony_ci acc: none 384b1994897Sopenharmony_ci opcode_idx: [0xb0] 385b1994897Sopenharmony_ci format: [op_none] 386b1994897Sopenharmony_ci 387b1994897Sopenharmony_ci - title: iterator instructions 388b1994897Sopenharmony_ci description: iterator instructions 389b1994897Sopenharmony_ci verification: 390b1994897Sopenharmony_ci - none 391b1994897Sopenharmony_ci exceptions: 392b1994897Sopenharmony_ci - x_none 393b1994897Sopenharmony_ci properties: 394b1994897Sopenharmony_ci - acc_read 395b1994897Sopenharmony_ci - acc_write 396b1994897Sopenharmony_ci namespace: ecmascript 397b1994897Sopenharmony_ci pseudo: | 398b1994897Sopenharmony_ci acc = ecma_op(acc, operand_0, ..., operands_n) 399b1994897Sopenharmony_ci semantics: | 400b1994897Sopenharmony_ci skip 401b1994897Sopenharmony_ci instructions: 402b1994897Sopenharmony_ci - sig: getpropiterator 403b1994897Sopenharmony_ci acc: inout:top 404b1994897Sopenharmony_ci opcode_idx: [0x66] 405b1994897Sopenharmony_ci format: [op_none] 406b1994897Sopenharmony_ci - sig: getiterator imm:u16 407b1994897Sopenharmony_ci acc: inout:top 408b1994897Sopenharmony_ci opcode_idx: [0x67, 0xab] 409b1994897Sopenharmony_ci format: [op_imm_8, op_imm_16] 410b1994897Sopenharmony_ci properties: [ic_slot, two_slot, eight_sixteen_bit_ic] 411b1994897Sopenharmony_ci - sig: closeiterator imm:u16, v:in:top 412b1994897Sopenharmony_ci acc: out:top 413b1994897Sopenharmony_ci opcode_idx: [0x68, 0xac] 414b1994897Sopenharmony_ci format: [op_imm_8_v_8, op_imm_16_v_8] 415b1994897Sopenharmony_ci properties: [ic_slot, two_slot, eight_sixteen_bit_ic] 416b1994897Sopenharmony_ci - sig: deprecated.getiteratornext v1:in:top, v2:in:top 417b1994897Sopenharmony_ci acc: out:top 418b1994897Sopenharmony_ci opcode_idx: [0x02] 419b1994897Sopenharmony_ci format: [pref_op_v1_8_v2_8] 420b1994897Sopenharmony_ci prefix: deprecated 421b1994897Sopenharmony_ci - sig: getasynciterator imm:u8 422b1994897Sopenharmony_ci acc: inout:top 423b1994897Sopenharmony_ci opcode_idx: [0xd7] 424b1994897Sopenharmony_ci format: [op_imm_8] 425b1994897Sopenharmony_ci properties: [ic_slot, two_slot, eight_bit_ic] 426b1994897Sopenharmony_ci - sig: ldprivateproperty imm1:u8, imm2:u16, imm3:u16 427b1994897Sopenharmony_ci acc: inout:top 428b1994897Sopenharmony_ci opcode_idx: [0xd8] 429b1994897Sopenharmony_ci format: [op_imm1_8_imm2_16_imm3_16] 430b1994897Sopenharmony_ci properties: [ic_slot, two_slot, eight_bit_ic] 431b1994897Sopenharmony_ci - sig: stprivateproperty imm1:u8, imm2:u16, imm3:u16, v:in:top 432b1994897Sopenharmony_ci acc: in:top 433b1994897Sopenharmony_ci opcode_idx: [0xd9] 434b1994897Sopenharmony_ci format: [op_imm1_8_imm2_16_imm3_16_v_8] 435b1994897Sopenharmony_ci properties: [ic_slot, two_slot, eight_bit_ic] 436b1994897Sopenharmony_ci - sig: testin imm1:u8, imm2:u16, imm3:u16 437b1994897Sopenharmony_ci acc: inout:top 438b1994897Sopenharmony_ci opcode_idx: [0xda] 439b1994897Sopenharmony_ci format: [op_imm1_8_imm2_16_imm3_16] 440b1994897Sopenharmony_ci properties: [ic_slot, two_slot, eight_bit_ic] 441b1994897Sopenharmony_ci - sig: definefieldbyname imm:u8, string_id, v:in:top 442b1994897Sopenharmony_ci acc: in:top 443b1994897Sopenharmony_ci opcode_idx: [0xdb] 444b1994897Sopenharmony_ci format: [op_imm_8_id_16_v_8] 445b1994897Sopenharmony_ci properties: [string_id, ic_slot, two_slot, eight_bit_ic] 446b1994897Sopenharmony_ci - sig: definepropertybyname imm:u8, string_id, v:in:top 447b1994897Sopenharmony_ci acc: in:top 448b1994897Sopenharmony_ci opcode_idx: [0xdc] 449b1994897Sopenharmony_ci format: [op_imm_8_id_16_v_8] 450b1994897Sopenharmony_ci properties: [string_id, ic_slot, two_slot, eight_bit_ic] 451b1994897Sopenharmony_ci 452b1994897Sopenharmony_ci - title: object creaters 453b1994897Sopenharmony_ci description: instructions which create objects 454b1994897Sopenharmony_ci verification: 455b1994897Sopenharmony_ci - none 456b1994897Sopenharmony_ci exceptions: 457b1994897Sopenharmony_ci - x_none 458b1994897Sopenharmony_ci properties: 459b1994897Sopenharmony_ci - acc_read 460b1994897Sopenharmony_ci - acc_write 461b1994897Sopenharmony_ci namespace: ecmascript 462b1994897Sopenharmony_ci pseudo: | 463b1994897Sopenharmony_ci acc = ecma_op(acc, operand_0, ..., operands_n) 464b1994897Sopenharmony_ci semantics: | 465b1994897Sopenharmony_ci skip 466b1994897Sopenharmony_ci instructions: 467b1994897Sopenharmony_ci - sig: createemptyobject 468b1994897Sopenharmony_ci acc: out:top 469b1994897Sopenharmony_ci opcode_idx: [0x04] 470b1994897Sopenharmony_ci format: [op_none] 471b1994897Sopenharmony_ci - sig: createemptyarray imm:u16 472b1994897Sopenharmony_ci acc: out:top 473b1994897Sopenharmony_ci opcode_idx: [0x05, 0x80] 474b1994897Sopenharmony_ci format: [op_imm_8, op_imm_16] 475b1994897Sopenharmony_ci properties: [ic_slot, one_slot, eight_sixteen_bit_ic] 476b1994897Sopenharmony_ci - sig: creategeneratorobj v:in:top 477b1994897Sopenharmony_ci acc: out:top 478b1994897Sopenharmony_ci opcode_idx: [0xb1] 479b1994897Sopenharmony_ci format: [op_v_8] 480b1994897Sopenharmony_ci - sig: createiterresultobj v1:in:top, v2:in:top 481b1994897Sopenharmony_ci acc: out:top 482b1994897Sopenharmony_ci opcode_idx: [0xb2] 483b1994897Sopenharmony_ci format: [op_v1_8_v2_8] 484b1994897Sopenharmony_ci - sig: createobjectwithexcludedkeys imm:u8, v1:in:top, v2:in:top 485b1994897Sopenharmony_ci acc: out:top 486b1994897Sopenharmony_ci opcode_idx: [0xb3] 487b1994897Sopenharmony_ci format: [op_imm_8_v1_8_v2_8] 488b1994897Sopenharmony_ci properties: [range_1] 489b1994897Sopenharmony_ci - sig: wide.createobjectwithexcludedkeys imm:u16, v1:in:top, v2:in:top 490b1994897Sopenharmony_ci acc: out:top 491b1994897Sopenharmony_ci opcode_idx: [0x00] 492b1994897Sopenharmony_ci format: [pref_op_imm_16_v1_8_v2_8] 493b1994897Sopenharmony_ci prefix: wide 494b1994897Sopenharmony_ci properties: [range_1] 495b1994897Sopenharmony_ci - sig: createarraywithbuffer imm:u16, literalarray_id 496b1994897Sopenharmony_ci acc: out:top 497b1994897Sopenharmony_ci opcode_idx: [0x06, 0x81] 498b1994897Sopenharmony_ci format: [op_imm_8_id_16, op_imm_16_id_16] 499b1994897Sopenharmony_ci properties: [ic_slot, one_slot, eight_sixteen_bit_ic, literalarray_id] 500b1994897Sopenharmony_ci - sig: deprecated.createarraywithbuffer imm:u16 501b1994897Sopenharmony_ci acc: out:top 502b1994897Sopenharmony_ci opcode_idx: [0x03] 503b1994897Sopenharmony_ci format: [pref_op_imm_16] 504b1994897Sopenharmony_ci prefix: deprecated 505b1994897Sopenharmony_ci - sig: createobjectwithbuffer imm:u16, literalarray_id 506b1994897Sopenharmony_ci opcode_idx: [0x07, 0x82] 507b1994897Sopenharmony_ci acc: out:top 508b1994897Sopenharmony_ci format: [op_imm_8_id_16, op_imm_16_id_16] 509b1994897Sopenharmony_ci properties: [ic_slot, one_slot, eight_sixteen_bit_ic, literalarray_id] 510b1994897Sopenharmony_ci - sig: deprecated.createobjectwithbuffer imm:u16 511b1994897Sopenharmony_ci acc: out:top 512b1994897Sopenharmony_ci opcode_idx: [0x04] 513b1994897Sopenharmony_ci format: [pref_op_imm_16] 514b1994897Sopenharmony_ci prefix: deprecated 515b1994897Sopenharmony_ci - sig: createregexpwithliteral imm1:u16, string_id, imm2:u8 516b1994897Sopenharmony_ci acc: out:top 517b1994897Sopenharmony_ci opcode_idx: [0x71, 0x72] 518b1994897Sopenharmony_ci format: [op_imm1_8_id_16_imm2_8, op_imm1_16_id_16_imm2_8] 519b1994897Sopenharmony_ci properties: [string_id, ic_slot, two_slot, eight_sixteen_bit_ic] 520b1994897Sopenharmony_ci - sig: newobjapply imm:u16, v:in:top 521b1994897Sopenharmony_ci acc: inout:top 522b1994897Sopenharmony_ci opcode_idx: [0xb4, 0xb5] 523b1994897Sopenharmony_ci format: [op_imm_8_v_8, op_imm_16_v_8] 524b1994897Sopenharmony_ci properties: [ic_slot, two_slot, eight_sixteen_bit_ic] 525b1994897Sopenharmony_ci - sig: newobjrange imm1:u16, imm2:u8, v:in:top 526b1994897Sopenharmony_ci acc: out:top 527b1994897Sopenharmony_ci opcode_idx: [0x08, 0x83] 528b1994897Sopenharmony_ci format: [op_imm1_8_imm2_8_v_8, op_imm1_16_imm2_8_v_8] 529b1994897Sopenharmony_ci properties: [ic_slot, two_slot, eight_sixteen_bit_ic, range_0] 530b1994897Sopenharmony_ci - sig: wide.newobjrange imm:u16, v:in:top 531b1994897Sopenharmony_ci acc: out:top 532b1994897Sopenharmony_ci opcode_idx: [0x01] 533b1994897Sopenharmony_ci format: [pref_op_imm_16_v_8] 534b1994897Sopenharmony_ci prefix: wide 535b1994897Sopenharmony_ci properties: [range_0] 536b1994897Sopenharmony_ci - sig: newlexenv imm:u8 537b1994897Sopenharmony_ci acc: out:top 538b1994897Sopenharmony_ci opcode_idx: [0x09] 539b1994897Sopenharmony_ci format: [op_imm_8] 540b1994897Sopenharmony_ci - sig: wide.newlexenv imm:u16 541b1994897Sopenharmony_ci acc: out:top 542b1994897Sopenharmony_ci opcode_idx: [0x02] 543b1994897Sopenharmony_ci format: [pref_op_imm_16] 544b1994897Sopenharmony_ci prefix: wide 545b1994897Sopenharmony_ci - sig: newlexenvwithname imm:u8, literalarray_id 546b1994897Sopenharmony_ci acc: out:top 547b1994897Sopenharmony_ci opcode_idx: [0xb6] 548b1994897Sopenharmony_ci format: [op_imm_8_id_16] 549b1994897Sopenharmony_ci properties: [literalarray_id] 550b1994897Sopenharmony_ci - sig: wide.newlexenvwithname imm:u16, literalarray_id 551b1994897Sopenharmony_ci acc: out:top 552b1994897Sopenharmony_ci opcode_idx: [0x03] 553b1994897Sopenharmony_ci format: [pref_op_imm_16_id_16] 554b1994897Sopenharmony_ci prefix: wide 555b1994897Sopenharmony_ci properties: [literalarray_id] 556b1994897Sopenharmony_ci - sig: createasyncgeneratorobj v:in:top 557b1994897Sopenharmony_ci acc: out:top 558b1994897Sopenharmony_ci opcode_idx: [0xb7] 559b1994897Sopenharmony_ci format: [op_v_8] 560b1994897Sopenharmony_ci - sig: asyncgeneratorresolve v1:in:top, v2:in:top, v3:in:top 561b1994897Sopenharmony_ci acc: out:top 562b1994897Sopenharmony_ci opcode_idx: [0xb8] 563b1994897Sopenharmony_ci format: [op_v1_8_v2_8_v3_8] 564b1994897Sopenharmony_ci 565b1994897Sopenharmony_ci - title: binary operations 566b1994897Sopenharmony_ci description: binary operations 567b1994897Sopenharmony_ci verification: 568b1994897Sopenharmony_ci - none 569b1994897Sopenharmony_ci exceptions: 570b1994897Sopenharmony_ci - x_none 571b1994897Sopenharmony_ci properties: 572b1994897Sopenharmony_ci - acc_read 573b1994897Sopenharmony_ci - acc_write 574b1994897Sopenharmony_ci namespace: ecmascript 575b1994897Sopenharmony_ci pseudo: | 576b1994897Sopenharmony_ci acc = ecma_op(acc, operand_0, ..., operands_n) 577b1994897Sopenharmony_ci semantics: | 578b1994897Sopenharmony_ci skip 579b1994897Sopenharmony_ci instructions: 580b1994897Sopenharmony_ci - sig: add2 imm:u8, v:in:top 581b1994897Sopenharmony_ci acc: inout:top 582b1994897Sopenharmony_ci opcode_idx: [0x0a] 583b1994897Sopenharmony_ci format: [op_imm_8_v_8] 584b1994897Sopenharmony_ci properties: [jit_ic_slot, one_slot, eight_bit_ic] 585b1994897Sopenharmony_ci - sig: sub2 imm:u8, v:in:top 586b1994897Sopenharmony_ci acc: inout:top 587b1994897Sopenharmony_ci opcode_idx: [0x0b] 588b1994897Sopenharmony_ci format: [op_imm_8_v_8] 589b1994897Sopenharmony_ci properties: [jit_ic_slot, one_slot, eight_bit_ic] 590b1994897Sopenharmony_ci - sig: mul2 imm:u8, v:in:top 591b1994897Sopenharmony_ci acc: inout:top 592b1994897Sopenharmony_ci opcode_idx: [0x0c] 593b1994897Sopenharmony_ci format: [op_imm_8_v_8] 594b1994897Sopenharmony_ci properties: [jit_ic_slot, one_slot, eight_bit_ic] 595b1994897Sopenharmony_ci - sig: div2 imm:u8, v:in:top 596b1994897Sopenharmony_ci acc: inout:top 597b1994897Sopenharmony_ci opcode_idx: [0x0d] 598b1994897Sopenharmony_ci format: [op_imm_8_v_8] 599b1994897Sopenharmony_ci properties: [jit_ic_slot, one_slot, eight_bit_ic] 600b1994897Sopenharmony_ci - sig: mod2 imm:u8, v:in:top 601b1994897Sopenharmony_ci acc: inout:top 602b1994897Sopenharmony_ci opcode_idx: [0x0e] 603b1994897Sopenharmony_ci format: [op_imm_8_v_8] 604b1994897Sopenharmony_ci properties: [jit_ic_slot, one_slot, eight_bit_ic] 605b1994897Sopenharmony_ci - sig: eq imm:u8, v:in:top 606b1994897Sopenharmony_ci acc: inout:top 607b1994897Sopenharmony_ci opcode_idx: [0x0f] 608b1994897Sopenharmony_ci format: [op_imm_8_v_8] 609b1994897Sopenharmony_ci properties: [jit_ic_slot, one_slot, eight_bit_ic] 610b1994897Sopenharmony_ci - sig: noteq imm:u8, v:in:top 611b1994897Sopenharmony_ci acc: inout:top 612b1994897Sopenharmony_ci opcode_idx: [0x10] 613b1994897Sopenharmony_ci format: [op_imm_8_v_8] 614b1994897Sopenharmony_ci properties: [jit_ic_slot, one_slot, eight_bit_ic] 615b1994897Sopenharmony_ci - sig: less imm:u8, v:in:top 616b1994897Sopenharmony_ci acc: inout:top 617b1994897Sopenharmony_ci opcode_idx: [0x11] 618b1994897Sopenharmony_ci format: [op_imm_8_v_8] 619b1994897Sopenharmony_ci properties: [jit_ic_slot, one_slot, eight_bit_ic] 620b1994897Sopenharmony_ci - sig: lesseq imm:u8, v:in:top 621b1994897Sopenharmony_ci acc: inout:top 622b1994897Sopenharmony_ci opcode_idx: [0x12] 623b1994897Sopenharmony_ci format: [op_imm_8_v_8] 624b1994897Sopenharmony_ci properties: [jit_ic_slot, one_slot, eight_bit_ic] 625b1994897Sopenharmony_ci - sig: greater imm:u8, v:in:top 626b1994897Sopenharmony_ci acc: inout:top 627b1994897Sopenharmony_ci opcode_idx: [0x13] 628b1994897Sopenharmony_ci format: [op_imm_8_v_8] 629b1994897Sopenharmony_ci properties: [jit_ic_slot, one_slot, eight_bit_ic] 630b1994897Sopenharmony_ci - sig: greatereq imm:u8, v:in:top 631b1994897Sopenharmony_ci acc: inout:top 632b1994897Sopenharmony_ci opcode_idx: [0x14] 633b1994897Sopenharmony_ci format: [op_imm_8_v_8] 634b1994897Sopenharmony_ci properties: [jit_ic_slot, one_slot, eight_bit_ic] 635b1994897Sopenharmony_ci - sig: shl2 imm:u8, v:in:top 636b1994897Sopenharmony_ci acc: inout:top 637b1994897Sopenharmony_ci opcode_idx: [0x15] 638b1994897Sopenharmony_ci format: [op_imm_8_v_8] 639b1994897Sopenharmony_ci properties: [jit_ic_slot, one_slot, eight_bit_ic] 640b1994897Sopenharmony_ci - sig: shr2 imm:u8, v:in:top 641b1994897Sopenharmony_ci acc: inout:top 642b1994897Sopenharmony_ci opcode_idx: [0x16] 643b1994897Sopenharmony_ci format: [op_imm_8_v_8] 644b1994897Sopenharmony_ci properties: [jit_ic_slot, one_slot, eight_bit_ic] 645b1994897Sopenharmony_ci - sig: ashr2 imm:u8, v:in:top 646b1994897Sopenharmony_ci acc: inout:top 647b1994897Sopenharmony_ci opcode_idx: [0x17] 648b1994897Sopenharmony_ci format: [op_imm_8_v_8] 649b1994897Sopenharmony_ci properties: [jit_ic_slot, one_slot, eight_bit_ic] 650b1994897Sopenharmony_ci - sig: and2 imm:u8, v:in:top 651b1994897Sopenharmony_ci acc: inout:top 652b1994897Sopenharmony_ci opcode_idx: [0x18] 653b1994897Sopenharmony_ci format: [op_imm_8_v_8] 654b1994897Sopenharmony_ci properties: [jit_ic_slot, one_slot, eight_bit_ic] 655b1994897Sopenharmony_ci - sig: or2 imm:u8, v:in:top 656b1994897Sopenharmony_ci acc: inout:top 657b1994897Sopenharmony_ci opcode_idx: [0x19] 658b1994897Sopenharmony_ci format: [op_imm_8_v_8] 659b1994897Sopenharmony_ci properties: [jit_ic_slot, one_slot, eight_bit_ic] 660b1994897Sopenharmony_ci - sig: xor2 imm:u8, v:in:top 661b1994897Sopenharmony_ci acc: inout:top 662b1994897Sopenharmony_ci opcode_idx: [0x1a] 663b1994897Sopenharmony_ci format: [op_imm_8_v_8] 664b1994897Sopenharmony_ci properties: [jit_ic_slot, one_slot, eight_bit_ic] 665b1994897Sopenharmony_ci - sig: exp imm:u8, v:in:top 666b1994897Sopenharmony_ci acc: inout:top 667b1994897Sopenharmony_ci opcode_idx: [0x1b] 668b1994897Sopenharmony_ci format: [op_imm_8_v_8] 669b1994897Sopenharmony_ci properties: [jit_ic_slot, one_slot, eight_bit_ic] 670b1994897Sopenharmony_ci 671b1994897Sopenharmony_ci - title: unary operations 672b1994897Sopenharmony_ci description: unary operations 673b1994897Sopenharmony_ci verification: 674b1994897Sopenharmony_ci - none 675b1994897Sopenharmony_ci exceptions: 676b1994897Sopenharmony_ci - x_none 677b1994897Sopenharmony_ci properties: 678b1994897Sopenharmony_ci - acc_read 679b1994897Sopenharmony_ci - acc_write 680b1994897Sopenharmony_ci namespace: ecmascript 681b1994897Sopenharmony_ci pseudo: | 682b1994897Sopenharmony_ci acc = ecma_op(acc, operand_0, ..., operands_n) 683b1994897Sopenharmony_ci semantics: | 684b1994897Sopenharmony_ci skip 685b1994897Sopenharmony_ci instructions: 686b1994897Sopenharmony_ci - sig: typeof imm:u16 687b1994897Sopenharmony_ci acc: inout:top 688b1994897Sopenharmony_ci opcode_idx: [0x1c, 0x84] 689b1994897Sopenharmony_ci format: [op_imm_8, op_imm_16] 690b1994897Sopenharmony_ci properties: [ic_slot, two_slot, sixteen_bit_ic] 691b1994897Sopenharmony_ci - sig: tonumber imm:u8 692b1994897Sopenharmony_ci acc: inout:top 693b1994897Sopenharmony_ci opcode_idx: [0x1d] 694b1994897Sopenharmony_ci format: [op_imm_8] 695b1994897Sopenharmony_ci properties: [jit_ic_slot, one_slot, eight_bit_ic] 696b1994897Sopenharmony_ci - sig: deprecated.tonumber v:in:top 697b1994897Sopenharmony_ci acc: inout:top 698b1994897Sopenharmony_ci opcode_idx: [0x05] 699b1994897Sopenharmony_ci format: [pref_op_v_8] 700b1994897Sopenharmony_ci prefix: deprecated 701b1994897Sopenharmony_ci - sig: tonumeric imm:u8 702b1994897Sopenharmony_ci acc: inout:top 703b1994897Sopenharmony_ci opcode_idx: [0x1e] 704b1994897Sopenharmony_ci format: [op_imm_8] 705b1994897Sopenharmony_ci properties: [jit_ic_slot, one_slot, eight_bit_ic] 706b1994897Sopenharmony_ci - sig: deprecated.tonumeric v:in:top 707b1994897Sopenharmony_ci opcode_idx: [0x06] 708b1994897Sopenharmony_ci acc: inout:top 709b1994897Sopenharmony_ci prefix: deprecated 710b1994897Sopenharmony_ci format: [pref_op_v_8] 711b1994897Sopenharmony_ci - sig: neg imm:u8 712b1994897Sopenharmony_ci acc: inout:top 713b1994897Sopenharmony_ci opcode_idx: [0x1f] 714b1994897Sopenharmony_ci format: [op_imm_8] 715b1994897Sopenharmony_ci properties: [jit_ic_slot, one_slot, eight_bit_ic] 716b1994897Sopenharmony_ci - sig: deprecated.neg v:in:top 717b1994897Sopenharmony_ci acc: out:top 718b1994897Sopenharmony_ci opcode_idx: [0x07] 719b1994897Sopenharmony_ci format: [pref_op_v_8] 720b1994897Sopenharmony_ci prefix: deprecated 721b1994897Sopenharmony_ci - sig: not imm:u8 722b1994897Sopenharmony_ci acc: inout:top 723b1994897Sopenharmony_ci opcode_idx: [0x20] 724b1994897Sopenharmony_ci format: [op_imm_8] 725b1994897Sopenharmony_ci properties: [jit_ic_slot, one_slot, eight_bit_ic] 726b1994897Sopenharmony_ci - sig: deprecated.not v:in:top 727b1994897Sopenharmony_ci acc: out:top 728b1994897Sopenharmony_ci opcode_idx: [0x08] 729b1994897Sopenharmony_ci prefix: deprecated 730b1994897Sopenharmony_ci format: [pref_op_v_8] 731b1994897Sopenharmony_ci - sig: inc imm:u8 732b1994897Sopenharmony_ci acc: inout:top 733b1994897Sopenharmony_ci opcode_idx: [0x21] 734b1994897Sopenharmony_ci format: [op_imm_8] 735b1994897Sopenharmony_ci properties: [jit_ic_slot, one_slot, eight_bit_ic] 736b1994897Sopenharmony_ci - sig: deprecated.inc v:in:top 737b1994897Sopenharmony_ci acc: out:top 738b1994897Sopenharmony_ci opcode_idx: [0x09] 739b1994897Sopenharmony_ci prefix: deprecated 740b1994897Sopenharmony_ci format: [pref_op_v_8] 741b1994897Sopenharmony_ci - sig: dec imm:u8 742b1994897Sopenharmony_ci acc: inout:top 743b1994897Sopenharmony_ci opcode_idx: [0x22] 744b1994897Sopenharmony_ci format: [op_imm_8] 745b1994897Sopenharmony_ci properties: [jit_ic_slot, one_slot, eight_bit_ic] 746b1994897Sopenharmony_ci - sig: deprecated.dec v:in:top 747b1994897Sopenharmony_ci acc: out:top 748b1994897Sopenharmony_ci opcode_idx: [0x0a] 749b1994897Sopenharmony_ci format: [pref_op_v_8] 750b1994897Sopenharmony_ci prefix: deprecated 751b1994897Sopenharmony_ci - sig: istrue 752b1994897Sopenharmony_ci acc: inout:top 753b1994897Sopenharmony_ci opcode_idx: [0x23] 754b1994897Sopenharmony_ci format: [op_none] 755b1994897Sopenharmony_ci - sig: isfalse 756b1994897Sopenharmony_ci acc: inout:top 757b1994897Sopenharmony_ci opcode_idx: [0x24] 758b1994897Sopenharmony_ci format: [op_none] 759b1994897Sopenharmony_ci 760b1994897Sopenharmony_ci - title: comparation instructions 761b1994897Sopenharmony_ci description: comparation instructions 762b1994897Sopenharmony_ci verification: 763b1994897Sopenharmony_ci - none 764b1994897Sopenharmony_ci exceptions: 765b1994897Sopenharmony_ci - x_none 766b1994897Sopenharmony_ci properties: 767b1994897Sopenharmony_ci - acc_read 768b1994897Sopenharmony_ci - acc_write 769b1994897Sopenharmony_ci namespace: ecmascript 770b1994897Sopenharmony_ci pseudo: | 771b1994897Sopenharmony_ci acc = ecma_op(acc, operand_0, ..., operands_n) 772b1994897Sopenharmony_ci semantics: | 773b1994897Sopenharmony_ci skip 774b1994897Sopenharmony_ci instructions: 775b1994897Sopenharmony_ci - sig: isin imm:u8, v:in:top 776b1994897Sopenharmony_ci acc: inout:top 777b1994897Sopenharmony_ci opcode_idx: [0x25] 778b1994897Sopenharmony_ci format: [op_imm_8_v_8] 779b1994897Sopenharmony_ci properties: [jit_ic_slot, one_slot, eight_bit_ic] 780b1994897Sopenharmony_ci - sig: instanceof imm:u8, v:in:top 781b1994897Sopenharmony_ci acc: inout:top 782b1994897Sopenharmony_ci opcode_idx: [0x26] 783b1994897Sopenharmony_ci format: [op_imm_8_v_8] 784b1994897Sopenharmony_ci properties: [jit_ic_slot, two_slot, eight_bit_ic] 785b1994897Sopenharmony_ci - sig: strictnoteq imm:u8, v:in:top 786b1994897Sopenharmony_ci acc: inout:top 787b1994897Sopenharmony_ci opcode_idx: [0x27] 788b1994897Sopenharmony_ci format: [op_imm_8_v_8] 789b1994897Sopenharmony_ci properties: [jit_ic_slot, one_slot, eight_bit_ic] 790b1994897Sopenharmony_ci - sig: stricteq imm:u8, v:in:top 791b1994897Sopenharmony_ci acc: inout:top 792b1994897Sopenharmony_ci opcode_idx: [0x28] 793b1994897Sopenharmony_ci format: [op_imm_8_v_8] 794b1994897Sopenharmony_ci properties: [jit_ic_slot, one_slot, eight_bit_ic] 795b1994897Sopenharmony_ci 796b1994897Sopenharmony_ci - title: call runtime functions 797b1994897Sopenharmony_ci description: instructions which call runtime functions 798b1994897Sopenharmony_ci verification: 799b1994897Sopenharmony_ci - none 800b1994897Sopenharmony_ci exceptions: 801b1994897Sopenharmony_ci - x_none 802b1994897Sopenharmony_ci properties: 803b1994897Sopenharmony_ci - acc_read 804b1994897Sopenharmony_ci - acc_write 805b1994897Sopenharmony_ci namespace: ecmascript 806b1994897Sopenharmony_ci pseudo: | 807b1994897Sopenharmony_ci acc = ecma_op(acc, operand_0, ..., operands_n) 808b1994897Sopenharmony_ci semantics: | 809b1994897Sopenharmony_ci skip 810b1994897Sopenharmony_ci instructions: 811b1994897Sopenharmony_ci - sig: callruntime.notifyconcurrentresult 812b1994897Sopenharmony_ci acc: in:top 813b1994897Sopenharmony_ci opcode_idx: [0x00] 814b1994897Sopenharmony_ci format: [pref_op_none] 815b1994897Sopenharmony_ci prefix: callruntime 816b1994897Sopenharmony_ci - sig: callruntime.definefieldbyvalue imm:u8, v1:in:top, v2:in:top 817b1994897Sopenharmony_ci acc: in:top 818b1994897Sopenharmony_ci opcode_idx: [0x01] 819b1994897Sopenharmony_ci prefix: callruntime 820b1994897Sopenharmony_ci format: [pref_op_imm_8_v1_8_v2_8] 821b1994897Sopenharmony_ci properties: [ic_slot, two_slot, eight_bit_ic] 822b1994897Sopenharmony_ci - sig: callruntime.definefieldbyindex imm1:u8, imm2:u32, v:in:top 823b1994897Sopenharmony_ci acc: in:top 824b1994897Sopenharmony_ci opcode_idx: [0x02] 825b1994897Sopenharmony_ci prefix: callruntime 826b1994897Sopenharmony_ci format: [pref_op_imm1_8_imm2_32_v_8] 827b1994897Sopenharmony_ci properties: [ic_slot, two_slot, eight_bit_ic] 828b1994897Sopenharmony_ci - sig: callruntime.topropertykey 829b1994897Sopenharmony_ci acc: inout:top 830b1994897Sopenharmony_ci opcode_idx: [0x03] 831b1994897Sopenharmony_ci format: [pref_op_none] 832b1994897Sopenharmony_ci prefix: callruntime 833b1994897Sopenharmony_ci - sig: callruntime.createprivateproperty imm:u16, literalarray_id 834b1994897Sopenharmony_ci acc: none 835b1994897Sopenharmony_ci opcode_idx: [0x04] 836b1994897Sopenharmony_ci format: [pref_op_imm_16_id_16] 837b1994897Sopenharmony_ci prefix: callruntime 838b1994897Sopenharmony_ci properties: [literalarray_id] 839b1994897Sopenharmony_ci - sig: callruntime.defineprivateproperty imm1:u8, imm2:u16, imm3:u16, v:in:top 840b1994897Sopenharmony_ci acc: in:top 841b1994897Sopenharmony_ci opcode_idx: [0x05] 842b1994897Sopenharmony_ci format: [pref_op_imm1_8_imm2_16_imm3_16_v_8] 843b1994897Sopenharmony_ci prefix: callruntime 844b1994897Sopenharmony_ci properties: [ic_slot, two_slot, eight_bit_ic] 845b1994897Sopenharmony_ci - sig: callruntime.callinit imm:u8, v:in:top 846b1994897Sopenharmony_ci acc: in:top 847b1994897Sopenharmony_ci opcode_idx: [0x06] 848b1994897Sopenharmony_ci format: [pref_op_imm_8_v_8] 849b1994897Sopenharmony_ci prefix: callruntime 850b1994897Sopenharmony_ci properties: [jit_ic_slot, two_slot, eight_bit_ic] 851b1994897Sopenharmony_ci - sig: callruntime.definesendableclass imm1:u16, method_id, literalarray_id, imm2:u16, v:in:top 852b1994897Sopenharmony_ci acc: out:top 853b1994897Sopenharmony_ci opcode_idx: [0x07] 854b1994897Sopenharmony_ci format: [pref_op_imm1_16_id1_16_id2_16_imm2_16_v_8] 855b1994897Sopenharmony_ci prefix: callruntime 856b1994897Sopenharmony_ci properties: [method_id, ic_slot, one_slot, sixteen_bit_ic, literalarray_id] 857b1994897Sopenharmony_ci - sig: callruntime.ldsendableclass imm:u16 858b1994897Sopenharmony_ci acc: out:top 859b1994897Sopenharmony_ci opcode_idx: [0x08] 860b1994897Sopenharmony_ci format: [pref_op_imm_16] 861b1994897Sopenharmony_ci prefix: callruntime 862b1994897Sopenharmony_ci - sig: callruntime.ldsendableexternalmodulevar imm:u8 863b1994897Sopenharmony_ci acc: out:top 864b1994897Sopenharmony_ci opcode_idx: [0x09] 865b1994897Sopenharmony_ci format: [pref_op_imm_8] 866b1994897Sopenharmony_ci prefix: callruntime 867b1994897Sopenharmony_ci - sig: callruntime.wideldsendableexternalmodulevar imm:u16 868b1994897Sopenharmony_ci acc: out:top 869b1994897Sopenharmony_ci opcode_idx: [0x0a] 870b1994897Sopenharmony_ci format: [pref_op_imm_16] 871b1994897Sopenharmony_ci prefix: callruntime 872b1994897Sopenharmony_ci - sig: callruntime.newsendableenv imm:u8 873b1994897Sopenharmony_ci acc: none 874b1994897Sopenharmony_ci opcode_idx: [0x0b] 875b1994897Sopenharmony_ci format: [pref_op_imm_8] 876b1994897Sopenharmony_ci prefix: callruntime 877b1994897Sopenharmony_ci - sig: callruntime.widenewsendableenv imm:u16 878b1994897Sopenharmony_ci acc: none 879b1994897Sopenharmony_ci opcode_idx: [0x0c] 880b1994897Sopenharmony_ci format: [pref_op_imm_16] 881b1994897Sopenharmony_ci prefix: callruntime 882b1994897Sopenharmony_ci - sig: callruntime.stsendablevar imm1:u8, imm2:u8 883b1994897Sopenharmony_ci acc: in:top 884b1994897Sopenharmony_ci opcode_idx: [0x0d, 0x0e] 885b1994897Sopenharmony_ci format: [pref_op_imm1_4_imm2_4, pref_op_imm1_8_imm2_8] 886b1994897Sopenharmony_ci prefix: callruntime 887b1994897Sopenharmony_ci - sig: callruntime.widestsendablevar imm1:u16, imm2:u16 888b1994897Sopenharmony_ci acc: in:top 889b1994897Sopenharmony_ci opcode_idx: [0x0f] 890b1994897Sopenharmony_ci format: [pref_op_imm1_16_imm2_16] 891b1994897Sopenharmony_ci prefix: callruntime 892b1994897Sopenharmony_ci - sig: callruntime.ldsendablevar imm1:u8, imm2:u8 893b1994897Sopenharmony_ci acc: out:top 894b1994897Sopenharmony_ci opcode_idx: [0x10, 0x11] 895b1994897Sopenharmony_ci format: [pref_op_imm1_4_imm2_4, pref_op_imm1_8_imm2_8] 896b1994897Sopenharmony_ci prefix: callruntime 897b1994897Sopenharmony_ci - sig: callruntime.wideldsendablevar imm1:u16, imm2:u16 898b1994897Sopenharmony_ci acc: out:top 899b1994897Sopenharmony_ci opcode_idx: [0x12] 900b1994897Sopenharmony_ci format: [pref_op_imm1_16_imm2_16] 901b1994897Sopenharmony_ci prefix: callruntime 902b1994897Sopenharmony_ci - sig: callruntime.istrue imm:u8 903b1994897Sopenharmony_ci acc: inout:top 904b1994897Sopenharmony_ci opcode_idx: [0x13] 905b1994897Sopenharmony_ci format: [pref_op_imm_8] 906b1994897Sopenharmony_ci prefix: callruntime 907b1994897Sopenharmony_ci properties: [ic_slot, one_slot, eight_bit_ic] 908b1994897Sopenharmony_ci - sig: callruntime.isfalse imm:u8 909b1994897Sopenharmony_ci acc: inout:top 910b1994897Sopenharmony_ci opcode_idx: [0x14] 911b1994897Sopenharmony_ci format: [pref_op_imm_8] 912b1994897Sopenharmony_ci prefix: callruntime 913b1994897Sopenharmony_ci properties: [ic_slot, one_slot, eight_bit_ic] 914b1994897Sopenharmony_ci - sig: callruntime.ldlazymodulevar imm:u8 915b1994897Sopenharmony_ci acc: out:top 916b1994897Sopenharmony_ci opcode_idx: [0x15] 917b1994897Sopenharmony_ci format: [pref_op_imm_8] 918b1994897Sopenharmony_ci prefix: callruntime 919b1994897Sopenharmony_ci - sig: callruntime.wideldlazymodulevar imm:u16 920b1994897Sopenharmony_ci acc: out:top 921b1994897Sopenharmony_ci opcode_idx: [0x16] 922b1994897Sopenharmony_ci format: [pref_op_imm_16] 923b1994897Sopenharmony_ci prefix: callruntime 924b1994897Sopenharmony_ci - sig: callruntime.ldlazysendablemodulevar imm:u8 925b1994897Sopenharmony_ci acc: out:top 926b1994897Sopenharmony_ci opcode_idx: [0x17] 927b1994897Sopenharmony_ci format: [pref_op_imm_8] 928b1994897Sopenharmony_ci prefix: callruntime 929b1994897Sopenharmony_ci - sig: callruntime.wideldlazysendablemodulevar imm:u16 930b1994897Sopenharmony_ci acc: out:top 931b1994897Sopenharmony_ci opcode_idx: [0x18] 932b1994897Sopenharmony_ci format: [pref_op_imm_16] 933b1994897Sopenharmony_ci prefix: callruntime 934b1994897Sopenharmony_ci - sig: callruntime.supercallforwardallargs v:in:top 935b1994897Sopenharmony_ci acc: out:top 936b1994897Sopenharmony_ci opcode_idx: [0x19] 937b1994897Sopenharmony_ci format: [pref_op_v_8] 938b1994897Sopenharmony_ci prefix: callruntime 939b1994897Sopenharmony_ci 940b1994897Sopenharmony_ci - title: throw instructions 941b1994897Sopenharmony_ci description: throw instructions 942b1994897Sopenharmony_ci verification: 943b1994897Sopenharmony_ci - none 944b1994897Sopenharmony_ci exceptions: 945b1994897Sopenharmony_ci - x_none 946b1994897Sopenharmony_ci properties: 947b1994897Sopenharmony_ci - acc_read 948b1994897Sopenharmony_ci - acc_write 949b1994897Sopenharmony_ci namespace: ecmascript 950b1994897Sopenharmony_ci pseudo: | 951b1994897Sopenharmony_ci acc = ecma_op(acc, operand_0, ..., operands_n) 952b1994897Sopenharmony_ci semantics: | 953b1994897Sopenharmony_ci skip 954b1994897Sopenharmony_ci instructions: 955b1994897Sopenharmony_ci - sig: throw 956b1994897Sopenharmony_ci acc: in:top 957b1994897Sopenharmony_ci opcode_idx: [0x00] 958b1994897Sopenharmony_ci format: [pref_op_none] 959b1994897Sopenharmony_ci prefix: throw 960b1994897Sopenharmony_ci exceptions: 961b1994897Sopenharmony_ci - x_throw 962b1994897Sopenharmony_ci - sig: throw.notexists 963b1994897Sopenharmony_ci acc: none 964b1994897Sopenharmony_ci opcode_idx: [0x01] 965b1994897Sopenharmony_ci format: [pref_op_none] 966b1994897Sopenharmony_ci prefix: throw 967b1994897Sopenharmony_ci - sig: throw.patternnoncoercible 968b1994897Sopenharmony_ci acc: none 969b1994897Sopenharmony_ci opcode_idx: [0x02] 970b1994897Sopenharmony_ci format: [pref_op_none] 971b1994897Sopenharmony_ci prefix: throw 972b1994897Sopenharmony_ci - sig: throw.deletesuperproperty 973b1994897Sopenharmony_ci acc: none 974b1994897Sopenharmony_ci opcode_idx: [0x03] 975b1994897Sopenharmony_ci format: [pref_op_none] 976b1994897Sopenharmony_ci prefix: throw 977b1994897Sopenharmony_ci - sig: throw.constassignment v:in:top 978b1994897Sopenharmony_ci acc: none 979b1994897Sopenharmony_ci opcode_idx: [0x04] 980b1994897Sopenharmony_ci format: [pref_op_v_8] 981b1994897Sopenharmony_ci prefix: throw 982b1994897Sopenharmony_ci - sig: throw.ifnotobject v:in:top 983b1994897Sopenharmony_ci acc: none 984b1994897Sopenharmony_ci opcode_idx: [0x05] 985b1994897Sopenharmony_ci format: [pref_op_v_8] 986b1994897Sopenharmony_ci prefix: throw 987b1994897Sopenharmony_ci properties: [conditional_throw] 988b1994897Sopenharmony_ci - sig: throw.undefinedifhole v1:in:top, v2:in:top 989b1994897Sopenharmony_ci acc: none 990b1994897Sopenharmony_ci opcode_idx: [0x06] 991b1994897Sopenharmony_ci format: [pref_op_v1_8_v2_8] 992b1994897Sopenharmony_ci prefix: throw 993b1994897Sopenharmony_ci properties: [conditional_throw] 994b1994897Sopenharmony_ci - sig: throw.ifsupernotcorrectcall imm:u16 995b1994897Sopenharmony_ci acc: in:top 996b1994897Sopenharmony_ci opcode_idx: [0x07, 0x08] 997b1994897Sopenharmony_ci format: [pref_op_imm_8, pref_op_imm_16] 998b1994897Sopenharmony_ci prefix: throw 999b1994897Sopenharmony_ci properties: [conditional_throw] 1000b1994897Sopenharmony_ci - sig: throw.undefinedifholewithname string_id 1001b1994897Sopenharmony_ci acc: in:top 1002b1994897Sopenharmony_ci opcode_idx: [0x09] 1003b1994897Sopenharmony_ci format: [pref_op_id_16] 1004b1994897Sopenharmony_ci prefix: throw 1005b1994897Sopenharmony_ci properties: [string_id, conditional_throw] 1006b1994897Sopenharmony_ci 1007b1994897Sopenharmony_ci - title: call instructions 1008b1994897Sopenharmony_ci description: call 1009b1994897Sopenharmony_ci verification: 1010b1994897Sopenharmony_ci - none 1011b1994897Sopenharmony_ci exceptions: 1012b1994897Sopenharmony_ci - x_none 1013b1994897Sopenharmony_ci properties: 1014b1994897Sopenharmony_ci - acc_read 1015b1994897Sopenharmony_ci - acc_write 1016b1994897Sopenharmony_ci namespace: ecmascript 1017b1994897Sopenharmony_ci pseudo: | 1018b1994897Sopenharmony_ci acc = ecma_op(acc, operand_0, ..., operands_n) 1019b1994897Sopenharmony_ci semantics: | 1020b1994897Sopenharmony_ci skip 1021b1994897Sopenharmony_ci instructions: 1022b1994897Sopenharmony_ci - sig: callarg0 imm:u8 1023b1994897Sopenharmony_ci acc: inout:top 1024b1994897Sopenharmony_ci opcode_idx: [0x29] 1025b1994897Sopenharmony_ci format: [op_imm_8] 1026b1994897Sopenharmony_ci properties: [jit_ic_slot, two_slot, eight_bit_ic] 1027b1994897Sopenharmony_ci - sig: deprecated.callarg0 v:in:top 1028b1994897Sopenharmony_ci acc: out:top 1029b1994897Sopenharmony_ci opcode_idx: [0x0b] 1030b1994897Sopenharmony_ci format: [pref_op_v_8] 1031b1994897Sopenharmony_ci prefix: deprecated 1032b1994897Sopenharmony_ci - sig: callarg1 imm:u8, v:in:top 1033b1994897Sopenharmony_ci acc: inout:top 1034b1994897Sopenharmony_ci opcode_idx: [0x2a] 1035b1994897Sopenharmony_ci format: [op_imm_8_v_8] 1036b1994897Sopenharmony_ci properties: [jit_ic_slot, two_slot, eight_bit_ic] 1037b1994897Sopenharmony_ci - sig: deprecated.callarg1 v1:in:top, v2:in:top 1038b1994897Sopenharmony_ci acc: out:top 1039b1994897Sopenharmony_ci opcode_idx: [0x0c] 1040b1994897Sopenharmony_ci format: [pref_op_v1_8_v2_8] 1041b1994897Sopenharmony_ci prefix: deprecated 1042b1994897Sopenharmony_ci - sig: callargs2 imm:u8, v1:in:top, v2:in:top 1043b1994897Sopenharmony_ci acc: inout:top 1044b1994897Sopenharmony_ci opcode_idx: [0x2b] 1045b1994897Sopenharmony_ci format: [op_imm_8_v1_8_v2_8] 1046b1994897Sopenharmony_ci properties: [jit_ic_slot, two_slot, eight_bit_ic] 1047b1994897Sopenharmony_ci - sig: deprecated.callargs2 v1:in:top, v2:in:top, v3:in:top 1048b1994897Sopenharmony_ci acc: out:top 1049b1994897Sopenharmony_ci opcode_idx: [0x0d] 1050b1994897Sopenharmony_ci format: [pref_op_v1_8_v2_8_v3_8] 1051b1994897Sopenharmony_ci prefix: deprecated 1052b1994897Sopenharmony_ci - sig: callargs3 imm:u8, v1:in:top, v2:in:top, v3:in:top 1053b1994897Sopenharmony_ci acc: inout:top 1054b1994897Sopenharmony_ci opcode_idx: [0x2c] 1055b1994897Sopenharmony_ci format: [op_imm_8_v1_8_v2_8_v3_8] 1056b1994897Sopenharmony_ci properties: [jit_ic_slot, two_slot, eight_bit_ic] 1057b1994897Sopenharmony_ci - sig: deprecated.callargs3 v1:in:top, v2:in:top, v3:in:top, v4:in:top 1058b1994897Sopenharmony_ci acc: out:top 1059b1994897Sopenharmony_ci opcode_idx: [0x0e] 1060b1994897Sopenharmony_ci format: [pref_op_v1_8_v2_8_v3_8_v4_8] 1061b1994897Sopenharmony_ci prefix: deprecated 1062b1994897Sopenharmony_ci - sig: callrange imm1:u8, imm2:u8, v:in:top 1063b1994897Sopenharmony_ci acc: inout:top 1064b1994897Sopenharmony_ci opcode_idx: [0x73] 1065b1994897Sopenharmony_ci format: [op_imm1_8_imm2_8_v_8] 1066b1994897Sopenharmony_ci properties: [jit_ic_slot, two_slot, eight_bit_ic, range_0] 1067b1994897Sopenharmony_ci - sig: wide.callrange imm:u16, v:in:top 1068b1994897Sopenharmony_ci acc: inout:top 1069b1994897Sopenharmony_ci opcode_idx: [0x04] 1070b1994897Sopenharmony_ci format: [pref_op_imm_16_v_8] 1071b1994897Sopenharmony_ci prefix: wide 1072b1994897Sopenharmony_ci properties: [range_0] 1073b1994897Sopenharmony_ci - sig: deprecated.callrange imm:u16, v:in:top 1074b1994897Sopenharmony_ci acc: out:top 1075b1994897Sopenharmony_ci opcode_idx: [0x0f] 1076b1994897Sopenharmony_ci format: [pref_op_imm_16_v_8] 1077b1994897Sopenharmony_ci prefix: deprecated 1078b1994897Sopenharmony_ci properties: [range_0] 1079b1994897Sopenharmony_ci - sig: supercallspread imm:u8, v:in:top 1080b1994897Sopenharmony_ci acc: inout:top 1081b1994897Sopenharmony_ci opcode_idx: [0xb9] 1082b1994897Sopenharmony_ci format: [op_imm_8_v_8] 1083b1994897Sopenharmony_ci properties: [jit_ic_slot, two_slot, eight_bit_ic] 1084b1994897Sopenharmony_ci - sig: apply imm:u8, v1:in:top, v2:in:top 1085b1994897Sopenharmony_ci acc: inout:top 1086b1994897Sopenharmony_ci opcode_idx: [0xba] 1087b1994897Sopenharmony_ci format: [op_imm_8_v1_8_v2_8] 1088b1994897Sopenharmony_ci properties: [jit_ic_slot, two_slot, eight_bit_ic] 1089b1994897Sopenharmony_ci - sig: deprecated.callspread v1:in:top, v2:in:top, v3:in:top 1090b1994897Sopenharmony_ci acc: out:top 1091b1994897Sopenharmony_ci opcode_idx: [0x10] 1092b1994897Sopenharmony_ci format: [pref_op_v1_8_v2_8_v3_8] 1093b1994897Sopenharmony_ci prefix: deprecated 1094b1994897Sopenharmony_ci - sig: callthis0 imm:u8, v:in:top 1095b1994897Sopenharmony_ci acc: inout:top 1096b1994897Sopenharmony_ci opcode_idx: [0x2d] 1097b1994897Sopenharmony_ci format: [op_imm_8_v_8] 1098b1994897Sopenharmony_ci properties: [jit_ic_slot, two_slot, eight_bit_ic] 1099b1994897Sopenharmony_ci - sig: callthis1 imm:u8, v1:in:top, v2:in:top 1100b1994897Sopenharmony_ci acc: inout:top 1101b1994897Sopenharmony_ci opcode_idx: [0x2e] 1102b1994897Sopenharmony_ci format: [op_imm_8_v1_8_v2_8] 1103b1994897Sopenharmony_ci properties: [jit_ic_slot, two_slot, eight_bit_ic] 1104b1994897Sopenharmony_ci - sig: callthis2 imm:u8, v1:in:top, v2:in:top, v3:in:top 1105b1994897Sopenharmony_ci acc: inout:top 1106b1994897Sopenharmony_ci opcode_idx: [0x2f] 1107b1994897Sopenharmony_ci format: [op_imm_8_v1_8_v2_8_v3_8] 1108b1994897Sopenharmony_ci properties: [jit_ic_slot, two_slot, eight_bit_ic] 1109b1994897Sopenharmony_ci - sig: callthis3 imm:u8, v1:in:top, v2:in:top, v3:in:top, v4:in:top 1110b1994897Sopenharmony_ci acc: inout:top 1111b1994897Sopenharmony_ci opcode_idx: [0x30] 1112b1994897Sopenharmony_ci format: [op_imm_8_v1_8_v2_8_v3_8_v4_8] 1113b1994897Sopenharmony_ci properties: [jit_ic_slot, two_slot, eight_bit_ic] 1114b1994897Sopenharmony_ci - sig: callthisrange imm1:u8, imm2:u8, v:in:top 1115b1994897Sopenharmony_ci acc: inout:top 1116b1994897Sopenharmony_ci opcode_idx: [0x31] 1117b1994897Sopenharmony_ci format: [op_imm1_8_imm2_8_v_8] 1118b1994897Sopenharmony_ci properties: [jit_ic_slot, two_slot, eight_bit_ic, range_0] 1119b1994897Sopenharmony_ci - sig: wide.callthisrange imm:u16, v:in:top 1120b1994897Sopenharmony_ci acc: inout:top 1121b1994897Sopenharmony_ci opcode_idx: [0x05] 1122b1994897Sopenharmony_ci format: [pref_op_imm_16_v_8] 1123b1994897Sopenharmony_ci prefix: wide 1124b1994897Sopenharmony_ci properties: [range_1] 1125b1994897Sopenharmony_ci - sig: deprecated.callthisrange imm:u16, v:in:top 1126b1994897Sopenharmony_ci acc: out:top 1127b1994897Sopenharmony_ci opcode_idx: [0x11] 1128b1994897Sopenharmony_ci format: [pref_op_imm_16_v_8] 1129b1994897Sopenharmony_ci prefix: deprecated 1130b1994897Sopenharmony_ci properties: [range_1] 1131b1994897Sopenharmony_ci - sig: supercallthisrange imm1:u8, imm2:u8, v:in:top 1132b1994897Sopenharmony_ci acc: out:top 1133b1994897Sopenharmony_ci opcode_idx: [0x32] 1134b1994897Sopenharmony_ci format: [op_imm1_8_imm2_8_v_8] 1135b1994897Sopenharmony_ci properties: [jit_ic_slot, two_slot, eight_bit_ic, range_0] 1136b1994897Sopenharmony_ci - sig: wide.supercallthisrange imm:u16, v:in:top 1137b1994897Sopenharmony_ci acc: out:top 1138b1994897Sopenharmony_ci opcode_idx: [0x06] 1139b1994897Sopenharmony_ci format: [pref_op_imm_16_v_8] 1140b1994897Sopenharmony_ci prefix: wide 1141b1994897Sopenharmony_ci properties: [range_0] 1142b1994897Sopenharmony_ci - sig: supercallarrowrange imm1:u8, imm2:u8, v:in:top 1143b1994897Sopenharmony_ci acc: inout:top 1144b1994897Sopenharmony_ci opcode_idx: [0xbb] 1145b1994897Sopenharmony_ci format: [op_imm1_8_imm2_8_v_8] 1146b1994897Sopenharmony_ci properties: [jit_ic_slot, two_slot, eight_bit_ic, range_0] 1147b1994897Sopenharmony_ci - sig: wide.supercallarrowrange imm:u16, v:in:top 1148b1994897Sopenharmony_ci acc: inout:top 1149b1994897Sopenharmony_ci opcode_idx: [0x07] 1150b1994897Sopenharmony_ci format: [pref_op_imm_16_v_8] 1151b1994897Sopenharmony_ci prefix: wide 1152b1994897Sopenharmony_ci properties: [range_0] 1153b1994897Sopenharmony_ci 1154b1994897Sopenharmony_ci - title: definition instuctions 1155b1994897Sopenharmony_ci description: instructions which define object 1156b1994897Sopenharmony_ci verification: 1157b1994897Sopenharmony_ci - none 1158b1994897Sopenharmony_ci exceptions: 1159b1994897Sopenharmony_ci - x_none 1160b1994897Sopenharmony_ci properties: 1161b1994897Sopenharmony_ci - acc_read 1162b1994897Sopenharmony_ci - acc_write 1163b1994897Sopenharmony_ci namespace: ecmascript 1164b1994897Sopenharmony_ci pseudo: | 1165b1994897Sopenharmony_ci acc = ecma_op(acc, operand_0, ..., operands_n) 1166b1994897Sopenharmony_ci semantics: | 1167b1994897Sopenharmony_ci skip 1168b1994897Sopenharmony_ci instructions: 1169b1994897Sopenharmony_ci - sig: definegettersetterbyvalue v1:in:top, v2:in:top, v3:in:top, v4:in:top 1170b1994897Sopenharmony_ci acc: inout:top 1171b1994897Sopenharmony_ci opcode_idx: [0xbc] 1172b1994897Sopenharmony_ci format: [op_v1_8_v2_8_v3_8_v4_8] 1173b1994897Sopenharmony_ci - sig: definefunc imm1:u16, method_id, imm2:u8 1174b1994897Sopenharmony_ci acc: out:top 1175b1994897Sopenharmony_ci opcode_idx: [0x33, 0x74] 1176b1994897Sopenharmony_ci format: [op_imm1_8_id_16_imm2_8, op_imm1_16_id_16_imm2_8] 1177b1994897Sopenharmony_ci properties: [method_id, ic_slot, one_slot, eight_sixteen_bit_ic] 1178b1994897Sopenharmony_ci - sig: definemethod imm1:u16, method_id, imm2:u8 1179b1994897Sopenharmony_ci acc: inout:top 1180b1994897Sopenharmony_ci opcode_idx: [0x34, 0xbe] 1181b1994897Sopenharmony_ci format: [op_imm1_8_id_16_imm2_8, op_imm1_16_id_16_imm2_8] 1182b1994897Sopenharmony_ci properties: [method_id, ic_slot, one_slot, eight_sixteen_bit_ic] 1183b1994897Sopenharmony_ci - sig: defineclasswithbuffer imm1:u16, method_id, literalarray_id, imm2:u16, v:in:top 1184b1994897Sopenharmony_ci acc: out:top 1185b1994897Sopenharmony_ci opcode_idx: [0x35, 0x75] 1186b1994897Sopenharmony_ci format: [op_imm1_8_id1_16_id2_16_imm2_16_v_8, op_imm1_16_id1_16_id2_16_imm2_16_v_8] 1187b1994897Sopenharmony_ci properties: [method_id, ic_slot, one_slot, eight_sixteen_bit_ic, literalarray_id] 1188b1994897Sopenharmony_ci - sig: deprecated.defineclasswithbuffer method_id, imm1:u16, imm2:u16, v1:in:top, v2:in:top 1189b1994897Sopenharmony_ci acc: out:top 1190b1994897Sopenharmony_ci opcode_idx: [0x12] 1191b1994897Sopenharmony_ci format: [pref_op_id_16_imm1_16_imm2_16_v1_8_v2_8] 1192b1994897Sopenharmony_ci prefix: deprecated 1193b1994897Sopenharmony_ci properties: [method_id] 1194b1994897Sopenharmony_ci 1195b1994897Sopenharmony_ci - title: object visitors 1196b1994897Sopenharmony_ci description: instructions which visit object 1197b1994897Sopenharmony_ci verification: 1198b1994897Sopenharmony_ci - none 1199b1994897Sopenharmony_ci exceptions: 1200b1994897Sopenharmony_ci - x_none 1201b1994897Sopenharmony_ci properties: 1202b1994897Sopenharmony_ci - acc_read 1203b1994897Sopenharmony_ci - acc_write 1204b1994897Sopenharmony_ci namespace: ecmascript 1205b1994897Sopenharmony_ci pseudo: | 1206b1994897Sopenharmony_ci acc = ecma_op(acc, operand_0, ..., operands_n) 1207b1994897Sopenharmony_ci semantics: | 1208b1994897Sopenharmony_ci skip 1209b1994897Sopenharmony_ci instructions: 1210b1994897Sopenharmony_ci - sig: resumegenerator 1211b1994897Sopenharmony_ci acc: inout:top 1212b1994897Sopenharmony_ci opcode_idx: [0xbf] 1213b1994897Sopenharmony_ci format: [op_none] 1214b1994897Sopenharmony_ci - sig: deprecated.resumegenerator v:in:top 1215b1994897Sopenharmony_ci acc: out:top 1216b1994897Sopenharmony_ci opcode_idx: [0x13] 1217b1994897Sopenharmony_ci format: [pref_op_v_8] 1218b1994897Sopenharmony_ci prefix: deprecated 1219b1994897Sopenharmony_ci - sig: getresumemode 1220b1994897Sopenharmony_ci acc: inout:top 1221b1994897Sopenharmony_ci opcode_idx: [0xc0] 1222b1994897Sopenharmony_ci format: [op_none] 1223b1994897Sopenharmony_ci - sig: deprecated.getresumemode v:in:top 1224b1994897Sopenharmony_ci acc: out:top 1225b1994897Sopenharmony_ci opcode_idx: [0x14] 1226b1994897Sopenharmony_ci format: [pref_op_v_8] 1227b1994897Sopenharmony_ci prefix: deprecated 1228b1994897Sopenharmony_ci - sig: gettemplateobject imm:u16 1229b1994897Sopenharmony_ci acc: inout:top 1230b1994897Sopenharmony_ci opcode_idx: [0x76, 0xc1] 1231b1994897Sopenharmony_ci format: [op_imm_8, op_imm_16] 1232b1994897Sopenharmony_ci properties: [ic_slot, one_slot, eight_sixteen_bit_ic] 1233b1994897Sopenharmony_ci - sig: deprecated.gettemplateobject v:in:top 1234b1994897Sopenharmony_ci acc: inout:top 1235b1994897Sopenharmony_ci opcode_idx: [0x15] 1236b1994897Sopenharmony_ci format: [pref_op_v_8] 1237b1994897Sopenharmony_ci prefix: deprecated 1238b1994897Sopenharmony_ci - sig: getnextpropname v:in:top 1239b1994897Sopenharmony_ci acc: out:top 1240b1994897Sopenharmony_ci opcode_idx: [0x36] 1241b1994897Sopenharmony_ci format: [op_v_8] 1242b1994897Sopenharmony_ci - sig: delobjprop v:in:top 1243b1994897Sopenharmony_ci acc: inout:top 1244b1994897Sopenharmony_ci opcode_idx: [0xc2] 1245b1994897Sopenharmony_ci format: [op_v_8] 1246b1994897Sopenharmony_ci - sig: deprecated.delobjprop v1:in:top, v2:in:top 1247b1994897Sopenharmony_ci acc: out:top 1248b1994897Sopenharmony_ci opcode_idx: [0x16] 1249b1994897Sopenharmony_ci format: [pref_op_v1_8_v2_8] 1250b1994897Sopenharmony_ci prefix: deprecated 1251b1994897Sopenharmony_ci - sig: suspendgenerator v:in:top 1252b1994897Sopenharmony_ci acc: inout:top 1253b1994897Sopenharmony_ci opcode_idx: [0xc3] 1254b1994897Sopenharmony_ci format: [op_v_8] 1255b1994897Sopenharmony_ci - sig: deprecated.suspendgenerator v1:in:top, v2:in:top 1256b1994897Sopenharmony_ci acc: out:top 1257b1994897Sopenharmony_ci opcode_idx: [0x17] 1258b1994897Sopenharmony_ci format: [pref_op_v1_8_v2_8] 1259b1994897Sopenharmony_ci prefix: deprecated 1260b1994897Sopenharmony_ci - sig: asyncfunctionawaituncaught v:in:top 1261b1994897Sopenharmony_ci acc: inout:top 1262b1994897Sopenharmony_ci opcode_idx: [0xc4] 1263b1994897Sopenharmony_ci format: [op_v_8] 1264b1994897Sopenharmony_ci - sig: deprecated.asyncfunctionawaituncaught v1:in:top, v2:in:top 1265b1994897Sopenharmony_ci acc: out:top 1266b1994897Sopenharmony_ci opcode_idx: [0x18] 1267b1994897Sopenharmony_ci format: [pref_op_v1_8_v2_8] 1268b1994897Sopenharmony_ci prefix: deprecated 1269b1994897Sopenharmony_ci - sig: copydataproperties v:in:top 1270b1994897Sopenharmony_ci acc: inout:top 1271b1994897Sopenharmony_ci opcode_idx: [0xc5] 1272b1994897Sopenharmony_ci format: [op_v_8] 1273b1994897Sopenharmony_ci - sig: deprecated.copydataproperties v1:in:top, v2:in:top 1274b1994897Sopenharmony_ci acc: out:top 1275b1994897Sopenharmony_ci opcode_idx: [0x19] 1276b1994897Sopenharmony_ci format: [pref_op_v1_8_v2_8] 1277b1994897Sopenharmony_ci prefix: deprecated 1278b1994897Sopenharmony_ci - sig: starrayspread v1:in:top, v2:in:top 1279b1994897Sopenharmony_ci acc: inout:top 1280b1994897Sopenharmony_ci opcode_idx: [0xc6] 1281b1994897Sopenharmony_ci format: [op_v1_8_v2_8] 1282b1994897Sopenharmony_ci - sig: setobjectwithproto imm:u16, v:in:top 1283b1994897Sopenharmony_ci acc: in:top 1284b1994897Sopenharmony_ci opcode_idx: [0x77, 0xc7] 1285b1994897Sopenharmony_ci format: [op_imm_8_v_8, op_imm_16_v_8] 1286b1994897Sopenharmony_ci properties: [ic_slot, two_slot, eight_sixteen_bit_ic] 1287b1994897Sopenharmony_ci - sig: deprecated.setobjectwithproto v1:in:top, v2:in:top 1288b1994897Sopenharmony_ci acc: none 1289b1994897Sopenharmony_ci opcode_idx: [0x1a] 1290b1994897Sopenharmony_ci format: [pref_op_v1_8_v2_8] 1291b1994897Sopenharmony_ci prefix: deprecated 1292b1994897Sopenharmony_ci - sig: ldobjbyvalue imm:u16, v:in:top 1293b1994897Sopenharmony_ci acc: inout:top 1294b1994897Sopenharmony_ci opcode_idx: [0x37, 0x85] 1295b1994897Sopenharmony_ci format: [op_imm_8_v_8, op_imm_16_v_8] 1296b1994897Sopenharmony_ci properties: [ic_slot, two_slot, eight_sixteen_bit_ic] 1297b1994897Sopenharmony_ci - sig: deprecated.ldobjbyvalue v1:in:top, v2:in:top 1298b1994897Sopenharmony_ci acc: out:top 1299b1994897Sopenharmony_ci opcode_idx: [0x1b] 1300b1994897Sopenharmony_ci format: [pref_op_v1_8_v2_8] 1301b1994897Sopenharmony_ci prefix: deprecated 1302b1994897Sopenharmony_ci - sig: stobjbyvalue imm:u16, v1:in:top, v2:in:top 1303b1994897Sopenharmony_ci acc: in:top 1304b1994897Sopenharmony_ci opcode_idx: [0x38, 0x86] 1305b1994897Sopenharmony_ci format: [op_imm_8_v1_8_v2_8, op_imm_16_v1_8_v2_8] 1306b1994897Sopenharmony_ci properties: [ic_slot, two_slot, eight_sixteen_bit_ic] 1307b1994897Sopenharmony_ci - sig: stownbyvalue imm:u16, v1:in:top, v2:in:top 1308b1994897Sopenharmony_ci acc: in:top 1309b1994897Sopenharmony_ci opcode_idx: [0x78, 0xc8] 1310b1994897Sopenharmony_ci format: [op_imm_8_v1_8_v2_8, op_imm_16_v1_8_v2_8] 1311b1994897Sopenharmony_ci properties: [ic_slot, two_slot, eight_sixteen_bit_ic] 1312b1994897Sopenharmony_ci - sig: ldsuperbyvalue imm:u16, v:in:top 1313b1994897Sopenharmony_ci acc: inout:top 1314b1994897Sopenharmony_ci opcode_idx: [0x39, 0x87] 1315b1994897Sopenharmony_ci format: [op_imm_8_v_8, op_imm_16_v_8] 1316b1994897Sopenharmony_ci properties: [ic_slot, two_slot, eight_sixteen_bit_ic] 1317b1994897Sopenharmony_ci - sig: deprecated.ldsuperbyvalue v1:in:top, v2:in:top 1318b1994897Sopenharmony_ci acc: out:top 1319b1994897Sopenharmony_ci opcode_idx: [0x1c] 1320b1994897Sopenharmony_ci format: [pref_op_v1_8_v2_8] 1321b1994897Sopenharmony_ci prefix: deprecated 1322b1994897Sopenharmony_ci - sig: stsuperbyvalue imm:u16, v1:in:top, v2:in:top 1323b1994897Sopenharmony_ci acc: in:top 1324b1994897Sopenharmony_ci opcode_idx: [0xc9, 0xca] 1325b1994897Sopenharmony_ci format: [op_imm_8_v1_8_v2_8, op_imm_16_v1_8_v2_8] 1326b1994897Sopenharmony_ci properties: [ic_slot, two_slot, eight_sixteen_bit_ic] 1327b1994897Sopenharmony_ci - sig: ldobjbyindex imm1:u16, imm2:u16 1328b1994897Sopenharmony_ci acc: inout:top 1329b1994897Sopenharmony_ci opcode_idx: [0x3a, 0x88] 1330b1994897Sopenharmony_ci format: [op_imm1_8_imm2_16, op_imm1_16_imm2_16] 1331b1994897Sopenharmony_ci properties: [ic_slot, two_slot, eight_sixteen_bit_ic] 1332b1994897Sopenharmony_ci - sig: wide.ldobjbyindex imm:u32 1333b1994897Sopenharmony_ci acc: inout:top 1334b1994897Sopenharmony_ci opcode_idx: [0x08] 1335b1994897Sopenharmony_ci format: [pref_op_imm_32] 1336b1994897Sopenharmony_ci prefix: wide 1337b1994897Sopenharmony_ci - sig: deprecated.ldobjbyindex v:in:top, imm:u32 1338b1994897Sopenharmony_ci acc: out:top 1339b1994897Sopenharmony_ci opcode_idx: [0x1d] 1340b1994897Sopenharmony_ci format: [pref_op_v_8_imm_32] 1341b1994897Sopenharmony_ci prefix: deprecated 1342b1994897Sopenharmony_ci - sig: stobjbyindex imm1:u16, v:in:top, imm2:u16 1343b1994897Sopenharmony_ci acc: in:top 1344b1994897Sopenharmony_ci opcode_idx: [0x3b, 0x89] 1345b1994897Sopenharmony_ci format: [op_imm1_8_v_8_imm2_16, op_imm1_16_v_8_imm2_16] 1346b1994897Sopenharmony_ci properties: [ic_slot, two_slot, eight_sixteen_bit_ic] 1347b1994897Sopenharmony_ci - sig: wide.stobjbyindex v:in:top, imm:u32 1348b1994897Sopenharmony_ci acc: in:top 1349b1994897Sopenharmony_ci opcode_idx: [0x09] 1350b1994897Sopenharmony_ci format: [pref_op_v_8_imm_32] 1351b1994897Sopenharmony_ci prefix: wide 1352b1994897Sopenharmony_ci - sig: stownbyindex imm1:u16, v:in:top, imm2:u16 1353b1994897Sopenharmony_ci acc: in:top 1354b1994897Sopenharmony_ci opcode_idx: [0x79, 0xcb] 1355b1994897Sopenharmony_ci format: [op_imm1_8_v_8_imm2_16, op_imm1_16_v_8_imm2_16] 1356b1994897Sopenharmony_ci properties: [ic_slot, two_slot, eight_sixteen_bit_ic] 1357b1994897Sopenharmony_ci - sig: wide.stownbyindex v:in:top, imm:u32 1358b1994897Sopenharmony_ci acc: in:top 1359b1994897Sopenharmony_ci opcode_idx: [0x0a] 1360b1994897Sopenharmony_ci format: [pref_op_v_8_imm_32] 1361b1994897Sopenharmony_ci prefix: wide 1362b1994897Sopenharmony_ci - sig: asyncfunctionresolve v:in:top 1363b1994897Sopenharmony_ci acc: inout:top 1364b1994897Sopenharmony_ci opcode_idx: [0xcd] 1365b1994897Sopenharmony_ci format: [op_v_8] 1366b1994897Sopenharmony_ci - sig: deprecated.asyncfunctionresolve v1:in:top, v2:in:top, v3:in:top 1367b1994897Sopenharmony_ci acc: out:top 1368b1994897Sopenharmony_ci opcode_idx: [0x1e] 1369b1994897Sopenharmony_ci format: [pref_op_v1_8_v2_8_v3_8] 1370b1994897Sopenharmony_ci prefix: deprecated 1371b1994897Sopenharmony_ci - sig: asyncfunctionreject v:in:top 1372b1994897Sopenharmony_ci acc: inout:top 1373b1994897Sopenharmony_ci opcode_idx: [0xce] 1374b1994897Sopenharmony_ci format: [op_v_8] 1375b1994897Sopenharmony_ci - sig: deprecated.asyncfunctionreject v1:in:top, v2:in:top, v3:in:top 1376b1994897Sopenharmony_ci acc: out:top 1377b1994897Sopenharmony_ci opcode_idx: [0x1f] 1378b1994897Sopenharmony_ci format: [pref_op_v1_8_v2_8_v3_8] 1379b1994897Sopenharmony_ci prefix: deprecated 1380b1994897Sopenharmony_ci - sig: copyrestargs imm:u8 1381b1994897Sopenharmony_ci acc: out:top 1382b1994897Sopenharmony_ci opcode_idx: [0xcf] 1383b1994897Sopenharmony_ci format: [op_imm_8] 1384b1994897Sopenharmony_ci - sig: wide.copyrestargs imm:u16 1385b1994897Sopenharmony_ci acc: out:top 1386b1994897Sopenharmony_ci opcode_idx: [0x0b] 1387b1994897Sopenharmony_ci format: [pref_op_imm_16] 1388b1994897Sopenharmony_ci prefix: wide 1389b1994897Sopenharmony_ci - sig: ldlexvar imm1:u8, imm2:u8 1390b1994897Sopenharmony_ci acc: out:top 1391b1994897Sopenharmony_ci opcode_idx: [0x3c, 0x8a] 1392b1994897Sopenharmony_ci format: [op_imm1_4_imm2_4, op_imm1_8_imm2_8] 1393b1994897Sopenharmony_ci - sig: wide.ldlexvar imm1:u16, imm2:u16 1394b1994897Sopenharmony_ci acc: out:top 1395b1994897Sopenharmony_ci opcode_idx: [0x0c] 1396b1994897Sopenharmony_ci format: [pref_op_imm1_16_imm2_16] 1397b1994897Sopenharmony_ci prefix: wide 1398b1994897Sopenharmony_ci - sig: stlexvar imm1:u8, imm2:u8 1399b1994897Sopenharmony_ci acc: in:top 1400b1994897Sopenharmony_ci opcode_idx: [0x3d, 0x8b] 1401b1994897Sopenharmony_ci format: [op_imm1_4_imm2_4, op_imm1_8_imm2_8] 1402b1994897Sopenharmony_ci - sig: wide.stlexvar imm1:u16, imm2:u16 1403b1994897Sopenharmony_ci acc: in:top 1404b1994897Sopenharmony_ci opcode_idx: [0x0d] 1405b1994897Sopenharmony_ci format: [pref_op_imm1_16_imm2_16] 1406b1994897Sopenharmony_ci prefix: wide 1407b1994897Sopenharmony_ci - sig: deprecated.stlexvar imm1:u16, imm2:u16, v:in:top 1408b1994897Sopenharmony_ci acc: none 1409b1994897Sopenharmony_ci opcode_idx: [0x20, 0x21, 0x22] 1410b1994897Sopenharmony_ci format: [pref_op_imm1_4_imm2_4_v_8, pref_op_imm1_8_imm2_8_v_8, pref_op_imm1_16_imm2_16_v_8] 1411b1994897Sopenharmony_ci prefix: deprecated 1412b1994897Sopenharmony_ci - sig: getmodulenamespace imm:u8 1413b1994897Sopenharmony_ci acc: out:top 1414b1994897Sopenharmony_ci opcode_idx: [0x7b] 1415b1994897Sopenharmony_ci format: [op_imm_8] 1416b1994897Sopenharmony_ci - sig: wide.getmodulenamespace imm:u16 1417b1994897Sopenharmony_ci acc: out:top 1418b1994897Sopenharmony_ci opcode_idx: [0x0e] 1419b1994897Sopenharmony_ci format: [pref_op_imm_16] 1420b1994897Sopenharmony_ci prefix: wide 1421b1994897Sopenharmony_ci - sig: deprecated.getmodulenamespace string_id 1422b1994897Sopenharmony_ci acc: out:top 1423b1994897Sopenharmony_ci opcode_idx: [0x23] 1424b1994897Sopenharmony_ci format: [pref_op_id_32] 1425b1994897Sopenharmony_ci properties: [string_id] 1426b1994897Sopenharmony_ci prefix: deprecated 1427b1994897Sopenharmony_ci - sig: stmodulevar imm:u8 1428b1994897Sopenharmony_ci acc: in:top 1429b1994897Sopenharmony_ci opcode_idx: [0x7c] 1430b1994897Sopenharmony_ci format: [op_imm_8] 1431b1994897Sopenharmony_ci - sig: wide.stmodulevar imm:u16 1432b1994897Sopenharmony_ci acc: in:top 1433b1994897Sopenharmony_ci opcode_idx: [0x0f] 1434b1994897Sopenharmony_ci format: [pref_op_imm_16] 1435b1994897Sopenharmony_ci prefix: wide 1436b1994897Sopenharmony_ci - sig: deprecated.stmodulevar string_id 1437b1994897Sopenharmony_ci acc: in:top 1438b1994897Sopenharmony_ci opcode_idx: [0x24] 1439b1994897Sopenharmony_ci format: [pref_op_id_32] 1440b1994897Sopenharmony_ci properties: [string_id] 1441b1994897Sopenharmony_ci prefix: deprecated 1442b1994897Sopenharmony_ci - sig: tryldglobalbyname imm:u16, string_id 1443b1994897Sopenharmony_ci acc: out:top 1444b1994897Sopenharmony_ci opcode_idx: [0x3f, 0x8c] 1445b1994897Sopenharmony_ci format: [op_imm_8_id_16, op_imm_16_id_16] 1446b1994897Sopenharmony_ci properties: [string_id, ic_slot, one_slot, eight_sixteen_bit_ic] 1447b1994897Sopenharmony_ci - sig: trystglobalbyname imm:u16, string_id 1448b1994897Sopenharmony_ci acc: in:top 1449b1994897Sopenharmony_ci opcode_idx: [0x40, 0x8d] 1450b1994897Sopenharmony_ci format: [op_imm_8_id_16, op_imm_16_id_16] 1451b1994897Sopenharmony_ci properties: [string_id, ic_slot, one_slot, eight_sixteen_bit_ic] 1452b1994897Sopenharmony_ci - sig: ldglobalvar imm:u16, string_id 1453b1994897Sopenharmony_ci acc: out:top 1454b1994897Sopenharmony_ci opcode_idx: [0x41] 1455b1994897Sopenharmony_ci format: [op_imm_16_id_16] 1456b1994897Sopenharmony_ci properties: [string_id, ic_slot, one_slot, sixteen_bit_ic] 1457b1994897Sopenharmony_ci - sig: stglobalvar imm:u16, string_id 1458b1994897Sopenharmony_ci acc: in:top 1459b1994897Sopenharmony_ci opcode_idx: [0x7f] 1460b1994897Sopenharmony_ci format: [op_imm_16_id_16] 1461b1994897Sopenharmony_ci properties: [string_id, ic_slot, one_slot, sixteen_bit_ic] 1462b1994897Sopenharmony_ci - sig: ldobjbyname imm:u16, string_id 1463b1994897Sopenharmony_ci acc: inout:top 1464b1994897Sopenharmony_ci opcode_idx: [0x42, 0x90] 1465b1994897Sopenharmony_ci format: [op_imm_8_id_16, op_imm_16_id_16] 1466b1994897Sopenharmony_ci properties: [string_id, ic_slot, two_slot, eight_sixteen_bit_ic] 1467b1994897Sopenharmony_ci - sig: deprecated.ldobjbyname string_id, v:in:top 1468b1994897Sopenharmony_ci acc: out:top 1469b1994897Sopenharmony_ci opcode_idx: [0x25] 1470b1994897Sopenharmony_ci format: [pref_op_id_32_v_8] 1471b1994897Sopenharmony_ci properties: [string_id] 1472b1994897Sopenharmony_ci prefix: deprecated 1473b1994897Sopenharmony_ci - sig: stobjbyname imm:u16, string_id, v:in:top 1474b1994897Sopenharmony_ci acc: in:top 1475b1994897Sopenharmony_ci opcode_idx: [0x43, 0x91] 1476b1994897Sopenharmony_ci format: [op_imm_8_id_16_v_8, op_imm_16_id_16_v_8] 1477b1994897Sopenharmony_ci properties: [string_id, ic_slot, two_slot, eight_sixteen_bit_ic] 1478b1994897Sopenharmony_ci - sig: stownbyname imm:u16, string_id, v:in:top 1479b1994897Sopenharmony_ci acc: in:top 1480b1994897Sopenharmony_ci opcode_idx: [0x7a, 0xcc] 1481b1994897Sopenharmony_ci format: [op_imm_8_id_16_v_8, op_imm_16_id_16_v_8] 1482b1994897Sopenharmony_ci properties: [string_id, ic_slot, two_slot, eight_sixteen_bit_ic] 1483b1994897Sopenharmony_ci - sig: ldsuperbyname imm:u16, string_id 1484b1994897Sopenharmony_ci acc: inout:top 1485b1994897Sopenharmony_ci opcode_idx: [0x46, 0x92] 1486b1994897Sopenharmony_ci format: [op_imm_8_id_16, op_imm_16_id_16] 1487b1994897Sopenharmony_ci properties: [string_id, ic_slot, two_slot, eight_sixteen_bit_ic] 1488b1994897Sopenharmony_ci - sig: deprecated.ldsuperbyname string_id, v:in:top 1489b1994897Sopenharmony_ci acc: out:top 1490b1994897Sopenharmony_ci opcode_idx: [0x26] 1491b1994897Sopenharmony_ci format: [pref_op_id_32_v_8] 1492b1994897Sopenharmony_ci properties: [string_id] 1493b1994897Sopenharmony_ci prefix: deprecated 1494b1994897Sopenharmony_ci - sig: stsuperbyname imm:u16, string_id, v:in:top 1495b1994897Sopenharmony_ci acc: in:top 1496b1994897Sopenharmony_ci opcode_idx: [0xd0, 0xd1] 1497b1994897Sopenharmony_ci format: [op_imm_8_id_16_v_8, op_imm_16_id_16_v_8] 1498b1994897Sopenharmony_ci properties: [string_id, ic_slot, two_slot, eight_sixteen_bit_ic] 1499b1994897Sopenharmony_ci - sig: ldlocalmodulevar imm:u8 1500b1994897Sopenharmony_ci opcode_idx: [0x7d] 1501b1994897Sopenharmony_ci acc: out:top 1502b1994897Sopenharmony_ci format: [op_imm_8] 1503b1994897Sopenharmony_ci - sig: wide.ldlocalmodulevar imm:u16 1504b1994897Sopenharmony_ci acc: out:top 1505b1994897Sopenharmony_ci opcode_idx: [0x10] 1506b1994897Sopenharmony_ci format: [pref_op_imm_16] 1507b1994897Sopenharmony_ci prefix: wide 1508b1994897Sopenharmony_ci - sig: ldexternalmodulevar imm:u8 1509b1994897Sopenharmony_ci acc: out:top 1510b1994897Sopenharmony_ci opcode_idx: [0x7e] 1511b1994897Sopenharmony_ci format: [op_imm_8] 1512b1994897Sopenharmony_ci - sig: wide.ldexternalmodulevar imm:u16 1513b1994897Sopenharmony_ci acc: out:top 1514b1994897Sopenharmony_ci opcode_idx: [0x11] 1515b1994897Sopenharmony_ci format: [pref_op_imm_16] 1516b1994897Sopenharmony_ci prefix: wide 1517b1994897Sopenharmony_ci - sig: deprecated.ldmodulevar string_id, imm:u8 1518b1994897Sopenharmony_ci acc: out:top 1519b1994897Sopenharmony_ci opcode_idx: [0x27] 1520b1994897Sopenharmony_ci format: [pref_op_id_32_imm_8] 1521b1994897Sopenharmony_ci prefix: deprecated 1522b1994897Sopenharmony_ci properties: [string_id] 1523b1994897Sopenharmony_ci - sig: stconsttoglobalrecord imm:u16, string_id 1524b1994897Sopenharmony_ci acc: in:top 1525b1994897Sopenharmony_ci opcode_idx: [0x47] 1526b1994897Sopenharmony_ci format: [op_imm_16_id_16] 1527b1994897Sopenharmony_ci properties: [string_id, ic_slot, one_slot, sixteen_bit_ic] 1528b1994897Sopenharmony_ci - sig: deprecated.stconsttoglobalrecord string_id 1529b1994897Sopenharmony_ci acc: in:top 1530b1994897Sopenharmony_ci opcode_idx: [0x28] 1531b1994897Sopenharmony_ci format: [pref_op_id_32] 1532b1994897Sopenharmony_ci properties: [string_id] 1533b1994897Sopenharmony_ci prefix: deprecated 1534b1994897Sopenharmony_ci - sig: sttoglobalrecord imm:u16, string_id 1535b1994897Sopenharmony_ci acc: in:top 1536b1994897Sopenharmony_ci opcode_idx: [0x48] 1537b1994897Sopenharmony_ci format: [op_imm_16_id_16] 1538b1994897Sopenharmony_ci properties: [string_id, ic_slot, one_slot, sixteen_bit_ic] 1539b1994897Sopenharmony_ci - sig: deprecated.stlettoglobalrecord string_id 1540b1994897Sopenharmony_ci acc: in:top 1541b1994897Sopenharmony_ci opcode_idx: [0x29] 1542b1994897Sopenharmony_ci format: [pref_op_id_32] 1543b1994897Sopenharmony_ci properties: [string_id] 1544b1994897Sopenharmony_ci prefix: deprecated 1545b1994897Sopenharmony_ci - sig: deprecated.stclasstoglobalrecord string_id 1546b1994897Sopenharmony_ci acc: in:top 1547b1994897Sopenharmony_ci opcode_idx: [0x2a] 1548b1994897Sopenharmony_ci format: [pref_op_id_32] 1549b1994897Sopenharmony_ci properties: [string_id] 1550b1994897Sopenharmony_ci prefix: deprecated 1551b1994897Sopenharmony_ci - sig: deprecated.ldhomeobject 1552b1994897Sopenharmony_ci acc: out:top 1553b1994897Sopenharmony_ci opcode_idx: [0x2b] 1554b1994897Sopenharmony_ci format: [pref_op_none] 1555b1994897Sopenharmony_ci prefix: deprecated 1556b1994897Sopenharmony_ci - sig: deprecated.createobjecthavingmethod imm:u16 1557b1994897Sopenharmony_ci acc: inout:top 1558b1994897Sopenharmony_ci opcode_idx: [0x2c] 1559b1994897Sopenharmony_ci format: [pref_op_imm_16] 1560b1994897Sopenharmony_ci prefix: deprecated 1561b1994897Sopenharmony_ci - sig: stownbyvaluewithnameset imm:u16, v1:in:top, v2:in:top 1562b1994897Sopenharmony_ci acc: in:top 1563b1994897Sopenharmony_ci opcode_idx: [0x99, 0xd2] 1564b1994897Sopenharmony_ci format: [op_imm_8_v1_8_v2_8, op_imm_16_v1_8_v2_8] 1565b1994897Sopenharmony_ci properties: [ic_slot, two_slot, eight_sixteen_bit_ic] 1566b1994897Sopenharmony_ci - sig: stownbynamewithnameset imm:u16, string_id, v:in:top 1567b1994897Sopenharmony_ci acc: in:top 1568b1994897Sopenharmony_ci opcode_idx: [0x8e, 0xd4] 1569b1994897Sopenharmony_ci format: [op_imm_8_id_16_v_8, op_imm_16_id_16_v_8] 1570b1994897Sopenharmony_ci properties: [string_id, ic_slot, two_slot, eight_sixteen_bit_ic] 1571b1994897Sopenharmony_ci - sig: ldbigint string_id 1572b1994897Sopenharmony_ci acc: out:top 1573b1994897Sopenharmony_ci opcode_idx: [0xd3] 1574b1994897Sopenharmony_ci format: [op_id_16] 1575b1994897Sopenharmony_ci properties: [string_id] 1576b1994897Sopenharmony_ci - sig: ldthisbyname imm:u16, string_id 1577b1994897Sopenharmony_ci acc: out:top 1578b1994897Sopenharmony_ci opcode_idx: [0x49, 0x93] 1579b1994897Sopenharmony_ci format: [op_imm_8_id_16, op_imm_16_id_16] 1580b1994897Sopenharmony_ci properties: [string_id, ic_slot, two_slot, eight_sixteen_bit_ic] 1581b1994897Sopenharmony_ci - sig: stthisbyname imm:u16, string_id 1582b1994897Sopenharmony_ci acc: in:top 1583b1994897Sopenharmony_ci opcode_idx: [0x4a, 0x94] 1584b1994897Sopenharmony_ci format: [op_imm_8_id_16, op_imm_16_id_16] 1585b1994897Sopenharmony_ci properties: [string_id, ic_slot, two_slot, eight_sixteen_bit_ic] 1586b1994897Sopenharmony_ci - sig: ldthisbyvalue imm:u16 1587b1994897Sopenharmony_ci acc: inout:top 1588b1994897Sopenharmony_ci opcode_idx: [0x4b, 0x95] 1589b1994897Sopenharmony_ci format: [op_imm_8, op_imm_16] 1590b1994897Sopenharmony_ci properties: [ic_slot, two_slot, eight_sixteen_bit_ic] 1591b1994897Sopenharmony_ci - sig: stthisbyvalue imm:u16, v:in:top 1592b1994897Sopenharmony_ci acc: in:top 1593b1994897Sopenharmony_ci opcode_idx: [0x4c, 0x96] 1594b1994897Sopenharmony_ci format: [op_imm_8_v_8, op_imm_16_v_8] 1595b1994897Sopenharmony_ci properties: [ic_slot, two_slot, eight_sixteen_bit_ic] 1596b1994897Sopenharmony_ci - sig: wide.ldpatchvar imm:u16 1597b1994897Sopenharmony_ci acc: out:top 1598b1994897Sopenharmony_ci opcode_idx: [0x12] 1599b1994897Sopenharmony_ci format: [pref_op_imm_16] 1600b1994897Sopenharmony_ci prefix: wide 1601b1994897Sopenharmony_ci - sig: wide.stpatchvar imm:u16 1602b1994897Sopenharmony_ci acc: in:top 1603b1994897Sopenharmony_ci opcode_idx: [0x13] 1604b1994897Sopenharmony_ci format: [pref_op_imm_16] 1605b1994897Sopenharmony_ci prefix: wide 1606b1994897Sopenharmony_ci - sig: dynamicimport 1607b1994897Sopenharmony_ci acc: inout:top 1608b1994897Sopenharmony_ci opcode_idx: [0xbd] 1609b1994897Sopenharmony_ci format: [op_none] 1610b1994897Sopenharmony_ci - sig: deprecated.dynamicimport v:in:top 1611b1994897Sopenharmony_ci acc: out:top 1612b1994897Sopenharmony_ci opcode_idx: [0x2d] 1613b1994897Sopenharmony_ci format: [pref_op_v_8] 1614b1994897Sopenharmony_ci prefix: deprecated 1615b1994897Sopenharmony_ci - sig: asyncgeneratorreject v:in:top 1616b1994897Sopenharmony_ci acc: inout:top 1617b1994897Sopenharmony_ci opcode_idx: [0x97] 1618b1994897Sopenharmony_ci format: [op_v_8] 1619b1994897Sopenharmony_ci - sig: deprecated.asyncgeneratorreject v1:in:top, v2:in:top 1620b1994897Sopenharmony_ci acc: out:top 1621b1994897Sopenharmony_ci opcode_idx: [0x2e] 1622b1994897Sopenharmony_ci format: [pref_op_v1_8_v2_8] 1623b1994897Sopenharmony_ci prefix: deprecated 1624b1994897Sopenharmony_ci - sig: setgeneratorstate imm:u8 1625b1994897Sopenharmony_ci acc: in:top 1626b1994897Sopenharmony_ci opcode_idx: [0xd6] 1627b1994897Sopenharmony_ci format: [op_imm_8] 1628b1994897Sopenharmony_ci 1629b1994897Sopenharmony_ci - title: Load accumulator from string constant pool 1630b1994897Sopenharmony_ci description: > 1631b1994897Sopenharmony_ci Load string specified by id into accumulator. In dynamically-typed language context 1632b1994897Sopenharmony_ci load string as 'any' value. 1633b1994897Sopenharmony_ci properties: 1634b1994897Sopenharmony_ci - string_id 1635b1994897Sopenharmony_ci - language_type 1636b1994897Sopenharmony_ci - maybe_dynamic 1637b1994897Sopenharmony_ci exceptions: 1638b1994897Sopenharmony_ci - x_oom 1639b1994897Sopenharmony_ci verification: 1640b1994897Sopenharmony_ci - constant_string_id 1641b1994897Sopenharmony_ci pseudo: | 1642b1994897Sopenharmony_ci acc = load(id) 1643b1994897Sopenharmony_ci instructions: 1644b1994897Sopenharmony_ci - sig: lda.str string_id 1645b1994897Sopenharmony_ci acc: out:ref 1646b1994897Sopenharmony_ci opcode_idx: [0x3e] 1647b1994897Sopenharmony_ci format: [op_id_16] 1648b1994897Sopenharmony_ci 1649b1994897Sopenharmony_ci - title: jump operations 1650b1994897Sopenharmony_ci description: > 1651b1994897Sopenharmony_ci Transfer execution to an instruction at offset bytes from the beginning of the current 1652b1994897Sopenharmony_ci instruction. Offset is sign extended to the size of instruction address. 1653b1994897Sopenharmony_ci properties: 1654b1994897Sopenharmony_ci - jump 1655b1994897Sopenharmony_ci exceptions: 1656b1994897Sopenharmony_ci - x_none 1657b1994897Sopenharmony_ci verification: 1658b1994897Sopenharmony_ci - branch_target 1659b1994897Sopenharmony_ci pseudo: | 1660b1994897Sopenharmony_ci pc += imm 1661b1994897Sopenharmony_ci instructions: 1662b1994897Sopenharmony_ci - sig: jmp imm:i32 1663b1994897Sopenharmony_ci acc: none 1664b1994897Sopenharmony_ci opcode_idx: [0x4d, 0x4e, 0x98] 1665b1994897Sopenharmony_ci format: [op_imm_8, op_imm_16, op_imm_32] 1666b1994897Sopenharmony_ci - sig: jeqz imm:i32 1667b1994897Sopenharmony_ci acc: in:top 1668b1994897Sopenharmony_ci opcode_idx: [0x4f, 0x50, 0x9a] 1669b1994897Sopenharmony_ci format: [op_imm_8, op_imm_16, op_imm_32] 1670b1994897Sopenharmony_ci properties: [conditional] 1671b1994897Sopenharmony_ci - sig: jnez imm:i32 1672b1994897Sopenharmony_ci acc: in:top 1673b1994897Sopenharmony_ci opcode_idx: [0x51, 0x9b, 0x9c] 1674b1994897Sopenharmony_ci format: [op_imm_8, op_imm_16, op_imm_32] 1675b1994897Sopenharmony_ci properties: [conditional] 1676b1994897Sopenharmony_ci - sig: jstricteqz imm:i16 1677b1994897Sopenharmony_ci acc: in:top 1678b1994897Sopenharmony_ci opcode_idx: [0x52, 0x9d] 1679b1994897Sopenharmony_ci format: [op_imm_8, op_imm_16] 1680b1994897Sopenharmony_ci properties: [conditional] 1681b1994897Sopenharmony_ci - sig: jnstricteqz imm:i16 1682b1994897Sopenharmony_ci acc: in:top 1683b1994897Sopenharmony_ci opcode_idx: [0x53, 0x9e] 1684b1994897Sopenharmony_ci format: [op_imm_8, op_imm_16] 1685b1994897Sopenharmony_ci properties: [conditional] 1686b1994897Sopenharmony_ci - sig: jeqnull imm:i16 1687b1994897Sopenharmony_ci acc: in:top 1688b1994897Sopenharmony_ci opcode_idx: [0x54, 0x9f] 1689b1994897Sopenharmony_ci format: [op_imm_8, op_imm_16] 1690b1994897Sopenharmony_ci properties: [conditional] 1691b1994897Sopenharmony_ci - sig: jnenull imm:i16 1692b1994897Sopenharmony_ci acc: in:top 1693b1994897Sopenharmony_ci opcode_idx: [0x55, 0xa0] 1694b1994897Sopenharmony_ci format: [op_imm_8, op_imm_16] 1695b1994897Sopenharmony_ci properties: [conditional] 1696b1994897Sopenharmony_ci - sig: jstricteqnull imm:i16 1697b1994897Sopenharmony_ci acc: in:top 1698b1994897Sopenharmony_ci opcode_idx: [0x56, 0xa1] 1699b1994897Sopenharmony_ci format: [op_imm_8, op_imm_16] 1700b1994897Sopenharmony_ci properties: [conditional] 1701b1994897Sopenharmony_ci - sig: jnstricteqnull imm:i16 1702b1994897Sopenharmony_ci acc: in:top 1703b1994897Sopenharmony_ci opcode_idx: [0x57, 0xa2] 1704b1994897Sopenharmony_ci format: [op_imm_8, op_imm_16] 1705b1994897Sopenharmony_ci properties: [conditional] 1706b1994897Sopenharmony_ci - sig: jequndefined imm:i16 1707b1994897Sopenharmony_ci acc: in:top 1708b1994897Sopenharmony_ci opcode_idx: [0x58, 0xa3] 1709b1994897Sopenharmony_ci format: [op_imm_8, op_imm_16] 1710b1994897Sopenharmony_ci properties: [conditional] 1711b1994897Sopenharmony_ci - sig: jneundefined imm:i16 1712b1994897Sopenharmony_ci acc: in:top 1713b1994897Sopenharmony_ci opcode_idx: [0x59, 0xa4] 1714b1994897Sopenharmony_ci format: [op_imm_8, op_imm_16] 1715b1994897Sopenharmony_ci properties: [conditional] 1716b1994897Sopenharmony_ci - sig: jstrictequndefined imm:i16 1717b1994897Sopenharmony_ci acc: in:top 1718b1994897Sopenharmony_ci opcode_idx: [0x5a, 0xa5] 1719b1994897Sopenharmony_ci format: [op_imm_8, op_imm_16] 1720b1994897Sopenharmony_ci properties: [conditional] 1721b1994897Sopenharmony_ci - sig: jnstrictequndefined imm:i16 1722b1994897Sopenharmony_ci acc: in:top 1723b1994897Sopenharmony_ci opcode_idx: [0x5b, 0xa6] 1724b1994897Sopenharmony_ci format: [op_imm_8, op_imm_16] 1725b1994897Sopenharmony_ci properties: [conditional] 1726b1994897Sopenharmony_ci - sig: jeq v:in:top, imm:i16 1727b1994897Sopenharmony_ci acc: in:top 1728b1994897Sopenharmony_ci opcode_idx: [0x5c, 0xa7] 1729b1994897Sopenharmony_ci format: [op_v_8_imm_8, op_v_8_imm_16] 1730b1994897Sopenharmony_ci properties: [conditional] 1731b1994897Sopenharmony_ci - sig: jne v:in:top, imm:i16 1732b1994897Sopenharmony_ci acc: in:top 1733b1994897Sopenharmony_ci opcode_idx: [0x5d, 0xa8] 1734b1994897Sopenharmony_ci format: [op_v_8_imm_8, op_v_8_imm_16] 1735b1994897Sopenharmony_ci properties: [conditional] 1736b1994897Sopenharmony_ci - sig: jstricteq v:in:top, imm:i16 1737b1994897Sopenharmony_ci acc: in:top 1738b1994897Sopenharmony_ci opcode_idx: [0x5e, 0xa9] 1739b1994897Sopenharmony_ci format: [op_v_8_imm_8, op_v_8_imm_16] 1740b1994897Sopenharmony_ci properties: [conditional] 1741b1994897Sopenharmony_ci - sig: jnstricteq v:in:top, imm:i16 1742b1994897Sopenharmony_ci acc: in:top 1743b1994897Sopenharmony_ci opcode_idx: [0x5f, 0xaa] 1744b1994897Sopenharmony_ci format: [op_v_8_imm_8, op_v_8_imm_16] 1745b1994897Sopenharmony_ci properties: [conditional] 1746b1994897Sopenharmony_ci 1747b1994897Sopenharmony_ci - title: Dynamic move register-to-register 1748b1994897Sopenharmony_ci description: > 1749b1994897Sopenharmony_ci Move 'any' values between registers 1750b1994897Sopenharmony_ci verification: 1751b1994897Sopenharmony_ci - valid_in_dynamic_context 1752b1994897Sopenharmony_ci exceptions: 1753b1994897Sopenharmony_ci - x_none 1754b1994897Sopenharmony_ci properties: 1755b1994897Sopenharmony_ci - dynamic 1756b1994897Sopenharmony_ci pseudo: | 1757b1994897Sopenharmony_ci vd = vs 1758b1994897Sopenharmony_ci instructions: 1759b1994897Sopenharmony_ci - sig: mov v1:out:any, v2:in:any 1760b1994897Sopenharmony_ci acc: none 1761b1994897Sopenharmony_ci opcode_idx: [0x44, 0x45, 0x8f] 1762b1994897Sopenharmony_ci format: [op_v1_4_v2_4, op_v1_8_v2_8, op_v1_16_v2_16] 1763b1994897Sopenharmony_ci 1764b1994897Sopenharmony_ci - title: Dynamic load accumulator from register 1765b1994897Sopenharmony_ci description: > 1766b1994897Sopenharmony_ci Move 'any' value from register to accumulator 1767b1994897Sopenharmony_ci verification: 1768b1994897Sopenharmony_ci - valid_in_dynamic_context 1769b1994897Sopenharmony_ci exceptions: 1770b1994897Sopenharmony_ci - x_none 1771b1994897Sopenharmony_ci properties: 1772b1994897Sopenharmony_ci - dynamic 1773b1994897Sopenharmony_ci pseudo: | 1774b1994897Sopenharmony_ci acc = v 1775b1994897Sopenharmony_ci instructions: 1776b1994897Sopenharmony_ci - sig: lda v:in:any 1777b1994897Sopenharmony_ci acc: out:any 1778b1994897Sopenharmony_ci opcode_idx: [0x60] 1779b1994897Sopenharmony_ci format: [op_v_8] 1780b1994897Sopenharmony_ci 1781b1994897Sopenharmony_ci - title: Dynamic store accumulator 1782b1994897Sopenharmony_ci description: > 1783b1994897Sopenharmony_ci Move 'any' value from accumulator to register 1784b1994897Sopenharmony_ci verification: 1785b1994897Sopenharmony_ci - valid_in_dynamic_context 1786b1994897Sopenharmony_ci exceptions: 1787b1994897Sopenharmony_ci - x_none 1788b1994897Sopenharmony_ci properties: 1789b1994897Sopenharmony_ci - dynamic 1790b1994897Sopenharmony_ci pseudo: | 1791b1994897Sopenharmony_ci v = acc 1792b1994897Sopenharmony_ci instructions: 1793b1994897Sopenharmony_ci - sig: sta v:out:any 1794b1994897Sopenharmony_ci acc: in:any 1795b1994897Sopenharmony_ci opcode_idx: [0x61] 1796b1994897Sopenharmony_ci format: [op_v_8] 1797b1994897Sopenharmony_ci 1798b1994897Sopenharmony_ci - title: Dynamic load accumulator from immediate 1799b1994897Sopenharmony_ci description: > 1800b1994897Sopenharmony_ci Move immediate as 'any' value to accumulator 1801b1994897Sopenharmony_ci verification: 1802b1994897Sopenharmony_ci - valid_in_dynamic_context 1803b1994897Sopenharmony_ci exceptions: 1804b1994897Sopenharmony_ci - x_none 1805b1994897Sopenharmony_ci properties: 1806b1994897Sopenharmony_ci - dynamic 1807b1994897Sopenharmony_ci pseudo: | 1808b1994897Sopenharmony_ci acc = imm 1809b1994897Sopenharmony_ci instructions: 1810b1994897Sopenharmony_ci - sig: ldai imm:i32 1811b1994897Sopenharmony_ci acc: out:any 1812b1994897Sopenharmony_ci opcode_idx: [0x62] 1813b1994897Sopenharmony_ci format: [op_imm_32] 1814b1994897Sopenharmony_ci - sig: fldai imm:f64 1815b1994897Sopenharmony_ci acc: out:any 1816b1994897Sopenharmony_ci opcode_idx: [0x63] 1817b1994897Sopenharmony_ci format: [op_imm_64] 1818b1994897Sopenharmony_ci properties: [float, dynamic] 1819b1994897Sopenharmony_ci 1820b1994897Sopenharmony_ci - title: dynamic return 1821b1994897Sopenharmony_ci description: dynamic return from method 1822b1994897Sopenharmony_ci verification: 1823b1994897Sopenharmony_ci - valid_in_dynamic_context 1824b1994897Sopenharmony_ci exceptions: 1825b1994897Sopenharmony_ci - x_none 1826b1994897Sopenharmony_ci properties: 1827b1994897Sopenharmony_ci - dynamic 1828b1994897Sopenharmony_ci - return 1829b1994897Sopenharmony_ci namespace: ecmascript 1830b1994897Sopenharmony_ci pseudo: | 1831b1994897Sopenharmony_ci return acc 1832b1994897Sopenharmony_ci instructions: 1833b1994897Sopenharmony_ci - sig: return 1834b1994897Sopenharmony_ci acc: in:any 1835b1994897Sopenharmony_ci opcode_idx: [0x64] 1836b1994897Sopenharmony_ci format: [op_none] 1837b1994897Sopenharmony_ci properties: [return] 1838b1994897Sopenharmony_ci - sig: returnundefined 1839b1994897Sopenharmony_ci acc: none 1840b1994897Sopenharmony_ci opcode_idx: [0x65] 1841b1994897Sopenharmony_ci properties: [return] 1842b1994897Sopenharmony_ci format: [op_none] 1843b1994897Sopenharmony_ci 1844b1994897Sopenharmony_ci - title: no operation 1845b1994897Sopenharmony_ci description: Perform an operation without behavior 1846b1994897Sopenharmony_ci exceptions: 1847b1994897Sopenharmony_ci - x_none 1848b1994897Sopenharmony_ci verification: 1849b1994897Sopenharmony_ci - none 1850b1994897Sopenharmony_ci pseudo: | 1851b1994897Sopenharmony_ci skip 1852b1994897Sopenharmony_ci instructions: 1853b1994897Sopenharmony_ci - sig: nop 1854b1994897Sopenharmony_ci acc: none 1855b1994897Sopenharmony_ci opcode_idx: [0xd5] 1856b1994897Sopenharmony_ci format: [op_none] 1857