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% Runtime::intrinsics.each do |intrinsic| 15- name: <%= intrinsic.name %> 16 space: <%= intrinsic.space %> 17 class_name: <%= intrinsic.class_name %> 18 method_name: <%= intrinsic.method_name %> 19 safepoint_after_call: <%= intrinsic.respond_to?(:safepoint_after_call) && intrinsic.safepoint_after_call %> 20 private: <%= intrinsic.respond_to?(:private) %> 21 signature: 22 ret: "<%= intrinsic.signature.ret %>" 23 args: <%= intrinsic.signature.args %> 24 static: <%= intrinsic.respond_to?(:static) && intrinsic.static %> 25% if intrinsic.has_impl? 26 impl: <%= intrinsic.wrapper_impl %> 27 impl_signature: 28 ret: "<%= get_ret_effective_type(intrinsic.signature.ret) %>" 29 args: <%= (!intrinsic.static ? [get_effective_type(intrinsic.class_name)] : []) + intrinsic.signature.args.map { |t| get_effective_type(t) }.flatten %> 30% if intrinsic.need_abi_wrapper? 31 orig_impl: <%= intrinsic.impl %> 32 orig_impl_signature: 33 ret: "<%= get_ret_type(intrinsic.signature.ret) %>" 34 args: <%= (!intrinsic.static ? [get_type(intrinsic.class_name)] : []) + intrinsic.signature.args.map { |t| get_type(t) }.flatten %> 35% end 36 need_decl: <%= intrinsic.impl.start_with?(Runtime::intrinsics_namespace) %> 37% end 38% if intrinsic.respond_to?(:fast_path) 39 fast_path: <%= intrinsic.fast_path %> 40% end 41 clear_flags: <%= intrinsic.respond_to?(:clear_flags) ? intrinsic.clear_flags : [] %> 42 set_flags: <%= intrinsic.respond_to?(:set_flags) ? intrinsic.set_flags : [] %> 43 additional_temps: <%= intrinsic.respond_to?(:additional_temps) ? intrinsic.additional_temps : 0 %> 44% if intrinsic.respond_to?(:codegen_func) 45 codegen_func: <%= intrinsic.codegen_func %> 46 codegen_arch: <%= intrinsic.respond_to?(:codegen_arch) ? intrinsic.codegen_arch : ['amd64', 'arm32', 'arm64'] %> 47% if intrinsic.respond_to?(:can_encode_func) 48 can_encode_func: <%= intrinsic.can_encode_func %> 49% end 50% else 51 codegen_arch: <%= intrinsic.respond_to?(:codegen_arch) ? intrinsic.codegen_arch : [] %> 52% end 53 need_nullcheck: <%= intrinsic.respond_to?(:need_nullcheck) ? intrinsic.need_nullcheck : [] %> 54% end 55