123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- Index: gcc-4.2.2/gcc/config/avr32/avr32.c
- ===================================================================
- --- gcc-4.2.2.orig/gcc/config/avr32/avr32.c 2008-09-19 14:29:20.000000000 +0200
- +++ gcc-4.2.2/gcc/config/avr32/avr32.c 2008-09-19 14:30:02.000000000 +0200
- @@ -1788,7 +1788,7 @@
- {
- if (TREE_CODE (*node) != FUNCTION_DECL)
- {
- - warning ("`%s' attribute only applies to functions",
- + warning (OPT_Wattributes,"`%s' attribute only applies to functions",
- IDENTIFIER_POINTER (name));
- *no_add_attrs = true;
- }
- @@ -1802,7 +1802,7 @@
- {
- if (avr32_isr_value (args) == AVR32_FT_UNKNOWN)
- {
- - warning ("`%s' attribute ignored", IDENTIFIER_POINTER (name));
- + warning (OPT_Wattributes,"`%s' attribute ignored", IDENTIFIER_POINTER (name));
- *no_add_attrs = true;
- }
- }
- @@ -1829,7 +1829,7 @@
- }
- else
- {
- - warning ("`%s' attribute ignored", IDENTIFIER_POINTER (name));
- + warning (OPT_Wattributes,"`%s' attribute ignored", IDENTIFIER_POINTER (name));
- }
- }
- }
- @@ -1847,7 +1847,7 @@
- {
- if (TREE_CODE (*node) != FUNCTION_DECL)
- {
- - warning ("%qs attribute only applies to functions",
- + warning (OPT_Wattributes,"%qs attribute only applies to functions",
- IDENTIFIER_POINTER (name));
- *no_add_attrs = true;
- }
- @@ -1866,13 +1866,13 @@
- {
- if (TREE_CODE (*node) == FUNCTION_TYPE || TREE_CODE (*node) == METHOD_TYPE)
- {
- - warning ("`%s' attribute not yet supported...",
- + warning (OPT_Wattributes,"`%s' attribute not yet supported...",
- IDENTIFIER_POINTER (name));
- *no_add_attrs = true;
- return NULL_TREE;
- }
-
- - warning ("`%s' attribute only applies to functions",
- + warning (OPT_Wattributes,"`%s' attribute only applies to functions",
- IDENTIFIER_POINTER (name));
- *no_add_attrs = true;
- return NULL_TREE;
- @@ -4215,51 +4215,6 @@
-
-
- void
- -avr32_asm_output_ascii (FILE * stream, char *ptr, int len)
- -{
- - int i, i_new = 0;
- - char *new_ptr = xmalloc (4 * len);
- - if (new_ptr == NULL)
- - internal_error ("Out of memory.");
- -
- - for (i = 0; i < len; i++)
- - {
- - if (ptr[i] == '\n')
- - {
- - new_ptr[i_new++] = '\\';
- - new_ptr[i_new++] = '0';
- - new_ptr[i_new++] = '1';
- - new_ptr[i_new++] = '2';
- - }
- - else if (ptr[i] == '\"')
- - {
- - new_ptr[i_new++] = '\\';
- - new_ptr[i_new++] = '\"';
- - }
- - else if (ptr[i] == '\\')
- - {
- - new_ptr[i_new++] = '\\';
- - new_ptr[i_new++] = '\\';
- - }
- - else if (ptr[i] == '\0' && i + 1 < len)
- - {
- - new_ptr[i_new++] = '\\';
- - new_ptr[i_new++] = '0';
- - }
- - else
- - {
- - new_ptr[i_new++] = ptr[i];
- - }
- - }
- -
- - /* Terminate new_ptr. */
- - new_ptr[i_new] = '\0';
- - fprintf (stream, "\t.ascii\t\"%s\"\n", new_ptr);
- - free (new_ptr);
- -}
- -
- -
- -void
- avr32_asm_output_label (FILE * stream, const char *name)
- {
- name = avr32_strip_name_encoding (name);
- @@ -4444,12 +4399,15 @@
- rtx cmp;
- rtx cmp_op0, cmp_op1;
- rtx cond;
- + rtx dest;
- +
- if ( GET_CODE (exp) == COND_EXEC )
- {
- cmp_op0 = XEXP (COND_EXEC_TEST (exp), 0);
- cmp_op1 = XEXP (COND_EXEC_TEST (exp), 1);
- cond = COND_EXEC_TEST (exp);
- - }
- + dest = SET_DEST (COND_EXEC_CODE (exp));
- + }
- else
- {
- /* If then else conditional. compare operands are in operands
- @@ -4457,6 +4415,7 @@
- cmp_op0 = recog_data.operand[4];
- cmp_op1 = recog_data.operand[5];
- cond = recog_data.operand[1];
- + dest = SET_DEST (exp);
- }
-
- if ( GET_CODE (cmp_op0) == AND )
- @@ -4466,7 +4425,15 @@
- cmp_op0,
- cmp_op1);
-
- - if (is_compare_redundant (cmp, cond) == NULL_RTX)
- + /* Check if the conditional insns updates a register present
- + in the comparison, if so then we must reset the cc_status. */
- + if (REG_P (dest)
- + && (reg_mentioned_p (dest, cmp_op0)
- + || reg_mentioned_p (dest, cmp_op1)))
- + {
- + CC_STATUS_INIT;
- + }
- + else if (is_compare_redundant (cmp, cond) == NULL_RTX)
- {
- /* Reset the nonstandard flag */
- CC_STATUS_INIT;
|