ARM64: More mterp improvements.
Several simple improvements:
- use EOR for neg-float and neg-double,
- use SBFX instead of LSL+ASR for const/4,
- handle long-to-int as move,
- use LDRSW for int-to-long,
- remove bogus CMP from iput-quick,
- use indexed load/store for iget/iput-wide-quick,
- use CBZ, CBNZ, TBZ, TBNZ for if-eqz, if-nez, if-gez and
if-ltz, respectively. (The short range of TBZ/TBNZ
requires emitting the footer before alternate stubs.)
Test: Run ART test suite on Nexus 9 with the interpreter.
Change-Id: I2e65a7cee3d3e2128b870d98cf6157c21f57d607
23 files changed