/* Xstormy16 cpu description.
- Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2007
- Free Software Foundation, Inc.
+ Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2007,
+ 2008 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of GCC.
R8_REGS,
ICALL_REGS,
GENERAL_REGS,
- CARRY_REGS,
ALL_REGS,
LIM_REG_CLASSES
};
#define N_REG_CLASSES ((int) LIM_REG_CLASSES)
+#define IRA_COVER_CLASSES \
+{ \
+ GENERAL_REGS, LIM_REG_CLASSES \
+}
+
#define REG_CLASS_NAMES \
{ \
"NO_REGS", \
"R8_REGS", \
"ICALL_REGS", \
"GENERAL_REGS", \
- "CARRY_REGS", \
"ALL_REGS" \
}
{ 0x00100 }, \
{ 0x00300 }, \
{ 0x6FFFF }, \
- { 0x10000 }, \
{ (1 << FIRST_PSEUDO_REGISTER) - 1 } \
}
#define REGNO_REG_CLASS(REGNO) \
- ((REGNO) == 0 ? R0_REGS \
- : (REGNO) == 1 ? R1_REGS \
- : (REGNO) == 2 ? R2_REGS \
- : (REGNO) < 8 ? EIGHT_REGS \
- : (REGNO) == 8 ? R8_REGS \
- : (REGNO) == 16 ? CARRY_REGS \
+ ( (REGNO) == 0 ? R0_REGS \
+ : (REGNO) == 1 ? R1_REGS \
+ : (REGNO) == 2 ? R2_REGS \
+ : (REGNO) < 8 ? EIGHT_REGS \
+ : (REGNO) == 8 ? R8_REGS \
: (REGNO) <= 18 ? GENERAL_REGS \
: ALL_REGS)
: (CHAR) == 'd' ? R8_REGS \
: (CHAR) == 'e' ? EIGHT_REGS \
: (CHAR) == 't' ? TWO_REGS \
- : (CHAR) == 'y' ? CARRY_REGS \
: (CHAR) == 'z' ? ICALL_REGS \
: NO_REGS)
#define INCOMING_RETURN_ADDR_RTX \
gen_rtx_MEM (SImode, gen_rtx_PLUS (Pmode, stack_pointer_rtx, GEN_INT (-4)))
-#define INCOMING_FRAME_SP_OFFSET (xstormy16_interrupt_function_p () ? 6 : 4)
+#define INCOMING_FRAME_SP_OFFSET (xstormy16_interrupt_function_p () ? -6 : -4)
\f
/* Register That Address the Stack Frame. */
-#define STACK_POINTER_REGNUM 15
-
-#define FRAME_POINTER_REGNUM 17
-
+#define STATIC_CHAIN_REGNUM 1
#define HARD_FRAME_POINTER_REGNUM 13
-
-#define ARG_POINTER_REGNUM 18
-
-#define STATIC_CHAIN_REGNUM 1
+#define STACK_POINTER_REGNUM 15
+#define CARRY_REGNUM 16
+#define FRAME_POINTER_REGNUM 17
+#define ARG_POINTER_REGNUM 18
\f
/* Eliminating the Frame Pointer and the Arg Pointer */
#define MEMORY_MOVE_COST(M,C,I) (5 + memory_move_secondary_cost (M, C, I))
-#define BRANCH_COST 5
+#define BRANCH_COST(speed_p, predictable_p) 5
#define SLOW_BYTE_ACCESS 0
\f
/* Assembler Commands for Exception Regions. */
-#define DWARF2_UNWIND_INFO 0
+#define DWARF2_UNWIND_INFO 0
+#define DWARF_CIE_DATA_ALIGNMENT 1
/* Don't use __builtin_setjmp for unwinding, since it's tricky to get
at the high 16 bits of an address. */