# Copyright (c) 2021-2022 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. #! CHECKER Stack parameters in OSR #! RUN options: "--no-async-jit --compiler-hotness-threshold=10", entry: "_GLOBAL::main2" #! EVENT /OsrEntry,_GLOBAL::bar,.*,AFTER_IFRAME,SUCCESS/ .function i64 bar(i64 a0, i64 a1, i64 a2, i64 a3, i64 a4, i64 a5, i64 a6, i64 a7, i64 a8, i64 a9, i64 a10, i64 a11, i64 a12, i64 a13, i64 a14, i64 a15, i64 a16, i64 a17, i64 a18, i64 a19) { movi.64 v1, 0 movi.64 v2, 100 movi.64 v3, 0 loop: lda.64 v3 add2.64 a0 add2.64 a1 add2.64 a2 add2.64 a3 add2.64 a4 add2.64 a5 add2.64 a6 add2.64 a7 add2.64 a8 add2.64 a9 add2.64 a10 add2.64 a11 add2.64 a12 add2.64 a13 add2.64 a14 add2.64 a15 add2.64 a16 add2.64 a17 add2.64 a18 add2.64 a19 sta.64 v3 inci v1, 1 lda.64 v1 jge v2, exit jmp loop exit: lda v3 return.64 } .function i64 main2() { movi.64 v0, 1 movi.64 v1, 2 movi.64 v2, 3 movi.64 v3, 4 movi.64 v4, 5 movi.64 v5, 6 movi.64 v6, 7 movi.64 v7, 8 movi.64 v8, 9 movi.64 v9, 10 movi.64 v10, 11 movi.64 v11, 12 movi.64 v12, 13 movi.64 v13, 14 movi.64 v14, 15 movi.64 v15, 16 movi.64 v16, 17 movi.64 v17, 18 movi.64 v18, 19 movi.64 v19, 20 call.range bar, v0 add2.64 v0 add2.64 v1 add2.64 v2 add2.64 v3 add2.64 v4 add2.64 v5 add2.64 v6 add2.64 v7 add2.64 v8 add2.64 v9 add2.64 v10 add2.64 v11 add2.64 v12 add2.64 v13 add2.64 v14 add2.64 v15 add2.64 v16 add2.64 v17 add2.64 v18 add2.64 v19 movi.64 v0, 21210 jeq v0, success ldai 1 return.64 success: ldai 0 return.64 }