• 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# Mapping beetween managed core types and C++ mirror classes
15coretypes:
16- managed_class: panda.Object
17  mirror_class: ObjectHeader
18
19- managed_class: panda.String
20  mirror_class: coretypes::String
21
22- managed_class: panda.Class
23  mirror_class: coretypes::Class
24
25# Namespace that contains intrinsics implementation. For functions from
26# this namespace declaration in intrinsics.h will be generated
27intrinsics_namespace: panda::intrinsics
28
29# NB! The `space` property allows to group intrinsics and control
30# which intrinsics are loaded during startup. By default only "core"
31# space is loaded. See --load-runtimes for more details.
32#
33# The `signature` for instance intrinsics (`static` is false) doesn't include
34# `this` argument.
35intrinsics:
36- name: MathAbsI32
37  space: core
38  class_name: Math
39  method_name: absI32
40  static: true
41  signature:
42    ret: i32
43    args:
44      - i32
45  impl: panda::intrinsics::AbsI32
46  clear_flags: [no_dce, no_hoist, no_cse, barrier, require_state, runtime_call]
47
48- name: MathAbsI64
49  space: core
50  class_name: Math
51  method_name: absI64
52  static: true
53  signature:
54    ret: i64
55    args:
56      - i64
57  impl: panda::intrinsics::AbsI64
58  clear_flags: [no_dce, no_hoist, no_cse, barrier, require_state, runtime_call]
59
60- name: MathAbsF32
61  space: core
62  class_name: Math
63  method_name: absF32
64  static: true
65  signature:
66    ret: f32
67    args:
68      - f32
69  impl: panda::intrinsics::AbsF32
70  clear_flags: [no_dce, no_hoist, no_cse, barrier, require_state, runtime_call]
71
72- name: MathAbsF64
73  space: core
74  class_name: Math
75  method_name: absF64
76  static: true
77  signature:
78    ret: f64
79    args:
80      - f64
81  impl: panda::intrinsics::AbsF64
82  clear_flags: [no_dce, no_hoist, no_cse, barrier, require_state, runtime_call]
83
84- name: MathMinI32
85  space: core
86  class_name: Math
87  method_name: minI32
88  static: true
89  signature:
90    ret: i32
91    args: [i32, i32]
92  impl: panda::intrinsics::MinI32
93  clear_flags: [no_dce, no_hoist, no_cse, barrier, require_state, runtime_call]
94
95- name: MathMinI64
96  space: core
97  class_name: Math
98  method_name: minI64
99  static: true
100  signature:
101    ret: i64
102    args: [i64, i64]
103  impl: panda::intrinsics::MinI64
104  clear_flags: [no_dce, no_hoist, no_cse, barrier, require_state, runtime_call]
105
106- name: MathMinF32
107  space: core
108  class_name: Math
109  method_name: minF32
110  static: true
111  signature:
112    ret: f32
113    args: [f32, f32]
114  impl: panda::intrinsics::MinF32
115  clear_flags: [no_dce, no_hoist, no_cse, barrier, require_state, runtime_call]
116
117- name: MathMinF64
118  space: core
119  class_name: Math
120  method_name: minF64
121  static: true
122  signature:
123    ret: f64
124    args: [f64, f64]
125  impl: panda::intrinsics::MinF64
126  clear_flags: [no_dce, no_hoist, no_cse, barrier, require_state, runtime_call]
127
128- name: MathMaxI32
129  space: core
130  class_name: Math
131  method_name: maxI32
132  static: true
133  signature:
134    ret: i32
135    args: [i32, i32]
136  impl: panda::intrinsics::MaxI32
137  clear_flags: [no_dce, no_hoist, no_cse, barrier, require_state, runtime_call]
138
139- name: MathMaxI64
140  space: core
141  class_name: Math
142  method_name: maxI64
143  static: true
144  signature:
145    ret: i64
146    args: [i64, i64]
147  impl: panda::intrinsics::MaxI64
148  clear_flags: [no_dce, no_hoist, no_cse, barrier, require_state, runtime_call]
149
150- name: MathMaxF32
151  space: core
152  class_name: Math
153  method_name: maxF32
154  static: true
155  signature:
156    ret: f32
157    args: [f32, f32]
158  impl: panda::intrinsics::MaxF32
159  clear_flags: [no_dce, no_hoist, no_cse, barrier, require_state, runtime_call]
160
161- name: MathMaxF64
162  space: core
163  class_name: Math
164  method_name: maxF64
165  static: true
166  signature:
167    ret: f64
168    args: [f64, f64]
169  impl: panda::intrinsics::MaxF64
170  clear_flags: [no_dce, no_hoist, no_cse, barrier, require_state, runtime_call]
171
172- name: DoubleIsInf
173  space: core
174  class_name: Double
175  method_name: isInfinite
176  static: true
177  signature:
178    ret: u1
179    args:
180      - f64
181  impl: panda::intrinsics::IsInfF64
182  codegen_func: CreateFloatIsInf
183  clear_flags: [no_dce, no_hoist, no_cse, barrier, require_state, runtime_call]
184
185- name: FloatIsInf
186  space: core
187  class_name: Float
188  method_name: isInfinite
189  static: true
190  signature:
191    ret: u1
192    args:
193      - f32
194  impl: panda::intrinsics::IsInfF32
195  codegen_func: CreateFloatIsInf
196  clear_flags: [no_dce, no_hoist, no_cse, barrier, require_state, runtime_call]
197
198- name: MathSinF32
199  space: core
200  class_name: Math
201  method_name: fsin
202  static: true
203  signature:
204    ret: f32
205    args:
206      - f32
207  impl: panda::intrinsics::SinF32
208  clear_flags: [no_dce, no_hoist, no_cse, barrier, require_state, runtime_call]
209
210- name: MathSinF64
211  space: core
212  class_name: Math
213  method_name: sin
214  static: true
215  signature:
216    ret: f64
217    args:
218      - f64
219  impl: panda::intrinsics::SinF64
220  clear_flags: [no_dce, no_hoist, no_cse, barrier, require_state, runtime_call]
221
222- name: MathCosF32
223  space: core
224  class_name: Math
225  method_name: fcos
226  static: true
227  signature:
228    ret: f32
229    args:
230      - f32
231  impl: panda::intrinsics::CosF32
232  clear_flags: [no_dce, no_hoist, no_cse, barrier, require_state, runtime_call]
233
234- name: MathCosF64
235  space: core
236  class_name: Math
237  method_name: cos
238  static: true
239  signature:
240    ret: f64
241    args:
242      - f64
243  impl: panda::intrinsics::CosF64
244  clear_flags: [no_dce, no_hoist, no_cse, barrier, require_state, runtime_call]
245
246- name: MathPowF32
247  space: core
248  class_name: Math
249  method_name: fpow
250  static: true
251  signature:
252    ret: f32
253    args:
254      - f32
255      - f32
256  impl: panda::intrinsics::PowF32
257  clear_flags: [no_dce, no_hoist, no_cse, barrier, require_state, runtime_call]
258
259- name: MathPowF64
260  space: core
261  class_name: Math
262  method_name: pow
263  static: true
264  signature:
265    ret: f64
266    args:
267      - f64
268      - f64
269  impl: panda::intrinsics::PowF64
270  clear_flags: [no_dce, no_hoist, no_cse, barrier, require_state, runtime_call]
271
272- name: MathSqrtF32
273  space: core
274  class_name: Math
275  method_name: fsqrt
276  static: true
277  signature:
278    ret: f32
279    args:
280      - f32
281  impl: panda::intrinsics::SqrtF32
282  clear_flags: [no_dce, no_hoist, no_cse, barrier, require_state, runtime_call]
283
284- name: MathSqrtF64
285  space: core
286  class_name: Math
287  method_name: sqrt
288  static: true
289  signature:
290    ret: f64
291    args:
292      - f64
293  impl: panda::intrinsics::SqrtF64
294  clear_flags: [no_dce, no_hoist, no_cse, barrier, require_state, runtime_call]
295
296- name: IOPrintString
297  space: core
298  class_name: IO
299  method_name: printString
300  static: true
301  signature:
302    ret: void
303    args:
304      - panda.String
305  impl: panda::intrinsics::PrintString
306  clear_flags: [require_state, runtime_call]
307
308- name: IOPrintF32
309  space: core
310  class_name: IO
311  method_name: printF32
312  static: true
313  signature:
314    ret: void
315    args:
316      - f32
317  impl: panda::intrinsics::PrintF32
318  clear_flags: [require_state, runtime_call]
319
320- name: IOPrintF64
321  space: core
322  class_name: IO
323  method_name: printF64
324  static: true
325  signature:
326    ret: void
327    args:
328      - f64
329  impl: panda::intrinsics::PrintF64
330  clear_flags: [require_state, runtime_call]
331
332- name: IOPrintI32
333  space: core
334  class_name: IO
335  method_name: printI32
336  static: true
337  signature:
338    ret: void
339    args:
340      - i32
341  impl: panda::intrinsics::PrintI32
342  clear_flags: [require_state, runtime_call]
343
344- name: IOPrintU32
345  space: core
346  class_name: IO
347  method_name: printU32
348  static: true
349  signature:
350    ret: void
351    args:
352      - u32
353  impl: panda::intrinsics::PrintU32
354  clear_flags: [require_state, runtime_call]
355
356- name: IOPrintI64
357  space: core
358  class_name: IO
359  method_name: printI64
360  static: true
361  signature:
362    ret: void
363    args:
364      - i64
365  impl: panda::intrinsics::PrintI64
366  clear_flags: [require_state, runtime_call]
367
368- name: IOPrintU64
369  space: core
370  class_name: IO
371  method_name: printU64
372  static: true
373  signature:
374    ret: void
375    args:
376      - u64
377  impl: panda::intrinsics::PrintU64
378  clear_flags: [require_state, runtime_call]
379
380- name: SystemCompileMethod
381  space: core
382  class_name: System
383  method_name: compileMethod
384  static: true
385  private: true
386  signature:
387    ret: u8
388    args: [panda.String]
389  impl: panda::intrinsics::CompileMethod
390
391- name: SystemExit
392  space: core
393  class_name: System
394  method_name: exit
395  static: true
396  signature:
397    ret: void
398    args:
399      - i32
400  impl: panda::intrinsics::SystemExit
401  clear_flags: [require_state, runtime_call]
402
403- name: SystemNanoTime
404  space: core
405  class_name: System
406  method_name: nanoTime
407  static: true
408  signature:
409    ret: i64
410    args: []
411  impl: panda::intrinsics::NanoTime
412  clear_flags: [require_state, runtime_call]
413
414- name: SystemAssert
415  space: core
416  class_name: System
417  method_name: assert
418  static: true
419  signature:
420    ret: void
421    args: [u1]
422  impl: panda::intrinsics::Assert
423  clear_flags: [require_state, runtime_call]
424
425- name: SystemAssertPrint
426  space: core
427  class_name: System
428  method_name: assertPrint
429  static: true
430  signature:
431    ret: void
432    args: [u1, panda.String]
433  impl: panda::intrinsics::AssertPrint
434  clear_flags: [require_state, runtime_call]
435
436- name: ConvertStringToI32
437  space: core
438  class_name: Convert
439  method_name: stringToI32
440  static: true
441  signature:
442    ret: i32
443    args: [panda.String]
444  impl: panda::intrinsics::ConvertStringToI32
445  clear_flags: [no_dce, no_hoist, no_cse, barrier, require_state, runtime_call]
446
447- name: ConvertStringToU32
448  space: core
449  class_name: Convert
450  method_name: stringToU32
451  static: true
452  signature:
453    ret: u32
454    args: [panda.String]
455  impl: panda::intrinsics::ConvertStringToU32
456  clear_flags: [no_dce, no_hoist, no_cse, barrier, require_state, runtime_call]
457
458- name: ConvertStringToI64
459  space: core
460  class_name: Convert
461  method_name: stringToI64
462  static: true
463  signature:
464    ret: i64
465    args: [panda.String]
466  impl: panda::intrinsics::ConvertStringToI64
467  clear_flags: [no_dce, no_hoist, no_cse, barrier, require_state, runtime_call]
468
469- name: ConvertStringToU64
470  space: core
471  class_name: Convert
472  method_name: stringToU64
473  static: true
474  signature:
475    ret: u64
476    args: [panda.String]
477  impl: panda::intrinsics::ConvertStringToU64
478  clear_flags: [no_dce, no_hoist, no_cse, barrier, require_state, runtime_call]
479
480- name: ConvertStringToF32
481  space: core
482  class_name: Convert
483  method_name: stringToF32
484  static: true
485  signature:
486    ret: f32
487    args: [panda.String]
488  impl: panda::intrinsics::ConvertStringToF32
489  clear_flags: [no_dce, no_hoist, no_cse, barrier, require_state, runtime_call]
490
491- name: ConvertStringToF64
492  space: core
493  class_name: Convert
494  method_name: stringToF64
495  static: true
496  signature:
497    ret: f64
498    args: [panda.String]
499  impl: panda::intrinsics::ConvertStringToF64
500  clear_flags: [no_dce, no_hoist, no_cse, barrier, require_state, runtime_call]
501
502- name: ObjectCreateNonMovable
503  space: core
504  class_name: Object
505  method_name: createNonMovable
506  static: true
507  signature:
508    ret: panda.Object
509    args: [panda.Class]
510  impl: panda::intrinsics::ObjectCreateNonMovable
511  set_flags: [can_throw]
512
513- name: ObjectMonitorEnter
514  space: core
515  class_name: Object
516  method_name: monitorEnter
517  static: true
518  signature:
519    ret: void
520    args: [panda.Object]
521  impl: panda::intrinsics::ObjectMonitorEnter
522
523- name: ObjectMonitorExit
524  space: core
525  class_name: Object
526  method_name: monitorExit
527  static: true
528  signature:
529    ret: void
530    args: [panda.Object]
531  impl: panda::intrinsics::ObjectMonitorExit
532
533- name: ObjectWait
534  space: core
535  class_name: Object
536  method_name: Wait
537  static: true
538  signature:
539    ret: void
540    args: [panda.Object]
541  impl: panda::intrinsics::ObjectWait
542
543- name: ObjectTimedWait
544  space: core
545  class_name: Object
546  method_name: TimedWait
547  static: true
548  signature:
549    ret: void
550    args: [panda.Object, u64]
551  impl: panda::intrinsics::ObjectTimedWait
552
553- name: ObjectTimedWaitNanos
554  space: core
555  class_name: Object
556  method_name: TimedWaitNanos
557  static: true
558  signature:
559    ret: void
560    args: [panda.Object, u64, u64]
561  impl: panda::intrinsics::ObjectTimedWaitNanos
562
563- name: ObjectNotify
564  space: core
565  class_name: Object
566  method_name: Notify
567  static: true
568  signature:
569    ret: void
570    args: [panda.Object]
571  impl: panda::intrinsics::ObjectNotify
572  clear_flags: [require_state, runtime_call]
573
574- name: ObjectNotifyAll
575  space: core
576  class_name: Object
577  method_name: NotifyAll
578  static: true
579  signature:
580    ret: void
581    args: [panda.Object]
582  impl: panda::intrinsics::ObjectNotifyAll
583  clear_flags: [require_state, runtime_call]
584