X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=asma%2Fasma.s;fp=asma%2Fasma.s;h=301ecef81af469df72d92edc9ad039a73b9144ae;hb=40f73b39e48b1abcf82554a855c6dbfed289e1aa;hp=84151dbc1036afc4dc32a8cf596cccca3de318f8;hpb=9fe002b59aa63b5b9e2531b909d4b6edc28e8e67;p=uebersetzerbau-ss10.git diff --git a/asma/asma.s b/asma/asma.s index 84151db..301ecef 100644 --- a/asma/asma.s +++ b/asma/asma.s @@ -1,4 +1,20 @@ .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 @@ -9,14 +25,10 @@ asma: * 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 @@ -24,9 +36,7 @@ asma: /*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