コード例 #1
0
ファイル: AccessFlags.cpp プロジェクト: jiangxilong/yari
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);
}
コード例 #2
0
ファイル: Disassembler.cpp プロジェクト: FriedBreakfast/Psi
 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;
   }
 }
コード例 #3
0
ファイル: Disassembler.cpp プロジェクト: FriedBreakfast/Psi
 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, "  ");
 }
コード例 #4
0
ファイル: Disassembler.cpp プロジェクト: FriedBreakfast/Psi
 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);
   }
 }