1# Copyright (c) 2021-2022 Huawei Device Co., Ltd. 2# Licensed under the Apache License, Version 2.0 (the "License"); 3# you may not use this file except in compliance with the License. 4# You may obtain a copy of the License at 5# 6# http://www.apache.org/licenses/LICENSE-2.0 7# 8# Unless required by applicable law or agreed to in writing, software 9# distributed under the License is distributed on an "AS IS" BASIS, 10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11# See the License for the specific language governing permissions and 12# limitations under the License. 13 14.record panda.String <external> 15.record Convert <external> 16.function i32 Convert.stringToI32(panda.String a0) <external> 17 18.function i32 main(){ 19 # Convert.stringToI32("-1") == -1 20 lda.str "-1" 21 sta.obj v0 22 call Convert.stringToI32, v0 23 movi v1, -1 24 jne v1, exit_failure 25 26 # Convert.stringToI32("1") == 1 27 lda.str "1" 28 sta.obj v0 29 call Convert.stringToI32, v0 30 movi v1, 1 31 jne v1, exit_failure 32 33 # Convert.stringToI32("-2147483648") == -2147483648 34 lda.str "-2147483648" 35 sta.obj v0 36 call Convert.stringToI32, v0 37 movi v1, -2147483648 38 jne v1, exit_failure 39 40 # Convert.stringToI32("-2147483649") == 2147483647 41 lda.str "-2147483649" 42 sta.obj v0 43 call Convert.stringToI32, v0 44 movi v1, 2147483647 45 jne v1, exit_failure 46 47 # Convert.stringToI32("2147483647") == 2147483647 48 lda.str "2147483647" 49 sta.obj v0 50 call Convert.stringToI32, v0 51 movi v1, 2147483647 52 jne v1, exit_failure 53 54 # Convert.stringToI32("2147483648") == -2147483648 55 lda.str "2147483648" 56 sta.obj v0 57 call Convert.stringToI32, v0 58 movi v1, -2147483648 59 jne v1, exit_failure 60 61 ldai 0 62 return 63 64exit_failure: 65 ldai 1 66 return 67} 68