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
2e794ee8
Commit
2e794ee8
authored
May 02, 1993
by
Richard Stallman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
(record_jump_cond): Use mode of op0 or op1, not MODE,
when testing for narrowing or widening subregs. From-SVN: r4301
parent
64685ffa
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
13 additions
and
4 deletions
+13
-4
gcc/cse.c
+13
-4
No files found.
gcc/cse.c
View file @
2e794ee8
...
@@ -5490,8 +5490,10 @@ record_jump_cond (code, mode, op0, op1, reversed_nonequality)
...
@@ -5490,8 +5490,10 @@ record_jump_cond (code, mode, op0, op1, reversed_nonequality)
true for all smaller modes whether or not there is a SUBREG, but
true for all smaller modes whether or not there is a SUBREG, but
is not worth testing for with no SUBREG. */
is not worth testing for with no SUBREG. */
/* Note that GET_MODE (op0) may not equal MODE. */
if
(
code
==
EQ
&&
GET_CODE
(
op0
)
==
SUBREG
if
(
code
==
EQ
&&
GET_CODE
(
op0
)
==
SUBREG
&&
GET_MODE_SIZE
(
mode
)
>
GET_MODE_SIZE
(
GET_MODE
(
SUBREG_REG
(
op0
))))
&&
(
GET_MODE_SIZE
(
GET_MODE
(
op0
))
>
GET_MODE_SIZE
(
GET_MODE
(
SUBREG_REG
(
op0
)))))
{
{
enum
machine_mode
inner_mode
=
GET_MODE
(
SUBREG_REG
(
op0
));
enum
machine_mode
inner_mode
=
GET_MODE
(
SUBREG_REG
(
op0
));
rtx
tem
=
gen_lowpart_if_possible
(
inner_mode
,
op1
);
rtx
tem
=
gen_lowpart_if_possible
(
inner_mode
,
op1
);
...
@@ -5502,7 +5504,8 @@ record_jump_cond (code, mode, op0, op1, reversed_nonequality)
...
@@ -5502,7 +5504,8 @@ record_jump_cond (code, mode, op0, op1, reversed_nonequality)
}
}
if
(
code
==
EQ
&&
GET_CODE
(
op1
)
==
SUBREG
if
(
code
==
EQ
&&
GET_CODE
(
op1
)
==
SUBREG
&&
GET_MODE_SIZE
(
mode
)
>
GET_MODE_SIZE
(
GET_MODE
(
SUBREG_REG
(
op1
))))
&&
(
GET_MODE_SIZE
(
GET_MODE
(
op1
))
>
GET_MODE_SIZE
(
GET_MODE
(
SUBREG_REG
(
op1
)))))
{
{
enum
machine_mode
inner_mode
=
GET_MODE
(
SUBREG_REG
(
op1
));
enum
machine_mode
inner_mode
=
GET_MODE
(
SUBREG_REG
(
op1
));
rtx
tem
=
gen_lowpart_if_possible
(
inner_mode
,
op0
);
rtx
tem
=
gen_lowpart_if_possible
(
inner_mode
,
op0
);
...
@@ -5515,9 +5518,14 @@ record_jump_cond (code, mode, op0, op1, reversed_nonequality)
...
@@ -5515,9 +5518,14 @@ record_jump_cond (code, mode, op0, op1, reversed_nonequality)
/* Similarly, if this is an NE comparison, and either is a SUBREG
/* Similarly, if this is an NE comparison, and either is a SUBREG
making a smaller mode, we know the whole thing is also NE. */
making a smaller mode, we know the whole thing is also NE. */
/* Note that GET_MODE (op0) may not equal MODE;
if we test MODE instead, we can get an infinite recursion
alternating between two modes each wider than MODE. */
if
(
code
==
NE
&&
GET_CODE
(
op0
)
==
SUBREG
if
(
code
==
NE
&&
GET_CODE
(
op0
)
==
SUBREG
&&
subreg_lowpart_p
(
op0
)
&&
subreg_lowpart_p
(
op0
)
&&
GET_MODE_SIZE
(
mode
)
<
GET_MODE_SIZE
(
GET_MODE
(
SUBREG_REG
(
op0
))))
&&
(
GET_MODE_SIZE
(
GET_MODE
(
op0
))
<
GET_MODE_SIZE
(
GET_MODE
(
SUBREG_REG
(
op0
)))))
{
{
enum
machine_mode
inner_mode
=
GET_MODE
(
SUBREG_REG
(
op0
));
enum
machine_mode
inner_mode
=
GET_MODE
(
SUBREG_REG
(
op0
));
rtx
tem
=
gen_lowpart_if_possible
(
inner_mode
,
op1
);
rtx
tem
=
gen_lowpart_if_possible
(
inner_mode
,
op1
);
...
@@ -5529,7 +5537,8 @@ record_jump_cond (code, mode, op0, op1, reversed_nonequality)
...
@@ -5529,7 +5537,8 @@ record_jump_cond (code, mode, op0, op1, reversed_nonequality)
if
(
code
==
NE
&&
GET_CODE
(
op1
)
==
SUBREG
if
(
code
==
NE
&&
GET_CODE
(
op1
)
==
SUBREG
&&
subreg_lowpart_p
(
op1
)
&&
subreg_lowpart_p
(
op1
)
&&
GET_MODE_SIZE
(
mode
)
<
GET_MODE_SIZE
(
GET_MODE
(
SUBREG_REG
(
op1
))))
&&
(
GET_MODE_SIZE
(
GET_MODE
(
op1
))
<
GET_MODE_SIZE
(
GET_MODE
(
SUBREG_REG
(
op1
)))))
{
{
enum
machine_mode
inner_mode
=
GET_MODE
(
SUBREG_REG
(
op1
));
enum
machine_mode
inner_mode
=
GET_MODE
(
SUBREG_REG
(
op1
));
rtx
tem
=
gen_lowpart_if_possible
(
inner_mode
,
op0
);
rtx
tem
=
gen_lowpart_if_possible
(
inner_mode
,
op0
);
...
...
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