The problem is that *arith_shiftsi allows *all* shiftable operators to have the stack pointer as Rn .
In Thumb2 only the add and sub instructions are allowed to have the stack pointer in this form and all other instructions are UNPREDICTABLE. This has come as a result of merging the 2 patterns from ARM and Thumb2 into a single pattern and considering the same for both.
The problem is that *arith_shiftsi allows *all* shiftable operators to have the stack pointer as Rn .
In Thumb2 only the add and sub instructions are allowed to have the stack pointer in this form and all other instructions are UNPREDICTABLE. This has come as a result of merging the 2 patterns from ARM and Thumb2 into a single pattern and considering the same for both.
Affects only 4.6 branch and FSF trunk.
cheers
Ramana