Index: src/arm/macro-assembler-arm.cc |
=================================================================== |
--- src/arm/macro-assembler-arm.cc (revision 2364) |
+++ src/arm/macro-assembler-arm.cc (working copy) |
@@ -290,11 +290,24 @@ |
// Align the stack at this point. After this point we have 5 pushes, |
// so in fact we have to unalign here! See also the assert on the |
// alignment immediately below. |
- if (OS::ActivationFrameAlignment() != kPointerSize) { |
+#if !defined(V8_HOST_ARCH_ARM) |
+ // If we are using the simulator then we should always align to the expected |
+ // alignment. As the simulator is used to generate snapshots we do not know |
+ // if the target platform will need alignment, so we will always align at |
+ // this point here. |
+ int activation_frame_alignment = 2 * kPointerSize; |
+#elif // !defined(V8_HOST_ARCH_ARM) |
Erik Corry
2009/07/07 08:14:16
I find the comment clearer without the ! here.
iposva
2009/07/08 21:33:26
Done by avoiding the need for "!".
|
+ // Running on the real platform. Use the alignment as mandated by the local |
+ // environment. |
+ // Note: This will break if we ever start generating snapshots on one ARM |
+ // platform for another ARM platform with a different alignment. |
+ int activation_frame_alignment = OS::ActivationFrameAlignment(); |
+#endif // !defined(V8_HOST_ARCH_ARM) |
Erik Corry
2009/07/07 08:14:16
And without the ! here.
iposva
2009/07/08 21:33:26
Done.
|
+ if (activation_frame_alignment != kPointerSize) { |
// This code needs to be made more general if this assert doesn't hold. |
- ASSERT(OS::ActivationFrameAlignment() == 2 * kPointerSize); |
+ ASSERT(activation_frame_alignment == 2 * kPointerSize); |
mov(r7, Operand(Smi::FromInt(0))); |
- tst(sp, Operand(OS::ActivationFrameAlignment() - 1)); |
+ tst(sp, Operand(activation_frame_alignment - 1)); |
push(r7, eq); // Conditional push instruction. |
} |