diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/arm/dis-arm-multi.inc.h (renamed from lib/dis-arm-multi.inc.h) | 0 | ||||
-rw-r--r-- | lib/arm/dis-arm.inc.h (renamed from lib/dis-arm.inc.h) | 0 | ||||
-rw-r--r-- | lib/arm/dis-thumb.inc.h (renamed from lib/dis-thumb.inc.h) | 0 | ||||
-rw-r--r-- | lib/arm/dis-thumb2.inc.h (renamed from lib/dis-thumb2.inc.h) | 0 | ||||
-rw-r--r-- | lib/arm/misc.h | 7 | ||||
-rw-r--r-- | lib/arm/transform-dis-arm-multi.inc.h (renamed from lib/transform-dis-arm-multi.inc.h) | 0 | ||||
-rw-r--r-- | lib/arm64/dis-arm64.inc.h (renamed from lib/dis-arm64.inc.h) | 0 | ||||
-rw-r--r-- | lib/arm64/misc.h | 6 | ||||
-rw-r--r-- | lib/arm64/transform-dis-arm64.inc.h (renamed from lib/transform-dis-arm64.inc.h) | 0 | ||||
-rw-r--r-- | lib/dis.h | 20 | ||||
-rw-r--r-- | lib/jump-dis.c | 4 | ||||
-rw-r--r-- | lib/substitute-internal.h | 11 | ||||
-rw-r--r-- | lib/transform-dis.c | 10 |
13 files changed, 26 insertions, 32 deletions
diff --git a/lib/dis-arm-multi.inc.h b/lib/arm/dis-arm-multi.inc.h index 56cde35..56cde35 100644 --- a/lib/dis-arm-multi.inc.h +++ b/lib/arm/dis-arm-multi.inc.h diff --git a/lib/dis-arm.inc.h b/lib/arm/dis-arm.inc.h index 2f06234..2f06234 100644 --- a/lib/dis-arm.inc.h +++ b/lib/arm/dis-arm.inc.h diff --git a/lib/dis-thumb.inc.h b/lib/arm/dis-thumb.inc.h index 4e6d106..4e6d106 100644 --- a/lib/dis-thumb.inc.h +++ b/lib/arm/dis-thumb.inc.h diff --git a/lib/dis-thumb2.inc.h b/lib/arm/dis-thumb2.inc.h index a9d7f9d..a9d7f9d 100644 --- a/lib/dis-thumb2.inc.h +++ b/lib/arm/dis-thumb2.inc.h diff --git a/lib/arm/misc.h b/lib/arm/misc.h new file mode 100644 index 0000000..44d8e7a --- /dev/null +++ b/lib/arm/misc.h @@ -0,0 +1,7 @@ +#pragma once +#define TARGET_DIS_SUPPORTED +#define TARGET_DIS_HEADER "arm/dis-arm-multi.inc.h" +#define TARGET_TRANSFORM_DIS_HEADER "arm/transform-dis-arm-multi.inc.h" +#define MIN_INSN_SIZE 2 +struct arch_dis_ctx { unsigned thumb_it_length; }; +enum { IS_LDRD_STRD = 1 << 16 }; diff --git a/lib/transform-dis-arm-multi.inc.h b/lib/arm/transform-dis-arm-multi.inc.h index 662b501..662b501 100644 --- a/lib/transform-dis-arm-multi.inc.h +++ b/lib/arm/transform-dis-arm-multi.inc.h diff --git a/lib/dis-arm64.inc.h b/lib/arm64/dis-arm64.inc.h index 5317b89..5317b89 100644 --- a/lib/dis-arm64.inc.h +++ b/lib/arm64/dis-arm64.inc.h diff --git a/lib/arm64/misc.h b/lib/arm64/misc.h new file mode 100644 index 0000000..672e1bd --- /dev/null +++ b/lib/arm64/misc.h @@ -0,0 +1,6 @@ +#pragma once +#define TARGET_DIS_SUPPORTED +#define TARGET_DIS_HEADER "arm64/dis-arm64.inc.h" +#define TARGET_TRANSFORM_DIS_HEADER "arm64/transform-dis-arm64.inc.h" +#define MIN_INSN_SIZE 4 +struct arch_dis_ctx {}; diff --git a/lib/transform-dis-arm64.inc.h b/lib/arm64/transform-dis-arm64.inc.h index c47971b..c47971b 100644 --- a/lib/transform-dis-arm64.inc.h +++ b/lib/arm64/transform-dis-arm64.inc.h @@ -107,22 +107,6 @@ static const unsigned null_op = -0x100; return; \ } while (0) -#if defined(TARGET_x86_64) - #define MIN_INSN_SIZE 1 - #error "no x86 dis yet" - struct arch_dis_ctx {}; -#elif defined(TARGET_i386) - #define MIN_INSN_SIZE 1 - #error "no x86 dis yet" - struct arch_dis_ctx {}; -#elif defined(TARGET_arm) - #define MIN_INSN_SIZE 2 - #define TARGET_DIS_HEADER "dis-arm-multi.inc.h" - struct arch_dis_ctx { unsigned thumb_it_length; }; - enum { IS_LDRD_STRD = 1 << 16 }; -#elif defined(TARGET_arm64) - #define MIN_INSN_SIZE 4 - #define TARGET_DIS_HEADER "dis-arm64.inc.h" - struct arch_dis_ctx {}; +#ifndef TARGET_DIS_SUPPORTED + #error "no disassembler for the target architecture yet" #endif - diff --git a/lib/jump-dis.c b/lib/jump-dis.c index 355ac0f..2a4f94c 100644 --- a/lib/jump-dis.c +++ b/lib/jump-dis.c @@ -1,5 +1,5 @@ #include "substitute-internal.h" -#ifdef TARGET_SUPPORTED +#ifdef TARGET_DIS_SUPPORTED #include "dis.h" #include <stdint.h> #include <stdbool.h> @@ -163,4 +163,4 @@ fail: } #include TARGET_DIS_HEADER -#endif /* TARGET_SUPPORTED */ +#endif /* TARGET_DIS_SUPPORTED */ diff --git a/lib/substitute-internal.h b/lib/substitute-internal.h index e89715f..0f3e0ad 100644 --- a/lib/substitute-internal.h +++ b/lib/substitute-internal.h @@ -32,23 +32,24 @@ typedef struct section section_x; #define TARGET_x86_64 #elif defined(FORCE_TARGET_i386) #define TARGET_i386 - #define TARGET_UNSUPPORTED #elif defined(FORCE_TARGET_arm) #define TARGET_arm - #define TARGET_SUPPORTED #elif defined(FORCE_TARGET_arm64) #define TARGET_arm64 - #define TARGET_SUPPORTED #elif defined(__x86_64__) #define TARGET_x86_64 #elif defined(__i386__) #define TARGET_i386 #elif defined(__arm__) #define TARGET_arm - #define TARGET_SUPPORTED #elif defined(__arm64__) #define TARGET_arm64 - #define TARGET_SUPPORTED #else #error target? #endif + +#if defined(TARGET_arm) + #include "arm/misc.h" +#elif defined(TARGET_arm64) + #include "arm64/misc.h" +#endif diff --git a/lib/transform-dis.c b/lib/transform-dis.c index 6d5fc66..6067ea0 100644 --- a/lib/transform-dis.c +++ b/lib/transform-dis.c @@ -1,5 +1,5 @@ #include "substitute-internal.h" -#ifdef TARGET_SUPPORTED +#ifdef TARGET_DIS_SUPPORTED #include "substitute.h" #include "dis.h" @@ -123,11 +123,7 @@ static inline void op32(struct transform_dis_ctx *ctx, uint32_t op) { *rpp += 4; } -#ifdef TARGET_arm - #include "transform-dis-arm-multi.inc.h" -#else - #include "transform-dis-arm64.inc.h" -#endif +#include TARGET_TRANSFORM_DIS_HEADER #include TARGET_DIS_HEADER -#endif /* TARGET_SUPPORTED */ +#endif /* TARGET_DIS_SUPPORTED */ |