VM_Magic.setIntAtOffset(VM_Magic.addressAsObject(dstPtr), 0, VM_Magic.getIntAtOffset(VM_Magic.addressAsObject(srcPtr), 0)); VM_Magic.setIntAtOffset(VM_Magic.addressAsObject(dstPtr), 4, VM_Magic.getIntAtOffset(VM_Magic.addressAsObject(srcPtr), 4));
VM_Magic.setIntAtOffset(VM_Magic.addressAsObject(dstPtr), Offset.zero(), VM_Magic.getIntAtOffset(VM_Magic.addressAsObject(srcPtr), Offset.zero())); VM_Magic.setIntAtOffset(VM_Magic.addressAsObject(dstPtr), Offset.fromIntSignExtend(4), VM_Magic.getIntAtOffset(VM_Magic.addressAsObject(srcPtr), Offset.fromIntSignExtend(4)));
  public static void arraycopy64Bit(Object src, int srcIdx, Object dst, int dstIdx, int len) throws InlinePragma {    Address srcPtr = VM_Magic.objectAsAddress(src).add(srcIdx<<LOG_BYTES_IN_DOUBLE);    Address dstPtr = VM_Magic.objectAsAddress(dst).add(dstIdx<<LOG_BYTES_IN_DOUBLE);    int copyBytes = len<<LOG_BYTES_IN_DOUBLE;    if (USE_NATIVE && len > (NATIVE_THRESHOLD >> LOG_BYTES_IN_DOUBLE)) {      memcopy(dstPtr, srcPtr, copyBytes);    } else {      // The elements of long[] and double[] are always doubleword aligned      // therefore we can do 64 bit load/stores without worrying about alignment.      Address endPtr = srcPtr.add(copyBytes);      while (srcPtr.LT(endPtr)) {        // We generate abysmal code on IA32 if we try to use the FP registers,        // so use the gprs instead even though it results in more instructions.        if (VM.BuildForIA32) {          VM_Magic.setIntAtOffset(VM_Magic.addressAsObject(dstPtr), 0,                                  VM_Magic.getIntAtOffset(VM_Magic.addressAsObject(srcPtr), 0));          VM_Magic.setIntAtOffset(VM_Magic.addressAsObject(dstPtr), 4,                                  VM_Magic.getIntAtOffset(VM_Magic.addressAsObject(srcPtr), 4));        } else {                    VM_Magic.setDoubleAtOffset(VM_Magic.addressAsObject(dstPtr), 0,                                     VM_Magic.getDoubleAtOffset(VM_Magic.addressAsObject(srcPtr), 0));        }        srcPtr = srcPtr.add(8);        dstPtr = dstPtr.add(8);      }    }  }    