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)