ARMARCH: no cascaded adds in addr mode
authorCarol Eidt <carol.eidt@microsoft.com>
Wed, 8 Nov 2017 01:42:55 +0000 (17:42 -0800)
committerCarol Eidt <carol.eidt@microsoft.com>
Sun, 12 Nov 2017 15:42:29 +0000 (07:42 -0800)
commit01ce41954e5efa8d2de5bb9d7a0934197090a610
tree42c3bf276a60c2f48d3fa871b43d88e949af389d
parent102adba486f282501ce0863499ee71b59155eaac
ARMARCH: no cascaded adds in addr mode

On ARM and ARM64, cascaded `ADD`s in the op2 position of the root ADD are not folded into a single addressing mode. However, in `gtSetEvalOrder` it assumes that they will, so it walks both operands of the addr looking for more `ADD`s. This leads to an assert because the leaf nodes it winds up with are not the same as those returned by `genCreateAddrMode()`.

Fix #14665
src/jit/codegencommon.cpp
src/jit/compiler.h
src/jit/gentree.cpp