void AccessFlags::print_definitions() { tty->print_cr(" Class access flags:"); print_definitions(AccessFlags::CLASS_FLAGS); tty->print_cr(" Method access flags:"); print_definitions(AccessFlags::METHOD_FLAGS); tty->print_cr(" Field access flags:"); print_definitions(AccessFlags::FIELD_FLAGS); }
void DisassemblerContext::run_term(const ValuePtr<>& term) { switch (term->term_type()) { case term_function: { ValuePtr<Function> function = value_cast<Function>(term); setup_term_name(function); setup_function(function); build_unique_names(); print_definitions(m_global_definitions, "", true); print_function(function); break; } case term_block: { ValuePtr<Block> block = value_cast<Block>(term); m_in_function_mode = true; setup_term_name(block); setup_block(block); build_unique_names(); print_block(block, m_global_definitions); break; } default: m_in_function_mode = true; setup_term_definition(term); build_unique_names(); print_definitions(m_global_definitions); switch (term->term_type()) { case term_instruction: case term_phi: case term_function_parameter: case term_recursive: print_term_definition(term, true); break; default: break; } break; } }
void DisassemblerContext::print_block(const ValuePtr<Block>& block, const TermDefinitionList& definitions) { *m_output << "block " << name(block); if (block->dominator()) *m_output << '(' << name(block->dominator()) << ')'; *m_output << ":\n"; for (Block::PhiList::const_iterator ii = block->phi_nodes().begin(), ie = block->phi_nodes().end(); ii != ie; ++ii) { *m_output << " "; print_term_definition(*ii); } print_definitions(definitions, " "); }
void DisassemblerContext::run_module(Module *module) { for (Module::ModuleMemberList::iterator ii = module->members().begin(), ie = module->members().end(); ii != ie; ++ii) setup_term_definition(ii->second); build_unique_names(); print_definitions(m_global_definitions, "", true); for (Module::ModuleMemberList::iterator ib = module->members().begin(), ii = module->members().begin(), ie = module->members().end(); ii != ie; ++ii) { if (ii != ib) *m_output << '\n'; print_term_definition(ii->second); } }