Mercurial > hg > CbC > CbC_gcc
comparison gcc/config/crx/crx.h @ 55:77e2b8dfacca gcc-4.4.5
update it from 4.4.3 to 4.5.0
author | ryoma <e075725@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 12 Feb 2010 23:39:51 +0900 |
parents | a06113de4d67 |
children | f6334be47118 |
comparison
equal
deleted
inserted
replaced
52:c156f1bd5cd9 | 55:77e2b8dfacca |
---|---|
1 /* Definitions of target machine for GNU compiler, for CRX. | 1 /* Definitions of target machine for GNU compiler, for CRX. |
2 Copyright (C) 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, | 2 Copyright (C) 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, |
3 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 | 3 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 |
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 it | 8 GCC is free software; you can redistribute it and/or modify it |
289 | 289 |
290 #define RETURN_ADDRESS_REGNUM 14 | 290 #define RETURN_ADDRESS_REGNUM 14 |
291 | 291 |
292 #define FIRST_PARM_OFFSET(FNDECL) 0 | 292 #define FIRST_PARM_OFFSET(FNDECL) 0 |
293 | 293 |
294 #define FRAME_POINTER_REQUIRED (cfun->calls_alloca) | |
295 | |
296 #define ELIMINABLE_REGS \ | 294 #define ELIMINABLE_REGS \ |
297 { \ | 295 { \ |
298 { ARG_POINTER_REGNUM, STACK_POINTER_REGNUM}, \ | 296 { ARG_POINTER_REGNUM, STACK_POINTER_REGNUM}, \ |
299 { ARG_POINTER_REGNUM, FRAME_POINTER_REGNUM}, \ | 297 { ARG_POINTER_REGNUM, FRAME_POINTER_REGNUM}, \ |
300 { FRAME_POINTER_REGNUM, STACK_POINTER_REGNUM} \ | 298 { FRAME_POINTER_REGNUM, STACK_POINTER_REGNUM} \ |
301 } | 299 } |
302 | |
303 #define CAN_ELIMINATE(FROM, TO) \ | |
304 ((TO) == STACK_POINTER_REGNUM ? ! frame_pointer_needed : 1) | |
305 | 300 |
306 #define INITIAL_ELIMINATION_OFFSET(FROM, TO, OFFSET) \ | 301 #define INITIAL_ELIMINATION_OFFSET(FROM, TO, OFFSET) \ |
307 do { \ | 302 do { \ |
308 (OFFSET) = crx_initial_elimination_offset ((FROM), (TO)); \ | 303 (OFFSET) = crx_initial_elimination_offset ((FROM), (TO)); \ |
309 } while (0) | 304 } while (0) |
371 /*****************************************************************************/ | 366 /*****************************************************************************/ |
372 /* TRAMPOLINES FOR NESTED FUNCTIONS - NOT SUPPORTED */ | 367 /* TRAMPOLINES FOR NESTED FUNCTIONS - NOT SUPPORTED */ |
373 /*****************************************************************************/ | 368 /*****************************************************************************/ |
374 | 369 |
375 #define TRAMPOLINE_SIZE 32 | 370 #define TRAMPOLINE_SIZE 32 |
376 | |
377 #define INITIALIZE_TRAMPOLINE(addr, fnaddr, static_chain) \ | |
378 { \ | |
379 sorry ("Trampoline support for CRX"); \ | |
380 } | |
381 | 371 |
382 /*****************************************************************************/ | 372 /*****************************************************************************/ |
383 /* ADDRESSING MODES */ | 373 /* ADDRESSING MODES */ |
384 /*****************************************************************************/ | 374 /*****************************************************************************/ |
385 | 375 |
402 #else | 392 #else |
403 #define REG_OK_FOR_BASE_P(X) 1 | 393 #define REG_OK_FOR_BASE_P(X) 1 |
404 #define REG_OK_FOR_INDEX_P(X) 1 | 394 #define REG_OK_FOR_INDEX_P(X) 1 |
405 #endif /* REG_OK_STRICT */ | 395 #endif /* REG_OK_STRICT */ |
406 | 396 |
407 #ifdef REG_OK_STRICT | |
408 #define GO_IF_LEGITIMATE_ADDRESS(MODE, X, LABEL) \ | |
409 { \ | |
410 if (crx_legitimate_address_p (MODE, X, 1)) \ | |
411 goto LABEL; \ | |
412 } | |
413 #else | |
414 #define GO_IF_LEGITIMATE_ADDRESS(MODE, X, LABEL) \ | |
415 { \ | |
416 if (crx_legitimate_address_p (MODE, X, 0)) \ | |
417 goto LABEL; \ | |
418 } | |
419 #endif /* REG_OK_STRICT */ | |
420 | |
421 #define GO_IF_MODE_DEPENDENT_ADDRESS(ADDR, LABEL) | |
422 | |
423 #define LEGITIMATE_CONSTANT_P(X) 1 | 397 #define LEGITIMATE_CONSTANT_P(X) 1 |
424 | 398 |
425 /*****************************************************************************/ | 399 /*****************************************************************************/ |
426 /* CONDITION CODE STATUS */ | 400 /* CONDITION CODE STATUS */ |
427 /*****************************************************************************/ | 401 /*****************************************************************************/ |
520 | 494 |
521 #define Pmode SImode | 495 #define Pmode SImode |
522 | 496 |
523 #define FUNCTION_MODE QImode | 497 #define FUNCTION_MODE QImode |
524 | 498 |
525 /*****************************************************************************/ | |
526 /* EXTERNAL DECLARATIONS FOR VARIABLES DEFINED IN CRX.C */ | |
527 /*****************************************************************************/ | |
528 | |
529 extern rtx crx_compare_op0; /* operand 0 for comparisons */ | |
530 extern rtx crx_compare_op1; /* operand 1 for comparisons */ | |
531 | |
532 #endif /* ! GCC_CRX_H */ | 499 #endif /* ! GCC_CRX_H */ |