< prev index next >

src/hotspot/cpu/aarch64/gc/z/zBarrierSetAssembler_aarch64.cpp

Print this page
*** 429,12 ***
    {
      ZSaveLiveRegisters save_live_registers(masm, stub);
      ZSetupArguments setup_arguments(masm, stub);
      __ mov(rscratch1, stub->slow_path());
      __ blr(rscratch1);
    }
- 
    // Stub exit
    __ b(*stub->continuation());
  }
  
  #undef __
--- 429,16 ---
    {
      ZSaveLiveRegisters save_live_registers(masm, stub);
      ZSetupArguments setup_arguments(masm, stub);
      __ mov(rscratch1, stub->slow_path());
      __ blr(rscratch1);
+     if (UseSVE > 0) {
+       // Reinitialize the ptrue predicate register, in case the external runtime
+       // call clobbers ptrue reg, as we may return to SVE compiled code.
+       __ reinitialize_ptrue();
+     }
    }
    // Stub exit
    __ b(*stub->continuation());
  }
  
  #undef __
< prev index next >