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
7bea35e7
Commit
7bea35e7
authored
Dec 16, 1992
by
Michael Meissner
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Rework large stack frame support.
From-SVN: r2884
parent
f49acdb4
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
20 additions
and
20 deletions
+20
-20
gcc/config/mips/mips.c
+0
-0
gcc/config/mips/mips.h
+20
-20
No files found.
gcc/config/mips/mips.c
View file @
7bea35e7
This diff is collapsed.
Click to expand it.
gcc/config/mips/mips.h
View file @
7bea35e7
...
...
@@ -126,7 +126,8 @@ extern int arith32_operand ();
extern
int
arith_operand
();
extern
int
cmp_op
();
extern
int
cmp2_op
();
extern
unsigned
long
compute_frame_size
();
extern
long
compute_frame_size
();
extern
int
epilogue_reg_mentioned_p
();
extern
void
expand_block_move
();
extern
int
equality_op
();
extern
int
fcmp_op
();
...
...
@@ -482,7 +483,7 @@ while (0)
/* Print subsidiary information on the compiler version in use. */
#define MIPS_VERSION "[AL 1.1, MM 3
1
]"
#define MIPS_VERSION "[AL 1.1, MM 3
2
]"
#ifndef MACHINE_TYPE
#define MACHINE_TYPE "BSD Mips"
...
...
@@ -1229,6 +1230,7 @@ extern char mips_hard_regno_mode_ok[][FIRST_PSEUDO_REGISTER];
scratch register set, and not used for passing and returning
arguments and any other information used in the calling sequence
(such as pic). */
#define MIPS_TEMP1_REGNUM (GP_REG_FIRST + 8)
#define MIPS_TEMP2_REGNUM (GP_REG_FIRST + 9)
...
...
@@ -1540,21 +1542,21 @@ extern enum reg_class mips_char_to_class[];
struct
mips_frame_info
{
unsigned
long
total_size
;
/* # bytes that the entire frame takes up */
unsigned
long
var_size
;
/* # bytes that variables take up */
unsigned
long
args_size
;
/* # bytes that outgoing arguments take up */
unsigned
long
extra_size
;
/* # bytes of extra gunk */
unsigned
int
gp_reg_size
;
/* # bytes needed to store gp regs */
unsigned
int
fp_reg_size
;
/* # bytes needed to store fp regs */
unsigned
long
mask
;
/* mask of saved gp registers */
unsigned
long
fmask
;
/* mask of saved fp registers */
long
gp_save_offset
;
/* offset from vfp to store gp registers */
long
fp_save_offset
;
/* offset from vfp to store fp registers */
unsigned
long
gp_sp_offset
;
/* offset from new sp to store gp registers */
unsigned
long
fp_sp_offset
;
/* offset from new sp to store fp registers */
int
initialized
;
/* != 0 if frame size already calculated */
int
num_gp
;
/* number of gp registers saved */
int
num_fp
;
/* number of fp registers saved */
long
total_size
;
/* # bytes that the entire frame takes up */
long
var_size
;
/* # bytes that variables take up */
long
args_size
;
/* # bytes that outgoing arguments take up */
long
extra_size
;
/* # bytes of extra gunk */
int
gp_reg_size
;
/* # bytes needed to store gp regs */
int
fp_reg_size
;
/* # bytes needed to store fp regs */
long
mask
;
/* mask of saved gp registers */
long
fmask
;
/* mask of saved fp registers */
long
gp_save_offset
;
/* offset from vfp to store gp registers */
long
fp_save_offset
;
/* offset from vfp to store fp registers */
long
gp_sp_offset
;
/* offset from new sp to store gp registers */
long
fp_sp_offset
;
/* offset from new sp to store fp registers */
int
initialized
;
/* != 0 if frame size already calculated */
int
num_gp
;
/* number of gp registers saved */
int
num_fp
;
/* number of fp registers saved */
};
extern
struct
mips_frame_info
current_frame_info
;
...
...
@@ -1896,9 +1898,7 @@ typedef struct mips_args {
#define ELIGIBLE_FOR_EPILOGUE_DELAY(INSN,N) \
(get_attr_dslot (INSN) == DSLOT_NO \
&& get_attr_length (INSN) == 1 \
&& ! reg_mentioned_p (stack_pointer_rtx, PATTERN (INSN)) \
&& ! reg_mentioned_p (frame_pointer_rtx, PATTERN (INSN)) \
&& ! reg_mentioned_p (arg_pointer_rtx, PATTERN (INSN)))
&& ! epilogue_reg_mentioned_p (PATTERN (INSN)))
/* Tell prologue and epilogue if register REGNO should be saved / restored. */
...
...
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