Refactored all plugins to use get_reg_profile instead, which simply returns the register profile instead of applying it as a side-effect.
92 lines
2 KiB
C
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
|