equal
deleted
inserted
replaced
7939 #ifdef _LP64 |
7939 #ifdef _LP64 |
7940 push(rscratch1); // save r10, trashed by movptr() |
7940 push(rscratch1); // save r10, trashed by movptr() |
7941 #endif |
7941 #endif |
7942 push(rax); // save rax, |
7942 push(rax); // save rax, |
7943 // addr may contain rsp so we will have to adjust it based on the push |
7943 // addr may contain rsp so we will have to adjust it based on the push |
7944 // we just did |
7944 // we just did (and on 64 bit we do two pushes) |
7945 // NOTE: 64bit seemed to have had a bug in that it did movq(addr, rax); which |
7945 // NOTE: 64bit seemed to have had a bug in that it did movq(addr, rax); which |
7946 // stores rax into addr which is backwards of what was intended. |
7946 // stores rax into addr which is backwards of what was intended. |
7947 if (addr.uses(rsp)) { |
7947 if (addr.uses(rsp)) { |
7948 lea(rax, addr); |
7948 lea(rax, addr); |
7949 pushptr(Address(rax, BytesPerWord)); |
7949 pushptr(Address(rax, LP64_ONLY(2 *) BytesPerWord)); |
7950 } else { |
7950 } else { |
7951 pushptr(addr); |
7951 pushptr(addr); |
7952 } |
7952 } |
7953 |
7953 |
7954 ExternalAddress buffer((address) b); |
7954 ExternalAddress buffer((address) b); |
8394 } else |
8394 } else |
8395 #endif |
8395 #endif |
8396 movptr(dst, src); |
8396 movptr(dst, src); |
8397 } |
8397 } |
8398 |
8398 |
|
8399 // Doesn't do verfication, generates fixed size code |
|
8400 void MacroAssembler::load_heap_oop_not_null(Register dst, Address src) { |
|
8401 #ifdef _LP64 |
|
8402 if (UseCompressedOops) { |
|
8403 movl(dst, src); |
|
8404 decode_heap_oop_not_null(dst); |
|
8405 } else |
|
8406 #endif |
|
8407 movptr(dst, src); |
|
8408 } |
|
8409 |
8399 void MacroAssembler::store_heap_oop(Address dst, Register src) { |
8410 void MacroAssembler::store_heap_oop(Address dst, Register src) { |
8400 #ifdef _LP64 |
8411 #ifdef _LP64 |
8401 if (UseCompressedOops) { |
8412 if (UseCompressedOops) { |
8402 assert(!dst.uses(src), "not enough registers"); |
8413 assert(!dst.uses(src), "not enough registers"); |
8403 encode_heap_oop(src); |
8414 encode_heap_oop(src); |