< prev index next >

src/hotspot/cpu/x86/macroAssembler_x86.cpp

Print this page




6600   // from the JNI call or verify that it wasn't changed.
6601   if (CheckJNICalls) {
6602     call(RuntimeAddress(StubRoutines::x86::verify_fpu_cntrl_wrd_entry()));
6603   }
6604 #endif // _LP64
6605 }
6606 
6607 // ((OopHandle)result).resolve();
6608 void MacroAssembler::resolve_oop_handle(Register result) {
6609   // OopHandle::resolve is an indirection.
6610   movptr(result, Address(result, 0));
6611 }
6612 
6613 void MacroAssembler::load_mirror(Register mirror, Register method) {
6614   // get mirror
6615   const int mirror_offset = in_bytes(Klass::java_mirror_offset());
6616   movptr(mirror, Address(method, Method::const_offset()));
6617   movptr(mirror, Address(mirror, ConstMethod::constants_offset()));
6618   movptr(mirror, Address(mirror, ConstantPool::pool_holder_offset_in_bytes()));
6619   movptr(mirror, Address(mirror, mirror_offset));

6620 }
6621 
6622 void MacroAssembler::load_klass(Register dst, Register src) {
6623 #ifdef _LP64
6624   if (UseCompressedClassPointers) {
6625     movl(dst, Address(src, oopDesc::klass_offset_in_bytes()));
6626     decode_klass_not_null(dst);
6627   } else
6628 #endif
6629     movptr(dst, Address(src, oopDesc::klass_offset_in_bytes()));
6630 }
6631 
6632 void MacroAssembler::load_prototype_header(Register dst, Register src) {
6633   load_klass(dst, src);
6634   movptr(dst, Address(dst, Klass::prototype_header_offset()));
6635 }
6636 
6637 void MacroAssembler::store_klass(Register dst, Register src) {
6638 #ifdef _LP64
6639   if (UseCompressedClassPointers) {




6600   // from the JNI call or verify that it wasn't changed.
6601   if (CheckJNICalls) {
6602     call(RuntimeAddress(StubRoutines::x86::verify_fpu_cntrl_wrd_entry()));
6603   }
6604 #endif // _LP64
6605 }
6606 
6607 // ((OopHandle)result).resolve();
6608 void MacroAssembler::resolve_oop_handle(Register result) {
6609   // OopHandle::resolve is an indirection.
6610   movptr(result, Address(result, 0));
6611 }
6612 
6613 void MacroAssembler::load_mirror(Register mirror, Register method) {
6614   // get mirror
6615   const int mirror_offset = in_bytes(Klass::java_mirror_offset());
6616   movptr(mirror, Address(method, Method::const_offset()));
6617   movptr(mirror, Address(mirror, ConstMethod::constants_offset()));
6618   movptr(mirror, Address(mirror, ConstantPool::pool_holder_offset_in_bytes()));
6619   movptr(mirror, Address(mirror, mirror_offset));
6620   resolve_oop_handle(mirror);
6621 }
6622 
6623 void MacroAssembler::load_klass(Register dst, Register src) {
6624 #ifdef _LP64
6625   if (UseCompressedClassPointers) {
6626     movl(dst, Address(src, oopDesc::klass_offset_in_bytes()));
6627     decode_klass_not_null(dst);
6628   } else
6629 #endif
6630     movptr(dst, Address(src, oopDesc::klass_offset_in_bytes()));
6631 }
6632 
6633 void MacroAssembler::load_prototype_header(Register dst, Register src) {
6634   load_klass(dst, src);
6635   movptr(dst, Address(dst, Klass::prototype_header_offset()));
6636 }
6637 
6638 void MacroAssembler::store_klass(Register dst, Register src) {
6639 #ifdef _LP64
6640   if (UseCompressedClassPointers) {


< prev index next >