Files
ark_runtime_core/disassembler/tests/sources/instructions.pa
T
wanyanglan 14c9021696 add ark runtime_core
Signed-off-by: wanyanglan <wanyanglan1@huawei.com>
Change-Id: I2564094cef9c6c41263e37faf9ffbbec14223dc7
2021-09-05 20:53:43 +08:00

195 lines
2.9 KiB
Plaintext

# 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.
.record A {
u1 kek
}
.function A A.init() {
newobj v0, A
lda.obj v0
return.obj
}
.function u1 g() {
mov v0, v1
mov.64 v2, v3
mov.obj v4, v5
movi v0, -1
movi.64 v0, 2
fmovi.64 v0, 3.01
lda v1
lda.64 v0
lda.obj v1
ldai 1
ldai.64 2
fldai.64 3.01
lda.str "kek"
lda.type A
lda.null
sta v0
sta.64 v1
sta.obj v2
label:
jmp label
jeq v1, check_v1_eq
ldai 1
jmp check_v1_done
check_v1_eq:
ldai 0
check_v1_done:
cmp.64 v1
ucmp v2
ucmp.64 v3
fcmpl.64 v1
fcmpg.64 v1
jeqz label
jnez label
jltz label
jgtz label
jlez label
jgez label
jeq v2, label
jne v2, label
jlt v2, label
jgt v2, label
jle v2, label
jge v2, label
fadd2.64 v1
fsub2.64 v1
fmul2.64 v1
fdiv2.64 v1
fmod2.64 v1
add2 v2
add2.64 v2
sub2 v2
sub2.64 v2
mul2 v2
mul2.64 v2
and2 v2
and2.64 v2
or2 v2
or2.64 v2
xor2 v2
xor2.64 v2
shl2 v2
shl2.64 v2
shr2 v2
shr2.64 v2
ashr2 v2
ashr2.64 v2
div2 v2
div2.64 v2
mod2 v2
mod2.64 v2
divu2 v2
divu2.64 v2
modu2 v2
modu2.64 v2
add v1, v2
sub v1, v2
mul v1, v2
and v1, v2
or v1, v2
xor v1, v2
shl v1, v2
shr v1, v2
ashr v1, v2
div v1, v2
mod v1, v2
addi 1
subi 1
muli 1
andi 1
ori 1
xori 1
shli 1
shri 1
ashri 1
divi 1
modi 1
neg
neg.64
not
not.64
i32tof64
u32tof64
i64tof64
u64tof64
f64toi32
f64toi64
f64tou32
f64tou64
i32toi64
i64toi32
u32toi64
ldarr.8 v1
ldarru.8 v2
ldarr.16 v1
ldarru.16 v1
ldarr v1
ldarr.64 v1
fldarr.32 v1
fldarr.64 v1
ldarr.obj v1
starr.8 v1, v2
starr.16 v1, v2
starr v1, v2
starr.64 v1, v2
fstarr.32 v1, v2
fstarr.64 v1, v2
starr.obj v1, v2
newobj v6, A
lda.obj v6
initobj A.init
ldobj v0, A.kek
ldobj.64 v0, A.kek
ldobj.obj v0, A.kek
stobj v1, A.kek
stobj.64 v1, A.kek
stobj.obj v1, A.kek
ldstatic A.kek
ldstatic.64 A.kek
ldstatic.obj A.kek
ststatic A.kek
ststatic.64 A.kek
ststatic.obj A.kek
checkcast A
isinstance A
}