Modified: releases/WebKitGTK/webkit-2.12/Source/_javascript_Core/ChangeLog (199364 => 199365)
--- releases/WebKitGTK/webkit-2.12/Source/_javascript_Core/ChangeLog 2016-04-12 16:40:27 UTC (rev 199364)
+++ releases/WebKitGTK/webkit-2.12/Source/_javascript_Core/ChangeLog 2016-04-12 16:41:29 UTC (rev 199365)
@@ -1,3 +1,17 @@
+2016-03-14 Julien Brianceau <[email protected]>
+
+ [mips] Fix unaligned access in LLINT.
+ https://bugs.webkit.org/show_bug.cgi?id=153228
+
+ Address loads used with btbxx opcodes were wrongly converted to lw
+ instruction instead of lbu, leading to unaligned access on mips
+ platforms. This is not a bug as it's silently fixed up by kernel,
+ but it's more efficient to avoid unaligned accesses for mips.
+
+ Reviewed by Geoffrey Garen.
+
+ * offlineasm/mips.rb:
+
2016-03-17 Yusuke Suzuki <[email protected]>
REGRESSION(r197380): Build fails with new GCC and Clang
Modified: releases/WebKitGTK/webkit-2.12/Source/_javascript_Core/offlineasm/mips.rb (199364 => 199365)
--- releases/WebKitGTK/webkit-2.12/Source/_javascript_Core/offlineasm/mips.rb 2016-04-12 16:40:27 UTC (rev 199364)
+++ releases/WebKitGTK/webkit-2.12/Source/_javascript_Core/offlineasm/mips.rb 2016-04-12 16:41:29 UTC (rev 199365)
@@ -265,9 +265,10 @@
[node.operands[0], MIPS_ZERO_REG, node.operands[-1]],
node.annotation)
elsif node.operands.size == 3
+ tl = condOp[-1, 1]
tmp = Tmp.new(node.codeOrigin, :gpr)
list << Instruction.new(node.codeOrigin,
- "andi",
+ "and" + tl,
[node.operands[0], node.operands[1], tmp],
node.annotation)
list << Instruction.new(node.codeOrigin,
@@ -588,6 +589,10 @@
newList << Instruction.new(node.codeOrigin,
node.opcode,
riscAsRegisters(newList, [], node.operands, "b"))
+ when "andb"
+ newList << Instruction.new(node.codeOrigin,
+ "andi",
+ riscAsRegisters(newList, [], node.operands, "b"))
when /^(bz|bnz|bs|bo)/
tl = $~.post_match == "" ? "i" : $~.post_match
newList << Instruction.new(node.codeOrigin,