Preliminary support for 68HC12
[deliverable/binutils-gdb.git] / sim / ppc / sim-endian-n.h
index 302b088ad5547fb227824f83632d930b4f7a1a6a..4d0410a92b2b2f1bdf947eb65158f0f23c24ff24 100644 (file)
 #error "N must be #defined"
 #endif
 
-#undef unsigned_N
+/* NOTE: See end of file for #undef */
 #define unsigned_N XCONCAT2(unsigned_,N)
-#undef _SWAP_N
-#define _SWAP_N XCONCAT2(_SWAP_,N)
-#undef endian_t2h_N
 #define endian_t2h_N XCONCAT2(endian_t2h_,N)
-#undef endian_h2t_N
 #define endian_h2t_N XCONCAT2(endian_h2t_,N)
-#undef swap_N
+#define _SWAP_N XCONCAT2(_SWAP_,N)
 #define swap_N XCONCAT2(swap_,N)
+#define endian_h2be_N XCONCAT2(endian_h2be_,N)
+#define endian_be2h_N XCONCAT2(endian_be2h_,N)
+#define endian_h2le_N XCONCAT2(endian_h2le_,N)
+#define endian_le2h_N XCONCAT2(endian_le2h_,N)
 
-INLINE_SIM_ENDIAN unsigned_N
+
+INLINE_SIM_ENDIAN\
+(unsigned_N)
 endian_t2h_N(unsigned_N raw_in)
 {
   if (CURRENT_TARGET_BYTE_ORDER == CURRENT_HOST_BYTE_ORDER) {
@@ -46,7 +48,8 @@ endian_t2h_N(unsigned_N raw_in)
 }
 
 
-INLINE_SIM_ENDIAN unsigned_N
+INLINE_SIM_ENDIAN\
+(unsigned_N)
 endian_h2t_N(unsigned_N raw_in)
 {
   if (CURRENT_TARGET_BYTE_ORDER == CURRENT_HOST_BYTE_ORDER) {
@@ -58,8 +61,74 @@ endian_h2t_N(unsigned_N raw_in)
 }
 
 
-INLINE_SIM_ENDIAN unsigned_N
+INLINE_SIM_ENDIAN\
+(unsigned_N)
 swap_N(unsigned_N raw_in)
 {
   _SWAP_N(return,raw_in);
 }
+
+
+
+INLINE_SIM_ENDIAN\
+(unsigned_N)
+endian_h2be_N(unsigned_N raw_in)
+{
+  if (CURRENT_HOST_BYTE_ORDER == BIG_ENDIAN) {
+    return raw_in;
+  }
+  else {
+    _SWAP_N(return,raw_in);
+  }
+}
+
+
+INLINE_SIM_ENDIAN\
+(unsigned_N)
+endian_be2h_N(unsigned_N raw_in)
+{
+  if (CURRENT_HOST_BYTE_ORDER == BIG_ENDIAN) {
+    return raw_in;
+  }
+  else {
+    _SWAP_N(return,raw_in);
+  }
+}
+
+
+INLINE_SIM_ENDIAN\
+(unsigned_N)
+endian_h2le_N(unsigned_N raw_in)
+{
+  if (CURRENT_HOST_BYTE_ORDER == LITTLE_ENDIAN) {
+    return raw_in;
+  }
+  else {
+    _SWAP_N(return,raw_in);
+  }
+}
+
+
+INLINE_SIM_ENDIAN\
+(unsigned_N)
+endian_le2h_N(unsigned_N raw_in)
+{
+  if (CURRENT_HOST_BYTE_ORDER == LITTLE_ENDIAN) {
+    return raw_in;
+  }
+  else {
+    _SWAP_N(return,raw_in);
+  }
+}
+
+
+/* NOTE: See start of file for #define */
+#undef unsigned_N
+#undef endian_t2h_N
+#undef endian_h2t_N
+#undef _SWAP_N
+#undef swap_N
+#undef endian_h2be_N
+#undef endian_be2h_N
+#undef endian_h2le_N
+#undef endian_le2h_N
This page took 0.024042 seconds and 4 git commands to generate.