Mercurial > hg > truffle
comparison src/cpu/x86/vm/c1_LIRGenerator_x86.cpp @ 1572:87fc6aca31ab
6955349: C1: Make G1 barriers work with x64
Summary: This fixes G1 barriers in c1 on x64.
Reviewed-by: never
author | iveresov |
---|---|
date | Thu, 27 May 2010 22:01:55 -0700 |
parents | 323bd24c6520 |
children | e9ff18c4ace7 |
comparison
equal
deleted
inserted
replaced
1571:2d127394260e | 1572:87fc6aca31ab |
---|---|
173 // This store will need a precise card mark, so go ahead and | 173 // This store will need a precise card mark, so go ahead and |
174 // compute the full adddres instead of computing once for the | 174 // compute the full adddres instead of computing once for the |
175 // store and again for the card mark. | 175 // store and again for the card mark. |
176 LIR_Opr tmp = new_pointer_register(); | 176 LIR_Opr tmp = new_pointer_register(); |
177 __ leal(LIR_OprFact::address(addr), tmp); | 177 __ leal(LIR_OprFact::address(addr), tmp); |
178 return new LIR_Address(tmp, 0, type); | 178 return new LIR_Address(tmp, type); |
179 } else { | 179 } else { |
180 return addr; | 180 return addr; |
181 } | 181 } |
182 } | 182 } |
183 | 183 |
184 | 184 |
185 void LIRGenerator::increment_counter(address counter, int step) { | 185 void LIRGenerator::increment_counter(address counter, int step) { |
186 LIR_Opr pointer = new_pointer_register(); | 186 LIR_Opr pointer = new_pointer_register(); |
187 __ move(LIR_OprFact::intptrConst(counter), pointer); | 187 __ move(LIR_OprFact::intptrConst(counter), pointer); |
188 LIR_Address* addr = new LIR_Address(pointer, 0, T_INT); | 188 LIR_Address* addr = new LIR_Address(pointer, T_INT); |
189 increment_counter(addr, step); | 189 increment_counter(addr, step); |
190 } | 190 } |
191 | 191 |
192 | 192 |
193 void LIRGenerator::increment_counter(LIR_Address* addr, int step) { | 193 void LIRGenerator::increment_counter(LIR_Address* addr, int step) { |