.rept 16
.byte 0xc0
.endr
+const00:
+ .rept 16
+ .byte 0x00
+ .endr
.text
.globl asmb
.LFB2:
xor %rdx, %rdx
- //soll einfach null sein
- pxor %xmm14, %xmm14
-
.nextround:
//speicheradresse des pointers zeigt auf 16*8 feld = 128bit
movdqu (%rdi, %rdx, 8), %xmm11
.differenz:
// Y = min(X, 'a' - 'A')
- pminub const20, %xmm9
+ pand const20, %xmm9
// c += Y
paddb %xmm9, %xmm11
movdqu %xmm11, (%rdi, %rdx, 8)
//entspricht ein byte dem nullbyte dann steht an jener stelle 0xff sonst 0x00
- pcmpeqb %xmm14, %xmm11
+ pcmpeqb const00, %xmm11
//hol die MSBs aller bytes raus
pmovmskb %xmm11, %ecx
add $2, %rdx