From 8591d128294798ddff8a2ed8a717ea2645b983a2 Mon Sep 17 00:00:00 2001 From: Julien Brianceau Date: Wed, 16 Oct 2013 16:07:42 +0200 Subject: [sh4] Jump over maxJumpReplacementSize in revertJumpToMove. https://bugs.webkit.org/show_bug.cgi?id=120007 Patch by Julien Brianceau 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 --- Source/JavaScriptCore/assembler/SH4Assembler.h | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) (limited to 'Source/JavaScriptCore/assembler') 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); } -- cgit v1.2.1