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í.
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é.