Fix DumpNativeStack function for traced methods. (part 2)

The alignment didn't work for thumb due to least significant bit set.

Bug: 123510633
Test: ./art/test.py -b -r -t 163
Change-Id: I173bdef1050c79a7431955034e3eb001d1efae05
diff --git a/runtime/native_stack_dump.cc b/runtime/native_stack_dump.cc
index 40bab0f..150fa78 100644
--- a/runtime/native_stack_dump.cc
+++ b/runtime/native_stack_dump.cc
@@ -301,10 +301,9 @@
       class_linker->IsQuickToInterpreterBridge(entry_point)) {
     return false;
   }
-  // The backtrace library might have heuristically subracted 1 from the pc,
-  // to pretend the pc is at the calling instruction.
-  DCHECK_ALIGNED(GetQuickInstrumentationExitPc(), sizeof(void*));
-  if (AlignUp(reinterpret_cast<void*>(pc), sizeof(void*)) == GetQuickInstrumentationExitPc()) {
+  // The backtrace library might have heuristically subracted instruction
+  // size from the pc, to pretend the pc is at the calling instruction.
+  if (reinterpret_cast<uintptr_t>(GetQuickInstrumentationExitPc()) - pc <= 4) {
     return false;
   }
   uintptr_t code = reinterpret_cast<uintptr_t>(EntryPointToCodePointer(entry_point));