equal
deleted
inserted
replaced
1623 int idivl_offset = offset(); |
1623 int idivl_offset = offset(); |
1624 if (! want_remainder) { |
1624 if (! want_remainder) { |
1625 sdivw(result, ra, rb); |
1625 sdivw(result, ra, rb); |
1626 } else { |
1626 } else { |
1627 sdivw(scratch, ra, rb); |
1627 sdivw(scratch, ra, rb); |
1628 msubw(result, scratch, rb, ra); |
1628 Assembler::msubw(result, scratch, rb, ra); |
1629 } |
1629 } |
1630 |
1630 |
1631 return idivl_offset; |
1631 return idivl_offset; |
1632 } |
1632 } |
1633 |
1633 |
1653 int idivq_offset = offset(); |
1653 int idivq_offset = offset(); |
1654 if (! want_remainder) { |
1654 if (! want_remainder) { |
1655 sdiv(result, ra, rb); |
1655 sdiv(result, ra, rb); |
1656 } else { |
1656 } else { |
1657 sdiv(scratch, ra, rb); |
1657 sdiv(scratch, ra, rb); |
1658 msub(result, scratch, rb, ra); |
1658 Assembler::msub(result, scratch, rb, ra); |
1659 } |
1659 } |
1660 |
1660 |
1661 return idivq_offset; |
1661 return idivq_offset; |
1662 } |
1662 } |
1663 |
1663 |
3785 byte_offset = (uint64_t)dest.target() & 0xfff; |
3785 byte_offset = (uint64_t)dest.target() & 0xfff; |
3786 _adrp(reg1, dest.target()); |
3786 _adrp(reg1, dest.target()); |
3787 } |
3787 } |
3788 } |
3788 } |
3789 |
3789 |
3790 bool MacroAssembler::use_acq_rel_for_volatile_fields() { |
|
3791 #ifdef PRODUCT |
|
3792 return false; |
|
3793 #else |
|
3794 return UseAcqRelForVolatileFields; |
|
3795 #endif |
|
3796 } |
|
3797 |
|
3798 void MacroAssembler::build_frame(int framesize) { |
3790 void MacroAssembler::build_frame(int framesize) { |
3799 if (framesize == 0) { |
3791 if (framesize == 0) { |
3800 // Is this even possible? |
3792 // Is this even possible? |
3801 stp(rfp, lr, Address(pre(sp, -2 * wordSize))); |
3793 stp(rfp, lr, Address(pre(sp, -2 * wordSize))); |
3802 } else if (framesize < ((1 << 9) + 2 * wordSize)) { |
3794 } else if (framesize < ((1 << 9) + 2 * wordSize)) { |