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
4b69d2a3
Commit
4b69d2a3
authored
Mar 30, 1992
by
Richard Stallman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
*** empty log message ***
From-SVN: r634
parent
2525c782
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
42 additions
and
39 deletions
+42
-39
gcc/config/sparc/sparc.h
+33
-18
gcc/config/svr4.h
+9
-21
No files found.
gcc/config/sparc/sparc.h
View file @
4b69d2a3
...
@@ -438,7 +438,7 @@ enum reg_class { NO_REGS, GENERAL_REGS, FP_REGS, ALL_REGS, LIM_REG_CLASSES };
...
@@ -438,7 +438,7 @@ enum reg_class { NO_REGS, GENERAL_REGS, FP_REGS, ALL_REGS, LIM_REG_CLASSES };
40, 41, 42, 43, 44, 45, 46, 47, \
40, 41, 42, 43, 44, 45, 46, 47, \
48, 49, 50, 51, 52, 53, 54, 55, \
48, 49, 50, 51, 52, 53, 54, 55, \
56, 57, 58, 59, 60, 61, 62, 63, \
56, 57, 58, 59, 60, 61, 62, 63, \
1, 4, 5, 6, 7, 0, 14, 30}
;
1, 4, 5, 6, 7, 0, 14, 30}
/* This is the order in which to allocate registers for
/* This is the order in which to allocate registers for
leaf functions. If all registers can fit in the "i" registers,
leaf functions. If all registers can fit in the "i" registers,
...
@@ -451,7 +451,7 @@ enum reg_class { NO_REGS, GENERAL_REGS, FP_REGS, ALL_REGS, LIM_REG_CLASSES };
...
@@ -451,7 +451,7 @@ enum reg_class { NO_REGS, GENERAL_REGS, FP_REGS, ALL_REGS, LIM_REG_CLASSES };
40, 41, 42, 43, 44, 45, 46, 47, \
40, 41, 42, 43, 44, 45, 46, 47, \
48, 49, 50, 51, 52, 53, 54, 55, \
48, 49, 50, 51, 52, 53, 54, 55, \
56, 57, 58, 59, 60, 61, 62, 63, \
56, 57, 58, 59, 60, 61, 62, 63, \
1, 4, 5, 6, 7, 0, 14, 30, 31}
;
1, 4, 5, 6, 7, 0, 14, 30, 31}
#define ORDER_REGS_FOR_LOCAL_ALLOC order_regs_for_local_alloc ()
#define ORDER_REGS_FOR_LOCAL_ALLOC order_regs_for_local_alloc ()
...
@@ -463,7 +463,7 @@ enum reg_class { NO_REGS, GENERAL_REGS, FP_REGS, ALL_REGS, LIM_REG_CLASSES };
...
@@ -463,7 +463,7 @@ enum reg_class { NO_REGS, GENERAL_REGS, FP_REGS, ALL_REGS, LIM_REG_CLASSES };
1, 1, 1, 1, 1, 1, 1, 1, \
1, 1, 1, 1, 1, 1, 1, 1, \
1, 1, 1, 1, 1, 1, 1, 1, \
1, 1, 1, 1, 1, 1, 1, 1, \
1, 1, 1, 1, 1, 1, 1, 1, \
1, 1, 1, 1, 1, 1, 1, 1, \
1, 1, 1, 1, 1, 1, 1, 1}
;
1, 1, 1, 1, 1, 1, 1, 1}
extern
char
leaf_reg_remap
[];
extern
char
leaf_reg_remap
[];
#define LEAF_REG_REMAP(REGNO) (leaf_reg_remap[REGNO])
#define LEAF_REG_REMAP(REGNO) (leaf_reg_remap[REGNO])
...
@@ -765,20 +765,23 @@ extern struct rtx_def *sparc_compare_op0, *sparc_compare_op1;
...
@@ -765,20 +765,23 @@ extern struct rtx_def *sparc_compare_op0, *sparc_compare_op1;
extern
struct
rtx_def
*
gen_compare_reg
();
extern
struct
rtx_def
*
gen_compare_reg
();
/* Generate the special assembly code needed to tell the assembler whatever
it might need to know about the return value of a function.
For Sparc assemblers, we need to output a .proc pseudo-op which conveys
information to the assembler relating to peephole optimization (done in
the assembler). */
#define ASM_DECLARE_RESULT(FILE, RESULT) \
fprintf ((FILE), "\t.proc\t0%o\n", sparc_type_code (TREE_TYPE (RESULT)))
/* Output the label for a function definition. */
/* Output the label for a function definition. */
#define ASM_DECLARE_FUNCTION_NAME(FILE, NAME, DECL) \
#define ASM_DECLARE_FUNCTION_NAME(FILE, NAME, DECL) \
{ \
do { \
extern tree double_type_node, float_type_node; \
ASM_DECLARE_RESULT (FILE, DECL_RESULT (DECL)); \
if (TREE_TYPE (DECL) == float_type_node) \
ASM_OUTPUT_LABEL (FILE, NAME); \
fprintf (FILE, "\t.proc 6\n"); \
} while (0)
else if (TREE_TYPE (DECL) == double_type_node) \
fprintf (FILE, "\t.proc 7\n"); \
else if (TREE_TYPE (DECL) == void_type_node) \
fprintf (FILE, "\t.proc 0\n"); \
else fprintf (FILE, "\t.proc 1\n"); \
ASM_OUTPUT_LABEL (FILE, NAME); \
}
/* Two views of the size of the current frame. */
/* Two views of the size of the current frame. */
extern
int
actual_fsize
;
extern
int
actual_fsize
;
...
@@ -1500,13 +1503,25 @@ extern struct rtx_def *legitimize_pic_address ();
...
@@ -1500,13 +1503,25 @@ extern struct rtx_def *legitimize_pic_address ();
/* This is how to output an element of a case-vector that is absolute. */
/* This is how to output an element of a case-vector that is absolute. */
#define ASM_OUTPUT_ADDR_VEC_ELT(FILE, VALUE) \
#define ASM_OUTPUT_ADDR_VEC_ELT(FILE, VALUE) \
fprintf (FILE, "\t.word L%d\n", VALUE)
do { \
char label[30]; \
ASM_GENERATE_INTERNAL_LABEL (label, "L", VALUE); \
fprintf (FILE, "\t.word\t"); \
assemble_name (FILE, label); \
fprintf (FILE, "\n"); \
} while (0)
/* This is how to output an element of a case-vector that is relative.
/* This is how to output an element of a case-vector that is relative.
(SPARC uses such vectors only when generating PIC.) */
(SPARC uses such vectors only when generating PIC.) */
#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, VALUE, REL) \
#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, VALUE, REL) \
fprintf (FILE, "\t.word L%d-1b\n", VALUE)
do { \
char label[30]; \
ASM_GENERATE_INTERNAL_LABEL (label, "L", VALUE); \
fprintf (FILE, "\t.word\t"); \
assemble_name (FILE, label); \
fprintf (FILE, "-1b\n"); \
} while (0)
/* This is how to output an assembler line
/* This is how to output an assembler line
that says to advance the location counter
that says to advance the location counter
...
...
gcc/config/svr4.h
View file @
4b69d2a3
...
@@ -281,20 +281,13 @@ do { \
...
@@ -281,20 +281,13 @@ do { \
/* This is how to output an internal numbered label where
/* This is how to output an internal numbered label where
PREFIX is the class of label and NUM is the number within the class.
PREFIX is the class of label and NUM is the number within the class.
If the NUM argument is negative, we don't use it when generating the
label.
For most svr4 systems, the convention is that any symbol which begins
For most svr4 systems, the convention is that any symbol which begins
with a period is not put into the linker symbol table by the assembler.
with a period is not put into the linker symbol table by the assembler. */
*/
#undef ASM_OUTPUT_INTERNAL_LABEL
#undef ASM_OUTPUT_INTERNAL_LABEL
#define ASM_OUTPUT_INTERNAL_LABEL(FILE, PREFIX, NUM) \
#define ASM_OUTPUT_INTERNAL_LABEL(FILE, PREFIX, NUM) \
do { \
do { \
if ((int) (NUM) >= 0) \ ???
fprintf (FILE, ".%s%d:\n", PREFIX, NUM); \
fprintf
(
FILE
,
".%s%d:
\n
"
,
PREFIX
,
NUM
);
\
else
\
fprintf
(
FILE
,
".%s:
\n
"
,
PREFIX
);
\
} while (0)
} while (0)
/* This is how to store into the string LABEL
/* This is how to store into the string LABEL
...
@@ -302,20 +295,13 @@ do { \
...
@@ -302,20 +295,13 @@ do { \
PREFIX is the class of label and NUM is the number within the class.
PREFIX is the class of label and NUM is the number within the class.
This is suitable for output with `assemble_name'.
This is suitable for output with `assemble_name'.
If the NUM argument is negative, we don't use it when generating the
label.
For most svr4 systems, the convention is that any symbol which begins
For most svr4 systems, the convention is that any symbol which begins
with a period is not put into the linker symbol table by the assembler.
with a period is not put into the linker symbol table by the assembler. */
*/
#undef ASM_GENERATE_INTERNAL_LABEL
#undef ASM_GENERATE_INTERNAL_LABEL
#define ASM_GENERATE_INTERNAL_LABEL(LABEL, PREFIX, NUM) \
#define ASM_GENERATE_INTERNAL_LABEL(LABEL, PREFIX, NUM) \
do { \
do { \
if ((int) (NUM) >= 0) \
sprintf (LABEL, "*.%s%d", PREFIX, NUM); \
sprintf (LABEL, "*.%s%d", PREFIX, NUM); \
else \
sprintf (LABEL, "*.%s", PREFIX); \
} while (0)
} while (0)
/* The standard SVR4 assembler seems to require that certain builtin
/* The standard SVR4 assembler seems to require that certain builtin
...
@@ -345,13 +331,15 @@ do { \
...
@@ -345,13 +331,15 @@ do { \
the linker seems to want the alignment of data objects
the linker seems to want the alignment of data objects
to depend on their types. We do exactly that here. */
to depend on their types. We do exactly that here. */
#define
BSS_ASM_OP ".bss
"
#define
LOCAL_ASM_OP ".local
"
#undef ASM_OUTPUT_ALIGNED_LOCAL
#undef ASM_OUTPUT_ALIGNED_LOCAL
#define ASM_OUTPUT_ALIGNED_LOCAL(FILE, NAME, SIZE, ALIGN) \
#define ASM_OUTPUT_ALIGNED_LOCAL(FILE, NAME, SIZE, ALIGN) \
do { \
do { \
fprintf ((FILE), "\t%s\t%s,%u,%u\n", \
fprintf ((FILE), "\t%s\t", LOCAL_ASM_OP); \
BSS_ASM_OP, (NAME), (SIZE), (ALIGN) / BITS_PER_UNIT); \
assemble_name ((FILE), (NAME)); \
fprintf ((FILE), "\n"); \
ASM_OUTPUT_ALIGNED_COMMON (FILE, NAME, SIZE, ALIGN); \
} while (0)
} while (0)
/* This is the pseudo-op used to generate a 32-bit word of data with a
/* This is the pseudo-op used to generate a 32-bit word of data with a
...
...
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