< prev index next >

src/cpu/ppc/vm/stubGenerator_ppc.cpp

Print this page




 813     // Clear rest.
 814     __ bind(restloop);
 815       __ std(zero_reg, 0, base_ptr_reg);        // Clear 8byte aligned block.
 816       __ std(zero_reg, 8, base_ptr_reg);        // Clear 8byte aligned block.
 817       __ addi(base_ptr_reg, base_ptr_reg, 16);
 818     __ bdnz(restloop);
 819 
 820     __ bind(lastdword);
 821     __ beq(CCR1, done);
 822     __ std(zero_reg, 0, base_ptr_reg);
 823     __ bind(done);
 824     __ blr();                                   // return
 825 
 826     return start;
 827   }
 828 
 829 #if !defined(PRODUCT)
 830   // Wrapper which calls oopDesc::is_oop_or_null()
 831   // Only called by MacroAssembler::verify_oop
 832   static void verify_oop_helper(const char* message, oop o) {
 833     if (!o->is_oop_or_null()) {
 834       fatal("%s", message);
 835     }
 836     ++ StubRoutines::_verify_oop_count;
 837   }
 838 #endif
 839 
 840   // Return address of code to be called from code generated by
 841   // MacroAssembler::verify_oop.
 842   //
 843   // Don't generate, rather use C++ code.
 844   address generate_verify_oop() {
 845     // this is actually a `FunctionDescriptor*'.
 846     address start = 0;
 847 
 848 #if !defined(PRODUCT)
 849     start = CAST_FROM_FN_PTR(address, verify_oop_helper);
 850 #endif
 851 
 852     return start;
 853   }




 813     // Clear rest.
 814     __ bind(restloop);
 815       __ std(zero_reg, 0, base_ptr_reg);        // Clear 8byte aligned block.
 816       __ std(zero_reg, 8, base_ptr_reg);        // Clear 8byte aligned block.
 817       __ addi(base_ptr_reg, base_ptr_reg, 16);
 818     __ bdnz(restloop);
 819 
 820     __ bind(lastdword);
 821     __ beq(CCR1, done);
 822     __ std(zero_reg, 0, base_ptr_reg);
 823     __ bind(done);
 824     __ blr();                                   // return
 825 
 826     return start;
 827   }
 828 
 829 #if !defined(PRODUCT)
 830   // Wrapper which calls oopDesc::is_oop_or_null()
 831   // Only called by MacroAssembler::verify_oop
 832   static void verify_oop_helper(const char* message, oop o) {
 833     if (!oopDesc::is_oop_or_null(o)) {
 834       fatal("%s", message);
 835     }
 836     ++ StubRoutines::_verify_oop_count;
 837   }
 838 #endif
 839 
 840   // Return address of code to be called from code generated by
 841   // MacroAssembler::verify_oop.
 842   //
 843   // Don't generate, rather use C++ code.
 844   address generate_verify_oop() {
 845     // this is actually a `FunctionDescriptor*'.
 846     address start = 0;
 847 
 848 #if !defined(PRODUCT)
 849     start = CAST_FROM_FN_PTR(address, verify_oop_helper);
 850 #endif
 851 
 852     return start;
 853   }


< prev index next >