< prev index next >

src/hotspot/cpu/x86/macroAssembler_x86.hpp

Print this page




1722                             Register tmp4, Register tmp5, Register tmp6,
1723                             XMMRegister w_xtmp1, XMMRegister w_xtmp2, XMMRegister w_xtmp3,
1724                             bool is_pclmulqdq_supported);
1725   // Fold 128-bit data chunk
1726   void fold_128bit_crc32(XMMRegister xcrc, XMMRegister xK, XMMRegister xtmp, Register buf, int offset);
1727   void fold_128bit_crc32(XMMRegister xcrc, XMMRegister xK, XMMRegister xtmp, XMMRegister xbuf);
1728   // Fold 8-bit data
1729   void fold_8bit_crc32(Register crc, Register table, Register tmp);
1730   void fold_8bit_crc32(XMMRegister crc, Register table, XMMRegister xtmp, Register tmp);
1731   void fold_128bit_crc32_avx512(XMMRegister xcrc, XMMRegister xK, XMMRegister xtmp, Register buf, int offset);
1732 
1733   // Compress char[] array to byte[].
1734   void char_array_compress(Register src, Register dst, Register len,
1735                            XMMRegister tmp1, XMMRegister tmp2, XMMRegister tmp3,
1736                            XMMRegister tmp4, Register tmp5, Register result);
1737 
1738   // Inflate byte[] array to char[].
1739   void byte_array_inflate(Register src, Register dst, Register len,
1740                           XMMRegister tmp1, Register tmp2);
1741 


1742 };
1743 
1744 /**
1745  * class SkipIfEqual:
1746  *
1747  * Instantiating this class will result in assembly code being output that will
1748  * jump around any code emitted between the creation of the instance and it's
1749  * automatic destruction at the end of a scope block, depending on the value of
1750  * the flag passed to the constructor, which will be checked at run-time.
1751  */
1752 class SkipIfEqual {
1753  private:
1754   MacroAssembler* _masm;
1755   Label _label;
1756 
1757  public:
1758    SkipIfEqual(MacroAssembler*, const bool* flag_addr, bool value);
1759    ~SkipIfEqual();
1760 };
1761 


1722                             Register tmp4, Register tmp5, Register tmp6,
1723                             XMMRegister w_xtmp1, XMMRegister w_xtmp2, XMMRegister w_xtmp3,
1724                             bool is_pclmulqdq_supported);
1725   // Fold 128-bit data chunk
1726   void fold_128bit_crc32(XMMRegister xcrc, XMMRegister xK, XMMRegister xtmp, Register buf, int offset);
1727   void fold_128bit_crc32(XMMRegister xcrc, XMMRegister xK, XMMRegister xtmp, XMMRegister xbuf);
1728   // Fold 8-bit data
1729   void fold_8bit_crc32(Register crc, Register table, Register tmp);
1730   void fold_8bit_crc32(XMMRegister crc, Register table, XMMRegister xtmp, Register tmp);
1731   void fold_128bit_crc32_avx512(XMMRegister xcrc, XMMRegister xK, XMMRegister xtmp, Register buf, int offset);
1732 
1733   // Compress char[] array to byte[].
1734   void char_array_compress(Register src, Register dst, Register len,
1735                            XMMRegister tmp1, XMMRegister tmp2, XMMRegister tmp3,
1736                            XMMRegister tmp4, Register tmp5, Register result);
1737 
1738   // Inflate byte[] array to char[].
1739   void byte_array_inflate(Register src, Register dst, Register len,
1740                           XMMRegister tmp1, Register tmp2);
1741 
1742   void cache_wb(Address line);
1743   void cache_wbsync(bool isPre);
1744 };
1745 
1746 /**
1747  * class SkipIfEqual:
1748  *
1749  * Instantiating this class will result in assembly code being output that will
1750  * jump around any code emitted between the creation of the instance and it's
1751  * automatic destruction at the end of a scope block, depending on the value of
1752  * the flag passed to the constructor, which will be checked at run-time.
1753  */
1754 class SkipIfEqual {
1755  private:
1756   MacroAssembler* _masm;
1757   Label _label;
1758 
1759  public:
1760    SkipIfEqual(MacroAssembler*, const bool* flag_addr, bool value);
1761    ~SkipIfEqual();
1762 };
1763 
< prev index next >