# HG changeset patch # User Thomas Wuerthinger # Date 1297862512 -3600 # Node ID 9569fdf936ffd0dc775c084d84e6cb31da5d97ea # Parent d25d4ca69222f362ae5058df84a882ad8ddfc8bf Made merge compile. diff -r d25d4ca69222 -r 9569fdf936ff src/share/vm/c1x/c1x_CodeInstaller.cpp --- a/src/share/vm/c1x/c1x_CodeInstaller.cpp Wed Feb 16 13:47:20 2011 +0100 +++ b/src/share/vm/c1x/c1x_CodeInstaller.cpp Wed Feb 16 14:21:52 2011 +0100 @@ -409,7 +409,7 @@ if (bci == -1) { reexecute = false; } else { - Bytecodes::Code code = Bytecodes::java_code_at(method->bcp_from(bci)); + Bytecodes::Code code = Bytecodes::java_code_at(method, method->bcp_from(bci)); reexecute = Interpreter::bytecode_should_reexecute(code); } diff -r d25d4ca69222 -r 9569fdf936ff src/share/vm/c1x/c1x_Compiler.cpp --- a/src/share/vm/c1x/c1x_Compiler.cpp Wed Feb 16 13:47:20 2011 +0100 +++ b/src/share/vm/c1x/c1x_Compiler.cpp Wed Feb 16 14:21:52 2011 +0100 @@ -121,7 +121,7 @@ Handle name = VmIds::toString(klass->name(), THREAD); return createHotSpotTypeResolved(klass, name, CHECK_NULL); } else { - symbolOop name = ((ciKlass *) type)->name()->get_symbolOop(); + Symbol* name = ((ciKlass *) type)->name()->get_symbol(); return VMExits::createRiTypeUnresolved(VmIds::toString(name, THREAD), THREAD); } } @@ -129,7 +129,7 @@ oop C1XCompiler::get_RiField(ciField *field, ciInstanceKlass* accessor_klass, KlassHandle accessor, Bytecodes::Code byteCode, TRAPS) { bool will_link = field->will_link_from_vm(accessor_klass, byteCode); int offset = (field->holder()->is_loaded() && will_link) ? field->offset() : -1; - Handle field_name = VmIds::toString(field->name()->get_symbolOop(), CHECK_0); + Handle field_name = VmIds::toString(field->name()->get_symbol(), CHECK_0); Handle field_holder = get_RiType(field->holder(), accessor, CHECK_0); Handle field_type = get_RiType(field->type(), accessor, CHECK_0); diff -r d25d4ca69222 -r 9569fdf936ff src/share/vm/c1x/c1x_JavaAccess.cpp --- a/src/share/vm/c1x/c1x_JavaAccess.cpp Wed Feb 16 13:47:20 2011 +0100 +++ b/src/share/vm/c1x/c1x_JavaAccess.cpp Wed Feb 16 14:21:52 2011 +0100 @@ -29,8 +29,8 @@ // It looks up the name and signature symbols without creating new ones, all the symbols of these classes need to be already loaded. static void compute_offset(int &dest_offset, klassOop klass_oop, const char* name, const char* signature, bool static_field) { - symbolOop name_symbol = SymbolTable::probe(name, strlen(name)); - symbolOop signature_symbol = SymbolTable::probe(signature, strlen(signature)); + Symbol* name_symbol = SymbolTable::probe(name, strlen(name)); + Symbol* signature_symbol = SymbolTable::probe(signature, strlen(signature)); #ifdef DEBUG if (name_symbol == NULL) { tty->print_cr("symbol with name %s was not found in symbol table (klass=%s)", name, klass_oop->klass_part()->name()->as_C_string()); diff -r d25d4ca69222 -r 9569fdf936ff src/share/vm/c1x/c1x_VMEntries.cpp --- a/src/share/vm/c1x/c1x_VMEntries.cpp Wed Feb 16 13:47:20 2011 +0100 +++ b/src/share/vm/c1x/c1x_VMEntries.cpp Wed Feb 16 14:21:52 2011 +0100 @@ -154,7 +154,7 @@ JNIEXPORT jobject JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiSignature_1lookupType(JNIEnv *env, jobject, jstring jname, jobject accessingClass) { VM_ENTRY_MARK; - symbolOop nameSymbol = VmIds::toSymbol(jname); + Symbol* nameSymbol = VmIds::toSymbol(jname); Handle name = JNIHandles::resolve(jname); oop result; @@ -261,8 +261,8 @@ Handle name = VmIds::toString(method->name(), CHECK_NULL); return JNIHandles::make_local(THREAD, VMExits::createRiMethodResolved(VmIds::add(method), name, THREAD)); } else { - Handle name = VmIds::toString((symbolOop) cimethod->name()->get_oop(), CHECK_NULL); - Handle signature = VmIds::toString((symbolOop) cimethod->signature()->as_symbol()->get_oop(), CHECK_NULL); + Handle name = VmIds::toString(cimethod->name()->get_symbol(), CHECK_NULL); + Handle signature = VmIds::toString(cimethod->signature()->as_symbol()->get_symbol(), CHECK_NULL); Handle holder = C1XCompiler::get_RiType(cimethod->holder(), cp->klass(), THREAD); return JNIHandles::make_local(THREAD, VMExits::createRiMethodUnresolved(name, signature, holder, THREAD)); } @@ -363,8 +363,8 @@ assert(JNIHandles::resolve(resolved_type) != NULL, ""); klassOop klass = java_lang_Class::as_klassOop(HotSpotTypeResolved::javaMirror(resolved_type)); - symbolOop name_symbol = VmIds::toSymbol(name); - symbolOop signature_symbol = VmIds::toSymbol(signature); + Symbol* name_symbol = VmIds::toSymbol(name); + Symbol* signature_symbol = VmIds::toSymbol(signature); methodOop method = klass->klass_part()->lookup_method(name_symbol, signature_symbol); if (method == NULL) { if (TraceC1X >= 3) { diff -r d25d4ca69222 -r 9569fdf936ff src/share/vm/c1x/c1x_VmIds.hpp --- a/src/share/vm/c1x/c1x_VmIds.hpp Wed Feb 16 13:47:20 2011 +0100 +++ b/src/share/vm/c1x/c1x_VmIds.hpp Wed Feb 16 14:21:52 2011 +0100 @@ -22,6 +22,8 @@ * */ +class Thread; + class VmIds : public AllStatic { private: @@ -36,7 +38,6 @@ STUB = 0x100000000000000l, // address METHOD = 0x200000000000000l, // methodOop CLASS = 0x300000000000000l, // klassOop - SYMBOL = 0x400000000000000l, // symbolOop CONSTANT_POOL = 0x500000000000000l, // constantPoolOop CONSTANT = 0x600000000000000l, // oop TYPE_MASK = 0xf00000000000000l, @@ -67,11 +68,11 @@ template static T get(jlong id); - // Helper function to convert a symbolOop to a java.lang.String object - template static T toString(symbolOop symbol, TRAPS); + // Helper function to convert a symbol to a java.lang.String object + template static T toString(Symbol* symbol, TRAPS); - // Helper function to convert a java.lang.String object to a symbolOop (this will return NULL if the symbol doesn't exist in the system) - static symbolOop toSymbol(jstring string); + // Helper function to convert a java.lang.String object to a symbol (this will return NULL if the symbol doesn't exist in the system) + static Symbol* toSymbol(jstring string); // Helper function to get the contents of a java.lang.Long static jlong getBoxedLong(oop obj); @@ -88,11 +89,6 @@ assert(obj->is_klass(), "trying to add mistyped object"); return add(Handle(obj), CLASS); } -template <> inline jlong VmIds::add(symbolOop obj) { - assert(obj != NULL, "trying to add NULL"); - assert(obj->is_symbol(), "trying to add mistyped object"); - return add(Handle(obj), SYMBOL); -} template <> inline jlong VmIds::add(constantPoolOop obj) { assert(obj != NULL, "trying to add NULL"); assert(obj->is_constantPool(), "trying to add mistyped object"); @@ -115,11 +111,6 @@ assert(getObject(id)->is_klass(), "klassOop expected"); return (klassOop)getObject(id); } -template <> inline symbolOop VmIds::get(jlong id) { - assert((id & TYPE_MASK) == SYMBOL, "SYMBOL expected"); - assert(getObject(id)->is_symbol(), "symbolOop expected"); - return (symbolOop)getObject(id); -} template <> inline constantPoolOop VmIds::get(jlong id) { assert((id & TYPE_MASK) == CONSTANT_POOL, "CONSTANT_POOL expected"); assert(getObject(id)->is_constantPool(), "constantPoolOop expected"); @@ -135,20 +126,20 @@ return getStub(getBoxedLong(obj)); } -template <> inline Handle VmIds::toString(symbolOop symbol, TRAPS) { +template <> inline Handle VmIds::toString(Symbol* symbol, TRAPS) { return java_lang_String::create_from_symbol(symbol, THREAD); } -template <> inline oop VmIds::toString(symbolOop symbol, TRAPS) { +template <> inline oop VmIds::toString(Symbol* symbol, TRAPS) { return toString(symbol, THREAD)(); } -template <> inline jstring VmIds::toString(symbolOop symbol, TRAPS) { +template <> inline jstring VmIds::toString(Symbol* symbol, TRAPS) { return (jstring)JNIHandles::make_local(toString(symbol, THREAD)); } -template <> inline jobject VmIds::toString(symbolOop symbol, TRAPS) { +template <> inline jobject VmIds::toString(Symbol* symbol, TRAPS) { return JNIHandles::make_local(toString(symbol, THREAD)); } -inline symbolOop VmIds::toSymbol(jstring string) { +inline Symbol* VmIds::toSymbol(jstring string) { return java_lang_String::as_symbol_or_null(JNIHandles::resolve(string)); } diff -r d25d4ca69222 -r 9569fdf936ff src/share/vm/ci/ciSymbol.hpp --- a/src/share/vm/ci/ciSymbol.hpp Wed Feb 16 13:47:20 2011 +0100 +++ b/src/share/vm/ci/ciSymbol.hpp Wed Feb 16 14:21:52 2011 +0100 @@ -53,11 +53,9 @@ ciSymbol(Symbol* s); // normal case, for symbols not mentioned in vmSymbols ciSymbol(Symbol* s, vmSymbols::SID sid); // for use with vmSymbols +public: Symbol* get_symbol() const { return _symbol; } -public: - symbolOop get_symbolOop() const { return (symbolOop)get_oop(); } - private: const char* type_string() { return "ciSymbol"; } diff -r d25d4ca69222 -r 9569fdf936ff src/share/vm/runtime/javaCalls.cpp --- a/src/share/vm/runtime/javaCalls.cpp Wed Feb 16 13:47:20 2011 +0100 +++ b/src/share/vm/runtime/javaCalls.cpp Wed Feb 16 14:21:52 2011 +0100 @@ -201,7 +201,7 @@ // ============ Interface calls ============ -void JavaCalls::call_interface(JavaValue* result, KlassHandle spec_klass, symbolHandle name, symbolHandle signature, JavaCallArguments* args, TRAPS) { +void JavaCalls::call_interface(JavaValue* result, KlassHandle spec_klass, Symbol* name, Symbol* signature, JavaCallArguments* args, TRAPS) { CallInfo callinfo; Handle receiver = args->receiver(); KlassHandle recvrKlass(THREAD, receiver.is_null() ? (klassOop)NULL : receiver->klass()); diff -r d25d4ca69222 -r 9569fdf936ff src/share/vm/runtime/javaCalls.hpp --- a/src/share/vm/runtime/javaCalls.hpp Wed Feb 16 13:47:20 2011 +0100 +++ b/src/share/vm/runtime/javaCalls.hpp Wed Feb 16 14:21:52 2011 +0100 @@ -199,7 +199,7 @@ // ------------ // The receiver must be first oop in argument list - static void call_interface(JavaValue* result, KlassHandle spec_klass, symbolHandle name, symbolHandle signature, JavaCallArguments* args, TRAPS); + static void call_interface(JavaValue* result, KlassHandle spec_klass, Symbol* name, Symbol* signature, JavaCallArguments* args, TRAPS); // virtual call // ------------