+/* Indicate which extended bit operations this port supports */
+static bool
+hasExtBitOp (int op, int size)
+{
+ if (op == RRC
+ || op == RLC
+ || op == GETHBIT
+ || (op == SWAP && size <= 2)
+ )
+ return TRUE;
+ else
+ return FALSE;
+}
+
+/* Indicate the expense of an access to an output storage class */
+static int
+oclsExpense (struct memmap *oclass)
+{
+ /* The hc08's addressing modes allow access to all storage classes */
+ /* inexpensively (<=0) */
+
+ if (IN_DIRSPACE (oclass)) /* direct addressing mode is fastest */
+ return -2;
+ if (IN_FARSPACE (oclass)) /* extended addressing mode is almost at fast */
+ return -1;
+ if (oclass == istack) /* stack is the slowest, but still faster than */
+ return 0; /* trying to copy to a temp location elsewhere */
+
+ return 0; /* anything we missed */
+}
+
+
+/*----------------------------------------------------------------------*/
+/* hc08_dwarfRegNum - return the DWARF register number for a register. */
+/* These are defined for the HC08 in "Motorola 8- and 16-bit Embedded */
+/* Application Binary Interface (M8/16EABI)" */
+/*----------------------------------------------------------------------*/
+static int
+hc08_dwarfRegNum (regs * reg)
+{
+ switch (reg->rIdx)
+ {
+ case A_IDX: return 0;
+ case H_IDX: return 1;
+ case X_IDX: return 2;
+ case CND_IDX: return 17;
+ case SP_IDX: return 15;
+ }
+ return -1;
+}
+
+
+