* config/alpha/alpha-interix.h: Fix comment formatting.
* config/alpha/alpha.c: Likewise.
* config/alpha/alpha.h: Likewise.
* config/alpha/alpha32.h: Likewise.
* config/alpha/freebsd.h: Likewise.
* config/alpha/unicosmk.h: Likewise.
* config/alpha/vms.h: Likewise.
From-SVN: r46949
+2001-11-12 Kazu Hirata <kazu@hxi.com>
+
+ * config/alpha/alpha-interix.h: Fix comment formatting.
+ * config/alpha/alpha.c: Likewise.
+ * config/alpha/alpha.h: Likewise.
+ * config/alpha/alpha32.h: Likewise.
+ * config/alpha/freebsd.h: Likewise.
+ * config/alpha/unicosmk.h: Likewise.
+ * config/alpha/vms.h: Likewise.
+
2001-11-12 Kazu Hirata <kazu@hxi.com>
* config/h8300/h8300.c (get_shift_alg): Remove redundant code.
#define INT_ASM_OP "\t.long\t"
/* The linker will take care of this, and having them causes problems with
- ld -r (specifically -rU). */
+ ld -r (specifically -rU). */
#define CTOR_LISTS_DEFINED_EXTERNALLY 1
#define SET_ASM_OP "\t.set\t"
#define PCC_BITFIELD_TYPE_TEST TYPE_NATIVE(rec)
#define GROUP_BITFIELDS_BY_ALIGN TYPE_NATIVE(rec)
-/* DWARF2 Unwinding doesn't work with exception handling yet. */
+/* DWARF2 Unwinding doesn't work with exception handling yet. */
#undef DWARF2_UNWIND_INFO
#define DWARF2_UNWIND_INFO 0
-/* Don't assume anything about the header files. */
+/* Don't assume anything about the header files. */
#define NO_IMPLICIT_EXTERN_C
/* The definition of this macro implies that there are cases where
On NT (according to the spec) anything except strings/array that fits
in 64 bits is returned in the registers (this appears to differ from
- the rest of the Alpha family). */
+ the rest of the Alpha family). */
#undef RETURN_IN_MEMORY
#define RETURN_IN_MEMORY(TYPE) \
}
/* The current Interix assembler (consistent with the DEC documentation)
- uses a=b NOT .set a,b; .set is for assembler options. */
+ uses a=b NOT .set a,b; .set is for assembler options. */
#undef ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL
#define ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL(FILE, SY, HI, LO) \
do { \
/* External data. */
extern int rtx_equal_function_value_matters;
-/* Specify which cpu to schedule for. */
+/* Specify which cpu to schedule for. */
enum processor_type alpha_cpu;
static const char * const alpha_cpu_name[] =
struct gcc_target targetm = TARGET_INITIALIZER;
\f
-/* Parse target option strings. */
+/* Parse target option strings. */
void
override_options ()
error ("bad value `%s' for -mcpu switch", alpha_tune_string);
}
- /* Do some sanity checks on the above options. */
+ /* Do some sanity checks on the above options. */
if (TARGET_ABI_UNICOSMK && alpha_fptm != ALPHA_FPTM_N)
{
{
{ 3, 30, -1 }, /* ev4 -- Bcache is a guess */
{ 2, 12, 38 }, /* ev5 -- Bcache from PC164 LMbench numbers */
- { 3, 12, 30 }, /* ev6 -- Bcache from DS20 LMbench. */
+ { 3, 12, 30 }, /* ev6 -- Bcache from DS20 LMbench. */
};
lat = alpha_mlat_string[1] - '0';
/* Align labels and loops for optimal branching. */
/* ??? Kludge these by not doing anything if we don't optimize and also if
- we are writing ECOFF symbols to work around a bug in DEC's assembler. */
+ we are writing ECOFF symbols to work around a bug in DEC's assembler. */
if (optimize > 0 && write_symbols != SDB_DEBUG)
{
if (align_loops <= 0)
case SUBREG:
if (register_operand (op, mode))
return 1;
- /* ... fall through ... */
+ /* ... fall through ... */
case MEM:
return ((TARGET_BWX || (mode != HImode && mode != QImode))
&& general_operand (op, mode));
rtx pat;
int i;
- /* Try 1 insn, then 2, then up to N. */
+ /* Try 1 insn, then 2, then up to N. */
for (i = 1; i <= n; i++)
if ((pat = alpha_emit_set_const_1 (target, mode, c, i)) != 0)
return pat;
/* If this is a sign-extended 32-bit constant, we can do this in at most
three insns, so do it if we have enough insns left. We always have
- a sign-extended 32-bit constant when compiling on a narrow machine. */
+ a sign-extended 32-bit constant when compiling on a narrow machine. */
if (HOST_BITS_PER_WIDE_INT != 64
|| c >> 31 == -1 || c >> 31 == 0)
/* Now try high-order 1 bits. We get that with a sign-extension.
But one bit isn't enough here. Be careful to avoid shifting outside
- the mode and to avoid shifting outside the host wide int size. */
+ the mode and to avoid shifting outside the host wide int size. */
if ((bits = (MIN (HOST_BITS_PER_WIDE_INT, GET_MODE_SIZE (mode) * 8)
- floor_log2 (~ c) - 2)) > 0)
case NE:
case ORDERED:
- /* These must be reversed. */
+ /* These must be reversed. */
cmp_code = reverse_condition (code), branch_code = EQ;
break;
a conditional move (if_then_else CMP ...).
If both of the operands that set cc0 are non-zero we must emit
an insn to perform the compare (it can't be done within
- the conditional move). */
+ the conditional move). */
rtx
alpha_emit_conditional_move (cmp, mode)
rtx cmp;
}
/* We may be able to use a conditional move directly.
- This avoids emitting spurious compares. */
+ This avoids emitting spurious compares. */
if (signed_comparison_operator (cmp, VOIDmode)
&& (!fp_p || local_fast_math)
&& (op0 == CONST0_RTX (cmp_mode) || op1 == CONST0_RTX (cmp_mode)))
break;
case NE:
- /* This must be reversed. */
+ /* This must be reversed. */
code = reverse_condition (code);
cmov_code = EQ;
break;
if (f == 0 && exact_log2 (diff) > 0
/* On EV6, we've got enough shifters to make non-arithmatic shifts
viable over a longer latency cmove. On EV5, the E0 slot is a
- scarce resource, and on EV4 shift has the same latency as a cmove. */
+ scarce resource, and on EV4 shift has the same latency as a cmove. */
&& (diff <= 8 || alpha_cpu == PROCESSOR_EV6))
{
tmp = gen_rtx_fmt_ee (code, DImode, cond, const0_rtx);
break;
}
- /* Otherwise, return the default cost. */
+ /* Otherwise, return the default cost. */
return cost;
}
\f
/* Return the trap mode suffix applicable to the current
- instruction, or NULL. */
+ instruction, or NULL. */
static const char *
get_trap_mode_suffix ()
}
/* Return the rounding mode suffix applicable to the current
- instruction, or NULL. */
+ instruction, or NULL. */
static const char *
get_round_mode_suffix ()
emit_move_insn (gen_rtx_MEM (mode, addr), cxt);
/* This has been disabled since the hint only has a 32k range, and in
- no existing OS is the stack within 32k of the text segment. */
+ no existing OS is the stack within 32k of the text segment. */
if (0 && jmpofs >= 0)
{
/* Compute hint value. */
/* These variables are used for communication between the following functions.
They indicate various things about the current function being compiled
that are used to tell what kind of prologue, epilogue and procedure
- descriptior to generate. */
+ descriptior to generate. */
/* Nonzero if we need a stack procedure. */
static int alpha_is_stack_procedure;
{
/* Set flags in procedure descriptor to request IEEE-conformant
math-library routines. The value we set it to is PDSC_EXC_IEEE
- (/usr/include/pdsc.h). */
+ (/usr/include/pdsc.h). */
fputs ("\t.eflag 48\n", file);
}
FRP (emit_move_insn (sa_reg, sa_reg_exp));
}
- /* Restore registers in order, excepting a true frame pointer. */
+ /* Restore registers in order, excepting a true frame pointer. */
mem = gen_rtx_MEM (DImode, plus_constant (sa_reg, reg_offset));
if (! eh_ofs)
{
ALPHA_TP_PROG, /* No precision (default). */
ALPHA_TP_FUNC, /* Trap contained within originating function. */
- ALPHA_TP_INSN /* Instruction accuracy and code is resumption safe. */
+ ALPHA_TP_INSN /* Instruction accuracy and code is resumption safe. */
};
enum alpha_fp_rounding_mode
{
ALPHA_FPRM_NORM, /* Normal rounding mode. */
ALPHA_FPRM_MINF, /* Round towards minus-infinity. */
- ALPHA_FPRM_CHOP, /* Chopped rounding mode (towards 0). */
+ ALPHA_FPRM_CHOP, /* Chopped rounding mode (towards 0). */
ALPHA_FPRM_DYN /* Dynamic rounding mode. */
};
enum alpha_fp_trap_mode
{
- ALPHA_FPTM_N, /* Normal trap mode. */
+ ALPHA_FPTM_N, /* Normal trap mode. */
ALPHA_FPTM_U, /* Underflow traps enabled. */
ALPHA_FPTM_SU, /* Software completion, w/underflow traps */
ALPHA_FPTM_SUI /* Software completion, w/underflow & inexact traps */
#define MASK_GAS (1 << 2)
#define TARGET_GAS (target_flags & MASK_GAS)
-/* This means that we should mark procedures as IEEE conformant. */
+/* This means that we should mark procedures as IEEE conformant. */
#define MASK_IEEE_CONFORMANT (1 << 3)
#define TARGET_IEEE_CONFORMANT (target_flags & MASK_IEEE_CONFORMANT)
/* Attempt to describe CPU characteristics to the preprocessor. */
-/* Corresponding to amask... */
+/* Corresponding to amask... */
#define CPP_AM_BWX_SPEC "-D__alpha_bwx__ -Acpu=bwx"
#define CPP_AM_MAX_SPEC "-D__alpha_max__ -Acpu=max"
#define CPP_AM_FIX_SPEC "-D__alpha_fix__ -Acpu=fix"
#define CPP_AM_CIX_SPEC "-D__alpha_cix__ -Acpu=cix"
-/* Corresponding to implver... */
+/* Corresponding to implver... */
#define CPP_IM_EV4_SPEC "-D__alpha_ev4__ -Acpu=ev4"
#define CPP_IM_EV5_SPEC "-D__alpha_ev5__ -Acpu=ev5"
#define CPP_IM_EV6_SPEC "-D__alpha_ev6__ -Acpu=ev6"
\f
/* target machine storage layout */
-/* Define to enable software floating point emulation. */
+/* Define to enable software floating point emulation. */
#define REAL_ARITHMETIC
/* Define the size of `int'. The default is the same as the word size. */
numbered.
For Alpha we can decide arbitrarily since there are no machine instructions
- for them. Might as well be consistent with bytes. */
+ for them. Might as well be consistent with bytes. */
#define WORDS_BIG_ENDIAN 0
/* number of bits in an addressable storage unit */
#define N_REG_CLASSES (int) LIM_REG_CLASSES
-/* Give names of register classes as strings for dump file. */
+/* Give names of register classes as strings for dump file. */
#define REG_CLASS_NAMES \
{"NO_REGS", "R24_REG", "R25_REG", "R27_REG", \
QImode and HImode from an aligned address to a general register
unless byte instructions are permitted.
We also cannot load an unaligned address or a paradoxical SUBREG into an
- FP register. */
+ FP register. */
#define SECONDARY_INPUT_RELOAD_CLASS(CLASS,MODE,IN) \
secondary_reload_class((CLASS), (MODE), (IN), 1)
We have two registers that can be eliminated on the Alpha. First, the
frame pointer register can often be eliminated in favor of the stack
pointer register. Secondly, the argument pointer register can always be
- eliminated; it is replaced with either the stack or frame pointer. */
+ eliminated; it is replaced with either the stack or frame pointer. */
/* This is an array of structures. Each structure initializes one pair
of eliminable registers. The "from" register number is given first,
reference. If nonzero for an argument, a copy of that argument is
made in memory and a pointer to the argument is passed instead of
the argument itself. The pointer is passed in whatever way is
- appropriate for passing a pointer to that type. */
+ appropriate for passing a pointer to that type. */
#define FUNCTION_ARG_PASS_BY_REFERENCE(CUM, MODE, TYPE, NAMED) \
((MODE) == TFmode || (MODE) == TCmode)
/* Output assembler code to FILE to initialize this source file's
basic block profiling info, if that has not already been done.
- This assumes that __bb_init_func doesn't garble a1-a5. */
+ This assumes that __bb_init_func doesn't garble a1-a5. */
#define FUNCTION_BLOCK_PROFILER(FILE, LABELNO) \
do { \
#define RETURN_ADDR_RTX alpha_return_addr
-/* Before the prologue, RA lives in $26. */
+/* Before the prologue, RA lives in $26. */
#define INCOMING_RETURN_ADDR_RTX gen_rtx_REG (Pmode, 26)
#define DWARF_FRAME_RETURN_COLUMN DWARF_FRAME_REGNUM (26)
that may eliminate to the frame pointer. These will be allowed to
have offsets greater than 32K. This is done because register
elimination offsets will change the hi/lo split, and if we split
- before reload, we will require additional instructions. */
+ before reload, we will require additional instructions. */
#define NONSTRICT_REG_OK_FP_BASE_P(X) \
(REGNO (X) == 31 || REGNO (X) == 63 \
|| (REGNO (X) >= FIRST_PSEUDO_REGISTER \
#define ADDRESS_COST(X) 0
-/* Machine-dependent reorg pass. */
+/* Machine-dependent reorg pass. */
#define MACHINE_DEPENDENT_REORG(X) alpha_reorg(X)
\f
/* Specify the machine mode that this machine uses
move-instruction pairs, we will do a movstr or libcall instead.
Without byte/word accesses, we want no more than four instructions;
- with, several single byte accesses are better. */
+ with, several single byte accesses are better. */
#define MOVE_RATIO (TARGET_BWX ? 7 : 2)
between pointers and any other objects of this machine mode. */
#define Pmode DImode
-/* Mode of a function address in a call instruction (for indexing purposes). */
+/* Mode of a function address in a call instruction (for indexing purposes). */
#define FUNCTION_MODE Pmode
#define NO_FUNCTION_CSE
/* Define this to be nonzero if shift instructions ignore all but the low-order
- few bits. */
+ few bits. */
#define SHIFT_COUNT_TRUNCATED 1
/* Compute the cost of computing a constant rtl expression RTX
if (GET_CODE (XEXP (X, 1)) == CONST_INT \
&& INTVAL (XEXP (X, 1)) <= 3) \
break; \
- /* ... fall through ... */ \
+ /* ... fall through ... */ \
case ASHIFTRT: case LSHIFTRT: \
switch (alpha_cpu) \
{ \
case NEG: case ABS: \
if (! FLOAT_MODE_P (GET_MODE (X))) \
break; \
- /* ... fall through ... */ \
+ /* ... fall through ... */ \
case FLOAT: case UNSIGNED_FLOAT: case FIX: case UNSIGNED_FIX: \
case FLOAT_EXTEND: case FLOAT_TRUNCATE: \
switch (alpha_cpu) \
/* If a variable is weakened, made one only or moved into a different
section, it may be necessary to redo the section info to move the
- variable out of sdata. */
+ variable out of sdata. */
#define REDO_SECTION_INFO_P(DECL) \
((TREE_CODE (DECL) == VAR_DECL) \
#define ASM_GLOBALIZE_LABEL(FILE,NAME) \
do { fputs ("\t.globl ", FILE); assemble_name (FILE, NAME); fputs ("\n", FILE);} while (0)
-/* The prefix to add to user-visible assembler symbols. */
+/* The prefix to add to user-visible assembler symbols. */
#define USER_LABEL_PREFIX ""
/* This is how to output a label for a jump table. Arguments are the same as
for ASM_OUTPUT_INTERNAL_LABEL, except the insn for the jump table is
- passed. */
+ passed. */
#define ASM_OUTPUT_CASE_LABEL(FILE,PREFIX,NUM,TABLEINSN) \
{ ASM_OUTPUT_ALIGN (FILE, 2); ASM_OUTPUT_INTERNAL_LABEL (FILE, PREFIX, NUM); }
mips-tdump.c to print them out.
These must match the corresponding definitions in gdb/mipsread.c.
- Unfortunately, gcc and gdb do not currently share any directories. */
+ Unfortunately, gcc and gdb do not currently share any directories. */
#define CODE_MASK 0x8F300
#define MIPS_IS_STAB(sym) (((sym)->index & 0xFFF00) == CODE_MASK)
/* The system headers under Alpha systems are generally C++-aware. */
#define NO_IMPLICIT_EXTERN_C
-/* Generate calls to memcpy, etc., not bcopy, etc. */
+/* Generate calls to memcpy, etc., not bcopy, etc. */
#define TARGET_MEM_FUNCTIONS 1
/* WinNT (and thus Interix) use unsigned int */
#define SIZE_TYPE "unsigned int"
-/* Pointer is 32 bits but the hardware has 64-bit addresses, sign extended. */
+/* Pointer is 32 bits but the hardware has 64-bit addresses, sign extended. */
#undef POINTER_SIZE
#define POINTER_SIZE 32
#define POINTERS_EXTEND_UNSIGNED 0
/* Emit RTL insns to initialize the variable parts of a trampoline.
FNADDR is an RTX for the address of the function's pure code.
- CXT is an RTX for the static chain value for the function. */
+ CXT is an RTX for the static chain value for the function. */
#undef INITIALIZE_TRAMPOLINE
#define INITIALIZE_TRAMPOLINE(TRAMP, FNADDR, CXT) \
/* Output assembler code to FILE to increment profiler label # LABELNO
for profiling a function entry. Under FreeBSD/Alpha, the assembler does
- nothing special with -pg. */
+ nothing special with -pg. */
#undef FUNCTION_PROFILER
#define FUNCTION_PROFILER(FILE, LABELNO) \
#undef INT_TYPE_SIZE
#define INT_TYPE_SIZE 64
-/* This is consistent with the definition Cray CC uses. */
+/* This is consistent with the definition Cray CC uses. */
#undef WCHAR_TYPE
#define WCHAR_TYPE "int"
#undef WCHAR_TYPE_SIZE
#undef FUNCTION_ARG_PADDING
-/* An argument is passed either entirely in registers or entirely on stack. */
+/* An argument is passed either entirely in registers or entirely on stack. */
#undef FUNCTION_ARG_PARTIAL_NREGS
/* #define FUNCTION_ARG_PARTIAL_NREGS(CUM,MODE,TYPE,NAMED) 0 */
\f
/* Specify the machine mode that this machine uses for the index in the
tablejump instruction. On Unicos/Mk, we don't support relative case
- vectors yet, thus the entries should be absolute addresses. */
+ vectors yet, thus the entries should be absolute addresses. */
#undef CASE_VECTOR_MODE
#define CASE_VECTOR_MODE DImode
#undef ASM_FILE_END
#define ASM_FILE_END(FILE) unicosmk_asm_file_end (FILE)
-/* We take care of that in ASM_FILE_START. */
+/* We take care of that in ASM_FILE_START. */
#undef ASM_OUTPUT_SOURCE_FILENAME
%{!static:%{shared:-shared} %{!shared:-call_shared}} %{pg} %{taso} \
%{rpath*}"
-/* We allow $'s in identifiers unless -ansi is used .. */
+/* We allow $'s in identifiers unless -ansi is used .. */
#define DOLLARS_IN_IDENTIFIERS 2
#undef LONG_TYPE_SIZE
#define LONG_TYPE_SIZE 32
-/* Pointer is 32 bits but the hardware has 64-bit addresses, sign extended. */
+/* Pointer is 32 bits but the hardware has 64-bit addresses, sign extended. */
#undef POINTER_SIZE
#define POINTER_SIZE 32
#define POINTERS_EXTEND_UNSIGNED 0
However, if NO registers need to be saved, don't allocate any space.
This is not only because we won't need the space, but because AP includes
the current_pretend_args_size and we don't want to mess up any
- ap-relative addresses already made. */
+ ap-relative addresses already made. */
#undef SETUP_INCOMING_VARARGS
#define SETUP_INCOMING_VARARGS(CUM,MODE,TYPE,PRETEND_SIZE,NO_RTL) \