diff options
author | Matt A. Tobin <email@mattatobin.com> | 2020-02-28 18:00:45 -0500 |
---|---|---|
committer | Matt A. Tobin <email@mattatobin.com> | 2020-02-28 18:00:45 -0500 |
commit | 65b37410ca38005bd6f4c9470c93a49cd12ad368 (patch) | |
tree | c65f22f3ed2fda8b9b3ff36c029020bd1500d946 /js/src/irregexp | |
parent | 6a3d5769d01ec1a8dd56ea79aec2df91b801ce02 (diff) | |
download | uxp-65b37410ca38005bd6f4c9470c93a49cd12ad368.tar.gz |
Revert "Issue #190 - Part 1: Remove XP_IOS conditional code"
This reverts commit 6a3d5769d01ec1a8dd56ea79aec2df91b801ce02.
Diffstat (limited to 'js/src/irregexp')
-rw-r--r-- | js/src/irregexp/NativeRegExpMacroAssembler.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/js/src/irregexp/NativeRegExpMacroAssembler.cpp b/js/src/irregexp/NativeRegExpMacroAssembler.cpp index f452de6bad..0fb5072973 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); |