summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@nokia.com>2011-05-16 11:47:09 (GMT)
committerSimon Hausmann <simon.hausmann@nokia.com>2011-05-16 11:47:09 (GMT)
commitf5acce7e11fa7c6abf5cf5352ec750c1ac65dd29 (patch)
tree36d3d0d3ead3da34b260334efe819f9cdd99e28f
parent7e4a9187bb11b794e45d95d2e9fae026d6b0d07d (diff)
downloadQt-f5acce7e11fa7c6abf5cf5352ec750c1ac65dd29.zip
Qt-f5acce7e11fa7c6abf5cf5352ec750c1ac65dd29.tar.gz
Qt-f5acce7e11fa7c6abf5cf5352ec750c1ac65dd29.tar.bz2
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
-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);