+2001-08-02 Lars Brinkhoff <lars@nocrew.org>
+
+ * combine.c, config.gcc, cse.c, defaults.h, real.c, reload.c,
+ simplify-rtx.c, config/alpha/alpha.h, config/avr/avr.h,
+ config/convex/convex.h, config/d30v/d30v.c,
+ config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
+ config/elxsi/elxsi.h, config/fr30/fr30.h, config/m88k/m88k.c,
+ config/mips/mips.h, config/mn10200/mn10200.h,
+ config/mn10300/mn10300.h, config/pdp11/pdp11.md,
+ config/v850/v850.h, config/vax/openbsd.h,
+ config/vax/openbsd1.h, config/vax/ultrix.h,
+ config/vax/vax-protos.h, config/vax/vax.c, config/vax/vax.h,
+ config/vax/vax.md, config/vax/vaxv.h, config/vax/xm-vms.h,
+ cp/decl2.c, doc/contrib.texi, doc/cpp.texi, doc/gcc.texi,
+ doc/install.texi, doc/invoke.texi, doc/md.texi, doc/rtl.texi,
+ doc/tm.texi: consistently use "VAX", "VAXen", and "MicroVAX"
+ in comments and documentation.
+
2001-08-03 Neil Booth <neil@cat.daikokuya.demon.co.uk>
* line-map.c: New.
Return the new rtx, usually just X.
- Also, for machines like the Vax that don't have logical shift insns,
+ Also, for machines like the VAX that don't have logical shift insns,
try to convert logical to arithmetic shift operations in cases where
they are equivalent. This undoes the canonicalizations to logical
shifts done elsewhere.
/* We simplify the tests below and elsewhere by converting
ASHIFTRT to LSHIFTRT if we know the sign bit is clear.
`make_compound_operation' will convert it to a ASHIFTRT for
- those machines (such as Vax) that don't have a LSHIFTRT. */
+ those machines (such as VAX) that don't have a LSHIFTRT. */
if (GET_MODE_BITSIZE (shift_mode) <= HOST_BITS_PER_WIDE_INT
&& code == ASHIFTRT
&& ((nonzero_bits (varop, shift_mode)
c_target_objs="v850-c.o"
cxx_target_objs="v850-c.o"
;;
-vax-*-bsd*) # vaxen running BSD
+vax-*-bsd*) # VAXen running BSD
use_collect2=yes
float_format=vax
;;
-vax-*-sysv*) # vaxen running system V
+vax-*-sysv*) # VAXen running system V
tm_file="${tm_file} vax/vaxv.h"
xm_defines=POSIX
float_format=vax
float_format=vax
use_collect2=yes
;;
-vax-*-ultrix*) # vaxen running ultrix
+vax-*-ultrix*) # VAXen running ultrix
tm_file="${tm_file} vax/ultrix.h"
float_format=vax
;;
-vax-*-vms*) # vaxen running VMS
+vax-*-vms*) # VAXen running VMS
xm_file=vax/xm-vms.h
tm_file=vax/vms.h
float_format=vax
;;
-vax-*-*) # vax default entry
+vax-*-*) # VAX default entry
float_format=vax
;;
we32k-att-sysv*)
fprintf (asm_out_file, "\\%o", c); \
/* After an octal-escape, if a digit follows, \
terminate one string constant and start another. \
- The Vax assembler fails to stop reading the escape \
+ The VAX assembler fails to stop reading the escape \
after three digits, so this is the only way we \
can get it to parse the data properly. */ \
if (i < thissize - 1 \
argument popping will always be the responsibility of the calling
function.
- On the Vax, all functions always pop their arguments, so the
+ On the VAX, all functions always pop their arguments, so the
definition of this macro is STACK-SIZE. On the 68000, using the
standard calling convention, no functions pop their arguments, so
the value of the macro is always 0 in this case. But an
hard register in which to pass the argument, or zero to pass the
argument on the stack.
- For machines like the Vax and 68000, where normally all arguments
+ For machines like the VAX and 68000, where normally all arguments
are pushed, zero suffices as a definition.
The value of the expression can also be a `parallel' RTX. This is
} \
}
-/* Convex uses Vax or IEEE floats.
+/* Convex uses VAX or IEEE floats.
Follow the host format. */
#define TARGET_FLOAT_FORMAT HOST_FLOAT_FORMAT
-/* But must prevent real.c from constructing Vax dfloats */
+/* But must prevent real.c from constructing VAX dfloats */
#define REAL_VALUE_ATOF(X,S) atof (X)
/* Check a `double' value for validity for a particular machine mode. */
register in which to pass the argument, or zero to pass the argument on the
stack.
- For machines like the Vax and 68000, where normally all arguments are
+ For machines like the VAX and 68000, where normally all arguments are
pushed, zero suffices as a definition.
The usual way to make the ANSI library `stdarg.h' work on a machine where
there is no need to define this macro when the format is IEEE.
VAX_FLOAT_FORMAT'
- This code indicates the peculiar format used on the Vax.
+ This code indicates the peculiar format used on the VAX.
UNKNOWN_FLOAT_FORMAT'
This code indicates any other format.
variable number of bytes is passed, it is zero, and argument popping will
always be the responsibility of the calling function.
- On the Vax, all functions always pop their arguments, so the definition of
+ On the VAX, all functions always pop their arguments, so the definition of
this macro is STACK-SIZE. On the 68000, using the standard calling
convention, no functions pop their arguments, so the value of the macro is
always 0 in this case. But an alternative calling convention is available
register in which to pass the argument, or zero to pass the argument on the
stack.
- For machines like the Vax and 68000, where normally all arguments are
+ For machines like the VAX and 68000, where normally all arguments are
pushed, zero suffices as a definition.
The usual way to make the ANSI library `stdarg.h' work on a machine where
fprintf (asm_out_file, "%d", c); \
/* After an octal-escape, if a digit follows, \
terminate one string constant and start another. \
- The Vax assembler fails to stop reading the escape \
+ The VAX assembler fails to stop reading the escape \
after three digits, so this is the only way we \
can get it to parse the data properly. \
if (i < thissize - 1 \
/* Define this if most significant bit is lowest numbered
in instructions that operate on numbered bit-fields.
- This is not true on the vax. */
+ This is not true on the VAX. */
#define BITS_BIG_ENDIAN 0
/* Define this if most significant byte of a word is the lowest numbered. */
to hold something of mode MODE.
This is ordinarily the length in words of a value of mode MODE
but can be less for certain modes in special long registers.
- On the vax, all registers are one word long. */
+ On the VAX, all registers are one word long. */
#define HARD_REGNO_NREGS(REGNO, MODE) \
((GET_MODE_SIZE (MODE) + UNITS_PER_WORD - 1) / UNITS_PER_WORD)
For any two classes, it is very desirable that there be another
class that represents their union. */
-/* The vax has only one kind of registers, so NO_REGS and ALL_REGS
+/* The VAX has only one kind of registers, so NO_REGS and ALL_REGS
are the only classes. */
enum reg_class { NO_REGS, GENERAL_REGS, ALL_REGS, LIM_REG_CLASSES };
/* Return the maximum number of consecutive registers
needed to represent mode MODE in a register of class CLASS. */
-/* On the vax, this is always the size of MODE in words,
+/* On the VAX, this is always the size of MODE in words,
since all registers are the same size. */
#define CLASS_MAX_NREGS(CLASS, MODE) \
((GET_MODE_SIZE (MODE) + UNITS_PER_WORD - 1) / UNITS_PER_WORD)
FUNTYPE is the data type of the function (as a tree),
or for a library call it is an identifier node for the subroutine name.
- On the Vax, the RET insn always pops all the args for any function. */
+ On the VAX, the RET insn always pops all the args for any function. */
#define RETURN_POPS_ARGS(FUNDECL,FUNTYPE,SIZE) (SIZE)
If the precise function being called is known, FUNC is its FUNCTION_DECL;
otherwise, FUNC is 0. */
-/* On the Vax the return value is in R0 regardless. */
+/* On the VAX the return value is in R0 regardless. */
#define FUNCTION_VALUE(VALTYPE, FUNC) \
gen_rtx_REG (TYPE_MODE (VALTYPE), 0)
/* Define how to find the value returned by a library function
assuming the value has mode MODE. */
-/* On the Vax the return value is in R0 regardless. */
+/* On the VAX the return value is in R0 regardless. */
#define LIBCALL_VALUE(MODE) gen_rtx_REG (MODE, 0)
#define PCC_STATIC_STRUCT_RETURN
/* 1 if N is a possible register number for a function value.
- On the Vax, R0 is the only register thus used. */
+ On the VAX, R0 is the only register thus used. */
#define FUNCTION_VALUE_REGNO_P(N) ((N) == 0)
/* 1 if N is a possible register number for function argument passing.
- On the Vax, no registers are used in this way. */
+ On the VAX, no registers are used in this way. */
#define FUNCTION_ARG_REGNO_P(N) 0
\f
and about the args processed so far, enough to enable macros
such as FUNCTION_ARG to determine where the next arg should go.
- On the vax, this is a single integer, which is a number of bytes
+ On the VAX, this is a single integer, which is a number of bytes
of arguments scanned so far. */
#define CUMULATIVE_ARGS int
for a call to a function whose data type is FNTYPE.
For a library call, FNTYPE is 0.
- On the vax, the offset starts at 0. */
+ On the VAX, the offset starts at 0. */
#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,x,INDIRECT) \
((CUM) = 0)
NAMED is nonzero if this argument is a named parameter
(otherwise it is an extra parameter matching an ellipsis). */
-/* On the vax all args are pushed. */
+/* On the VAX all args are pushed. */
#define FUNCTION_ARG(CUM, MODE, TYPE, NAMED) 0
It is always safe for this macro to do nothing. It exists to recognize
opportunities to optimize the output.
- For the vax, nothing needs to be done. */
+ For the VAX, nothing needs to be done. */
#define LEGITIMIZE_ADDRESS(X,OLDX,MODE,WIN) {}
/* Tell final.c how to eliminate redundant test instructions. */
/* Here we define machine-dependent flags and fields in cc_status
- (see `conditions.h'). No extra ones are needed for the vax. */
+ (see `conditions.h'). No extra ones are needed for the VAX. */
/* Store in cc_status the expressions
that the condition codes will describe
/* #define DBX_DEBUGGING_INFO */
/* How to renumber registers for dbx and gdb.
- Vax needs no change in the numeration. */
+ VAX needs no change in the numeration. */
#define DBX_REGISTER_NUMBER(REGNO) (REGNO)
fprintf (FILE, "\tld.32\t%s,[.sp]\n\taddi.64\t4,.sp\n", reg_names[REGNO])
/* This is how to output an element of a case-vector that is absolute.
- (The Vax does not use such vectors,
+ (The VAX does not use such vectors,
but we must define this macro anyway.) */
#define ASM_OUTPUT_ADDR_VEC_ELT(FILE, VALUE) \
there is no need to define this macro when the format is IEEE.
VAX_FLOAT_FORMAT'
- This code indicates the peculiar format used on the Vax.
+ This code indicates the peculiar format used on the VAX.
UNKNOWN_FLOAT_FORMAT'
This code indicates any other format.
variable number of bytes is passed, it is zero, and argument popping will
always be the responsibility of the calling function.
- On the Vax, all functions always pop their arguments, so the definition of
+ On the VAX, all functions always pop their arguments, so the definition of
this macro is STACK-SIZE. On the 68000, using the standard calling
convention, no functions pop their arguments, so the value of the macro is
always 0 in this case. But an alternative calling convention is available
}
else if (in_escape && c >= '0' && c <= '9')
{
- /* If a digit follows an octal-escape, the Vax assembler fails
+ /* If a digit follows an octal-escape, the VAX assembler fails
to stop reading the escape after three digits. Continue to
output the values as an octal-escape until a non-digit is
found. */
/* If we generate an insn to push BYTES bytes,
this says how many the stack pointer really advances by.
- On the vax, sp@- in a byte insn really pushes a word. */
+ On the VAX, sp@- in a byte insn really pushes a word. */
/* #define PUSH_ROUNDING(BYTES) 0 */
/* Tell final.c how to eliminate redundant test instructions. */
/* Here we define machine-dependent flags and fields in cc_status
- (see `conditions.h'). No extra ones are needed for the vax. */
+ (see `conditions.h'). No extra ones are needed for the VAX. */
/* Store in cc_status the expressions
that the condition codes will describe
/* Tell final.c how to eliminate redundant test instructions. */
/* Here we define machine-dependent flags and fields in cc_status
- (see `conditions.h'). No extra ones are needed for the vax. */
+ (see `conditions.h'). No extra ones are needed for the VAX. */
/* Store in cc_status the expressions
that the condition codes will describe
[(set_attr "length" "1,2,2,3")])
;;;;- and instructions
-;; Bit-and on the pdp (like on the vax) is done with a clear-bits insn.
+;; Bit-and on the pdp (like on the VAX) is done with a clear-bits insn.
(define_expand "andsi3"
[(set (match_operand:SI 0 "general_operand" "=g")
(and:SI (match_operand:SI 1 "general_operand" "0")
/* Tell final.c how to eliminate redundant test instructions. */
/* Here we define machine-dependent flags and fields in cc_status
- (see `conditions.h'). No extra ones are needed for the vax. */
+ (see `conditions.h'). No extra ones are needed for the VAX. */
/* Store in cc_status the expressions
that the condition codes will describe
-/* Configuration fragment for a vax OpenBSD target.
+/* Configuration fragment for a VAX OpenBSD target.
Copyright (C) 2000 Free Software Foundation, Inc.
This file is part of GNU CC.
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
-/* Amend common OpenBSD definitions for vax target. */
+/* Amend common OpenBSD definitions for VAX target. */
#undef CPP_PREDEFINES
#define CPP_PREDEFINES "-D__unix__ -D__vax__ -D__OpenBSD__ -Asystem=unix -Asystem=OpenBSD -Acpu=vax -Amachine=vax"
-/* Configuration fragment for a vax OpenBSD target.
+/* Configuration fragment for a VAX OpenBSD target.
Copyright (C) 2000 Free Software Foundation, Inc.
This file is part of GNU CC.
#define CPP_PREDEFINES " -Dvax -Dunix -Dultrix -Dbsd4_2 -D__vax -D__unix -D__ultrix -D__bsd4_2 -Asystem=unix -Asystem=bsd -Acpu=vax -Amachine=vax"
/* These are as defined in /usr/include/sys/stdtypes.h.
- These values are for ultrix 4.2 on the vax. */
+ These values are for ultrix 4.2 on the VAX. */
#define SIZE_TYPE "unsigned int"
#define PTRDIFF_TYPE "int"
#define WCHAR_TYPE "unsigned int"
-/* Definitions of target machine for GNU compiler. Vax version.
+/* Definitions of target machine for GNU compiler. VAX version.
Copyright (C) 2000 Free Software Foundation, Inc.
This file is part of GNU CC.
-/* Subroutines for insn-output.c for Vax.
+/* Subroutines for insn-output.c for VAX.
Copyright (C) 1987, 1994, 1995, 1997, 1998, 1999, 2000
Free Software Foundation, Inc.
-/* Definitions of target machine for GNU compiler. Vax version.
+/* Definitions of target machine for GNU compiler. VAX version.
Copyright (C) 1987, 1988, 1991, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001 Free Software Foundation, Inc.
/* Define this if most significant bit is lowest numbered
in instructions that operate on numbered bit-fields.
- This is not true on the vax. */
+ This is not true on the VAX. */
#define BITS_BIG_ENDIAN 0
/* Define this if most significant byte of a word is the lowest numbered. */
-/* That is not true on the vax. */
+/* That is not true on the VAX. */
#define BYTES_BIG_ENDIAN 0
/* Define this if most significant word of a multiword number is the lowest
numbered. */
-/* This is not true on the vax. */
+/* This is not true on the VAX. */
#define WORDS_BIG_ENDIAN 0
/* Number of bits in an addressable storage unit */
/* 1 for registers that have pervasive standard uses
and are not available for the register allocator.
- On the vax, these are the AP, FP, SP and PC. */
+ On the VAX, these are the AP, FP, SP and PC. */
#define FIXED_REGISTERS {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1}
/* 1 for registers not available across function calls.
to hold something of mode MODE.
This is ordinarily the length in words of a value of mode MODE
but can be less for certain modes in special long registers.
- On the vax, all registers are one word long. */
+ On the VAX, all registers are one word long. */
#define HARD_REGNO_NREGS(REGNO, MODE) \
((GET_MODE_SIZE (MODE) + UNITS_PER_WORD - 1) / UNITS_PER_WORD)
/* Value is 1 if hard register REGNO can hold a value of machine-mode MODE.
- On the vax, all registers can hold all modes. */
+ On the VAX, all registers can hold all modes. */
#define HARD_REGNO_MODE_OK(REGNO, MODE) 1
/* Value is 1 if it is a good idea to tie two pseudo registers
/* Specify the registers used for certain standard purposes.
The values of these macros are register numbers. */
-/* Vax pc is overloaded on a register. */
+/* VAX pc is overloaded on a register. */
#define PC_REGNUM 15
/* Register to use for pushing function arguments. */
For any two classes, it is very desirable that there be another
class that represents their union. */
-/* The vax has only one kind of registers, so NO_REGS and ALL_REGS
+/* The VAX has only one kind of registers, so NO_REGS and ALL_REGS
are the only classes. */
enum reg_class { NO_REGS, ALL_REGS, LIM_REG_CLASSES };
/* Return the maximum number of consecutive registers
needed to represent mode MODE in a register of class CLASS. */
-/* On the vax, this is always the size of MODE in words,
+/* On the VAX, this is always the size of MODE in words,
since all registers are the same size. */
#define CLASS_MAX_NREGS(CLASS, MODE) \
((GET_MODE_SIZE (MODE) + UNITS_PER_WORD - 1) / UNITS_PER_WORD)
/* If we generate an insn to push BYTES bytes,
this says how many the stack pointer really advances by.
- On the vax, -(sp) pushes only the bytes of the operands. */
+ On the VAX, -(sp) pushes only the bytes of the operands. */
#define PUSH_ROUNDING(BYTES) (BYTES)
/* Offset of first parameter from the argument pointer register value. */
or for a library call it is an identifier node for the subroutine name.
SIZE is the number of bytes of arguments passed on the stack.
- On the Vax, the RET insn pops a maximum of 255 args for any function. */
+ On the VAX, the RET insn pops a maximum of 255 args for any function. */
#define RETURN_POPS_ARGS(FUNDECL,FUNTYPE,SIZE) \
((SIZE) > 255*4 ? 0 : (SIZE))
If the precise function being called is known, FUNC is its FUNCTION_DECL;
otherwise, FUNC is 0. */
-/* On the Vax the return value is in R0 regardless. */
+/* On the VAX the return value is in R0 regardless. */
#define FUNCTION_VALUE(VALTYPE, FUNC) \
gen_rtx_REG (TYPE_MODE (VALTYPE), 0)
/* Define how to find the value returned by a library function
assuming the value has mode MODE. */
-/* On the Vax the return value is in R0 regardless. */
+/* On the VAX the return value is in R0 regardless. */
#define LIBCALL_VALUE(MODE) gen_rtx_REG (MODE, 0)
#define PCC_STATIC_STRUCT_RETURN
/* 1 if N is a possible register number for a function value.
- On the Vax, R0 is the only register thus used. */
+ On the VAX, R0 is the only register thus used. */
#define FUNCTION_VALUE_REGNO_P(N) ((N) == 0)
/* 1 if N is a possible register number for function argument passing.
- On the Vax, no registers are used in this way. */
+ On the VAX, no registers are used in this way. */
#define FUNCTION_ARG_REGNO_P(N) 0
\f
and about the args processed so far, enough to enable macros
such as FUNCTION_ARG to determine where the next arg should go.
- On the vax, this is a single integer, which is a number of bytes
+ On the VAX, this is a single integer, which is a number of bytes
of arguments scanned so far. */
#define CUMULATIVE_ARGS int
for a call to a function whose data type is FNTYPE.
For a library call, FNTYPE is 0.
- On the vax, the offset starts at 0. */
+ On the VAX, the offset starts at 0. */
#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME,INDIRECT) \
((CUM) = 0)
NAMED is nonzero if this argument is a named parameter
(otherwise it is an extra parameter matching an ellipsis). */
-/* On the vax all args are pushed. */
+/* On the VAX all args are pushed. */
#define FUNCTION_ARG(CUM, MODE, TYPE, NAMED) 0
as of the start of the function body. This depends on the layout
of the fixed parts of the stack frame and on how registers are saved.
- On the Vax, FRAME_POINTER_REQUIRED is always 1, so the definition of this
+ On the VAX, FRAME_POINTER_REQUIRED is always 1, so the definition of this
macro doesn't matter. But it must be defined. */
#define INITIAL_FRAME_POINTER_OFFSET(DEPTH) (DEPTH) = 0;
/* Output assembler code for a block containing the constant parts
of a trampoline, leaving space for the variable parts. */
-/* On the vax, the trampoline contains an entry mask and two instructions:
+/* On the VAX, the trampoline contains an entry mask and two instructions:
.word NN
movl $STATIC,r0 (store the functions static chain)
jmp *$FUNCTION (jump to function code at address FUNCTION) */
It is always safe for this macro to do nothing. It exists to recognize
opportunities to optimize the output.
- For the vax, nothing needs to be done. */
+ For the VAX, nothing needs to be done. */
#define LEGITIMIZE_ADDRESS(X,OLDX,MODE,WIN) {}
#define TRULY_NOOP_TRUNCATION(OUTPREC, INPREC) 1
/* When a prototype says `char' or `short', really pass an `int'.
- (On the vax, this is required for system-library compatibility.) */
+ (On the VAX, this is required for system-library compatibility.) */
#define PROMOTE_PROTOTYPES 1
/* Specify the machine mode that pointers have.
/* Tell final.c how to eliminate redundant test instructions. */
/* Here we define machine-dependent flags and fields in cc_status
- (see `conditions.h'). No extra ones are needed for the vax. */
+ (see `conditions.h'). No extra ones are needed for the VAX. */
/* Store in cc_status the expressions
that the condition codes will describe
#define DBX_DEBUGGING_INFO
/* How to renumber registers for dbx and gdb.
- Vax needs no change in the numeration. */
+ VAX needs no change in the numeration. */
#define DBX_REGISTER_NUMBER(REGNO) (REGNO)
/* Output the .stabs for a C `static' variable in the data section. */
#define DBX_STATIC_STAB_DATA_SECTION
-/* Vax specific: which type character is used for type double? */
+/* VAX specific: which type character is used for type double? */
#define ASM_DOUBLE_CHAR (TARGET_G_FLOAT ? 'g' : 'd')
fprintf (FILE, "\tmovl (sp)+,%s\n", reg_names[REGNO])
/* This is how to output an element of a case-vector that is absolute.
- (The Vax does not use such vectors,
+ (The VAX does not use such vectors,
but we must define this macro anyway.) */
#define ASM_OUTPUT_ADDR_VEC_ELT(FILE, VALUE) \
h the low 16 bits of a negated constant operand
# 'd' or 'g' depending on whether dfloat or gfloat is used */
-/* The purpose of D is to get around a quirk or bug in vax assembler
+/* The purpose of D is to get around a quirk or bug in VAX assembler
whereby -1 in a 64-bit immediate operand means 0x00000000ffffffff,
which is not a 64-bit minus one. */
-;; Machine description for GNU compiler, Vax Version
+;; Machine description for GNU compiler, VAX Version
;; Copyright (C) 1987, 1988, 1991, 1994, 1995, 1996, 1998, 1999, 2000, 2001
;; Free Software Foundation, Inc.
""
"bitb %0,%1")
-;; The vax has no sCOND insns. It does have add/subtract with carry
+;; The VAX has no sCOND insns. It does have add/subtract with carry
;; which could be used to implement the sltu and sgeu patterns. However,
;; to do this properly requires a complete rewrite of the compare insns
;; to keep them together with the sltu/sgeu insns until after the
clrf %0
movf %1,%0")
-;; Some vaxes don't support this instruction.
+;; Some VAXen don't support this instruction.
;;(define_insn "movti"
;; [(set (match_operand:TI 0 "general_operand" "=g")
;; (match_operand:TI 1 "general_operand" "g"))]
clrq %0
movq %D1,%0")
-;; The VAX move instructions have space-time tradeoffs. On a microVAX
+;; The VAX move instructions have space-time tradeoffs. On a MicroVAX
;; register-register mov instructions take 3 bytes and 2 CPU cycles. clrl
;; takes 2 bytes and 3 cycles. mov from constant to register takes 2 cycles
;; if the constant is smaller than 4 bytes, 3 cycles for a longword
but it not faster on other models.
"movab #(r1),r2" is usually shorter than "addl3 #,r1,r2", and is
- faster on a VAX 3, but some VAXes (e.g. VAX 9000) will stall if
+ faster on a VAX 3, but some VAXen (e.g. VAX 9000) will stall if
a register is used in an address too soon after it is set.
Compromise by using movab only when it is shorter than the add
or the base register in the address is one of sp, ap, and fp,
; ""
; "ediv %2,%1,%0,%3")
\f
-;; Bit-and on the vax is done with a clear-bits insn.
+;; Bit-and on the VAX is done with a clear-bits insn.
(define_expand "andsi3"
[(set (match_operand:SI 0 "general_operand" "=g")
(and:SI (not:SI (match_operand:SI 1 "general_operand" "g"))
""
"mcomb %1,%0")
\f
-;; Arithmetic right shift on the vax works by negating the shift count,
+;; Arithmetic right shift on the VAX works by negating the shift count,
;; then emitting a right shift with the shift count negated. This means
;; that all actual shift counts in the RTL will be positive. This
;; prevents converting shifts to ZERO_EXTRACTs with negative positions,
return \"ashl %2,%1,%0\";
}")
-;; Arithmetic right shift on the vax works by negating the shift count.
+;; Arithmetic right shift on the VAX works by negating the shift count.
(define_expand "ashrdi3"
[(set (match_operand:DI 0 "general_operand" "=g")
(ashiftrt:DI (match_operand:DI 1 "general_operand" "g")
operands[4] = gen_lowpart (QImode, operands[2]);
}")
-;; Rotate right on the vax works by negating the shift count.
+;; Rotate right on the VAX works by negating the shift count.
(define_expand "rotrsi3"
[(set (match_operand:SI 0 "general_operand" "=g")
(rotatert:SI (match_operand:SI 1 "general_operand" "g")
-/* Definitions of target machine for GNU compiler. Vax sysV version.
+/* Definitions of target machine for GNU compiler. VAX sysV version.
Copyright (C) 1988, 1993, 1996, 2000 Free Software Foundation, Inc.
This file is part of GNU CC.
-/* Configuration for GNU C-compiler for Vax.
+/* Configuration for GNU C-compiler for VAX.
Copyright (C) 1987, 1994, 1995, 1996, 1997, 2001
Free Software Foundation, Inc.
{
*lang_f_options[j].variable = lang_f_options[j].on_value;
/* A goto here would be cleaner,
- but breaks the vax pcc. */
+ but breaks the VAX pcc. */
found = 1;
}
if (p[0] == 'n' && p[1] == 'o' && p[2] == '-'
case PC:
/* If the next insn is a CODE_LABEL followed by a jump table,
PC's value is a LABEL_REF pointing to that label. That
- lets us fold switch statements on the Vax. */
+ lets us fold switch statements on the VAX. */
if (insn && GET_CODE (insn) == JUMP_INSN)
{
rtx next = next_nonnote_insn (insn);
&& NOTE_LINE_NUMBER (p) == NOTE_INSN_LOOP_END)
break;
- /* Don't cse over a call to setjmp; on some machines (eg vax)
+ /* Don't cse over a call to setjmp; on some machines (eg VAX)
the regs restored by the longjmp come from
a later time than the setjmp. */
if (GET_CODE (p) == NOTE
fprintf (asm_out_file, "\\%o", c); \
/* After an octal-escape, if a digit follows, \
terminate one string constant and start another. \
- The Vax assembler fails to stop reading the escape \
+ The VAX assembler fails to stop reading the escape \
after three digits, so this is the only way we \
can get it to parse the data properly. */ \
if (i < thissize - 1 && ISDIGIT(p[i + 1])) \
@item
Leonard Tower wrote parts of the parser, RTL generator, and RTL
-definitions, and of the Vax machine description.
+definitions, and of the VAX machine description.
@item
Tom Tromey for internationalization support and his Java work.
You would use @samp{#error} inside of a conditional that detects a
combination of parameters which you know the program does not properly
support. For example, if you know that the program will not run
-properly on a Vax, you might write
+properly on a VAX, you might write
@example
@group
#ifdef __vax__
-#error "Won't work on Vaxen. See comments at get_last_object."
+#error "Won't work on VAXen. See comments at get_last_object."
#endif
@end group
@end example
@option{-mhc-struct-return} to tell GCC to use a convention compatible
with it.
-@cindex Vax calling convention
+@cindex VAX calling convention
@cindex Ultrix calling convention
@item
@opindex fcall-saved
<hr>
@end html
@heading @anchor{vax-dec-ultrix}vax-dec-ultrix
-Don't try compiling with Vax C (@code{vcc}). It produces incorrect code
+Don't try compiling with VAX C (@code{vcc}). It produces incorrect code
in some cases (for example, when @code{alloca} is used).
@html
some machines.}
@ifset INTERNALS
-On some machines, such as the Vax, this flag has no effect, because
+On some machines, such as the VAX, this flag has no effect, because
the standard calling sequence automatically handles the frame pointer
and nothing is saved by pretending it doesn't exist. The
machine-description macro @code{FRAME_POINTER_REQUIRED} controls
whether a target machine supports this flag. @xref{Registers}.
@end ifset
@ifclear INTERNALS
-On some machines, such as the Vax, this flag has no effect, because
+On some machines, such as the VAX, this flag has no effect, because
the standard calling sequence automatically handles the frame pointer
and nothing is saved by pretending it doesn't exist. The
machine-description macro @code{FRAME_POINTER_REQUIRED} controls
Earlier we discussed the standard option @option{-b} which chooses among
different installed compilers for completely different target
-machines, such as Vax vs.@: 68000 vs.@: 80386.
+machines, such as VAX vs.@: 68000 vs.@: 80386.
In addition, each of these target machine types can have its own
special options, starting with @samp{-m}, to choose among various
@subsection VAX Options
@cindex VAX options
-These @samp{-m} options are defined for the Vax:
+These @samp{-m} options are defined for the VAX:
@table @gcctabopt
@item -munix
@opindex munix
Do not output certain jump instructions (@code{aobleq} and so on)
-that the Unix assembler for the Vax cannot handle across long
+that the Unix assembler for the VAX cannot handle across long
ranges.
@item -mgnu
signed and unsigned comparison of the given operands. A separate branch
insn tests the condition code and branches or not according its value.
The branch insns come in distinct signed and unsigned flavors. Many
-common machines, such as the Vax, the 68000 and the 32000, work this
+common machines, such as the VAX, the 68000 and the 32000, work this
way.
Some machines have distinct signed and unsigned compare instructions, and
places. @var{x} have mode @var{m}, a fixed-point machine mode. @var{c}
be a fixed-point mode or be a constant with mode @code{VOIDmode}; which
mode is determined by the mode called for in the machine description
-entry for the left-shift instruction. For example, on the Vax, the mode
+entry for the left-shift instruction. For example, on the VAX, the mode
of @var{c} is @code{QImode} regardless of @var{m}.
@findex lshiftrt
@item (return)
As the sole expression in a pattern, represents a return from the
current function, on machines where this can be done with one
-instruction, such as Vaxes. On machines where a multi-instruction
+instruction, such as VAXen. On machines where a multi-instruction
``epilogue'' must be executed in order to return from the function,
returning is done by jumping to a label which precedes the epilogue, and
the @code{return} expression code is never used.
@findex VAX_FLOAT_FORMAT
@item VAX_FLOAT_FORMAT
-This code indicates the peculiar format used on the Vax.
+This code indicates the peculiar format used on the VAX.
@findex IBM_FLOAT_FORMAT
@item IBM_FLOAT_FORMAT
stack. If a variable number of bytes is passed, it is zero, and
argument popping will always be the responsibility of the calling function.
-On the Vax, all functions always pop their arguments, so the definition
+On the VAX, all functions always pop their arguments, so the definition
of this macro is @var{stack-size}. On the 68000, using the standard
calling convention, no functions pop their arguments, so the value of
the macro is always 0 in this case. But an alternative calling
hard register in which to pass the argument, or zero to pass the
argument on the stack.
-For machines like the Vax and 68000, where normally all arguments are
+For machines like the VAX and 68000, where normally all arguments are
pushed, zero suffices as a definition.
The value of the expression can also be a @code{parallel} RTX@. This is
{
/* Long integer overflow: output large integer
and correct fraction.
- Note, the BSD microvax compiler says that ~(0UL)
+ Note, the BSD MicroVAX compiler says that ~(0UL)
is a syntax error. */
*i = ~(0L);
eshift (xi, k);
/* Note that we take shortcuts assuming that no multi-reg machine mode
occurs as part of an address.
Also, this is not fully machine-customizable; it works for machines
- such as vaxes and 68000's and 32000's, but other possible machines
+ such as VAXen and 68000's and 32000's, but other possible machines
could have addressing modes that this does not handle right. */
static int
/* (sign_extend (truncate (minus (label_ref L1) (label_ref L2))))
becomes just the MINUS if its mode is MODE. This allows
folding switch statements on machines using casesi (such as
- the Vax). */
+ the VAX). */
if (GET_CODE (op) == TRUNCATE
&& GET_MODE (XEXP (op, 0)) == mode
&& GET_CODE (XEXP (op, 0)) == MINUS