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
f277471f
Commit
f277471f
authored
Nov 12, 1996
by
Richard Kenner
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
(output_function_{pro,epi}logue): Save and restore fp-registers only
if TARGET_68881. From-SVN: r13145
parent
d8db8192
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
19 additions
and
13 deletions
+19
-13
gcc/config/m68k/m68k.c
+19
-13
No files found.
gcc/config/m68k/m68k.c
View file @
f277471f
...
...
@@ -255,18 +255,21 @@ output_function_prologue (stream, size)
#endif
}
#endif
for
(
regno
=
16
;
regno
<
24
;
regno
++
)
if
(
regs_ever_live
[
regno
]
&&
!
call_used_regs
[
regno
])
mask
|=
1
<<
(
regno
-
16
);
if
((
mask
&
0xff
)
!=
0
)
if
(
TARGET_68881
)
{
for
(
regno
=
16
;
regno
<
24
;
regno
++
)
if
(
regs_ever_live
[
regno
]
&&
!
call_used_regs
[
regno
])
mask
|=
1
<<
(
regno
-
16
);
if
((
mask
&
0xff
)
!=
0
)
{
#ifdef MOTOROLA
asm_fprintf
(
stream
,
"
\t
fmovm %0I0x%x,-(%Rsp)
\n
"
,
mask
&
0xff
);
asm_fprintf
(
stream
,
"
\t
fmovm %0I0x%x,-(%Rsp)
\n
"
,
mask
&
0xff
);
#else
asm_fprintf
(
stream
,
"
\t
fmovem %0I0x%x,%Rsp@-
\n
"
,
mask
&
0xff
);
asm_fprintf
(
stream
,
"
\t
fmovem %0I0x%x,%Rsp@-
\n
"
,
mask
&
0xff
);
#endif
}
mask
=
0
;
}
mask
=
0
;
for
(
regno
=
0
;
regno
<
16
;
regno
++
)
if
(
regs_ever_live
[
regno
]
&&
!
call_used_regs
[
regno
])
{
...
...
@@ -428,12 +431,15 @@ output_function_epilogue (stream, size)
fpoffset
=
nregs
*
8
;
#endif
nregs
=
0
;
for
(
regno
=
16
;
regno
<
24
;
regno
++
)
if
(
regs_ever_live
[
regno
]
&&
!
call_used_regs
[
regno
])
{
nregs
++
;
fmask
|=
1
<<
(
23
-
regno
);
}
if
(
TARGET_68881
)
{
for
(
regno
=
16
;
regno
<
24
;
regno
++
)
if
(
regs_ever_live
[
regno
]
&&
!
call_used_regs
[
regno
])
{
nregs
++
;
fmask
|=
1
<<
(
23
-
regno
);
}
}
foffset
=
fpoffset
+
nregs
*
12
;
nregs
=
0
;
mask
=
0
;
if
(
frame_pointer_needed
)
...
...
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