Mercurial > hg > CbC > CbC_gcc
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" |