/* Target Definitions for TI C6X.
- Copyright (C) 2010-2016 Free Software Foundation, Inc.
+ Copyright (C) 2010-2020 Free Software Foundation, Inc.
Contributed by Andrew Jenner <andrew@codesourcery.com>
Contributed by Bernd Schmidt <bernds@codesourcery.com>
\
case C6X_CPU_C64XP: \
builtin_define ("_TMS320C6400_PLUS"); \
- /* ... fall through ... */ \
+ /* fall through */ \
case C6X_CPU_C64X: \
builtin_define ("_TMS320C6400"); \
break; \
\
case C6X_CPU_C67XP: \
builtin_define ("_TMS320C6700_PLUS"); \
- /* ... fall through ... */ \
+ /* fall through */ \
case C6X_CPU_C67X: \
builtin_define ("_TMS320C6700"); \
break; \
REG_A1, REG_A2, REG_B0, REG_B1, REG_B2, REG_ILC \
}
-#define HARD_REGNO_NREGS(regno, mode) \
- ((GET_MODE_SIZE (mode) + UNITS_PER_WORD - 1) \
- / UNITS_PER_WORD)
-
-#define HARD_REGNO_MODE_OK(reg, mode) (GET_MODE_SIZE (mode) <= UNITS_PER_WORD \
- ? 1 : ((reg) & 1) == 0)
-
-#define MODES_TIEABLE_P(mode1, mode2) \
- ((mode1) == (mode2) || \
- (GET_MODE_SIZE (mode1) <= UNITS_PER_WORD && \
- GET_MODE_SIZE (mode2) <= UNITS_PER_WORD))
-
-
/* Register Classes. */
enum reg_class
#define CROSS_OPERANDS(X0,X1) \
(A_REG_P (X0) == A_REG_P (X1) ? CROSS_N : CROSS_Y)
-#define REGNO_REG_CLASS(reg) \
- ((reg) >= REG_A1 && (reg) <= REG_A2 ? PREDICATE_A_REGS \
- : (reg) == REG_A0 && TARGET_INSNS_64 ? PREDICATE_A_REGS \
- : (reg) >= REG_B0 && (reg) <= REG_B2 ? PREDICATE_B_REGS \
- : A_REGNO_P (reg) ? NONPREDICATE_A_REGS \
- : call_used_regs[reg] ? CALL_USED_B_REGS : B_REGS)
+#define REGNO_REG_CLASS(reg) c6x_regno_reg_class (reg)
#define BASE_REG_CLASS ALL_REGS
#define INDEX_REG_CLASS ALL_REGS
#define STACK_POINTER_OFFSET 4
/* Likewise for AP (which is the incoming stack pointer). */
#define FIRST_PARM_OFFSET(fundecl) 4
-#define STARTING_FRAME_OFFSET 0
#define FRAME_GROWS_DOWNWARD 1
#define STACK_GROWS_DOWNWARD 1
c6x_init_cumulative_args (&cum, fntype, libname, n_named_args)
#define BLOCK_REG_PADDING(MODE, TYPE, FIRST) \
- (c6x_block_reg_pad_upward (MODE, TYPE, FIRST) ? upward : downward)
+ (c6x_block_reg_pad_upward (MODE, TYPE, FIRST) ? PAD_UPWARD : PAD_DOWNWARD)
#define FUNCTION_ARG_REGNO_P(r) \
(((r) >= REG_A4 && (r) <= REG_A13) || ((r) >= REG_B4 && (r) <= REG_B13))
#define CASE_VECTOR_MODE SImode
#define MOVE_MAX 4
#define MOVE_RATIO(SPEED) 4
-#define TRULY_NOOP_TRUNCATION(outprec, inprec) 1
#define CLZ_DEFINED_VALUE_AT_ZERO(MODE, VALUE) ((VALUE) = 32, 1)
#define Pmode SImode
#define FUNCTION_MODE QImode