summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
author TDYa127 <tdy@google.com> 2012-04-22 19:13:34 -0700
committer Shih-wei Liao <sliao@google.com> 2012-04-22 21:00:35 -0700
commit9b49689cc20c6b84cfcb049a8093f11e65ee8522 (patch)
tree8395f98db16959fbec4385fbe9c852cfc9450a84 /src
parent799ef4f839564561fd91907b49e3a587c9a77a41 (diff)
Fix 032 test: For stub, align X86 stack to 16 bytes.
This will fix test 032. Change-Id: Ibb063a3eb8b9378b29320aca73754fcd2a77a67e
Diffstat (limited to 'src')
-rw-r--r--src/oat/runtime/x86/stub_x86.cc2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/oat/runtime/x86/stub_x86.cc b/src/oat/runtime/x86/stub_x86.cc
index 0371a1efbb..cd03455824 100644
--- a/src/oat/runtime/x86/stub_x86.cc
+++ b/src/oat/runtime/x86/stub_x86.cc
@@ -63,6 +63,7 @@ ByteArray* X86CreateResolutionTrampoline(Runtime::TrampolineType type) {
#else // ART_USE_LLVM_COMPILER
__ pushl(EBP);
__ movl(EBP, ESP); // save ESP
+ __ subl(ESP, Immediate(8)); // Align stack
__ movl(EAX, Address(EBP,8)); // Method* called
__ leal(EDX, Address(EBP,8)); // Method** called_addr
__ pushl(Immediate(type)); // pass is_static
@@ -128,6 +129,7 @@ ByteArray* CreateAbstractMethodErrorStub() {
#else // ART_USE_LLVM_COMPILER
__ pushl(EBP);
__ movl(EBP, ESP); // save ESP
+ __ subl(ESP, Immediate(12)); // Align stack
__ pushl(ESP); // pass sp (not use)
__ fs()->pushl(Address::Absolute(Thread::SelfOffset())); // pass thread*
__ pushl(Address(EBP,8)); // pass method