6526 movw(dst, src); |
6526 movw(dst, src); |
6527 } |
6527 } |
6528 return off; |
6528 return off; |
6529 } |
6529 } |
6530 |
6530 |
6531 void MacroAssembler::load_sized_value(Register dst, Address src, |
6531 void MacroAssembler::load_sized_value(Register dst, Address src, size_t size_in_bytes, bool is_signed, Register dst2) { |
6532 size_t size_in_bytes, bool is_signed) { |
|
6533 switch (size_in_bytes) { |
6532 switch (size_in_bytes) { |
6534 #ifndef _LP64 |
6533 #ifndef _LP64 |
6535 // For case 8, caller is responsible for manually loading |
6534 case 8: |
6536 // the second word into another register. |
6535 assert(dst2 != noreg, "second dest register required"); |
6537 case 8: movl(dst, src); break; |
6536 movl(dst, src); |
|
6537 movl(dst2, src.plus_disp(BytesPerInt)); |
|
6538 break; |
6538 #else |
6539 #else |
6539 case 8: movq(dst, src); break; |
6540 case 8: movq(dst, src); break; |
6540 #endif |
6541 #endif |
6541 case 4: movl(dst, src); break; |
6542 case 4: movl(dst, src); break; |
6542 case 2: is_signed ? load_signed_short(dst, src) : load_unsigned_short(dst, src); break; |
6543 case 2: is_signed ? load_signed_short(dst, src) : load_unsigned_short(dst, src); break; |
6543 case 1: is_signed ? load_signed_byte( dst, src) : load_unsigned_byte( dst, src); break; |
6544 case 1: is_signed ? load_signed_byte( dst, src) : load_unsigned_byte( dst, src); break; |
6544 default: ShouldNotReachHere(); |
6545 default: ShouldNotReachHere(); |
|
6546 } |
|
6547 } |
|
6548 |
|
6549 void MacroAssembler::store_sized_value(Address dst, Register src, size_t size_in_bytes, Register src2) { |
|
6550 switch (size_in_bytes) { |
|
6551 #ifndef _LP64 |
|
6552 case 8: |
|
6553 assert(src2 != noreg, "second source register required"); |
|
6554 movl(dst, src); |
|
6555 movl(dst.plus_disp(BytesPerInt), src2); |
|
6556 break; |
|
6557 #else |
|
6558 case 8: movq(dst, src); break; |
|
6559 #endif |
|
6560 case 4: movl(dst, src); break; |
|
6561 case 2: movw(dst, src); break; |
|
6562 case 1: movb(dst, src); break; |
|
6563 default: ShouldNotReachHere(); |
6545 } |
6564 } |
6546 } |
6565 } |
6547 |
6566 |
6548 void MacroAssembler::mov32(AddressLiteral dst, Register src) { |
6567 void MacroAssembler::mov32(AddressLiteral dst, Register src) { |
6549 if (reachable(dst)) { |
6568 if (reachable(dst)) { |