mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-22 03:54:33 +02:00
6953477: Increase portability and flexibility of building Hotspot
A collection of portability improvements including shared code support for PPC, ARM platforms, software floating point, cross compilation support and improvements in error crash detail. Reviewed-by: phh, never, coleenp, dholmes
This commit is contained in:
parent
c45761e2a8
commit
b95c7e9523
113 changed files with 1669 additions and 559 deletions
|
@ -564,72 +564,53 @@ void CodeBlob::verify() {
|
|||
ShouldNotReachHere();
|
||||
}
|
||||
|
||||
#ifndef PRODUCT
|
||||
|
||||
void CodeBlob::print() const {
|
||||
tty->print_cr("[CodeBlob (" INTPTR_FORMAT ")]", this);
|
||||
tty->print_cr("Framesize: %d", _frame_size);
|
||||
void CodeBlob::print_on(outputStream* st) const {
|
||||
st->print_cr("[CodeBlob (" INTPTR_FORMAT ")]", this);
|
||||
st->print_cr("Framesize: %d", _frame_size);
|
||||
}
|
||||
|
||||
|
||||
void CodeBlob::print_value_on(outputStream* st) const {
|
||||
st->print_cr("[CodeBlob]");
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
void BufferBlob::verify() {
|
||||
// unimplemented
|
||||
}
|
||||
|
||||
#ifndef PRODUCT
|
||||
|
||||
void BufferBlob::print() const {
|
||||
CodeBlob::print();
|
||||
print_value_on(tty);
|
||||
void BufferBlob::print_on(outputStream* st) const {
|
||||
CodeBlob::print_on(st);
|
||||
print_value_on(st);
|
||||
}
|
||||
|
||||
|
||||
void BufferBlob::print_value_on(outputStream* st) const {
|
||||
st->print_cr("BufferBlob (" INTPTR_FORMAT ") used for %s", this, name());
|
||||
}
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
void RuntimeStub::verify() {
|
||||
// unimplemented
|
||||
}
|
||||
|
||||
#ifndef PRODUCT
|
||||
|
||||
void RuntimeStub::print() const {
|
||||
CodeBlob::print();
|
||||
tty->print("Runtime Stub (" INTPTR_FORMAT "): ", this);
|
||||
tty->print_cr(name());
|
||||
Disassembler::decode((CodeBlob*)this);
|
||||
void RuntimeStub::print_on(outputStream* st) const {
|
||||
CodeBlob::print_on(st);
|
||||
st->print("Runtime Stub (" INTPTR_FORMAT "): ", this);
|
||||
st->print_cr(name());
|
||||
Disassembler::decode((CodeBlob*)this, st);
|
||||
}
|
||||
|
||||
|
||||
void RuntimeStub::print_value_on(outputStream* st) const {
|
||||
st->print("RuntimeStub (" INTPTR_FORMAT "): ", this); st->print(name());
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
void SingletonBlob::verify() {
|
||||
// unimplemented
|
||||
}
|
||||
|
||||
#ifndef PRODUCT
|
||||
|
||||
void SingletonBlob::print() const {
|
||||
CodeBlob::print();
|
||||
tty->print_cr(name());
|
||||
Disassembler::decode((CodeBlob*)this);
|
||||
void SingletonBlob::print_on(outputStream* st) const {
|
||||
CodeBlob::print_on(st);
|
||||
st->print_cr(name());
|
||||
Disassembler::decode((CodeBlob*)this, st);
|
||||
}
|
||||
|
||||
|
||||
void SingletonBlob::print_value_on(outputStream* st) const {
|
||||
st->print_cr(name());
|
||||
}
|
||||
|
@ -637,5 +618,3 @@ void SingletonBlob::print_value_on(outputStream* st) const {
|
|||
void DeoptimizationBlob::print_value_on(outputStream* st) const {
|
||||
st->print_cr("Deoptimization (frame not available)");
|
||||
}
|
||||
|
||||
#endif // PRODUCT
|
||||
|
|
|
@ -163,8 +163,9 @@ class CodeBlob VALUE_OBJ_CLASS_SPEC {
|
|||
|
||||
// Debugging
|
||||
virtual void verify();
|
||||
virtual void print() const PRODUCT_RETURN;
|
||||
virtual void print_value_on(outputStream* st) const PRODUCT_RETURN;
|
||||
void print() const { print_on(tty); }
|
||||
virtual void print_on(outputStream* st) const;
|
||||
virtual void print_value_on(outputStream* st) const;
|
||||
|
||||
// Print the comment associated with offset on stream, if there is one
|
||||
virtual void print_block_comment(outputStream* stream, address block_begin) {
|
||||
|
@ -209,8 +210,8 @@ class BufferBlob: public CodeBlob {
|
|||
bool is_alive() const { return true; }
|
||||
|
||||
void verify();
|
||||
void print() const PRODUCT_RETURN;
|
||||
void print_value_on(outputStream* st) const PRODUCT_RETURN;
|
||||
void print_on(outputStream* st) const;
|
||||
void print_value_on(outputStream* st) const;
|
||||
};
|
||||
|
||||
|
||||
|
@ -292,8 +293,8 @@ class RuntimeStub: public CodeBlob {
|
|||
bool is_alive() const { return true; }
|
||||
|
||||
void verify();
|
||||
void print() const PRODUCT_RETURN;
|
||||
void print_value_on(outputStream* st) const PRODUCT_RETURN;
|
||||
void print_on(outputStream* st) const;
|
||||
void print_value_on(outputStream* st) const;
|
||||
};
|
||||
|
||||
|
||||
|
@ -317,8 +318,8 @@ class SingletonBlob: public CodeBlob {
|
|||
bool is_alive() const { return true; }
|
||||
|
||||
void verify(); // does nothing
|
||||
void print() const PRODUCT_RETURN;
|
||||
void print_value_on(outputStream* st) const PRODUCT_RETURN;
|
||||
void print_on(outputStream* st) const;
|
||||
void print_value_on(outputStream* st) const;
|
||||
};
|
||||
|
||||
|
||||
|
@ -373,7 +374,7 @@ class DeoptimizationBlob: public SingletonBlob {
|
|||
void preserve_callee_argument_oops(frame fr, const RegisterMap *reg_map, OopClosure* f) { /* Nothing to do */ }
|
||||
|
||||
// Printing
|
||||
void print_value_on(outputStream* st) const PRODUCT_RETURN;
|
||||
void print_value_on(outputStream* st) const;
|
||||
|
||||
address unpack() const { return instructions_begin() + _unpack_offset; }
|
||||
address unpack_with_exception() const { return instructions_begin() + _unpack_with_exception; }
|
||||
|
|
|
@ -606,6 +606,8 @@ public:
|
|||
void print_nul_chk_table() PRODUCT_RETURN;
|
||||
void print_nmethod(bool print_code);
|
||||
|
||||
// need to re-define this from CodeBlob else the overload hides it
|
||||
virtual void print_on(outputStream* st) const { CodeBlob::print_on(st); }
|
||||
void print_on(outputStream* st, const char* title) const;
|
||||
|
||||
// Logging
|
||||
|
|
|
@ -67,8 +67,8 @@ void* VtableStub::operator new(size_t size, int code_size) {
|
|||
}
|
||||
|
||||
|
||||
void VtableStub::print() {
|
||||
tty->print("vtable stub (index = %d, receiver_location = %d, code = [" INTPTR_FORMAT ", " INTPTR_FORMAT "[)",
|
||||
void VtableStub::print_on(outputStream* st) const {
|
||||
st->print("vtable stub (index = %d, receiver_location = %d, code = [" INTPTR_FORMAT ", " INTPTR_FORMAT "[)",
|
||||
index(), receiver_location(), code_begin(), code_end());
|
||||
}
|
||||
|
||||
|
|
|
@ -86,7 +86,9 @@ class VtableStub {
|
|||
bool is_abstract_method_error(address epc) { return epc == code_begin()+_ame_offset; }
|
||||
bool is_null_pointer_exception(address epc) { return epc == code_begin()+_npe_offset; }
|
||||
|
||||
void print();
|
||||
void print_on(outputStream* st) const;
|
||||
void print() const { print_on(tty); }
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue