if ((srcPos & 0x1) == (dstPos & 0x1)) {
if (len > 1 && (srcPos & 0x1) == (dstPos & 0x1)) {
  static void arraycopy(short[] src, int srcPos, short[] dst, int dstPos, int len) {    VM_Magic.pragmaInline();    if (len > (NATIVE_THRESHOLD>>1)) {      memcopy(VM_Magic.objectAsAddress(dst) + (dstPos<<1), 	      VM_Magic.objectAsAddress(src) + (srcPos<<1), 	      len<<1);    } else {      if ((srcPos & 0x1) == (dstPos & 0x1)) {	// alignment is the same	int byteStart = srcPos<<1;	int wordStart = (byteStart + 3) & ~0x3;	int wordEnd = (byteStart + (len<<1)) & ~0x3;	int byteEnd = byteStart + (len<<1);	int startDiff = wordStart - byteStart;	int endDiff = byteEnd - wordEnd;	int wordLen = wordEnd - wordStart;	if (startDiff != 0) {	  dst[dstPos++] = src[srcPos++];	}	internalAligned32Copy(VM_Magic.objectAsAddress(dst) + (dstPos<<1),			      VM_Magic.objectAsAddress(src) + (srcPos<<1),			      wordLen);	wordLen = wordLen >>> 1;	srcPos += wordLen;	dstPos += wordLen;	if (endDiff != 0) {	  dst[dstPos++] = src[srcPos++];	}	        } else {	for (int i=0; i<len; i++) {	  dst[dstPos+i] = src[srcPos+i];	}      }    }  }    