1b1994897Sopenharmony_ci# Copyright (c) 2021-2022 Huawei Device Co., Ltd. 2b1994897Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License"); 3b1994897Sopenharmony_ci# you may not use this file except in compliance with the License. 4b1994897Sopenharmony_ci# You may obtain a copy of the License at 5b1994897Sopenharmony_ci# 6b1994897Sopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0 7b1994897Sopenharmony_ci# 8b1994897Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software 9b1994897Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS, 10b1994897Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11b1994897Sopenharmony_ci# See the License for the specific language governing permissions and 12b1994897Sopenharmony_ci# limitations under the License. 13b1994897Sopenharmony_ci 14b1994897Sopenharmony_ci.record panda.String <external> 15b1994897Sopenharmony_ci.record IO <external> 16b1994897Sopenharmony_ci.function void IO.printString(panda.String a0) <external> 17b1994897Sopenharmony_ci.function void IO.printI64(i64 a0) <external> 18b1994897Sopenharmony_ci 19b1994897Sopenharmony_ci# a0 - index in parameter list 20b1994897Sopenharmony_ci.function i64 get(i64 a0, i64 a1, i64 a2, i64 a3, i64 a4, i64 a5, i64 a6, i64 a7, i64 a8) { 21b1994897Sopenharmony_ci lda.str "\n" 22b1994897Sopenharmony_ci sta.obj v0 23b1994897Sopenharmony_ci call.short IO.printString, v0, v0 24b1994897Sopenharmony_ci call.short IO.printI64, a0, a0 25b1994897Sopenharmony_ci call.short IO.printString, v0, v0 26b1994897Sopenharmony_ci call.short IO.printI64, a1, a1 27b1994897Sopenharmony_ci call.short IO.printString, v0, v0 28b1994897Sopenharmony_ci call.short IO.printI64, a2, a2 29b1994897Sopenharmony_ci call.short IO.printString, v0, v0 30b1994897Sopenharmony_ci call.short IO.printI64, a3, a3 31b1994897Sopenharmony_ci call.short IO.printString, v0, v0 32b1994897Sopenharmony_ci call.short IO.printI64, a4, a4 33b1994897Sopenharmony_ci call.short IO.printString, v0, v0 34b1994897Sopenharmony_ci call.short IO.printI64, a5, a5 35b1994897Sopenharmony_ci call.short IO.printString, v0, v0 36b1994897Sopenharmony_ci call.short IO.printI64, a6, a6 37b1994897Sopenharmony_ci call.short IO.printString, v0, v0 38b1994897Sopenharmony_ci call.short IO.printI64, a7, a7 39b1994897Sopenharmony_ci call.short IO.printString, v0, v0 40b1994897Sopenharmony_ci call.short IO.printI64, a8, a8 41b1994897Sopenharmony_ci call.short IO.printString, v0, v0 42b1994897Sopenharmony_ci 43b1994897Sopenharmony_ci lda.64 a0 44b1994897Sopenharmony_ci jeqz zeroth 45b1994897Sopenharmony_ci 46b1994897Sopenharmony_ci subi 1 47b1994897Sopenharmony_ci jeqz first 48b1994897Sopenharmony_ci 49b1994897Sopenharmony_ci subi 1 50b1994897Sopenharmony_ci jeqz second 51b1994897Sopenharmony_ci 52b1994897Sopenharmony_ci subi 1 53b1994897Sopenharmony_ci jeqz third 54b1994897Sopenharmony_ci 55b1994897Sopenharmony_ci subi 1 56b1994897Sopenharmony_ci jeqz fourth 57b1994897Sopenharmony_ci 58b1994897Sopenharmony_ci subi 1 59b1994897Sopenharmony_ci jeqz fifth 60b1994897Sopenharmony_ci 61b1994897Sopenharmony_ci subi 1 62b1994897Sopenharmony_ci jeqz sixth 63b1994897Sopenharmony_ci 64b1994897Sopenharmony_ci #subi 1 65b1994897Sopenharmony_ci #jeqz seventh 66b1994897Sopenharmony_ci lda.64 a8 67b1994897Sopenharmony_ci return.64 68b1994897Sopenharmony_ci 69b1994897Sopenharmony_cisixth: 70b1994897Sopenharmony_ci lda.64 a7 71b1994897Sopenharmony_ci return.64 72b1994897Sopenharmony_ci 73b1994897Sopenharmony_cififth: 74b1994897Sopenharmony_ci lda.64 a6 75b1994897Sopenharmony_ci return.64 76b1994897Sopenharmony_ci 77b1994897Sopenharmony_cifourth: 78b1994897Sopenharmony_ci lda.64 a5 79b1994897Sopenharmony_ci return.64 80b1994897Sopenharmony_ci 81b1994897Sopenharmony_cithird: 82b1994897Sopenharmony_ci lda.64 a4 83b1994897Sopenharmony_ci return.64 84b1994897Sopenharmony_ci 85b1994897Sopenharmony_cisecond: 86b1994897Sopenharmony_ci lda.64 a3 87b1994897Sopenharmony_ci return.64 88b1994897Sopenharmony_ci 89b1994897Sopenharmony_cifirst: 90b1994897Sopenharmony_ci lda.64 a2 91b1994897Sopenharmony_ci return.64 92b1994897Sopenharmony_ci 93b1994897Sopenharmony_cizeroth: 94b1994897Sopenharmony_ci lda.64 a1 95b1994897Sopenharmony_ci return.64 96b1994897Sopenharmony_ci} 97b1994897Sopenharmony_ci 98b1994897Sopenharmony_ci 99b1994897Sopenharmony_ci.function i64 main() { 100b1994897Sopenharmony_ci movi.64 v0, 0 101b1994897Sopenharmony_ci 102b1994897Sopenharmony_ci movi.64 v1, 1000001 103b1994897Sopenharmony_ci movi.64 v2, 2000002 104b1994897Sopenharmony_ci movi.64 v3, 3000003 105b1994897Sopenharmony_ci movi.64 v4, 4000004 106b1994897Sopenharmony_ci 107b1994897Sopenharmony_ci 108b1994897Sopenharmony_ci # 0x 3aaa aaaa aaaa aaa3 109b1994897Sopenharmony_ci movi.64 v5, 4227378850225105571 110b1994897Sopenharmony_ci # 0x 7333 3333 3333 3337 111b1994897Sopenharmony_ci movi.64 v6, 8301034833169298231 112b1994897Sopenharmony_ci # 0x 1fff ffff ffff fff1 113b1994897Sopenharmony_ci movi.64 v7, 2305843009213693937 114b1994897Sopenharmony_ci 115b1994897Sopenharmony_ci # 0x 1234 5678 9abc def0 116b1994897Sopenharmony_ci movi.64 v8, 1311768467463790320 117b1994897Sopenharmony_ci 118b1994897Sopenharmony_ci call.range get, v0 119b1994897Sopenharmony_ci sub2.64 v1 120b1994897Sopenharmony_ci jnez print_fail_1 121b1994897Sopenharmony_ci 122b1994897Sopenharmony_ci movi.64 v0, 1 123b1994897Sopenharmony_ci call.range get, v0 124b1994897Sopenharmony_ci sub2.64 v2 125b1994897Sopenharmony_ci jnez print_fail_2 126b1994897Sopenharmony_ci 127b1994897Sopenharmony_ci movi.64 v0, 2 128b1994897Sopenharmony_ci call.range get, v0 129b1994897Sopenharmony_ci sub2.64 v3 130b1994897Sopenharmony_ci jnez print_fail_3 131b1994897Sopenharmony_ci 132b1994897Sopenharmony_ci movi.64 v0, 3 133b1994897Sopenharmony_ci call.range get, v0 134b1994897Sopenharmony_ci sub2.64 v4 135b1994897Sopenharmony_ci jnez print_fail_4 136b1994897Sopenharmony_ci 137b1994897Sopenharmony_ci movi.64 v0, 4 138b1994897Sopenharmony_ci call.range get, v0 139b1994897Sopenharmony_ci sub2.64 v5 140b1994897Sopenharmony_ci jnez print_fail_5 141b1994897Sopenharmony_ci 142b1994897Sopenharmony_ci movi.64 v0, 5 143b1994897Sopenharmony_ci call.range get, v0 144b1994897Sopenharmony_ci sub2.64 v6 145b1994897Sopenharmony_ci jnez print_fail_6 146b1994897Sopenharmony_ci 147b1994897Sopenharmony_ci movi.64 v0, 6 148b1994897Sopenharmony_ci call.range get, v0 149b1994897Sopenharmony_ci sub2.64 v7 150b1994897Sopenharmony_ci jnez print_fail_7 151b1994897Sopenharmony_ci 152b1994897Sopenharmony_ci return.64 153b1994897Sopenharmony_ci 154b1994897Sopenharmony_ciprint_fail_1: 155b1994897Sopenharmony_ci sta.64 v1 156b1994897Sopenharmony_ci lda.str "1-st paramer fail!" 157b1994897Sopenharmony_ci sta.obj v0 158b1994897Sopenharmony_ci call.short IO.printString, v0, v0 159b1994897Sopenharmony_ci lda.64 v1 160b1994897Sopenharmony_ci return.64 161b1994897Sopenharmony_ci 162b1994897Sopenharmony_ciprint_fail_2: 163b1994897Sopenharmony_ci sta.64 v1 164b1994897Sopenharmony_ci lda.str "2-d paramer fail!" 165b1994897Sopenharmony_ci sta.obj v0 166b1994897Sopenharmony_ci call.short IO.printString, v0, v0 167b1994897Sopenharmony_ci lda.64 v1 168b1994897Sopenharmony_ci return.64 169b1994897Sopenharmony_ci 170b1994897Sopenharmony_ciprint_fail_3: 171b1994897Sopenharmony_ci sta.64 v1 172b1994897Sopenharmony_ci lda.str "3-d paramer fail!" 173b1994897Sopenharmony_ci sta.obj v0 174b1994897Sopenharmony_ci call.short IO.printString, v0, v0 175b1994897Sopenharmony_ci lda.64 v1 176b1994897Sopenharmony_ci return.64 177b1994897Sopenharmony_ci 178b1994897Sopenharmony_ciprint_fail_4: 179b1994897Sopenharmony_ci sta.64 v1 180b1994897Sopenharmony_ci lda.str "4-d paramer fail!" 181b1994897Sopenharmony_ci sta.obj v0 182b1994897Sopenharmony_ci call.short IO.printString, v0, v0 183b1994897Sopenharmony_ci lda.64 v1 184b1994897Sopenharmony_ci return.64 185b1994897Sopenharmony_ci 186b1994897Sopenharmony_ciprint_fail_5: 187b1994897Sopenharmony_ci sta.64 v1 188b1994897Sopenharmony_ci lda.str "5-d paramer fail!" 189b1994897Sopenharmony_ci sta.obj v0 190b1994897Sopenharmony_ci call.short IO.printString, v0, v0 191b1994897Sopenharmony_ci lda.64 v1 192b1994897Sopenharmony_ci return.64 193b1994897Sopenharmony_ci 194b1994897Sopenharmony_ciprint_fail_6: 195b1994897Sopenharmony_ci sta.64 v1 196b1994897Sopenharmony_ci lda.str "6-d paramer fail!" 197b1994897Sopenharmony_ci sta.obj v0 198b1994897Sopenharmony_ci call.short IO.printString, v0, v0 199b1994897Sopenharmony_ci lda.64 v1 200b1994897Sopenharmony_ci return.64 201b1994897Sopenharmony_ci 202b1994897Sopenharmony_ciprint_fail_7: 203b1994897Sopenharmony_ci sta.64 v1 204b1994897Sopenharmony_ci lda.str "7-d paramer fail!" 205b1994897Sopenharmony_ci sta.obj v0 206b1994897Sopenharmony_ci call.short IO.printString, v0, v0 207b1994897Sopenharmony_ci lda.64 v1 208b1994897Sopenharmony_ci return.64 209b1994897Sopenharmony_ci 210b1994897Sopenharmony_ciprint_fail_8: 211b1994897Sopenharmony_ci sta.64 v1 212b1994897Sopenharmony_ci lda.str "8-d paramer fail!" 213b1994897Sopenharmony_ci sta.obj v0 214b1994897Sopenharmony_ci call.short IO.printString, v0, v0 215b1994897Sopenharmony_ci lda.64 v1 216b1994897Sopenharmony_ci return.64 217b1994897Sopenharmony_ci 218b1994897Sopenharmony_ciprint_fail_9: 219b1994897Sopenharmony_ci sta.64 v1 220b1994897Sopenharmony_ci lda.str "9-d paramer fail!" 221b1994897Sopenharmony_ci sta.obj v0 222b1994897Sopenharmony_ci call.short IO.printString, v0, v0 223b1994897Sopenharmony_ci lda.64 v1 224b1994897Sopenharmony_ci return.64 225b1994897Sopenharmony_ci} 226