ARM host fixes

Minor TCG cleanups and warning fixes for ARM hosts.

Signed-off-by: Paul Brook <paul@codesourcery.com>
diff --git a/tcg/arm/tcg-target.c b/tcg/arm/tcg-target.c
index 8139da1..1edcd10 100644
--- a/tcg/arm/tcg-target.c
+++ b/tcg/arm/tcg-target.c
@@ -1567,7 +1567,7 @@
     tcg_out_st32(s, COND_AL, arg, arg1, arg2);
 }
 
-void tcg_out_addi(TCGContext *s, int reg, tcg_target_long val)
+static void tcg_out_addi(TCGContext *s, int reg, tcg_target_long val)
 {
     if (val > 0)
         if (val < 0x100)
diff --git a/tcg/arm/tcg-target.h b/tcg/arm/tcg-target.h
index 8f5016f..78ab8fd 100644
--- a/tcg/arm/tcg-target.h
+++ b/tcg/arm/tcg-target.h
@@ -51,9 +51,10 @@
     TCG_REG_R12,
     TCG_REG_R13,
     TCG_REG_R14,
-    TCG_TARGET_NB_REGS
 };
 
+#define TCG_TARGET_NB_REGS 15
+
 /* used for function call generation */
 #define TCG_REG_CALL_STACK		TCG_REG_R13
 #define TCG_TARGET_STACK_ALIGN		8
@@ -69,8 +70,7 @@
 static inline void flush_icache_range(unsigned long start, unsigned long stop)
 {
 #if QEMU_GNUC_PREREQ(4, 1)
-    void __clear_cache(char *beg, char *end);
-    __clear_cache((char *) start, (char *) stop);
+    __builtin___clear_cache((char *) start, (char *) stop);
 #else
     register unsigned long _beg __asm ("a1") = start;
     register unsigned long _end __asm ("a2") = stop;