From 40f73b39e48b1abcf82554a855c6dbfed289e1aa Mon Sep 17 00:00:00 2001 From: Bernhard Urban Date: Mon, 8 Mar 2010 16:32:13 +0100 Subject: [PATCH] asm{a,b}: section hax, finally --- asma/asma.s | 28 +++++++++++++++++++--------- asmb/asmb.s | 27 ++++++++++++++++++--------- 2 files changed, 37 insertions(+), 18 deletions(-) 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 diff --git a/asmb/asmb.s b/asmb/asmb.s index 540a28f..e46b6b0 100644 --- a/asmb/asmb.s +++ b/asmb/asmb.s @@ -1,4 +1,19 @@ .file "asmb.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 asmb .type asmb, @function @@ -14,20 +29,14 @@ asmb: * 102 = 01100110 * ~102 = 10011001 * (~102)+1 = 10011010 = 0x9A */ - mov $0x9a9a9a9a9a9a9a9a, %rax - movq %rax, %xmm8 - punpcklbw %xmm8, %xmm8 + movdqa const9a, %xmm8 //init %xmm9 mit "'a'-'A'= 97-65 = 32 = 0x20 - mov $0x2020202020202020, %rax - movq %rax, %xmm9 - punpcklbw %xmm9, %xmm9 + movdqa const20, %xmm9 /*addiere in %xmm11 "min_t-'A'" * = -128 - 65 = 63 = 0x3f */ - mov $0x3f3f3f3f3f3f3f3f, %rax - movq %rax, %xmm10 - punpcklbw %xmm10, %xmm10 + movdqa const3f, %xmm10 .nextround: //speicheradresse des pointers zeigt auf 16*8 feld = 128bit -- 2.25.1