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
a7fd196c
Commit
a7fd196c
authored
Oct 01, 1993
by
Jim Wilson
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
(gen_input_reload): Handle PLUS with MEM operand
exactly the same as a PLUS with a REG operand. From-SVN: r5549
parent
d9771f62
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
12 additions
and
14 deletions
+12
-14
gcc/reload1.c
+12
-14
No files found.
gcc/reload1.c
View file @
a7fd196c
...
...
@@ -6404,11 +6404,11 @@ gen_input_reload (reloadreg, in, opnum, type)
register that didn't get a hard register. In that case we can just
call emit_move_insn.
We can also be asked to reload a PLUS that adds
either two registers, or
a
register and a constant or MEM, or a MEM and a constant. This can
occur during frame pointer elimination and while reloading addresses.
This case is handled by trying to emit a single insn
to perform the add. If it is not valid,
we use a two insn sequence.
We can also be asked to reload a PLUS that adds
a register or a MEM to
a
nother register, constant or MEM. This can occur during frame pointer
elimination and while reloading addresses. This case is handled by
trying to emit a single insn to perform the add. If it is not valid,
we use a two insn sequence.
Finally, we could be called to handle an 'o' constraint by putting
an address into a register. In that case, we first try to do this
...
...
@@ -6426,16 +6426,14 @@ gen_input_reload (reloadreg, in, opnum, type)
??? At some point, this whole thing needs to be rethought. */
if
(
GET_CODE
(
in
)
==
PLUS
&&
((
GET_CODE
(
XEXP
(
in
,
0
))
==
REG
&&
(
GET_CODE
(
XEXP
(
in
,
1
))
==
REG
||
CONSTANT_P
(
XEXP
(
in
,
1
))
||
GET_CODE
(
XEXP
(
in
,
1
))
==
MEM
))
||
(
GET_CODE
(
XEXP
(
in
,
0
))
==
MEM
&&
CONSTANT_P
(
XEXP
(
in
,
1
)))))
&&
(
GET_CODE
(
XEXP
(
in
,
0
))
==
REG
||
GET_CODE
(
XEXP
(
in
,
0
))
==
MEM
)
&&
(
GET_CODE
(
XEXP
(
in
,
1
))
==
REG
||
CONSTANT_P
(
XEXP
(
in
,
1
))
||
GET_CODE
(
XEXP
(
in
,
1
))
==
MEM
))
{
/* We need to compute the sum of what is either a register and a
constant, a register and memory, a hard register and a pseudo
register, or memory and a constant and put it into the reload
/* We need to compute the sum of a register or a MEM and another
register, constant, or MEM, and put it into the reload
register. The best possible way of doing this is if the machine
has a three-operand ADD insn that accepts the required operands.
...
...
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