32 return !(*
this==other);
62 std::ostringstream ss;
92 Entries::iterator fi =
forward.find(name);
94 Reverse::iterator ri =
reverse.find(
hash(fi->second));
96 std::vector<std::string>::iterator vi=
std::find(ri->second.begin(), ri->second.end(),
name);
97 ROSE_ASSERT(vi!=ri->second.end());
114 for (Entries::const_iterator ei=entries.begin(); ei!=entries.end(); ++ei)
115 insert(ei->first, ei->second);
126 Entries::const_iterator fi =
forward.find(name);
129 return &(fi->second);
134 Reverse::const_iterator ri =
reverse.find(
hash(rdesc));
136 for (
size_t i=ri->second.size(); i>0; --i) {
137 const std::string &
name = ri->second[i-1];
138 Entries::const_iterator fi =
forward.find(name);
139 ROSE_ASSERT(fi!=
forward.end());
140 if (fi->second==rdesc)
145 static const std::string empty;
152 ROSE_ASSERT(old_desc!=NULL);
173 retval.reserve(entries.size());
174 for (Entries::const_iterator ei=entries.begin(); ei!=entries.end(); ++ei)
175 retval.push_back(ei->second);
195 o <<
"RegisterDictionary \"" <<
name <<
"\" contains " <<
forward.size() <<
" " <<(1==
forward.size()?
"entry":
"entries") <<
"\n";
196 for (Entries::const_iterator ri=
forward.begin(); ri!=
forward.end(); ++ri)
199 for (Reverse::const_iterator ri=
reverse.begin(); ri!=
reverse.end(); ++ri) {
201 for (std::vector<std::string>::const_iterator vi=ri->second.begin(); vi!=ri->second.end(); ++vi) {
213 switch (isa & EFF::ISA_FAMILY_MASK) {
214 case EFF::ISA_IA32_Family:
225 case EFF::ISA_X8664_Family:
228 case EFF::ISA_MIPS_Family:
231 case EFF::ISA_ARM_Family:
234 case EFF::ISA_PowerPC:
235 case EFF::ISA_PowerPC_64bit:
532 for (
unsigned i=8; i<16; i++) {
584 for (
unsigned i=0; i<16; i++)
588 regs->
insert(
"cpsr", arm_regclass_psr, arm_psr_current, 0, 32);
589 regs->
insert(
"spsr", arm_regclass_psr, arm_psr_saved, 0, 32);
592 regs->
insert(
"cpsr_m", arm_regclass_psr, arm_psr_current, 0, 5);
593 regs->
insert(
"cpsr_t", arm_regclass_psr, arm_psr_current, 5, 1);
594 regs->
insert(
"cpsr_f", arm_regclass_psr, arm_psr_current, 6, 1);
595 regs->
insert(
"cpsr_i", arm_regclass_psr, arm_psr_current, 7, 1);
596 regs->
insert(
"cpsr_q", arm_regclass_psr, arm_psr_current, 27, 1);
597 regs->
insert(
"cpsr_v", arm_regclass_psr, arm_psr_current, 28, 1);
598 regs->
insert(
"cpsr_c", arm_regclass_psr, arm_psr_current, 29, 1);
599 regs->
insert(
"cpsr_z", arm_regclass_psr, arm_psr_current, 30, 1);
600 regs->
insert(
"cpsr_n", arm_regclass_psr, arm_psr_current, 31, 1);
604 regs->
insert(
"spsr_m", arm_regclass_psr, arm_psr_saved, 0, 5);
605 regs->
insert(
"spsr_t", arm_regclass_psr, arm_psr_saved, 5, 1);
606 regs->
insert(
"spsr_f", arm_regclass_psr, arm_psr_saved, 6, 1);
607 regs->
insert(
"spsr_i", arm_regclass_psr, arm_psr_saved, 7, 1);
608 regs->
insert(
"spsr_q", arm_regclass_psr, arm_psr_saved, 27, 1);
609 regs->
insert(
"spsr_v", arm_regclass_psr, arm_psr_saved, 28, 1);
610 regs->
insert(
"spsr_c", arm_regclass_psr, arm_psr_saved, 29, 1);
611 regs->
insert(
"spsr_z", arm_regclass_psr, arm_psr_saved, 30, 1);
612 regs->
insert(
"spsr_n", arm_regclass_psr, arm_psr_saved, 31, 1);
628 for (
unsigned i=0; i<32; i++) {
638 regs->
insert(
"msr", powerpc_regclass_msr, 0, 0, 32);
641 regs->
insert(
"fpscr", powerpc_regclass_fpscr, 0, 0, 32);
652 regs->
insert(
"cr", powerpc_regclass_cr, 0, 0, 32);
653 for (
unsigned i=0; i<32; i++) {
675 regs->
insert(
"pvr", powerpc_regclass_pvr, 0, 0, 32);
681 regs->
insert(
"iar", powerpc_regclass_iar, 0, 0, 32);
689 for (
unsigned i=0; i<1024; i++)
695 regs->
insert(
"lr", powerpc_regclass_spr, powerpc_spr_lr, 0, 32);
700 regs->
insert(
"xer", powerpc_regclass_spr, powerpc_spr_xer, 0, 32);
704 regs->
insert(
"ctr", powerpc_regclass_spr, powerpc_spr_ctr, 0, 32);
707 regs->
insert(
"dsisr", powerpc_regclass_spr, powerpc_spr_dsisr, 0, 32);
708 regs->
insert(
"dar", powerpc_regclass_spr, powerpc_spr_dar, 0, 32);
709 regs->
insert(
"dec", powerpc_regclass_spr, powerpc_spr_dec, 0, 32);
716 for (
unsigned i=0; i<1024; i++)
719 regs->
insert(
"tbl", powerpc_regclass_tbr, powerpc_tbr_tbl, 0, 32);
720 regs->
insert(
"tbu", powerpc_regclass_tbr, powerpc_tbr_tbu, 0, 32);
736 for (
size_t i=0; i<32; ++i)
780 for (
size_t i=0; i<32; ++i)