34 Star 151 Fork 626

OpenHarmony / arkcompiler_ets_runtime

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
ecma_isa.yaml 20.13 KB
一键复制 编辑 原始数据 按行查看 历史
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680
# Copyright (c) 2021 Huawei Device Co., Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
prefixes:
- name: ecma
description: Extension for ecma support.
groups:
- title: Ecma extension instructions
description: Ecma extension instructions with prefix ecma
verification:
- none
exceptions:
- x_none
properties:
- acc_read
- acc_write
namespace: ecmascript
pseudo: |
acc = ecma_op(acc, operand_0, ..., operands_n)
semantics: |
skip
instructions:
- sig: ecma.ldnan
acc: out:top
prefix: ecma
format: [pref_op_none]
- sig: ecma.ldinfinity
acc: out:top
prefix: ecma
format: [pref_op_none]
- sig: ecma.ldglobalthis
acc: out:top
prefix: ecma
format: [pref_op_none]
- sig: ecma.ldundefined
acc: out:top
prefix: ecma
format: [pref_op_none]
- sig: ecma.ldnull
acc: out:top
prefix: ecma
format: [pref_op_none]
- sig: ecma.ldsymbol
acc: out:top
prefix: ecma
format: [pref_op_none]
- sig: ecma.ldglobal
acc: out:top
prefix: ecma
format: [pref_op_none]
- sig: ecma.ldtrue
acc: out:top
prefix: ecma
format: [pref_op_none]
- sig: ecma.ldfalse
acc: out:top
prefix: ecma
format: [pref_op_none]
- sig: ecma.throwdyn
acc: in:top
prefix: ecma
format: [pref_op_none]
- sig: ecma.typeofdyn
acc: inout:top
prefix: ecma
format: [pref_op_none]
- sig: ecma.ldlexenvdyn
acc: out:top
prefix: ecma
format: [pref_op_none]
- sig: ecma.poplexenvdyn
acc: out:top
prefix: ecma
format: [pref_op_none]
- sig: ecma.getunmappedargs
acc: out:top
prefix: ecma
format: [pref_op_none]
- sig: ecma.getpropiterator
acc: inout:top
prefix: ecma
format: [pref_op_none]
- sig: ecma.asyncfunctionenter
acc: out:top
prefix: ecma
format: [pref_op_none]
- sig: ecma.ldhole
acc: out:top
prefix: ecma
format: [pref_op_none]
- sig: ecma.returnundefined
acc: none
prefix: ecma
properties: [return]
format: [pref_op_none]
- sig: ecma.createemptyobject
acc: out:top
prefix: ecma
format: [pref_op_none]
- sig: ecma.createemptyarray
acc: out:top
prefix: ecma
format: [pref_op_none]
- sig: ecma.getiterator
acc: inout:top
prefix: ecma
format: [pref_op_none]
- sig: ecma.throwthrownotexists
acc: none
prefix: ecma
format: [pref_op_none]
- sig: ecma.throwpatternnoncoercible
acc: none
prefix: ecma
format: [pref_op_none]
- sig: ecma.ldhomeobject
acc: out:top
prefix: ecma
format: [pref_op_none]
- sig: ecma.throwdeletesuperproperty
acc: none
prefix: ecma
format: [pref_op_none]
- sig: ecma.debugger
acc: none
prefix: ecma
format: [pref_op_none]
- sig: ecma.add2dyn v:in:top
acc: inout:top
prefix: ecma
format: [pref_op_v_8]
- sig: ecma.sub2dyn v:in:top
acc: inout:top
prefix: ecma
format: [pref_op_v_8]
- sig: ecma.mul2dyn v:in:top
acc: inout:top
prefix: ecma
format: [pref_op_v_8]
- sig: ecma.div2dyn v:in:top
acc: inout:top
prefix: ecma
format: [pref_op_v_8]
- sig: ecma.mod2dyn v:in:top
acc: inout:top
prefix: ecma
format: [pref_op_v_8]
- sig: ecma.eqdyn v:in:top
acc: inout:top
prefix: ecma
format: [pref_op_v_8]
- sig: ecma.noteqdyn v:in:top
acc: inout:top
prefix: ecma
format: [pref_op_v_8]
- sig: ecma.lessdyn v:in:top
acc: inout:top
prefix: ecma
format: [pref_op_v_8]
- sig: ecma.lesseqdyn v:in:top
acc: inout:top
prefix: ecma
format: [pref_op_v_8]
- sig: ecma.greaterdyn v:in:top
acc: inout:top
prefix: ecma
format: [pref_op_v_8]
- sig: ecma.greatereqdyn v:in:top
acc: inout:top
prefix: ecma
format: [pref_op_v_8]
- sig: ecma.shl2dyn v:in:top
acc: inout:top
prefix: ecma
format: [pref_op_v_8]
- sig: ecma.shr2dyn v:in:top
acc: inout:top
prefix: ecma
format: [pref_op_v_8]
- sig: ecma.ashr2dyn v:in:top
acc: inout:top
prefix: ecma
format: [pref_op_v_8]
- sig: ecma.and2dyn v:in:top
acc: inout:top
prefix: ecma
format: [pref_op_v_8]
- sig: ecma.or2dyn v:in:top
acc: inout:top
prefix: ecma
format: [pref_op_v_8]
- sig: ecma.xor2dyn v:in:top
acc: inout:top
prefix: ecma
format: [pref_op_v_8]
- sig: ecma.tonumber v:in:top
acc: inout:top
prefix: ecma
format: [pref_op_v_8]
- sig: ecma.negdyn v:in:top
acc: out:top
prefix: ecma
format: [pref_op_v_8]
- sig: ecma.notdyn v:in:top
acc: out:top
prefix: ecma
format: [pref_op_v_8]
- sig: ecma.incdyn v:in:top
acc: out:top
prefix: ecma
format: [pref_op_v_8]
- sig: ecma.decdyn v:in:top
acc: out:top
prefix: ecma
format: [pref_op_v_8]
- sig: ecma.expdyn v:in:top
acc: inout:top
prefix: ecma
format: [pref_op_v_8]
- sig: ecma.isindyn v:in:top
acc: inout:top
prefix: ecma
format: [pref_op_v_8]
- sig: ecma.instanceofdyn v:in:top
acc: inout:top
prefix: ecma
format: [pref_op_v_8]
- sig: ecma.strictnoteqdyn v:in:top
acc: inout:top
prefix: ecma
format: [pref_op_v_8]
- sig: ecma.stricteqdyn v:in:top
acc: inout:top
prefix: ecma
format: [pref_op_v_8]
- sig: ecma.resumegenerator v:in:top
acc: out:top
prefix: ecma
format: [pref_op_v_8]
- sig: ecma.getresumemode v:in:top
acc: out:top
prefix: ecma
format: [pref_op_v_8]
- sig: ecma.creategeneratorobj v:in:top
acc: out:top
prefix: ecma
format: [pref_op_v_8]
- sig: ecma.throwconstassignment v:in:top
acc: none
prefix: ecma
format: [pref_op_v_8]
- sig: ecma.gettemplateobject v:in:top
acc: out:top
prefix: ecma
format: [pref_op_v_8]
- sig: ecma.getnextpropname v:in:top
acc: out:top
prefix: ecma
format: [pref_op_v_8]
- sig: ecma.callarg0dyn v:in:top
acc: out:top
prefix: ecma
format: [pref_op_v_8]
- sig: ecma.throwifnotobject v:in:top
acc: none
prefix: ecma
format: [pref_op_v_8]
- sig: ecma.iternext v:in:top
acc: out:top
prefix: ecma
format: [pref_op_v_8]
- sig: ecma.closeiterator v:in:top
acc: out:top
prefix: ecma
format: [pref_op_v_8]
- sig: ecma.copymodule v:in:top
acc: out:top
prefix: ecma
format: [pref_op_v_8]
- sig: ecma.supercallspread v:in:top
acc: inout:top
prefix: ecma
format: [pref_op_v_8]
- sig: ecma.delobjprop v1:in:top, v2:in:top
acc: out:top
prefix: ecma
format: [pref_op_v1_8_v2_8]
- sig: ecma.newobjspreaddyn v1:in:top, v2:in:top
acc: inout:top
prefix: ecma
format: [pref_op_v1_8_v2_8]
- sig: ecma.createiterresultobj v1:in:top, v2:in:top
acc: inout:top
prefix: ecma
format: [pref_op_v1_8_v2_8]
- sig: ecma.suspendgenerator v1:in:top, v2:in:top
acc: out:top
prefix: ecma
format: [pref_op_v1_8_v2_8]
- sig: ecma.asyncfunctionawaituncaught v1:in:top, v2:in:top
acc: out:top
prefix: ecma
format: [pref_op_v1_8_v2_8]
- sig: ecma.throwundefinedifhole v1:in:top, v2:in:top
acc: none
prefix: ecma
format: [pref_op_v1_8_v2_8]
- sig: ecma.callarg1dyn v1:in:top, v2:in:top
acc: out:top
prefix: ecma
format: [pref_op_v1_8_v2_8]
- sig: ecma.copydataproperties v1:in:top, v2:in:top
acc: out:top
prefix: ecma
format: [pref_op_v1_8_v2_8]
- sig: ecma.starrayspread v1:in:top, v2:in:top
acc: inout:top
prefix: ecma
format: [pref_op_v1_8_v2_8]
- sig: ecma.getiteratornext v1:in:top, v2:in:top
acc: out:top
prefix: ecma
format: [pref_op_v1_8_v2_8]
- sig: ecma.setobjectwithproto v1:in:top, v2:in:top
acc: none
prefix: ecma
format: [pref_op_v1_8_v2_8]
- sig: ecma.ldobjbyvalue v1:in:top, v2:in:top
acc: out:top
prefix: ecma
format: [pref_op_v1_8_v2_8]
- sig: ecma.stobjbyvalue v1:in:top, v2:in:top
acc: in:top
prefix: ecma
format: [pref_op_v1_8_v2_8]
- sig: ecma.stownbyvalue v1:in:top, v2:in:top
acc: in:top
prefix: ecma
format: [pref_op_v1_8_v2_8]
- sig: ecma.ldsuperbyvalue v1:in:top, v2:in:top
acc: out:top
prefix: ecma
format: [pref_op_v1_8_v2_8]
- sig: ecma.stsuperbyvalue v1:in:top, v2:in:top
acc: in:top
prefix: ecma
format: [pref_op_v1_8_v2_8]
- sig: ecma.ldobjbyindex v:in:top, imm
acc: out:top
prefix: ecma
format: [pref_op_v_8_imm_32]
- sig: ecma.stobjbyindex v:in:top, imm
acc: in:top
prefix: ecma
format: [pref_op_v_8_imm_32]
- sig: ecma.stownbyindex v:in:top, imm
acc: in:top
prefix: ecma
format: [pref_op_v_8_imm_32]
- sig: ecma.callspreaddyn v1:in:top, v2:in:top, v3:in:top
acc: out:top
prefix: ecma
format: [pref_op_v1_8_v2_8_v3_8]
- sig: ecma.asyncfunctionresolve v1:in:top, v2:in:top, v3:in:top
acc: out:top
prefix: ecma
format: [pref_op_v1_8_v2_8_v3_8]
- sig: ecma.asyncfunctionreject v1:in:top, v2:in:top, v3:in:top
acc: out:top
prefix: ecma
format: [pref_op_v1_8_v2_8_v3_8]
- sig: ecma.callargs2dyn v1:in:top, v2:in:top, v3:in:top
acc: out:top
prefix: ecma
format: [pref_op_v1_8_v2_8_v3_8]
- sig: ecma.callargs3dyn v1:in:top, v2:in:top, v3:in:top, v4:in:top
acc: out:top
prefix: ecma
format: [pref_op_v1_8_v2_8_v3_8_v4_8]
- sig: ecma.definegettersetterbyvalue v1:in:top, v2:in:top, v3:in:top, v4:in:top
acc: inout:top
prefix: ecma
format: [pref_op_v1_8_v2_8_v3_8_v4_8]
- sig: ecma.newobjdynrange imm, v:in:top
acc: out:top
prefix: ecma
format: [pref_op_imm_16_v_8]
- sig: ecma.callirangedyn imm, v:in:top
acc: out:top
prefix: ecma
format: [pref_op_imm_16_v_8]
- sig: ecma.callithisrangedyn imm, v:in:top
acc: out:top
prefix: ecma
format: [pref_op_imm_16_v_8]
- sig: ecma.supercall imm, v:in:top
acc: inout:top
prefix: ecma
format: [pref_op_imm_16_v_8]
- sig: ecma.createobjectwithexcludedkeys imm, v1:in:top, v2:in:top
acc: out:top
prefix: ecma
format: [pref_op_imm_16_v1_8_v2_8]
- sig: ecma.definefuncdyn method_id, imm, v:in:top
acc: out:top
prefix: ecma
format: [pref_op_id_16_imm_16_v_8]
properties: [method_id]
- sig: ecma.definencfuncdyn method_id, imm, v:in:top
acc: inout:top
prefix: ecma
format: [pref_op_id_16_imm_16_v_8]
properties: [method_id]
- sig: ecma.definegeneratorfunc method_id, imm, v:in:top
acc: out:top
prefix: ecma
format: [pref_op_id_16_imm_16_v_8]
properties: [method_id]
- sig: ecma.defineasyncfunc method_id, imm, v:in:top
acc: out:top
prefix: ecma
format: [pref_op_id_16_imm_16_v_8]
properties: [method_id]
- sig: ecma.definemethod method_id, imm, v:in:top
acc: inout:top
prefix: ecma
format: [pref_op_id_16_imm_16_v_8]
properties: [method_id]
- sig: ecma.newlexenvdyn imm
acc: out:top
prefix: ecma
format: [pref_op_imm_16]
- sig: ecma.copyrestargs imm
acc: out:top
prefix: ecma
format: [pref_op_imm_16]
- sig: ecma.createarraywithbuffer imm
acc: out:top
prefix: ecma
format: [pref_op_imm_16]
- sig: ecma.createobjecthavingmethod imm
acc: inout:top
prefix: ecma
format: [pref_op_imm_16]
- sig: ecma.throwifsupernotcorrectcall imm
acc: in:top
prefix: ecma
format: [pref_op_imm_16]
- sig: ecma.createobjectwithbuffer imm
acc: out:top
prefix: ecma
format: [pref_op_imm_16]
- sig: ecma.ldlexvardyn imm1, imm2
acc: out:top
prefix: ecma
format: [pref_op_imm1_4_imm2_4]
- sig: ecma.ldlexvardyn imm1, imm2
acc: out:top
prefix: ecma
format: [pref_op_imm1_8_imm2_8]
- sig: ecma.ldlexvardyn imm1, imm2
acc: out:top
prefix: ecma
format: [pref_op_imm1_16_imm2_16]
- sig: ecma.stlexvardyn imm1, imm2, v:in:top
acc: out:top
prefix: ecma
format: [pref_op_imm1_4_imm2_4_v_8]
- sig: ecma.stlexvardyn imm1, imm2, v:in:top
acc: out:top
prefix: ecma
format: [pref_op_imm1_8_imm2_8_v_8]
- sig: ecma.stlexvardyn imm1, imm2, v:in:top
acc: out:top
prefix: ecma
format: [pref_op_imm1_16_imm2_16_v_8]
- sig: ecma.defineclasswithbuffer method_id, imm1, imm2, v1:in:top, v2:in:top
acc: out:top
prefix: ecma
format: [pref_op_id_16_imm1_16_imm2_16_v1_8_v2_8]
properties: [method_id]
- sig: ecma.getmodulenamespace string_id
acc: out:top
prefix: ecma
format: [pref_op_id_32]
properties: [string_id]
- sig: ecma.stmodulevar string_id
acc: in:top
prefix: ecma
format: [pref_op_id_32]
properties: [string_id]
- sig: ecma.tryldglobalbyname string_id
acc: out:top
prefix: ecma
format: [pref_op_id_32]
properties: [string_id]
- sig: ecma.trystglobalbyname string_id
acc: in:top
prefix: ecma
format: [pref_op_id_32]
properties: [string_id]
- sig: ecma.ldglobalvar string_id
acc: out:top
prefix: ecma
format: [pref_op_id_32]
properties: [string_id]
- sig: ecma.stglobalvar string_id
acc: in:top
prefix: ecma
format: [pref_op_id_32]
properties: [string_id]
- sig: ecma.ldobjbyname string_id, v:in:top
acc: out:top
prefix: ecma
format: [pref_op_id_32_v_8]
properties: [string_id]
- sig: ecma.stobjbyname string_id, v:in:top
acc: in:top
prefix: ecma
format: [pref_op_id_32_v_8]
properties: [string_id]
- sig: ecma.stownbyname string_id, v:in:top
acc: in:top
prefix: ecma
format: [pref_op_id_32_v_8]
properties: [string_id]
- sig: ecma.ldsuperbyname string_id, v:in:top
acc: out:top
prefix: ecma
format: [pref_op_id_32_v_8]
properties: [string_id]
- sig: ecma.stsuperbyname string_id, v:in:top
acc: in:top
prefix: ecma
format: [pref_op_id_32_v_8]
properties: [string_id]
- sig: ecma.ldmodulevar string_id, imm
acc: out:top
prefix: ecma
format: [pref_op_id_32_imm_8]
properties: [string_id]
- sig: ecma.createregexpwithliteral string_id, imm
acc: out:top
prefix: ecma
format: [pref_op_id_32_imm_8]
properties: [string_id]
- sig: ecma.istrue
acc: inout:top
prefix: ecma
format: [pref_op_none]
- sig: ecma.isfalse
acc: inout:top
prefix: ecma
format: [pref_op_none]
- sig: ecma.stconsttoglobalrecord string_id
acc: in:top
prefix: ecma
format: [pref_op_id_32]
properties: [string_id]
- sig: ecma.stlettoglobalrecord string_id
acc: in:top
prefix: ecma
format: [pref_op_id_32]
properties: [string_id]
- sig: ecma.stclasstoglobalrecord string_id
acc: in:top
prefix: ecma
format: [pref_op_id_32]
properties: [string_id]
- sig: ecma.stownbyvaluewithnameset v1:in:top, v2:in:top
acc: in:top
prefix: ecma
format: [pref_op_v1_8_v2_8]
- sig: ecma.stownbynamewithnameset string_id, v:in:top
acc: in:top
prefix: ecma
format: [pref_op_id_32_v_8]
properties: [string_id]
- sig: ecma.ldfunction
acc: out:top
prefix: ecma
format: [pref_op_none]
- sig: ecma.newlexenvwithnamedyn imm1, imm2
acc: out:top
prefix: ecma
format: [pref_op_imm1_16_imm2_16]
- sig: ecma.ldbigint string_id
acc: out:top
prefix: ecma
format: [pref_op_id_32]
properties: [string_id]
- sig: ecma.tonumeric v:in:top
acc: inout:top
prefix: ecma
format: [pref_op_v_8]
- sig: ecma.createasyncgeneratorobj v:in:top
acc: out:top
prefix: ecma
format: [pref_op_v_8]
- sig: ecma.asyncgeneratorresolve v1:in:top, v2:in:top, v3:in:top
acc: out:top
prefix: ecma
format: [pref_op_v1_8_v2_8_v3_8]
- sig: ecma.defineasyncgeneratorfunc method_id, imm, v:in:top
acc: out:top
prefix: ecma
format: [pref_op_id_16_imm_16_v_8]
properties: [method_id]
- sig: ecma.dynamicimport v:in:top
acc: out:top
prefix: ecma
format: [pref_op_v_8]
- sig: ecma.ldpatchvar imm
acc: out:top
prefix: ecma
format: [pref_op_imm_16]
- sig: ecma.stpatchvar imm
acc: in:top
prefix: ecma
format: [pref_op_imm_16]
- sig: ecma.asyncgeneratorreject v1:in:top, v2:in:top
acc: out:top
prefix: ecma
format: [pref_op_v1_8_v2_8]
- sig: ecma.notifyconcurrentresult
acc: in:top
prefix: ecma
format: [pref_op_none]
- sig: ecma.definefieldbyname string_id, v:in:top
acc: in:top
prefix: ecma
format: [pref_op_id_16_v_8]
properties: [string_id]
- sig: ecma.definefieldbyvalue v1:in:top, v2:in:top
acc: in:top
prefix: ecma
format: [pref_op_v1_8_v2_8]
- sig: ecma.definefieldbyindex imm, v:in:top
acc: in:top
prefix: ecma
format: [pref_op_imm_32_v_8]
- sig: ecma.topropertykey
acc: inout:top
prefix: ecma
format: [pref_op_none]
- sig: ecma.createprivateproperty imm1, imm2
acc: none
prefix: ecma
format: [pref_op_imm1_16_imm2_16]
- sig: ecma.defineprivateproperty imm1, imm2, v:in:top
acc: in:top
prefix: ecma
format: [pref_op_imm1_16_imm2_16_v_8]
- sig: ecma.ldprivateproperty imm1, imm2
acc: inout:top
prefix: ecma
format: [pref_op_imm1_16_imm2_16]
- sig: ecma.stprivateproperty imm1, imm2, v:in:top
acc: in:top
prefix: ecma
format: [pref_op_imm1_16_imm2_16_v_8]
- sig: ecma.testin imm1, imm2
acc: inout:top
prefix: ecma
format: [pref_op_imm1_16_imm2_16]
- sig: ecma.callinit imm, v:in:top
acc: in:top
format: [pref_op_imm_8_v_8]
prefix: ecma
1
https://gitee.com/openharmony/arkcompiler_ets_runtime.git
git@gitee.com:openharmony/arkcompiler_ets_runtime.git
openharmony
arkcompiler_ets_runtime
arkcompiler_ets_runtime
master

搜索帮助