8291003: ARM32: constant_table.size assertion

Reviewed-by: shade
This commit is contained in:
Boris Ulasevich 2022-07-29 06:21:48 +00:00
parent cfe9026fe0
commit 18cd16d2ea
2 changed files with 4 additions and 3 deletions
src/hotspot
cpu/arm
share/asm

@ -236,7 +236,8 @@ void MachConstantBaseNode::emit(CodeBuffer& cbuf, PhaseRegAlloc* ra_) const {
Register r = as_Register(ra_->get_encode(this));
CodeSection* consts_section = __ code()->consts();
int consts_size = consts_section->align_at_start(consts_section->size());
// constants section size is aligned according to the align_at_start settings of the next section
int consts_size = CodeSection::align_at_start(consts_section->size(), CodeBuffer::SECT_INSTS);
assert(constant_table.size() == consts_size, "must be: %d == %d", constant_table.size(), consts_size);
// Materialize the constant table base.

@ -261,12 +261,12 @@ class CodeSection {
// Slop between sections, used only when allocating temporary BufferBlob buffers.
static csize_t end_slop() { return MAX2((int)sizeof(jdouble), (int)CodeEntryAlignment); }
csize_t align_at_start(csize_t off, int section) const {
static csize_t align_at_start(csize_t off, int section) {
return (csize_t) align_up(off, alignment(section));
}
csize_t align_at_start(csize_t off) const {
return (csize_t) align_up(off, alignment(_index));
return align_at_start(off, _index);
}
// Ensure there's enough space left in the current section.