Fixed ARM single stepper: added "ADD Rn, PC" command emulation (dotnet/coreclr#24271)
This change fixes bug dotnet/coreclr#24164: pull request dotnet/coreclr#11366 adds generation of
commands which use PC-relative addressing. But ArmSingleStepper doesn't
implements support for "ADD Rn, PC" command, so when we try to debug
managed code, generated JIT can't be single stepped correctly.
Detailed changes description:
1) added "ADD Rn, PC" command emulation to ArmSingleStepper;
2) asserts added to JIT code generator, which prevents using of CPU
instructions, which address PC (R15) register with except of only "ADD
Rn, PC" instruction (asserts generated only in Debug builds).
Normally PC register shouldn't be used in arithmetic commands almost in
all cases.
Commit migrated from https://github.com/dotnet/coreclr/commit/
aa66f12b58dc11857db5796ff49bd46dd242dd82