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