.file "asma.c"
+
+.section .rodata
+.align 128
+const9a:
+ .rept 16
+ .byte 0x9a
+ .endr
+const20:
+ .rept 16
+ .byte 0x20
+ .endr
+const3f:
+ .rept 16
+ .byte 0x3f
+ .endr
+
.text
.globl asma
.type asma, @function
* 102 = 01100110
* ~102 = 10011001
* (~102)+1 = 10011010 = 0x9A */
- mov $0x9a9a9a9a9a9a9a9a, %rax
- movq %rax, %xmm15
- movddup %xmm15, %xmm8
+ movdqa const9a, %xmm8
//init %xmm9 mit "'a'-'A'= 97-65 = 32 = 0x20
- mov $0x2020202020202020, %rax
- movq %rax, %xmm15
- movddup %xmm15, %xmm9
+ movdqa const20, %xmm9
//speicheradresse des pointers zeigt auf 16*8 feld = 128bit
movdqu (%rdi), %xmm11
/*addiere in %xmm11 "min_t-'A'"
* = -128 - 65 = 63 = 0x3f */
- mov $0x3f3f3f3f3f3f3f3f, %rax
- movq %rax, %xmm15
- movddup %xmm15, %xmm10
+ movdqa const3f, %xmm10
//c+min_t-'A'
paddb %xmm10, %xmm11