• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2023-2024 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
14coretypes:
15- managed_class: std.core.Object
16  mirror_class: ark::ets::EtsObject
17
18- managed_class: std.core.String
19  mirror_class: ark::ets::EtsString
20
21intrinsics_namespace: ark::ets::intrinsics
22
23intrinsics:
24
25  - name: CompilerEtsLdObjByNameObj
26    space: ets
27    compiler_only: true
28    static: true
29    signature:
30      ret: ref
31      args: [ method, i32, u32, ref ]
32    impl: ark::ets::intrinsics::CompilerEtsLdObjByNameObj
33    clear_flags: [ acc_read ]
34    peephole_func: PeepholeLdObjByName
35
36  - name: CompilerEtsLdObjByNameI32
37    space: ets
38    compiler_only: true
39    static: true
40    signature:
41      ret: i32
42      args: [ method, i32, u32, ref ]
43    impl: ark::ets::intrinsics::CompilerEtsLdObjByNameI32
44    clear_flags: [ acc_read ]
45    peephole_func: PeepholeLdObjByName
46
47  - name: CompilerEtsLdObjByNameI64
48    space: ets
49    compiler_only: true
50    static: true
51    signature:
52      ret: i64
53      args: [ method, i32, u32, ref ]
54    impl: ark::ets::intrinsics::CompilerEtsLdObjByNameI64
55    clear_flags: [ acc_read ]
56    peephole_func: PeepholeLdObjByName
57
58  - name: CompilerEtsLdObjByNameF32
59    space: ets
60    compiler_only: true
61    static: true
62    signature:
63      ret: f32
64      args: [ method, i32, u32, ref ]
65    impl: ark::ets::intrinsics::CompilerEtsLdObjByNameF32
66    clear_flags: [ acc_read ]
67    peephole_func: PeepholeLdObjByName
68
69  - name: CompilerEtsLdObjByNameF64
70    space: ets
71    compiler_only: true
72    static: true
73    signature:
74      ret: f64
75      args: [ method, i32, u32, ref ]
76    impl: ark::ets::intrinsics::CompilerEtsLdObjByNameF64
77    clear_flags: [ acc_read ]
78    peephole_func: PeepholeLdObjByName
79
80  - name: CompilerEtsStObjByNameObj
81    space: ets
82    compiler_only: true
83    static: true
84    signature:
85      ret: void
86      args: [ method, i32, u32, ref, ref ]
87    impl: ark::ets::intrinsics::CompilerEtsStObjByNameObj
88    clear_flags: [  ]
89    peephole_func: PeepholeStObjByName
90
91  - name: CompilerEtsStObjByNameI8
92    space: ets
93    compiler_only: true
94    static: true
95    signature:
96      ret: void
97      args: [ method, i32, u32, ref, i8 ]
98    impl: ark::ets::intrinsics::CompilerEtsStObjByNameI8
99    clear_flags: [  ]
100    peephole_func: PeepholeStObjByName
101
102  - name: CompilerEtsStObjByNameI16
103    space: ets
104    compiler_only: true
105    static: true
106    signature:
107      ret: void
108      args: [ method, i32, u32, ref, i16 ]
109    impl: ark::ets::intrinsics::CompilerEtsStObjByNameI16
110    clear_flags: [  ]
111    peephole_func: PeepholeStObjByName
112
113  - name: CompilerEtsStObjByNameI32
114    space: ets
115    compiler_only: true
116    static: true
117    signature:
118      ret: void
119      args: [ method, i32, u32, ref, i32 ]
120    impl: ark::ets::intrinsics::CompilerEtsStObjByNameI32
121    clear_flags: [  ]
122    peephole_func: PeepholeStObjByName
123
124  - name: CompilerEtsStObjByNameI64
125    space: ets
126    compiler_only: true
127    static: true
128    signature:
129      ret: void
130      args: [ method, i32, u32, ref, i64 ]
131    impl: ark::ets::intrinsics::CompilerEtsStObjByNameI64
132    clear_flags: [  ]
133    peephole_func: PeepholeStObjByName
134
135  - name: CompilerEtsStObjByNameF32
136    space: ets
137    compiler_only: true
138    static: true
139    signature:
140      ret: void
141      args: [ method, i32, u32, ref, f32 ]
142    impl: ark::ets::intrinsics::CompilerEtsStObjByNameF32
143    clear_flags: [  ]
144    peephole_func: PeepholeStObjByName
145
146  - name: CompilerEtsStObjByNameF64
147    space: ets
148    compiler_only: true
149    static: true
150    signature:
151      ret: void
152      args: [ method, i32, u32, ref, f64 ]
153    impl: ark::ets::intrinsics::CompilerEtsStObjByNameF64
154    clear_flags: [  ]
155    peephole_func: PeepholeStObjByName
156
157  - name: CompilerEtsEquals
158    space: ets
159    compiler_only: true
160    static: true
161    signature:
162      ret: u1
163      args: [ ref, ref ]
164    impl: ark::ets::intrinsics::CompilerEtsEquals
165    set_flags: [ commutative ]
166    clear_flags: [ acc_read, require_state, can_throw, heap_inv, no_dce, no_cse, no_hoist ]
167    peephole_func: PeepholeEquals
168
169  - name: CompilerEtsDoubleToStringDecimal
170    space: ets
171    compiler_only: true
172    static: true
173    signature:
174      ret: std.core.String
175      args: [ ref, u64, u64 ]
176    impl: ark::ets::intrinsics::CompilerDoubleToStringDecimal
177    codegen_arch: [arm64, amd64]
178    codegen_func: CreateDoubleToStringDecimal
179    llvm_codegen_func: EmitDoubleToStringDecimal
180    need_param_locations: true