Implement thin-lock fast path for compiler-llvm.

Change-Id: I09d6a0dba4df7cbeb0c0e3f432ab3b09fce0846d
diff --git a/src/compiler_llvm/compilation_unit.cc b/src/compiler_llvm/compilation_unit.cc
index 5f239ab..5dc03c3 100644
--- a/src/compiler_llvm/compilation_unit.cc
+++ b/src/compiler_llvm/compilation_unit.cc
@@ -24,6 +24,7 @@
 #include "os.h"
 
 #include "runtime_support_builder_arm.h"
+#include "runtime_support_builder_thumb2.h"
 #include "runtime_support_builder_x86.h"
 
 #include <llvm/ADT/OwningPtr.h>
@@ -180,13 +181,15 @@
 
   // We always need a switch case, so just use a normal function.
   switch(insn_set_) {
-    default:
-      runtime_support_.reset(new RuntimeSupportBuilder(*context_, *module_, *irb_));
-      break;
+  default:
+    runtime_support_.reset(new RuntimeSupportBuilder(*context_, *module_, *irb_));
+    break;
   case kArm:
-  case kThumb2:
     runtime_support_.reset(new RuntimeSupportBuilderARM(*context_, *module_, *irb_));
     break;
+  case kThumb2:
+    runtime_support_.reset(new RuntimeSupportBuilderThumb2(*context_, *module_, *irb_));
+    break;
   case kX86:
     runtime_support_.reset(new RuntimeSupportBuilderX86(*context_, *module_, *irb_));
     break;
@@ -254,13 +257,13 @@
   switch (insn_set_) {
   case kThumb2:
     target_triple = "thumb-none-linux-gnueabi";
-    target_attr = "+thumb2,+neon,+neonfp,+vfp3";
+    target_attr = "+thumb2,+neon,+neonfp,+vfp3,+db";
     break;
 
   case kArm:
     target_triple = "armv7-none-linux-gnueabi";
     // TODO: Fix for Xoom.
-    target_attr = "+v7,+neon,+neonfp,+vfp3";
+    target_attr = "+v7,+neon,+neonfp,+vfp3,+db";
     break;
 
   case kX86: