From 65b37410ca38005bd6f4c9470c93a49cd12ad368 Mon Sep 17 00:00:00 2001 From: "Matt A. Tobin" Date: Fri, 28 Feb 2020 18:00:45 -0500 Subject: Revert "Issue #190 - Part 1: Remove XP_IOS conditional code" This reverts commit 6a3d5769d01ec1a8dd56ea79aec2df91b801ce02. --- js/src/irregexp/NativeRegExpMacroAssembler.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'js/src/irregexp/NativeRegExpMacroAssembler.cpp') diff --git a/js/src/irregexp/NativeRegExpMacroAssembler.cpp b/js/src/irregexp/NativeRegExpMacroAssembler.cpp index f452de6ba..0fb507297 100644 --- a/js/src/irregexp/NativeRegExpMacroAssembler.cpp +++ b/js/src/irregexp/NativeRegExpMacroAssembler.cpp @@ -132,6 +132,14 @@ NativeRegExpMacroAssembler::GenerateCode(JSContext* cx, bool match_only) pushedNonVolatileRegisters++; } +#if defined(XP_IOS) && defined(JS_CODEGEN_ARM) + // The stack is 4-byte aligned on iOS, force 8-byte alignment. + masm.movePtr(StackPointer, temp0); + masm.andPtr(Imm32(~7), StackPointer); + masm.push(temp0); + masm.push(temp0); +#endif + #ifndef JS_CODEGEN_X86 // The InputOutputData* is stored as an argument, save it on the stack // above the frame. @@ -398,6 +406,11 @@ NativeRegExpMacroAssembler::GenerateCode(JSContext* cx, bool match_only) masm.freeStack(frameSize); #endif +#if defined(XP_IOS) && defined(JS_CODEGEN_ARM) + masm.pop(temp0); + masm.movePtr(temp0, StackPointer); +#endif + // Restore non-volatile registers which were saved on entry. for (GeneralRegisterBackwardIterator iter(savedNonVolatileRegisters); iter.more(); ++iter) masm.Pop(*iter); -- cgit v1.2.3