commit - 2e965b3324b32be00a2193bf304dcb936f02824b
commit + 2f05c0e86db5b0362ce0cc2e4a6d3a8fcd3a5827
blob - 7d0696d0a67a6114385d3c5cfd2dfe1264c77ea8
blob + cb8708f8d52df3fab5b533ccfa43543467972d98
--- src/libsec/386/sha1block.spp
+++ src/libsec/386/sha1block.spp
* stack offsets
* void sha1block(uchar *DATA, int LEN, ulong *STATE)
*/
-#define DATA 8
-#define LEN 12
-#define STATE 16
+#define STACKSIZE (48+80*4)
+#define DATA (STACKSIZE+8)
+#define LEN (STACKSIZE+12)
+#define STATE (STACKSIZE+16)
/*
* stack offsets for locals
* ulong a = eax, b = ebx, c = ecx, d = edx, e = esi
* ulong tmp = edi
*/
-#define WARRAY (-4-(80*4))
-#define TMP1 (-8-(80*4))
-#define TMP2 (-12-(80*4))
-#define W15 (-16-(80*4))
-#define W40 (-20-(80*4))
-#define W60 (-24-(80*4))
-#define W80 (-28-(80*4))
-#define EDATA (-32-(80*4))
-#define OLDEBX (-36-(80*4))
-#define OLDESI (-40-(80*4))
-#define OLDEDI (-44-(80*4))
+#define WARRAY (STACKSIZE-4-(80*4))
+#define TMP1 (STACKSIZE-8-(80*4))
+#define TMP2 (STACKSIZE-12-(80*4))
+#define W15 (STACKSIZE-16-(80*4))
+#define W40 (STACKSIZE-20-(80*4))
+#define W60 (STACKSIZE-24-(80*4))
+#define W80 (STACKSIZE-28-(80*4))
+#define EDATA (STACKSIZE-32-(80*4))
+#define OLDEBX (STACKSIZE-36-(80*4))
+#define OLDESI (STACKSIZE-40-(80*4))
+#define OLDEDI (STACKSIZE-44-(80*4))
/* Prelude */
pushl %ebp
+ subl $(STACKSIZE), %esp
+
mov %ebx, OLDEBX(%esp)
mov %esi, OLDESI(%esp)
mov %edi, OLDEDI(%esp)
mov OLDEBX(%esp), %ebx
mov OLDESI(%esp), %esi
mov OLDEDI(%esp), %edi
- movl %esp, %ebp
- leave
+ addl $(STACKSIZE), %esp
+ popl %ebp
ret