1/* kvx-dis.h -- Header file kvx-dis.c 2 Copyright (C) 2009-2024 Free Software Foundation, Inc. 3 Contributed by Kalray SA. 4 5 This file is part of the GNU opcodes library. 6 7 This library is free software; you can redistribute it and/or modify 8 it under the terms of the GNU General Public License as published by 9 the Free Software Foundation; either version 3, or (at your option) 10 any later version. 11 12 It is distributed in the hope that it will be useful, but WITHOUT 13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 14 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 15 License for more details. 16 17 You should have received a copy of the GNU General Public License 18 along with this program; see the file COPYING3. If not, 19 see <http://www.gnu.org/licenses/>. */ 20 21#ifndef _KV3_DIS_H_ 22#define _KV3_DIS_H_ 23 24#include "dis-asm.h" 25 26#define KVX_GPR_REG_SP 12 27#define KVX_GPR_REG_FP 14 28 29enum kvx_prologue_epilogue_insn_type 30{ 31 KVX_PROL_EPIL_INSN_SD, 32 KVX_PROL_EPIL_INSN_SQ, 33 KVX_PROL_EPIL_INSN_SO, 34 KVX_PROL_EPIL_INSN_GET_RA, 35 KVX_PROL_EPIL_INSN_ADD_FP, 36 KVX_PROL_EPIL_INSN_ADD_SP, 37 KVX_PROL_EPIL_INSN_RESTORE_SP_FROM_FP, 38 KVX_PROL_EPIL_INSN_GOTO, 39 KVX_PROL_EPIL_INSN_IGOTO, 40 KVX_PROL_EPIL_INSN_CB, 41 KVX_PROL_EPIL_INSN_RET, 42 KVX_PROL_EPIL_INSN_CALL, 43}; 44 45struct kvx_prologue_epilogue_insn 46{ 47 enum kvx_prologue_epilogue_insn_type insn_type; 48 uint64_t immediate; 49 int gpr_reg[3]; 50 int nb_gprs; 51}; 52 53struct kvx_prologue_epilogue_bundle 54{ 55 struct kvx_prologue_epilogue_insn insn[6]; 56 int nb_insn; 57}; 58 59int decode_prologue_epilogue_bundle (bfd_vma memaddr, 60 struct disassemble_info *info, 61 struct kvx_prologue_epilogue_bundle *pb); 62 63void parse_kvx_dis_option (const char *option); 64 65#endif 66