< prev index next >

src/hotspot/cpu/arm/macroAssembler_arm.hpp

Print this page




 344   // TODO: verify method and klass metadata (compare against vptr?)
 345   void _verify_method_ptr(Register reg, const char * msg, const char * file, int line) {}
 346   void _verify_klass_ptr(Register reg, const char * msg, const char * file, int line) {}
 347 
 348 #define verify_oop(reg) _verify_oop(reg, "broken oop " #reg, __FILE__, __LINE__)
 349 #define verify_oop_addr(addr) _verify_oop_addr(addr, "broken oop ", __FILE__, __LINE__)
 350 #define verify_method_ptr(reg) _verify_method_ptr(reg, "broken method " #reg, __FILE__, __LINE__)
 351 #define verify_klass_ptr(reg) _verify_klass_ptr(reg, "broken klass " #reg, __FILE__, __LINE__)
 352 
 353   void null_check(Register reg, Register tmp, int offset = -1);
 354   inline void null_check(Register reg) { null_check(reg, noreg, -1); } // for C1 lir_null_check
 355 
 356   // Puts address of allocated object into register `obj` and end of allocated object into register `obj_end`.
 357   void eden_allocate(Register obj, Register obj_end, Register tmp1, Register tmp2,
 358                      RegisterOrConstant size_expression, Label& slow_case);
 359   void tlab_allocate(Register obj, Register obj_end, Register tmp1,
 360                      RegisterOrConstant size_expression, Label& slow_case);
 361 
 362   void zero_memory(Register start, Register end, Register tmp);
 363 
 364   void incr_allocated_bytes(RegisterOrConstant size_in_bytes, Register tmp);
 365 
 366   static bool needs_explicit_null_check(intptr_t offset);
 367 
 368   void arm_stack_overflow_check(int frame_size_in_bytes, Register tmp);
 369   void arm_stack_overflow_check(Register Rsize, Register tmp);
 370 
 371   void bang_stack_with_offset(int offset) {
 372     ShouldNotReachHere();
 373   }
 374 
 375   // Biased locking support
 376   // lock_reg and obj_reg must be loaded up with the appropriate values.
 377   // swap_reg must be supplied.
 378   // tmp_reg must be supplied.
 379   // Optional slow case is for implementations (interpreter and C1) which branch to
 380   // slow case directly. If slow_case is NULL, then leaves condition
 381   // codes set (for C2's Fast_Lock node) and jumps to done label.
 382   // Falls through for the fast locking attempt.
 383   // Returns offset of first potentially-faulting instruction for null
 384   // check info (currently consumed only by C1). If
 385   // swap_reg_contains_mark is true then returns -1 as it is assumed




 344   // TODO: verify method and klass metadata (compare against vptr?)
 345   void _verify_method_ptr(Register reg, const char * msg, const char * file, int line) {}
 346   void _verify_klass_ptr(Register reg, const char * msg, const char * file, int line) {}
 347 
 348 #define verify_oop(reg) _verify_oop(reg, "broken oop " #reg, __FILE__, __LINE__)
 349 #define verify_oop_addr(addr) _verify_oop_addr(addr, "broken oop ", __FILE__, __LINE__)
 350 #define verify_method_ptr(reg) _verify_method_ptr(reg, "broken method " #reg, __FILE__, __LINE__)
 351 #define verify_klass_ptr(reg) _verify_klass_ptr(reg, "broken klass " #reg, __FILE__, __LINE__)
 352 
 353   void null_check(Register reg, Register tmp, int offset = -1);
 354   inline void null_check(Register reg) { null_check(reg, noreg, -1); } // for C1 lir_null_check
 355 
 356   // Puts address of allocated object into register `obj` and end of allocated object into register `obj_end`.
 357   void eden_allocate(Register obj, Register obj_end, Register tmp1, Register tmp2,
 358                      RegisterOrConstant size_expression, Label& slow_case);
 359   void tlab_allocate(Register obj, Register obj_end, Register tmp1,
 360                      RegisterOrConstant size_expression, Label& slow_case);
 361 
 362   void zero_memory(Register start, Register end, Register tmp);
 363 


 364   static bool needs_explicit_null_check(intptr_t offset);
 365 
 366   void arm_stack_overflow_check(int frame_size_in_bytes, Register tmp);
 367   void arm_stack_overflow_check(Register Rsize, Register tmp);
 368 
 369   void bang_stack_with_offset(int offset) {
 370     ShouldNotReachHere();
 371   }
 372 
 373   // Biased locking support
 374   // lock_reg and obj_reg must be loaded up with the appropriate values.
 375   // swap_reg must be supplied.
 376   // tmp_reg must be supplied.
 377   // Optional slow case is for implementations (interpreter and C1) which branch to
 378   // slow case directly. If slow_case is NULL, then leaves condition
 379   // codes set (for C2's Fast_Lock node) and jumps to done label.
 380   // Falls through for the fast locking attempt.
 381   // Returns offset of first potentially-faulting instruction for null
 382   // check info (currently consumed only by C1). If
 383   // swap_reg_contains_mark is true then returns -1 as it is assumed


< prev index next >