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
6cb6c3b3
Commit
6cb6c3b3
authored
Sep 22, 1992
by
Michael Meissner
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix varardic function returning a structure or union.
From-SVN: r2205
parent
372e033b
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
25 additions
and
10 deletions
+25
-10
gcc/config/mips/mips.c
+13
-1
gcc/config/mips/mips.h
+12
-9
No files found.
gcc/config/mips/mips.c
View file @
6cb6c3b3
...
...
@@ -2400,7 +2400,19 @@ init_cumulative_args (cum, fntype, libname)
tree
param
,
next_param
;
if
(
TARGET_DEBUG_E_MODE
)
fprintf
(
stderr
,
"
\n
init_cumulative_args
\n
"
);
{
fprintf
(
stderr
,
"
\n
init_cumulative_args, fntype = 0x%.8lx"
,
(
long
)
fntype
);
if
(
!
fntype
)
fputc
(
'\n'
,
stderr
);
else
{
tree
ret_type
=
TREE_TYPE
(
fntype
);
fprintf
(
stderr
,
", fntype code = %s, ret code = %s
\n
"
,
tree_code_name
[
(
int
)
TREE_CODE
(
fntype
)
],
tree_code_name
[
(
int
)
TREE_CODE
(
ret_type
)
]);
}
}
cum
->
gp_reg_found
=
0
;
cum
->
arg_number
=
0
;
...
...
gcc/config/mips/mips.h
View file @
6cb6c3b3
...
...
@@ -473,7 +473,7 @@ while (0)
/* Print subsidiary information on the compiler version in use. */
#define MIPS_VERSION "[AL 1.1, MM 2
5
]"
#define MIPS_VERSION "[AL 1.1, MM 2
6
]"
#ifndef MACHINE_TYPE
#define MACHINE_TYPE "BSD Mips"
...
...
@@ -1623,16 +1623,19 @@ extern struct mips_frame_info current_frame_info;
`ACCUMULATE_OUTGOING_ARGS'. */
#define ACCUMULATE_OUTGOING_ARGS
/* Offset of first parameter from the argument pointer register value. */
#define FIRST_PARM_OFFSET(FNDECL) 0
/* Offset from the argument pointer register to the first argument's
address. On some machines it may depend on the data type of the
function.
/* Offset from top-of-stack address to location to store the
function parameter if it can't go in a register.
Addresses for following parameters are computed relative to this one.
If `ARGS_GROW_DOWNWARD', this is the offset to the location above
the first argument's address. */
It also has the effect of counting register arguments in the total
argument size. */
#define FIRST_PARM_CALLER_OFFSET(FNDECL) 0
#define FIRST_PARM_OFFSET(FNDECL) \
(FNDECL != 0 \
&& TREE_TYPE (FNDECL) != 0 \
&& TREE_TYPE (TREE_TYPE (FNDECL)) != 0 \
&& (TREE_CODE (TREE_TYPE (TREE_TYPE (FNDECL))) == RECORD_TYPE \
|| TREE_CODE (TREE_TYPE (TREE_TYPE (FNDECL))) == UNION_TYPE) ? 4 : 0)
/* When a parameter is passed in a register, stack space is still
allocated for it. For the MIPS, stack space must be allocated, cf
...
...
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