diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2011-05-16 11:47:09 (GMT) |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2011-05-16 11:47:09 (GMT) |
commit | f5acce7e11fa7c6abf5cf5352ec750c1ac65dd29 (patch) | |
tree | 36d3d0d3ead3da34b260334efe819f9cdd99e28f /src | |
parent | 7e4a9187bb11b794e45d95d2e9fae026d6b0d07d (diff) | |
download | Qt-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
Diffstat (limited to 'src')
-rw-r--r-- | src/3rdparty/javascriptcore/JavaScriptCore/yarr/RegexJIT.cpp | 6 |
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); |