Move the arm assembler plugin from asm to arch ##arch

* force 4 jobs in bin/d
This commit is contained in:
pancake 2022-11-29 21:48:21 +01:00 committed by pancake
parent 28ca83cd73
commit 7ca2004fc9
64 changed files with 117 additions and 118 deletions

2
.gitignore vendored
View File

@ -66,6 +66,8 @@ libr/include/r_version.h
libr/include/r_version.h.tmp
libr/asm/arch/arm/v35arm64/arch-arm64
libr/asm/arch/arm/v35arm64/arch-armv7
libr/arch/p/arm/v35arm64/arch-arm64
libr/arch/p/arm/v35arm64/arch-armv7
shlr/capstone/
shlr/java/out
shlr/java/out.exe

View File

@ -1,5 +1,5 @@
STATIC="
asm.arm
arch.arm
arch.x86_nz
anal.bf
anal.avr

View File

@ -38,7 +38,7 @@ anal.x86_simple
anal.xap
anal.z80
arch.sh
asm.arm
arch.arm
asm.mips_cs
asm.rar
asm.sparc

View File

@ -44,8 +44,6 @@ anal.ppc_cs
anal.ppc_gnu
anal.propeller
anal.pyc
arch.any_as
arch.riscv
anal.riscv_cs
anal.s390_cs
anal.s390_gnu
@ -71,8 +69,9 @@ arch.rsp
arch.pickle
arch.sh
arch.v810
asm.arm
asm.arm_as
arch.arm
arch.any_as
arch.riscv
asm.null
asm.ppc_as
asm.vasm

View File

@ -1,5 +1,5 @@
STATIC="
asm.arm
arch.arm
arch.x86_nz
asm.mips_cs
anal.avr

View File

@ -1,5 +1,5 @@
STATIC="
asm.arm
arch.arm
arch.x86_nz
anal.bf
anal.null

View File

@ -7,7 +7,7 @@
# do not build : asm.x86_nasm
STATIC="
asm.arm
arch.arm
arch.x86_nz
anal.bf
anal.null

View File

@ -62,10 +62,10 @@ arch.i4004
arch.amd29k
arch.pickle
esil.dummy
asm.arm
arch.arm
asm.null
asm.ppc_as
asm.arm_as
arch.any_as
asm.x86_as
arch.x86_nz
asm.x86_nasm

View File

@ -53,7 +53,7 @@ esil.dummy
asm.null
asm.ppc_as
anal.m68k_gnu
asm.arm_as
arch.any_as
asm.x86_as
arch.x86_nz
asm.x86_nasm

View File

@ -25,7 +25,7 @@ anal.xcore_cs
arch.null
arch.i4004
esil.dummy
asm.arm
arch.arm
arch.x86_nz
bin.any
bin.bf

View File

@ -43,8 +43,8 @@ anal.propeller
arch.null
arch.i4004
esil.dummy
asm.arm
asm.arm_as
arch.arm
arch.any_as
asm.x86_as
arch.x86_nz
asm.x86_nasm

View File

@ -29,8 +29,8 @@ anal.propeller
arch.null
arch.i4004
esil.dummy
asm.arm
asm.arm_as
arch.arm
arch.any_as
asm.x86_as
arch.x86_nz
asm.x86_nasm

View File

@ -37,11 +37,11 @@ arch.rsp
arch.i4004
arch.v810
esil.dummy
asm.arm
arch.arm
asm.null
asm.ppc_as
anal.m68k_gnu
asm.arm_as
arch.any_as
asm.x86_as
arch.x86_nz
asm.x86_nasm

View File

@ -7,7 +7,7 @@
# do not build : asm.x86_nasm
STATIC="
asm.arm
arch.arm
arch.x86_nz
anal.null
anal.x86_cs

View File

@ -1,6 +1,6 @@
STATIC="
arch.x86_nz
asm.arm
arch.arm
asm.null
anal.dalvik
anal.wasm

View File

@ -19,7 +19,7 @@ LDFLAGS+=$(LINK)
.PHONY: all main plugins libs ${EXTRA_CLEAN}
main:
$(MAKE) -C d
$(MAKE) -j 4 -C d
$(MAKE) all
plugins: ${LIBSO} ${LIBAR}
@ -81,7 +81,7 @@ tests-esil:
.PHONY: do doclean
do:
$(MAKE) -C ../asm/arch/arm/v35arm64
$(MAKE) -C ../arch/p/arm/v35arm64
$(MAKE) -C d
doclean:

