< prev index next >

src/hotspot/cpu/arm/macroAssembler_arm.cpp

Print this page
rev 47398 : 8166317: InterpreterCodeSize should be computed
Reviewed-by: kvn, coleenp


2403 
2404   subs(tmp2, tmp2, wordSize);
2405   b(runtime, lt); // go to runtime if now negative
2406 
2407   str(tmp2, queue_index);
2408 
2409   str(card_addr, Address(tmp3, tmp2));
2410   b(done);
2411 
2412   bind(runtime);
2413 
2414   if (card_addr != R0) {
2415     mov(R0, card_addr);
2416   }
2417   mov(R1, Rthread);
2418   call_VM_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::g1_wb_post), R0, R1);
2419 
2420   bind(done);
2421 }
2422 




2423 #endif // INCLUDE_ALL_GCS
2424 
2425 //////////////////////////////////////////////////////////////////////////////////
2426 
2427 #ifdef AARCH64
2428 
2429 void MacroAssembler::load_sized_value(Register dst, Address src, size_t size_in_bytes, bool is_signed) {
2430   switch (size_in_bytes) {
2431     case  8: ldr(dst, src); break;
2432     case  4: is_signed ? ldr_s32(dst, src) : ldr_u32(dst, src); break;
2433     case  2: is_signed ? ldrsh(dst, src) : ldrh(dst, src); break;
2434     case  1: is_signed ? ldrsb(dst, src) : ldrb(dst, src); break;
2435     default: ShouldNotReachHere();
2436   }
2437 }
2438 
2439 void MacroAssembler::store_sized_value(Register src, Address dst, size_t size_in_bytes) {
2440   switch (size_in_bytes) {
2441     case  8: str(src, dst);    break;
2442     case  4: str_32(src, dst); break;




2403 
2404   subs(tmp2, tmp2, wordSize);
2405   b(runtime, lt); // go to runtime if now negative
2406 
2407   str(tmp2, queue_index);
2408 
2409   str(card_addr, Address(tmp3, tmp2));
2410   b(done);
2411 
2412   bind(runtime);
2413 
2414   if (card_addr != R0) {
2415     mov(R0, card_addr);
2416   }
2417   mov(R1, Rthread);
2418   call_VM_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::g1_wb_post), R0, R1);
2419 
2420   bind(done);
2421 }
2422 
2423 // Called from init_globals() after universe_init() and before interpreter_init()
2424 void g1_barrier_stubs_init() {
2425   // G1 barrier stubs currently only generated on SPARC
2426 }
2427 #endif // INCLUDE_ALL_GCS
2428 
2429 //////////////////////////////////////////////////////////////////////////////////
2430 
2431 #ifdef AARCH64
2432 
2433 void MacroAssembler::load_sized_value(Register dst, Address src, size_t size_in_bytes, bool is_signed) {
2434   switch (size_in_bytes) {
2435     case  8: ldr(dst, src); break;
2436     case  4: is_signed ? ldr_s32(dst, src) : ldr_u32(dst, src); break;
2437     case  2: is_signed ? ldrsh(dst, src) : ldrh(dst, src); break;
2438     case  1: is_signed ? ldrsb(dst, src) : ldrb(dst, src); break;
2439     default: ShouldNotReachHere();
2440   }
2441 }
2442 
2443 void MacroAssembler::store_sized_value(Register src, Address dst, size_t size_in_bytes) {
2444   switch (size_in_bytes) {
2445     case  8: str(src, dst);    break;
2446     case  4: str_32(src, dst); break;


< prev index next >