OSDN Git Service
(root)
/
pf3gnuchains
/
gcc-fork.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
* builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
[pf3gnuchains/gcc-fork.git]
/
gcc
/
expr.c
diff --git
a/gcc/expr.c
b/gcc/expr.c
index
fd129c1
..
3365aef
100644
(file)
--- a/
gcc/expr.c
+++ b/
gcc/expr.c
@@
-2151,7
+2151,7
@@
copy_blkmode_from_reg (rtx tgtblk, rtx srcreg, tree type)
if (GET_MODE (srcreg) != BLKmode
&& GET_MODE_SIZE (GET_MODE (srcreg)) < UNITS_PER_WORD)
if (GET_MODE (srcreg) != BLKmode
&& GET_MODE_SIZE (GET_MODE (srcreg)) < UNITS_PER_WORD)
- srcreg = convert_to_mode (word_mode, srcreg, T
RE
E_UNSIGNED (type));
+ srcreg = convert_to_mode (word_mode, srcreg, T
YP
E_UNSIGNED (type));
/* If the structure doesn't take up a whole number of words, see whether
SRCREG is padded on the left or on the right. If it's on the left,
/* If the structure doesn't take up a whole number of words, see whether
SRCREG is padded on the left or on the right. If it's on the left,
@@
-3881,7
+3881,7
@@
expand_assignment (tree to, tree from, int want_value)
return (want_value ? convert_modes (TYPE_MODE (TREE_TYPE (to)),
TYPE_MODE (TREE_TYPE (from)),
result,
return (want_value ? convert_modes (TYPE_MODE (TREE_TYPE (to)),
TYPE_MODE (TREE_TYPE (from)),
result,
- T
RE
E_UNSIGNED (TREE_TYPE (to)))
+ T
YP
E_UNSIGNED (TREE_TYPE (to)))
: NULL_RTX);
}
: NULL_RTX);
}
@@
-3971,7
+3971,7
@@
expand_assignment (tree to, tree from, int want_value)
VOIDmode, 3, XEXP (to_rtx, 0), Pmode,
XEXP (from_rtx, 0), Pmode,
convert_to_mode (TYPE_MODE (sizetype),
VOIDmode, 3, XEXP (to_rtx, 0), Pmode,
XEXP (from_rtx, 0), Pmode,
convert_to_mode (TYPE_MODE (sizetype),
- size, T
RE
E_UNSIGNED (sizetype)),
+ size, T
YP
E_UNSIGNED (sizetype)),
TYPE_MODE (sizetype));
else
emit_library_call (bcopy_libfunc, LCT_NORMAL,
TYPE_MODE (sizetype));
else
emit_library_call (bcopy_libfunc, LCT_NORMAL,
@@
-3979,7
+3979,7
@@
expand_assignment (tree to, tree from, int want_value)
XEXP (to_rtx, 0), Pmode,
convert_to_mode (TYPE_MODE (integer_type_node),
size,
XEXP (to_rtx, 0), Pmode,
convert_to_mode (TYPE_MODE (integer_type_node),
size,
- T
RE
E_UNSIGNED (integer_type_node)),
+ T
YP
E_UNSIGNED (integer_type_node)),
TYPE_MODE (integer_type_node));
preserve_temp_slots (to_rtx);
TYPE_MODE (integer_type_node));
preserve_temp_slots (to_rtx);
@@
-4149,7
+4149,7
@@
store_expr (tree exp, rtx target, int want_value)
&& INTEGRAL_TYPE_P (TREE_TYPE (exp))
&& TREE_TYPE (TREE_TYPE (exp)) == 0)
{
&& INTEGRAL_TYPE_P (TREE_TYPE (exp))
&& TREE_TYPE (TREE_TYPE (exp)) == 0)
{
- if (T
RE
E_UNSIGNED (TREE_TYPE (exp))
+ if (T
YP
E_UNSIGNED (TREE_TYPE (exp))
!= SUBREG_PROMOTED_UNSIGNED_P (target))
exp = convert
(lang_hooks.types.signed_or_unsigned_type
!= SUBREG_PROMOTED_UNSIGNED_P (target))
exp = convert
(lang_hooks.types.signed_or_unsigned_type
@@
-4238,7
+4238,7
@@
store_expr (tree exp, rtx target, int want_value)
&& TREE_CODE (exp) != ERROR_MARK
&& GET_MODE (target) != TYPE_MODE (TREE_TYPE (exp)))
temp = convert_modes (GET_MODE (target), TYPE_MODE (TREE_TYPE (exp)),
&& TREE_CODE (exp) != ERROR_MARK
&& GET_MODE (target) != TYPE_MODE (TREE_TYPE (exp)))
temp = convert_modes (GET_MODE (target), TYPE_MODE (TREE_TYPE (exp)),
- temp, T
RE
E_UNSIGNED (TREE_TYPE (exp)));
+ temp, T
YP
E_UNSIGNED (TREE_TYPE (exp)));
/* If value was not generated in the target, store it there.
Convert the value to TARGET's type first if necessary and emit the
/* If value was not generated in the target, store it there.
Convert the value to TARGET's type first if necessary and emit the
@@
-4279,7
+4279,7
@@
store_expr (tree exp, rtx target, int want_value)
if (GET_MODE (temp) != GET_MODE (target)
&& GET_MODE (temp) != VOIDmode)
{
if (GET_MODE (temp) != GET_MODE (target)
&& GET_MODE (temp) != VOIDmode)
{
- int unsignedp = T
RE
E_UNSIGNED (TREE_TYPE (exp));
+ int unsignedp = T
YP
E_UNSIGNED (TREE_TYPE (exp));
if (dont_return_target)
{
/* In this case, we will return TEMP,
if (dont_return_target)
{
/* In this case, we will return TEMP,
@@
-4320,7
+4320,7
@@
store_expr (tree exp, rtx target, int want_value)
/* Copy that much. */
copy_size_rtx = convert_to_mode (ptr_mode, copy_size_rtx,
/* Copy that much. */
copy_size_rtx = convert_to_mode (ptr_mode, copy_size_rtx,
- T
RE
E_UNSIGNED (sizetype));
+ T
YP
E_UNSIGNED (sizetype));
emit_block_move (target, temp, copy_size_rtx,
(want_value & 2
? BLOCK_OP_CALL_PARM : BLOCK_OP_NORMAL));
emit_block_move (target, temp, copy_size_rtx,
(want_value & 2
? BLOCK_OP_CALL_PARM : BLOCK_OP_NORMAL));
@@
-4342,7
+4342,7
@@
store_expr (tree exp, rtx target, int want_value)
#ifdef POINTERS_EXTEND_UNSIGNED
if (GET_MODE (copy_size_rtx) != Pmode)
copy_size_rtx = convert_to_mode (Pmode, copy_size_rtx,
#ifdef POINTERS_EXTEND_UNSIGNED
if (GET_MODE (copy_size_rtx) != Pmode)
copy_size_rtx = convert_to_mode (Pmode, copy_size_rtx,
- T
RE
E_UNSIGNED (sizetype));
+ T
YP
E_UNSIGNED (sizetype));
#endif
target = offset_address (target, copy_size_rtx,
#endif
target = offset_address (target, copy_size_rtx,
@@
-4685,7
+4685,7
@@
store_constructor (tree exp, rtx target, int cleared, HOST_WIDE_INT size)
if (TYPE_PRECISION (type) < BITS_PER_WORD)
{
type = lang_hooks.types.type_for_size
if (TYPE_PRECISION (type) < BITS_PER_WORD)
{
type = lang_hooks.types.type_for_size
- (BITS_PER_WORD, T
RE
E_UNSIGNED (type));
+ (BITS_PER_WORD, T
YP
E_UNSIGNED (type));
value = convert (type, value);
}
value = convert (type, value);
}
@@
-4848,7
+4848,7
@@
store_constructor (tree exp, rtx target, int cleared, HOST_WIDE_INT size)
if (cleared && is_zeros_p (value))
continue;
if (cleared && is_zeros_p (value))
continue;
- unsignedp = T
RE
E_UNSIGNED (elttype);
+ unsignedp = T
YP
E_UNSIGNED (elttype);
mode = TYPE_MODE (elttype);
if (mode == BLKmode)
bitsize = (host_integerp (TYPE_SIZE (elttype), 1)
mode = TYPE_MODE (elttype);
if (mode == BLKmode)
bitsize = (host_integerp (TYPE_SIZE (elttype), 1)
@@
-4906,7
+4906,7
@@
store_constructor (tree exp, rtx target, int cleared, HOST_WIDE_INT size)
expand_expr (hi_index, NULL_RTX, VOIDmode, 0);
loop_end = gen_label_rtx ();
expand_expr (hi_index, NULL_RTX, VOIDmode, 0);
loop_end = gen_label_rtx ();
- unsignedp = T
RE
E_UNSIGNED (domain);
+ unsignedp = T
YP
E_UNSIGNED (domain);
index = build_decl (VAR_DECL, NULL_TREE, domain);
index = build_decl (VAR_DECL, NULL_TREE, domain);
@@
-5450,7
+5450,7
@@
get_inner_reference (tree exp, HOST_WIDE_INT *pbitsize,
else
{
mode = TYPE_MODE (TREE_TYPE (exp));
else
{
mode = TYPE_MODE (TREE_TYPE (exp));
- *punsignedp = T
RE
E_UNSIGNED (TREE_TYPE (exp));
+ *punsignedp = T
YP
E_UNSIGNED (TREE_TYPE (exp));
if (mode == BLKmode)
size_tree = TYPE_SIZE (TREE_TYPE (exp));
if (mode == BLKmode)
size_tree = TYPE_SIZE (TREE_TYPE (exp));
@@
-6160,7
+6160,7
@@
expand_expr_real (tree exp, rtx target, enum machine_mode tmode,
{
rtx op0, op1, temp;
tree type = TREE_TYPE (exp);
{
rtx op0, op1, temp;
tree type = TREE_TYPE (exp);
- int unsignedp
= TREE_UNSIGNED (type)
;
+ int unsignedp;
enum machine_mode mode;
enum tree_code code = TREE_CODE (exp);
optab this_optab;
enum machine_mode mode;
enum tree_code code = TREE_CODE (exp);
optab this_optab;
@@
-6178,6
+6178,8
@@
expand_expr_real (tree exp, rtx target, enum machine_mode tmode,
}
mode = TYPE_MODE (type);
}
mode = TYPE_MODE (type);
+ unsignedp = TYPE_UNSIGNED (type);
+
/* Use subtarget as the target for operand 0 of a binary operation. */
subtarget = get_subtarget (target);
original_target = target;
/* Use subtarget as the target for operand 0 of a binary operation. */
subtarget = get_subtarget (target);
original_target = target;
@@
-6918,7
+6920,7
@@
expand_expr_real (tree exp, rtx target, enum machine_mode tmode,
enum machine_mode imode
= TYPE_MODE (TREE_TYPE (TREE_PURPOSE (elt)));
enum machine_mode imode
= TYPE_MODE (TREE_TYPE (TREE_PURPOSE (elt)));
- if (T
RE
E_UNSIGNED (TREE_TYPE (TREE_PURPOSE (elt))))
+ if (T
YP
E_UNSIGNED (TREE_TYPE (TREE_PURPOSE (elt))))
{
op1 = GEN_INT (((HOST_WIDE_INT) 1 << bitsize) - 1);
op0 = expand_and (imode, op0, op1, target);
{
op1 = GEN_INT (((HOST_WIDE_INT) 1 << bitsize) - 1);
op0 = expand_and (imode, op0, op1, target);
@@
-7277,7
+7279,7
@@
expand_expr_real (tree exp, rtx target, enum machine_mode tmode,
tree set = TREE_OPERAND (exp, 0);
tree index = TREE_OPERAND (exp, 1);
tree set = TREE_OPERAND (exp, 0);
tree index = TREE_OPERAND (exp, 1);
- int iunsignedp = T
RE
E_UNSIGNED (TREE_TYPE (index));
+ int iunsignedp = T
YP
E_UNSIGNED (TREE_TYPE (index));
tree set_type = TREE_TYPE (set);
tree set_low_bound = TYPE_MIN_VALUE (TYPE_DOMAIN (set_type));
tree set_high_bound = TYPE_MAX_VALUE (TYPE_DOMAIN (set_type));
tree set_type = TREE_TYPE (set);
tree set_low_bound = TYPE_MIN_VALUE (TYPE_DOMAIN (set_type));
tree set_high_bound = TYPE_MAX_VALUE (TYPE_DOMAIN (set_type));
@@
-7475,7
+7477,7
@@
expand_expr_real (tree exp, rtx target, enum machine_mode tmode,
/* If the signedness of the conversion differs and OP0 is
a promoted SUBREG, clear that indication since we now
have to do the proper extension. */
/* If the signedness of the conversion differs and OP0 is
a promoted SUBREG, clear that indication since we now
have to do the proper extension. */
- if (T
RE
E_UNSIGNED (TREE_TYPE (TREE_OPERAND (exp, 0))) != unsignedp
+ if (T
YP
E_UNSIGNED (TREE_TYPE (TREE_OPERAND (exp, 0))) != unsignedp
&& GET_CODE (op0) == SUBREG)
SUBREG_PROMOTED_VAR_P (op0) = 0;
&& GET_CODE (op0) == SUBREG)
SUBREG_PROMOTED_VAR_P (op0) = 0;
@@
-7498,7
+7500,7
@@
expand_expr_real (tree exp, rtx target, enum machine_mode tmode,
inner_mode));
else
return convert_modes (mode, inner_mode, op0,
inner_mode));
else
return convert_modes (mode, inner_mode, op0,
- T
RE
E_UNSIGNED (inner_type));
+ T
YP
E_UNSIGNED (inner_type));
}
if (modifier == EXPAND_INITIALIZER)
}
if (modifier == EXPAND_INITIALIZER)
@@
-7507,10
+7509,10
@@
expand_expr_real (tree exp, rtx target, enum machine_mode tmode,
if (target == 0)
return
convert_to_mode (mode, op0,
if (target == 0)
return
convert_to_mode (mode, op0,
- T
RE
E_UNSIGNED (TREE_TYPE (TREE_OPERAND (exp, 0))));
+ T
YP
E_UNSIGNED (TREE_TYPE (TREE_OPERAND (exp, 0))));
else
convert_move (target, op0,
else
convert_move (target, op0,
- T
RE
E_UNSIGNED (TREE_TYPE (TREE_OPERAND (exp, 0))));
+ T
YP
E_UNSIGNED (TREE_TYPE (TREE_OPERAND (exp, 0))));
return target;
case VIEW_CONVERT_EXPR:
return target;
case VIEW_CONVERT_EXPR:
@@
-7804,18
+7806,22
@@
expand_expr_real (tree exp, rtx target, enum machine_mode tmode,
|| exact_log2 (TREE_INT_CST_LOW (TREE_OPERAND (exp, 1))) < 0))
||
(TREE_CODE (TREE_OPERAND (exp, 1)) == NOP_EXPR
|| exact_log2 (TREE_INT_CST_LOW (TREE_OPERAND (exp, 1))) < 0))
||
(TREE_CODE (TREE_OPERAND (exp, 1)) == NOP_EXPR
- && (TYPE_PRECISION (TREE_TYPE (TREE_OPERAND (TREE_OPERAND (exp, 1), 0)))
- ==
- TYPE_PRECISION (TREE_TYPE (TREE_OPERAND (TREE_OPERAND (exp, 0), 0))))
+ && (TYPE_PRECISION (TREE_TYPE
+ (TREE_OPERAND (TREE_OPERAND (exp, 1), 0)))
+ == TYPE_PRECISION (TREE_TYPE
+ (TREE_OPERAND
+ (TREE_OPERAND (exp, 0), 0))))
/* If both operands are extended, they must either both
be zero-extended or both be sign-extended. */
/* If both operands are extended, they must either both
be zero-extended or both be sign-extended. */
- && (TREE_UNSIGNED (TREE_TYPE (TREE_OPERAND (TREE_OPERAND (exp, 1), 0)))
- ==
- TREE_UNSIGNED (TREE_TYPE (TREE_OPERAND (TREE_OPERAND (exp, 0), 0)))))))
+ && (TYPE_UNSIGNED (TREE_TYPE
+ (TREE_OPERAND (TREE_OPERAND (exp, 1), 0)))
+ == TYPE_UNSIGNED (TREE_TYPE
+ (TREE_OPERAND
+ (TREE_OPERAND (exp, 0), 0)))))))
{
tree op0type = TREE_TYPE (TREE_OPERAND (TREE_OPERAND (exp, 0), 0));
enum machine_mode innermode = TYPE_MODE (op0type);
{
tree op0type = TREE_TYPE (TREE_OPERAND (TREE_OPERAND (exp, 0), 0));
enum machine_mode innermode = TYPE_MODE (op0type);
- bool zextend_p = T
RE
E_UNSIGNED (op0type);
+ bool zextend_p = T
YP
E_UNSIGNED (op0type);
optab other_optab = zextend_p ? smul_widen_optab : umul_widen_optab;
this_optab = zextend_p ? umul_widen_optab : smul_widen_optab;
optab other_optab = zextend_p ? smul_widen_optab : umul_widen_optab;
this_optab = zextend_p ? umul_widen_optab : smul_widen_optab;
@@
-7924,7
+7930,7
@@
expand_expr_real (tree exp, rtx target, enum machine_mode tmode,
op0 = copy_to_mode_reg (TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0))),
op0);
expand_float (target, op0,
op0 = copy_to_mode_reg (TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0))),
op0);
expand_float (target, op0,
- T
RE
E_UNSIGNED (TREE_TYPE (TREE_OPERAND (exp, 0))));
+ T
YP
E_UNSIGNED (TREE_TYPE (TREE_OPERAND (exp, 0))));
return target;
case NEGATE_EXPR:
return target;
case NEGATE_EXPR:
@@
-7951,7
+7957,7
@@
expand_expr_real (tree exp, rtx target, enum machine_mode tmode,
/* Unsigned abs is simply the operand. Testing here means we don't
risk generating incorrect code below. */
/* Unsigned abs is simply the operand. Testing here means we don't
risk generating incorrect code below. */
- if (T
RE
E_UNSIGNED (type))
+ if (T
YP
E_UNSIGNED (type))
return op0;
return expand_abs (mode, op0, target, unsignedp,
return op0;
return expand_abs (mode, op0, target, unsignedp,
@@
-9286,7
+9292,7
@@
expand_increment (tree exp, int post, int ignore)
/* Increment however we can. */
op1 = expand_binop (mode, this_optab, value, op1, op0,
/* Increment however we can. */
op1 = expand_binop (mode, this_optab, value, op1, op0,
- T
RE
E_UNSIGNED (TREE_TYPE (exp)), OPTAB_LIB_WIDEN);
+ T
YP
E_UNSIGNED (TREE_TYPE (exp)), OPTAB_LIB_WIDEN);
/* Make sure the value is stored into OP0. */
if (op1 != op0)
/* Make sure the value is stored into OP0. */
if (op1 != op0)
@@
-9346,7
+9352,7
@@
do_store_flag (tree exp, rtx target, enum machine_mode mode, int only_cheap)
type = TREE_TYPE (arg0);
operand_mode = TYPE_MODE (type);
type = TREE_TYPE (arg0);
operand_mode = TYPE_MODE (type);
- unsignedp = T
RE
E_UNSIGNED (type);
+ unsignedp = T
YP
E_UNSIGNED (type);
/* We won't bother with BLKmode store-flag operations because it would mean
passing a lot of information to emit_store_flag. */
/* We won't bother with BLKmode store-flag operations because it would mean
passing a lot of information to emit_store_flag. */
@@
-9619,7
+9625,7
@@
try_casesi (tree index_type, tree index_expr, tree minval, tree range,
op_mode = insn_data[(int) CODE_FOR_casesi].operand[1].mode;
op1 = convert_modes (op_mode, TYPE_MODE (TREE_TYPE (minval)),
op_mode = insn_data[(int) CODE_FOR_casesi].operand[1].mode;
op1 = convert_modes (op_mode, TYPE_MODE (TREE_TYPE (minval)),
- op1, T
RE
E_UNSIGNED (TREE_TYPE (minval)));
+ op1, T
YP
E_UNSIGNED (TREE_TYPE (minval)));
if (! (*insn_data[(int) CODE_FOR_casesi].operand[1].predicate)
(op1, op_mode))
op1 = copy_to_mode_reg (op_mode, op1);
if (! (*insn_data[(int) CODE_FOR_casesi].operand[1].predicate)
(op1, op_mode))
op1 = copy_to_mode_reg (op_mode, op1);
@@
-9628,7
+9634,7
@@
try_casesi (tree index_type, tree index_expr, tree minval, tree range,
op_mode = insn_data[(int) CODE_FOR_casesi].operand[2].mode;
op2 = convert_modes (op_mode, TYPE_MODE (TREE_TYPE (range)),
op_mode = insn_data[(int) CODE_FOR_casesi].operand[2].mode;
op2 = convert_modes (op_mode, TYPE_MODE (TREE_TYPE (range)),
- op2, T
RE
E_UNSIGNED (TREE_TYPE (range)));
+ op2, T
YP
E_UNSIGNED (TREE_TYPE (range)));
if (! (*insn_data[(int) CODE_FOR_casesi].operand[2].predicate)
(op2, op_mode))
op2 = copy_to_mode_reg (op_mode, op2);
if (! (*insn_data[(int) CODE_FOR_casesi].operand[2].predicate)
(op2, op_mode))
op2 = copy_to_mode_reg (op_mode, op2);
@@
-9742,7
+9748,7
@@
try_tablejump (tree index_type, tree index_expr, tree minval, tree range,
TYPE_MODE (TREE_TYPE (range)),
expand_expr (range, NULL_RTX,
VOIDmode, 0),
TYPE_MODE (TREE_TYPE (range)),
expand_expr (range, NULL_RTX,
VOIDmode, 0),
- T
RE
E_UNSIGNED (TREE_TYPE (range))),
+ T
YP
E_UNSIGNED (TREE_TYPE (range))),
table_label, default_label);
return 1;
}
table_label, default_label);
return 1;
}