arkcompiler_runtime_core/docs/PBC2IR.md
huangyu c658ccf319 Update runtime_core code
Issue: https://gitee.com/openharmony/arkcompiler_runtime_core/issues/I5G96F
Test: Test262 suit, ark unittest, rk3568 XTS, ark previewer demo

Signed-off-by: huangyu <huangyu76@huawei.com>
Change-Id: I3f63d129a07deaa27a390f556dcaa5651c098185
2022-07-17 10:20:32 +08:00

7.4 KiB

PBC IR
nop -
mov -
mov.64 -
mov.obj -
movi i64 Constant
movi.64 i64 Constant
fmovi f32 Constant
fmovi.64 f64 Constant
mov.null i64 Constatnt 0
lda -
lda.64 -
lda.obj -
ldai i64 Constant
ldai.64 i64 Constant
fldai f32 Constant
fldai.64 f64 Constant
lda.str ref LoadString
lda.const
lda.type ref LoadType
lda.null i64 Constant 0
sta -
sta.64 -
sta.obj -
cmp.64 i32 Cmp
ucmp i32 Cmp
ucmp.64 i32 Cmp
fcmpl i32 Cmp
fcmpl.64 i32 Cmp
fcmpg i32 Cmp
fcmpg.64 i32 Cmp
jmp -
jeq.obj bool Compare EQ, IfImm
jne.obj bool Compare NE, IfImm
jeqz.obj i64 Constant 0, bool Compare EQ, IfImm
jnez.obj i64 Constant 0, bool Compare NE, IfImm
jeqz i64 Constant 0, bool Compare EQ, IfImm
jnez i64 Constant 0, bool Compare NE, IfImm
jltz i64 Constant 0, bool Compare LT, IfImm
jgtz i64 Constant 0, bool Compare GT, IfImm
jlez i64 Constant 0, bool Compare LE, IfImm
jgez i64 Constant 0, bool Compare GE, IfImm
jeq bool Compare EQ, IfImm
jne bool Compare NE, IfImm
jlt bool Compare LT, IfImm
jgt bool Compare GT, IfImm
jle bool Compare LE, IfImm
jge bool Compare GE, IfImm
fneg f32 Neg
fneg.64 f64 Neg
neg i32 Neg
neg.64 i64 Neg
not i32 Not
not.64 i64 Not
add2 i32 Add
add2.64 i64 Add
sub2 i32 Sub
sub2.64 i64 Sub
mul2 i32 Mul
mul2.64 i64 Mul
and2 i32 And
and2.64 i64 And
or2 i32 Or
or2.64 i64 Or
xor2 i32 Xor
xor2.64 i64 Xor
shl2 i32 Shl
shl2.64 i64 Shl
shr2 i32 Shr
shr2.64 i64 Shr
ashr2 i32 Ashr
ashr2.64 i64 Ashr
fadd2 f32 Add
fadd2.64 f64 Add
fsub2 f32 Sub
fsub2.64 f64 Sub
fmul2 f32 Mul
fmul2.64 f64 Mul
fdiv2 f32 Div
fdiv2.64 f64 Div
fmod2 f32 Mod
fmod2.64 f64 Mod
div2 i32 Div
div2.64 i64 Div
mod2 i32 Mod
mod2.64 i64 Mod
divu2 u32 Div
divu2.64 u64 Div
modu2 u32 Div
modu2.64 u64 Mod
addi i64 Constant, i32 Add
subi i64 Constant, i32 Sub
muli i64 Constant, i32 Mul
andi i64 Constant, i32 And
ori i64 Constant, i32 Or
xori i64 Constant, i32 Xor
shli i64 Constant, i32 Shl
shri i64 Constant, i32 Shr
ashri i64 Constant, i32 Ashr
divi i64 Constant, i32 Div
modi i64 Constant, i32 Mod
add i32 Add
sub i32 Sub
mul i32 Mul
and i32 And
or i32 Or
xor i32 Xor
shl i32 Shl
shr i32 Shr
ashr i32 Ashr
div i32 Div
mod i32 Mod
inci i64 Constant, s32 Add
i32tof32 f32 Cast
i32tof64 f64 Cast
u32tof32 f32 Cast
u32tof64 f64 Cast
i64tof32 f32 Cast
i64tof64 f64 Cast
u64tof32 f32 Cast
u64tof64 f64 Cast
f32tof64 f64 Cast
f32toi32 i32 Cast
f32toi64 i64 Cast
f32tou32 u32 Cast
f32tou64 u64 Cast
f64toi32 i32 Cast
f64toi64 i64 Cast
f64tou32 u32 Cast
f64tou64 u64 Cast
f64tof32 f32 Cast
i32tou1 u1 Cast
i64tou1 u1 Cast
u32tou1 u1 Cast
u64tou1 u1 Cast
i32toi64 i64 Cast
i32toi16 i16 Cast
i32tou16 u16 Cast
i32toi8 i8 Cast
i32tou8 u8 Cast
i64toi32 i32 Cast
u32toi64 i64 Cast
u32toi16 i16 Cast
u32tou16 u16 Cast
u32toi8 i8 Cast
u32tou8 u8 Cast
u64toi32 i32 Cast
u64tou32 u32 Cast
ldarr.8 SaveState, ref NullCheck, i32 LenArray, i32 BoundsCheck, i8 LoadArray
ldarru.8 SaveState, ref NullCheck, i32 LenArray, i32 BoundsCheck, u8 LoadArray
ldarr.16 SaveState, ref NullCheck, i32 LenArray, i32 BoundsCheck, i16 LoadArray
ldarru.16 SaveState, ref NullCheck, i32 LenArray, i32 BoundsCheck, u16 LoadArray
ldarr SaveState, ref NullCheck, i32 LenArray, i32 BoundsCheck, i32 LoadArray
ldarr.64 SaveState, ref NullCheck, i32 LenArray, i32 BoundsCheck, i64 LoadArray
fldarr.32 SaveState, ref NullCheck, i32 LenArray, i32 BoundsCheck, f32 LoadArray
fldarr.64 SaveState, ref NullCheck, i32 LenArray, i32 BoundsCheck, f64 LoadArray
ldarr.obj SaveState, ref NullCheck, i32 LenArray, i32 BoundsCheck, ref LoadArray
starr.8 SaveState, ref NullCheck, i32 LenArray, i32 BoundsCheck, i8 StoreArray
starr.16 SaveState, ref NullCheck, i32 LenArray, i32 BoundsCheck, i16 StoreArray
starr SaveState, ref NullCheck, i32 LenArray, i32 BoundsCheck, i32 StoreArray
starr.64 SaveState, ref NullCheck, i32 LenArray, i32 BoundsCheck, i64 StoreArray
fstarr.32 SaveState, ref NullCheck, i32 LenArray, i32 BoundsCheck, f32 StoreArray
fstarr.64 SaveState, ref NullCheck, i32 LenArray, i32 BoundsCheck, f64 StoreArray
starr.obj SaveState, ref NullCheck, i32 LenArray, i32 BoundsCheck, ref StoreArray
lenarr SaveState, ref NullCheck, i32 LenArray
newarr SaveState, ref NegativeCheck, ref LoadAndInitObject, i32 NewArray
newobj SaveState, ref LoadAndInitObject, ref NewObject
initobj.short SaveState, ref LoadAndInitObject, ref NewObject, void CallStatic
initobj SaveState, ref LoadAndInitObject, ref NewObject, void CallStatic
initobj.range SaveState, ref LoadAndInitObject, ref NewObject, void CallStatic
ldobj SaveState, ref NullCheck, i32 LoadObject
ldobj.64 SaveState, ref NullCheck, i64 LoadObject
ldobj.obj SaveState, ref NullCheck, ref LoadObject
stobj SaveState, ref NullCheck, i32 StoreObject
stobj.64 SaveState, ref NullCheck, i64 StoreObject
stobj.obj SaveState, ref NullCheck, ref StoreObject
ldobj.v SaveState, ref NullCheck, i32 LoadObject
ldobj.v.64 SaveState, ref NullCheck, i64 LoadObject
ldobj.v.obj SaveState, ref NullCheck, ref LoadObjec
stobj.v SaveState, ref NullCheck, i32 StoreObject
stobj.v.64 SaveState, ref NullCheck, i64 StoreObject
stobj.v.obj SaveState, ref NullCheck, ref StoreObject
ldstatic SaveState, ref LoadAndInitObject, i32 LoadStatic
ldstatic.64 SaveState, ref LoadAndInitObject, i64 LoadStatic
ldstatic.obj SaveState, ref LoadAndInitObject, ref LoadStatic
ststatic SaveState, ref LoadAndInitObject, i32 LoadStatic
ststatic.64 SaveState, ref LoadAndInitObject, i64 LoadStatic
ststatic.obj SaveState, ref LoadAndInitObject, ref LoadStatic
return i32 Return
return.64 i64 Return
return.obj ref Return
return.void ReturnVoid
throw SaveState, Throw
checkcast LoadClass, CheckCast
isinstance LoadClass, i32 IsInstance
call.short SaveState, i32 CallStatic
call SaveState, i64 CallStatic
call.range SaveState, i64 CallStatic
call.acc.short SaveState, i64 CallStatic
call.acc SaveState, i64 CallStatic
call.virt.short SaveState, ref NullCheck, i32 CallVirtal
call.virt SaveState, ref NullCheck, i32 CallVirtal
call.virt.range SaveState, ref NullCheck, i32 CallVirtal
call.virt.acc.short SaveState, ref NullCheck, i32 CallVirtal
call.virt.acc SaveState, ref NullCheck, i32 CallVirtal
mov.dyn Not implemented yet
lda.dyn Not implemented yet
sta.dyn Not implemented yet
ldai.dyn
fldai.dyn
return.dyn Not implemented yet
calli.dyn.short
calli.dyn
calli.dyn.range Not implemented yet

This document generated by compiler/tools/pbc_2_ir_doc_gen.sh.