6717457: Internal Error (src/share/vm/code/relocInfo.hpp:1089)
Reviewed-by: kvn
This commit is contained in:
parent
fcbf2d1245
commit
97c80b8c84
@ -779,9 +779,9 @@ class StubGenerator: public StubCodeGenerator {
|
||||
__ shrl(end, CardTableModRefBS::card_shift);
|
||||
__ subl(end, start); // end --> count
|
||||
__ BIND(L_loop);
|
||||
ExternalAddress base((address)ct->byte_map_base);
|
||||
Address index(start, count, Address::times_1, 0);
|
||||
__ movbyte(ArrayAddress(base, index), 0);
|
||||
intptr_t disp = (intptr_t) ct->byte_map_base;
|
||||
Address cardtable(start, count, Address::times_1, disp);
|
||||
__ movb(cardtable, 0);
|
||||
__ decrement(count);
|
||||
__ jcc(Assembler::greaterEqual, L_loop);
|
||||
}
|
||||
|
@ -1222,8 +1222,16 @@ class StubGenerator: public StubCodeGenerator {
|
||||
__ shrq(end, CardTableModRefBS::card_shift);
|
||||
__ subq(end, start); // number of bytes to copy
|
||||
|
||||
intptr_t disp = (intptr_t) ct->byte_map_base;
|
||||
if (__ is_simm32(disp)) {
|
||||
Address cardtable(noreg, noreg, Address::no_scale, disp);
|
||||
__ lea(scratch, cardtable);
|
||||
} else {
|
||||
ExternalAddress cardtable((address)disp);
|
||||
__ lea(scratch, cardtable);
|
||||
}
|
||||
|
||||
const Register count = end; // 'end' register contains bytes count now
|
||||
__ lea(scratch, ExternalAddress((address)ct->byte_map_base));
|
||||
__ addq(start, scratch);
|
||||
__ BIND(L_loop);
|
||||
__ movb(Address(start, count, Address::times_1), 0);
|
||||
|
Loading…
Reference in New Issue
Block a user