< prev index next >

src/hotspot/cpu/x86/macroAssembler_x86.hpp

Print this page




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


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


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