x86: preallocate and prepopulate separately