* m68hc11.h (EF_M68HC12_MACH, EF_M68HCS12_MACH): Define.
authorStephane Carrez <stcarrez@nerim.fr>
Sun, 1 Dec 2002 12:16:21 +0000 (12:16 +0000)
committerStephane Carrez <stcarrez@nerim.fr>
Sun, 1 Dec 2002 12:16:21 +0000 (12:16 +0000)
(EF_M68HC11_MACH_MASK, EF_M68HC11_MACH): Define.
(EF_M68HC11_MERGE_MACH, EF_M68HC11_CAN_MERGE_MACH): Define.

include/elf/ChangeLog
include/elf/m68hc11.h

index f3e7e62..bba6fd5 100644 (file)
@@ -1,3 +1,9 @@
+2002-12-01  Stephane Carrez  <stcarrez@nerim.fr>
+
+       * m68hc11.h (EF_M68HC12_MACH, EF_M68HCS12_MACH): Define.
+       (EF_M68HC11_MACH_MASK, EF_M68HC11_MACH): Define.
+       (EF_M68HC11_MERGE_MACH, EF_M68HC11_CAN_MERGE_MACH): Define.
+
 2002-11-30  Alan Modra  <amodra@bigpond.net.au>
 
        * mmix.h: Replace boolean with bfd_boolean.
index c4ef37d..1902f7f 100644 (file)
@@ -64,6 +64,24 @@ END_RELOC_NUMBERS (R_M68HC11_max)
 /* Uses 68HC12 memory banks.  */
 #define E_M68HC12_BANKS 0x000000004
 
+#define EF_M68HC11_MACH_MASK 0xF0
+#define EF_M68HC11_GENERIC   0x00 /* Generic 68HC12/backward compatibility.  */
+#define EF_M68HC12_MACH      0x10 /* 68HC12 microcontroller.  */
+#define EF_M68HCS12_MACH     0x20 /* 68HCS12 microcontroller.  */
+#define EF_M68HC11_MACH(mach) ((mach) & EF_M68HC11_MACH_MASK)
+
+/* True if we can merge machines.  A generic HC12 can work on any proc
+   but once we have specific code, merge is not possible.  */
+#define EF_M68HC11_CAN_MERGE_MACH(mach1, mach2) \
+  ((EF_M68HC11_MACH (mach1) == EF_M68HC11_MACH (mach2)) \
+   || (EF_M68HC11_MACH (mach1) == EF_M68HC11_GENERIC) \
+   || (EF_M68HC11_MACH (mach2) == EF_M68HC11_GENERIC))
+
+#define EF_M68HC11_MERGE_MACH(mach1, mach2) \
+  (((EF_M68HC11_MACH (mach1) == EF_M68HC11_MACH (mach2)) \
+    || (EF_M68HC11_MACH (mach1) == EF_M68HC11_GENERIC)) ? \
+      EF_M68HC11_MACH (mach2) : EF_M68HC11_MACH (mach1))
+
 \f
 /* Special values for the st_other field in the symbol table.  These
    are used for 68HC12 to identify far functions (must be called with