comparison gcc/config/vax/vax.h @ 67:f6334be47118

update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
author nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
date Tue, 22 Mar 2011 17:18:12 +0900
parents 77e2b8dfacca
children 04ced10e8804
comparison
equal deleted inserted replaced
65:65488c3d617d 67:f6334be47118
1 /* Definitions of target machine for GNU compiler. VAX version. 1 /* Definitions of target machine for GNU compiler. VAX version.
2 Copyright (C) 1987, 1988, 1991, 1993, 1994, 1995, 1996, 1997, 1998, 2 Copyright (C) 1987, 1988, 1991, 1993, 1994, 1995, 1996, 1997, 1998,
3 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009 3 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010
4 Free Software Foundation, Inc. 4 Free Software Foundation, Inc.
5 5
6 This file is part of GCC. 6 This file is part of GCC.
7 7
8 GCC is free software; you can redistribute it and/or modify 8 GCC is free software; you can redistribute it and/or modify
70 70
71 #ifndef TARGET_DEFAULT 71 #ifndef TARGET_DEFAULT
72 #define TARGET_DEFAULT (MASK_UNIX_ASM) 72 #define TARGET_DEFAULT (MASK_UNIX_ASM)
73 #endif 73 #endif
74 74
75 #define OVERRIDE_OPTIONS override_options ()
76
77 75
78 /* Target machine storage layout */ 76 /* Target machine storage layout */
79 77
80 /* Define this if most significant bit is lowest numbered 78 /* Define this if most significant bit is lowest numbered
81 in instructions that operate on numbered bit-fields. 79 in instructions that operate on numbered bit-fields.
258 /* The class value for index registers, and the one for base regs. */ 256 /* The class value for index registers, and the one for base regs. */
259 257
260 #define INDEX_REG_CLASS ALL_REGS 258 #define INDEX_REG_CLASS ALL_REGS
261 #define BASE_REG_CLASS ALL_REGS 259 #define BASE_REG_CLASS ALL_REGS
262 260
263 /* Given an rtx X being reloaded into a reg required to be
264 in class CLASS, return the class of reg to actually use.
265 In general this is just CLASS; but on some machines
266 in some cases it is preferable to use a more restrictive class. */
267
268 #define PREFERRED_RELOAD_CLASS(X,CLASS) (CLASS)
269
270 /* Return the maximum number of consecutive registers 261 /* Return the maximum number of consecutive registers
271 needed to represent mode MODE in a register of class CLASS. */ 262 needed to represent mode MODE in a register of class CLASS. */
272 /* On the VAX, this is always the size of MODE in words, 263 /* On the VAX, this is always the size of MODE in words,
273 since all registers are the same size. */ 264 since all registers are the same size. */
274 #define CLASS_MAX_NREGS(CLASS, MODE) \ 265 #define CLASS_MAX_NREGS(CLASS, MODE) \
303 #define PUSH_ROUNDING(BYTES) (BYTES) 294 #define PUSH_ROUNDING(BYTES) (BYTES)
304 295
305 /* Offset of first parameter from the argument pointer register value. */ 296 /* Offset of first parameter from the argument pointer register value. */
306 #define FIRST_PARM_OFFSET(FNDECL) 4 297 #define FIRST_PARM_OFFSET(FNDECL) 4
307 298
308 /* Value is the number of bytes of arguments automatically
309 popped when returning from a subroutine call.
310 FUNDECL is the declaration node of the function (as a tree),
311 FUNTYPE is the data type of the function (as a tree),
312 or for a library call it is an identifier node for the subroutine name.
313 SIZE is the number of bytes of arguments passed on the stack.
314
315 On the VAX, the RET insn pops a maximum of 255 args for any function. */
316
317 #define RETURN_POPS_ARGS(FUNDECL,FUNTYPE,SIZE) \
318 ((SIZE) > 255 * 4 ? 0 : (SIZE))
319
320 /* Define how to find the value returned by a function. 299 /* Define how to find the value returned by a function.
321 VALTYPE is the data type of the value (as a tree). 300 VALTYPE is the data type of the value (as a tree).
322 If the precise function being called is known, FUNC is its FUNCTION_DECL; 301 If the precise function being called is known, FUNC is its FUNCTION_DECL;
323 otherwise, FUNC is 0. */ 302 otherwise, FUNC is 0. */
324 303
366 345
367 On the VAX, the offset starts at 0. */ 346 On the VAX, the offset starts at 0. */
368 347
369 #define INIT_CUMULATIVE_ARGS(CUM, FNTYPE, LIBNAME, INDIRECT, N_NAMED_ARGS) \ 348 #define INIT_CUMULATIVE_ARGS(CUM, FNTYPE, LIBNAME, INDIRECT, N_NAMED_ARGS) \
370 ((CUM) = 0) 349 ((CUM) = 0)
371
372 /* Update the data in CUM to advance over an argument
373 of mode MODE and data type TYPE.
374 (TYPE is null for libcalls where that information may not be available.) */
375
376 #define FUNCTION_ARG_ADVANCE(CUM, MODE, TYPE, NAMED) \
377 ((CUM) += ((MODE) != BLKmode \
378 ? (GET_MODE_SIZE (MODE) + 3) & ~3 \
379 : (int_size_in_bytes (TYPE) + 3) & ~3))
380
381 /* Define where to put the arguments to a function.
382 Value is zero to push the argument on the stack,
383 or a hard register in which to store the argument.
384
385 MODE is the argument's machine mode.
386 TYPE is the data type of the argument (as a tree).
387 This is null for libcalls where that information may
388 not be available.
389 CUM is a variable of type CUMULATIVE_ARGS which gives info about
390 the preceding args and about the function being called.
391 NAMED is nonzero if this argument is a named parameter
392 (otherwise it is an extra parameter matching an ellipsis). */
393
394 /* On the VAX all args are pushed. */
395
396 #define FUNCTION_ARG(CUM, MODE, TYPE, NAMED) 0
397 350
398 /* Output assembler code to FILE to increment profiler label # LABELNO 351 /* Output assembler code to FILE to increment profiler label # LABELNO
399 for profiling a function entry. */ 352 for profiling a function entry. */
400 353
401 #define VAX_FUNCTION_PROFILER_NAME "mcount" 354 #define VAX_FUNCTION_PROFILER_NAME "mcount"