src/hotspot/cpu/ppc/stubGenerator_ppc.cpp
changeset 49455 848864ed9b17
parent 49376 7cd503c499a0
child 49484 ee8fa73b90f9
equal deleted inserted replaced
49454:689ebcfe04fd 49455:848864ed9b17
    24  */
    24  */
    25 
    25 
    26 #include "precompiled.hpp"
    26 #include "precompiled.hpp"
    27 #include "asm/macroAssembler.inline.hpp"
    27 #include "asm/macroAssembler.inline.hpp"
    28 #include "gc/shared/cardTable.hpp"
    28 #include "gc/shared/cardTable.hpp"
    29 #include "gc/shared/cardTableModRefBS.hpp"
    29 #include "gc/shared/cardTableBarrierSet.hpp"
    30 #include "interpreter/interpreter.hpp"
    30 #include "interpreter/interpreter.hpp"
    31 #include "nativeInst_ppc.hpp"
    31 #include "nativeInst_ppc.hpp"
    32 #include "oops/instanceOop.hpp"
    32 #include "oops/instanceOop.hpp"
    33 #include "oops/method.hpp"
    33 #include "oops/method.hpp"
    34 #include "oops/objArrayKlass.hpp"
    34 #include "oops/objArrayKlass.hpp"
   667           __ restore_LR_CR(R0);
   667           __ restore_LR_CR(R0);
   668 
   668 
   669           __ bind(filtered);
   669           __ bind(filtered);
   670         }
   670         }
   671         break;
   671         break;
   672       case BarrierSet::CardTableModRef:
   672       case BarrierSet::CardTableBarrierSet:
   673         break;
   673         break;
   674       default:
   674       default:
   675         ShouldNotReachHere();
   675         ShouldNotReachHere();
   676     }
   676     }
   677   }
   677   }
   701           if (preserve != noreg) { __ ld(preserve, frame_size - 1 * wordSize, R1_SP); }
   701           if (preserve != noreg) { __ ld(preserve, frame_size - 1 * wordSize, R1_SP); }
   702           __ addi(R1_SP, R1_SP, frame_size); // pop_frame();
   702           __ addi(R1_SP, R1_SP, frame_size); // pop_frame();
   703           __ restore_LR_CR(R0);
   703           __ restore_LR_CR(R0);
   704         }
   704         }
   705         break;
   705         break;
   706       case BarrierSet::CardTableModRef:
   706       case BarrierSet::CardTableBarrierSet:
   707         {
   707         {
   708           Label Lskip_loop, Lstore_loop;
   708           Label Lskip_loop, Lstore_loop;
   709           if (UseConcMarkSweepGC) {
   709           if (UseConcMarkSweepGC) {
   710             // TODO PPC port: contribute optimization / requires shared changes
   710             // TODO PPC port: contribute optimization / requires shared changes
   711             __ release();
   711             __ release();
   712           }
   712           }
   713 
   713 
   714           CardTableModRefBS* const ctbs = barrier_set_cast<CardTableModRefBS>(bs);
   714           CardTableBarrierSet* const ctbs = barrier_set_cast<CardTableBarrierSet>(bs);
   715           CardTable* const ct = ctbs->card_table();
   715           CardTable* const ct = ctbs->card_table();
   716           assert(sizeof(*ct->byte_map_base()) == sizeof(jbyte), "adjust this code");
   716           assert(sizeof(*ct->byte_map_base()) == sizeof(jbyte), "adjust this code");
   717           assert_different_registers(addr, count, tmp);
   717           assert_different_registers(addr, count, tmp);
   718 
   718 
   719           __ sldi(count, count, LogBytesPerHeapOop);
   719           __ sldi(count, count, LogBytesPerHeapOop);