src/cpu/x86/vm/stubGenerator_x86_32.cpp

changeset 791
1ee8caae33af
parent 777
37f87013dfd8
parent 684
910a4cb98e9e
child 797
f8199438385b
equal deleted inserted replaced
790:0edda524b58c 791:1ee8caae33af
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:

mercurial