< prev index next >

src/share/vm/opto/runtime.cpp

Print this page




1671   trace_exception_counter++;
1672   stringStream tempst;
1673 
1674   tempst.print("%d [Exception (%s): ", trace_exception_counter, msg);
1675   exception_oop->print_value_on(&tempst);
1676   tempst.print(" in ");
1677   CodeBlob* blob = CodeCache::find_blob(exception_pc);
1678   if (blob->is_compiled()) {
1679     CompiledMethod* cm = blob->as_compiled_method_or_null();
1680     cm->method()->print_value_on(&tempst);
1681   } else if (blob->is_runtime_stub()) {
1682     tempst.print("<runtime-stub>");
1683   } else {
1684     tempst.print("<unknown>");
1685   }
1686   tempst.print(" at " INTPTR_FORMAT,  p2i(exception_pc));
1687   tempst.print("]");
1688 
1689   st->print_raw_cr(tempst.as_string());
1690 }





























1671   trace_exception_counter++;
1672   stringStream tempst;
1673 
1674   tempst.print("%d [Exception (%s): ", trace_exception_counter, msg);
1675   exception_oop->print_value_on(&tempst);
1676   tempst.print(" in ");
1677   CodeBlob* blob = CodeCache::find_blob(exception_pc);
1678   if (blob->is_compiled()) {
1679     CompiledMethod* cm = blob->as_compiled_method_or_null();
1680     cm->method()->print_value_on(&tempst);
1681   } else if (blob->is_runtime_stub()) {
1682     tempst.print("<runtime-stub>");
1683   } else {
1684     tempst.print("<unknown>");
1685   }
1686   tempst.print(" at " INTPTR_FORMAT,  p2i(exception_pc));
1687   tempst.print("]");
1688 
1689   st->print_raw_cr(tempst.as_string());
1690 }
1691 
1692 const TypeFunc *OptoRuntime::store_value_type_fields_Type() {
1693   // create input type (domain)
1694   uint total = SharedRuntime::java_return_convention_max_int + SharedRuntime::java_return_convention_max_float*2;
1695   const Type **fields = TypeTuple::fields(total);
1696   // We don't know the number of returned values and their
1697   // types. Assume all registers available to the return convention
1698   // are used.
1699   fields[TypeFunc::Parms] = TypePtr::BOTTOM;
1700   uint i = 1;
1701   for (; i < SharedRuntime::java_return_convention_max_int; i++) {
1702     fields[TypeFunc::Parms+i] = TypeInt::INT;
1703   }
1704   for (; i < total; i+=2) {
1705     fields[TypeFunc::Parms+i] = Type::DOUBLE;
1706     fields[TypeFunc::Parms+i+1] = Type::HALF;
1707   }
1708   const TypeTuple* domain = TypeTuple::make(TypeFunc::Parms + total, fields);
1709 
1710   // create result type (range)
1711   fields = TypeTuple::fields(1);
1712   fields[TypeFunc::Parms+0] = TypeValueTypePtr::NOTNULL;
1713 
1714   const TypeTuple *range = TypeTuple::make(TypeFunc::Parms+1,fields);
1715 
1716   return TypeFunc::make(domain, range);
1717 }
< prev index next >