diff options
author | Julien Brianceau <jbriance@cisco.com> | 2013-10-16 16:07:42 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-10-21 12:31:21 +0200 |
commit | 8591d128294798ddff8a2ed8a717ea2645b983a2 (patch) | |
tree | 075ceb46d05b16b6407c9b9283e6342136e7baa1 /Source/JavaScriptCore/assembler/SH4Assembler.h | |
parent | 2e6916aa0627bd4369366827ef915041df71fee7 (diff) | |
download | qtwebkit-8591d128294798ddff8a2ed8a717ea2645b983a2.tar.gz |
[sh4] Jump over maxJumpReplacementSize in revertJumpToMove.
https://bugs.webkit.org/show_bug.cgi?id=120007
Patch by Julien Brianceau <jbriance@cisco.com> on 2013-10-07
Reviewed by Oliver Hunt.
Jump over maxJumpReplacementSize in revertJumpToMove, even if there is no constant
value within the area. This patch fixes debug ASSERTs failures for sh4 architecture.
* assembler/SH4Assembler.h:
(JSC::SH4Assembler::revertJumpToMove):
Change-Id: Ice297393b167eace620ace8d8957014f0b3945c8
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157046 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
Diffstat (limited to 'Source/JavaScriptCore/assembler/SH4Assembler.h')
-rw-r--r-- | Source/JavaScriptCore/assembler/SH4Assembler.h | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/Source/JavaScriptCore/assembler/SH4Assembler.h b/Source/JavaScriptCore/assembler/SH4Assembler.h index fded7df89..55f974a29 100644 --- a/Source/JavaScriptCore/assembler/SH4Assembler.h +++ b/Source/JavaScriptCore/assembler/SH4Assembler.h @@ -1545,17 +1545,11 @@ public: insn[0] = getOpcodeGroup3(MOVL_READ_OFFPC_OPCODE, SH4Registers::r13, insn[0] & 0x00ff); insn[1] = (insn[1] & 0xf00f) | (rd << 8) | (SH4Registers::r13 << 4); cacheFlush(insn, 2 * sizeof(SH4Word)); - changePCrelativeAddress(insn[0] & 0x00ff, insn, imm); - return; - } - - if ((insn[0] & 0x00ff) == 1) + } else { insn[1] = getOpcodeGroup6(BRA_OPCODE, 3); - else - insn[1] = NOP_OPCODE; - - insn[2] = NOP_OPCODE; - cacheFlush(&insn[1], 2 * sizeof(SH4Word)); + insn[2] = NOP_OPCODE; + cacheFlush(&insn[1], 2 * sizeof(SH4Word)); + } changePCrelativeAddress(insn[0] & 0x00ff, insn, imm); } |