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
31c85c78
Commit
31c85c78
authored
Sep 17, 1993
by
Richard Kenner
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
(fold_rtx, case SUBREG): If paradoxical SUBREG of a constant, return
the constant. From-SVN: r5346
parent
c1719013
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
10 additions
and
4 deletions
+10
-4
gcc/cse.c
+10
-4
No files found.
gcc/cse.c
View file @
31c85c78
...
@@ -4582,7 +4582,9 @@ fold_rtx (x, insn)
...
@@ -4582,7 +4582,9 @@ fold_rtx (x, insn)
extra bits would have. However, if the operand is equivalent
extra bits would have. However, if the operand is equivalent
to a SUBREG whose operand is the same as our mode, and all the
to a SUBREG whose operand is the same as our mode, and all the
modes are within a word, we can just use the inner operand
modes are within a word, we can just use the inner operand
because these SUBREGs just say how to treat the register. */
because these SUBREGs just say how to treat the register.
Similarly if we find an integer constant. */
if
(
GET_MODE_SIZE
(
mode
)
>
GET_MODE_SIZE
(
GET_MODE
(
SUBREG_REG
(
x
))))
if
(
GET_MODE_SIZE
(
mode
)
>
GET_MODE_SIZE
(
GET_MODE
(
SUBREG_REG
(
x
))))
{
{
...
@@ -4593,9 +4595,13 @@ fold_rtx (x, insn)
...
@@ -4593,9 +4595,13 @@ fold_rtx (x, insn)
&&
GET_MODE_SIZE
(
imode
)
<=
UNITS_PER_WORD
&&
GET_MODE_SIZE
(
imode
)
<=
UNITS_PER_WORD
&&
(
elt
=
lookup
(
SUBREG_REG
(
x
),
HASH
(
SUBREG_REG
(
x
),
imode
),
&&
(
elt
=
lookup
(
SUBREG_REG
(
x
),
HASH
(
SUBREG_REG
(
x
),
imode
),
imode
))
!=
0
)
imode
))
!=
0
)
{
for
(
elt
=
elt
->
first_same_value
;
for
(
elt
=
elt
->
first_same_value
;
elt
;
elt
=
elt
->
next_same_value
)
elt
;
elt
=
elt
->
next_same_value
)
{
if
(
CONSTANT_P
(
elt
->
exp
)
&&
GET_MODE
(
elt
->
exp
)
==
VOIDmode
)
return
elt
->
exp
;
if
(
GET_CODE
(
elt
->
exp
)
==
SUBREG
if
(
GET_CODE
(
elt
->
exp
)
==
SUBREG
&&
GET_MODE
(
SUBREG_REG
(
elt
->
exp
))
==
mode
&&
GET_MODE
(
SUBREG_REG
(
elt
->
exp
))
==
mode
&&
exp_equiv_p
(
elt
->
exp
,
elt
->
exp
,
1
,
0
))
&&
exp_equiv_p
(
elt
->
exp
,
elt
->
exp
,
1
,
0
))
...
...
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