File src/pkg/crypto/md5/md5block_arm.s (right):
https://codereview.appspot.com/11648043/diff/6001/src/pkg/crypto/md5/md5block_arm.s#newcode37
src/pkg/crypto/md5/md5block_arm.s:37: TEXT ·block(SB), 7, $(20*4)-16
On 2013/07/22 04:19:53, dfc wrote:
I've never seen this 20*4 form before, does it actually work ?
The assembler generated is correctI've never seen this 20*4 form before, does it actually work ?
str r14, [r13, #-84]!
So I guess so!
My marking this method textflag 7 you're saying it won't have a split stack
check. It sounds unlikely that 80 bytes will always be available on
the stack.check. It sounds unlikely that 80 bytes will always be available on
My reading of pkg/runtime/stack.h is that if you use < 128 bytes of
stack you are OK with non split stacks, but that may be wide of the
truth!
// The maximum number of bytes that a chain of NOSPLIT
// functions can use.
StackLimit = StackGuard - StackSystem - StackSmall,
StackLimit is 128 on ARM linux.
md5.block uses 84 bytes and runtime.memmove uses 8 bytes.
Note that crypto/sha1/sha1block_386.s this which uses even more stack?
TEXT ·block(SB),7,$92-16
I think to make a stack check I'd turn the 7 into a 3 - is that right?
https://codereview.appspot.com/11648043/
--
---
You received this message because you are subscribed to the Google Groups "golang-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.