- if (compressedSize) WKdm_decompress_new((WK_word*) src, (WK_word*)(uintptr_t)dst, (WK_word*) &scratch[0], PAGE_SIZE);
- else bzero((void *) dst, PAGE_SIZE);
+ if (compressedSize != 4) WKdm_decompress_new((WK_word*) src, (WK_word*)(uintptr_t)dst, (WK_word*) &scratch[0], compressedSize);
+ else {
+ int i;
+ uint32_t *s, *d;
+
+ s = src;
+ d = (uint32_t *)(uintptr_t)dst;
+
+ for (i = 0; i < (int)(PAGE_SIZE / sizeof(int32_t)); i++)
+ *d++ = *s;
+ }