Add alignment attribute to packed.

Make packed objects 4 byte aligned or else GCC becomes paranoid and
assumes only byte alignment on whole objects.
Change CHECK in GetCalleeSaveMethod to DCHECK to encourage inlining.

Change-Id: I79f1a13752492413c919b36f4e207e637647834f
diff --git a/src/macros.h b/src/macros.h
index f7146ad..d63aed6 100644
--- a/src/macros.h
+++ b/src/macros.h
@@ -125,7 +125,7 @@
 #define OFFSETOF_VOLATILE_MEMBER(t, f) \
   (reinterpret_cast<volatile char*>(&reinterpret_cast<t*>(16)->f) - reinterpret_cast<volatile char*>(16)) // NOLINT
 
-#define PACKED __attribute__ ((__packed__))
+#define PACKED(x) __attribute__ ((__aligned__(x),__packed__))
 
 #define LIKELY(x)       __builtin_expect((x), true)
 #define UNLIKELY(x)     __builtin_expect((x), false)