ART: Add CRC32.updateByteBuffer intrinsic for ARM64

Use crc32 instructions for
java.util.zip.CRC32.updateByteBuffer(int, long, int, int).

Note that CRC32 is an optional feature in ARMv8, this intrinsic
is only enabled for devices supporting the CRC32 instructions.

The performance of the intrinsic is the same as the performance of the
CRC32.updateBytes intrinsic. However the intrinsic does not have a
restriction on the size of the byte buffer. For big input data
the intrinsic will be faster than CRC32.updateBytes.

Test: m test-art-target-gtest
Test: m test-art-host-gtest
Test: art/test.py --target --optimizing
Test: art/test.py --host --optimizing
Test: 580-crc32

Change-Id: I6b6160b56e829731402bd5fc56bcac59664f634d
diff --git a/runtime/hidden_api.h b/runtime/hidden_api.h
index 13bead2..a0eeae2 100644
--- a/runtime/hidden_api.h
+++ b/runtime/hidden_api.h
@@ -236,6 +236,7 @@
       case Intrinsics::kUnsafeFullFence:
       case Intrinsics::kCRC32Update:
       case Intrinsics::kCRC32UpdateBytes:
+      case Intrinsics::kCRC32UpdateByteBuffer:
       case Intrinsics::kStringNewStringFromBytes:
       case Intrinsics::kStringNewStringFromChars:
       case Intrinsics::kStringNewStringFromString: