equal
deleted
inserted
replaced
24 |
24 |
25 #ifndef CPU_X86_VM_MACROASSEMBLER_X86_HPP |
25 #ifndef CPU_X86_VM_MACROASSEMBLER_X86_HPP |
26 #define CPU_X86_VM_MACROASSEMBLER_X86_HPP |
26 #define CPU_X86_VM_MACROASSEMBLER_X86_HPP |
27 |
27 |
28 #include "asm/assembler.hpp" |
28 #include "asm/assembler.hpp" |
|
29 #include "utilities/macros.hpp" |
29 |
30 |
30 |
31 |
31 // MacroAssembler extends Assembler by frequently used macros. |
32 // MacroAssembler extends Assembler by frequently used macros. |
32 // |
33 // |
33 // Instructions for which a 'better' code sequence exists depending |
34 // Instructions for which a 'better' code sequence exists depending |
292 |
293 |
293 // Stores |
294 // Stores |
294 void store_check(Register obj); // store check for obj - register is destroyed afterwards |
295 void store_check(Register obj); // store check for obj - register is destroyed afterwards |
295 void store_check(Register obj, Address dst); // same as above, dst is exact store location (reg. is destroyed) |
296 void store_check(Register obj, Address dst); // same as above, dst is exact store location (reg. is destroyed) |
296 |
297 |
297 #ifndef SERIALGC |
298 #if INCLUDE_ALL_GCS |
298 |
299 |
299 void g1_write_barrier_pre(Register obj, |
300 void g1_write_barrier_pre(Register obj, |
300 Register pre_val, |
301 Register pre_val, |
301 Register thread, |
302 Register thread, |
302 Register tmp, |
303 Register tmp, |
307 Register new_val, |
308 Register new_val, |
308 Register thread, |
309 Register thread, |
309 Register tmp, |
310 Register tmp, |
310 Register tmp2); |
311 Register tmp2); |
311 |
312 |
312 #endif // SERIALGC |
313 #endif // INCLUDE_ALL_GCS |
313 |
314 |
314 // split store_check(Register obj) to enhance instruction interleaving |
315 // split store_check(Register obj) to enhance instruction interleaving |
315 void store_check_part_1(Register obj); |
316 void store_check_part_1(Register obj); |
316 void store_check_part_2(Register obj); |
317 void store_check_part_2(Register obj); |
317 |
318 |