Hello,
It says: 1) your code preserves 8-bye alignment of the stack. 2) The linker checks that any code that requires 8-byte alignment of the stack is only called, directly or indirectly, by code that preserves 8-byte alignment of the stack.
I need an explanation for the two items,as I read through the knowledgebase, I couldn't come to a clear meaning .
Thanks
What says?
Give a link!
Which part(s) don't you understand?
Hi Andrew, The two statements are about PRESERVE8. Both statements are not clear for me if you can explain, appreciate it.
Where are they taken from?
Again, give a link!
Let's see the context!
This is a link to the exact words used in context and an explanation of what they mean.
lmgtfy.com/
www.keil.com/.../armasm_dom1361290021571.htm
That really is the most concise description possible. Yes, the small parts you pointed out may be confusing by themselves, but that is what the entire page is for. Read the entire page.
If you are still confused, click the Related-Information link at the bottom about Eight-Byte Stack Alignment and read that entire page.
If it is still confusing, just ALWAYS use PRESERVE8 for any assembly language you write and turn on the warning "--diag_warning 1546" and make sure you fix any cases were you see the warning.
Once you understand this, you will probably see that it would be a very strange and unlikely (very special) case for there ever to be a benefit to not preserving the 8-byte stack alignment.
If you don't ever understand this you are still ok as long as you just always preserve the 8-byte stack alignment.