From: Bernhard Urban Date: Tue, 9 Mar 2010 16:47:32 +0000 (+0100) Subject: asma: ... offizielle testfaelle rennen jetzt auch durch X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=uebersetzerbau-ss10.git;a=commitdiff_plain;h=7ca578dcc2d598744196f55a89ff1e0d6dfa1fd5 asma: ... offizielle testfaelle rennen jetzt auch durch gab probleme bei unaligned speicherzugriff --- diff --git a/asma/asma.s b/asma/asma.s index e8ef508..d1202ce 100644 --- a/asma/asma.s +++ b/asma/asma.s @@ -48,8 +48,9 @@ asma: //retuniere an die richtige speicheradresse mov %rdi, %rax //c += Y - paddb (%rax), %xmm8 - movapd %xmm8, (%rax) + psubb const3f, %xmm11 + paddb %xmm11, %xmm8 + movdqu %xmm8, (%rax) ret .LFE2: diff --git a/asma/main.c b/asma/main.c index 4db42e6..a228147 100644 --- a/asma/main.c +++ b/asma/main.c @@ -22,12 +22,13 @@ int main(int argc, char **argv) { char *input2; char *input3; int i, j; + int off[] = {2,0,0,0}; for(i = 0; i < 4; i++) { input2 = strdup(input1[i]); input3 = strdup(input1[i]); - output1 = (char *)asma_ref((unsigned char *)(input2)); - output2 = (char *)asma((unsigned char *)(input3)); + output1 = (char *)asma_ref((unsigned char *)(input2 + off[i])); + output2 = (char *)asma((unsigned char *)(input3 + off[i])); output1[16]='\0'; output2[16]='\0';