+2002-01-20 Kazu Hirata <kazu@hxi.com>
+
+ * config/i370/i370.c: Fix comment formatting.
+ * config/i370/i370.h: Likewise.
+ * config/i370/i370.md: Likewise.
+ * config/i370/linux.h: Likewise.
+
Sun Jan 20 18:40:14 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* dwarf2out.c (loc_descriptor_from_tree): Add TRUTH_*_EXPR cases.
/* Subroutines for insn-output.c for System/370.
- Copyright (C) 1989, 1993, 1995, 1997, 1998, 1999, 2000
+ Copyright (C) 1989, 1993, 1995, 1997, 1998, 1999, 2000, 2002
Free Software Foundation, Inc.
Contributed by Jan Stein (jan@cd.chalmers.se).
Modified for OS/390 LanguageEnvironment C by Dave Pitts (dpitts@cozx.com)
The first_ref_page is the page on which the true first ref appears.
The label_addr is an estimate of its location in the current routine,
The label_first & last_ref are estimates of where the earliest and
- latest references to this label occur. */
+ latest references to this label occur. */
typedef struct label_node
{
here += tablejump_offset;
INSN_ADDRESSES (INSN_UID (insn)) = here;
- /* check to see if this insn is a label ... */
+ /* check to see if this insn is a label ... */
if (CODE_LABEL == code)
{
int labelno = CODE_LABEL_NUMBER (insn);
/* If there is no label for this jump, then this
had better be a ADDR_VEC or an ADDR_DIFF_VEC
- and there had better be a vector of labels. */
+ and there had better be a vector of labels. */
if (!label)
{
int j;
{
label_node_t *lp;
- /* first, lets see if we already go one, if so, use that. */
+ /* first, lets see if we already go one, if so, use that. */
for (lp = label_anchor; lp; lp = lp->label_next)
{
if (lp->label_id == id) return lp;
if ((-1 != lp->first_ref_page) &&
(lp->first_ref_page != mvs_page_num))
{
- /* Yep; the first label_ref was on a different page. */
+ /* Yep; the first label_ref was on a different page. */
mvs_need_base_reload ++;
return;
}
fprintf (assembler_source, "\tDROP\t%d\n", BASE_REGISTER);
mvs_page_num++;
/* Safe to use BASR not BALR, since we are
- * not switching addressing mode here ... */
+ * not switching addressing mode here ... */
fprintf (assembler_source, "\tBASR\t%d,0\n", BASE_REGISTER);
fprintf (assembler_source, "PG%d\tEQU\t*\n", mvs_page_num);
fprintf (assembler_source, "\tUSING\t*,%d\n", BASE_REGISTER);
fprintf (assembler_source, "\t.LTORG\n");
fprintf (assembler_source, "\t.balign\t4\n");
- /* we continue execution here ... */
+ /* we continue execution here ... */
fprintf (assembler_source, ".LPGE%d:\n", mvs_page_num);
fprintf (assembler_source, "\t.DROP\t%d\n", BASE_REGISTER);
mvs_page_num++;
return 0;
}
-/* Generate a hash for a given key. */
+/* Generate a hash for a given key. */
#ifdef LONGEXTERNAL
static int
fprintf (f, "\t.using\t.,r15\n");
- /* Branch to exectuable part of prologue. */
+ /* Branch to exectuable part of prologue. */
fprintf (f, "\tB\t.LFENT%03d\n", function_label_index);
/* write the length of the stackframe */
fprintf (f, "\tLR\tr11,r2\n");
/* store callee stack pointer at 8(sp) */
- /* fprintf (f, "\tST\tsp,8(,r3)\n "); wasted cycles, no one uses this ... */
+ /* fprintf (f, "\tST\tsp,8(,r3)\n "); wasted cycles, no one uses this ... */
/* backchain -- store caller sp at 4(callee_sp) */
fprintf (f, "\tST\tr3,4(,sp)\n ");
The function epilogue should not depend on the current stack
pointer! It should use the frame pointer only. This is mandatory
because of alloca; we also take advantage of it to omit stack
- adjustments before returning. */
+ adjustments before returning. */
static void
i370_output_function_epilogue (file, l)
case MULT: /* case UMULT: */ case DIV: case UDIV: \
/* and, or and xor set the cc's the wrong way !! */ \
case AND: case IOR: case XOR: \
- /* some shifts set the CC some don't. */ \
+ /* some shifts set the CC some don't. */ \
case ASHIFT: case ASHIFTRT: \
do {} while (0); \
default: \
/* Generate case label. For HLASM we can change to the data CSECT
and put the vectors out of the code body. The assembler just
- concatenates CSECTs with the same name. */
+ concatenates CSECTs with the same name. */
#define ASM_OUTPUT_CASE_LABEL(FILE, PREFIX, NUM, TABLE) \
fprintf (FILE, "\tDS\t0F\n"); \
/* Print operand XV (an rtx) in assembler syntax to file FILE.
CODE is a letter or dot (`z' in `%z0') or 0 if no letter was specified.
- For `%' followed by punctuation, CODE is the punctuation and XV is null. */
+ For `%' followed by punctuation, CODE is the punctuation and XV is null. */
#define PRINT_OPERAND(FILE, XV, CODE) \
{ \
/* Print operand XV (an rtx) in assembler syntax to file FILE.
CODE is a letter or dot (`z' in `%z0') or 0 if no letter was specified.
- For `%' followed by punctuation, CODE is the punctuation and XV is null. */
+ For `%' followed by punctuation, CODE is the punctuation and XV is null. */
#define PRINT_OPERAND(FILE, XV, CODE) \
{ \
mvs_page_lit += 8; \
fprintf (FILE, "=D'%s'", buf); \
} \
- else /* VOIDmode !?!? strange but true ... */ \
+ else /* VOIDmode !?!? strange but true ... */ \
{ \
mvs_page_lit += 8; \
fprintf (FILE, "=XL8'%08X%08X'", \
/* Generate internal label. Since we can branch here from off page, we
must reload the base register. Note that internal labels are generated
- for loops, goto's and case labels. */
+ for loops, goto's and case labels. */
#undef ASM_OUTPUT_INTERNAL_LABEL
#define ASM_OUTPUT_INTERNAL_LABEL(FILE, PREFIX, NUM) \
{ \
count is in %cl. Some assemblers require %cl as an argument;
some don't.
- GAS requires the %cl argument, so override i386/unix.h. */
+ GAS requires the %cl argument, so override i386/unix.h. */
#undef SHIFT_DOUBLE_OMITS_COUNT
#define SHIFT_DOUBLE_OMITS_COUNT 0
;;- Machine description for GNU compiler -- System/370 version.
-;; Copyright (C) 1989, 1993, 1994, 1995, 1997, 1998, 1999, 2000
+;; Copyright (C) 1989, 1993, 1994, 1995, 1997, 1998, 1999, 2000, 2002
;; Free Software Foundation, Inc.
;; Contributed by Jan Stein (jan@cd.chalmers.se).
;; Modified for OS/390 LanguageEnvironment C by Dave Pitts (dpitts@cozx.com)
check_label_emit ();
if (REG_P (operands[0]))
{
- /* an unsigned compare to zero is always zero/not-zero... */
+ /* an unsigned compare to zero is always zero/not-zero... */
mvs_check_page (0, 4, 4);
return \"N %0,=XL4'000000FF'\";
}
check_label_emit ();
if (unsigned_jump_follows_p (insn))
{
- /* an unsigned compare to zero is always zero/not-zero... */
+ /* an unsigned compare to zero is always zero/not-zero... */
mvs_check_page (0, 4, 4);
return \"N %0,=XL4'000000FF'\";
}
"*
{
check_label_emit ();
- /* AND only sets zero/not-zero bits not the arithmetic bits ... */
+ /* AND only sets zero/not-zero bits not the arithmetic bits ... */
CC_STATUS_INIT;
mvs_check_page (0, 4, 4);
return \"N %1,=XL4'0000FFFF'\";
check_label_emit ();
if (REG_P (operands[1]))
{
- /* AND only sets zero/not-zero bits not the arithmetic bits ... */
+ /* AND only sets zero/not-zero bits not the arithmetic bits ... */
CC_STATUS_INIT;
mvs_check_page (0, 4, 4);
return \"N %0,=XL4'000000FF'\";
check_label_emit ();
if (REG_P (operands[1]))
{
- /* AND only sets zero/not-zero bits not the arithmetic bits ... */
+ /* AND only sets zero/not-zero bits not the arithmetic bits ... */
CC_STATUS_INIT;
mvs_check_page (0, 4, 4);
return \"N %0,=XL4'000000FF'\";
/* hack alert define to get dbx/gdb/dwarf to compile */
-/* problem is that host float format is not target float format. */
+/* problem is that host float format is not target float format. */
/* define REAL_ARITHMETIC for software emulation of float to
* int conversion. This seems to have somethings to do with
- * cross-compiling ... */
+ * cross-compiling ... */
#define REAL_ARITHMETIC
/* Include system common definitions */
#undef CPP_PREDEFINES
#define CPP_PREDEFINES "-DGCC -Dgcc -D__ELF__ -Dunix -Dlinux -Asystem=posix -Acpu=i370 -Amachine=i370"
-/* Options for this target machine. */
+/* Options for this target machine. */
#define LIBGCC_SPEC "libgcc.a%s"