Mercurial > hg > graal-jvmci-8
comparison src/cpu/x86/vm/stubGenerator_x86_64.cpp @ 249:910a4cb98e9e
6717457: Internal Error (src/share/vm/code/relocInfo.hpp:1089)
Reviewed-by: kvn
author | never |
---|---|
date | Fri, 25 Jul 2008 09:07:29 -0700 |
parents | d1605aabd0a1 |
children | dc7f315e41f7 1ee8caae33af |
comparison
equal
deleted
inserted
replaced
248:18aab3cdd513 | 249:910a4cb98e9e |
---|---|
1220 | 1220 |
1221 __ shrq(start, CardTableModRefBS::card_shift); | 1221 __ shrq(start, CardTableModRefBS::card_shift); |
1222 __ shrq(end, CardTableModRefBS::card_shift); | 1222 __ shrq(end, CardTableModRefBS::card_shift); |
1223 __ subq(end, start); // number of bytes to copy | 1223 __ subq(end, start); // number of bytes to copy |
1224 | 1224 |
1225 intptr_t disp = (intptr_t) ct->byte_map_base; | |
1226 if (__ is_simm32(disp)) { | |
1227 Address cardtable(noreg, noreg, Address::no_scale, disp); | |
1228 __ lea(scratch, cardtable); | |
1229 } else { | |
1230 ExternalAddress cardtable((address)disp); | |
1231 __ lea(scratch, cardtable); | |
1232 } | |
1233 | |
1225 const Register count = end; // 'end' register contains bytes count now | 1234 const Register count = end; // 'end' register contains bytes count now |
1226 __ lea(scratch, ExternalAddress((address)ct->byte_map_base)); | |
1227 __ addq(start, scratch); | 1235 __ addq(start, scratch); |
1228 __ BIND(L_loop); | 1236 __ BIND(L_loop); |
1229 __ movb(Address(start, count, Address::times_1), 0); | 1237 __ movb(Address(start, count, Address::times_1), 0); |
1230 __ decrementq(count); | 1238 __ decrementq(count); |
1231 __ jcc(Assembler::greaterEqual, L_loop); | 1239 __ jcc(Assembler::greaterEqual, L_loop); |