1377
1378 // Compress char[] to byte[]. Return 0 on failure.
1379 void string_compress(Register src, Register dst, Register cnt, Register tmp, Register result, Label& Ldone);
1380
1381 // Inflate byte[] to char[] by inflating 16 bytes at once.
1382 void string_inflate_16(Register src, Register dst, Register cnt, Register tmp,
1383 FloatRegister ftmp1, FloatRegister ftmp2, FloatRegister ftmp3, FloatRegister ftmp4, Label& Ldone);
1384
1385 // Inflate byte[] to char[].
1386 void string_inflate(Register src, Register dst, Register cnt, Register tmp, Label& Ldone);
1387
1388 void string_compare(Register str1, Register str2,
1389 Register cnt1, Register cnt2,
1390 Register tmp1, Register tmp2,
1391 Register result, int ae);
1392
1393 void array_equals(bool is_array_equ, Register ary1, Register ary2,
1394 Register limit, Register tmp, Register result, bool is_byte);
1395
1396 // Compares two arrays in chunks of size 'byte_width'. The addresses must be aligned accordingly.
1397 void array_equals_loop(Register ary1, Register ary2, Register limit, Register tmp,
1398 Register result, size_t byte_width, Label& Ldone);
1399
1400 // test for negative bytes in input string of a given size, result 0 if none
1401 void has_negatives(Register inp, Register size, Register result,
1402 Register t2, Register t3, Register t4,
1403 Register t5);
1404
1405 #endif
1406
1407 // Use BIS for zeroing
1408 void bis_zeroing(Register to, Register count, Register temp, Label& Ldone);
1409
1410 // Update CRC-32[C] with a byte value according to constants in table
1411 void update_byte_crc32(Register crc, Register val, Register table);
1412
1413 // Reverse byte order of lower 32 bits, assuming upper 32 bits all zeros
1414 void reverse_bytes_32(Register src, Register dst, Register tmp);
1415 void movitof_revbytes(Register src, FloatRegister dst, Register tmp1, Register tmp2);
1416 void movftoi_revbytes(FloatRegister src, Register dst, Register tmp1, Register tmp2);
1417
1418 // CRC32 code for java.util.zip.CRC32::updateBytes0() instrinsic.
|
1377
1378 // Compress char[] to byte[]. Return 0 on failure.
1379 void string_compress(Register src, Register dst, Register cnt, Register tmp, Register result, Label& Ldone);
1380
1381 // Inflate byte[] to char[] by inflating 16 bytes at once.
1382 void string_inflate_16(Register src, Register dst, Register cnt, Register tmp,
1383 FloatRegister ftmp1, FloatRegister ftmp2, FloatRegister ftmp3, FloatRegister ftmp4, Label& Ldone);
1384
1385 // Inflate byte[] to char[].
1386 void string_inflate(Register src, Register dst, Register cnt, Register tmp, Label& Ldone);
1387
1388 void string_compare(Register str1, Register str2,
1389 Register cnt1, Register cnt2,
1390 Register tmp1, Register tmp2,
1391 Register result, int ae);
1392
1393 void array_equals(bool is_array_equ, Register ary1, Register ary2,
1394 Register limit, Register tmp, Register result, bool is_byte);
1395
1396 // Compares two arrays in chunks of size 'byte_width'. The addresses must be aligned accordingly.
1397 // Ldone can be NULL, meaning fall through.
1398 void array_equals_loop(Register ary1, Register ary2, Register limit, Register tmp,
1399 Register result, size_t byte_width, Label* Ldone);
1400
1401 // test for negative bytes in input string of a given size, result 0 if none
1402 void has_negatives(Register inp, Register size, Register result,
1403 Register t2, Register t3, Register t4,
1404 Register t5);
1405
1406 #endif
1407
1408 // Use BIS for zeroing
1409 void bis_zeroing(Register to, Register count, Register temp, Label& Ldone);
1410
1411 // Update CRC-32[C] with a byte value according to constants in table
1412 void update_byte_crc32(Register crc, Register val, Register table);
1413
1414 // Reverse byte order of lower 32 bits, assuming upper 32 bits all zeros
1415 void reverse_bytes_32(Register src, Register dst, Register tmp);
1416 void movitof_revbytes(Register src, FloatRegister dst, Register tmp1, Register tmp2);
1417 void movftoi_revbytes(FloatRegister src, Register dst, Register tmp1, Register tmp2);
1418
1419 // CRC32 code for java.util.zip.CRC32::updateBytes0() instrinsic.
|