Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
riscv-gcc-1
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
riscv-gcc-1
Commits
3a94c984
Commit
3a94c984
authored
Aug 06, 2000
by
Kazu Hirata
Committed by
Jeff Law
Aug 06, 2000
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* expr.c: Fix formatting.
From-SVN: r35523
parent
e50f5f3d
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
39 additions
and
40 deletions
+39
-40
gcc/ChangeLog
+4
-0
gcc/expr.c
+35
-40
No files found.
gcc/ChangeLog
View file @
3a94c984
2000-08-06 Kazu Hirata <kazu@hxi.com>
* expr.c: Fix formatting.
2000-08-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2000-08-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* rs6000.c (rs6000_maybe_dead): Prototype.
* rs6000.c (rs6000_maybe_dead): Prototype.
...
...
gcc/expr.c
View file @
3a94c984
...
@@ -19,7 +19,6 @@ along with GNU CC; see the file COPYING. If not, write to
...
@@ -19,7 +19,6 @@ along with GNU CC; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
Boston, MA 02111-1307, USA. */
#include "config.h"
#include "config.h"
#include "system.h"
#include "system.h"
#include "machmode.h"
#include "machmode.h"
...
@@ -68,7 +67,7 @@ Boston, MA 02111-1307, USA. */
...
@@ -68,7 +67,7 @@ Boston, MA 02111-1307, USA. */
#ifdef PUSH_ROUNDING
#ifdef PUSH_ROUNDING
#if defined (STACK_GROWS_DOWNWARD) != defined (ARGS_GROW_DOWNWARD)
#if defined (STACK_GROWS_DOWNWARD) != defined (ARGS_GROW_DOWNWARD)
#define PUSH_ARGS_REVERSED
/* If it's last to first */
#define PUSH_ARGS_REVERSED
/* If it's last to first
.
*/
#endif
#endif
#endif
#endif
...
@@ -196,7 +195,7 @@ static char direct_store[NUM_MACHINE_MODES];
...
@@ -196,7 +195,7 @@ static char direct_store[NUM_MACHINE_MODES];
#if defined (HAVE_movstrqi) || defined (HAVE_movstrhi) || defined (HAVE_movstrsi) || defined (HAVE_movstrdi) || defined (HAVE_movstrti)
#if defined (HAVE_movstrqi) || defined (HAVE_movstrhi) || defined (HAVE_movstrsi) || defined (HAVE_movstrdi) || defined (HAVE_movstrti)
#define MOVE_RATIO 2
#define MOVE_RATIO 2
#else
#else
/* If we are optimizing for space (-Os), cut down the default move ratio */
/* If we are optimizing for space (-Os), cut down the default move ratio
.
*/
#define MOVE_RATIO (optimize_size ? 3 : 15)
#define MOVE_RATIO (optimize_size ? 3 : 15)
#endif
#endif
#endif
#endif
...
@@ -932,7 +931,7 @@ convert_move (to, from, unsignedp)
...
@@ -932,7 +931,7 @@ convert_move (to, from, unsignedp)
return
;
return
;
}
}
/* Handle pointer conversion
*/
/* SPEE 900220
*/
/* Handle pointer conversion
. */
/* SPEE 900220.
*/
if
(
to_mode
==
PQImode
)
if
(
to_mode
==
PQImode
)
{
{
if
(
from_mode
!=
QImode
)
if
(
from_mode
!=
QImode
)
...
@@ -1375,7 +1374,6 @@ convert_modes (mode, oldmode, x, unsignedp)
...
@@ -1375,7 +1374,6 @@ convert_modes (mode, oldmode, x, unsignedp)
return
temp
;
return
temp
;
}
}
/* This macro is used to determine what the largest unit size that
/* This macro is used to determine what the largest unit size that
move_by_pieces can use is. */
move_by_pieces can use is. */
...
@@ -1834,7 +1832,6 @@ move_block_to_reg (regno, x, nregs, mode)
...
@@ -1834,7 +1832,6 @@ move_block_to_reg (regno, x, nregs, mode)
The number of registers to be filled is NREGS. SIZE indicates the number
The number of registers to be filled is NREGS. SIZE indicates the number
of bytes in the object X. */
of bytes in the object X. */
void
void
move_block_from_reg
(
regno
,
x
,
nregs
,
size
)
move_block_from_reg
(
regno
,
x
,
nregs
,
size
)
int
regno
;
int
regno
;
...
@@ -1936,7 +1933,7 @@ emit_group_load (dst, orig_src, ssize, align)
...
@@ -1936,7 +1933,7 @@ emit_group_load (dst, orig_src, ssize, align)
else
else
start
=
1
;
start
=
1
;
tmps
=
(
rtx
*
)
alloca
(
sizeof
(
rtx
)
*
XVECLEN
(
dst
,
0
));
tmps
=
(
rtx
*
)
alloca
(
sizeof
(
rtx
)
*
XVECLEN
(
dst
,
0
));
/* If we won't be loading directly from memory, protect the real source
/* If we won't be loading directly from memory, protect the real source
from strange tricks we might play. */
from strange tricks we might play. */
...
@@ -2000,7 +1997,7 @@ emit_group_load (dst, orig_src, ssize, align)
...
@@ -2000,7 +1997,7 @@ emit_group_load (dst, orig_src, ssize, align)
tmps
[
i
],
0
,
OPTAB_WIDEN
);
tmps
[
i
],
0
,
OPTAB_WIDEN
);
}
}
emit_queue
();
emit_queue
();
/* Copy the extracted pieces into the proper (probable) hard regs. */
/* Copy the extracted pieces into the proper (probable) hard regs. */
for
(
i
=
start
;
i
<
XVECLEN
(
dst
,
0
);
i
++
)
for
(
i
=
start
;
i
<
XVECLEN
(
dst
,
0
);
i
++
)
...
@@ -2030,7 +2027,7 @@ emit_group_store (orig_dst, src, ssize, align)
...
@@ -2030,7 +2027,7 @@ emit_group_store (orig_dst, src, ssize, align)
else
else
start
=
1
;
start
=
1
;
tmps
=
(
rtx
*
)
alloca
(
sizeof
(
rtx
)
*
XVECLEN
(
src
,
0
));
tmps
=
(
rtx
*
)
alloca
(
sizeof
(
rtx
)
*
XVECLEN
(
src
,
0
));
/* Copy the (probable) hard regs into pseudos. */
/* Copy the (probable) hard regs into pseudos. */
for
(
i
=
start
;
i
<
XVECLEN
(
src
,
0
);
i
++
)
for
(
i
=
start
;
i
<
XVECLEN
(
src
,
0
);
i
++
)
...
@@ -2039,7 +2036,7 @@ emit_group_store (orig_dst, src, ssize, align)
...
@@ -2039,7 +2036,7 @@ emit_group_store (orig_dst, src, ssize, align)
tmps
[
i
]
=
gen_reg_rtx
(
GET_MODE
(
reg
));
tmps
[
i
]
=
gen_reg_rtx
(
GET_MODE
(
reg
));
emit_move_insn
(
tmps
[
i
],
reg
);
emit_move_insn
(
tmps
[
i
],
reg
);
}
}
emit_queue
();
emit_queue
();
/* If we won't be storing directly into memory, protect the real destination
/* If we won't be storing directly into memory, protect the real destination
from strange tricks we might play. */
from strange tricks we might play. */
...
@@ -2111,7 +2108,7 @@ emit_group_store (orig_dst, src, ssize, align)
...
@@ -2111,7 +2108,7 @@ emit_group_store (orig_dst, src, ssize, align)
mode
,
tmps
[
i
],
align
,
ssize
);
mode
,
tmps
[
i
],
align
,
ssize
);
}
}
emit_queue
();
emit_queue
();
/* Copy from the pseudo into the (probable) hard reg. */
/* Copy from the pseudo into the (probable) hard reg. */
if
(
GET_CODE
(
dst
)
==
REG
)
if
(
GET_CODE
(
dst
)
==
REG
)
...
@@ -2202,7 +2199,7 @@ use_reg (call_fusage, reg)
...
@@ -2202,7 +2199,7 @@ use_reg (call_fusage, reg)
{
{
if
(
GET_CODE
(
reg
)
!=
REG
if
(
GET_CODE
(
reg
)
!=
REG
||
REGNO
(
reg
)
>=
FIRST_PSEUDO_REGISTER
)
||
REGNO
(
reg
)
>=
FIRST_PSEUDO_REGISTER
)
abort
();
abort
();
*
call_fusage
*
call_fusage
=
gen_rtx_EXPR_LIST
(
VOIDmode
,
=
gen_rtx_EXPR_LIST
(
VOIDmode
,
...
@@ -2276,7 +2273,8 @@ clear_by_pieces (to, len, align)
...
@@ -2276,7 +2273,8 @@ clear_by_pieces (to, len, align)
data
.
explicit_inc_to
=
0
;
data
.
explicit_inc_to
=
0
;
data
.
reverse
data
.
reverse
=
(
GET_CODE
(
to_addr
)
==
PRE_DEC
||
GET_CODE
(
to_addr
)
==
POST_DEC
);
=
(
GET_CODE
(
to_addr
)
==
PRE_DEC
||
GET_CODE
(
to_addr
)
==
POST_DEC
);
if
(
data
.
reverse
)
data
.
offset
=
len
;
if
(
data
.
reverse
)
data
.
offset
=
len
;
data
.
len
=
len
;
data
.
len
=
len
;
/* If copying requires more than two move insns,
/* If copying requires more than two move insns,
...
@@ -2285,7 +2283,7 @@ clear_by_pieces (to, len, align)
...
@@ -2285,7 +2283,7 @@ clear_by_pieces (to, len, align)
if
(
!
data
.
autinc_to
if
(
!
data
.
autinc_to
&&
move_by_pieces_ninsns
(
len
,
align
)
>
2
)
&&
move_by_pieces_ninsns
(
len
,
align
)
>
2
)
{
{
/* Determine the main mode we'll be using */
/* Determine the main mode we'll be using
.
*/
for
(
tmode
=
GET_CLASS_NARROWEST_MODE
(
MODE_INT
);
for
(
tmode
=
GET_CLASS_NARROWEST_MODE
(
MODE_INT
);
tmode
!=
VOIDmode
;
tmode
=
GET_MODE_WIDER_MODE
(
tmode
))
tmode
!=
VOIDmode
;
tmode
=
GET_MODE_WIDER_MODE
(
tmode
))
if
(
GET_MODE_SIZE
(
tmode
)
<
max_size
)
if
(
GET_MODE_SIZE
(
tmode
)
<
max_size
)
...
@@ -2485,7 +2483,6 @@ clear_storage (object, size, align)
...
@@ -2485,7 +2483,6 @@ clear_storage (object, size, align)
size
=
copy_to_mode_reg
(
TYPE_MODE
(
integer_type_node
),
size
);
size
=
copy_to_mode_reg
(
TYPE_MODE
(
integer_type_node
),
size
);
#endif
#endif
#ifdef TARGET_MEM_FUNCTIONS
#ifdef TARGET_MEM_FUNCTIONS
/* It is incorrect to use the libcall calling conventions to call
/* It is incorrect to use the libcall calling conventions to call
memset in this context.
memset in this context.
...
@@ -2675,7 +2672,7 @@ emit_move_insn_1 (x, y)
...
@@ -2675,7 +2672,7 @@ emit_move_insn_1 (x, y)
memory and reload. FIXME, we should see about using extract and
memory and reload. FIXME, we should see about using extract and
insert on integer registers, but complex short and complex char
insert on integer registers, but complex short and complex char
variables should be rarely used. */
variables should be rarely used. */
if
(
GET_MODE_BITSIZE
(
mode
)
<
2
*
BITS_PER_WORD
if
(
GET_MODE_BITSIZE
(
mode
)
<
2
*
BITS_PER_WORD
&&
(
reload_in_progress
|
reload_completed
)
==
0
)
&&
(
reload_in_progress
|
reload_completed
)
==
0
)
{
{
int
packed_dest_p
=
(
REG_P
(
x
)
&&
REGNO
(
x
)
<
FIRST_PSEUDO_REGISTER
);
int
packed_dest_p
=
(
REG_P
(
x
)
&&
REGNO
(
x
)
<
FIRST_PSEUDO_REGISTER
);
...
@@ -2883,7 +2880,7 @@ push_block (size, extra, below)
...
@@ -2883,7 +2880,7 @@ push_block (size, extra, below)
{
{
if
(
GET_CODE
(
size
)
==
CONST_INT
)
if
(
GET_CODE
(
size
)
==
CONST_INT
)
temp
=
plus_constant
(
virtual_outgoing_args_rtx
,
temp
=
plus_constant
(
virtual_outgoing_args_rtx
,
-
INTVAL
(
size
)
-
(
below
?
0
:
extra
));
-
INTVAL
(
size
)
-
(
below
?
0
:
extra
));
else
if
(
extra
!=
0
&&
!
below
)
else
if
(
extra
!=
0
&&
!
below
)
temp
=
gen_rtx_PLUS
(
Pmode
,
virtual_outgoing_args_rtx
,
temp
=
gen_rtx_PLUS
(
Pmode
,
virtual_outgoing_args_rtx
,
negate_rtx
(
Pmode
,
plus_constant
(
size
,
extra
)));
negate_rtx
(
Pmode
,
plus_constant
(
size
,
extra
)));
...
@@ -3049,17 +3046,17 @@ emit_push_insn (x, mode, type, size, align, partial, reg, extra,
...
@@ -3049,17 +3046,17 @@ emit_push_insn (x, mode, type, size, align, partial, reg, extra,
rtx
temp
;
rtx
temp
;
in_check_memory_usage
=
1
;
in_check_memory_usage
=
1
;
temp
=
get_push_address
(
INTVAL
(
size
)
-
used
);
temp
=
get_push_address
(
INTVAL
(
size
)
-
used
);
if
(
GET_CODE
(
x
)
==
MEM
&&
type
&&
AGGREGATE_TYPE_P
(
type
))
if
(
GET_CODE
(
x
)
==
MEM
&&
type
&&
AGGREGATE_TYPE_P
(
type
))
emit_library_call
(
chkr_copy_bitmap_libfunc
,
1
,
VOIDmode
,
3
,
emit_library_call
(
chkr_copy_bitmap_libfunc
,
1
,
VOIDmode
,
3
,
temp
,
Pmode
,
temp
,
Pmode
,
XEXP
(
xinner
,
0
),
Pmode
,
XEXP
(
xinner
,
0
),
Pmode
,
GEN_INT
(
INTVAL
(
size
)
-
used
),
GEN_INT
(
INTVAL
(
size
)
-
used
),
TYPE_MODE
(
sizetype
));
TYPE_MODE
(
sizetype
));
else
else
emit_library_call
(
chkr_set_right_libfunc
,
1
,
VOIDmode
,
3
,
emit_library_call
(
chkr_set_right_libfunc
,
1
,
VOIDmode
,
3
,
temp
,
Pmode
,
temp
,
Pmode
,
GEN_INT
(
INTVAL
(
size
)
-
used
),
GEN_INT
(
INTVAL
(
size
)
-
used
),
TYPE_MODE
(
sizetype
),
TYPE_MODE
(
sizetype
),
GEN_INT
(
MEMORY_USE_RW
),
GEN_INT
(
MEMORY_USE_RW
),
TYPE_MODE
(
integer_type_node
));
TYPE_MODE
(
integer_type_node
));
...
@@ -4011,7 +4008,7 @@ store_expr (exp, target, want_value)
...
@@ -4011,7 +4008,7 @@ store_expr (exp, target, want_value)
if
(
GET_CODE
(
copy_size_rtx
)
==
CONST_INT
)
if
(
GET_CODE
(
copy_size_rtx
)
==
CONST_INT
)
{
{
addr
=
plus_constant
(
addr
,
TREE_STRING_LENGTH
(
exp
));
addr
=
plus_constant
(
addr
,
TREE_STRING_LENGTH
(
exp
));
size
=
plus_constant
(
size
,
-
TREE_STRING_LENGTH
(
exp
));
size
=
plus_constant
(
size
,
-
TREE_STRING_LENGTH
(
exp
));
align
=
MIN
(
align
,
(
BITS_PER_UNIT
align
=
MIN
(
align
,
(
BITS_PER_UNIT
*
(
INTVAL
(
copy_size_rtx
)
*
(
INTVAL
(
copy_size_rtx
)
&
-
INTVAL
(
copy_size_rtx
))));
&
-
INTVAL
(
copy_size_rtx
))));
...
@@ -4611,7 +4608,7 @@ store_constructor (exp, target, align, cleared, size)
...
@@ -4611,7 +4608,7 @@ store_constructor (exp, target, align, cleared, size)
}
}
}
}
/* Set constructor assignments */
/* Set constructor assignments
.
*/
else
if
(
TREE_CODE
(
type
)
==
SET_TYPE
)
else
if
(
TREE_CODE
(
type
)
==
SET_TYPE
)
{
{
tree
elt
=
CONSTRUCTOR_ELTS
(
exp
);
tree
elt
=
CONSTRUCTOR_ELTS
(
exp
);
...
@@ -4715,9 +4712,9 @@ store_constructor (exp, target, align, cleared, size)
...
@@ -4715,9 +4712,9 @@ store_constructor (exp, target, align, cleared, size)
for
(;
elt
!=
NULL_TREE
;
elt
=
TREE_CHAIN
(
elt
))
for
(;
elt
!=
NULL_TREE
;
elt
=
TREE_CHAIN
(
elt
))
{
{
/*
start of range of element or NULL
*/
/*
Start of range of element or NULL.
*/
tree
startbit
=
TREE_PURPOSE
(
elt
);
tree
startbit
=
TREE_PURPOSE
(
elt
);
/*
end of range of element, or element value
*/
/*
End of range of element, or element value.
*/
tree
endbit
=
TREE_VALUE
(
elt
);
tree
endbit
=
TREE_VALUE
(
elt
);
#ifdef TARGET_MEM_FUNCTIONS
#ifdef TARGET_MEM_FUNCTIONS
HOST_WIDE_INT
startb
,
endb
;
HOST_WIDE_INT
startb
,
endb
;
...
@@ -4727,7 +4724,7 @@ store_constructor (exp, target, align, cleared, size)
...
@@ -4727,7 +4724,7 @@ store_constructor (exp, target, align, cleared, size)
bitlength_rtx
=
expand_expr
(
bitlength
,
bitlength_rtx
=
expand_expr
(
bitlength
,
NULL_RTX
,
MEM
,
EXPAND_CONST_ADDRESS
);
NULL_RTX
,
MEM
,
EXPAND_CONST_ADDRESS
);
/*
handle non-range tuple element like [ expr ]
*/
/*
Handle non-range tuple element like [ expr ].
*/
if
(
startbit
==
NULL_TREE
)
if
(
startbit
==
NULL_TREE
)
{
{
startbit
=
save_expr
(
endbit
);
startbit
=
save_expr
(
endbit
);
...
@@ -5694,7 +5691,6 @@ check_max_integer_computation_mode (exp)
...
@@ -5694,7 +5691,6 @@ check_max_integer_computation_mode (exp)
}
}
#endif
#endif
/* Utility function used by expand_expr to see if TYPE, a RECORD_TYPE,
/* Utility function used by expand_expr to see if TYPE, a RECORD_TYPE,
has any readonly fields. If any of the fields have types that
has any readonly fields. If any of the fields have types that
contain readonly fields, return true as well. */
contain readonly fields, return true as well. */
...
@@ -5843,7 +5839,7 @@ expand_expr (exp, target, tmode, modifier)
...
@@ -5843,7 +5839,7 @@ expand_expr (exp, target, tmode, modifier)
expand_expr
(
TREE_OPERAND
(
exp
,
2
),
const0_rtx
,
VOIDmode
,
ro_modifier
);
expand_expr
(
TREE_OPERAND
(
exp
,
2
),
const0_rtx
,
VOIDmode
,
ro_modifier
);
return
const0_rtx
;
return
const0_rtx
;
}
}
;
;
target
=
0
;
target
=
0
;
}
}
...
@@ -6138,7 +6134,7 @@ expand_expr (exp, target, tmode, modifier)
...
@@ -6138,7 +6134,7 @@ expand_expr (exp, target, tmode, modifier)
lineno
=
EXPR_WFL_LINENO
(
exp
);
lineno
=
EXPR_WFL_LINENO
(
exp
);
if
(
EXPR_WFL_EMIT_LINE_NOTE
(
exp
))
if
(
EXPR_WFL_EMIT_LINE_NOTE
(
exp
))
emit_line_note
(
input_filename
,
lineno
);
emit_line_note
(
input_filename
,
lineno
);
/* Possibly avoid switching back and force here */
/* Possibly avoid switching back and force here
.
*/
to_return
=
expand_expr
(
EXPR_WFL_NODE
(
exp
),
target
,
tmode
,
modifier
);
to_return
=
expand_expr
(
EXPR_WFL_NODE
(
exp
),
target
,
tmode
,
modifier
);
input_filename
=
saved_input_filename
;
input_filename
=
saved_input_filename
;
lineno
=
saved_lineno
;
lineno
=
saved_lineno
;
...
@@ -6611,8 +6607,7 @@ expand_expr (exp, target, tmode, modifier)
...
@@ -6611,8 +6607,7 @@ expand_expr (exp, target, tmode, modifier)
}
}
}
}
}
}
/* Fall through. */
/* ... fall through ... */
case
COMPONENT_REF
:
case
COMPONENT_REF
:
case
BIT_FIELD_REF
:
case
BIT_FIELD_REF
:
...
@@ -6767,7 +6762,6 @@ expand_expr (exp, target, tmode, modifier)
...
@@ -6767,7 +6762,6 @@ expand_expr (exp, target, tmode, modifier)
bitpos
=
0
;
bitpos
=
0
;
}
}
op0
=
change_address
(
op0
,
VOIDmode
,
op0
=
change_address
(
op0
,
VOIDmode
,
gen_rtx_PLUS
(
ptr_mode
,
XEXP
(
op0
,
0
),
gen_rtx_PLUS
(
ptr_mode
,
XEXP
(
op0
,
0
),
force_reg
(
ptr_mode
,
force_reg
(
ptr_mode
,
...
@@ -7017,7 +7011,7 @@ expand_expr (exp, target, tmode, modifier)
...
@@ -7017,7 +7011,7 @@ expand_expr (exp, target, tmode, modifier)
of the set. */
of the set. */
if
(
GET_CODE
(
lo_r
)
==
CONST_INT
)
if
(
GET_CODE
(
lo_r
)
==
CONST_INT
)
rlow
=
GEN_INT
(
INTVAL
(
lo_r
)
rlow
=
GEN_INT
(
INTVAL
(
lo_r
)
&
~
((
HOST_WIDE_INT
)
1
<<
BITS_PER_UNIT
));
&
~
((
HOST_WIDE_INT
)
1
<<
BITS_PER_UNIT
));
else
else
rlow
=
expand_binop
(
index_mode
,
and_optab
,
lo_r
,
rlow
=
expand_binop
(
index_mode
,
and_optab
,
lo_r
,
GEN_INT
(
~
((
HOST_WIDE_INT
)
1
<<
BITS_PER_UNIT
)),
GEN_INT
(
~
((
HOST_WIDE_INT
)
1
<<
BITS_PER_UNIT
)),
...
@@ -7036,7 +7030,7 @@ expand_expr (exp, target, tmode, modifier)
...
@@ -7036,7 +7030,7 @@ expand_expr (exp, target, tmode, modifier)
setaddr
,
NULL_RTX
,
iunsignedp
,
setaddr
,
NULL_RTX
,
iunsignedp
,
OPTAB_LIB_WIDEN
));
OPTAB_LIB_WIDEN
));
/* Extract the bit we want to examine */
/* Extract the bit we want to examine
.
*/
bit
=
expand_shift
(
RSHIFT_EXPR
,
byte_mode
,
bit
=
expand_shift
(
RSHIFT_EXPR
,
byte_mode
,
gen_rtx_MEM
(
byte_mode
,
addr
),
gen_rtx_MEM
(
byte_mode
,
addr
),
make_tree
(
TREE_TYPE
(
index
),
rem
),
make_tree
(
TREE_TYPE
(
index
),
rem
),
...
@@ -8002,7 +7996,8 @@ expand_expr (exp, target, tmode, modifier)
...
@@ -8002,7 +7996,8 @@ expand_expr (exp, target, tmode, modifier)
||
TREE_CODE
(
TREE_OPERAND
(
exp
,
1
))
==
SAVE_EXPR
)
||
TREE_CODE
(
TREE_OPERAND
(
exp
,
1
))
==
SAVE_EXPR
)
&&
safe_from_p
(
temp
,
TREE_OPERAND
(
exp
,
2
),
1
))
&&
safe_from_p
(
temp
,
TREE_OPERAND
(
exp
,
2
),
1
))
{
{
if
(
GET_CODE
(
temp
)
==
REG
&&
REGNO
(
temp
)
<
FIRST_PSEUDO_REGISTER
)
if
(
GET_CODE
(
temp
)
==
REG
&&
REGNO
(
temp
)
<
FIRST_PSEUDO_REGISTER
)
temp
=
gen_reg_rtx
(
mode
);
temp
=
gen_reg_rtx
(
mode
);
store_expr
(
TREE_OPERAND
(
exp
,
1
),
temp
,
0
);
store_expr
(
TREE_OPERAND
(
exp
,
1
),
temp
,
0
);
jumpif
(
TREE_OPERAND
(
exp
,
0
),
op0
);
jumpif
(
TREE_OPERAND
(
exp
,
0
),
op0
);
...
@@ -8020,7 +8015,8 @@ expand_expr (exp, target, tmode, modifier)
...
@@ -8020,7 +8015,8 @@ expand_expr (exp, target, tmode, modifier)
||
TREE_CODE
(
TREE_OPERAND
(
exp
,
2
))
==
SAVE_EXPR
)
||
TREE_CODE
(
TREE_OPERAND
(
exp
,
2
))
==
SAVE_EXPR
)
&&
safe_from_p
(
temp
,
TREE_OPERAND
(
exp
,
1
),
1
))
&&
safe_from_p
(
temp
,
TREE_OPERAND
(
exp
,
1
),
1
))
{
{
if
(
GET_CODE
(
temp
)
==
REG
&&
REGNO
(
temp
)
<
FIRST_PSEUDO_REGISTER
)
if
(
GET_CODE
(
temp
)
==
REG
&&
REGNO
(
temp
)
<
FIRST_PSEUDO_REGISTER
)
temp
=
gen_reg_rtx
(
mode
);
temp
=
gen_reg_rtx
(
mode
);
store_expr
(
TREE_OPERAND
(
exp
,
2
),
temp
,
0
);
store_expr
(
TREE_OPERAND
(
exp
,
2
),
temp
,
0
);
jumpifnot
(
TREE_OPERAND
(
exp
,
0
),
op0
);
jumpifnot
(
TREE_OPERAND
(
exp
,
0
),
op0
);
...
@@ -8504,7 +8500,8 @@ expand_expr (exp, target, tmode, modifier)
...
@@ -8504,7 +8500,8 @@ expand_expr (exp, target, tmode, modifier)
rtx
subr
=
(
rtx
)
TREE_OPERAND
(
exp
,
0
);
rtx
subr
=
(
rtx
)
TREE_OPERAND
(
exp
,
0
);
rtx
return_link
=
*
(
rtx
*
)
&
TREE_OPERAND
(
exp
,
1
);
rtx
return_link
=
*
(
rtx
*
)
&
TREE_OPERAND
(
exp
,
1
);
rtx
return_address
=
gen_label_rtx
();
rtx
return_address
=
gen_label_rtx
();
emit_move_insn
(
return_link
,
gen_rtx_LABEL_REF
(
Pmode
,
return_address
));
emit_move_insn
(
return_link
,
gen_rtx_LABEL_REF
(
Pmode
,
return_address
));
emit_jump
(
subr
);
emit_jump
(
subr
);
emit_label
(
return_address
);
emit_label
(
return_address
);
return
const0_rtx
;
return
const0_rtx
;
...
@@ -8653,8 +8650,7 @@ expand_expr_unaligned (exp, palign)
...
@@ -8653,8 +8650,7 @@ expand_expr_unaligned (exp, palign)
}
}
}
}
}
}
/* Fall through. */
/* ... fall through ... */
case
COMPONENT_REF
:
case
COMPONENT_REF
:
case
BIT_FIELD_REF
:
case
BIT_FIELD_REF
:
...
@@ -8820,7 +8816,6 @@ expand_expr_unaligned (exp, palign)
...
@@ -8820,7 +8816,6 @@ expand_expr_unaligned (exp, palign)
-
bitsize
),
-
bitsize
),
op0
,
1
);
op0
,
1
);
emit_move_insn
(
new
,
op0
);
emit_move_insn
(
new
,
op0
);
op0
=
copy_rtx
(
new
);
op0
=
copy_rtx
(
new
);
PUT_MODE
(
op0
,
BLKmode
);
PUT_MODE
(
op0
,
BLKmode
);
...
@@ -8986,7 +8981,7 @@ expand_increment (exp, post, ignore)
...
@@ -8986,7 +8981,7 @@ expand_increment (exp, post, ignore)
if
(
this_optab
==
sub_optab
if
(
this_optab
==
sub_optab
&&
GET_CODE
(
op1
)
==
CONST_INT
)
&&
GET_CODE
(
op1
)
==
CONST_INT
)
{
{
op1
=
GEN_INT
(
-
INTVAL
(
op1
));
op1
=
GEN_INT
(
-
INTVAL
(
op1
));
this_optab
=
add_optab
;
this_optab
=
add_optab
;
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment