< prev index next >

src/hotspot/cpu/riscv/templateTable_riscv.cpp

Print this page
*** 2204,11 ***
  
    // resolve first time through
    // Class initialization barrier slow path lands here as well.
    address entry = CAST_FROM_FN_PTR(address, InterpreterRuntime::resolve_from_cache);
    __ mv(temp, (int) code);
!   __ call_VM(noreg, entry, temp);
  
    // Update registers with resolved info
    __ load_method_entry(Rcache, index);
    // n.b. unlike x86 Rcache is now rcpool plus the indexed offset
    // so all clients ofthis method must be modified accordingly
--- 2204,11 ---
  
    // resolve first time through
    // Class initialization barrier slow path lands here as well.
    address entry = CAST_FROM_FN_PTR(address, InterpreterRuntime::resolve_from_cache);
    __ mv(temp, (int) code);
!   __ call_VM_preemptable(noreg, entry, temp);
  
    // Update registers with resolved info
    __ load_method_entry(Rcache, index);
    // n.b. unlike x86 Rcache is now rcpool plus the indexed offset
    // so all clients ofthis method must be modified accordingly

*** 2257,11 ***
  
    // resolve first time through
    // Class initialization barrier slow path lands here as well.
    address entry = CAST_FROM_FN_PTR(address, InterpreterRuntime::resolve_from_cache);
    __ mv(temp, (int) code);
!   __ call_VM(noreg, entry, temp);
  
    // Update registers with resolved info
    __ load_field_entry(Rcache, index);
    __ bind(L_done);
  }
--- 2257,11 ---
  
    // resolve first time through
    // Class initialization barrier slow path lands here as well.
    address entry = CAST_FROM_FN_PTR(address, InterpreterRuntime::resolve_from_cache);
    __ mv(temp, (int) code);
!   __ call_VM_preemptable(noreg, entry, temp);
  
    // Update registers with resolved info
    __ load_field_entry(Rcache, index);
    __ bind(L_done);
  }

*** 3610,11 ***
  
    // slow case
    __ bind(slow_case);
    __ get_constant_pool(c_rarg1);
    __ get_unsigned_2_byte_index_at_bcp(c_rarg2, 1);
!   call_VM(x10, CAST_FROM_FN_PTR(address, InterpreterRuntime::_new), c_rarg1, c_rarg2);
    __ verify_oop(x10);
  
    // continue
    __ bind(done);
    // Must prevent reordering of stores for object initialization with stores that publish the new object.
--- 3610,11 ---
  
    // slow case
    __ bind(slow_case);
    __ get_constant_pool(c_rarg1);
    __ get_unsigned_2_byte_index_at_bcp(c_rarg2, 1);
!   __ call_VM_preemptable(x10, CAST_FROM_FN_PTR(address, InterpreterRuntime::_new), c_rarg1, c_rarg2);
    __ verify_oop(x10);
  
    // continue
    __ bind(done);
    // Must prevent reordering of stores for object initialization with stores that publish the new object.
< prev index next >