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
f78b5ca1
Commit
f78b5ca1
authored
Nov 14, 1997
by
Jeffrey A Law
Committed by
Jeff Law
Nov 14, 1997
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* calls.c (expand_call): Handle pcc_struct_value correctly for C++.
From-SVN: r16485
parent
238ad62b
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
8 additions
and
30 deletions
+8
-30
gcc/ChangeLog
+2
-0
gcc/calls.c
+6
-30
No files found.
gcc/ChangeLog
View file @
f78b5ca1
Fri Nov 14 06:59:33 1997 Jeffrey A Law (law@cygnus.com)
Fri Nov 14 06:59:33 1997 Jeffrey A Law (law@cygnus.com)
* calls.c (expand_call): Handle pcc_struct_value correctly for C++.
* i386/xm-cygwin32.h (HAVE_FILE_H, HAVE_RUSAGE): Delete defines.
* i386/xm-cygwin32.h (HAVE_FILE_H, HAVE_RUSAGE): Delete defines.
* i386/xm-mingw32.h (HAVE_FILE_H, HAVE_RUSAGE): Likewise.
* i386/xm-mingw32.h (HAVE_FILE_H, HAVE_RUSAGE): Likewise.
* rs6000/xm-cygwin32.h (HAVE_FILE_H, HAVE_RUSAGE): Likewise.
* rs6000/xm-cygwin32.h (HAVE_FILE_H, HAVE_RUSAGE): Likewise.
...
...
gcc/calls.c
View file @
f78b5ca1
...
@@ -2061,36 +2061,12 @@ expand_call (exp, target, ignore)
...
@@ -2061,36 +2061,12 @@ expand_call (exp, target, ignore)
}
}
else
if
(
pcc_struct_value
)
else
if
(
pcc_struct_value
)
{
{
if
(
target
==
0
)
/* This is the special C++ case where we need to
{
know what the true target was. We take care to
/* We used leave the value in the location that it is
never use this value more than once in one expression. */
returned in, but that causes problems if it is used more
target
=
gen_rtx
(
MEM
,
TYPE_MODE
(
TREE_TYPE
(
exp
)),
than once in one expression. Rather than trying to track
copy_to_reg
(
valreg
));
when a copy is required, we always copy when TARGET is
MEM_IN_STRUCT_P
(
target
)
=
AGGREGATE_TYPE_P
(
TREE_TYPE
(
exp
));
not specified. This calling sequence is only used on
a few machines and TARGET is usually nonzero. */
if
(
TYPE_MODE
(
TREE_TYPE
(
exp
))
==
BLKmode
)
{
target
=
assign_stack_temp
(
BLKmode
,
int_size_in_bytes
(
TREE_TYPE
(
exp
)),
0
);
MEM_IN_STRUCT_P
(
target
)
=
AGGREGATE_TYPE_P
(
TREE_TYPE
(
exp
));
/* Save this temp slot around the pop below. */
preserve_temp_slots
(
target
);
}
else
target
=
gen_reg_rtx
(
TYPE_MODE
(
TREE_TYPE
(
exp
)));
}
if
(
TYPE_MODE
(
TREE_TYPE
(
exp
))
!=
BLKmode
)
emit_move_insn
(
target
,
gen_rtx
(
MEM
,
TYPE_MODE
(
TREE_TYPE
(
exp
)),
copy_to_reg
(
valreg
)));
else
emit_block_move
(
target
,
gen_rtx
(
MEM
,
BLKmode
,
copy_to_reg
(
valreg
)),
expr_size
(
exp
),
TYPE_ALIGN
(
TREE_TYPE
(
exp
))
/
BITS_PER_UNIT
);
}
}
/* Handle calls that return values in multiple non-contiguous locations.
/* Handle calls that return values in multiple non-contiguous locations.
The Irix 6 ABI has examples of this. */
The Irix 6 ABI has examples of this. */
...
...
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