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
c7f65aae
Commit
c7f65aae
authored
Jun 10, 2014
by
Jiong Wang
Committed by
Marcus Shawcroft
Jun 10, 2014
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[AArch64] Fix layout of frame layout code.
From-SVN: r211409
parent
e29b8d5b
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
19 additions
and
15 deletions
+19
-15
gcc/ChangeLog
+5
-0
gcc/config/aarch64/aarch64.c
+14
-15
No files found.
gcc/ChangeLog
View file @
c7f65aae
2014-06-10 Jiong Wang <jiong.wang@arm.com>
* config/aarch64/aarch64.c (aarch64_save_or_restore_fprs)
(aarch64_save_or_restore_callee_save_registers): Fix layout.
2014-06-10 Marcus Shawcroft <marcus.shawcroft@arm.com>
* config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix
...
...
gcc/config/aarch64/aarch64.c
View file @
c7f65aae
...
...
@@ -1917,7 +1917,6 @@ aarch64_save_or_restore_fprs (int start_offset, int increment,
rtx
(
*
gen_mem_ref
)(
enum
machine_mode
,
rtx
)
=
(
frame_pointer_needed
)
?
gen_frame_mem
:
gen_rtx_MEM
;
for
(
regno
=
V0_REGNUM
;
regno
<=
V31_REGNUM
;
regno
++
)
{
if
(
aarch64_register_saved_on_entry
(
regno
))
...
...
@@ -1935,10 +1934,12 @@ aarch64_save_or_restore_fprs (int start_offset, int increment,
{
/* Empty loop. */
}
if
(
regno2
<=
V31_REGNUM
&&
aarch64_register_saved_on_entry
(
regno2
))
{
rtx
mem2
;
/* Next highest register to be saved. */
mem2
=
gen_mem_ref
(
DFmode
,
plus_constant
...
...
@@ -1964,10 +1965,10 @@ aarch64_save_or_restore_fprs (int start_offset, int increment,
gen_rtx_REG
(
DFmode
,
regno2
));
}
/* The first part of a frame-related parallel insn
is
always assumed to be relevant to the frame
calculations; subsequent parts, are only
frame-related if explicitly marked. */
/* The first part of a frame-related parallel insn is
always assumed to be relevant to the frame
calculations; subsequent parts, are only
frame-related if explicitly marked. */
RTX_FRAME_RELATED_P
(
XVECEXP
(
PATTERN
(
insn
),
0
,
1
))
=
1
;
regno
=
regno2
;
start_offset
+=
increment
*
2
;
...
...
@@ -1987,15 +1988,14 @@ aarch64_save_or_restore_fprs (int start_offset, int increment,
RTX_FRAME_RELATED_P
(
insn
)
=
1
;
}
}
}
/* offset from the stack pointer of where the saves and
restore's have to happen. */
static
void
aarch64_save_or_restore_callee_save_registers
(
HOST_WIDE_INT
offset
,
bool
restore
)
aarch64_save_or_restore_callee_save_registers
(
HOST_WIDE_INT
start_
offset
,
bool
restore
)
{
rtx
insn
;
rtx
base_rtx
=
stack_pointer_rtx
;
...
...
@@ -2027,6 +2027,7 @@ aarch64_save_or_restore_callee_save_registers (HOST_WIDE_INT offset,
aarch64_register_saved_on_entry
(
regno2
))
{
rtx
mem2
;
/* Next highest register to be saved. */
mem2
=
gen_mem_ref
(
Pmode
,
plus_constant
...
...
@@ -2050,12 +2051,11 @@ aarch64_save_or_restore_callee_save_registers (HOST_WIDE_INT offset,
add_reg_note
(
insn
,
REG_CFA_RESTORE
,
gen_rtx_REG
(
DImode
,
regno2
));
}
/* The first part of a frame-related parallel insn
is always assumed to be relevant to the frame
calculations; subsequent parts, are only
frame-related if explicitly marked. */
RTX_FRAME_RELATED_P
(
XVECEXP
(
PATTERN
(
insn
),
0
,
1
))
=
1
;
/* The first part of a frame-related parallel insn is
always assumed to be relevant to the frame
calculations; subsequent parts, are only
frame-related if explicitly marked. */
RTX_FRAME_RELATED_P
(
XVECEXP
(
PATTERN
(
insn
),
0
,
1
))
=
1
;
regno
=
regno2
;
start_offset
+=
increment
*
2
;
}
...
...
@@ -2075,7 +2075,6 @@ aarch64_save_or_restore_callee_save_registers (HOST_WIDE_INT offset,
}
aarch64_save_or_restore_fprs
(
start_offset
,
increment
,
restore
,
base_rtx
);
}
/* AArch64 stack frames generated by this compiler look like:
...
...
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