aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorGeorg-Johann Lay <avr@gjlay.de>2011-05-10 12:16:09 +0000
committerGeorg-Johann Lay <gjl@gcc.gnu.org>2011-05-10 12:16:09 +0000
commitfd01a351dff3f953994a7a14015b9aaa3f77582d (patch)
tree54a74e89982af775f62a7493fbfd75b1ac4a8c03 /gcc
parent34cc3c861dc01807a8fbe392ba3f275286e7bf1b (diff)
downloadgcc-fd01a351dff3f953994a7a14015b9aaa3f77582d.zip
gcc-fd01a351dff3f953994a7a14015b9aaa3f77582d.tar.gz
gcc-fd01a351dff3f953994a7a14015b9aaa3f77582d.tar.bz2
re PR target/48896 (avr.o warnings)
PR target/48896 * config/avr/avr.c (avr_ret_register): Return unsigned int instead of int. (avr_function_value): Mark fn_decl_or_type as unused, don't pass it to avr_libcall_value. avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to expand_expr. (avr_expand_binop_builtin): Ditto. (avr_expand_unop_builtin): Ditto. From-SVN: r173617
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog12
-rw-r--r--gcc/config/avr/avr.c22
2 files changed, 21 insertions, 13 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 43784a6..6453217 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,15 @@
+2011-05-10 Georg-Johann Lay <avr@gjlay.de>
+
+ PR target/48896
+ * config/avr/avr.c (avr_ret_register): Return unsigned int
+ instead of int.
+ (avr_function_value): Mark fn_decl_or_type as unused, don't pass
+ it to avr_libcall_value.
+ avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
+ expand_expr.
+ (avr_expand_binop_builtin): Ditto.
+ (avr_expand_unop_builtin): Ditto.
+
2011-05-10 DJ Delorie <dj@redhat.com>
* config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c
index 522a356..ac4b318 100644
--- a/gcc/config/avr/avr.c
+++ b/gcc/config/avr/avr.c
@@ -6178,7 +6178,7 @@ avr_reorg (void)
/* Returns register number for function return value.*/
-static inline int
+static inline unsigned int
avr_ret_register (void)
{
return 24;
@@ -6209,18 +6209,14 @@ avr_libcall_value (enum machine_mode mode,
function returns a value of data type VALTYPE. */
static rtx
-avr_function_value (const_tree type, const_tree fn_decl_or_type,
- bool outgoing ATTRIBUTE_UNUSED)
+avr_function_value (const_tree type,
+ const_tree fn_decl_or_type ATTRIBUTE_UNUSED,
+ bool outgoing ATTRIBUTE_UNUSED)
{
unsigned int offs;
- const_rtx func = fn_decl_or_type;
-
- if (fn_decl_or_type
- && !DECL_P (fn_decl_or_type))
- fn_decl_or_type = NULL;
if (TYPE_MODE (type) != BLKmode)
- return avr_libcall_value (TYPE_MODE (type), func);
+ return avr_libcall_value (TYPE_MODE (type), NULL_RTX);
offs = int_size_in_bytes (type);
if (offs < 2)
@@ -6711,7 +6707,7 @@ avr_expand_unop_builtin (enum insn_code icode, tree exp,
{
rtx pat;
tree arg0 = CALL_EXPR_ARG (exp, 0);
- rtx op0 = expand_expr (arg0, NULL_RTX, VOIDmode, 0);
+ rtx op0 = expand_expr (arg0, NULL_RTX, VOIDmode, EXPAND_NORMAL);
enum machine_mode op0mode = GET_MODE (op0);
enum machine_mode tmode = insn_data[icode].operand[0].mode;
enum machine_mode mode0 = insn_data[icode].operand[1].mode;
@@ -6752,8 +6748,8 @@ avr_expand_binop_builtin (enum insn_code icode, tree exp, rtx target)
rtx pat;
tree arg0 = CALL_EXPR_ARG (exp, 0);
tree arg1 = CALL_EXPR_ARG (exp, 1);
- rtx op0 = expand_expr (arg0, NULL_RTX, VOIDmode, 0);
- rtx op1 = expand_expr (arg1, NULL_RTX, VOIDmode, 0);
+ rtx op0 = expand_expr (arg0, NULL_RTX, VOIDmode, EXPAND_NORMAL);
+ rtx op1 = expand_expr (arg1, NULL_RTX, VOIDmode, EXPAND_NORMAL);
enum machine_mode op0mode = GET_MODE (op0);
enum machine_mode op1mode = GET_MODE (op1);
enum machine_mode tmode = insn_data[icode].operand[0].mode;
@@ -6845,7 +6841,7 @@ avr_expand_builtin (tree exp, rtx target,
case AVR_BUILTIN_DELAY_CYCLES:
{
arg0 = CALL_EXPR_ARG (exp, 0);
- op0 = expand_expr (arg0, NULL_RTX, VOIDmode, 0);
+ op0 = expand_expr (arg0, NULL_RTX, VOIDmode, EXPAND_NORMAL);
if (! CONST_INT_P (op0))
error ("__builtin_avr_delay_cycles expects a compile time integer constant.");