• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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