35 "flags",
"r1",
"rp",
"r3",
"r4",
"r5",
"r6",
"r7",
"r8",
"r9",
36 "r10",
"r11",
"r12",
"r13",
"r14",
"r15",
"r16",
"r17",
"r18",
"r19",
37 "r20",
"r21",
"r22",
"r23",
"r24",
"r25",
"r26",
"dp",
"ret0",
"ret1",
45 "fpsr",
"fpe2",
"fpe4",
"fpe6",
46 "fr4",
"fr5",
"fr6",
"fr7",
"fr8",
47 "fr9",
"fr10",
"fr11",
"fr12",
"fr13",
"fr14",
"fr15",
48 "fr16",
"fr17",
"fr18",
"fr19",
"fr20",
"fr21",
"fr22",
"fr23",
49 "fr24",
"fr25",
"fr26",
"fr27",
"fr28",
"fr29",
"fr30",
"fr31"
59 #define MASK_14 0x3fff
60 #define MASK_16 0xffff
61 #define MASK_21 0x1fffff
65 #define GET_FIELD(X, FROM, TO) \
66 ((X) >> (31 - (TO)) & ((1 << ((TO) - (FROM) + 1)) - 1))
68 #define GET_BIT(X, WHICH) \
69 GET_FIELD (X, WHICH, WHICH)
76 "rctr",
"cr1",
"cr2",
"cr3",
"cr4",
"cr5",
"cr6",
"cr7",
77 "pidr1",
"pidr2",
"ccr",
"sar",
"pidr3",
"pidr4",
78 "iva",
"eiem",
"itmr",
"pcsq",
"pcoq",
"iir",
"isr",
79 "ior",
"ipsw",
"eirr",
"tr0",
"tr1",
"tr2",
"tr3",
80 "tr4",
"tr5",
"tr6",
"tr7"
85 "",
",=",
",<",
",<=",
",<<",
",<<=",
",sv",
",od",
86 ",tr",
",<>",
",>=",
",>",
",>>=",
",>>",
",nsv",
",ev"
90 ",*",
",*=",
",*<",
",*<=",
",*<<",
",*<<=",
",*sv",
",*od",
91 ",*tr",
",*<>",
",*>=",
",*>",
",*>>=",
",*>>",
",*nsv",
",*ev"
95 ",*<<",
",*=",
",*<",
",*<=",
",*>>=",
",*<>",
",*>=",
",*>"
99 "",
",=",
",<",
",<=",
",nuv",
",znv",
",sv",
",od",
100 ",tr",
",<>",
",>=",
",>",
",uv",
",vnz",
",nsv",
",ev"
104 ",*",
",*=",
",*<",
",*<=",
",*nuv",
",*znv",
",*sv",
",*od",
105 ",*tr",
",*<>",
",*>=",
",*>",
",*uv",
",*vnz",
",*nsv",
",*ev"
109 "",
",=",
",<",
",<=",
",nuv",
",*=",
",*<",
",*<=",
110 ",tr",
",<>",
",>=",
",>",
",uv",
",*<>",
",*>=",
",*>"
114 "",
",=",
",<",
",<=", 0, 0, 0,
",od",
115 ",tr",
",<>",
",>=",
",>", 0, 0, 0,
",ev"};
118 ",*",
",*=",
",*<",
",*<=", 0, 0, 0,
",*od",
119 ",*tr",
",*<>",
",*>=",
",*>", 0, 0, 0,
",*ev"};
122 "",
",swz",
",sbz",
",shz",
",sdc",
",swc",
",sbc",
",shc",
123 ",tr",
",nwz",
",nbz",
",nhz",
",ndc",
",nwc",
",nbc",
",nhc"
127 ",*",
",*swz",
",*sbz",
",*shz",
",*sdc",
",*swc",
",*sbc",
",*shc",
128 ",*tr",
",*nwz",
",*nbz",
",*nhz",
",*ndc",
",*nwc",
",*nbc",
",*nhc"
132 "",
",=",
",<",
",od",
",tr",
",<>",
",>=",
",ev"
136 ",*",
",*=",
",*<",
",*od",
",*tr",
",*<>",
",*>=",
",*ev"
146 "",
",b,m",
",e",
",e,m"
153 ",false?",
",false",
",?",
",!<=>",
",=",
",=t",
",?=",
",!<>",
154 ",!?>=",
",<",
",?<",
",!>=",
",!?>",
",<=",
",?<=",
",!>",
155 ",!?<=",
",>",
",?>",
",!<=",
",!?<",
",>=",
",?>=",
",!<",
156 ",!?=",
",<>",
",!=",
",!=t",
",!?",
",<=>",
",true?",
",true"
166 #define GET_COMPL(insn) (GET_FIELD (insn, 26, 26) | \
167 GET_FIELD (insn, 18, 18) << 1)
169 #define GET_COND(insn) (GET_FIELD ((insn), 16, 18) + \
170 (GET_FIELD ((insn), 19, 19) ? 8 : 0))
175 #define fputs_filtered(STR,F) (*info->fprintf_func) (info->stream, "%s", STR)
194 (*
info->fprintf_func) (
info->stream,
"fpe%d",
reg * 2 + 1);
212 (*
info->fprintf_func) (
info->stream,
"-%x", -(
int)
num);
255 return (word >> 16 &
MASK_5);
271 return (word >> 21 &
MASK_5);
300 word = (word >> 1) & 0x1fff;
301 word = word | (m15 << 15) | ((m15 ^ m0) << 14) | ((m15 ^ m1) << 13);
333 | (word & 0x1) << 11, 12) << 2;
345 | (word & 0x1) << 16, 17) << 2;
355 | (word & 0x1) << 21, 22) << 2;
364 unsigned int insn,
i;
382 if ((insn & opcode->
mask) == opcode->
match)
389 (*
info->fprintf_func) (
info->stream,
"%s", opcode->
name);
391 if (!strchr (
"cfCY?-+nHNZFIuv{", opcode->
args[0])) {
392 (*
info->fprintf_func) (
info->stream,
" ");
394 for (
s = opcode->
args; *
s !=
'\0'; ++
s)
544 (*
info->fprintf_func) (
info->stream,
"sr%d", space);
550 (*
info->fprintf_func) (
info->stream,
"sr%d",
559 (*
info->fprintf_func)
564 (*
info->fprintf_func)
565 (
info->stream,
"%s ",
569 (*
info->fprintf_func)
574 (*
info->fprintf_func)
575 (
info->stream,
"%s ",
579 (*
info->fprintf_func)
580 (
info->stream,
"%s ",
584 (*
info->fprintf_func)
593 (*
info->fprintf_func) (
info->stream,
",bc ");
596 (*
info->fprintf_func) (
info->stream,
",sl ");
599 (*
info->fprintf_func) (
info->stream,
" ");
606 (*
info->fprintf_func) (
info->stream,
",co ");
609 (*
info->fprintf_func) (
info->stream,
" ");
613 (*
info->fprintf_func) (
info->stream,
",o");
616 (*
info->fprintf_func) (
info->stream,
",gate");
619 (*
info->fprintf_func) (
info->stream,
",l,push");
622 (*
info->fprintf_func) (
info->stream,
",pop");
626 (*
info->fprintf_func) (
info->stream,
",l");
629 (*
info->fprintf_func)
630 (
info->stream,
"%s ",
634 (*
info->fprintf_func) (
info->stream,
",w ");
638 (*
info->fprintf_func) (
info->stream,
",r");
643 (*
info->fprintf_func) (
info->stream,
",m ");
645 (*
info->fprintf_func) (
info->stream,
" ");
650 (*
info->fprintf_func) (
info->stream,
",i");
655 (*
info->fprintf_func) (
info->stream,
",z");
659 (*
info->fprintf_func)
664 (*
info->fprintf_func)
665 (
info->stream,
",dc%s",
669 (*
info->fprintf_func)
670 (
info->stream,
",c%s",
675 (*
info->fprintf_func) (
info->stream,
",tsv");
679 (*
info->fprintf_func) (
info->stream,
",tc");
681 (*
info->fprintf_func) (
info->stream,
",tsv");
685 (*
info->fprintf_func) (
info->stream,
",db");
687 (*
info->fprintf_func) (
info->stream,
",tsv");
691 (*
info->fprintf_func) (
info->stream,
",b");
693 (*
info->fprintf_func) (
info->stream,
",tsv");
698 (*
info->fprintf_func) (
info->stream,
",tc");
703 if (*(
s + 1) ==
'?') {
704 (*
info->fprintf_func) (
info->stream,
"%s",
707 (*
info->fprintf_func) (
info->stream,
"%s ",
712 (*
info->fprintf_func)
717 (*
info->fprintf_func)
718 (
info->stream,
"%s ",
722 (*
info->fprintf_func)
723 (
info->stream,
",%d%d%d%d ",
749 if (
opc == 0x16 ||
opc == 0x1e)
766 if (
opc == 0x13 ||
opc == 0x1b)
774 else if (
opc == 0x17 ||
opc == 0x1f)
797 (*
info->fprintf_func)
798 (
info->stream,
"%s ",
834 (*
info->fprintf_func)
835 (
info->stream,
"%s ",
839 (*
info->fprintf_func)
840 (
info->stream,
"%s ",
844 (*
info->fprintf_func)
845 (
info->stream,
"%s ",
849 (*
info->fprintf_func)
850 (
info->stream,
"%s ",
854 (*
info->fprintf_func)
860 (*
info->fprintf_func)
867 (*
info->fprintf_func)
868 (
info->stream,
"%s ",
872 (*
info->fprintf_func)
873 (
info->stream,
"%s ",
877 (*
info->fprintf_func)
878 (
info->stream,
"%s ",
882 (*
info->fprintf_func)
883 (
info->stream,
"%s ",
889 (*
info->fprintf_func)
896 (*
info->fprintf_func) (
info->stream,
" ");
900 (*
info->fprintf_func)
901 (
info->stream,
"%s ",
905 (*
info->fprintf_func)
912 (*
info->fprintf_func) (
info->stream,
" ");
952 (*
info->fprintf_func) (
info->stream,
",n ");
954 (*
info->fprintf_func) (
info->stream,
" ");
958 if ((insn & 0x20) &&
s[1]) {
959 (*
info->fprintf_func) (
info->stream,
",n ");
960 }
else if (insn & 0x20) {
961 (*
info->fprintf_func) (
info->stream,
",n");
963 (*
info->fprintf_func) (
info->stream,
" ");
967 (*
info->print_address_func)
972 (*
info->print_address_func)
993 (*
info->fprintf_func) (
info->stream,
"0");
997 (*
info->fprintf_func) (
info->stream,
"%d",
1001 (*
info->fprintf_func) (
info->stream,
"%d",
1008 (*
info->fprintf_func) (
info->stream,
"%d",
1016 (*
info->fprintf_func) (
info->stream,
"%d", 63 -
num);
1020 (*
info->fprintf_func) (
info->stream,
"%d",
1032 (*
info->fprintf_func) (
info->stream,
"%d",
1061 (*
info->fprintf_func) (
info->stream,
",%d",
1084 (*
info->fprintf_func) (
info->stream,
",%d",
1090 if (
s[1] ==
'G' ||
s[1] ==
'?') {
1093 (*
info->fprintf_func) (
info->stream,
"%s ",
1098 (*
info->fprintf_func)
1099 (
info->stream,
"%s ",
1104 (*
info->fprintf_func) (
info->stream,
"%s ",
1107 (*
info->fprintf_func) (
info->stream,
"%s ",
1117 (*
info->fprintf_func) (
info->stream,
"%s ",
1196 if ((sub & 3) == 3) {
1199 if ((sub & 3) == 1) {
1206 (*
info->fprintf_func) (
info->stream,
"%s%s%s ",
1228 (*
info->fprintf_func) (
info->stream,
",%d", cbit - 1);
1253 (*
info->print_address_func)
1260 (*
info->fprintf_func) (
info->stream,
"%c", *
s);
1264 return sizeof (insn);
1267 (*
info->fprintf_func) (
info->stream,
"#%8x", insn);
1268 return sizeof (insn);
static void sign_extend(st32 *value, ut8 bit)
RzBinInfo * info(RzBinFile *bf)
static unsigned extract_5R_store(unsigned word)
static void fput_fp_reg_r(unsigned reg, disassemble_info *info)
int print_insn_hppa(bfd_vma memaddr, disassemble_info *info)
static const char *const control_reg[]
static void fput_creg(unsigned reg, disassemble_info *info)
static const char *const logical_cond_names[]
static unsigned extract_10U_store(unsigned word)
static int extract_5_store(unsigned word)
static const char *const wide_add_cond_names[]
static int extract_12(unsigned word)
static const char *const compare_cond_64_names[]
static const char *const short_ldst_compl_names[]
static const char *const float_format_names[]
static const char *const add_compl_names[]
static int extract_5_load(unsigned word)
static const char *const mix_half_names[]
static int extract_3(unsigned word)
static const char *const logical_cond_64_names[]
static const char *const reg_names[]
#define GET_BIT(X, WHICH)
#define GET_FIELD(X, FROM, TO)
static const char *const fp_reg_names[]
static int extract_16(unsigned word)
static void fput_reg(unsigned reg, disassemble_info *info)
static const char *const saturation_names[]
static const char *const signed_unsigned_names[]
static const char *const compare_cond_names[]
static const char *const read_write_names[]
static const char *const index_compl_names[]
static const char *const fcnv_ufixed_names[]
static const char *const fcnv_fixed_names[]
static const char *const add_cond_64_names[]
static int extract_11(unsigned word)
static int extract_21(unsigned word)
static void fput_const(unsigned num, disassemble_info *info)
static const char *const bb_cond_64_names[]
static int extract_22(unsigned word)
#define fputs_filtered(STR, F)
static int extract_17(unsigned word)
static int extract_14(unsigned word)
static const char *const unit_cond_names[]
static const char *const shift_cond_64_names[]
static const char *const shift_cond_names[]
static unsigned extract_5Q_store(unsigned word)
static const char *const unit_cond_64_names[]
static const char *const cmpib_cond_64_names[]
static void fput_fp_reg(unsigned reg, disassemble_info *info)
static const char *const float_comp_names[]
static const char *const short_bytes_compl_names[]
static const char *const add_cond_names[]
static unsigned extract_5r_store(unsigned word)
static const struct pa_opcode pa_opcodes[]
static int low_sign_extend(int, int) ATTRIBUTE_UNUSED
static static fork const void static count static fd const char const char static newpath char char char static envp time_t static t const char static mode static whence const char static dir time_t static t unsigned static seconds const char struct utimbuf static buf static inc static sig const char static mode static oldfd struct tms static buf static getgid static geteuid const char static filename static arg static mask struct ustat static ubuf static getppid static setsid static egid sigset_t static set struct timeval struct timezone static tz fd_set fd_set fd_set struct timeval static timeout const char char static bufsiz const char static swapflags void static offset const char static length static mode static who const char struct statfs static buf unsigned unsigned num
static const char struct stat static buf struct stat static buf static vhangup int status
BFD_HOST_U_64_BIT bfd_vma
static bfd_vma bfd_getb32(const void *p)
#define cond(bop, top, mask, flags)