760 void decode_heap_oop(Register r) { decode_heap_oop(r, r); }
761 void encode_heap_oop_not_null(Register r);
762 void decode_heap_oop_not_null(Register r);
763 void encode_heap_oop_not_null(Register dst, Register src);
764 void decode_heap_oop_not_null(Register dst, Register src);
765
766 void set_narrow_oop(Register dst, jobject obj);
767
768 void encode_klass_not_null(Register r);
769 void decode_klass_not_null(Register r);
770 void encode_klass_not_null(Register dst, Register src);
771 void decode_klass_not_null(Register dst, Register src);
772
773 void set_narrow_klass(Register dst, Klass* k);
774
775 // if heap base register is used - reinit it with the correct value
776 void reinit_heapbase();
777
778 DEBUG_ONLY(void verify_heapbase(const char* msg);)
779
780 void push_CPU_state();
781 void pop_CPU_state() ;
782
783 // Round up to a power of two
784 void round_to(Register reg, int modulus);
785
786 // allocation
787 void eden_allocate(
788 Register obj, // result: pointer to object after successful allocation
789 Register var_size_in_bytes, // object size in bytes if unknown at compile time; invalid otherwise
790 int con_size_in_bytes, // object size in bytes if known at compile time
791 Register t1, // temp register
792 Label& slow_case // continuation point if fast allocation fails
793 );
794 void tlab_allocate(
795 Register obj, // result: pointer to object after successful allocation
796 Register var_size_in_bytes, // object size in bytes if unknown at compile time; invalid otherwise
797 int con_size_in_bytes, // object size in bytes if known at compile time
798 Register t1, // temp register
799 Register t2, // temp register
800 Label& slow_case // continuation point if fast allocation fails
801 );
|
760 void decode_heap_oop(Register r) { decode_heap_oop(r, r); }
761 void encode_heap_oop_not_null(Register r);
762 void decode_heap_oop_not_null(Register r);
763 void encode_heap_oop_not_null(Register dst, Register src);
764 void decode_heap_oop_not_null(Register dst, Register src);
765
766 void set_narrow_oop(Register dst, jobject obj);
767
768 void encode_klass_not_null(Register r);
769 void decode_klass_not_null(Register r);
770 void encode_klass_not_null(Register dst, Register src);
771 void decode_klass_not_null(Register dst, Register src);
772
773 void set_narrow_klass(Register dst, Klass* k);
774
775 // if heap base register is used - reinit it with the correct value
776 void reinit_heapbase();
777
778 DEBUG_ONLY(void verify_heapbase(const char* msg);)
779
780 void push_CPU_state(bool save_vectors = false);
781 void pop_CPU_state(bool restore_vectors = false) ;
782
783 // Round up to a power of two
784 void round_to(Register reg, int modulus);
785
786 // allocation
787 void eden_allocate(
788 Register obj, // result: pointer to object after successful allocation
789 Register var_size_in_bytes, // object size in bytes if unknown at compile time; invalid otherwise
790 int con_size_in_bytes, // object size in bytes if known at compile time
791 Register t1, // temp register
792 Label& slow_case // continuation point if fast allocation fails
793 );
794 void tlab_allocate(
795 Register obj, // result: pointer to object after successful allocation
796 Register var_size_in_bytes, // object size in bytes if unknown at compile time; invalid otherwise
797 int con_size_in_bytes, // object size in bytes if known at compile time
798 Register t1, // temp register
799 Register t2, // temp register
800 Label& slow_case // continuation point if fast allocation fails
801 );
|