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