Commit f0918db2 by Richard Stallman

(ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Use SIZE, not ROUNDED.

(FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Definitions turned off.
(REGISTER_PREFIX, IMMEDIATE_PREFIX): New definitions.
(PARM_BOUNDARY): New definition.

From-SVN: r6137
parent 0c8ae3d3
...@@ -72,6 +72,11 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ ...@@ -72,6 +72,11 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#define STRUCTURE_SIZE_BOUNDARY 16 #define STRUCTURE_SIZE_BOUNDARY 16
/* Allocation boundary (in *bits*) for storing arguments in argument list. */
/* Be compatible with native compiler. */
#undef PARM_BOUNDARY
#define PARM_BOUNDARY 16
/* cpp has to support a #sccs directive for the /usr/include files */ /* cpp has to support a #sccs directive for the /usr/include files */
#define SCCS_DIRECTIVE #define SCCS_DIRECTIVE
...@@ -80,12 +85,19 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ ...@@ -80,12 +85,19 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#define SDB_DEBUGGING_INFO #define SDB_DEBUGGING_INFO
#undef REGISTER_PREFIX
#define REGISTER_PREFIX "%"
#undef IMMEDIATE_PREFIX
#define IMMEDIATE_PREFIX "&"
#undef REGISTER_NAMES #undef REGISTER_NAMES
#define REGISTER_NAMES \ #define REGISTER_NAMES \
{"%d0", "%d1", "%d2", "%d3", "%d4", "%d5", "%d6", "%d7", \ {"%d0", "%d1", "%d2", "%d3", "%d4", "%d5", "%d6", "%d7", \
"%a0", "%a1", "%a2", "%a3", "%a4", "%a5", "%fp", "%sp", \ "%a0", "%a1", "%a2", "%a3", "%a4", "%a5", "%fp", "%sp", \
"%fp0", "%fp1", "%fp2", "%fp3", "%fp4", "%fp5", "%fp6", "%fp7"} "%fp0", "%fp1", "%fp2", "%fp3", "%fp4", "%fp5", "%fp6", "%fp7"}
#if 0 /* phdm@info.ucl.ac.be says the standard ones work. */
#undef FUNCTION_PROLOGUE #undef FUNCTION_PROLOGUE
#define FUNCTION_PROLOGUE(FILE, SIZE) \ #define FUNCTION_PROLOGUE(FILE, SIZE) \
{ register int regno; \ { register int regno; \
...@@ -113,11 +125,13 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ ...@@ -113,11 +125,13 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
if (exact_log2 (mask) >= 0) \ if (exact_log2 (mask) >= 0) \
fprintf (FILE, "\tmov.l %s,-(%%sp)\n", reg_names[15 - exact_log2 (mask)]); \ fprintf (FILE, "\tmov.l %s,-(%%sp)\n", reg_names[15 - exact_log2 (mask)]); \
else if (mask) fprintf (FILE, "\tmovm.l &0x%x,-(%%sp)\n", mask); } else if (mask) fprintf (FILE, "\tmovm.l &0x%x,-(%%sp)\n", mask); }
#endif /* 0 */
#undef FUNCTION_PROFILER #undef FUNCTION_PROFILER
#define FUNCTION_PROFILER(FILE, LABEL_NO) \ #define FUNCTION_PROFILER(FILE, LABEL_NO) \
fprintf (FILE, "\tmov.l &LP%%%d,%%a0\n\tjsr mcount%%\n", (LABEL_NO)) fprintf (FILE, "\tmov.l &LP%%%d,%%a0\n\tjsr mcount%%\n", (LABEL_NO))
#if 0 /* phdm@info.ucl.ac.be says the standard ones work. */
#undef FUNCTION_EPILOGUE #undef FUNCTION_EPILOGUE
#define FUNCTION_EPILOGUE(FILE, SIZE) \ #define FUNCTION_EPILOGUE(FILE, SIZE) \
{ register int regno; \ { register int regno; \
...@@ -174,6 +188,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ ...@@ -174,6 +188,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
if (current_function_pops_args) \ if (current_function_pops_args) \
fprintf (FILE, "\trtd &%d\n", current_function_pops_args); \ fprintf (FILE, "\trtd &%d\n", current_function_pops_args); \
else fprintf (FILE, "\trts\n"); } else fprintf (FILE, "\trts\n"); }
#endif /* 0 */
/* This is how to output an insn to push a register on the stack. /* This is how to output an insn to push a register on the stack.
It need not be very fast code. */ It need not be very fast code. */
...@@ -220,6 +235,7 @@ output_file_directive ((FILE), main_input_filename) ...@@ -220,6 +235,7 @@ output_file_directive ((FILE), main_input_filename)
#undef CPP_PREDEFINES #undef CPP_PREDEFINES
#define CPP_PREDEFINES "-Dm68k -Dunix -DsysV68 -D__motorola__ -Asystem(unix) -Asystem(svr3) -Acpu(m68k) -Amachine(m68k)" #define CPP_PREDEFINES "-Dm68k -Dunix -DsysV68 -D__motorola__ -Asystem(unix) -Asystem(svr3) -Acpu(m68k) -Amachine(m68k)"
#if 0 /* phdm@info.ucl.ac.be says the right way is with PARM_BOUNDARY. */
/* Specify how to pad function arguments. /* Specify how to pad function arguments.
Value should be `upward', `downward' or `none'. Value should be `upward', `downward' or `none'.
Same as the default, except no padding for large or variable-size args. */ Same as the default, except no padding for large or variable-size args. */
...@@ -230,6 +246,7 @@ output_file_directive ((FILE), main_input_filename) ...@@ -230,6 +246,7 @@ output_file_directive ((FILE), main_input_filename)
&& int_size_in_bytes (TYPE) < PARM_BOUNDARY / BITS_PER_UNIT) \ && int_size_in_bytes (TYPE) < PARM_BOUNDARY / BITS_PER_UNIT) \
: GET_MODE_BITSIZE (MODE) < PARM_BOUNDARY) \ : GET_MODE_BITSIZE (MODE) < PARM_BOUNDARY) \
? downward : none) ? downward : none)
#endif /* 0 */
/* Override part of the obstack macros. */ /* Override part of the obstack macros. */
...@@ -735,6 +752,8 @@ int switch_table_difference_label_flag; ...@@ -735,6 +752,8 @@ int switch_table_difference_label_flag;
fprintf ((FILE), "jmp 8("); } \ fprintf ((FILE), "jmp 8("); } \
} }
/* phdm@info.ucl.ac.be says to pass SIZE, not ROUNDED. */
/* This says how to output an assembler line /* This says how to output an assembler line
to define a global common symbol. */ to define a global common symbol. */
...@@ -742,7 +761,7 @@ int switch_table_difference_label_flag; ...@@ -742,7 +761,7 @@ int switch_table_difference_label_flag;
#define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \ #define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \
( fputs ("\tcomm ", (FILE)), \ ( fputs ("\tcomm ", (FILE)), \
assemble_name ((FILE), (NAME)), \ assemble_name ((FILE), (NAME)), \
fprintf ((FILE), ",%u\n", (ROUNDED))) fprintf ((FILE), ",%u\n", (SIZE)))
/* This says how to output an assembler line /* This says how to output an assembler line
to define a local common symbol. */ to define a local common symbol. */
...@@ -751,7 +770,7 @@ int switch_table_difference_label_flag; ...@@ -751,7 +770,7 @@ int switch_table_difference_label_flag;
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \ #define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
( fputs ("\tlcomm ", (FILE)), \ ( fputs ("\tlcomm ", (FILE)), \
assemble_name ((FILE), (NAME)), \ assemble_name ((FILE), (NAME)), \
fprintf ((FILE), ",%u\n", (ROUNDED))) fprintf ((FILE), ",%u\n", (SIZE)))
/* Override usual definitions of SDB output macros. /* Override usual definitions of SDB output macros.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment