VM_Magic.setIntAtOffset(VM_Magic.addressAsObject(dstPtr), 0, VM_Magic.getIntAtOffset(VM_Magic.addressAsObject(srcPtr), 0));
VM_Magic.setIntAtOffset(VM_Magic.addressAsObject(dstPtr), Offset.zero(), VM_Magic.getIntAtOffset(VM_Magic.addressAsObject(srcPtr), Offset.zero()));
  public static void arraycopy32Bit(Object src, int srcIdx, Object dst, int dstIdx, int len) throws InlinePragma {    Address srcPtr = VM_Magic.objectAsAddress(src).add(srcIdx<<LOG_BYTES_IN_INT);    Address dstPtr = VM_Magic.objectAsAddress(dst).add(dstIdx<<LOG_BYTES_IN_INT);    int copyBytes = len<<LOG_BYTES_IN_INT;    if (USE_NATIVE && len > (NATIVE_THRESHOLD >> LOG_BYTES_IN_INT)) {      memcopy(dstPtr, srcPtr, copyBytes);    } else {      // The elements of int[] and float[] are always 32 bit aligned      // therefore we can do 32 bit load/stores without worrying about alignment.      // TODO: do measurements to determine if on PPC it is a good idea to check      //       for compatible doubleword alignment and handle that case via the FPRs in 64 bit chunks.      //       Unclear if this will be a big enough win to justify checking because for big copies      //       we are going into memcopy anyways and that will be faster than anything we do here.      Address endPtr = srcPtr.add(copyBytes);      while (srcPtr.LT(endPtr)) {        VM_Magic.setIntAtOffset(VM_Magic.addressAsObject(dstPtr), 0,                                VM_Magic.getIntAtOffset(VM_Magic.addressAsObject(srcPtr), 0));        srcPtr = srcPtr.add(4);        dstPtr = dstPtr.add(4);      }    }  }    