Lines Matching +full:constant +full:- +full:pool
1 # Copyright (c) 2021-2022 Huawei Device Co., Ltd.
6 # http://www.apache.org/licenses/LICENSE-2.0
14 ---
17 - name: General design
21 - name: Registers
31 - name: Accumulator
40 register-to-register moves.
42 - name: Calling sequence
48 …On return, callee frame is destroyed. If function return value is non-void, it is passed to caller…
52 - name: Supported primitive types
54 …VM support operations on registers with i32 and i64 integral values. However, 8-bit and 16-bit int…
56 …value to match storage size with i32. Similarly, passing an 8-bit or 16-bit value to a function ca…
57 passing a value, which is zero or sign-extended to i32.
58 …VM support operations on registers with f32 and f64 values, which corresponds to IEEE-754 single a…
59 floating-point represenation.
68 ### Floating-point literals
70 Decimal floating-point literals can have the following parts:
72 - Sign ("`+`" or "`-`")
73 - Whole number part
74 - Decimal point
75 - Fractional part
76 - Exponent indicator ("`e`")
77 - Exponent sign
78 - Exponent
80 …Decimal floating-point literals must have at least one digit and either decimal point or exponent …
84 - Positive zero (+0.0, hexadecimal representation is `0x0000000000000000`)
85 - Negative zero (-0.0, hexadecimal representation is `0x8000000000000000`)
86 - Minimal positive value (4.9E-324, hexadecimal representation is `0x0000000000000001`)
87 - Maximal negative value (-4.9E-324, hexadecimal representation is `0x8000000000000001`)
88 …- Maximal positive value (1.7976931348623157e308, hexadecimal representation is `0x7feffffffffffff…
89 …- Minimal negative value (-1.7976931348623157e308, hexadecimal representation is `0xffefffffffffff…
90 - Positive infinity (hexadecimal representation is `0x7ff0000000000000`)
91 - Negative infinity (hexadecimal representation is `0xfff0000000000000`)
92 …- Not a number - set of all NaN values (one of hexadecimal representations is `0x7ff8000000000000`)
94 - name: Language-dependent types
97 …from constant pool) of strings, arrays, exception objects results into an object of type native to…
100 - name: Dynamically-typed languages support
105 …to hold 'any' value. When VM executes code inside dynamically-typed language context, regular stat…
113 - tag: type_id
114 description: Use an id which resolves into a type constant.
115 - tag: method_id
116 description: Use an id which resolves into a method constant.
117 - tag: string_id
118 description: Use an id which resolves into a string constant.
119 - tag: literalarray_id
120 description: Use an id which resolves into a constant literalarray.
121 - tag: field_id
123 - tag: call
125 - tag: call_virt
127 - tag: return
129 - tag: suspend
131 - tag: jump
133 - tag: conditional
135 - tag: float
137 - tag: dynamic
139 - tag: maybe_dynamic
141 - tag: language_type
143 - tag: initialize_type
145 - tag: ic_slot
146 description: Use the immedate number after opcode of length 8-bit or 16-bit as ic slot.
147 - tag: jit_ic_slot
148 description: Use the immedate number after opcode of length 8-bit as jit ic slot.
149 - tag: one_slot
151 - tag: two_slot
155 - tag: x_none
157 - tag: x_null
159 - tag: x_bounds
161 - tag: x_negsize
163 - tag: x_store
165 - tag: x_abstract
167 - tag: x_arith
169 - tag: x_cast
171 - tag: x_classdef
173 - tag: x_oom
175 - tag: x_init
177 - tag: x_call
179 - tag: x_throw
181 - tag: x_link
184 - tag: none
186 - tag: v1_array
188 - tag: v1_object
190 - tag: v1_array_type
193 - tag: v1_i32
195 - tag: v1_type
197 - tag: v1_obj_or_null
199 - tag: v2_i32
201 - tag: v2_object
203 - tag: v2_type
205 - tag: acc_i32
207 - tag: acc_type
209 - tag: acc_return_type
212 - tag: v1_throw_type
214 - tag: acc_obj_or_null
216 - tag: type_id_array
218 - tag: type_id_object
220 - tag: type_id_any_object
222 - tag: method_id_static
223 …id must resolve to a static method or into initializer for a type other than one-dimensional array.
224 - tag: method_id_non_static
225 description: Method_id must resolve to a non-static method.
226 - tag: method_id_non_abstract
228 - tag: method_id_accessible
230 - tag: constant_string_id
231 description: Id must resolve into a constant-pool string.
232 - tag: constant_literalarray_id
233 description: Id must resolve into a constant literalarray.
234 - tag: compatible_arguments
236 - tag: method_init_obj
237 … description: Method_id must resolve into initializer for a type other than one-dimensional array.
238 - tag: branch_target
240 - tag: field_id_non_static
241 description: Field_id must resolve to a non-static object field.
242 - tag: field_id_static
244 - tag: field_id_size
246 - tag: valid_in_dynamic_context
247 description: Instruction valid only for dynamically-typed language context.
250 …- description: The last encoding number of various ISA. It should be maintained as long as ISA cha…
258 - name: throw
261 - name: wide
264 - name: deprecated
267 - name: callruntime
272 - title: constant object loaders
273 description: instructions which operate on constant objects.
275 - none
277 - x_none
279 - acc_read
280 - acc_write
287 - sig: ldnan
291 - sig: ldinfinity
295 - sig: ldundefined
299 - sig: ldnull
303 - sig: ldsymbol
307 - sig: ldglobal
311 - sig: ldtrue
315 - sig: ldfalse
319 - sig: ldhole
323 - sig: deprecated.ldlexenv
328 - sig: ldnewtarget
332 - sig: ldthis
336 - sig: poplexenv
340 - sig: deprecated.poplexenv
345 - sig: getunmappedargs
349 - sig: asyncfunctionenter
353 - sig: ldfunction
357 - sig: debugger
362 - title: iterator instructions
365 - none
367 - x_none
369 - acc_read
370 - acc_write
377 - sig: getpropiterator
381 - sig: getiterator imm
386 - sig: closeiterator imm, v:in:top
391 - sig: deprecated.getiteratornext v1:in:top, v2:in:top
396 - sig: getasynciterator imm
402 - title: object creaters
405 - none
407 - x_none
409 - acc_read
410 - acc_write
417 - sig: createemptyobject
421 - sig: createemptyarray imm
426 - sig: creategeneratorobj v:in:top
430 - sig: createiterresultobj v1:in:top, v2:in:top
434 - sig: createobjectwithexcludedkeys imm, v1:in:top, v2:in:top
438 - sig: wide.createobjectwithexcludedkeys imm, v1:in:top, v2:in:top
443 - sig: createarraywithbuffer imm, literalarray_id
448 - sig: deprecated.createarraywithbuffer imm
453 - sig: createobjectwithbuffer imm, literalarray_id
458 - sig: deprecated.createobjectwithbuffer imm
463 - sig: createregexpwithliteral imm1, string_id, imm2
468 - sig: newobjapply imm, v:in:top
473 - sig: newobjrange imm1, imm2, v:in:top
478 - sig: wide.newobjrange imm, v:in:top
483 - sig: newlexenv imm
487 - sig: wide.newlexenv imm
492 - sig: newlexenvwithname imm, literalarray_id
497 - sig: wide.newlexenvwithname imm, literalarray_id
503 - sig: createasyncgeneratorobj v:in:top
507 - sig: asyncgeneratorresolve v1:in:top, v2:in:top, v3:in:top
512 - title: binary operations
515 - none
517 - x_none
519 - acc_read
520 - acc_write
527 - sig: add2 imm, v:in:top
532 - sig: sub2 imm, v:in:top
537 - sig: mul2 imm, v:in:top
542 - sig: div2 imm, v:in:top
547 - sig: mod2 imm, v:in:top
552 - sig: eq imm, v:in:top
557 - sig: noteq imm, v:in:top
562 - sig: less imm, v:in:top
567 - sig: lesseq imm, v:in:top
572 - sig: greater imm, v:in:top
577 - sig: greatereq imm, v:in:top
582 - sig: shl2 imm, v:in:top
587 - sig: shr2 imm, v:in:top
592 - sig: ashr2 imm, v:in:top
597 - sig: and2 imm, v:in:top
602 - sig: or2 imm, v:in:top
607 - sig: xor2 imm, v:in:top
612 - sig: exp imm, v:in:top
618 - title: unary operations
621 - none
623 - x_none
625 - acc_read
626 - acc_write
633 - sig: typeof imm
638 - sig: tonumber imm
643 - sig: deprecated.tonumber v:in:top
648 - sig: tonumeric imm
653 - sig: deprecated.tonumeric v:in:top
658 - sig: neg imm
663 - sig: deprecated.neg v:in:top
668 - sig: not imm
673 - sig: deprecated.not v:in:top
678 - sig: inc imm
683 - sig: deprecated.inc v:in:top
688 - sig: dec imm
693 - sig: deprecated.dec v:in:top
698 - sig: istrue
702 - sig: isfalse
707 - title: comparation instructions
710 - none
712 - x_none
714 - acc_read
715 - acc_write
722 - sig: isin imm, v:in:top
727 - sig: instanceof imm, v:in:top
732 - sig: strictnoteq imm, v:in:top
737 - sig: stricteq imm, v:in:top
743 - title: call runtime functions
746 - none
748 - x_none
750 - acc_read
751 - acc_write
758 - sig: callruntime.notifyconcurrentresult
764 - title: throw instructions
767 - none
769 - x_none
771 - acc_read
772 - acc_write
779 - sig: throw
784 - sig: throw.notexists
789 - sig: throw.patternnoncoercible
794 - sig: throw.deletesuperproperty
799 - sig: throw.constassignment v:in:top
804 - sig: throw.ifnotobject v:in:top
809 - sig: throw.undefinedifhole v1:in:top, v2:in:top
814 - sig: throw.ifsupernotcorrectcall imm
819 - sig: throw.undefinedifholewithname string_id
826 - title: call instructions
829 - none
831 - x_none
833 - acc_read
834 - acc_write
841 - sig: callarg0 imm
846 - sig: deprecated.callarg0 v:in:top
851 - sig: callarg1 imm, v:in:top
856 - sig: deprecated.callarg1 v1:in:top, v2:in:top
861 - sig: callargs2 imm, v1:in:top, v2:in:top
866 - sig: deprecated.callargs2 v1:in:top, v2:in:top, v3:in:top
871 - sig: callargs3 imm, v1:in:top, v2:in:top, v3:in:top
876 - sig: deprecated.callargs3 v1:in:top, v2:in:top, v3:in:top, v4:in:top
881 - sig: callrange imm1, imm2, v:in:top
886 - sig: wide.callrange imm, v:in:top
891 - sig: deprecated.callrange imm, v:in:top
896 - sig: supercallspread imm, v:in:top
901 - sig: apply imm, v1:in:top, v2:in:top
906 - sig: deprecated.callspread v1:in:top, v2:in:top, v3:in:top
911 - sig: callthis0 imm, v:in:top
916 - sig: callthis1 imm, v1:in:top, v2:in:top
921 - sig: callthis2 imm, v1:in:top, v2:in:top, v3:in:top
926 - sig: callthis3 imm, v1:in:top, v2:in:top, v3:in:top, v4:in:top
931 - sig: callthisrange imm1, imm2, v:in:top
936 - sig: wide.callthisrange imm, v:in:top
941 - sig: deprecated.callthisrange imm, v:in:top
946 - sig: supercallthisrange imm1, imm2, v:in:top
951 - sig: wide.supercallthisrange imm, v:in:top
956 - sig: supercallarrowrange imm1, imm2, v:in:top
961 - sig: wide.supercallarrowrange imm, v:in:top
967 - title: definition instuctions
970 - none
972 - x_none
974 - acc_read
975 - acc_write
982 - sig: definegettersetterbyvalue v1:in:top, v2:in:top, v3:in:top, v4:in:top
986 - sig: definefunc imm1, method_id, imm2
991 - sig: definemethod imm1, method_id, imm2
996 - sig: defineclasswithbuffer imm1, method_id, literalarray_id, imm2, v:in:top
1001 - sig: deprecated.defineclasswithbuffer method_id, imm1, imm2, v1:in:top, v2:in:top
1008 - title: object visitors
1011 - none
1013 - x_none
1015 - acc_read
1016 - acc_write
1023 - sig: resumegenerator
1027 - sig: deprecated.resumegenerator v:in:top
1032 - sig: getresumemode
1036 - sig: deprecated.getresumemode v:in:top
1041 - sig: gettemplateobject imm
1046 - sig: deprecated.gettemplateobject v:in:top
1051 - sig: getnextpropname v:in:top
1055 - sig: delobjprop v:in:top
1059 - sig: deprecated.delobjprop v1:in:top, v2:in:top
1064 - sig: suspendgenerator v:in:top
1068 - sig: deprecated.suspendgenerator v1:in:top, v2:in:top
1073 - sig: asyncfunctionawaituncaught v:in:top
1077 - sig: deprecated.asyncfunctionawaituncaught v1:in:top, v2:in:top
1082 - sig: copydataproperties v:in:top
1086 - sig: deprecated.copydataproperties v1:in:top, v2:in:top
1091 - sig: starrayspread v1:in:top, v2:in:top
1095 - sig: setobjectwithproto imm, v:in:top
1100 - sig: deprecated.setobjectwithproto v1:in:top, v2:in:top
1105 - sig: ldobjbyvalue imm, v:in:top
1110 - sig: deprecated.ldobjbyvalue v1:in:top, v2:in:top
1115 - sig: stobjbyvalue imm, v1:in:top, v2:in:top
1120 - sig: stownbyvalue imm, v1:in:top, v2:in:top
1125 - sig: ldsuperbyvalue imm, v:in:top
1130 - sig: deprecated.ldsuperbyvalue v1:in:top, v2:in:top
1135 - sig: stsuperbyvalue imm, v1:in:top, v2:in:top
1140 - sig: ldobjbyindex imm1, imm2
1145 - sig: wide.ldobjbyindex imm
1150 - sig: deprecated.ldobjbyindex v:in:top, imm
1155 - sig: stobjbyindex imm1, v:in:top, imm2
1160 - sig: wide.stobjbyindex v:in:top, imm
1165 - sig: stownbyindex imm1, v:in:top, imm2
1170 - sig: wide.stownbyindex v:in:top, imm
1175 - sig: asyncfunctionresolve v:in:top
1179 - sig: deprecated.asyncfunctionresolve v1:in:top, v2:in:top, v3:in:top
1184 - sig: asyncfunctionreject v:in:top
1188 - sig: deprecated.asyncfunctionreject v1:in:top, v2:in:top, v3:in:top
1193 - sig: copyrestargs imm
1197 - sig: wide.copyrestargs imm
1202 - sig: ldlexvar imm1, imm2
1206 - sig: wide.ldlexvar imm1, imm2
1211 - sig: stlexvar imm1, imm2
1215 - sig: wide.stlexvar imm1, imm2
1220 - sig: deprecated.stlexvar imm1, imm2, v:in:top
1225 - sig: getmodulenamespace imm
1229 - sig: wide.getmodulenamespace imm
1234 - sig: deprecated.getmodulenamespace string_id
1240 - sig: stmodulevar imm
1244 - sig: wide.stmodulevar imm
1249 - sig: deprecated.stmodulevar string_id
1255 - sig: tryldglobalbyname imm, string_id
1260 - sig: trystglobalbyname imm, string_id
1265 - sig: ldglobalvar imm, string_id
1270 - sig: stglobalvar imm, string_id
1275 - sig: ldobjbyname imm, string_id
1280 - sig: deprecated.ldobjbyname string_id, v:in:top
1286 - sig: stobjbyname imm, string_id, v:in:top
1291 - sig: stownbyname imm, string_id, v:in:top
1296 - sig: ldsuperbyname imm, string_id
1301 - sig: deprecated.ldsuperbyname string_id, v:in:top
1307 - sig: stsuperbyname imm, string_id, v:in:top
1312 - sig: ldlocalmodulevar imm
1316 - sig: wide.ldlocalmodulevar imm
1321 - sig: ldexternalmodulevar imm
1325 - sig: wide.ldexternalmodulevar imm
1330 - sig: deprecated.ldmodulevar string_id, imm
1336 - sig: stconsttoglobalrecord imm, string_id
1341 - sig: deprecated.stconsttoglobalrecord string_id
1347 - sig: sttoglobalrecord imm, string_id
1352 - sig: deprecated.stlettoglobalrecord string_id
1358 - sig: deprecated.stclasstoglobalrecord string_id
1364 - sig: deprecated.ldhomeobject
1369 - sig: deprecated.createobjecthavingmethod imm
1374 - sig: stownbyvaluewithnameset imm, v1:in:top, v2:in:top
1379 - sig: stownbynamewithnameset imm, string_id, v:in:top
1384 - sig: ldbigint string_id
1389 - sig: ldthisbyname imm, string_id
1394 - sig: stthisbyname imm, string_id
1399 - sig: ldthisbyvalue imm
1404 - sig: stthisbyvalue imm, v:in:top
1409 - sig: wide.ldpatchvar imm
1414 - sig: wide.stpatchvar imm
1419 - sig: dynamicimport
1423 - sig: deprecated.dynamicimport v:in:top
1428 - sig: asyncgeneratorreject v:in:top
1432 - sig: deprecated.asyncgeneratorreject v1:in:top, v2:in:top
1437 - sig: setgeneratorstate imm
1442 - title: Load accumulator from string constant pool
1444 Load string specified by id into accumulator. In dynamically-typed language context
1447 - string_id
1448 - language_type
1449 - maybe_dynamic
1451 - x_oom
1453 - constant_string_id
1457 - sig: lda.str string_id
1462 - title: jump operations
1467 - jump
1469 - x_none
1471 - branch_target
1475 - sig: jmp imm
1479 - sig: jeqz imm
1484 - sig: jnez imm
1489 - sig: jstricteqz imm
1494 - sig: jnstricteqz imm
1499 - sig: jeqnull imm
1504 - sig: jnenull imm
1509 - sig: jstricteqnull imm
1514 - sig: jnstricteqnull imm
1519 - sig: jequndefined imm
1524 - sig: jneundefined imm
1529 - sig: jstrictequndefined imm
1534 - sig: jnstrictequndefined imm
1539 - sig: jeq v:in:top, imm
1544 - sig: jne v:in:top, imm
1549 - sig: jstricteq v:in:top, imm
1554 - sig: jnstricteq v:in:top, imm
1560 - title: Dynamic move register-to-register
1564 - valid_in_dynamic_context
1566 - x_none
1568 - dynamic
1572 - sig: mov v1:out:any, v2:in:any
1577 - title: Dynamic load accumulator from register
1581 - valid_in_dynamic_context
1583 - x_none
1585 - dynamic
1589 - sig: lda v:in:any
1594 - title: Dynamic store accumulator
1598 - valid_in_dynamic_context
1600 - x_none
1602 - dynamic
1606 - sig: sta v:out:any
1611 - title: Dynamic load accumulator from immediate
1615 - valid_in_dynamic_context
1617 - x_none
1619 - dynamic
1623 - sig: ldai imm:i32
1627 - sig: fldai imm:f64
1633 - title: dynamic return
1636 - valid_in_dynamic_context
1638 - x_none
1640 - dynamic
1641 - return
1646 - sig: return
1651 - sig: returnundefined
1657 - title: no operation
1660 - x_none
1662 - none
1666 - sig: nop