< prev index next >

src/hotspot/cpu/sparc/macroAssembler_sparc.hpp

Print this page




1400   void bis_zeroing(Register to, Register count, Register temp, Label& Ldone);
1401 
1402   // Update CRC-32[C] with a byte value according to constants in table
1403   void update_byte_crc32(Register crc, Register val, Register table);
1404 
1405   // Reverse byte order of lower 32 bits, assuming upper 32 bits all zeros
1406   void reverse_bytes_32(Register src, Register dst, Register tmp);
1407   void movitof_revbytes(Register src, FloatRegister dst, Register tmp1, Register tmp2);
1408   void movftoi_revbytes(FloatRegister src, Register dst, Register tmp1, Register tmp2);
1409 
1410   // CRC32 code for java.util.zip.CRC32::updateBytes0() intrinsic.
1411   void kernel_crc32(Register crc, Register buf, Register len, Register table);
1412   // Fold 128-bit data chunk
1413   void fold_128bit_crc32(Register xcrc_hi, Register xcrc_lo, Register xK_hi, Register xK_lo, Register xtmp_hi, Register xtmp_lo, Register buf, int offset);
1414   void fold_128bit_crc32(Register xcrc_hi, Register xcrc_lo, Register xK_hi, Register xK_lo, Register xtmp_hi, Register xtmp_lo, Register xbuf_hi, Register xbuf_lo);
1415   // Fold 8-bit data
1416   void fold_8bit_crc32(Register xcrc, Register table, Register xtmp, Register tmp);
1417   void fold_8bit_crc32(Register crc, Register table, Register tmp);
1418   // CRC32C code for java.util.zip.CRC32C::updateBytes/updateDirectByteBuffer intrinsic.
1419   void kernel_crc32c(Register crc, Register buf, Register len, Register table);

1420 };
1421 
1422 /**
1423  * class SkipIfEqual:
1424  *
1425  * Instantiating this class will result in assembly code being output that will
1426  * jump around any code emitted between the creation of the instance and it's
1427  * automatic destruction at the end of a scope block, depending on the value of
1428  * the flag passed to the constructor, which will be checked at run-time.
1429  */
1430 class SkipIfEqual : public StackObj {
1431  private:
1432   MacroAssembler* _masm;
1433   Label _label;
1434 
1435  public:
1436    // 'temp' is a temp register that this object can use (and trash)
1437    SkipIfEqual(MacroAssembler*, Register temp,
1438                const bool* flag_addr, Assembler::Condition condition);
1439    ~SkipIfEqual();


1400   void bis_zeroing(Register to, Register count, Register temp, Label& Ldone);
1401 
1402   // Update CRC-32[C] with a byte value according to constants in table
1403   void update_byte_crc32(Register crc, Register val, Register table);
1404 
1405   // Reverse byte order of lower 32 bits, assuming upper 32 bits all zeros
1406   void reverse_bytes_32(Register src, Register dst, Register tmp);
1407   void movitof_revbytes(Register src, FloatRegister dst, Register tmp1, Register tmp2);
1408   void movftoi_revbytes(FloatRegister src, Register dst, Register tmp1, Register tmp2);
1409 
1410   // CRC32 code for java.util.zip.CRC32::updateBytes0() intrinsic.
1411   void kernel_crc32(Register crc, Register buf, Register len, Register table);
1412   // Fold 128-bit data chunk
1413   void fold_128bit_crc32(Register xcrc_hi, Register xcrc_lo, Register xK_hi, Register xK_lo, Register xtmp_hi, Register xtmp_lo, Register buf, int offset);
1414   void fold_128bit_crc32(Register xcrc_hi, Register xcrc_lo, Register xK_hi, Register xK_lo, Register xtmp_hi, Register xtmp_lo, Register xbuf_hi, Register xbuf_lo);
1415   // Fold 8-bit data
1416   void fold_8bit_crc32(Register xcrc, Register table, Register xtmp, Register tmp);
1417   void fold_8bit_crc32(Register crc, Register table, Register tmp);
1418   // CRC32C code for java.util.zip.CRC32C::updateBytes/updateDirectByteBuffer intrinsic.
1419   void kernel_crc32c(Register crc, Register buf, Register len, Register table);
1420 
1421 };
1422 
1423 /**
1424  * class SkipIfEqual:
1425  *
1426  * Instantiating this class will result in assembly code being output that will
1427  * jump around any code emitted between the creation of the instance and it's
1428  * automatic destruction at the end of a scope block, depending on the value of
1429  * the flag passed to the constructor, which will be checked at run-time.
1430  */
1431 class SkipIfEqual : public StackObj {
1432  private:
1433   MacroAssembler* _masm;
1434   Label _label;
1435 
1436  public:
1437    // 'temp' is a temp register that this object can use (and trash)
1438    SkipIfEqual(MacroAssembler*, Register temp,
1439                const bool* flag_addr, Assembler::Condition condition);
1440    ~SkipIfEqual();
< prev index next >