From 775a0c26f73df524cbdcf7ce684be8e4770ff756 Mon Sep 17 00:00:00 2001 From: Bernhard Urban Date: Sun, 14 Mar 2010 19:23:26 +0100 Subject: [PATCH] asmb: more hax --- asmb/asmb.s | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/asmb/asmb.s b/asmb/asmb.s index 027a999..8fb92b1 100644 --- a/asmb/asmb.s +++ b/asmb/asmb.s @@ -23,11 +23,12 @@ const00: .type asmb, @function asmb: .LFB2: - xor %rdx, %rdx + //speicheradresse des parameters zurueckgeben + mov %rdi, %rax .nextround: //speicheradresse des pointers zeigt auf 16*8 feld = 128bit - movdqu (%rdi, %rdx, 8), %xmm11 + movdqu (%rdi), %xmm11 // -64 - c movdqa constc0, %xmm9 @@ -46,20 +47,17 @@ asmb: paddb %xmm9, %xmm11 // retuniere an die richtige speicheradresse - movdqu %xmm11, (%rdi, %rdx, 8) + movdqu %xmm11, (%rdi) //entspricht ein byte dem nullbyte dann steht an jener stelle 0xff sonst 0x00 pcmpeqb const00, %xmm11 //hol die MSBs aller bytes raus pmovmskb %xmm11, %ecx - add $2, %rdx + add $16, %rdi //ist %ecx gleich null? dann die naechsten 16byte bitte jecxz .nextround - //speicheradresse des parameters zurueckgeben (wird noch modifziert) - mov %rdi, %rax - /* //=============== //ab hier uebler hax um nach \0 trotzdem die gleichen bytes wie @@ -115,12 +113,12 @@ asmb: .endshift: //betreffende speicherstelle in %xmm11 laden - movdqu -16(%rax, %rdx, 8), %xmm11 + movdqu -16(%rdi), %xmm11 //und overhead wieder subtrahieren psubb %xmm9, %xmm11 //ergebnis zurueckspielen und fertig \o/ - movdqu %xmm11, -16(%rax, %rdx, 8) + movdqu %xmm11, -16(%rdi) */ ret -- 2.25.1