public static void arraycopy(char[] src, int srcIdx, char[] dst, int dstIdx, int len) {
public static void arraycopy(byte[] src, int srcIdx, byte[] dst, int dstIdx, int len) {
  public static void arraycopy(char[] src, int srcIdx, char[] dst, int dstIdx, int len) {    // Don't do any of the assignments if the offsets and lengths    // are in error    if (srcIdx >= 0 && dstIdx >= 0 && len >= 0 &&         (srcIdx + len) >=0 && (srcIdx+len) <= src.length &&         (dstIdx + len) >= 0 && (dstIdx+len) <= dst.length) {      if (src != dst || srcIdx >= (dstIdx+BYTES_IN_ADDRESS/BYTES_IN_CHAR)) {        VM_Memory.arraycopy16Bit(src, srcIdx, dst, dstIdx, len);      } else {        arraycopyOverlap(src, srcIdx, dst, dstIdx, len);      }    } else {      failWithIndexOutOfBoundsException();    }  }  