https://trac.webkit.org/changeset/190289 made 374 tests crash on 32 bit ARM Linux platforms. (81 different tests)
EFL ARMv7 Thumb2 instructuon set: https://build.webkit.org/builders/EFL%20Linux%20ARMv7%20Thumb2%20Release/builds/15412
EFL ARMv7 "traditional" ARM instruction set: https://build.webkit.org/builders/EFL%20Linux%20ARMv7%20Traditional%20Release/builds/15278
GTK ARM "whatever": https://build.webkit.org/builders/GTK%20Linux%20ARM%20Release/builds/8640
Should this be duped to bug 149647 now (the rollout bug)?
I think I found the issue. In LowLevelAssembler.asm, the macro prepareForTailCall had the following construct:
if ARM or SH4 or ARM64 or C_LOOP or MIPS
addp 2 * PtrSize, sp
subi 2 * PtrSize, temp2
loadp PtrSize[cfr], lr
addp PtrSize, sp
subi PtrSize, temp2
loadp PtrSize[cfr], temp3
storep temp3, [sp]
The "if ARM or SH4 ..." case accounts for having a link register. The problem is that this if should also take into account the other ARM variants. It should read:
if ARM or ARMv7_TRADITIONAL or ARMv7 or SH4 or ARM64 or C_LOOP or MIPS
Running all JSC regression tests now.
Created attachment 262191 [details]
Landed as part of change set r190370: <http://trac.webkit.org/changeset/190370>.