summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/assembler/MacroAssemblerSH4.h
diff options
context:
space:
mode:
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>2013-11-12 23:09:39 +0000
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-11-20 15:02:19 +0100
commitd7af109d619e3a6d88631598aaab7275a084da7f (patch)
tree3adcc3f21a08bcd1572006c84c1f38ece75c6aff /Source/JavaScriptCore/assembler/MacroAssemblerSH4.h
parent966168b00e96a42391090037bd1fc1af13634dea (diff)
downloadqtwebkit-d7af109d619e3a6d88631598aaab7275a084da7f.tar.gz
[sh4] Fix load32WithUnalignedHalfWords function in baseline JIT.
https://bugs.webkit.org/show_bug.cgi?id=124233 Patch by Julien Brianceau <jbriance@cisco.com> on 2013-11-12 Reviewed by Michael Saboff. * assembler/MacroAssemblerSH4.h: (JSC::MacroAssemblerSH4::load32WithUnalignedHalfWords): Do not claim scratch register too early. Test already covered by fast/regex/pcre-test-1. Change-Id: Ib783d70723754e80d961ade9463d7dc85ccb83f0 git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159153 268f45cc-cd09-0410-ab3c-d52691b4dbfc Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
Diffstat (limited to 'Source/JavaScriptCore/assembler/MacroAssemblerSH4.h')
-rw-r--r--Source/JavaScriptCore/assembler/MacroAssemblerSH4.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/Source/JavaScriptCore/assembler/MacroAssemblerSH4.h b/Source/JavaScriptCore/assembler/MacroAssemblerSH4.h
index c2293ed14..b8358bc2f 100644
--- a/Source/JavaScriptCore/assembler/MacroAssemblerSH4.h
+++ b/Source/JavaScriptCore/assembler/MacroAssemblerSH4.h
@@ -1312,15 +1312,15 @@ public:
void load32WithUnalignedHalfWords(BaseIndex address, RegisterID dest)
{
RegisterID scr = claimScratch();
- RegisterID scr1 = claimScratch();
Jump m_jump;
JumpList end;
+ loadEffectiveAddress(address, scr);
+
+ RegisterID scr1 = claimScratch();
if (dest != SH4Registers::r0)
move(SH4Registers::r0, scr1);
- loadEffectiveAddress(address, scr);
-
m_assembler.ensureSpace(m_assembler.maxInstructionSize + 58, sizeof(uint32_t));
move(scr, SH4Registers::r0);
m_assembler.testlImm8r(0x3, SH4Registers::r0);