代码拉取完成,页面将自动刷新
同步操作将从 方舟编译器/OpenArkCompiler 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
/*
* Copyright (c) [2019] Huawei Technologies Co.,Ltd.All rights reserved.
*
* OpenArkCompiler is licensed under the Mulan PSL v1.
* You can use this software according to the terms and conditions of the Mulan PSL v1.
* You may obtain a copy of Mulan PSL v1 at:
*
* http://license.coscl.org.cn/MulanPSL
*
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR
* FIT FOR A PARTICULAR PURPOSE.
* See the Mulan PSL v1 for more details.
*/
// Stmt & Notmmpl
// storage access opcodes
OPCODE(dassign, 直接赋值节点类, (OPCODEISSTMT | OPCODENOTMMPL | OPCODEHASSSADEF), 8)
OPCODE(maydassign, 直接赋值节点类, (OPCODEISSTMT | OPCODENOTMMPL | OPCODEHASSSADEF), 8)
OPCODE(iassign, 间接赋值节点类, (OPCODEISSTMT | OPCODENOTMMPL | OPCODEHASSSADEF), 12)
// hierarchical control flow opcodes
OPCODE(block, 块节点类, (OPCODEISSTMT | OPCODENOTMMPL), 0)
OPCODE(doloop, 循环节点类, (OPCODEISSTMT | OPCODENOTMMPL), 0)
OPCODE(dowhile, While声明节点类, (OPCODEISSTMT | OPCODENOTMMPL), 0)
OPCODE(if, If声明节点类, (OPCODEISSTMT | OPCODENOTMMPL), 0)
OPCODE(while, While声明节点类, (OPCODEISSTMT | OPCODENOTMMPL), 0)
OPCODE(switch, Switch节点类, (OPCODEISSTMT | OPCODENOTMMPL), 8)
OPCODE(multiway, 多路节点类, (OPCODEISSTMT | OPCODENOTMMPL), 8)
OPCODE(foreachelem, 遍历元素节点类, (OPCODEISSTMT | OPCODENOTMMPL), 0)
// other opcodes
OPCODE(comment, 注释节点类, (OPCODEISSTMT | OPCODENOTMMPL), 0)
OPCODE(eval, 一元声明节点类, (OPCODEISSTMT | OPCODENOTMMPL), 8)
OPCODE(free, 一元声明节点类, (OPCODEISSTMT | OPCODENOTMMPL), 8)
OPCODE(assertge, 二元声明节点类, (OPCODEISSTMT | OPCODENOTMMPL), 8)
OPCODE(assertlt, 二元声明节点类, (OPCODEISSTMT | OPCODENOTMMPL), 8)
OPCODE(assertnonnull, 一元声明节点类, (OPCODEISSTMT | OPCODENOTMMPL), 8)
// Expr & Notmmpl
// storage access opcodes
OPCODE(dread, 取址节点类, (OPCODENOTMMPL | OPCODEHASSSAUSE), 12)
OPCODE(iread, 间接读取节点类, (OPCODENOTMMPL | OPCODEHASSSAUSE), 12)
// leaf opcodes
OPCODE(addrof, 取址节点类, OPCODENOTMMPL, 12)
OPCODE(iaddrof, 间接读取节点类, OPCODENOTMMPL, 12)
OPCODE(sizeoftype, 类型大小节点类, OPCODENOTMMPL, 8)
OPCODE(fieldsdist, FieldsDistNode, OPCODENOTMMPL, 8)
// N-ary expression opcodes
OPCODE(array, 数组节点类, (OPCODEISVARSIZE | OPCODENOTMMPL | OPCODEMAYTHROWEXCEPTION), 8)
// Stmt
// storage access opcodes
OPCODE(iassignoff, 带偏移间接赋值节点类, OPCODEISSTMT, 8)
OPCODE(iassignfpoff, 帧址带偏移间接赋值节点类, OPCODEISSTMT, 8)
OPCODE(regassign, 寄存器赋值节点类, (OPCODEISSTMT | OPCODEHASSSADEF), 8)
// flat control flow opcodes
OPCODE(goto, 跳转节点类, OPCODEISSTMT, 8)
OPCODE(brfalse, 条件跳转节点类, OPCODEISSTMT, 8)
OPCODE(brtrue, 条件跳转节点类, OPCODEISSTMT, 8)
OPCODE(return, NaryStmtNode, (OPCODEISSTMT | OPCODEISVARSIZE | OPCODEHASSSAUSE), 0)
OPCODE(rangegoto, 范围跳转节点类, OPCODEISSTMT, 8)
// call opcodes
OPCODE(call, 调用节点类, (OPCODEISSTMT | OPCODEISVARSIZE | OPCODEHASSSAUSE | OPCODEHASSSADEF | OPCODEISCALL), 8)
OPCODE(virtualcall, 调用节点类, (OPCODEISSTMT | OPCODEISVARSIZE | OPCODEHASSSAUSE | OPCODEHASSSADEF | OPCODEISCALL), 8)
OPCODE(superclasscall, 调用节点类, (OPCODEISSTMT | OPCODEISVARSIZE | OPCODEHASSSAUSE | OPCODEHASSSADEF | OPCODEISCALL), 8)
OPCODE(interfacecall, 调用节点类, (OPCODEISSTMT | OPCODEISVARSIZE | OPCODEHASSSAUSE | OPCODEHASSSADEF | OPCODEISCALL), 8)
OPCODE(customcall, 调用节点类, (OPCODEISSTMT | OPCODEISVARSIZE | OPCODEHASSSAUSE | OPCODEHASSSADEF | OPCODEISCALL), 8)
OPCODE(polymorphiccall, 调用节点类, (OPCODEISSTMT | OPCODEISVARSIZE | OPCODEHASSSAUSE | OPCODEHASSSADEF | OPCODEISCALL), 12)
OPCODE(icall, 间接调用节点类, (OPCODEISSTMT | OPCODEISVARSIZE | OPCODEHASSSAUSE | OPCODEHASSSADEF | OPCODEISCALL), 8)
OPCODE(interfaceicall, 调用节点类, (OPCODEISSTMT | OPCODEISVARSIZE | OPCODEHASSSAUSE | OPCODEHASSSADEF | OPCODEISCALL), 8)
OPCODE(virtualicall, 调用节点类, (OPCODEISSTMT | OPCODEISVARSIZE | OPCODEHASSSAUSE | OPCODEHASSSADEF | OPCODEISCALL), 8)
OPCODE(intrinsiccall, IntrinsiccallNode, (OPCODEISSTMT | OPCODEISVARSIZE | OPCODEHASSSAUSE | OPCODEHASSSADEF | OPCODEISCALL), 8)
OPCODE(intrinsiccallwithtype, IntrinsiccallNode, (OPCODEISSTMT | OPCODEISVARSIZE | OPCODEHASSSAUSE | OPCODEHASSSADEF | OPCODEISCALL), 12)
OPCODE(xintrinsiccall, IntrinsiccallNode, (OPCODEISSTMT | OPCODEISVARSIZE | OPCODEHASSSAUSE | OPCODEHASSSADEF | OPCODEISCALL), 8)
OPCODE(callassigned, 调用节点类, (OPCODEISSTMT | OPCODEISVARSIZE | OPCODEHASSSAUSE | OPCODEHASSSADEF | OPCODEISCALL | OPCODEISCALLASSIGNED), 0)
OPCODE(virtualcallassigned, 调用节点类, (OPCODEISSTMT | OPCODEISVARSIZE | OPCODEHASSSAUSE | OPCODEHASSSADEF | OPCODEISCALL | OPCODEISCALLASSIGNED), 0)
OPCODE(superclasscallassigned, 调用节点类, (OPCODEISSTMT | OPCODEISVARSIZE | OPCODEHASSSAUSE | OPCODEHASSSADEF | OPCODEISCALL | OPCODEISCALLASSIGNED), 0)
OPCODE(interfacecallassigned, 调用节点类, (OPCODEISSTMT | OPCODEISVARSIZE | OPCODEHASSSAUSE | OPCODEHASSSADEF | OPCODEISCALL | OPCODEISCALLASSIGNED), 0)
OPCODE(customcallassigned, 调用节点类, (OPCODEISSTMT | OPCODEISVARSIZE | OPCODEHASSSAUSE | OPCODEHASSSADEF | OPCODEISCALL | OPCODEISCALLASSIGNED), 0)
OPCODE(polymorphiccallassigned, 调用节点类, (OPCODEISSTMT | OPCODEISVARSIZE | OPCODEHASSSAUSE | OPCODEHASSSADEF | OPCODEISCALL | OPCODEISCALLASSIGNED), 0)
OPCODE(icallassigned, 间接调用节点类, (OPCODEISSTMT | OPCODEISVARSIZE | OPCODEHASSSAUSE | OPCODEHASSSADEF | OPCODEISCALL | OPCODEISCALLASSIGNED), 0)
OPCODE(interfaceicallassigned, 调用节点类, (OPCODEISSTMT | OPCODEISVARSIZE | OPCODEHASSSAUSE | OPCODEHASSSADEF | OPCODEISCALL | OPCODEISCALLASSIGNED), 0)
OPCODE(virtualicallassigned, 调用节点类, (OPCODEISSTMT | OPCODEISVARSIZE | OPCODEHASSSAUSE | OPCODEHASSSADEF | OPCODEISCALL | OPCODEISCALLASSIGNED), 0)
OPCODE(intrinsiccallassigned, IntrinsiccallNode, (OPCODEISSTMT | OPCODEISVARSIZE | OPCODEHASSSAUSE | OPCODEHASSSADEF | OPCODEISCALL | OPCODEISCALLASSIGNED), 0)
OPCODE(intrinsiccallwithtypeassigned, IntrinsiccallNode, (OPCODEISSTMT | OPCODEISVARSIZE | OPCODEHASSSAUSE | OPCODEHASSSADEF | OPCODEISCALL | OPCODEISCALLASSIGNED), 0)
OPCODE(xintrinsiccallassigned, IntrinsiccallNode, (OPCODEISSTMT | OPCODEISVARSIZE | OPCODEHASSSAUSE | OPCODEHASSSADEF | OPCODEISCALL | OPCODEISCALLASSIGNED), 0)
// call with generic instantiation opcodes
OPCODE(callinstant, 实例化调用节点类, (OPCODEISSTMT | OPCODEISVARSIZE | OPCODEHASSSAUSE | OPCODEHASSSADEF | OPCODEISCALL), 0)
OPCODE(callinstantassigned, 实例化调用节点类, (OPCODEISSTMT | OPCODEISVARSIZE | OPCODEHASSSAUSE | OPCODEHASSSADEF | OPCODEISCALL | OPCODEISCALLASSIGNED), 0)
OPCODE(virtualcallinstant, 实例化调用节点类, (OPCODEISSTMT | OPCODEISVARSIZE | OPCODEHASSSAUSE | OPCODEHASSSADEF | OPCODEISCALL), 0)
OPCODE(virtualcallinstantassigned, 实例化调用节点类, (OPCODEISSTMT | OPCODEISVARSIZE | OPCODEHASSSAUSE | OPCODEHASSSADEF | OPCODEISCALL | OPCODEISCALLASSIGNED), 0)
OPCODE(superclasscallinstant, 实例化调用节点类, (OPCODEISSTMT | OPCODEISVARSIZE | OPCODEHASSSAUSE | OPCODEHASSSADEF | OPCODEISCALL), 0)
OPCODE(superclasscallinstantassigned, 实例化调用节点类, (OPCODEISSTMT | OPCODEISVARSIZE | OPCODEHASSSAUSE | OPCODEHASSSADEF | OPCODEISCALL | OPCODEISCALLASSIGNED), 0)
OPCODE(interfacecallinstant, 实例化调用节点类, (OPCODEISSTMT | OPCODEISVARSIZE | OPCODEHASSSAUSE | OPCODEHASSSADEF | OPCODEISCALL), 0)
OPCODE(interfacecallinstantassigned, 实例化调用节点类, (OPCODEISSTMT | OPCODEISVARSIZE | OPCODEHASSSAUSE | OPCODEHASSSADEF | OPCODEISCALL | OPCODEISCALLASSIGNED), 0)
// exception handling
OPCODE(jstry, JsTryNode, OPCODEISSTMT, 8)
OPCODE(try, Try节点类, (OPCODEISSTMT | OPCODENOTMMPL), 8)
OPCODE(throw, 一元声明节点类, (OPCODEISSTMT | OPCODEHASSSAUSE), 0)
OPCODE(jscatch, 基础节点类, OPCODEISSTMT, 4)
OPCODE(catch, Catch节点类, OPCODEISSTMT, 8)
OPCODE(finally, StmtNode, OPCODEISSTMT, 6)
OPCODE(cleanuptry, StmtNode, OPCODEISSTMT, 6)
OPCODE(endtry, StmtNode, OPCODEISSTMT, 6)
OPCODE(gosub, 跳转节点类, (OPCODEISSTMT | OPCODEHASSSAUSE), 8)
OPCODE(retsub, StmtNode, (OPCODEISSTMT | OPCODEHASSSAUSE), 6)
// synchronizaion
OPCODE(syncenter, NaryStmtNode, (OPCODEISSTMT | OPCODEHASSSADEF | OPCODEHASSSAUSE), 0)
OPCODE(syncexit, NaryStmtNode, (OPCODEISSTMT | OPCODEHASSSADEF | OPCODEHASSSAUSE), 0)
OPCODE(decref, 一元声明节点类, (OPCODEISSTMT | OPCODEHASSSAUSE | OPCODENOTMMPL), 0)
OPCODE(incref, 一元声明节点类, (OPCODEISSTMT | OPCODEHASSSAUSE | OPCODENOTMMPL), 0)
OPCODE(decrefreset, 一元声明节点类, (OPCODEISSTMT | OPCODEHASSSAUSE | OPCODENOTMMPL), 0)
// barriers
OPCODE(membaracquire, StmtNode, OPCODEISSTMT, 6)
OPCODE(membarrelease, StmtNode, OPCODEISSTMT, 6)
OPCODE(membarstoreload, StmtNode, OPCODEISSTMT, 6)
OPCODE(membarstorestore, StmtNode, OPCODEISSTMT, 6)
// other opcodes
OPCODE(label, 标记节点类, OPCODEISSTMT, 8)
// Expr
// storage access opcodes
OPCODE(ireadoff, 带偏移间接读取节点类, 0, 8)
OPCODE(ireadfpoff, 帧址带偏移间接读取节点类, 0, 8)
OPCODE(regread, 寄存器读取节点类, OPCODEHASSSAUSE, 8)
// leaf opcodes
OPCODE(addroffunc, 函数取址节点类, 0, 8)
OPCODE(addroflabel, 标记取址节点类, 0, 8)
OPCODE(constval, 常量值节点类, 0, 8)
OPCODE(conststr, 常量字符串节点类, OPCODENOTMMPL, 8)
OPCODE(conststr16, 常量16字符串节点类, OPCODENOTMMPL, 8)
// type conversion expression opcodes
OPCODE(ceil, 类型转换节点类, OPCODEISTYPECVT, 8)
OPCODE(cvt, 类型转换节点类, OPCODEISTYPECVT, 8)
OPCODE(floor, 类型转换节点类, OPCODEISTYPECVT, 8)
OPCODE(retype, 类型重置节点类, OPCODEISTYPECVT, 8)
OPCODE(round, 类型转换节点类, OPCODEISTYPECVT, 8)
OPCODE(trunc, 类型转换节点类, OPCODEISTYPECVT, 8)
// unary expression opcodes
OPCODE(abs, 一元节点类, 0, 0)
OPCODE(bnot, 一元节点类, 0, 0)
OPCODE(lnot, 一元节点类, 0, 0)
OPCODE(neg, 一元节点类, 0, 0)
OPCODE(recip, 一元节点类, 0, 0)
OPCODE(sqrt, 一元节点类, 0, 0)
OPCODE(sext, 比特提取节点类, 0, 8)
OPCODE(zext, 比特提取节点类, 0, 8)
OPCODE(alloca, 一元节点类, OPCODENOTPURE, 0)
OPCODE(malloc, 一元节点类, OPCODENOTPURE, 0)
OPCODE(gcmalloc, 自动回收内存分配节点类, OPCODENOTPURE, 8)
OPCODE(gcpermalloc, 自动回收内存分配节点类, OPCODENOTPURE, 8)
OPCODE(gcmallocjarray, Java数组内存分配节点类, OPCODENOTPURE, 12)
OPCODE(gcpermallocjarray, Java数组内存分配节点类, OPCODENOTPURE, 12)
OPCODE(resolveinterfacefunc, ResolveFuncNode, 0, 8)
OPCODE(resolvevirtualfunc, ResolveFuncNode, 0, 8)
// binary expression opcodes
OPCODE(add, 二元节点类, 0, 0)
OPCODE(sub, 二元节点类, 0, 0)
OPCODE(mul, 二元节点类, 0, 0)
OPCODE(div, 二元节点类, OPCODEMAYTHROWEXCEPTION, 0)
OPCODE(rem, 二元节点类, OPCODEMAYTHROWEXCEPTION, 0)
OPCODE(ashr, 二元节点类, 0, 0)
OPCODE(lshr, 二元节点类, 0, 0)
OPCODE(shl, 二元节点类, 0, 0)
OPCODE(max, 二元节点类, 0, 0)
OPCODE(min, 二元节点类, 0, 0)
OPCODE(band, 二元节点类, 0, 0)
OPCODE(bior, 二元节点类, 0, 0)
OPCODE(bxor, 二元节点类, 0, 0)
OPCODE(CG_array_elem_add, 二元节点类, 0, 0)
OPCODE(eq, 比较节点类, OPCODEISCOMPARE, 8)
OPCODE(ge, 比较节点类, OPCODEISCOMPARE, 8)
OPCODE(gt, 比较节点类, OPCODEISCOMPARE, 8)
OPCODE(le, 比较节点类, OPCODEISCOMPARE, 8)
OPCODE(lt, 比较节点类, OPCODEISCOMPARE, 8)
OPCODE(ne, 比较节点类, OPCODEISCOMPARE, 8)
OPCODE(cmp, 比较节点类, OPCODEISCOMPARE, 8)
OPCODE(cmpl, 比较节点类, OPCODEISCOMPARE, 8)
OPCODE(cmpg, 比较节点类, OPCODEISCOMPARE, 8)
OPCODE(land, 二元节点类, 0, 0)
OPCODE(lior, 二元节点类, 0, 0)
OPCODE(cand, 二元节点类, OPCODENOTMMPL, 0)
OPCODE(cior, 二元节点类, OPCODENOTMMPL, 0)
// ternary expression opcodes
OPCODE(select, 三元节点类, 0, 0)
// N-ary expression opcodes
OPCODE(intrinsicop, IntrinsicopNode, OPCODEISVARSIZE, 8)
OPCODE(intrinsicopwithtype, IntrinsicopNode, OPCODEISVARSIZE, 12)
// Other expression opcodes
OPCODE(extractbits, 比特提取节点类, 0, 8)
OPCODE(depositbits, 比特放置节点类, 0, 8)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。