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
17704846
Commit
17704846
authored
May 06, 1992
by
Jim Wilson
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
*** empty log message ***
From-SVN: r917
parent
feb69c20
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
53 additions
and
48 deletions
+53
-48
gcc/collect2.c
+51
-46
gcc/config/i960/i960.c
+1
-1
gcc/config/i960/i960.h
+1
-1
No files found.
gcc/collect2.c
View file @
17704846
...
...
@@ -448,7 +448,7 @@ main (argc, argv)
{
char
*
q
=
p
;
while
(
*
q
&&
*
q
!=
' '
)
q
++
;
if
(
*
p
==
'-'
&&
(
p
[
1
]
==
'm'
||
p
[
1
]
==
'f'
)
)
if
(
*
p
==
'-'
&&
p
[
1
]
==
'm'
)
num_c_args
++
;
if
(
*
q
)
q
++
;
...
...
@@ -965,14 +965,14 @@ write_c_file (stream, name)
fprintf
(
stream
,
"typedef void entry_pt();
\n\n
"
);
write_list_with_asm
(
stream
,
"entry_pt "
,
constructors
.
first
);
write_list_with_asm
(
stream
,
"e
xtern e
ntry_pt "
,
constructors
.
first
);
fprintf
(
stream
,
"
\n
entry_pt * __CTOR_LIST__[] = {
\n
"
);
fprintf
(
stream
,
"
\t
(entry_pt *) %d,
\n
"
,
constructors
.
number
);
write_list
(
stream
,
"
\t
"
,
constructors
.
first
);
fprintf
(
stream
,
"
\t
0
\n
};
\n\n
"
);
write_list_with_asm
(
stream
,
"entry_pt "
,
destructors
.
first
);
write_list_with_asm
(
stream
,
"e
xtern e
ntry_pt "
,
destructors
.
first
);
fprintf
(
stream
,
"
\n
entry_pt * __DTOR_LIST__[] = {
\n
"
);
fprintf
(
stream
,
"
\t
(entry_pt *) %d,
\n
"
,
destructors
.
number
);
...
...
@@ -1136,20 +1136,22 @@ scan_prog_file (prog_name, which_pass)
#ifdef OBJECT_FORMAT_COFF
#if defined(EXTENDED_COFF)
# define GCC_SYMBOLS(X) (SYMHEADER(X).isymMax+SYMHEADER(X).iextMax)
# define GCC_SYMENT SYMR
# define GCC_OK_SYMBOL(X) ((X).st == stProc && (X).sc == scText)
# define GCC_SYMINC(X) (1)
# define GCC_SYMZERO(X) (SYMHEADER(X).isymMax)
# define GCC_SYMBOLS(X) (SYMHEADER(X).isymMax + SYMHEADER(X).iextMax)
# define GCC_SYMENT SYMR
# define GCC_OK_SYMBOL(X) ((X).st == stProc && (X).sc == scText)
# define GCC_SYMINC(X) (1)
# define GCC_SYMZERO(X) (SYMHEADER(X).isymMax)
# define GCC_CHECK_HDR(X) (PSYMTAB(X) != 0)
#else
# define GCC_SYMBOLS(X)
(HEADER(ldptr).f_nsyms)
# define GCC_SYMENT
SYMENT
# define GCC_SYMBOLS(X)
(HEADER(ldptr).f_nsyms)
# define GCC_SYMENT
SYMENT
# define GCC_OK_SYMBOL(X) \
(((X).n_sclass == C_EXT) && \
(((X).n_type & N_TMASK) == (DT_NON << N_BTSHFT) || \
((X).n_type & N_TMASK) == (DT_FCN << N_BTSHFT)))
# define GCC_SYMINC(X) ((X).n_numaux+1)
# define GCC_SYMZERO(X) 0
# define GCC_SYMINC(X) ((X).n_numaux+1)
# define GCC_SYMZERO(X) 0
# define GCC_CHECK_HDR(X) (1)
#endif
extern
char
*
ldgetname
();
...
...
@@ -1180,54 +1182,57 @@ scan_prog_file (prog_name, which_pass)
if
(
!
ISCOFF
(
HEADER
(
ldptr
).
f_magic
))
fatal
(
"%s: not a COFF file"
,
prog_name
);
sym_count
=
GCC_SYMBOLS
(
ldptr
);
sym_index
=
GCC_SYMZERO
(
ldptr
);
while
(
sym_index
<
sym_count
)
if
(
GCC_CHECK_HDR
(
ldptr
))
{
GCC_SYMENT
symbol
;
sym_count
=
GCC_SYMBOLS
(
ldptr
);
sym_index
=
GCC_SYMZERO
(
ldptr
);
while
(
sym_index
<
sym_count
)
{
GCC_SYMENT
symbol
;
if
(
ldtbread
(
ldptr
,
sym_index
,
&
symbol
)
<=
0
)
break
;
sym_index
+=
GCC_SYMINC
(
symbol
);
if
(
ldtbread
(
ldptr
,
sym_index
,
&
symbol
)
<=
0
)
break
;
sym_index
+=
GCC_SYMINC
(
symbol
);
if
(
GCC_OK_SYMBOL
(
symbol
))
{
char
*
name
;
if
(
GCC_OK_SYMBOL
(
symbol
))
{
char
*
name
;
if
((
name
=
ldgetname
(
ldptr
,
&
symbol
))
==
NULL
)
continue
;
/* should never happen */
if
((
name
=
ldgetname
(
ldptr
,
&
symbol
))
==
NULL
)
continue
;
/* should never happen */
#ifdef _AIX
/* All AIX function names begin with a dot. */
if
(
*
name
++
!=
'.'
)
continue
;
/* All AIX function names begin with a dot. */
if
(
*
name
++
!=
'.'
)
continue
;
#endif
switch
(
is_ctor_dtor
(
name
))
{
case
1
:
add_to_list
(
&
constructors
,
name
);
break
;
switch
(
is_ctor_dtor
(
name
))
{
case
1
:
add_to_list
(
&
constructors
,
name
);
break
;
case
2
:
add_to_list
(
&
destructors
,
name
);
break
;
case
2
:
add_to_list
(
&
destructors
,
name
);
break
;
default
:
/* not a constructor or destructor */
continue
;
}
default
:
/* not a constructor or destructor */
continue
;
}
#if !defined(EXTENDED_COFF)
if
(
debug
)
fprintf
(
stderr
,
"
\t
sec=%d class=%d type=%s%o %s
\n
"
,
symbol
.
n_scnum
,
symbol
.
n_sclass
,
(
symbol
.
n_type
?
"0"
:
""
),
symbol
.
n_type
,
name
);
if
(
debug
)
fprintf
(
stderr
,
"
\t
sec=%d class=%d type=%s%o %s
\n
"
,
symbol
.
n_scnum
,
symbol
.
n_sclass
,
(
symbol
.
n_type
?
"0"
:
""
),
symbol
.
n_type
,
name
);
#else
if
(
debug
)
fprintf
(
stderr
,
"
\t
iss = %5d, value = %5d, index = %5d, name = %s
\n
"
,
symbol
.
iss
,
symbol
.
value
,
symbol
.
index
,
name
);
if
(
debug
)
fprintf
(
stderr
,
"
\t
iss = %5d, value = %5d, index = %5d, name = %s
\n
"
,
symbol
.
iss
,
symbol
.
value
,
symbol
.
index
,
name
);
#endif
}
}
}
...
...
gcc/config/i960/i960.c
View file @
17704846
...
...
@@ -1729,7 +1729,7 @@ i960_alignment (size, align)
/* Modes for quad-float quantities. */
#define TF_MODES (DF_MODES | (1 << (int) TFmode) | (1 << (int) DCmode))
shor
t
hard_regno_mode_ok
[
FIRST_PSEUDO_REGISTER
]
=
{
unsigned
in
t
hard_regno_mode_ok
[
FIRST_PSEUDO_REGISTER
]
=
{
T_MODES
,
S_MODES
,
D_MODES
,
S_MODES
,
T_MODES
,
S_MODES
,
D_MODES
,
S_MODES
,
T_MODES
,
S_MODES
,
D_MODES
,
S_MODES
,
T_MODES
,
S_MODES
,
D_MODES
,
S_MODES
,
T_MODES
,
S_MODES
,
D_MODES
,
S_MODES
,
T_MODES
,
S_MODES
,
D_MODES
,
S_MODES
,
...
...
gcc/config/i960/i960.h
View file @
17704846
...
...
@@ -471,7 +471,7 @@ extern int target_flags;
/* Value is 1 if hard register REGNO can hold a value of machine-mode MODE.
On 80960, the cpu registers can hold any mode but the float registers
can only hold SFmode, DFmode, or TFmode. */
extern
shor
t
hard_regno_mode_ok
[
FIRST_PSEUDO_REGISTER
];
extern
unsigned
in
t
hard_regno_mode_ok
[
FIRST_PSEUDO_REGISTER
];
#define HARD_REGNO_MODE_OK(REGNO, MODE) \
((hard_regno_mode_ok[REGNO] & (1 << (int) (MODE))) != 0)
...
...
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