Fix another typo in nterp.

Test: test.py
Change-Id: Ib58880b1e462e9c47a7b55663f39fd29894d2c7c
diff --git a/runtime/interpreter/mterp/arm64ng/main.S b/runtime/interpreter/mterp/arm64ng/main.S
index 70375dd..fa4155e 100644
--- a/runtime/interpreter/mterp/arm64ng/main.S
+++ b/runtime/interpreter/mterp/arm64ng/main.S
@@ -391,7 +391,7 @@
 .macro SETUP_STACK_FRAME code_item, refs, fp, cfi_refs, load_ins
     FETCH_CODE_ITEM_INFO \code_item, wip, wip2, w15, \load_ins
 
-    // Compute required frame size: ((2 * ip) + ip1) * 4 + 24
+    // Compute required frame size: ((2 * ip) + ip2) * 4 + 24
     // 24 is for saving the previous frame, pc, and method being executed.
     add x14, ip, ip
     add x14, x14, ip2
@@ -1166,7 +1166,7 @@
    cmp ip, #68       // Test if result type char == 'D'.
    b.eq .Lreturn_double_range_\suffix
    cmp ip, #70
-   b.ne .Ldone_return_\suffix
+   b.ne .Ldone_return_range_\suffix
 .Lreturn_float_range_\suffix:
    fmov w0, s0
    b .Ldone_return_range_\suffix
diff --git a/test/723-string-init-range/smali/new-instance.smali b/test/723-string-init-range/smali/new-instance.smali
index f47c8bb..29fa696 100644
--- a/test/723-string-init-range/smali/new-instance.smali
+++ b/test/723-string-init-range/smali/new-instance.smali
@@ -34,3 +34,14 @@
     invoke-direct/range {v0 .. v4}, Ljava/lang/String;-><init>([BIII)V
     return-object v0
 .end method
+
+.method public static initRangeWithAlias(Ljava/lang/String;)Ljava/lang/String;
+    .registers 19
+    # Put the object in a register > 0xF, as the arm64 nterp implementation wrongly masked
+    # that register with 0xF when handling String.<init> in an invoke-range.
+    new-instance v16, Ljava/lang/String;
+    move-object/from16 v1, v16
+    move-object/16 v17, p0
+    invoke-direct/range {v16 .. v17}, Ljava/lang/String;-><init>(Ljava/lang/String;)V
+    return-object v1
+.end method
diff --git a/test/723-string-init-range/src/Main.java b/test/723-string-init-range/src/Main.java
index 12fb93b..ca2fb7a 100644
--- a/test/723-string-init-range/src/Main.java
+++ b/test/723-string-init-range/src/Main.java
@@ -33,5 +33,11 @@
     if (!expected.equals(result)) {
       throw new Error("Expected '" + expected + "', got " + result);
     }
+
+    m = c.getMethod("initRangeWithAlias", String.class);
+    result = (String)m.invoke(null, expected);
+    if (!expected.equals(result)) {
+      throw new Error("Expected '" + expected + "', got " + result);
+    }
   }
 }