1451 // on arguments should also go in here. |
1451 // on arguments should also go in here. |
1452 |
1452 |
1453 class MacroAssembler: public Assembler { |
1453 class MacroAssembler: public Assembler { |
1454 friend class LIR_Assembler; |
1454 friend class LIR_Assembler; |
1455 friend class Runtime1; // as_Address() |
1455 friend class Runtime1; // as_Address() |
|
1456 |
1456 protected: |
1457 protected: |
1457 |
1458 |
1458 Address as_Address(AddressLiteral adr); |
1459 Address as_Address(AddressLiteral adr); |
1459 Address as_Address(ArrayAddress adr); |
1460 Address as_Address(ArrayAddress adr); |
1460 |
1461 |
1672 |
1673 |
1673 // Stores |
1674 // Stores |
1674 void store_check(Register obj); // store check for obj - register is destroyed afterwards |
1675 void store_check(Register obj); // store check for obj - register is destroyed afterwards |
1675 void store_check(Register obj, Address dst); // same as above, dst is exact store location (reg. is destroyed) |
1676 void store_check(Register obj, Address dst); // same as above, dst is exact store location (reg. is destroyed) |
1676 |
1677 |
|
1678 #ifndef SERIALGC |
|
1679 |
1677 void g1_write_barrier_pre(Register obj, |
1680 void g1_write_barrier_pre(Register obj, |
1678 #ifndef _LP64 |
1681 Register pre_val, |
1679 Register thread, |
1682 Register thread, |
1680 #endif |
|
1681 Register tmp, |
1683 Register tmp, |
1682 Register tmp2, |
1684 bool tosca_live, |
1683 bool tosca_live); |
1685 bool expand_call); |
|
1686 |
1684 void g1_write_barrier_post(Register store_addr, |
1687 void g1_write_barrier_post(Register store_addr, |
1685 Register new_val, |
1688 Register new_val, |
1686 #ifndef _LP64 |
|
1687 Register thread, |
1689 Register thread, |
1688 #endif |
|
1689 Register tmp, |
1690 Register tmp, |
1690 Register tmp2); |
1691 Register tmp2); |
1691 |
1692 |
|
1693 #endif // SERIALGC |
1692 |
1694 |
1693 // split store_check(Register obj) to enhance instruction interleaving |
1695 // split store_check(Register obj) to enhance instruction interleaving |
1694 void store_check_part_1(Register obj); |
1696 void store_check_part_1(Register obj); |
1695 void store_check_part_2(Register obj); |
1697 void store_check_part_2(Register obj); |
1696 |
1698 |