Browse Source

Fix provided by Runewalsh to fix PIC error for i386 code inside SHA1Transform_Sha1Asm

Pierre Muller 3 tháng trước cách đây
mục cha
commit
95f8a78f90
1 tập tin đã thay đổi với 6 bổ sung2 xóa
  1. 6 2
      packages/hash/src/sha1x86.inc

+ 6 - 2
packages/hash/src/sha1x86.inc

@@ -11,7 +11,6 @@ procedure {$ifdef DO_DISPATCH}SHA1Transform_Sha1Asm{$else}SHA1Transform{$endif}
       (var Ctx: TSHA1Context; const Data: Pointer); assembler;
 {$if defined(x86_64) and not defined(windows)}nostackframe;{$endif}
 {$ifndef CPU64}
-const MASK : packed record a, b : qword; end = (a:$08090a0b0c0d0e0f;b:$0001020304050607);
 var
   ABCD_SAVE,E0_SAVE : packed record a, b : qword; end;
 {$endif}
@@ -48,7 +47,12 @@ asm
     mov rax,$08090a0b0c0d0e0f;
     pinsrq xmm3,rax,$00
     {$else}
-    movdqu xmm3,[mask]
+    push $00010203
+    push $04050607
+    push $08090a0b
+    push $0c0d0e0f
+    movdqu xmm3, [esp]
+    add esp, 16
     {$endif}
 
     //while (length >= 64) do