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)
from the function start. */
if
(
*
fname
==
'*'
)
++
fname
;
fprintf
(
file
,
"L
..tbtab_
"
);
fprintf
(
file
,
"L
T..
"
);
ASM_OUTPUT_LABEL
(
file
,
fname
);
/* The .tbtab psuedo-op can only be used for the first eight
...
...
@@ -1534,7 +1534,7 @@ output_epilog (file, size)
fprintf
(
file
,
"
\t
.long %d
\n
"
,
parm_info
);
/* 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
);
fprintf
(
file
,
"-."
);
RS6000_OUTPUT_BASENAME
(
file
,
fname
);
...
...
@@ -1621,9 +1621,9 @@ output_toc (file, x, labelno)
RS6000_OUTPUT_BASENAME
(
file
,
name
);
if
(
offset
<
0
)
fprintf
(
file
,
"
P.N.
%d"
,
-
offset
);
fprintf
(
file
,
"
.N
%d"
,
-
offset
);
else
if
(
offset
)
fprintf
(
file
,
".P
.
%d"
,
offset
);
fprintf
(
file
,
".P%d"
,
offset
);
fprintf
(
file
,
"[TC],"
);
output_addr_const
(
file
,
x
);
...
...
@@ -1766,7 +1766,7 @@ output_function_profiler (file, labelno)
/* Set up a TOC entry for the profiler label. */
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
);
text_section
();
...
...
@@ -1787,7 +1787,7 @@ output_function_profiler (file, labelno)
/* 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. */
...
...
gcc/config/rs6000/rs6000.h
View file @
c2a47e48
...
...
@@ -1437,18 +1437,7 @@ toc_section () \
RS6000_OUTPUT_BASENAME (FILE, NAME); \
fprintf (FILE, ":\n"); \
if (write_symbols == XCOFF_DEBUG) \
{ \
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"); \
} \
xcoffout_declare_function (FILE, DECL, NAME); \
}
/* 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)
sets
[
i
].
rtl
=
0
;
}
/*
No further processing for this assignment if destination
is volatile
. */
/*
If destination is volatile, invalidate it and then do no further
processing for this assignment
. */
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
))
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)
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
)
target
=
gen_reg_rtx
(
compute_mode
);
...
...
gcc/xcoffout.c
View file @
c2a47e48
...
...
@@ -399,6 +399,33 @@ xcoffout_end_block (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).
Record the function's starting line number, so we can output
relative line numbers for the other lines.
...
...
@@ -438,7 +465,7 @@ xcoffout_end_epilogue (file)
char
*
fname
=
XSTR
(
XEXP
(
DECL_RTL
(
current_function_decl
),
0
),
0
);
if
(
*
fname
==
'*'
)
++
fname
;
fprintf
(
file
,
"
L..end_
"
);
fprintf
(
file
,
"
FE..
"
);
ASM_OUTPUT_LABEL
(
file
,
fname
);
}
#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