1375 Register tmp1, Register tmp2, Register tmp3, Register tmp4, 1376 FloatRegister ftmp1, FloatRegister ftmp2, FloatRegister ftmp3, Label& Ldone); 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 // test for negative bytes in input string of a given size, result 0 if none 1396 void has_negatives(Register inp, Register size, Register result, 1397 Register t2, Register t3, Register t4, 1398 Register t5); 1399 1400 #endif 1401 1402 // Use BIS for zeroing 1403 void bis_zeroing(Register to, Register count, Register temp, Label& Ldone); 1404 1405 // Update CRC-32[C] with a byte value according to constants in table 1406 void update_byte_crc32(Register crc, Register val, Register table); 1407 1408 // Reverse byte order of lower 32 bits, assuming upper 32 bits all zeros 1409 void reverse_bytes_32(Register src, Register dst, Register tmp); 1410 void movitof_revbytes(Register src, FloatRegister dst, Register tmp1, Register tmp2); 1411 void movftoi_revbytes(FloatRegister src, Register dst, Register tmp1, Register tmp2); 1412 1413 // CRC32 code for java.util.zip.CRC32::updateBytes0() instrinsic. 1414 void kernel_crc32(Register crc, Register buf, Register len, Register table); | 1375 Register tmp1, Register tmp2, Register tmp3, Register tmp4, 1376 FloatRegister ftmp1, FloatRegister ftmp2, FloatRegister ftmp3, Label& Ldone); 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. 1419 void kernel_crc32(Register crc, Register buf, Register len, Register table); |