[OTS] TAG() macro for big endian

Add TAG() macro for big endian.

BUG=chromium:124629
TEST=ran test_{un,}malicious_fonts.sh
Review URL: https://chromiumcodereview.appspot.com/10205009

git-svn-id: http://ots.googlecode.com/svn/trunk@88 a4e77c2c-9104-11de-800e-5b313e0d2bf3
diff --git a/src/ots.cc b/src/ots.cc
index 0663edf..3b5661c 100644
--- a/src/ots.cc
+++ b/src/ots.cc
@@ -82,8 +82,12 @@
 };
 
 // Use a macro instead of a function because gcc 4.4.3 creates static
-// initializers in that case. Note this macro assumes a little-endian system.
+// initializers in that case.
+#if defined(__BIG_ENDIAN__) || defined(_BIG_ENDIAN)
+#define TAG(d, c, b, a) (a | (b << 8) | (c << 16) | (d << 24))
+#else
 #define TAG(a, b, c, d) (a | (b << 8) | (c << 16) | (d << 24))
+#endif
 
 const struct {
   uint32_t tag;