• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2023-2025 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: CompilerEtsStrictEquals
170    space: ets
171    compiler_only: true
172    static: true
173    signature:
174      ret: u1
175      args: [ ref, ref ]
176    impl: ark::ets::intrinsics::CompilerEtsStrictEquals
177    set_flags: [ commutative ]
178    clear_flags: [ acc_read, require_state, can_throw, heap_inv, no_dce, no_cse, no_hoist ]
179    peephole_func: PeepholeStrictEquals
180
181  - name: CompilerEtsTypeof
182    space: ets
183    compiler_only: true
184    static: true
185    signature:
186      ret: std.core.String
187      args: [ ref ]
188    impl: ark::ets::intrinsics::CompilerEtsTypeof
189    set_flags: [ no_nullptr ]
190    clear_flags: [ acc_read, no_dce ]
191    peephole_func: PeepholeTypeof
192
193  - name: CompilerEtsIstrue
194    space: ets
195    compiler_only: true
196    static: true
197    signature:
198      ret: u1
199      args: [ ref ]
200    impl: ark::ets::intrinsics::CompilerEtsIstrue
201    clear_flags: [ acc_read, require_state, can_throw, heap_inv, no_dce, no_cse, no_hoist  ]
202    need_param_locations: true
203
204  - name: CompilerEtsDoubleToStringDecimal
205    space: ets
206    compiler_only: true
207    static: true
208    signature:
209      ret: std.core.String
210      args: [ ref, u64, u64 ]
211    impl: ark::ets::intrinsics::CompilerDoubleToStringDecimal
212    codegen_arch: [arm64, amd64]
213    codegen_func: CreateDoubleToStringDecimal
214    llvm_codegen_func: EmitDoubleToStringDecimal
215    need_param_locations: true
216
217  - name: CompilerEtsStringFromCharCodeSingle
218    space: ets
219    compiler_only: true
220    static: true
221    signature:
222      ret: std.core.String
223      args: [ u64 ]
224    codegen_arch: [ arm64, amd64 ]
225    codegen_func: CreateStringFromCharCode
226    llvm_codegen_func: EmitStringFromCharCode
227    need_param_locations: true