blob: 0d87ba5c920ba89ff706f6a5614b0f616e922b08 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
#include "dis-thumb.inc.h"
#include "dis-thumb2.inc.h"
#include "dis-arm.inc.h"
static INLINE void P(dis)(tdis_ctx ctx) {
if (ctx->arch.pc_low_bit) {
uint16_t op = unaligned_r16(ctx->base.ptr);
bool is_32 = (op >> 13 & 7) == 7 && (op >> 11 & 3) != 0;
if (is_32)
return P(dis_thumb2)(ctx);
else
return P(dis_thumb)(ctx);
} else {
return P(dis_arm)(ctx);
}
}
|