< prev index next >
src/hotspot/share/opto/output.cpp
Print this page
rev 53308 : 8247350: [aarch64] assert(false) failed: wrong size of mach node
Summary: use movptr() to load address of string
Reviewed-by: adinn, azeemj
*** 28,37 ****
--- 28,38 ----
#include "code/compiledIC.hpp"
#include "code/debugInfo.hpp"
#include "code/debugInfoRec.hpp"
#include "compiler/compileBroker.hpp"
#include "compiler/compilerDirectives.hpp"
+ #include "compiler/disassembler.hpp"
#include "compiler/oopMap.hpp"
#include "memory/allocation.inline.hpp"
#include "opto/ad.hpp"
#include "opto/callnode.hpp"
#include "opto/cfgnode.hpp"
*** 1397,1408 ****
if (failing()) {
return;
}
#ifdef ASSERT
! if (n->size(_regalloc) < (current_offset-instr_offset)) {
n->dump();
assert(false, "wrong size of mach node");
}
#endif
non_safepoints.observe_instruction(n, current_offset);
--- 1398,1418 ----
if (failing()) {
return;
}
#ifdef ASSERT
! uint n_size = n->size(C->regalloc());
! if (n_size < (current_offset-instr_offset)) {
! MachNode* mach = n->as_Mach();
n->dump();
+ mach->dump_format(C->regalloc(), tty);
+ tty->print_cr(" n_size (%d), current_offset (%d), instr_offset (%d)", n_size, current_offset, instr_offset);
+ Disassembler::decode(cb->insts_begin() + instr_offset, cb->insts_begin() + current_offset + 1, tty);
+ tty->print_cr(" ------------------- ");
+ BufferBlob* blob = this->scratch_buffer_blob();
+ address blob_begin = blob->content_begin();
+ Disassembler::decode(blob_begin, blob_begin + n_size + 1, tty);
assert(false, "wrong size of mach node");
}
#endif
non_safepoints.observe_instruction(n, current_offset);
< prev index next >