summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@nokia.com>2011-05-16 13:47:09 +0200
committerSimon Hausmann <simon.hausmann@nokia.com>2011-05-16 14:01:33 +0200
commit9ed05d4d8a5a3a7f181e4905e415f3036f334456 (patch)
tree807aefc3f8501ed6185c1f746431af0d12116c05
parente3c777dc7acc967830be16d418c0c2825e2f593e (diff)
Fix crashes with regular expressions QtScript on ARM traditional architectures
Save and restore the r8 register properly. Backport of http://trac.webkit.org/changeset/65242 from WebKit trunk Reviewed-by: Jedrzej Nowacki (cherry picked from commit f5acce7e11fa7c6abf5cf5352ec750c1ac65dd29)
-rw-r--r--src/3rdparty/javascriptcore/JavaScriptCore/yarr/RegexJIT.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/yarr/RegexJIT.cpp b/src/3rdparty/javascriptcore/JavaScriptCore/yarr/RegexJIT.cpp
index fcb8d86..1015923 100644
--- a/src/3rdparty/javascriptcore/JavaScriptCore/yarr/RegexJIT.cpp
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/yarr/RegexJIT.cpp
@@ -1312,6 +1312,9 @@ class RegexGenerator : private MacroAssembler {
push(ARMRegisters::r4);
push(ARMRegisters::r5);
push(ARMRegisters::r6);
+#if CPU(ARM_TRADITIONAL)
+ push(ARMRegisters::r8); // scratch register
+#endif
move(ARMRegisters::r3, output);
#endif
}
@@ -1327,6 +1330,9 @@ class RegexGenerator : private MacroAssembler {
pop(X86Registers::ebx);
pop(X86Registers::ebp);
#elif CPU(ARM)
+#if CPU(ARM_TRADITIONAL)
+ pop(ARMRegisters::r8); // scratch register
+#endif
pop(ARMRegisters::r6);
pop(ARMRegisters::r5);
pop(ARMRegisters::r4);