src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp
changeset 49347 edb65305d3ac
parent 49164 7e958a8ebcd3
child 49455 848864ed9b17
child 56348 f3b0961adb3c
equal deleted inserted replaced
49346:14e84a4edb9c 49347:edb65305d3ac
   631   //     Clobbers: r0-r18, v0-v7, v16-v31, except saved_regs.
   631   //     Clobbers: r0-r18, v0-v7, v16-v31, except saved_regs.
   632   //
   632   //
   633   void gen_write_ref_array_pre_barrier(Register addr, Register count, bool dest_uninitialized, RegSet saved_regs) {
   633   void gen_write_ref_array_pre_barrier(Register addr, Register count, bool dest_uninitialized, RegSet saved_regs) {
   634     BarrierSet* bs = Universe::heap()->barrier_set();
   634     BarrierSet* bs = Universe::heap()->barrier_set();
   635     switch (bs->kind()) {
   635     switch (bs->kind()) {
   636     case BarrierSet::G1SATBCTLogging:
   636     case BarrierSet::G1BarrierSet:
   637       // With G1, don't generate the call if we statically know that the target in uninitialized
   637       // With G1, don't generate the call if we statically know that the target in uninitialized
   638       if (!dest_uninitialized) {
   638       if (!dest_uninitialized) {
   639         __ push(saved_regs, sp);
   639         __ push(saved_regs, sp);
   640         if (count == c_rarg0) {
   640         if (count == c_rarg0) {
   641           if (addr == c_rarg1) {
   641           if (addr == c_rarg1) {
   678   //  Clobbers: r0-r18, v0-v7, v16-v31, except saved_regs.
   678   //  Clobbers: r0-r18, v0-v7, v16-v31, except saved_regs.
   679   void gen_write_ref_array_post_barrier(Register start, Register end, Register scratch, RegSet saved_regs) {
   679   void gen_write_ref_array_post_barrier(Register start, Register end, Register scratch, RegSet saved_regs) {
   680     assert_different_registers(start, end, scratch);
   680     assert_different_registers(start, end, scratch);
   681     BarrierSet* bs = Universe::heap()->barrier_set();
   681     BarrierSet* bs = Universe::heap()->barrier_set();
   682     switch (bs->kind()) {
   682     switch (bs->kind()) {
   683       case BarrierSet::G1SATBCTLogging:
   683       case BarrierSet::G1BarrierSet:
   684 
   684 
   685         {
   685         {
   686           __ push(saved_regs, sp);
   686           __ push(saved_regs, sp);
   687           // must compute element count unless barrier set interface is changed (other platforms supply count)
   687           // must compute element count unless barrier set interface is changed (other platforms supply count)
   688           assert_different_registers(start, end, scratch);
   688           assert_different_registers(start, end, scratch);