From 04c3aa5c1ab4244293ca60f6aeabb431e8b44cbe Mon Sep 17 00:00:00 2001 From: Andy Polyakov Date: Sat, 1 Oct 2011 10:44:51 +0000 Subject: [PATCH] e_padlock-x86.pl: previous C3-specific fix was incomplete. --- engines/asm/e_padlock-x86.pl | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/engines/asm/e_padlock-x86.pl b/engines/asm/e_padlock-x86.pl index 47f05dc9f1..672d91257a 100644 --- a/engines/asm/e_padlock-x86.pl +++ b/engines/asm/e_padlock-x86.pl @@ -177,7 +177,7 @@ my ($mode,$opcode) = @_; &lea ($ctx,&DWP(16,$ctx)); # control word &xor ("eax","eax"); if ($mode eq "ctr16") { - &movq ("xmm0",&QWP(-16,$ctx));# load [upper part of] counter + &movq ("mm0",&QWP(-16,$ctx)); # load [upper part of] counter } else { &xor ("ebx","ebx"); &test (&DWP(0,$ctx),1<<5); # align bit in control word @@ -216,7 +216,7 @@ my ($mode,$opcode) = @_; &set_label("${mode}_prepare"); &mov (&DWP(12,"esp",$out),"ecx"); &bswap ("ecx"); - &movq (&QWP(0,"esp",$out),"xmm0"); + &movq (&QWP(0,"esp",$out),"mm0"); &inc ("ecx"); &mov (&DWP(8,"esp",$out),"eax"); &bswap ("ecx"); @@ -304,6 +304,7 @@ my ($mode,$opcode) = @_; &set_label("${mode}_exit"); } &mov ("eax",1); &lea ("esp",&DWP(4,"esp")); # popf + &emms () if ($mode eq "ctr16"); &set_label("${mode}_abort"); &function_end("padlock_${mode}_encrypt"); }