< prev index next >

src/cpu/x86/vm/macroAssembler_x86.hpp

Print this page




1261   void mul_add_128_x_32_loop(Register out, Register in, Register offset, Register len, Register tmp1,
1262                Register tmp2, Register tmp3, Register tmp4, Register tmp5, Register rdxReg,
1263                Register raxReg);
1264   void mul_add(Register out, Register in, Register offset, Register len, Register k, Register tmp1,
1265                Register tmp2, Register tmp3, Register tmp4, Register tmp5, Register rdxReg,
1266                Register raxReg);
1267 #endif
1268 
1269   // CRC32 code for java.util.zip.CRC32::updateBytes() instrinsic.
1270   void update_byte_crc32(Register crc, Register val, Register table);
1271   void kernel_crc32(Register crc, Register buf, Register len, Register table, Register tmp);
1272   // Fold 128-bit data chunk
1273   void fold_128bit_crc32(XMMRegister xcrc, XMMRegister xK, XMMRegister xtmp, Register buf, int offset);
1274   void fold_128bit_crc32(XMMRegister xcrc, XMMRegister xK, XMMRegister xtmp, XMMRegister xbuf);
1275   // Fold 8-bit data
1276   void fold_8bit_crc32(Register crc, Register table, Register tmp);
1277   void fold_8bit_crc32(XMMRegister crc, Register table, XMMRegister xtmp, Register tmp);
1278 
1279 #undef VIRTUAL
1280 


1281 };
1282 
1283 /**
1284  * class SkipIfEqual:
1285  *
1286  * Instantiating this class will result in assembly code being output that will
1287  * jump around any code emitted between the creation of the instance and it's
1288  * automatic destruction at the end of a scope block, depending on the value of
1289  * the flag passed to the constructor, which will be checked at run-time.
1290  */
1291 class SkipIfEqual {
1292  private:
1293   MacroAssembler* _masm;
1294   Label _label;
1295 
1296  public:
1297    SkipIfEqual(MacroAssembler*, const bool* flag_addr, bool value);
1298    ~SkipIfEqual();
1299 };
1300 


1261   void mul_add_128_x_32_loop(Register out, Register in, Register offset, Register len, Register tmp1,
1262                Register tmp2, Register tmp3, Register tmp4, Register tmp5, Register rdxReg,
1263                Register raxReg);
1264   void mul_add(Register out, Register in, Register offset, Register len, Register k, Register tmp1,
1265                Register tmp2, Register tmp3, Register tmp4, Register tmp5, Register rdxReg,
1266                Register raxReg);
1267 #endif
1268 
1269   // CRC32 code for java.util.zip.CRC32::updateBytes() instrinsic.
1270   void update_byte_crc32(Register crc, Register val, Register table);
1271   void kernel_crc32(Register crc, Register buf, Register len, Register table, Register tmp);
1272   // Fold 128-bit data chunk
1273   void fold_128bit_crc32(XMMRegister xcrc, XMMRegister xK, XMMRegister xtmp, Register buf, int offset);
1274   void fold_128bit_crc32(XMMRegister xcrc, XMMRegister xK, XMMRegister xtmp, XMMRegister xbuf);
1275   // Fold 8-bit data
1276   void fold_8bit_crc32(Register crc, Register table, Register tmp);
1277   void fold_8bit_crc32(XMMRegister crc, Register table, XMMRegister xtmp, Register tmp);
1278 
1279 #undef VIRTUAL
1280 
1281   void save_vector_registers();
1282   void restore_vector_registers();
1283 };
1284 
1285 /**
1286  * class SkipIfEqual:
1287  *
1288  * Instantiating this class will result in assembly code being output that will
1289  * jump around any code emitted between the creation of the instance and it's
1290  * automatic destruction at the end of a scope block, depending on the value of
1291  * the flag passed to the constructor, which will be checked at run-time.
1292  */
1293 class SkipIfEqual {
1294  private:
1295   MacroAssembler* _masm;
1296   Label _label;
1297 
1298  public:
1299    SkipIfEqual(MacroAssembler*, const bool* flag_addr, bool value);
1300    ~SkipIfEqual();
1301 };
1302 
< prev index next >