rizin/librz/analysis/p/analysis_tricore.c
Florian Märkl 79a17ef482
Remove RzAnalysisPlugin.set_reg_profile (#2091)
Refactored all plugins to use get_reg_profile instead, which simply
returns the register profile instead of applying it as a side-effect.
2021-12-11 10:18:31 +01:00

92 lines
2 KiB
C

// SPDX-FileCopyrightText: 2020 curly <bhattrishi8@gmail.com>
// SPDX-License-Identifier: LGPL-3.0-only
#include <string.h>
#include <rz_types.h>
#include <rz_lib.h>
#include <rz_asm.h>
#include <rz_analysis.h>
//#include "../../asm/arch/tricore/gnu/tricore-opc.c"
static char *get_reg_profile(RzAnalysis *analysis) {
const char *p =
"=PC pc\n"
"=SP a10\n"
"=A0 a0\n"
"gpr p0 .64 0 0\n"
"gpr a0 .32 0 0\n"
"gpr a1 .32 4 0\n"
"gpr p2 .64 8 0\n"
"gpr a2 .32 8 0\n"
"gpr a3 .32 12 0\n"
"gpr p4 .64 16 0\n"
"gpr a4 .32 16 0\n"
"gpr a5 .32 20 0\n"
"gpr p6 .64 24 0\n"
"gpr a6 .32 24 0\n"
"gpr a7 .32 28 0\n"
"gpr p8 .64 32 0\n"
"gpr a8 .32 32 0\n"
"gpr a9 .32 36 0\n"
"gpr p10 .64 40 0\n"
"gpr a10 .32 40 0\n"
"gpr a11 .32 44 0\n"
"gpr p12 .64 48 0\n"
"gpr a12 .32 48 0\n"
"gpr a13 .32 52 0\n"
"gpr p14 .64 56 0\n"
"gpr a14 .32 56 0\n"
"gpr a15 .32 60 0\n"
"gpr e0 .64 64 0\n"
"gpr d0 .32 64 0\n"
"gpr d1 .32 68 0\n"
"gpr e2 .64 72 0\n"
"gpr d2 .32 72 0\n"
"gpr d3 .32 76 0\n"
"gpr e4 .64 80 0\n"
"gpr d4 .32 80 0\n"
"gpr d5 .32 84 0\n"
"gpr e6 .64 88 0\n"
"gpr d6 .32 88 0\n"
"gpr d7 .32 92 0\n"
"gpr e8 .64 96 0\n"
"gpr d8 .32 96 0\n"
"gpr d9 .32 100 0\n"
"gpr e10 .64 104 0\n"
"gpr d10 .32 104 0\n"
"gpr d11 .32 108 0\n"
"gpr e12 .64 112 0\n"
"gpr d12 .32 112 0\n"
"gpr d13 .32 114 0\n"
"gpr e14 .64 118 0\n"
"gpr d14 .32 118 0\n"
"gpr d15 .32 120 0\n"
"gpr PSW .32 124 0\n"
"gpr PCXI .32 128 0\n"
"gpr FCX .32 132 0\n"
"gpr LCX .32 136 0\n"
"gpr ISP .32 140 0\n"
"gpr ICR .32 144 0\n"
"gpr PIPN .32 148 0\n"
"gpr BIV .32 152 0\n"
"gpr BTV .32 156 0\n"
"gpr pc .32 160 0\n";
return strdup(p);
}
RzAnalysisPlugin rz_analysis_plugin_tricore = {
.name = "tricore",
.desc = "TRICORE analysis plugin",
.license = "LGPL3",
.arch = "tricore",
.bits = 32,
.get_reg_profile = get_reg_profile,
};
#ifndef RZ_PLUGIN_INCORE
RZ_API RzLibStruct rizin_plugin = {
.type = RZ_LIB_TYPE_ANALYSIS,
.data = &rz_analysis_plugin_tricore,
.version = RZ_VERSION
};
#endif