FAQ
https://codereview.appspot.com/11648043/diff/6001/src/pkg/crypto/md5/md5block_arm.s
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 correct

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.

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.

Search Discussions

Discussion Posts

Previous

Follow ups

Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 7 of 14 | next ›
Discussion Overview
groupgolang-dev @
categoriesgo
postedJul 22, '13 at 4:19a
activeJul 23, '13 at 10:23p
posts14
users6
websitegolang.org

People

Translate

site design / logo © 2022 Grokbase