From 36ecb789775eb5bd284ce5dd35d2e31e42354f24 Mon Sep 17 00:00:00 2001 From: Elliott Hughes Date: Tue, 17 Apr 2012 16:55:45 -0700 Subject: Fix stack overflow handling. Change-Id: I829001fdf52d33fdeac599ba9225e9f8a40b7881 --- src/compiler/codegen/GenCommon.cc | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src/compiler/codegen/GenCommon.cc') diff --git a/src/compiler/codegen/GenCommon.cc b/src/compiler/codegen/GenCommon.cc index 71fd33cc56..d3ab039325 100644 --- a/src/compiler/codegen/GenCommon.cc +++ b/src/compiler/codegen/GenCommon.cc @@ -942,11 +942,13 @@ void handleThrowLaunchpads(CompilationUnit *cUnit) ENTRYPOINT_OFFSET(pThrowNoSuchMethodFromCode); break; case kThrowStackOverflow: - funcOffset = - ENTRYPOINT_OFFSET(pThrowStackOverflowFromCode); + funcOffset = ENTRYPOINT_OFFSET(pThrowStackOverflowFromCode); // Restore stack alignment - opRegImm(cUnit, kOpAdd, rSP, - (cUnit->numCoreSpills + cUnit->numFPSpills) * 4); +#if !defined(TARGET_X86) + opRegImm(cUnit, kOpAdd, rSP, (cUnit->numCoreSpills + cUnit->numFPSpills) * 4); +#else + opRegImm(cUnit, kOpAdd, rSP, cUnit->frameSize); +#endif break; default: LOG(FATAL) << "Unexpected throw kind: " << lab->operands[0]; -- cgit v1.2.3-59-g8ed1b