35 "r0",
"r1",
"r2",
"r3",
"r4",
"r5",
"r6",
"r7",
36 "r8",
"r9",
"r10",
"r11",
"ap",
"fp",
"sp",
"pc"
41 static char *entry_mask_bit[] =
47 "r2",
"r3",
"r4",
"r5",
"r6",
"r7",
"r8",
"r9",
"r10",
"r11",
57 #define COERCE_SIGNED_CHAR(ch) ((signed char)(ch))
61 ((p) += 1, FETCH_DATA(info, p), \
62 COERCE_SIGNED_CHAR((p)[-1]))
65 #define COERCE16(x) ((int)(((x) ^ 0x8000) - 0x8000))
67 ((p) += 2, FETCH_DATA(info, p), \
68 COERCE16(((p)[-1] << 8) + (p)[-2]))
71 #define COERCE32(x) ((int)(((x) ^ 0x80000000) - 0x80000000))
73 ((p) += 4, FETCH_DATA(info, p), \
74 (COERCE32(((((((p)[-1] << 8) + (p)[-2]) << 8) + (p)[-3]) << 8) + (p)[-4])))
90 #define FETCH_DATA(info, addr) \
91 ((addr) <= ((struct private *)((info)->private_data))->max_fetched \
93 : fetch_data((info), (addr)))
117 static unsigned int entry_addr_occupied_slots = 0;
118 static unsigned int entry_addr_total_slots = 0;
141 unsigned char *
p = p0;
147 switch (
mode & 0xF0) {
152 if (
d[1] ==
'd' ||
d[1] ==
'f' ||
d[1] ==
'g' ||
d[1] ==
'h') {
153 (*
info->fprintf_func)(
info->stream,
"$0x%x [%c-float]",
mode,
d[1]);
176 (*
info->fprintf_func)(
info->stream,
"$0x");
177 if (
d[1] ==
'd' ||
d[1] ==
'f' ||
d[1] ==
'g' ||
d[1] ==
'h') {
180 float_word =
p[0] | (
p[1] << 8);
181 if ((
d[1] ==
'd' ||
d[1] ==
'f') && (float_word & 0xff80) == 0x8000) {
182 (*
info->fprintf_func)(
info->stream,
"[invalid %c-float]",
186 (*
info->fprintf_func)(
info->stream,
"%02x",
189 (*
info->fprintf_func)(
info->stream,
" [%c-float]",
d[1]);
209 (*
info->fprintf_func)(
info->stream,
"*");
220 (*
info->fprintf_func)(
info->stream,
"*");
231 (*
info->fprintf_func)(
info->stream,
"*");
259 case 'b': arg_len = 1;
break;
260 case 'd': arg_len = 8;
break;
261 case 'f': arg_len = 4;
break;
262 case 'g': arg_len = 8;
break;
263 case 'h': arg_len = 16;
break;
264 case 'l': arg_len = 4;
break;
265 case 'o': arg_len = 16;
break;
266 case 'w': arg_len = 2;
break;
267 case 'q': arg_len = 8;
break;
273 unsigned char *
p = p0;
292 const struct vot *votp;
298 info->private_data = &priv;
302 if (setjmp(priv.
bailout) != 0) {
310 if (
info->buffer_length - (memaddr -
info->buffer_vma) > 1) {
328 (*
info->fprintf_func)(
info->stream,
".word 0x%x",
342 (*
info->fprintf_func)(
info->stream,
" ");
349 (*
info->fprintf_func)(
info->stream,
", ");
static const char * arg(RzAnalysis *a, csh *handle, cs_insn *insn, char *buf, int n)
RzBinInfo * info(RzBinFile *bf)
static static sync static getppid static getegid const char static filename char static len const char char static bufsiz static mask static vfork const void static prot static getpgrp const char static swapflags static arg static fd static protocol static who struct sockaddr static addrlen static backlog struct timeval struct timezone static tz const struct iovec static count static mode const void const struct sockaddr static tolen const char static pathname void static offset struct stat static buf void long static basep static whence static length const void static len static semflg const void static shmflg const struct timespec struct timespec static rem const char static group const void start
static static sync static getppid static getegid const char static filename char argp
static const char struct stat static buf struct stat static buf static vhangup int status
BFD_HOST_U_64_BIT bfd_vma
bfd_byte the_buffer[MAXLEN]
static int print_insn_arg(const char *d, unsigned char *p0, bfd_vma addr, disassemble_info *info)
int print_insn_vax(bfd_vma memaddr, disassemble_info *info)
static int fetch_data(struct disassemble_info *info, bfd_byte *addr)
static int print_insn_mode(const char *d, int size, unsigned char *p0, bfd_vma addr, disassemble_info *info)
#define FETCH_DATA(info, addr)
static char * reg_names[]
static const struct vot votstrs[]