if (endAlignment != 0) { dst.add(i).store(src.add(i).loadInt());
if (!endAlignment.isZero()) { dst.store(src.loadInt(i), i);
  public static void aligned32Copy(Address dst, Address src, int numBytes) throws InlinePragma {    if (USE_NATIVE && numBytes > NATIVE_THRESHOLD) {      memcopy(dst, src, numBytes);    } else {      if (VM.BuildFor64Addr) {        Word wordMask = Word.one().lsh(LOG_BYTES_IN_ADDRESS).sub(Word.one());        int srcAlignment = src.toWord().and(wordMask).toInt();        if (srcAlignment == dst.toWord().and(wordMask).toInt()) {          int i = 0;          if (srcAlignment == BYTES_IN_INT) {             dst.add(i).store(src.add(i).loadInt());            i += BYTES_IN_INT;          }          int endAlignment =( numBytes + srcAlignment) % BYTES_IN_ADDRESS;          numBytes -= endAlignment;          for (; i<numBytes; i+= BYTES_IN_ADDRESS) {            dst.add(i).store(src.add(i).loadWord());          }          if (endAlignment != 0) {             dst.add(i).store(src.add(i).loadInt());          }        return;        }      }       //normal case: 32 bit or (64 bit not aligned)      for (int i=0; i<numBytes; i+= BYTES_IN_INT) {        dst.add(i).store(src.add(i).loadInt());      }    }  }