comparison src/cpu/x86/vm/assembler_x86_64.hpp @ 360:5d254928c888

Merge
author ysr
date Wed, 27 Aug 2008 11:20:46 -0700
parents 1ee8caae33af
children
comparison
equal deleted inserted replaced
341:d60e4e6d7f72 360:5d254928c888
220 // Address. An index of 4 (rsp) corresponds to having no index, so convert 220 // Address. An index of 4 (rsp) corresponds to having no index, so convert
221 // that to noreg for the Address constructor. 221 // that to noreg for the Address constructor.
222 static Address make_raw(int base, int index, int scale, int disp); 222 static Address make_raw(int base, int index, int scale, int disp);
223 223
224 static Address make_array(ArrayAddress); 224 static Address make_array(ArrayAddress);
225 Register base() const {
226 return _base;
227 }
228
229 Register index() const {
230 return _index;
231 }
232
233 int disp() const {
234 return _disp;
235 }
236
225 237
226 private: 238 private:
227 bool base_needs_rex() const { 239 bool base_needs_rex() const {
228 return _base != noreg && _base->encoding() >= 8; 240 return _base != noreg && _base->encoding() >= 8;
229 } 241 }
1202 void store_check(Register obj, Address dst); // same as above, dst 1214 void store_check(Register obj, Address dst); // same as above, dst
1203 // is exact store 1215 // is exact store
1204 // location (reg. is 1216 // location (reg. is
1205 // destroyed) 1217 // destroyed)
1206 1218
1219 void g1_write_barrier_pre(Register obj, Register tmp, Register tmp2, bool tosca_live );
1220 void g1_write_barrier_post(Register store_addr, Register new_val, Register tmp, Register tmp2);
1221
1207 // split store_check(Register obj) to enhance instruction interleaving 1222 // split store_check(Register obj) to enhance instruction interleaving
1208 void store_check_part_1(Register obj); 1223 void store_check_part_1(Register obj);
1209 void store_check_part_2(Register obj); 1224 void store_check_part_2(Register obj);
1210 1225
1211 // C 'boolean' to Java boolean: x == 0 ? 0 : 1 1226 // C 'boolean' to Java boolean: x == 0 ? 0 : 1