773 __ leal(end, Address(start, count, Address::times_4, -4)); |
773 __ leal(end, Address(start, count, Address::times_4, -4)); |
774 __ shrl(start, CardTableModRefBS::card_shift); |
774 __ shrl(start, CardTableModRefBS::card_shift); |
775 __ shrl(end, CardTableModRefBS::card_shift); |
775 __ shrl(end, CardTableModRefBS::card_shift); |
776 __ subl(end, start); // end --> count |
776 __ subl(end, start); // end --> count |
777 __ BIND(L_loop); |
777 __ BIND(L_loop); |
778 ExternalAddress base((address)ct->byte_map_base); |
778 intptr_t disp = (intptr_t) ct->byte_map_base; |
779 Address index(start, count, Address::times_1, 0); |
779 Address cardtable(start, count, Address::times_1, disp); |
780 __ movbyte(ArrayAddress(base, index), 0); |
780 __ movb(cardtable, 0); |
781 __ decrement(count); |
781 __ decrement(count); |
782 __ jcc(Assembler::greaterEqual, L_loop); |
782 __ jcc(Assembler::greaterEqual, L_loop); |
783 } |
783 } |
784 break; |
784 break; |
785 case BarrierSet::ModRef: |
785 case BarrierSet::ModRef: |