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
69685820
Commit
69685820
authored
Jun 06, 1996
by
Richard Kenner
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
(assign_parms): Tighten up code that makes REG_EQUIV notes for parms.
From-SVN: r12186
parent
5fd7f37d
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
24 additions
and
19 deletions
+24
-19
gcc/function.c
+24
-19
No files found.
gcc/function.c
View file @
69685820
...
...
@@ -3869,29 +3869,34 @@ assign_parms (fndecl, second_time)
XEXP
(
entry_parm
,
0
)))
{
rtx
linsn
=
get_last_insn
();
rtx
sinsn
,
set
;
/* Mark complex types separately. */
if
(
GET_CODE
(
parmreg
)
==
CONCAT
)
{
REG_NOTES
(
linsn
)
=
gen_rtx
(
EXPR_LIST
,
REG_EQUIV
,
parm_reg_stack_loc
[
regnoi
],
REG_NOTES
(
linsn
));
/* Now search backward for where we set the real part. */
for
(;
linsn
!=
0
&&
!
reg_referenced_p
(
parm_reg_stack_loc
[
regnor
],
PATTERN
(
linsn
));
linsn
=
prev_nonnote_insn
(
linsn
))
;
REG_NOTES
(
linsn
)
=
gen_rtx
(
EXPR_LIST
,
REG_EQUIV
,
parm_reg_stack_loc
[
regnor
],
REG_NOTES
(
linsn
));
}
else
/* Scan backwards for the set of the real and
imaginary parts. */
for
(
sinsn
=
linsn
;
sinsn
!=
0
;
sinsn
=
prev_nonnote_insn
(
sinsn
))
{
set
=
single_set
(
sinsn
);
if
(
set
!=
0
&&
SET_DEST
(
set
)
==
regno_reg_rtx
[
regnoi
])
REG_NOTES
(
sinsn
)
=
gen_rtx
(
EXPR_LIST
,
REG_EQUIV
,
parm_reg_stack_loc
[
regnoi
],
REG_NOTES
(
sinsn
));
else
if
(
set
!=
0
&&
SET_DEST
(
set
)
==
regno_reg_rtx
[
regnor
])
REG_NOTES
(
sinsn
)
=
gen_rtx
(
EXPR_LIST
,
REG_EQUIV
,
parm_reg_stack_loc
[
regnor
],
REG_NOTES
(
sinsn
));
}
else
if
((
set
=
single_set
(
linsn
))
!=
0
&&
SET_DEST
(
set
)
==
parmreg
)
REG_NOTES
(
linsn
)
=
gen_rtx
(
EXPR_LIST
,
REG_EQUIV
,
entry_parm
,
REG_NOTES
(
linsn
));
=
gen_rtx
(
EXPR_LIST
,
REG_EQUIV
,
entry_parm
,
REG_NOTES
(
linsn
));
}
/* For pointer data type, suggest pointer register. */
...
...
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