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. 13require 'ostruct' 14 15abckit_scripts = File.dirname(__FILE__) 16abckit_root = File.expand_path('../', abckit_scripts) 17opcodes_path = File.expand_path('include/c/isa/isa_dynamic.h', abckit_root) 18 19Opcodes = [] 20File.open(opcodes_path, 'r').read.split() 21 .select{ |opcode| 22 opcode.start_with?('ABCKIT_ISA_API_DYNAMIC_OPCODE_') 23 }.each{ |opcode| 24 res = OpenStruct.new 25 res.abckit_opcode = opcode.chop! 26 res.bc_opcode = opcode.delete_prefix('ABCKIT_ISA_API_DYNAMIC_OPCODE_').split('_').map!{|str| str.downcase }.join('.') 27 Opcodes.append(res) 28 } 29