Fix stack overflow handling.

Change-Id: I829001fdf52d33fdeac599ba9225e9f8a40b7881
diff --git a/src/compiler/codegen/GenCommon.cc b/src/compiler/codegen/GenCommon.cc
index 71fd33c..d3ab039 100644
--- a/src/compiler/codegen/GenCommon.cc
+++ b/src/compiler/codegen/GenCommon.cc
@@ -942,11 +942,13 @@
                     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];