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
c2a47e48
Commit
c2a47e48
authored
May 22, 1992
by
Richard Kenner
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
*** empty log message ***
From-SVN: r1045
parent
3ad69266
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
51 additions
and
22 deletions
+51
-22
gcc/config/rs6000/rs6000.c
+6
-6
gcc/config/rs6000/rs6000.h
+1
-12
gcc/cse.c
+8
-3
gcc/expmed.c
+8
-0
gcc/xcoffout.c
+28
-1
No files found.
gcc/config/rs6000/rs6000.c
View file @
c2a47e48
...
@@ -1406,7 +1406,7 @@ output_epilog (file, size)
...
@@ -1406,7 +1406,7 @@ output_epilog (file, size)
from the function start. */
from the function start. */
if
(
*
fname
==
'*'
)
if
(
*
fname
==
'*'
)
++
fname
;
++
fname
;
fprintf
(
file
,
"L
..tbtab_
"
);
fprintf
(
file
,
"L
T..
"
);
ASM_OUTPUT_LABEL
(
file
,
fname
);
ASM_OUTPUT_LABEL
(
file
,
fname
);
/* The .tbtab psuedo-op can only be used for the first eight
/* The .tbtab psuedo-op can only be used for the first eight
...
@@ -1534,7 +1534,7 @@ output_epilog (file, size)
...
@@ -1534,7 +1534,7 @@ output_epilog (file, size)
fprintf
(
file
,
"
\t
.long %d
\n
"
,
parm_info
);
fprintf
(
file
,
"
\t
.long %d
\n
"
,
parm_info
);
/* Offset from start of code to tb table. */
/* Offset from start of code to tb table. */
fprintf
(
file
,
"
\t
.long L
..tbtab_
"
);
fprintf
(
file
,
"
\t
.long L
T..
"
);
RS6000_OUTPUT_BASENAME
(
file
,
fname
);
RS6000_OUTPUT_BASENAME
(
file
,
fname
);
fprintf
(
file
,
"-."
);
fprintf
(
file
,
"-."
);
RS6000_OUTPUT_BASENAME
(
file
,
fname
);
RS6000_OUTPUT_BASENAME
(
file
,
fname
);
...
@@ -1621,9 +1621,9 @@ output_toc (file, x, labelno)
...
@@ -1621,9 +1621,9 @@ output_toc (file, x, labelno)
RS6000_OUTPUT_BASENAME
(
file
,
name
);
RS6000_OUTPUT_BASENAME
(
file
,
name
);
if
(
offset
<
0
)
if
(
offset
<
0
)
fprintf
(
file
,
"
P.N.
%d"
,
-
offset
);
fprintf
(
file
,
"
.N
%d"
,
-
offset
);
else
if
(
offset
)
else
if
(
offset
)
fprintf
(
file
,
".P
.
%d"
,
offset
);
fprintf
(
file
,
".P%d"
,
offset
);
fprintf
(
file
,
"[TC],"
);
fprintf
(
file
,
"[TC],"
);
output_addr_const
(
file
,
x
);
output_addr_const
(
file
,
x
);
...
@@ -1766,7 +1766,7 @@ output_function_profiler (file, labelno)
...
@@ -1766,7 +1766,7 @@ output_function_profiler (file, labelno)
/* Set up a TOC entry for the profiler label. */
/* Set up a TOC entry for the profiler label. */
toc_section
();
toc_section
();
fprintf
(
file
,
"LP
TOC..%d:
\n\t
.tc
\t
LP..%d[TC],
LP..%d
\n
"
,
fprintf
(
file
,
"LP
C..%d:
\n\t
.tc
\t
LP..%d[TC],
LP..%d
\n
"
,
labelno
,
labelno
,
labelno
);
labelno
,
labelno
,
labelno
);
text_section
();
text_section
();
...
@@ -1787,7 +1787,7 @@ output_function_profiler (file, labelno)
...
@@ -1787,7 +1787,7 @@ output_function_profiler (file, labelno)
/* Load location address into r3, and call mcount. */
/* Load location address into r3, and call mcount. */
fprintf
(
file
,
"
\t
l 3,LP
TO
C..%d(2)
\n\t
bl .mcount
\n
"
,
labelno
);
fprintf
(
file
,
"
\t
l 3,LPC..%d(2)
\n\t
bl .mcount
\n
"
,
labelno
);
/* Restore parameter registers. */
/* Restore parameter registers. */
...
...
gcc/config/rs6000/rs6000.h
View file @
c2a47e48
...
@@ -1437,18 +1437,7 @@ toc_section () \
...
@@ -1437,18 +1437,7 @@ toc_section () \
RS6000_OUTPUT_BASENAME (FILE, NAME); \
RS6000_OUTPUT_BASENAME (FILE, NAME); \
fprintf (FILE, ":\n"); \
fprintf (FILE, ":\n"); \
if (write_symbols == XCOFF_DEBUG) \
if (write_symbols == XCOFF_DEBUG) \
{ \
xcoffout_declare_function (FILE, DECL, NAME); \
dbxout_symbol (DECL, 0); \
fprintf (FILE, "\t.function ."); \
RS6000_OUTPUT_BASENAME (FILE, NAME); \
fprintf (FILE, ",."); \
RS6000_OUTPUT_BASENAME (FILE, NAME); \
fprintf (FILE, ",16,044,L..end_"); \
RS6000_OUTPUT_BASENAME (FILE, NAME); \
fprintf (FILE, "-."); \
RS6000_OUTPUT_BASENAME (FILE, NAME); \
fprintf (FILE, "\n"); \
} \
}
}
/* Return non-zero if this entry is to be written into the constant pool
/* Return non-zero if this entry is to be written into the constant pool
...
...
gcc/cse.c
View file @
c2a47e48
...
@@ -6112,11 +6112,16 @@ cse_insn (insn, in_libcall_block)
...
@@ -6112,11 +6112,16 @@ cse_insn (insn, in_libcall_block)
sets
[
i
].
rtl
=
0
;
sets
[
i
].
rtl
=
0
;
}
}
/*
No further processing for this assignment if destination
/*
If destination is volatile, invalidate it and then do no further
is volatile
. */
processing for this assignment
. */
else
if
(
do_not_record
)
else
if
(
do_not_record
)
sets
[
i
].
rtl
=
0
;
{
if
(
GET_CODE
(
dest
)
==
REG
||
GET_CODE
(
dest
)
==
SUBREG
||
GET_CODE
(
dest
)
==
MEM
)
invalidate
(
dest
);
sets
[
i
].
rtl
=
0
;
}
if
(
sets
[
i
].
rtl
!=
0
&&
dest
!=
SET_DEST
(
sets
[
i
].
rtl
))
if
(
sets
[
i
].
rtl
!=
0
&&
dest
!=
SET_DEST
(
sets
[
i
].
rtl
))
sets
[
i
].
dest_hash_code
=
HASH
(
SET_DEST
(
sets
[
i
].
rtl
),
mode
);
sets
[
i
].
dest_hash_code
=
HASH
(
SET_DEST
(
sets
[
i
].
rtl
),
mode
);
...
...
gcc/expmed.c
View file @
c2a47e48
...
@@ -2254,6 +2254,14 @@ expand_divmod (rem_flag, code, mode, op0, op1, target, unsignedp)
...
@@ -2254,6 +2254,14 @@ expand_divmod (rem_flag, code, mode, op0, op1, target, unsignedp)
op1
=
convert_to_mode
(
compute_mode
,
op1
,
unsignedp
);
op1
=
convert_to_mode
(
compute_mode
,
op1
,
unsignedp
);
}
}
/* If we are computing the remainder and one of the operands is a volatile
MEM, copy it into a register. */
if
(
rem_flag
&&
GET_CODE
(
op0
)
==
MEM
&&
MEM_VOLATILE_P
(
op0
))
adjusted_op0
=
op0
=
force_reg
(
compute_mode
,
op0
),
can_clobber_op0
=
1
;
if
(
rem_flag
&&
GET_CODE
(
op1
)
==
MEM
&&
MEM_VOLATILE_P
(
op1
))
op1
=
force_reg
(
compute_mode
,
op1
);
if
(
target
==
0
||
GET_MODE
(
target
)
!=
compute_mode
)
if
(
target
==
0
||
GET_MODE
(
target
)
!=
compute_mode
)
target
=
gen_reg_rtx
(
compute_mode
);
target
=
gen_reg_rtx
(
compute_mode
);
...
...
gcc/xcoffout.c
View file @
c2a47e48
...
@@ -399,6 +399,33 @@ xcoffout_end_block (file, line, n)
...
@@ -399,6 +399,33 @@ xcoffout_end_block (file, line, n)
ASM_OUTPUT_LBE
(
file
,
line
,
n
);
ASM_OUTPUT_LBE
(
file
,
line
,
n
);
}
}
/* Called at beginning of function (before prologue).
Declare function as needed for debugging. */
void
xcoffout_declare_function
(
file
,
decl
,
name
)
FILE
*
file
;
tree
decl
;
char
*
name
;
{
char
*
n
=
name
;
int
i
;
for
(
i
=
0
;
name
[
i
];
++
i
)
{
if
(
name
[
i
]
==
'['
)
{
n
=
alloca
(
i
+
1
);
strncpy
(
n
,
name
,
i
);
n
[
i
]
=
'\0'
;
break
;
}
}
dbxout_symbol
(
decl
,
0
);
fprintf
(
file
,
"
\t
.function .%s,.%s,16,044,FE..%s-.%s
\n
"
,
n
,
n
,
n
,
n
);
}
/* Called at beginning of function body (after prologue).
/* Called at beginning of function body (after prologue).
Record the function's starting line number, so we can output
Record the function's starting line number, so we can output
relative line numbers for the other lines.
relative line numbers for the other lines.
...
@@ -438,7 +465,7 @@ xcoffout_end_epilogue (file)
...
@@ -438,7 +465,7 @@ xcoffout_end_epilogue (file)
char
*
fname
=
XSTR
(
XEXP
(
DECL_RTL
(
current_function_decl
),
0
),
0
);
char
*
fname
=
XSTR
(
XEXP
(
DECL_RTL
(
current_function_decl
),
0
),
0
);
if
(
*
fname
==
'*'
)
if
(
*
fname
==
'*'
)
++
fname
;
++
fname
;
fprintf
(
file
,
"
L..end_
"
);
fprintf
(
file
,
"
FE..
"
);
ASM_OUTPUT_LABEL
(
file
,
fname
);
ASM_OUTPUT_LABEL
(
file
,
fname
);
}
}
#endif
/* XCOFF_DEBUGGING_INFO */
#endif
/* XCOFF_DEBUGGING_INFO */
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