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
a7e2b014
Commit
a7e2b014
authored
Feb 15, 1997
by
Richard Kenner
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
(output_function_prologue): Add CRDS and MOTOROLA probe code.
(print_operand): Do not output '.' if CRDS. From-SVN: r13648
parent
4326c605
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
12 additions
and
4 deletions
+12
-4
gcc/config/m68k/m68k.c
+12
-4
No files found.
gcc/config/m68k/m68k.c
View file @
a7e2b014
...
@@ -227,6 +227,7 @@ output_function_prologue (stream, size)
...
@@ -227,6 +227,7 @@ output_function_prologue (stream, size)
}
}
else
else
{
{
/* asm_fprintf() cannot handle %. */
#ifdef MOTOROLA
#ifdef MOTOROLA
asm_fprintf
(
stream
,
"
\t
subq.l %OI%d,%Rsp
\n
"
,
fsize
+
4
);
asm_fprintf
(
stream
,
"
\t
subq.l %OI%d,%Rsp
\n
"
,
fsize
+
4
);
#else
#else
...
@@ -261,7 +262,6 @@ output_function_prologue (stream, size)
...
@@ -261,7 +262,6 @@ output_function_prologue (stream, size)
}
}
else
else
{
{
/* asm_fprintf() cannot handle %. */
#ifdef MOTOROLA
#ifdef MOTOROLA
asm_fprintf
(
stream
,
"
\t
lea (%d,%Rsp),%Rsp
\n
"
,
-
(
fsize
+
4
));
asm_fprintf
(
stream
,
"
\t
lea (%d,%Rsp),%Rsp
\n
"
,
-
(
fsize
+
4
));
#else
#else
...
@@ -320,8 +320,16 @@ output_function_prologue (stream, size)
...
@@ -320,8 +320,16 @@ output_function_prologue (stream, size)
}
}
#if NEED_PROBE
#if NEED_PROBE
#ifdef MOTOROLA
#ifdef CRDS
asm_fprintf
(
stream
,
"
\t
tstl %d(%Rsp)
\n
"
,
NEED_PROBE
-
num_saved_regs
*
4
);
#else
asm_fprintf
(
stream
,
"
\t
tst.l %d(%Rsp)
\n
"
,
NEED_PROBE
-
num_saved_regs
*
4
);
#endif
#else
asm_fprintf
(
stream
,
"
\t
tstl %Rsp@(%d)
\n
"
,
NEED_PROBE
-
num_saved_regs
*
4
);
asm_fprintf
(
stream
,
"
\t
tstl %Rsp@(%d)
\n
"
,
NEED_PROBE
-
num_saved_regs
*
4
);
#endif
#endif
#endif
if
(
num_saved_regs
<=
2
)
if
(
num_saved_regs
<=
2
)
{
{
...
@@ -701,6 +709,7 @@ output_function_epilogue (stream, size)
...
@@ -701,6 +709,7 @@ output_function_epilogue (stream, size)
{
{
/* On the CPU32 it is faster to use two addqw instructions to
/* On the CPU32 it is faster to use two addqw instructions to
add a small integer (8 < N <= 16) to a register. */
add a small integer (8 < N <= 16) to a register. */
/* asm_fprintf() cannot handle %. */
#ifdef MOTOROLA
#ifdef MOTOROLA
asm_fprintf
(
stream
,
"
\t
addq.w %OI8,%Rsp
\n\t
addq.w %OI%d,%Rsp
\n
"
,
asm_fprintf
(
stream
,
"
\t
addq.w %OI8,%Rsp
\n\t
addq.w %OI%d,%Rsp
\n
"
,
fsize
+
4
);
fsize
+
4
);
...
@@ -724,7 +733,6 @@ output_function_epilogue (stream, size)
...
@@ -724,7 +733,6 @@ output_function_epilogue (stream, size)
}
}
else
else
{
{
/* asm_fprintf() cannot handle %. */
#ifdef MOTOROLA
#ifdef MOTOROLA
asm_fprintf
(
stream
,
"
\t
lea (%d,%Rsp),%Rsp
\n
"
,
fsize
+
4
);
asm_fprintf
(
stream
,
"
\t
lea (%d,%Rsp),%Rsp
\n
"
,
fsize
+
4
);
#else
#else
...
@@ -2302,7 +2310,7 @@ standard_sun_fpa_constant_p (x)
...
@@ -2302,7 +2310,7 @@ standard_sun_fpa_constant_p (x)
'@' for a reference to the top word on the stack:
'@' for a reference to the top word on the stack:
sp@, (sp) or (%sp) depending on the style of syntax.
sp@, (sp) or (%sp) depending on the style of syntax.
'#' for an immediate operand prefix (# in MIT and Motorola syntax
'#' for an immediate operand prefix (# in MIT and Motorola syntax
but & in SGS syntax).
but & in SGS syntax
, $ in CRDS/UNOS syntax
).
'!' for the cc register (used in an `and to cc' insn).
'!' for the cc register (used in an `and to cc' insn).
'$' for the letter `s' in an op code, but only on the 68040.
'$' for the letter `s' in an op code, but only on the 68040.
'&' for the letter `d' in an op code, but only on the 68040.
'&' for the letter `d' in an op code, but only on the 68040.
...
@@ -2331,7 +2339,7 @@ print_operand (file, op, letter)
...
@@ -2331,7 +2339,7 @@ print_operand (file, op, letter)
if
(
letter
==
'.'
)
if
(
letter
==
'.'
)
{
{
#if
def MOTOROLA
#if
defined (MOTOROLA) && !defined (CRDS)
asm_fprintf
(
file
,
"."
);
asm_fprintf
(
file
,
"."
);
#endif
#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