Odpověď na názor

Odpovídáte na názor k článku Linus Torvalds je proti jádru Big Endian pro RISC-V. Názory mohou přidávat pouze registrovaní uživatelé. Nově přidané názory se na webu objeví až po schválení redakcí.

  • 3. 10. 2025 23:27

    cc

    Můžeš nějak vysvětlit, o co ti v tom příkladu vůbec jde? Navíc v tom prvním stačí napsat místo 3 řádků prostě:

    add [num], 1

    To, jak jsou v LE data uložené v paměti přece každý ví, na to není potřeba příklad v asm.

    Změňme to - zpracovávám string v SIMD a chci najít třeba nějaký znak. V x86 by tělo cyklu mohlo vypadat nějak takto:


    main_loop:
    vmovdqa ymm1, [rax] // Load 32 bytes
    vcmpeqb ymm0, ymm1, ymm15 // Compare with broadcasted byte in ymm15
    vpmovmskb eax, ymm0 // Move the result of 32 byte comparisons into eax
    test eax, eax
    jnz found
    // Advance and pointer check
    add rax, 32 // Advance input pointer
    cmp rax, rdx // Compare whether to iterate over
    jne main_loop
    // Tail condition:
    tail:
    // Have a match!
    found:
    tzcnt ebx, eax ; // The first byte that matched the byte in ymm15

    Přemýšlet v LE je prostě pohodlnější, data se načtou přesně jak je potřeba, a toto byl jen jednoduchý příklad co má pár řádků. Portovat třeba nějaký SIMD kód jen z AArch64 na AArch64-BE je mission impossible, pokud to není jen pár řádků. No a to je důvod proč AArch64-BE se nikde nějak nepoužívá - nedává to smysl.

    BTW je tady vůbec možné vložit normálně kód, co má i nějaký indent a prázdné řádky? Toto je úplně zprasené.