===================================================================
@@ -735,11 +735,14 @@ mn10300_expand_prologue (void)
: (((S) >= (1 << 7)) || ((S) < -(1 << 7))) ? 4 : 2)
#define SIZE_ADD_SP(S) ((((S) >= (1 << 15)) || ((S) < -(1 << 15))) ? 6 \
: (((S) >= (1 << 7)) || ((S) < -(1 << 7))) ? 4 : 3)
+
+/* We add 0 * (S) in two places to promote to the type of S,
+ so that all arms of the conditional have the same type. */
#define SIZE_FMOV_LIMIT(S,N,L,SIZE1,SIZE2,ELSE) \
- (((S) >= (L)) ? (SIZE1) * (N) \
+ (((S) >= (L)) ? 0 * (S) + (SIZE1) * (N) \
: ((S) + 4 * (N) >= (L)) ? (((L) - (S)) / 4 * (SIZE2) \
+ ((S) + 4 * (N) - (L)) / 4 * (SIZE1)) \
- : (ELSE))
+ : 0 * (S) + (ELSE))
#define SIZE_FMOV_SP_(S,N) \
(SIZE_FMOV_LIMIT ((S), (N), (1 << 24), 7, 6, \
SIZE_FMOV_LIMIT ((S), (N), (1 << 8), 6, 4, \
@@ -1459,7 +1462,7 @@ mn10300_function_arg (CUMULATIVE_ARGS *c
const_tree type, bool named ATTRIBUTE_UNUSED)
{
rtx result = NULL_RTX;
- int size, align;
+ int size;
/* We only support using 2 data registers as argument registers. */
int nregs = 2;
@@ -1470,9 +1473,6 @@ mn10300_function_arg (CUMULATIVE_ARGS *c
else
size = GET_MODE_SIZE (mode);
- /* Figure out the alignment of the object to be passed. */
- align = size;
-
cum->nbytes = (cum->nbytes + 3) & ~3;
/* Don't pass this arg via a register if all the argument registers
@@ -1521,7 +1521,7 @@ static int
mn10300_arg_partial_bytes (CUMULATIVE_ARGS *cum, enum machine_mode mode,
tree type, bool named ATTRIBUTE_UNUSED)
{
- int size, align;
+ int size;
/* We only support using 2 data registers as argument registers. */
int nregs = 2;
@@ -1532,9 +1532,6 @@ mn10300_arg_partial_bytes (CUMULATIVE_AR
else
size = GET_MODE_SIZE (mode);
- /* Figure out the alignment of the object to be passed. */
- align = size;
-
cum->nbytes = (cum->nbytes + 3) & ~3;
/* Don't pass this arg via a register if all the argument registers
===================================================================
@@ -44,7 +44,7 @@ (define_constants [
;; Processor type. This attribute must exactly match the processor_type
;; enumeration in mn10300.h.
(define_attr "cpu" "mn10300,am33,am33_2,am34"
- (const (symbol_ref "mn10300_tune_cpu")))
+ (const (symbol_ref "(enum attr_cpu) mn10300_tune_cpu")))
;; Pipeline description.