Origin: backport, https://github.com/webkit/webkit/commit/
3fdde71c7d95d758
Reviewed-by: Frank Heimes <frank.heimes@canonical.com>
Last-Update: 2021-11-24
In CodeBlock.cpp the code preparing the operands of op_get_from_scope writes
the property offset as pointer size (hence 64 bit) value:
2141: instructions[i + 6].u.pointer = reinterpret_cast<void*>(op.operand);
while the same slot is accessed later by the jitted code as 32 bit integer:
macro getProperty(slow)
loadisFromInstruction(6, t1)
This fails on big endian targets since the integer access takes the higher
part of the 64 bit value.
Gbp-Pq: Name jscore_big_endian.diff
end
macro getProperty(slow)
- loadisFromInstruction(6, t1)
+ loadpFromInstruction(6, t1)
loadPropertyAtVariableOffset(t1, t0, t2, slow)
valueProfile(t2, 7, t0)
loadisFromInstruction(1, t0)