meth: fix some build problems for JPRT
authorjrose
Sat Aug 30 18:16:55 2008 -0700 (14 months ago)
changeset 210df7809c0e25
parent 20cd9dcdc11080
child 224b88945bc8f3
meth: fix some build problems for JPRT
meth.patch
--- a/meth.patch Sat Aug 30 02:47:18 2008 -0700
+++ b/meth.patch Sat Aug 30 18:16:55 2008 -0700
@@ -3307,7 +3307,7 @@ diff --git a/src/cpu/x86/vm/templateTabl
+ __ get_cache_and_index_at_bcp(Rcache, index, 1, is_invokedynamic);
+ if (is_invokedynamic) {
+ // we are resolved if the f1 field contains a non-null CallSite object
-+ __ cmpptr(Address(Rcache, index, Address::times_ptr, constantPoolCacheOopDesc::base_offset() + ConstantPoolCacheEntry::f1_offset()), NULL);
++ __ cmpptr(Address(Rcache, index, Address::times_ptr, constantPoolCacheOopDesc::base_offset() + ConstantPoolCacheEntry::f1_offset()), (int32_t) NULL_WORD);
+ __ jcc(Assembler::notEqual, resolved);
+ } else {
+ __ movl(temp, Address(Rcache, index, Address::times_4, constantPoolCacheOopDesc::base_offset() + ConstantPoolCacheEntry::indices_offset()));
@@ -3630,7 +3630,7 @@ diff --git a/src/cpu/x86/vm/templateTabl
+ __ cmpptr(Address(Rcache,
+ index, Address::times_ptr,
+ constantPoolCacheOopDesc::base_offset() +
-+ ConstantPoolCacheEntry::f1_offset()), NULL);
++ ConstantPoolCacheEntry::f1_offset()), (int32_t) NULL_WORD);
+ __ jcc(Assembler::notEqual, resolved);
+ } else {
+ __ movl(temp, Address(Rcache,
@@ -4193,15 +4193,7 @@ diff --git a/src/share/vm/ci/bcEscapeAna
diff --git a/src/share/vm/ci/bcEscapeAnalyzer.cpp b/src/share/vm/ci/bcEscapeAnalyzer.cpp
--- a/src/share/vm/ci/bcEscapeAnalyzer.cpp
+++ b/src/share/vm/ci/bcEscapeAnalyzer.cpp
-@@ -834,6 +834,7 @@
- case Bytecodes::_invokespecial:
- case Bytecodes::_invokestatic:
- case Bytecodes::_invokeinterface:
-+ do_invoke:
- { bool will_link;
- ciMethod* target = s.get_method(will_link);
- ciKlass* holder = s.get_declared_method_holder();
-@@ -847,9 +848,6 @@
+@@ -847,9 +847,6 @@
state.lpush();
}
}
@@ -4594,7 +4586,7 @@ diff --git a/src/share/vm/classfile/java
+ fieldDescriptor* fd,
+ bool allow_super = false) {
+ if (allow_super)
-+ return ik->find_field(name_symbol, signature_symbol, fd);
++ return ik->find_field(name_symbol, signature_symbol, fd) != NULL;
+ else
+ return ik->find_local_field(name_symbol, signature_symbol, fd);
+}
@@ -4612,23 +4604,7 @@ diff --git a/src/share/vm/classfile/java
ResourceMark rm;
tty->print_cr("Invalid layout of %s at %s", ik->external_name(), name_symbol->as_C_string());
fatal("Invalid layout of preloaded class");
-@@ -39,16 +50,31 @@
- dest_offset = fd.offset();
- }
-
-+#if 0 //@@@@
-+static void
-+compute_offset(int &dest_offset,
-+ klassOop klass_oop, symbolOop name_symbol, klassOop signature_klass,
-+ bool allow_super = false) {
-+ EXCEPTION_MARK;
-+ ResourceMark rm(THREAD);
-+ const char* signature_name = Klass::cast(signature_klass)->signature_name();
-+ symbolOop signature_symbol = oopFactory::new_symbol(signature_name, CATCH);
-+ compute_offset(dest_offset, klass_oop, name_symbol, signature_symbol, allow_super);
-+}
-+#endif //@@@
-+
+@@ -42,13 +53,15 @@
// Same as above but for "optional" offsets that might not be present in certain JDK versions
static void
compute_optional_offset(int& dest_offset,
@@ -4646,7 +4622,7 @@ diff --git a/src/share/vm/classfile/java
Handle java_lang_String::basic_create(int length, bool tenured, TRAPS) {
// Create the String object first, so there's a chance that the String
-@@ -1970,6 +1996,21 @@
+@@ -1970,6 +1983,21 @@
}
@@ -4668,7 +4644,7 @@ diff --git a/src/share/vm/classfile/java
// Support for java_lang_ref_Reference
oop java_lang_ref_Reference::pending_list_lock() {
instanceKlass* ik = instanceKlass::cast(SystemDictionary::reference_klass());
-@@ -2016,6 +2057,207 @@
+@@ -2016,6 +2044,207 @@
int offset = ik->offset_of_static_fields() + static_clock_offset;
SystemDictionary::soft_reference_klass()->long_field_put(offset, value);
@@ -4876,7 +4852,7 @@ diff --git a/src/share/vm/classfile/java
}
-@@ -2354,6 +2596,13 @@
+@@ -2354,6 +2583,13 @@
java_lang_System::compute_offsets();
java_lang_Thread::compute_offsets();
java_lang_ThreadGroup::compute_offsets();
@@ -4890,7 +4866,7 @@ diff --git a/src/share/vm/classfile/java
java_security_AccessControlContext::compute_offsets();
// Initialize reflection classes. The layouts of these classes
// changed with the new reflection implementation in JDK 1.4, and
-@@ -2371,6 +2620,9 @@
+@@ -2371,6 +2607,9 @@
sun_reflect_UnsafeStaticFieldAccessorImpl::compute_offsets();
}
sun_misc_AtomicLongCSImpl::compute_offsets();
@@ -5266,7 +5242,7 @@ diff --git a/src/share/vm/classfile/syst
+ ResourceMark rm;
+ char fixed_buf[512 DEBUG_ONLY(* 0 + 20)];
+ int buf_len = prepend->utf8_length() + signature->utf8_length() + 1;
-+ char* buf = (buf_len <= sizeof(fixed_buf)
++ char* buf = (buf_len <= (int) sizeof(fixed_buf)
+ ? fixed_buf
+ : NEW_RESOURCE_ARRAY_IN_THREAD(THREAD, char, buf_len));
+ assert(prepend->byte_at(0) != '(', "argument sig");
@@ -5275,14 +5251,14 @@ diff --git a/src/share/vm/classfile/syst
+ buf[--fillp] = 0;
+ fillp -= (len = signature->utf8_length());
+ memcpy(&buf[fillp], signature->bytes(), len);
-+ assert(strlen(&buf[fillp]) == len, "");
++ assert((int) strlen(&buf[fillp]) == len, "");
+ assert(buf[fillp] == '(', "skip this");
+ fillp++; // kill the paren
+ fillp -= (len = prepend->utf8_length());
+ memcpy(&buf[fillp], prepend->bytes(), len);
+ buf[--fillp] = '(';
+ assert(fillp == 0, "dead reckoning");
-+ assert(strlen(buf) == buf_len - 1, "");
++ assert((int) strlen(buf) == buf_len - 1, "");
+ return oopFactory::new_symbol_handle(buf, THREAD);
+}
+
@@ -5363,7 +5339,7 @@ diff --git a/src/share/vm/classfile/syst
+
+ // call MethodType java.dyn.MethodType::makeImpl(Class rt, Class[] pts, false, true)
+ bool varargs = false, trusted = true;
-+ JavaCallArguments args(rt());
++ JavaCallArguments args(Handle(THREAD, rt()));
+ args.push_oop(pts());
+ args.push_int(false);
+ args.push_int(trusted);
@@ -5386,7 +5362,7 @@ diff --git a/src/share/vm/classfile/syst
+ Handle empty;
+ // call java.dyn.impl.DynCallSite::makeSite(caller, name, mtype, vmdata)
+ oop name_str_oop = StringTable::intern(name(), CHECK_(empty)); // not a handle!
-+ JavaCallArguments args(caller->java_mirror());
++ JavaCallArguments args(Handle(THREAD, caller->java_mirror()));
+ args.push_oop(name_str_oop);
+ args.push_oop(mh_invdyn->method_handle_type());
+ args.push_long(vmdata);
@@ -5413,9 +5389,9 @@ diff --git a/src/share/vm/classfile/syst
+ }
+
+ // call java.dyn.Linkage::findBootstrapMethod(caller, sbk)
-+ JavaCallArguments args(ik->java_mirror());
++ JavaCallArguments args(Handle(THREAD, ik->java_mirror()));
+ if (search_bootstrap_klass.is_null())
-+ args.push_oop(NULL);
++ args.push_oop(Handle());
+ else
+ args.push_oop(search_bootstrap_klass->java_mirror());
+ JavaValue result(T_OBJECT);
@@ -5719,11 +5695,12 @@ diff --git a/src/share/vm/includeDB_gc_p
diff --git a/src/share/vm/includeDB_gc_parallel b/src/share/vm/includeDB_gc_parallel
--- a/src/share/vm/includeDB_gc_parallel
+++ b/src/share/vm/includeDB_gc_parallel
-@@ -25,6 +25,11 @@
+@@ -25,6 +25,12 @@
collectorPolicy.cpp cmsGCAdaptivePolicyCounters.hpp
compiledICHolderKlass.cpp oop.pcgc.inline.hpp
+
++constantPoolKlass.cpp cardTableRS.hpp
+constantPoolKlass.cpp oop.pcgc.inline.hpp
+constantPoolKlass.cpp psPromotionManager.inline.hpp
+constantPoolKlass.cpp psScavenge.inline.hpp
@@ -5772,7 +5749,7 @@ diff --git a/src/share/vm/interpreter/ab
+ }
+ template<class T>
+ static T* subword_addr_in_slot(intptr_t* slot_addr) {
-+ if (sizeof(T) < wordSize && !Bytes::is_Java_byte_ordering_different())
++ if ((int) sizeof(T) < wordSize && !Bytes::is_Java_byte_ordering_different())
+ // big-endian LP64
+ return (T*)(slot_addr + 1) - 1;
+ else
@@ -7804,6 +7781,18 @@ diff --git a/src/share/vm/oops/instanceK
OopMapBlock* map = ik->start_of_nonstatic_oop_maps();
OopMapBlock* end_map = map + ik->nonstatic_oop_map_size();
while (map < end_map) {
+diff --git a/src/share/vm/oops/klass.cpp b/src/share/vm/oops/klass.cpp
+--- a/src/share/vm/oops/klass.cpp
++++ b/src/share/vm/oops/klass.cpp
+@@ -488,7 +488,7 @@
+
+ size_t result_len = name()->utf8_length();
+ char* result = NEW_RESOURCE_ARRAY(char, result_len + hash_len + 1);
+- name()->as_klass_external_name(result, result_len + 1);
++ name()->as_klass_external_name(result, (int) result_len + 1);
+ assert(strlen(result) == result_len, "");
+ strcpy(result + result_len, hash_buf);
+ assert(strlen(result) == result_len + hash_len, "");
diff --git a/src/share/vm/oops/klassVtable.cpp b/src/share/vm/oops/klassVtable.cpp
--- a/src/share/vm/oops/klassVtable.cpp
+++ b/src/share/vm/oops/klassVtable.cpp
@@ -7928,7 +7917,7 @@ diff --git a/src/share/vm/oops/methodOop
+methodOop methodOopDesc::related_invoke_method(int relation) const {
+ if (!is_method_handle_invoke()) { assert(false, "caller resp."); return NULL; }
+ methodOop idm = (methodOop) constants()->pseudo_string_at(_imcp_related_invoke_method);
-+ if (idm == this) return NULL;
++ if (this == idm) return NULL;
+#ifdef ASSERT
+ assert(idm->is_method() && methodOop(idm)->is_method_handle_invoke(), "");
+ klassOop expect = ((relation == RM_invdyn)
@@ -7943,7 +7932,7 @@ diff --git a/src/share/vm/oops/methodOop
+ if (!is_method_handle_invoke()) { assert(false, "caller resp."); return; }
+
+#ifdef ASSERT
-+ assert(idm != NULL && idm != this && idm->is_method() && methodOop(idm)->is_method_handle_invoke(), "");
++ assert(idm != NULL && this != idm && idm->is_method() && methodOop(idm)->is_method_handle_invoke(), "");
+ if (method_holder() == SystemDictionary::java_dyn_MethodHandle_klass()) {
+ assert(relation == RM_invdyn, "expected relation");
+ assert(idm->method_holder() == SystemDictionary::java_dyn_Dynamic_klass(), "MH -> Dyn");
@@ -7956,7 +7945,7 @@ diff --git a/src/share/vm/oops/methodOop
+ ShouldNotReachHere();
+ }
+ methodOop oldidm = (methodOop) constants()->pseudo_string_at(_imcp_related_invoke_method);
-+ assert(oldidm == this || oldidm == idm, "one change allowed");
++ assert(this == oldidm || idm == oldidm, "one change allowed");
+#endif //ASSERT
+
+ constants()->pseudo_string_at_put(_imcp_related_invoke_method, idm);
@@ -8798,7 +8787,7 @@ new file mode 100644
+ if (WizardMode || Verbose) { // Warning: this calls Java code on the MH!
+ // call Object.toString()
+ symbolOop name = vmSymbols::toString_name(), sig = vmSymbols::void_string_signature();
-+ JavaCallArguments args(JNIHandles::resolve_non_null(erased_jh));
++ JavaCallArguments args(Handle(THREAD, JNIHandles::resolve_non_null(erased_jh)));
+ JavaValue result(T_OBJECT);
+ JavaCalls::call_virtual(&result, SystemDictionary::object_klass(), name, sig,
+ &args, CHECK);
@@ -9051,7 +9040,7 @@ new file mode 100644
+class MethodEntry {
+ public:
+ class Data {
-+ friend MethodEntry;
++ friend class MethodEntry;
+ size_t _total_size; // size including Data and code stub
+ MethodEntry* _type_checking_entry;
+ address _from_interpreted_entry;
@@ -9079,10 +9068,10 @@ new file mode 100644
+
+ // Compiler support:
+ static int from_interpreted_entry_offset_in_bytes() {
-+ return offset_of(Data, _from_interpreted_entry) - sizeof(Data);
++ return (int)( offset_of(Data, _from_interpreted_entry) - sizeof(Data) );
+ }
+ static int type_checking_entry_offset_in_bytes() {
-+ return offset_of(Data, _from_interpreted_entry) - sizeof(Data);
++ return (int)( offset_of(Data, _from_interpreted_entry) - sizeof(Data) );
+ }
+
+ static address start_compiled_entry(MacroAssembler* _masm,
@@ -9496,6 +9485,70 @@ diff --git a/src/share/vm/utilities/arra
void appendAll(const stack_name* stack) { push_all(stack); } \
etype last() const { return top(); } \
}; \
+diff --git a/src/share/vm/utilities/debug.cpp b/src/share/vm/utilities/debug.cpp
+--- a/src/share/vm/utilities/debug.cpp
++++ b/src/share/vm/utilities/debug.cpp
+@@ -567,7 +567,7 @@
+ }
+ // the InlineCacheBuffer is using stubs generated into a buffer blob
+ if (InlineCacheBuffer::contains(addr)) {
+- tty->print_cr(INTPTR_FORMAT "is pointing into InlineCacheBuffer", addr);
++ tty->print_cr(INTPTR_FORMAT " is pointing into InlineCacheBuffer", addr);
+ return;
+ }
+ VtableStub* v = VtableStubs::stub_containing(addr);
+@@ -595,7 +595,7 @@
+ return;
+ }
+
+- if (Universe::heap()->is_in_reserved(addr)) {
++ if (Universe::heap()->is_in(addr)) {
+ HeapWord* p = Universe::heap()->block_start(addr);
+ bool print = false;
+ // If we couldn't find it it just may mean that heap wasn't parseable
+@@ -621,24 +621,28 @@
+ }
+ return;
+ }
++ } else if (Universe::heap()->is_in_reserved(addr)) {
++ tty->print_cr(INTPTR_FORMAT " is an unallocated location in the heap", addr);
++ return;
+ }
++
+ if (JNIHandles::is_global_handle((jobject) addr)) {
+- tty->print_cr(INTPTR_FORMAT "is a global jni handle", addr);
++ tty->print_cr(INTPTR_FORMAT " is a global jni handle", addr);
+ return;
+ }
+ if (JNIHandles::is_weak_global_handle((jobject) addr)) {
+- tty->print_cr(INTPTR_FORMAT "is a weak global jni handle", addr);
++ tty->print_cr(INTPTR_FORMAT " is a weak global jni handle", addr);
+ return;
+ }
+ if (JNIHandleBlock::any_contains((jobject) addr)) {
+- tty->print_cr(INTPTR_FORMAT "is a local jni handle", addr);
++ tty->print_cr(INTPTR_FORMAT " is a local jni handle", addr);
+ return;
+ }
+
+ for(JavaThread *thread = Threads::first(); thread; thread = thread->next()) {
+- // Check for priviledge stack
++ // Check for privilege stack
+ if (thread->privileged_stack_top() != NULL && thread->privileged_stack_top()->contains(addr)) {
+- tty->print_cr(INTPTR_FORMAT "is pointing into the priviledge stack for thread: " INTPTR_FORMAT, addr, thread);
++ tty->print_cr(INTPTR_FORMAT " is pointing into the privilege stack for thread: " INTPTR_FORMAT, addr, thread);
+ return;
+ }
+ // If the addr is a java thread print information about that.
+@@ -659,7 +663,7 @@
+ return;
+ }
+
+- tty->print_cr(INTPTR_FORMAT "is pointing to unknown location", addr);
++ tty->print_cr(INTPTR_FORMAT " is pointing to unknown location", addr);
+ }
+
+
diff --git a/src/share/vm/utilities/globalDefinitions.hpp b/src/share/vm/utilities/globalDefinitions.hpp
--- a/src/share/vm/utilities/globalDefinitions.hpp
+++ b/src/share/vm/utilities/globalDefinitions.hpp