Use correct modifiers on LDR instructions.

UXTW is not a valid modifier for LDR on 32-bit ARM. Compilers built
without assertions incorrectly accept the modifier, while compilers
built with assertions crash (see llvm.org/pr48805).

The intent appears to be to use the LSL modifier (and that is how the
instruction is assembled with the no-assertions compiler) so change
the code to use it.

Change-Id: Icc0ec955486fe5c78e88604e9d8e3b3a9b4f7b62
diff --git a/runtime/interpreter/mterp/armng/invoke.S b/runtime/interpreter/mterp/armng/invoke.S
index 47678dc..18f6303 100644
--- a/runtime/interpreter/mterp/armng/invoke.S
+++ b/runtime/interpreter/mterp/armng/invoke.S
@@ -87,7 +87,7 @@
    // Note: if r1 is null, this will be handled by our SIGSEGV handler.
    ldr r2, [r1, #MIRROR_OBJECT_CLASS_OFFSET]
    ldr r2, [r2, #MIRROR_CLASS_IMT_PTR_OFFSET_32]
-   ldr r0, [r2, r0, uxtw #2]
+   ldr r0, [r2, r0, lsl #2]
    .if $range
    b NterpCommonInvokeInterfaceRange
    .else
@@ -145,7 +145,7 @@
    // Note: if r1 is null, this will be handled by our SIGSEGV handler.
    ldr r0, [r1, #MIRROR_OBJECT_CLASS_OFFSET]
    add r0, r0, #MIRROR_CLASS_VTABLE_OFFSET_32
-   ldr r0, [r0, r2, uxtw #2]
+   ldr r0, [r0, r2, lsl #2]
    b $helper
 2:
    mov r0, rSELF
@@ -173,7 +173,7 @@
    // Note: if r1 is null, this will be handled by our SIGSEGV handler.
    ldr r0, [r1, #MIRROR_OBJECT_CLASS_OFFSET]
    add r0, r0, #MIRROR_CLASS_VTABLE_OFFSET_32
-   ldr r0, [r0, r2, uxtw #2]
+   ldr r0, [r0, r2, lsl #2]
    b $helper
 
 %def op_invoke_virtual_quick():