View File

@ -5,8 +5,6 @@
#include <r_util.h>
#include <r_list.h>
#define aprintf(format, ...) if (anal->verbose) eprintf (format, __VA_ARGS__)
#define JMPTBL_MAXSZ 512
static void apply_case(RAnal *anal, RAnalBlock *block, ut64 switch_addr, ut64 offset_sz, ut64 case_addr, ut64 id, ut64 case_addr_loc) {
@ -59,11 +57,11 @@ static inline void analyze_new_case(RAnal *anal, RAnalFunction *fcn, RAnalBlock
if (block) {
if (block->addr != ip) {
st64 d = block->addr - ip;
R_LOG_ERROR ("Cannot find basic block for switch case at 0x%08"PFMT64x" bbdelta = %d", ip, (int)R_ABS (d));
R_LOG_WARN ("Cannot find basic block for switch case at 0x%08"PFMT64x" bbdelta = %d", ip, (int)R_ABS (d));
block = NULL;
return;
} else {
R_LOG_ERROR ("Inconsistent basicblock storage issue at 0x%08"PFMT64x, ip);
R_LOG_WARN ("Inconsistent basicblock storage issue at 0x%08"PFMT64x, ip);
}
} else {
R_LOG_ERROR ("Major disaster at 0x%08"PFMT64x, ip);
@ -82,15 +80,15 @@ R_API bool try_walkthrough_casetbl(RAnal *anal, RAnalFunction *fcn, RAnalBlock *
jmptbl_size = JMPTBL_MAXSZ;
}
if (jmptbl_loc == UT64_MAX) {
aprintf ("Warning: Invalid JumpTable location 0x%08" PFMT64x "\n", jmptbl_loc);
R_LOG_DEBUG ("Invalid JumpTable location 0x%08" PFMT64x, jmptbl_loc);
return false;
}
if (casetbl_loc == UT64_MAX) {
aprintf ("Warning: Invalid CaseTable location 0x%08" PFMT64x "\n", jmptbl_loc);
R_LOG_DEBUG ("Invalid CaseTable location 0x%08" PFMT64x, jmptbl_loc);
return false;
}
if (jmptbl_size < 1 || jmptbl_size > ST32_MAX) {
aprintf ("Warning: Invalid JumpTable size at 0x%08" PFMT64x "\n", ip);
R_LOG_DEBUG ("Invalid JumpTable size at 0x%08" PFMT64x, ip);
return false;
}
ut64 jmpptr, case_idx, jmpptr_idx;
@ -172,11 +170,11 @@ R_API bool try_walkthrough_jmptbl(RAnal *anal, RAnalFunction *fcn, RAnalBlock *b
jmptbl_size = JMPTBL_MAXSZ;
}
if (jmptbl_loc == UT64_MAX) {
aprintf ("Warning: Invalid JumpTable location 0x%08"PFMT64x"\n", jmptbl_loc);
R_LOG_DEBUG ("Invalid JumpTable location 0x%08"PFMT64x, jmptbl_loc);
return false;
}
if (jmptbl_size < 1 || jmptbl_size > ST32_MAX) {
aprintf ("Warning: Invalid JumpTable size at 0x%08"PFMT64x"\n", ip);
R_LOG_DEBUG ("Invalid JumpTable size at 0x%08"PFMT64x, ip);
return false;
}
ut64 jmpptr, offs;
@ -460,7 +458,7 @@ R_API bool try_get_jmptbl_info(RAnal *anal, RAnalFunction *fcn, ut64 addr, RAnal
}
// predecessor must be a conditional jump
if (!prev_bb || !prev_bb->jump || !prev_bb->fail) {
aprintf ("Warning: [anal.jmp.tbl] Missing predecesessor cjmp bb at 0x%08"PFMT64x"\n", addr);
R_LOG_DEBUG ("[anal.jmp.tbl] Missing predecesessor cjmp bb at 0x%08"PFMT64x, addr);
return false;
}

View File

@ -142,13 +142,13 @@ r_anal_sources = [
'arch/msp430/msp430_disas.c',
'arch/propeller/propeller_disas.c',
'../asm/arch/amd29k/amd29k.c',
'../asm/arch/arm/winedbg/be_arm.c',
'../asm/arch/arm/gnu/floatformat.c',
'../asm/arch/arm/gnu/arm-dis.c',
'../asm/arch/arm/aarch64/aarch64-dis.c',
'../asm/arch/arm/aarch64/aarch64-dis-2.c',
'../asm/arch/arm/aarch64/aarch64-opc.c',
'../asm/arch/arm/aarch64/aarch64-opc-2.c',
'../arch/p/arm/winedbg/be_arm.c',
'../arch/p/arm/gnu/floatformat.c',
'../arch/p/arm/gnu/arm-dis.c',
'../arch/p/arm/aarch64/aarch64-dis.c',
'../arch/p/arm/aarch64/aarch64-dis-2.c',
'../arch/p/arm/aarch64/aarch64-opc.c',
'../arch/p/arm/aarch64/aarch64-opc-2.c',
'../asm/arch/avr/avr_disasm.c',
'../asm/arch/avr/format.c',
'../asm/arch/avr/disasm.c',

View File

@ -6,11 +6,11 @@
/* DEPRECATE ?? */
#include "wine-arm.h"
#include "../asm/arch/arm/asm-arm.h"
#include "../asm/arch/arm/winedbg/be_arm.h"
#include "../arch/p/arm/asm-arm.h"
#include "../arch/p/arm/winedbg/be_arm.h"
#include "./anal_arm_hacks.inc"
#include "disas-asm.h"
#include "../../asm/arch/arm/gnu/opcode-arm.h"
#include "../../arch/p/arm/gnu/opcode-arm.h"
static R_TH_LOCAL char *oldcpu = NULL;
static R_TH_LOCAL int oldcpucode = 0;

View File

@ -1,4 +1,4 @@
/* radare2 - LGPL - Copyright 2020-2021 - aemitt, pancake */
/* radare2 - LGPL - Copyright 2020-2022 - aemitt, pancake */
#include <r_anal.h>
#include <r_lib.h>
@ -64,7 +64,7 @@ static bool is_mem(OperandClass op) {
#if 0
// TODO: Add support for thumb2 disassembler
// #include "armv7.h"
#include "../../asm/arch/arm/v35arm64/arch-armv7/armv7_disasm/armv7.c"
#include "../../arch/p/arm/v35arm64/arch-armv7/armv7_disasm/armv7.c"
R_API int disassemble_armv7(RAsm *a, RAsmOp *op, const ut8 *buf, int len) {
Instruction inst = {0};
char output[256];

View File

@ -1,15 +1,15 @@
N=anal_arm_gnu
OBJ_ARM=anal_arm_gnu.o
OBJ_ARM+=../../asm/arch/arm/winedbg/be_arm.o
OBJ_ARM+=../../arch/p/arm/winedbg/be_arm.o
#arm32
OBJ_ARM+=../../asm/arch/arm/gnu/arm-dis.o
OBJ_ARM+=../../asm/arch/arm/gnu/floatformat.o
OBJ_ARM+=../../arch/p/arm/gnu/arm-dis.o
OBJ_ARM+=../../arch/p/arm/gnu/floatformat.o
#arm64
OBJ_ARM+=../../asm/arch/arm/aarch64/aarch64-dis.o
OBJ_ARM+=../../asm/arch/arm/aarch64/aarch64-dis-2.o
OBJ_ARM+=../../asm/arch/arm/aarch64/aarch64-opc.o
OBJ_ARM+=../../asm/arch/arm/aarch64/aarch64-opc-2.o
OBJ_ARM+=../../arch/p/arm/aarch64/aarch64-dis.o
OBJ_ARM+=../../arch/p/arm/aarch64/aarch64-dis-2.o
OBJ_ARM+=../../arch/p/arm/aarch64/aarch64-opc.o
OBJ_ARM+=../../arch/p/arm/aarch64/aarch64-opc-2.o
STATIC_OBJ+=${OBJ_ARM}
TARGET_ARM=$(N).${EXT_SO}

View File

@ -1,14 +1,14 @@
include ../config.mk
N=anal_arm_v35
V35ARM64_HOME=$(LIBR)/asm/arch/arm/v35arm64/
V35ARM64_HOME=$(LIBR)/arch/p/arm/v35arm64/
include ../asm/arch/arm/v35arm64/deps-arm64.mk
include ../arch/p/arm/v35arm64/deps-arm64.mk
OBJ_ARM_V35=anal_arm_v35.o
# OBJ_ARM_V35+=${V35ARM64_LINK}
OBJ_ARM_V35+=../../asm/arch/arm/v35arm64/arch-arm64/disassembler/*.o
# OBJ_ARM_V35 += ../../asm/arch/arm/v35arm64/arm64dis.$(EXT_AR)
#OBJ_ARM_V35+=../../asm/arch/arm/v35arm64/armv7dis.$(EXT_AR)
OBJ_ARM_V35+=../../arch/p/arm/v35arm64/arch-arm64/disassembler/*.o
# OBJ_ARM_V35 += ../../arch/p/arm/v35arm64/arm64dis.$(EXT_AR)
# OBJ_ARM_V35+=../../arch/p/arm/v35arm64/armv7dis.$(EXT_AR)
STATIC_OBJ+=${OBJ_ARM_V35}
CFLAGS+=$(V35ARM64_CFLAGS)

View File

@ -1,4 +1,5 @@
include ../config.mk
include p/capstone.mk
NAME=r_arch
R2DEPS+=r_util r_reg
@ -7,13 +8,18 @@ CFLAGS+=-DR2_PLUGIN_INCORE
CFLAGS:=-I.. -I$(LTOP)/asm/arch/include -DR2_PLUGIN_INCORE -Iarch -I$(TOP)/shlr $(CFLAGS)
.PHONY: pre
pre: libr_arch.$(EXT_SO) libr_arch.$(EXT_AR)
$(MAKE) -C ../asm/arch/arm/v35arm64
$(MAKE) -C p
pre: p v35pre
$(MAKE) libr_arch.$(EXT_SO)
$(MAKE) libr_arch.$(EXT_AR)
v35pre:
$(MAKE) -C p/arm/v35arm64
include $(STATIC_ARCH_PLUGINS)
STATIC_OBJS=$(subst ..,p/..,$(subst arch_,p/arch_,$(STATIC_OBJ)))
OBJS=arch.o arch_config.o arch_switch.o arch_op.o arch_value.o arch_cond.o arch_session.o
OBJS=arch.o arch_config.o arch_switch.o arch_op.o
OBJS+=arch_value.o arch_cond.o arch_session.o
OBJS+=${STATIC_OBJS}
include ../rules.mk

View File

@ -7,6 +7,9 @@ r_arch_sources = [
'arch_cond.c',
'arch_value.c',
'p/null/plugin.c',
'p/arm/plugin.c',
'p/arm/armass.c',
'p/arm/armass64.c',
'p/any_as/plugin.c',
'p/i4004/plugin.c',
'p/amd29k/plugin.c',
@ -29,7 +32,8 @@ r_arch = library('r_arch', r_arch_sources,
c_args: library_cflags,
dependencies: [
r_util_dep,
r_reg_dep
r_reg_dep,
capstone_dep,
],
install: true,
implicit_include_directories: false,
@ -44,7 +48,10 @@ if get_option('blob')
r_arch_static = static_library('r_arch_static', r_arch_sources,
include_directories: [platform_inc, arch_inc],
c_args: library_cflags,
dependencies: [r_util_static_dep],
dependencies: [
r_util_static_dep,
capstone_static_dep,
],
install: true,
implicit_include_directories: false,
)

12
libr/arch/p/arm.mk Normal file
View File

@ -0,0 +1,12 @@
OBJ_ARMARCH=p/arm/plugin.o
OBJ_ARMARCH+=p/arm/armass64.o
OBJ_ARMARCH+=p/arm/armass.o
STATIC_OBJ+=${OBJ_ARMARCH}
TARGET_ARMARCH=arch_arm.${EXT_SO}
ALL_TARGETS+=${TARGET_ARMARCH}
${TARGET_ARMARCH}: ${OBJ_ARMARCH}
${CC} ${CFLAGS} $(call libname,arch_arm) $(CS_CFLAGS) \
-o arch_arm.${EXT_SO} ${OBJ_ARMARCH} $(CS_LDFLAGS)

View File

@ -811,7 +811,7 @@ dump_qualifier_sequence (const aarch64_opnd_qualifier_t *qualifier)
{
int i;
printf ("#### ");
for (i = 0; i < AARCH64_MAX_OPND_NUM; i++, ++qualifier)
for (i = 0; i < AARCH64_MAX_OPND_NUM; i++, qualifier++)
printf ("%s,", aarch64_get_qualifier_name (*qualifier));
printf ("\n");
}
@ -889,7 +889,7 @@ aarch64_find_best_match (const aarch64_inst *inst,
stop_at = num_opnds - 1;
/* For each pattern. */
for (i = 0; i < AARCH64_MAX_QLF_SEQ_NUM; ++i, ++qualifiers_list)
for (i = 0; i < AARCH64_MAX_QLF_SEQ_NUM; ++i, qualifiers_list++)
{
int j;
qualifiers = *qualifiers_list;
@ -913,7 +913,7 @@ aarch64_find_best_match (const aarch64_inst *inst,
break;
}
for (j = 0; j < num_opnds && j <= stop_at; ++j, ++qualifiers)
for (j = 0; j < num_opnds && j <= stop_at; j++, qualifiers++)
{
if (inst->operands[j].qualifier == AARCH64_OPND_QLF_NIL)
{
@ -959,9 +959,9 @@ aarch64_find_best_match (const aarch64_inst *inst,
dump_qualifier_sequence (qualifiers);
#endif
for (j = 0; j <= stop_at; ++j, ++qualifiers)
for (j = 0; j <= stop_at; j++, qualifiers++)
ret[j] = *qualifiers;
for (; j < AARCH64_MAX_OPND_NUM; ++j)
for (; j < AARCH64_MAX_OPND_NUM; j++)
ret[j] = AARCH64_OPND_QLF_NIL;
DEBUG_TRACE ("SUCCESS");

View File

@ -1,10 +1,11 @@
/* radare2 - BSD - Copyright 2013-2022 - pancake */
/* Copyright (C) 2008-2022 - pancake */
#include <r_arch.h>
#include <r_asm.h>
#include <r_lib.h>
#include <sdb/ht_uu.h>
#include "cs_version.h"
#include "../arch/arm/asm-arm.h"
#include "./cs_version.h"
#include "./asm-arm.h"
bool arm64ass(const char *str, ut64 addr, ut32 *op);
@ -15,17 +16,17 @@ static bool encode(RArchSession *s, RAnalOp *op, ut32 mask) {
ut32 opcode = UT32_MAX;
if (bits == 64) {
if (!arm64ass (op->mnemonic, op->addr, &opcode)) {
return -1;
return false;
}
} else {
opcode = armass_assemble (op->mnemonic, op->addr, is_thumb);
if (bits != 32 && bits != 16) {
R_LOG_ERROR ("ARM assembler only supports 16 or 32 bits");
return -1;
return false;
}
}
if (opcode == UT32_MAX) {
return -1;
return false;
}
ut8 opbuf[4];
const bool be = R_ARCH_CONFIG_IS_BIG_ENDIAN (s->config);
@ -56,9 +57,10 @@ static bool encode(RArchSession *s, RAnalOp *op, ut32 mask) {
}
r_anal_op_set_bytes (op, op->addr, opbuf, opsize);
// r_strbuf_setbin (&op->buf, opbuf, opsize);
return opsize;
return true;
}
#if 0
// old api
static int assemble(RAsm *a, RAsmOp *op, const char *buf) {
const int bits = a->config->bits;
@ -110,23 +112,23 @@ static int assemble(RAsm *a, RAsmOp *op, const char *buf) {
// XXX. thumb endian assembler needs no swap
return opsize;
}
#endif
RAsmPlugin r_asm_plugin_arm = {
RArchPlugin r_arch_plugin_arm = {
.name = "arm",
.desc = "Custom THUMB, ARM32, AARCH64 assembler for radare2",
.cpus = ",v8,cortex",
.license = "BSD",
.desc = "custom thumb, arm32 and arm64 assembler",
.author = "pancake",
.license = "LGPL3",
.arch = "arm",
.bits = 16 | 32 | 64,
.bits = R_SYS_BITS_PACK3 (16, 32, 64),
.endian = R_SYS_ENDIAN_LITTLE | R_SYS_ENDIAN_BIG,
.assemble = &assemble, // DEPRECATE
.encode = &encode,
};
#ifndef R2_PLUGIN_INCORE
R_API RLibStruct radare_plugin = {
.type = R_LIB_TYPE_ASM,
.data = &r_asm_plugin_arm,
.type = R_LIB_TYPE_ARCH,
.data = &r_arch_plugin_arm,
.version = R2_VERSION
};
#endif

View File

@ -8,16 +8,13 @@ CURDIR=p/
include $(TOP)/libr/config.mk
include p/capstone.mk
LDFLAGS+=${CS_LDFLAGS}
include $(STOP)/java/deps.mk
include $(STOP)/capstone.mk
.PHONY: alle plugins
alle:
$(MAKE) gperfs
$(MAKE) -C arch/arm/v35arm64
$(MAKE) plugins
SDB_PATH=../../../shlr/sdb

View File

@ -22,7 +22,7 @@
#include "mybfd.h"
#include "disas-asm.h"
// #include "disassemble.h"
#include "../../arm/gnu/floatformat.h"
#include "../../../arch/p/arm/gnu/floatformat.h"
#include "libiberty.h"
#include "opintl.h"
// #include "cpu-m68k.h"

View File

@ -8,16 +8,13 @@ r_asm_sources = [
'binutils_as.c',
join_paths('p','asm_null.c'),
join_paths('p','asm_arm_as.c'),
join_paths('p','asm_arm.c'),
#join_paths('p','asm_arm_winedbg.c'),
#join_paths('p','asm_gas.c'),
'arch/arm/gnu/floatformat.c',
'../arch/p/arm/gnu/floatformat.c',
join_paths('p','asm_ppc_as.c'),
join_paths('p','asm_x86_as.c'),
join_paths('p','asm_x86_nasm.c'),
# join_paths('p','asm_z80.c'),
join_paths('arch','arm','armass.c'),
join_paths('arch','arm','armass64.c'),
#join_paths('arch','arm','winedbg','be_arm.c'),
join_paths('arch','avr','avr_disasm.c'),
join_paths('arch','avr','format.c'),

View File

@ -1,22 +0,0 @@
# capstone
OBJ_ARMCS=asm_arm.o
OBJ_ARMCS+=../arch/arm/armass.o
OBJ_ARMCS+=../arch/arm/armass64.o
# OBJ_ARMCS+=../arch/arm/gnu/floatformat.o
include p/capstone.mk
#SHARED2_ARMCS=$(addprefix ../,${SHARED_ARMCS})
STATIC_OBJ+=${OBJ_ARMCS}
SHARED_OBJ+=${SHARED_ARMCS}
TARGET_ARMCS=asm_arm.${EXT_SO}
ifeq ($(WITHPIC),1)
ALL_TARGETS+=${TARGET_ARMCS}
${TARGET_ARMCS}: ${OBJ_ARMCS}
${CC} $(call libname,asm_arm) ${LDFLAGS} ${CFLAGS} ${CS_CFLAGS} \
-o ${TARGET_ARMCS} ${OBJ_ARMCS} ${CS_LDFLAGS}
endif

View File

@ -8,7 +8,7 @@ R2DEPS=r_util r_io r_socket r_magic r_syscall r_cons r_crypto r_fs
pre: $(LIBSO) $(LIBAR)
$(MAKE) -C p
$(MAKE) -C d
-$(MAKE) -j4 -C d
CFLAGS+=-DR2_PLUGIN_INCORE -Iformat -Imangling

View File

@ -27,7 +27,7 @@ DLLS+=setup4 setupx shell sound spooler storage sysclass sysdetmg
DLLS+=sysdm sysedit system systhunk tapi tapiaddr
DLLS+=toolhelp typelib umdm16 user ver whlp16t win32s16
DLLS+=win87em winaspi winnet16 winoldap winsock winspl16 wpsapd wpsuni
DLLS+=wpsunire wsasrv
# XXX DLLS+=wpsunire wsasrv
DLL_SDB=$(addsuffix .sdb,$(addprefix dll/,$(DLLS)))
all: $(DLL_SDB)
@ -57,7 +57,7 @@ symstall install-symlink:
done
$(DLL_SDB):
$(SDB) $@ = < $@.txt
-$(SDB) $@ = < $@.txt
uninstall:
rm -rf "$P"

View File

@ -257,6 +257,7 @@ extern RArchPlugin r_arch_plugin_rsp;
extern RArchPlugin r_arch_plugin_riscv;
extern RArchPlugin r_arch_plugin_x86_nz;
extern RArchPlugin r_arch_plugin_any_as;
extern RArchPlugin r_arch_plugin_arm;
#ifdef __cplusplus
}

View File

@ -7,6 +7,7 @@ asm_plugins = [ 'null' ]
anal_plugins = [ 'null' ]
arch_plugins = [ 'null',
'sh',
'arm',
'jdh8',
'riscv',
'i4004',
@ -69,8 +70,8 @@ if not no_user_plugins
io_plugins += [ 'r2web' ]
endif
if user_plugins.contains('arm')
asm_plugins += [ 'arm' ]
anal_plugins += [ 'arm_cs' ]
arch_plugins += [ 'arm' ]
bp_plugins += [ 'arm' ]
parse_plugins += [ 'arm_pseudo' ]
endif
@ -123,7 +124,6 @@ if no_user_plugins
asm_plugins += [
'arm_as',
'arm',
'ppc_as',
'x86_as',
'x86_nasm',