comparison src/cpu/x86/vm/macroAssembler_x86.cpp @ 12355:cefad50507d8

Merge with hs25-b53
author Gilles Duboscq <duboscq@ssw.jku.at>
date Fri, 11 Oct 2013 10:38:03 +0200
parents 58fc8e2b7b6d 7944aba7ba41
children 359f7e70ae7f
comparison
equal deleted inserted replaced
12058:ccb4f2af2319 12355:cefad50507d8
1633 assert(number_of_arguments >= 0 , "cannot have negative number of arguments"); 1633 assert(number_of_arguments >= 0 , "cannot have negative number of arguments");
1634 LP64_ONLY(assert(java_thread == r15_thread, "unexpected register")); 1634 LP64_ONLY(assert(java_thread == r15_thread, "unexpected register"));
1635 #ifdef ASSERT 1635 #ifdef ASSERT
1636 // TraceBytecodes does not use r12 but saves it over the call, so don't verify 1636 // TraceBytecodes does not use r12 but saves it over the call, so don't verify
1637 // r12 is the heapbase. 1637 // r12 is the heapbase.
1638 LP64_ONLY(if ((UseCompressedOops || UseCompressedKlassPointers) && !TraceBytecodes) verify_heapbase("call_VM_base: heap base corrupted?");) 1638 LP64_ONLY(if ((UseCompressedOops || UseCompressedClassPointers) && !TraceBytecodes) verify_heapbase("call_VM_base: heap base corrupted?");)
1639 #endif // ASSERT 1639 #endif // ASSERT
1640 1640
1641 assert(java_thread != oop_result , "cannot use the same register for java_thread & oop_result"); 1641 assert(java_thread != oop_result , "cannot use the same register for java_thread & oop_result");
1642 assert(java_thread != last_java_sp, "cannot use the same register for java_thread & last_java_sp"); 1642 assert(java_thread != last_java_sp, "cannot use the same register for java_thread & last_java_sp");
1643 1643
4800 } 4800 }
4801 4801
4802 4802
4803 void MacroAssembler::load_klass(Register dst, Register src) { 4803 void MacroAssembler::load_klass(Register dst, Register src) {
4804 #ifdef _LP64 4804 #ifdef _LP64
4805 if (UseCompressedKlassPointers) { 4805 if (UseCompressedClassPointers) {
4806 movl(dst, Address(src, oopDesc::klass_offset_in_bytes())); 4806 movl(dst, Address(src, oopDesc::klass_offset_in_bytes()));
4807 decode_klass_not_null(dst); 4807 decode_klass_not_null(dst);
4808 } else 4808 } else
4809 #endif 4809 #endif
4810 movptr(dst, Address(src, oopDesc::klass_offset_in_bytes())); 4810 movptr(dst, Address(src, oopDesc::klass_offset_in_bytes()));
4815 movptr(dst, Address(dst, Klass::prototype_header_offset())); 4815 movptr(dst, Address(dst, Klass::prototype_header_offset()));
4816 } 4816 }
4817 4817
4818 void MacroAssembler::store_klass(Register dst, Register src) { 4818 void MacroAssembler::store_klass(Register dst, Register src) {
4819 #ifdef _LP64 4819 #ifdef _LP64
4820 if (UseCompressedKlassPointers) { 4820 if (UseCompressedClassPointers) {
4821 encode_klass_not_null(src); 4821 encode_klass_not_null(src);
4822 movl(Address(dst, oopDesc::klass_offset_in_bytes()), src); 4822 movl(Address(dst, oopDesc::klass_offset_in_bytes()), src);
4823 } else 4823 } else
4824 #endif 4824 #endif
4825 movptr(Address(dst, oopDesc::klass_offset_in_bytes()), src); 4825 movptr(Address(dst, oopDesc::klass_offset_in_bytes()), src);
4890 #endif 4890 #endif
4891 } 4891 }
4892 4892
4893 #ifdef _LP64 4893 #ifdef _LP64
4894 void MacroAssembler::store_klass_gap(Register dst, Register src) { 4894 void MacroAssembler::store_klass_gap(Register dst, Register src) {
4895 if (UseCompressedKlassPointers) { 4895 if (UseCompressedClassPointers) {
4896 // Store to klass gap in destination 4896 // Store to klass gap in destination
4897 movl(Address(dst, oopDesc::klass_gap_offset_in_bytes()), src); 4897 movl(Address(dst, oopDesc::klass_gap_offset_in_bytes()), src);
4898 } 4898 }
4899 } 4899 }
4900 4900