ARM/ARM64: Rewrite art_quick_do_long_jump.
Avoid accessing memory below SP.
Avoid using a deprecated instruction on ARM.
Load all registers except IP on ARM and IP0, IP1 on ARM64.
We previously didn't load r1 on ARM (where obsolete
comments described it as a return value) and x1 on ARM64
but it's preferable to restore these properly, clobbering
interprocedural scratch registers instead. This may be
useful if we eventually decide to allocate dex registers
to physical registers for catch handlers in compiled code.
Test: Pixel 2 XL boots.
Test: testrunner.py --target --optimizing
Change-Id: I273ac79bf36c999e937a164a88b7075b24f930c5
2 files changed