< prev index next >

src/hotspot/cpu/arm/macroAssembler_arm.hpp

Print this page
rev 49939 : 8201786: Modularize interpreter GC barriers: leftovers for ARM32
Reviewed-by: enevill, eosterlund

*** 399,429 **** void biased_locking_enter_with_cas(Register obj_reg, Register old_mark_reg, Register new_mark_reg, Register tmp, Label& slow_case, int* counter_addr); void resolve_jobject(Register value, Register tmp1, Register tmp2); - #if INCLUDE_ALL_GCS - // G1 pre-barrier. - // Blows all volatile registers (R0-R3 on 32-bit ARM, R0-R18 on AArch64, Rtemp, LR). - // If store_addr != noreg, then previous value is loaded from [store_addr]; - // in such case store_addr and new_val registers are preserved; - // otherwise pre_val register is preserved. - void g1_write_barrier_pre(Register store_addr, - Register new_val, - Register pre_val, - Register tmp1, - Register tmp2); - - // G1 post-barrier. - // Blows all volatile registers (R0-R3 on 32-bit ARM, R0-R18 on AArch64, Rtemp, LR). - void g1_write_barrier_post(Register store_addr, - Register new_val, - Register tmp1, - Register tmp2, - Register tmp3); - #endif // INCLUDE_ALL_GCS - #ifndef AARCH64 void nop() { mov(R0, R0); } --- 399,408 ----
*** 1070,1085 **** void store_klass_gap(Register dst); #endif // AARCH64 // oop manipulations ! void load_heap_oop(Register dst, Address src); ! void store_heap_oop(Register src, Address dst); ! void store_heap_oop(Address dst, Register src) { ! store_heap_oop(src, dst); ! } ! void store_heap_oop_null(Register src, Address dst); #ifdef AARCH64 void encode_heap_oop(Register dst, Register src); void encode_heap_oop(Register r) { encode_heap_oop(r, r); --- 1049,1064 ---- void store_klass_gap(Register dst); #endif // AARCH64 // oop manipulations ! void load_heap_oop(Register dst, Address src, Register tmp1 = noreg, Register tmp2 = noreg, Register tmp3 = noreg, DecoratorSet decorators = 0); ! void store_heap_oop(Address obj, Register new_val, Register tmp1 = noreg, Register tmp2 = noreg, Register tmp3 = noreg, DecoratorSet decorators = 0); ! void store_heap_oop_null(Address obj, Register new_val, Register tmp1 = noreg, Register tmp2 = noreg, Register tmp3 = noreg, DecoratorSet decorators = 0); ! ! void access_load_at(BasicType type, DecoratorSet decorators, Address src, Register dst, Register tmp1, Register tmp2, Register tmp3); ! void access_store_at(BasicType type, DecoratorSet decorators, Address obj, Register new_val, Register tmp1, Register tmp2, Register tmp3, bool is_null); #ifdef AARCH64 void encode_heap_oop(Register dst, Register src); void encode_heap_oop(Register r) { encode_heap_oop(r, r);
< prev index next >