• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 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
14intrinsics:
15- name: AbckitLoadConstArray
16  space: abckit
17  class_name: "LoadConstArray"
18  method_name: "lda.const"
19  compiler_only: true
20  private: false
21  static: true
22  safepoint_after_call: false
23  signature:
24    ret: ref
25    args: [ literalarray_id ]
26  clear_flags: [ "require_state", "call", "heap_inv", "acc_write", "acc_read" ]
27  set_flags: ["load"]
28  is_stub: false
29  additional_temps: 0
30  codegen_arch: []
31  need_nullcheck: []
32  is_fastpath: false
33  need_param_locations: false
34
35- name: AbckitLoadString
36  space: abckit
37  class_name: "LoadString"
38  method_name: "lda.str"
39  compiler_only: true
40  private: false
41  static: true
42  safepoint_after_call: false
43  signature:
44    ret: ref
45    args: [ string_id ]
46  clear_flags: [ "require_state", "call", "heap_inv", "acc_read", "no_dce", "barrier" ]
47  set_flags: ["load"]
48  is_stub: false
49  additional_temps: 0
50  codegen_arch: []
51  need_nullcheck: []
52  is_fastpath: false
53  need_param_locations: false
54
55- name: AbckitCheckCast
56  space: abckit
57  class_name: "CheckCast"
58  method_name: "checkcast"
59  compiler_only: true
60  private: false
61  static: true
62  safepoint_after_call: false
63  signature:
64    ret: none
65    args: [ ref, type_id ]
66  clear_flags: [ "require_state", "call", "heap_inv", "acc_write", "barrier" ]
67  set_flags: ["load", "no_dst"]
68  is_stub: false
69  additional_temps: 0
70  codegen_arch: []
71  need_nullcheck: []
72  is_fastpath: false
73  need_param_locations: false
74
75- name: AbckitIsInstance
76  space: abckit
77  class_name: "IsInstance"
78  method_name: "isinstance"
79  compiler_only: true
80  private: false
81  static: true
82  safepoint_after_call: false
83  signature:
84    ret: i32
85    args: [ ref, type_id ]
86  clear_flags: [ "require_state", "call", "heap_inv", "barrier", "can_throw", "no_dce", "no_hoist", "no_cse"]
87  set_flags: []
88  is_stub: false
89  additional_temps: 0
90  codegen_arch: []
91  need_nullcheck: []
92  is_fastpath: false
93  need_param_locations: false
94
95- name: AbckitThrow
96  space: abckit
97  class_name: "Throw"
98  method_name: "throw"
99  compiler_only: true
100  private: false
101  static: true
102  safepoint_after_call: false
103  signature:
104    ret: none
105    args: [ ref ]
106  clear_flags: [ "require_state", "call", "heap_inv", "runtime_call", "acc_read", "acc_write" ]
107  set_flags: ["cf", "terminator", "no_dst"]
108  is_stub: false
109  additional_temps: 0
110  codegen_arch: []
111  need_nullcheck: []
112  is_fastpath: false
113  need_param_locations: false
114
115- name: AbckitNewArray
116  space: abckit
117  class_name: "NewArray"
118  method_name: "newarr"
119  compiler_only: true
120  private: false
121  static: true
122  safepoint_after_call: false
123  signature:
124    ret: ref
125    args: [ i32, type_id ]
126  clear_flags: [ "require_state", "call", "heap_inv", "barrier", "acc_read", "acc_write" ]
127  set_flags: [ "alloc", "mem_barrier" ]
128  is_stub: false
129  additional_temps: 0
130  codegen_arch: []
131  need_nullcheck: []
132  is_fastpath: false
133  need_param_locations: false
134
135- name: AbckitNewObject
136  space: abckit
137  class_name: "NewObject"
138  method_name: "newobj"
139  compiler_only: true
140  private: false
141  static: true
142  safepoint_after_call: false
143  signature:
144    ret: ref
145    args: [ type_id ]
146  clear_flags: [ "require_state", "call", "heap_inv", "barrier", "acc_read", "acc_write" ]
147  set_flags: [ "alloc", "mem_barrier" ]
148  is_stub: false
149  additional_temps: 0
150  codegen_arch: []
151  need_nullcheck: []
152  is_fastpath: false
153  need_param_locations: false
154
155- name: AbckitInitObjectShort
156  space: abckit
157  class_name: "InitObject"
158  method_name: "initobj.short"
159  compiler_only: true
160  private: false
161  static: true
162  safepoint_after_call: false
163  signature:
164    ret: ref
165    args: [ none, none, method_id ]
166  clear_flags: [ "require_state", "call", "heap_inv", "barrier", "acc_read"]
167  set_flags: [ "alloc" ]
168  is_stub: false
169  additional_temps: 0
170  codegen_arch: []
171  need_nullcheck: []
172  is_fastpath: false
173  need_param_locations: false
174
175- name: AbckitInitObject
176  space: abckit
177  class_name: "InitObject"
178  method_name: "initobj"
179  compiler_only: true
180  private: false
181  static: true
182  safepoint_after_call: false
183  signature:
184    ret: ref
185    args: [ none, none, none, none, method_id ]
186  clear_flags: [ "require_state", "call", "heap_inv", "barrier", "acc_read"]
187  set_flags: [ "alloc" ]
188  is_stub: false
189  additional_temps: 0
190  codegen_arch: []
191  need_nullcheck: []
192  is_fastpath: false
193  need_param_locations: false
194
195- name: AbckitInitObjectRange
196  space: abckit
197  class_name: "InitObject"
198  method_name: "initobj.range"
199  compiler_only: true
200  private: false
201  static: true
202  safepoint_after_call: false
203  signature:
204    ret: ref
205    args: [ none, method_id ]
206  clear_flags: [ "require_state", "call", "heap_inv", "barrier", "acc_read"]
207  set_flags: [ "alloc" ]
208  is_stub: false
209  additional_temps: 0
210  codegen_arch: []
211  need_nullcheck: []
212  is_fastpath: false
213  need_param_locations: false
214
215- name: AbckitLoadObject
216  space: abckit
217  class_name: "LoadObject"
218  method_name: "ldobj"
219  compiler_only: true
220  private: false
221  static: true
222  safepoint_after_call: false
223  signature:
224    ret: b32
225    args: [ ref, field_id ]
226  clear_flags: [ "can_throw", "no_dce", "require_state", "call", "runtime_call", "heap_inv", "barrier", "acc_read"]
227  set_flags: [ "load" ]
228  is_stub: false
229  additional_temps: 0
230  codegen_arch: []
231  need_nullcheck: []
232  is_fastpath: false
233  need_param_locations: false
234
235- name: AbckitLoadObjectWide
236  space: abckit
237  class_name: "LoadObject"
238  method_name: "ldobj.64"
239  compiler_only: true
240  private: false
241  static: true
242  safepoint_after_call: false
243  signature:
244    ret: b64
245    args: [ ref, field_id ]
246  clear_flags: [ "can_throw", "no_dce", "require_state", "call", "runtime_call", "heap_inv", "barrier", "acc_read"]
247  set_flags: [ "load" ]
248  is_stub: false
249  additional_temps: 0
250  codegen_arch: []
251  need_nullcheck: []
252  is_fastpath: false
253  need_param_locations: false
254
255- name: AbckitLoadObjectObject
256  space: abckit
257  class_name: "LoadObject"
258  method_name: "ldobj.obj"
259  compiler_only: true
260  private: false
261  static: true
262  safepoint_after_call: false
263  signature:
264    ret: ref
265    args: [ ref, field_id ]
266  clear_flags: [ "can_throw", "no_dce", "require_state", "call", "runtime_call", "heap_inv", "barrier", "acc_read"]
267  set_flags: [ "load" ]
268  is_stub: false
269  additional_temps: 0
270  codegen_arch: []
271  need_nullcheck: []
272  is_fastpath: false
273  need_param_locations: false
274
275- name: AbckitStoreObject
276  space: abckit
277  class_name: "StoreObject"
278  method_name: "stobj"
279  compiler_only: true
280  private: false
281  static: true
282  safepoint_after_call: false
283  signature:
284    ret: none
285    args: [ ref, b32, field_id ]
286  clear_flags: [ "can_throw", "no_dce", "require_state", "call", "runtime_call", "heap_inv", "barrier", "acc_write"]
287  set_flags: [ "store", "no_dst" ]
288  is_stub: false
289  additional_temps: 0
290  codegen_arch: []
291  need_nullcheck: []
292  is_fastpath: false
293  need_param_locations: false
294
295- name: AbckitStoreObjectWide
296  space: abckit
297  class_name: "StoreObject"
298  method_name: "stobj.64"
299  compiler_only: true
300  private: false
301  static: true
302  safepoint_after_call: false
303  signature:
304    ret: none
305    args: [ ref, b64, field_id ]
306  clear_flags: [ "can_throw", "no_dce", "require_state", "call", "runtime_call", "heap_inv", "barrier", "acc_write"]
307  set_flags: [ "store", "no_dst" ]
308  is_stub: false
309  additional_temps: 0
310  codegen_arch: []
311  need_nullcheck: []
312  is_fastpath: false
313  need_param_locations: false
314
315- name: AbckitStoreObjectObject
316  space: abckit
317  class_name: "StoreObject"
318  method_name: "stobj.obj"
319  compiler_only: true
320  private: false
321  static: true
322  safepoint_after_call: false
323  signature:
324    ret: none
325    args: [ ref, ref, field_id ]
326  clear_flags: [ "can_throw", "no_dce", "require_state", "call", "runtime_call", "heap_inv", "barrier", "acc_write"]
327  set_flags: [ "store", "no_dst" ]
328  is_stub: false
329  additional_temps: 0
330  codegen_arch: []
331  need_nullcheck: []
332  is_fastpath: false
333  need_param_locations: false
334
335- name: AbckitLoadStatic
336  space: abckit
337  class_name: "LoadStatic"
338  method_name: "ldstatic"
339  compiler_only: true
340  private: false
341  static: true
342  safepoint_after_call: false
343  signature:
344    ret: b32
345    args: [ field_id ]
346  clear_flags: [ "can_throw", "no_dce", "require_state", "call", "runtime_call", "heap_inv", "barrier", "acc_read"]
347  set_flags: [ "load" ]
348  is_stub: false
349  additional_temps: 0
350  codegen_arch: []
351  need_nullcheck: []
352  is_fastpath: false
353  need_param_locations: false
354
355- name: AbckitLoadStaticWide
356  space: abckit
357  class_name: "LoadStatic"
358  method_name: "ldstatic.64"
359  compiler_only: true
360  private: false
361  static: true
362  safepoint_after_call: false
363  signature:
364    ret: b64
365    args: [ field_id ]
366  clear_flags: [ "can_throw", "no_dce", "require_state", "call", "runtime_call", "heap_inv", "barrier", "acc_read"]
367  set_flags: [ "load" ]
368  is_stub: false
369  additional_temps: 0
370  codegen_arch: []
371  need_nullcheck: []
372  is_fastpath: false
373  need_param_locations: false
374
375- name: AbckitLoadStaticObject
376  space: abckit
377  class_name: "LoadStatic"
378  method_name: "ldstatic.obj"
379  compiler_only: true
380  private: false
381  static: true
382  safepoint_after_call: false
383  signature:
384    ret: ref
385    args: [ field_id ]
386  clear_flags: [ "can_throw", "no_dce", "require_state", "call", "runtime_call", "heap_inv", "barrier", "acc_read"]
387  set_flags: [ "load" ]
388  is_stub: false
389  additional_temps: 0
390  codegen_arch: []
391  need_nullcheck: []
392  is_fastpath: false
393  need_param_locations: false
394
395- name: AbckitStoreStatic
396  space: abckit
397  class_name: "StoreStatic"
398  method_name: "ststatic"
399  compiler_only: true
400  private: false
401  static: true
402  safepoint_after_call: false
403  signature:
404    ret: none
405    args: [ b32, field_id ]
406  clear_flags: [ "can_throw", "no_dce", "require_state", "call", "runtime_call", "heap_inv", "barrier", "acc_write"]
407  set_flags: [ "store", "no_dst" ]
408  is_stub: false
409  additional_temps: 0
410  codegen_arch: []
411  need_nullcheck: []
412  is_fastpath: false
413  need_param_locations: false
414
415- name: AbckitStoreStaticWide
416  space: abckit
417  class_name: "StoreStatic"
418  method_name: "ststatic.64"
419  compiler_only: true
420  private: false
421  static: true
422  safepoint_after_call: false
423  signature:
424    ret: none
425    args: [ b64, field_id ]
426  clear_flags: [ "can_throw", "no_dce", "require_state", "call", "runtime_call", "heap_inv", "barrier", "acc_write"]
427  set_flags: [ "store", "no_dst" ]
428  is_stub: false
429  additional_temps: 0
430  codegen_arch: []
431  need_nullcheck: []
432  is_fastpath: false
433  need_param_locations: false
434
435- name: AbckitStoreStaticObject
436  space: abckit
437  class_name: "StoreStatic"
438  method_name: "ststatic.obj"
439  compiler_only: true
440  private: false
441  static: true
442  safepoint_after_call: false
443  signature:
444    ret: none
445    args: [ ref, field_id ]
446  clear_flags: [ "can_throw", "no_dce", "require_state", "call", "runtime_call", "heap_inv", "barrier", "acc_write"]
447  set_flags: [ "store", "no_dst" ]
448  is_stub: false
449  additional_temps: 0
450  codegen_arch: []
451  need_nullcheck: []
452  is_fastpath: false
453  need_param_locations: false
454
455- name: AbckitStoreArray
456  space: abckit
457  class_name: "StoreArray"
458  method_name: "starr"
459  compiler_only: true
460  private: false
461  static: true
462  safepoint_after_call: false
463  signature:
464    ret: none
465    args: [ ref, i32, i32 ]
466  clear_flags: [ "can_throw", "require_state", "call", "runtime_call", "heap_inv", "barrier", "acc_write"]
467  set_flags: [ "store", "no_dst" ]
468  is_stub: false
469  additional_temps: 0
470  codegen_arch: []
471  need_nullcheck: []
472  is_fastpath: false
473  need_param_locations: false
474
475- name: AbckitStoreArrayWide
476  space: abckit
477  class_name: "StoreArray"
478  method_name: "starr.64"
479  compiler_only: true
480  private: false
481  static: true
482  safepoint_after_call: false
483  signature:
484    ret: none
485    args: [ ref, i32, i64 ]
486  clear_flags: [ "can_throw", "require_state", "call", "runtime_call", "heap_inv", "barrier", "acc_write"]
487  set_flags: [ "store", "no_dst" ]
488  is_stub: false
489  additional_temps: 0
490  codegen_arch: []
491  need_nullcheck: []
492  is_fastpath: false
493  need_param_locations: false
494
495- name: AbckitStoreArrayObject
496  space: abckit
497  class_name: "StoreArray"
498  method_name: "starr.obj"
499  compiler_only: true
500  private: false
501  static: true
502  safepoint_after_call: false
503  signature:
504    ret: none
505    args: [ ref, i32, ref ]
506  clear_flags: [ "can_throw", "require_state", "call", "runtime_call", "heap_inv", "barrier", "acc_write"]
507  set_flags: [ "store", "no_dst" ]
508  is_stub: false
509  additional_temps: 0
510  codegen_arch: []
511  need_nullcheck: []
512  is_fastpath: false
513  need_param_locations: false
514
515- name: AbckitLoadArray
516  space: abckit
517  class_name: "LoadArray"
518  method_name: "ldarr"
519  compiler_only: true
520  private: false
521  static: true
522  safepoint_after_call: false
523  signature:
524    ret: i32
525    args: [ i32, ref ]
526  clear_flags: [ "can_throw", "no_dce", "require_state", "call", "runtime_call", "heap_inv", "barrier"]
527  set_flags: [ "load" ]
528  is_stub: false
529  additional_temps: 0
530  codegen_arch: []
531  need_nullcheck: []
532  is_fastpath: false
533  need_param_locations: false
534
535- name: AbckitLoadArrayWide
536  space: abckit
537  class_name: "LoadArray"
538  method_name: "ldarr.64"
539  compiler_only: true
540  private: false
541  static: true
542  safepoint_after_call: false
543  signature:
544    ret: i64
545    args: [ i32, ref ]
546  clear_flags: [ "can_throw", "no_dce", "require_state", "call", "runtime_call", "heap_inv", "barrier"]
547  set_flags: [ "load" ]
548  is_stub: false
549  additional_temps: 0
550  codegen_arch: []
551  need_nullcheck: []
552  is_fastpath: false
553  need_param_locations: false
554
555- name: AbckitLoadArrayObject
556  space: abckit
557  class_name: "LoadArray"
558  method_name: "ldarr.obj"
559  compiler_only: true
560  private: false
561  static: true
562  safepoint_after_call: false
563  signature:
564    ret: ref
565    args: [ i32, ref ]
566  clear_flags: [ "can_throw", "no_dce", "require_state", "call", "runtime_call", "heap_inv", "barrier"]
567  set_flags: [ "load" ]
568  is_stub: false
569  additional_temps: 0
570  codegen_arch: []
571  need_nullcheck: []
572  is_fastpath: false
573  need_param_locations: false
574
575
576- name: AbckitEquals
577  space: abckit
578  class_name: "Equals"
579  method_name: "ets.equals"
580  compiler_only: true
581  private: false
582  static: true
583  safepoint_after_call: false
584  signature:
585    ret: i32
586    args: [ ref, ref ]
587  clear_flags: ["acc_read", "require_state", "can_throw", "heap_inv", "no_dce", "no_cse", "no_hoist"]
588  set_flags: ["commutative"]
589  is_stub: false
590  additional_temps: 0
591  codegen_arch: []
592  need_nullcheck: []
593  is_fastpath: false
594  need_param_locations: false
595
596- name: AbckitIsUndefined
597  space: abckit
598  class_name: "IsUndefined"
599  method_name: "ets.isundefined"
600  compiler_only: true
601  private: false
602  static: true
603  safepoint_after_call: false
604  signature:
605    ret: u1
606    args: [ ref ]
607  clear_flags: [ "require_state", "call", "heap_inv", "barrier", "can_throw", "no_dce", "no_hoist", "no_cse"]
608  set_flags: []
609  is_stub: false
610  additional_temps: 0
611  codegen_arch: []
612  need_nullcheck: []
613  is_fastpath: false
614  need_param_locations: false
615
616# - name: AbckitLaunchShort
617#   space: abckit
618#   class_name: "Lanch"
619#   method_name: "launch.short"
620#   compiler_only: true
621#   private: false
622#   static: true
623#   safepoint_after_call: false
624#   signature:
625#     ret: top
626#     args: [ top, top, method_id ]
627#   clear_flags: [ "require_state", "heap_inv" ]
628#   set_flags: [ "alloc", "mem_barrier" ]
629#   is_stub: false
630#   additional_temps: 0
631#   codegen_arch: []
632#   need_nullcheck: []
633#   is_fastpath: false
634#   need_param_locations: false
635
636# - name: AbckitLaunch
637#   space: abckit
638#   class_name: "Lanch"
639#   method_name: "launch"
640#   compiler_only: true
641#   private: false
642#   static: true
643#   safepoint_after_call: false
644#   signature:
645#     ret: top
646#     args: [ top, top, top, top, method_id ]
647#   clear_flags: [ "require_state", "heap_inv" ]
648#   set_flags: [ "alloc", "mem_barrier" ]
649#   is_stub: false
650#   additional_temps: 0
651#   codegen_arch: []
652#   need_nullcheck: []
653#   is_fastpath: false
654#   need_param_locations: false
655
656# - name: AbckitLaunchRange
657#   space: abckit
658#   class_name: "Lanch"
659#   method_name: "launch.range"
660#   compiler_only: true
661#   private: false
662#   static: true
663#   safepoint_after_call: false
664#   signature:
665#     ret: top
666#     args: [ top, method_id ]
667#   clear_flags: [ "require_state", "heap_inv" ]
668#   set_flags: [ "alloc", "mem_barrier" ]
669#   is_stub: false
670#   additional_temps: 0
671#   codegen_arch: []
672#   need_nullcheck: []
673#   is_fastpath: false
674#   need_param_locations: false
675
676# - name: AbckitLaunchVirtShort
677#   space: abckit
678#   class_name: "LanchVirt"
679#   method_name: "launch.virt.short"
680#   compiler_only: true
681#   private: false
682#   static: true
683#   safepoint_after_call: false
684#   signature:
685#     ret: top
686#     args: [ top, top, method_id ]
687#   clear_flags: [ "require_state", "heap_inv" ]
688#   set_flags: [ "alloc", "mem_barrier" ]
689#   is_stub: false
690#   additional_temps: 0
691#   codegen_arch: []
692#   need_nullcheck: []
693#   is_fastpath: false
694#   need_param_locations: false
695
696# - name: AbckitLaunchVirt
697#   space: abckit
698#   class_name: "LanchVirt"
699#   method_name: "launch.virt"
700#   compiler_only: true
701#   private: false
702#   static: true
703#   safepoint_after_call: false
704#   signature:
705#     ret: top
706#     args: [ top, top, top, top, method_id ]
707#   clear_flags: [ "require_state", "heap_inv" ]
708#   set_flags: [ "alloc", "mem_barrier" ]
709#   is_stub: false
710#   additional_temps: 0
711#   codegen_arch: []
712#   need_nullcheck: []
713#   is_fastpath: false
714#   need_param_locations: false
715
716# - name: AbckitLaunchVirtRange
717#   space: abckit
718#   class_name: "LanchVirt"
719#   method_name: "launch.virt.range"
720#   compiler_only: true
721#   private: false
722#   static: true
723#   safepoint_after_call: false
724#   signature:
725#     ret: top
726#     args: [ top, method_id ]
727#   clear_flags: [ "require_state", "heap_inv" ]
728#   set_flags: [ "alloc", "mem_barrier" ]
729#   is_stub: false
730#   additional_temps: 0
731#   codegen_arch: []
732#   need_nullcheck: []
733#   is_fastpath: false
734#   need_param_locations: false