< prev index next >

src/cpu/sparc/vm/macroAssembler_sparc.hpp

Print this page




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);


< prev index next >