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
8799637a
Commit
8799637a
authored
Jun 05, 2014
by
Marcus Shawcroft
Committed by
Marcus Shawcroft
Jun 05, 2014
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[AArch64] Relocate saved_varargs_size.
From-SVN: r211270
parent
34834420
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
26 additions
and
12 deletions
+26
-12
gcc/ChangeLog
+12
-0
gcc/config/aarch64/aarch64.c
+7
-7
gcc/config/aarch64/aarch64.h
+7
-5
No files found.
gcc/ChangeLog
View file @
8799637a
2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
* config/aarch64/aarch64.h (machine_function): Move
saved_varargs_size from here...
(aarch64_frameGTY): ... to here.
* config/aarch64/aarch64.c (aarch64_expand_prologue)
(aarch64_expand_epilogue, aarch64_final_eh_return_addr)
(aarch64_initial_elimination_offset)
(aarch64_setup_incoming_varargs): Adjust location of
saved_varargs_size.
2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
* config/aarch64/aarch64.c (aarch64_expand_prologue): Update stack
layout comment.
...
...
gcc/config/aarch64/aarch64.c
View file @
8799637a
...
...
@@ -2130,9 +2130,9 @@ aarch64_expand_prologue (void)
rtx
insn
;
aarch64_layout_frame
();
original_frame_size
=
get_frame_size
()
+
cfun
->
machine
->
saved_varargs_size
;
gcc_assert
((
!
cfun
->
machine
->
saved_varargs_size
||
cfun
->
stdarg
)
&&
(
cfun
->
stdarg
||
!
cfun
->
machine
->
saved_varargs_size
));
original_frame_size
=
get_frame_size
()
+
cfun
->
machine
->
frame
.
saved_varargs_size
;
gcc_assert
((
!
cfun
->
machine
->
frame
.
saved_varargs_size
||
cfun
->
stdarg
)
&&
(
cfun
->
stdarg
||
!
cfun
->
machine
->
frame
.
saved_varargs_size
));
frame_size
=
(
original_frame_size
+
cfun
->
machine
->
frame
.
saved_regs_size
+
crtl
->
outgoing_args_size
);
offset
=
frame_size
=
AARCH64_ROUND_UP
(
frame_size
,
...
...
@@ -2296,7 +2296,7 @@ aarch64_expand_epilogue (bool for_sibcall)
rtx
cfa_reg
;
aarch64_layout_frame
();
original_frame_size
=
get_frame_size
()
+
cfun
->
machine
->
saved_varargs_size
;
original_frame_size
=
get_frame_size
()
+
cfun
->
machine
->
frame
.
saved_varargs_size
;
frame_size
=
(
original_frame_size
+
cfun
->
machine
->
frame
.
saved_regs_size
+
crtl
->
outgoing_args_size
);
offset
=
frame_size
=
AARCH64_ROUND_UP
(
frame_size
,
...
...
@@ -2495,7 +2495,7 @@ aarch64_final_eh_return_addr (void)
{
HOST_WIDE_INT
original_frame_size
,
frame_size
,
offset
,
fp_offset
;
aarch64_layout_frame
();
original_frame_size
=
get_frame_size
()
+
cfun
->
machine
->
saved_varargs_size
;
original_frame_size
=
get_frame_size
()
+
cfun
->
machine
->
frame
.
saved_varargs_size
;
frame_size
=
(
original_frame_size
+
cfun
->
machine
->
frame
.
saved_regs_size
+
crtl
->
outgoing_args_size
);
offset
=
frame_size
=
AARCH64_ROUND_UP
(
frame_size
,
...
...
@@ -4258,7 +4258,7 @@ aarch64_initial_elimination_offset (unsigned from, unsigned to)
aarch64_layout_frame
();
frame_size
=
(
get_frame_size
()
+
cfun
->
machine
->
frame
.
saved_regs_size
+
crtl
->
outgoing_args_size
+
cfun
->
machine
->
saved_varargs_size
);
+
cfun
->
machine
->
frame
.
saved_varargs_size
);
frame_size
=
AARCH64_ROUND_UP
(
frame_size
,
STACK_BOUNDARY
/
BITS_PER_UNIT
);
offset
=
frame_size
;
...
...
@@ -6959,7 +6959,7 @@ aarch64_setup_incoming_varargs (cumulative_args_t cum_v, enum machine_mode mode,
/* We don't save the size into *PRETEND_SIZE because we want to avoid
any complication of having crtl->args.pretend_args_size changed. */
cfun
->
machine
->
saved_varargs_size
cfun
->
machine
->
frame
.
saved_varargs_size
=
(
AARCH64_ROUND_UP
(
gr_saved
*
UNITS_PER_WORD
,
STACK_BOUNDARY
/
BITS_PER_UNIT
)
+
vr_saved
*
UNITS_PER_VREG
);
...
...
gcc/config/aarch64/aarch64.h
View file @
8799637a
...
...
@@ -514,6 +514,13 @@ extern enum aarch64_processor aarch64_tune;
struct
GTY
(())
aarch64_frame
{
HOST_WIDE_INT
reg_offset
[
FIRST_PSEUDO_REGISTER
];
/* The number of extra stack bytes taken up by register varargs.
This area is allocated by the callee at the very top of the
frame. This value is rounded up to a multiple of
STACK_BOUNDARY. */
HOST_WIDE_INT
saved_varargs_size
;
HOST_WIDE_INT
saved_regs_size
;
/* Padding if needed after the all the callee save registers have
been saved. */
...
...
@@ -526,11 +533,6 @@ struct GTY (()) aarch64_frame
typedef
struct
GTY
(())
machine_function
{
struct
aarch64_frame
frame
;
/* The number of extra stack bytes taken up by register varargs.
This area is allocated by the callee at the very top of the frame. */
HOST_WIDE_INT
saved_varargs_size
;
}
machine_function
;
#endif
...
...
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