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
6cfc7210
Commit
6cfc7210
authored
Jul 17, 1999
by
Nick Clifton
Committed by
Nick Clifton
Jul 17, 1999
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
General tidyup of header files.
From-SVN: r28138
parent
8f7cbf16
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
125 additions
and
55 deletions
+125
-55
gcc/ChangeLog
+39
-0
gcc/config/arm/aout.h
+80
-50
gcc/config/arm/arm.c
+0
-0
gcc/config/arm/arm.h
+0
-0
gcc/config/arm/coff.h
+1
-0
gcc/config/arm/elf.h
+5
-5
No files found.
gcc/ChangeLog
View file @
6cfc7210
Sat
Jul
17
14
:
25
:
46
1999
Nick
Clifton
<
nickc
@cygnus
.
com
>
*
config
/
arm
/
aout
.
h
:
Reformat
for
improved
readability
.
*
config
/
arm
/
arm
.
h
:
Reformat
for
improved
readability
.
Replace
uses
of
fprintf
with
asm_fprintf
where
appropriate
.
(
ARM_DECLARE_FUNCTION_NAME
)
:
New
macro
:
Perform
any
generic
ARM
function
declaration
assembler
actions
.
(
NUM_INTS
)
:
New
macro
:
Convert
from
bytes
to
words
.
(
NUM_REGS
)
:
New
macro
:
Compute
number
of
registers
required
to
hold
a
quanitity
of
tyep
MODE
.
(
NUM_REGS2
)
:
New
macro
:
Like
NUM_REGS
but
also
copes
with
BLKmode
types
.
(
NUM_ARG_REGS
)
:
New
macro
:
The
number
of
argument
registers
available
.
(
ARG_REGISTER
)
:
New
macro
:
Compute
the
register
number
of
the
Nth
argument
register
.
(
LAST_ARG_REGNUM
)
:
New
macro
:
The
number
of
the
last
argument
register
.
(
SP_REGNUM
)
:
New
macro
:
Register
number
of
the
stack
pointer
.
(
FP_REGNUM
)
:
New
macro
:
Register
number
of
the
frame
pointer
.
(
FUNCTION_ARG
,
FUNCTION_ARG_PARTIAL_NREGS
,
INIT_CUMULATIVE_AGS
,
FUNCTION_ARG_ADVANCE
,
SETUP_INCOMING_VARARGS
)
:
Change
CUMULATIVE_ARGS
so
that
it
counts
registers
not
bytes
.
*
config
/
arm
/
arm
.
c
:
Rename
TARGET_THUMB_INTERWORK
to
TARGET_INTERWORK
.
Replace
uses
of
fprintf
with
asm_fprintf
where
appropriate
.
(
output_ascii_pseudo_op
)
:
Replace
with
version
from
thumb
.
c
*
config
/
arm
/
coff
.
h
(
ASM_FILE_START
)
:
Emit
ASM_APP_OFF
.
*
config
/
arm
/
elf
.
h
(
CPP_PREDEFINES
)
:
Replace
with
SUBTARGET_CPP_SPEC
.
(
ASM_DECLARE_FUNCTION_NAME
)
:
Use
ARM_DECLARE_FUNCTION_NAME
.
(
ASM_FILE_START
)
:
Emit
ASM_APP_OFF
.
Fri
Jul
16
13
:
48
:
09
1999
Jeffrey
A
Law
(
law
@cygnus
.
com
)
*
pa
.
c
(
compute_frame_size
)
:
Round
frame
according
to
...
...
gcc/config/arm/aout.h
View file @
6cfc7210
...
...
@@ -100,7 +100,7 @@ Boston, MA 02111-1307, USA. */
/* Arm Assembler barfs on dollars */
#define DOLLARS_IN_IDENTIFIERS 0
#define NO_DOLLAR_IN_LABEL
#define NO_DOLLAR_IN_LABEL
1
/* DBX register number for a given compiler register number */
#define DBX_REGISTER_NUMBER(REGNO) (REGNO)
...
...
@@ -118,39 +118,48 @@ Boston, MA 02111-1307, USA. */
/* Output a source filename for the debugger. RISCiX dbx insists that the
``desc'' field is set to compiler version number >= 315 (sic). */
#define DBX_OUTPUT_MAIN_SOURCE_FILENAME(STREAM,NAME) \
do { \
#define DBX_OUTPUT_MAIN_SOURCE_FILENAME(STREAM, NAME) \
do \
{ \
fprintf (STREAM, ".stabs "); \
output_quoted_string (STREAM, NAME); \
fprintf (STREAM, ",%d,0,315,%s\n", N_SO, <ext_label_name[1]); \
text_section (); \
ASM_OUTPUT_INTERNAL_LABEL (STREAM, "Ltext", 0); \
} while (0)
} \
while (0)
/* Output a function label definition. */
#ifndef ASM_DECLARE_FUNCTION_NAME
#define ASM_DECLARE_FUNCTION_NAME(STREAM,
NAME,
DECL) \
{
\
if (TARGET_POKE_FUNCTION_NAME)
\
arm_poke_function_name ((STREAM), (NAME));
\
#define ASM_DECLARE_FUNCTION_NAME(STREAM,
NAME,
DECL) \
do
\
{
\
ARM_DECLARE_FUNCTION_NAME (STREAM, NAME, DECL);
\
ASM_OUTPUT_LABEL (STREAM, NAME); \
}
} \
while (0)
#endif
#ifndef ASM_OUTPUT_LABEL
#define ASM_OUTPUT_LABEL(STREAM,NAME) \
do { \
#define ASM_OUTPUT_LABEL(STREAM, NAME) \
do \
{ \
assemble_name (STREAM,NAME); \
fputs (":\n", STREAM); \
} while (0)
} \
while (0)
#endif
/* Output a globalising directive for a label. */
#ifndef ASM_GLOBALIZE_LABEL
#define ASM_GLOBALIZE_LABEL(STREAM,NAME) \
(fprintf (STREAM, "\t.global\t"), \
assemble_name (STREAM, NAME), \
fputc ('\n',STREAM))
#define ASM_GLOBALIZE_LABEL(STREAM, NAME) \
do \
{ \
fprintf (STREAM, "\t.global\t"); \
assemble_name (STREAM, NAME); \
fputc ('\n',STREAM); \
} \
while (0)
#endif
/* Make an internal label into a string. */
...
...
@@ -159,77 +168,91 @@ do { \
sprintf (STRING, "*%s%s%u", LOCAL_LABEL_PREFIX, PREFIX, (unsigned int)(NUM))
#endif
/* Nothing special is done about jump tables */
/* #define ASM_OUTPUT_CASE_LABEL(STREAM,PREFIX,NUM,TABLE) */
/* #define ASM_OUTPUT_CASE_END(STREAM,NUM,TABLE) */
/* Construct a private name. */
#define ASM_FORMAT_PRIVATE_NAME(OUTVAR,
NAME,
NUMBER) \
#define ASM_FORMAT_PRIVATE_NAME(OUTVAR,
NAME,
NUMBER) \
((OUTVAR) = (char *) alloca (strlen (NAME) + 10), \
sprintf (
(OUTVAR), "%s.%d", (NAME), (NUMBER)
))
sprintf (
OUTVAR, "%s.%d", NAME, NUMBER
))
/* Output an element of a dispatch table. */
#define ASM_OUTPUT_ADDR_VEC_ELT(STREAM,VALUE) \
fprintf (STREAM, "\t.word\t%sL%d\n", LOCAL_LABEL_PREFIX
, VALUE)
#define ASM_OUTPUT_ADDR_VEC_ELT(STREAM,
VALUE) \
asm_fprintf (STREAM, "\t.word\t%LL%d\n"
, VALUE)
#define ASM_OUTPUT_ADDR_DIFF_ELT(STREAM,
BODY,VALUE,
REL) \
fprintf (STREAM, "\tb\t%sL%d\n", LOCAL_LABEL_PREFIX, (VALUE)
)
#define ASM_OUTPUT_ADDR_DIFF_ELT(STREAM,
BODY, VALUE,
REL) \
asm_fprintf (STREAM, "\tb\t%LL%d\n", VALUE
)
/* Output various types of constants. For real numbers we output hex, with
a comment containing the "human" value, this allows us to pass NaN's which
the riscix assembler doesn't understand (it also makes cross-assembling
less likely to fail). */
#define ASM_OUTPUT_LONG_DOUBLE(STREAM,VALUE) \
do { char dstr[30]; \
#define ASM_OUTPUT_LONG_DOUBLE(STREAM, VALUE) \
do \
{ \
char dstr[30]; \
long l[3]; \
REAL_VALUE_TO_TARGET_LONG_DOUBLE (VALUE, l); \
REAL_VALUE_TO_DECIMAL (VALUE, "%.20g", dstr); \
fprintf (STREAM, "\t.long 0x%lx,0x%lx,0x%lx\t%s long double %s\n", \
l[0], l[1], l[2], ASM_COMMENT_START, dstr); \
} while (0)
} \
while (0)
#define ASM_OUTPUT_DOUBLE(STREAM, VALUE) \
do { char dstr[30]; \
do \
{ \
char dstr[30]; \
long l[2]; \
REAL_VALUE_TO_TARGET_DOUBLE (VALUE, l); \
REAL_VALUE_TO_DECIMAL (VALUE, "%.14g", dstr); \
fprintf (STREAM, "\t.long 0x%lx, 0x%lx\t%s double %s\n", l[0], \
l[1], ASM_COMMENT_START, dstr); \
} while (0)
} \
while (0)
#define ASM_OUTPUT_FLOAT(STREAM, VALUE) \
do { char dstr[30]; \
do \
{ \
char dstr[30]; \
long l; \
REAL_VALUE_TO_TARGET_SINGLE (VALUE, l); \
REAL_VALUE_TO_DECIMAL (VALUE, "%.7g", dstr); \
fprintf (STREAM, "\t.word 0x%lx\t%s float %s\n", l, \
ASM_COMMENT_START, dstr); \
} while (0);
} \
while (0)
#define ASM_OUTPUT_INT(STREAM, EXP) \
do \
{ \
fprintf (STREAM, "\t.word\t"); \
OUTPUT_INT_ADDR_CONST (STREAM, (EXP)
); \
OUTPUT_INT_ADDR_CONST (STREAM, EXP
); \
fputc ('\n', STREAM); \
}
} \
while (0)
#define ASM_OUTPUT_SHORT(STREAM, EXP) \
(fprintf (STREAM, "\t.short\t"), \
output_addr_const (STREAM, (EXP)), \
fputc ('\n', STREAM))
do \
{ \
fprintf (STREAM, "\t.short\t"); \
output_addr_const (STREAM, EXP); \
fputc ('\n', STREAM); \
} \
while (0)
#define ASM_OUTPUT_CHAR(STREAM, EXP) \
(fprintf (STREAM, "\t.byte\t"), \
output_addr_const (STREAM, (EXP)), \
fputc ('\n', STREAM))
do \
{ \
fprintf (STREAM, "\t.byte\t"); \
output_addr_const (STREAM, EXP); \
fputc ('\n', STREAM); \
} \
while (0)
#define ASM_OUTPUT_BYTE(STREAM, VALUE) \
fprintf (STREAM, "\t.byte\t%d\n", VALUE)
#define ASM_OUTPUT_ASCII(STREAM, PTR, LEN) \
output_ascii_pseudo_op (
(STREAM), (unsigned char *)(PTR), (LEN)
)
output_ascii_pseudo_op (
STREAM, (unsigned char *)(PTR), LEN
)
/* Output a gap. In fact we fill it with nulls. */
#define ASM_OUTPUT_SKIP(STREAM, NBYTES) \
...
...
@@ -253,9 +276,14 @@ do { char dstr[30]; \
/* Output a common block */
#ifndef ASM_OUTPUT_COMMON
#define ASM_OUTPUT_COMMON(STREAM, NAME, SIZE, ROUNDED) \
(fprintf (STREAM, "\t.comm\t"), \
assemble_name ((STREAM), (NAME)), \
fprintf (STREAM, ", %d\t%s %d\n", ROUNDED, ASM_COMMENT_START, SIZE))
do \
{ \
fprintf (STREAM, "\t.comm\t"); \
assemble_name (STREAM, NAME); \
fprintf (STREAM, ", %d\t%s %d\n", ROUNDED, \
ASM_COMMENT_START, SIZE); \
} \
while (0)
#endif
/* Output a local common block. /bin/as can't do this, so hack a
...
...
@@ -263,18 +291,20 @@ do { char dstr[30]; \
which is guaranteed NOT to work since it doesn't define STATIC
COMMON space but merely STATIC BSS space. */
#ifndef ASM_OUTPUT_ALIGNED_LOCAL
#define ASM_OUTPUT_ALIGNED_LOCAL(STREAM,NAME,SIZE,ALIGN) \
do { \
#define ASM_OUTPUT_ALIGNED_LOCAL(STREAM, NAME, SIZE, ALIGN) \
do \
{ \
bss_section (); \
ASM_OUTPUT_ALIGN (STREAM, floor_log2 (ALIGN / BITS_PER_UNIT)); \
ASM_OUTPUT_LABEL (STREAM, NAME); \
fprintf (STREAM, "\t.space\t%d\n", SIZE); \
} while (0)
} \
while (0)
#endif
/* Output a zero-initialized block. */
#ifndef ASM_OUTPUT_ALIGNED_BSS
#define ASM_OUTPUT_ALIGNED_BSS(STREAM,
DECL,NAME,SIZE,
ALIGN) \
#define ASM_OUTPUT_ALIGNED_BSS(STREAM,
DECL, NAME, SIZE,
ALIGN) \
asm_output_aligned_bss (STREAM, DECL, NAME, SIZE, ALIGN)
#endif
...
...
gcc/config/arm/arm.c
View file @
6cfc7210
This diff is collapsed.
Click to expand it.
gcc/config/arm/arm.h
View file @
6cfc7210
This diff is collapsed.
Click to expand it.
gcc/config/arm/coff.h
View file @
6cfc7210
...
...
@@ -79,6 +79,7 @@ extern int arm_structure_size_boundary;
extern char * version_string; \
fprintf (STREAM, "%s Generated by gcc %s for ARM/coff\n", \
ASM_COMMENT_START, version_string); \
fprintf (STREAM, ASM_APP_OFF); \
} \
while (0)
...
...
gcc/config/arm/elf.h
View file @
6cfc7210
...
...
@@ -32,8 +32,8 @@ Boston, MA 02111-1307, USA. */
#define USER_LABEL_PREFIX ""
#endif
#ifndef
CPP_PREDEFINES
#define
CPP_PREDEFINES "-Darm -Darm_elf -Acpu(arm) -Amachine(arm)
-D__ELF__"
#ifndef
SUBTARGET_CPP_SPEC
#define
SUBTARGET_CPP_SPEC "-Darm_elf
-D__ELF__"
#endif
/* The following macro defines the format used to output the second
...
...
@@ -63,8 +63,7 @@ Boston, MA 02111-1307, USA. */
#define ASM_DECLARE_FUNCTION_NAME(FILE, NAME, DECL) \
do \
{ \
if (TARGET_POKE_FUNCTION_NAME) \
arm_poke_function_name (FILE, NAME); \
ARM_DECLARE_FUNCTION_NAME (FILE, NAME, DECL); \
fprintf (FILE, "\t%s\t ", TYPE_ASM_OP); \
assemble_name (FILE, NAME); \
putc (',', FILE); \
...
...
@@ -211,7 +210,8 @@ extern int arm_structure_size_boundary;
extern char * version_string; \
fprintf (STREAM, "%s Generated by gcc %s for ARM/elf\n", \
ASM_COMMENT_START, version_string); \
output_file_directive ((STREAM), main_input_filename); \
output_file_directive (STREAM, main_input_filename); \
fprintf (STREAM, ASM_APP_OFF); \
} \
while (0)
#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