Запись блоков по 64 байт в память

Тема в разделе "WASM.ASSEMBLER", создана пользователем asmprogrammer, 26 июл 2009.

  1. asmprogrammer

    asmprogrammer New Member

    Публикаций:
    0
    Регистрация:
    25 июл 2009
    Сообщения:
    15
    Example 2-21 Non-temporal Stores and 64-byte Bus Write Transactions

    #define STRIDESIZE 256
    Lea ecx, p64byte_Aligned
    Mov edx, ARRAY_LEN
    Xor eax, eax
    slloop:
    movntps XMMWORD ptr [ecx + eax], xmm0
    movntps XMMWORD ptr [ecx + eax+16], xmm0
    movntps XMMWORD ptr [ecx + eax+32], xmm0
    movntps XMMWORD ptr [ecx + eax+48], xmm0
    ; 64 bytes is written in one bus transaction
    add eax, STRIDESIZE
    cmp eax, edx
    jl slloop

    Oбязательно ли для movntps использвать последовательные адреса?
    Можно ли тот же эффект(пересылка одновременно 64 байт в память) получить с помощью movntq?

    для процессора P3 надо использовать в два раза меньше инструкций movntps?