Commit ed03c6cd by Joseph Myers Committed by Jeff Law

pdp11.c (simple_memory_operand): Add default case in switch.

        * pdp11.c (simple_memory_operand): Add default case in switch.
        * pdp11.h (TARGET_SWITCHES): Add help strings.
        (NOTICE_UPDATE_CC): Don't include excess argument to format.
        (ASM_OUTPUT_DOUBLE_INT): Remove.

From-SVN: r26227
parent 34487bf8
1999-04-06 Joseph S. Myers <jsm28@cam.ac.uk>
* pdp11.c (simple_memory_operand): Add default case in switch.
* pdp11.h (TARGET_SWITCHES): Add help strings.
(NOTICE_UPDATE_CC): Don't include excess argument to format.
(ASM_OUTPUT_DOUBLE_INT): Remove.
Tue Apr 6 22:09:40 1999 Richard Henderson <rth@cygnus.com> Tue Apr 6 22:09:40 1999 Richard Henderson <rth@cygnus.com>
* expr.c (expand_builtin_setjmp): Put setjmp return label on * expr.c (expand_builtin_setjmp): Put setjmp return label on
......
/* Subroutines for gcc2 for pdp11. /* Subroutines for gcc2 for pdp11.
Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc. Copyright (C) 1994, 1995, 1996, 1997, 1999 Free Software Foundation, Inc.
Contributed by Michael K. Gschwind (mike@vlsivie.tuwien.ac.at). Contributed by Michael K. Gschwind (mike@vlsivie.tuwien.ac.at).
This file is part of GNU CC. This file is part of GNU CC.
...@@ -1089,6 +1089,9 @@ int simple_memory_operand(op, mode) ...@@ -1089,6 +1089,9 @@ int simple_memory_operand(op, mode)
case PLUS: case PLUS:
/* X(R0) - extra cost */ /* X(R0) - extra cost */
return 0; return 0;
default:
break;
} }
return FALSE; return FALSE;
......
/* Definitions of target machine for GNU compiler, for the pdp-11 /* Definitions of target machine for GNU compiler, for the pdp-11
Copyright (C) 1994, 1995, 1996, 1998 Free Software Foundation, Inc. Copyright (C) 1994, 1995, 1996, 1998, 1999 Free Software Foundation, Inc.
Contributed by Michael K. Gschwind (mike@vlsivie.tuwien.ac.at). Contributed by Michael K. Gschwind (mike@vlsivie.tuwien.ac.at).
This file is part of GNU CC. This file is part of GNU CC.
...@@ -61,50 +61,51 @@ int simple_memory_operand (); ...@@ -61,50 +61,51 @@ int simple_memory_operand ();
extern int target_flags; extern int target_flags;
/* Macro to define tables used to set the flags. /* Macro to define tables used to set the flags.
This is a list in braces of pairs in braces, This is a list in braces of triplets in braces,
each pair being { "NAME", VALUE } each triplet being { "NAME", VALUE, DOC }
where VALUE is the bits to set or minus the bits to clear. where VALUE is the bits to set or minus the bits to clear and DOC
is the documentation for --help (NULL if intentionally undocumented).
An empty string NAME is used to identify the default VALUE. */ An empty string NAME is used to identify the default VALUE. */
#define TARGET_SWITCHES \ #define TARGET_SWITCHES \
{ { "fpu", 1}, \ { { "fpu", 1, "Use hardware floating point" }, \
{ "soft-float", -1}, \ { "soft-float", -1, "Do not use hardware floating point" }, \
/* return float result in ac0 */\ /* return float result in ac0 */ \
{ "ac0", 2}, \ { "ac0", 2, "Return floating point results in ac0" }, \
{ "no-ac0", -2}, \ { "no-ac0", -2, "Return floating point results in memory" },\
/* is 11/40 */ \ /* is 11/40 */ \
{ "40", 4}, \ { "40", 4, "Generate code for an 11/40" }, \
{ "no-40", -4}, \ { "no-40", -4, "" }, \
/* is 11/45 */ \ /* is 11/45 */ \
{ "45", 8}, \ { "45", 8, "Generate code for an 11/45" }, \
{ "no-45", -8}, \ { "no-45", -8, "" }, \
/* is 11/10 */ \ /* is 11/10 */ \
{ "10", -12}, \ { "10", -12, "Generate code for an 11/10" }, \
/* use movstrhi for bcopy */ \ /* use movstrhi for bcopy */ \
{ "bcopy", 16}, \ { "bcopy", 16, NULL }, \
{ "bcopy-builtin", -16}, \ { "bcopy-builtin", -16, NULL }, \
/* use 32 bit for int */ \ /* use 32 bit for int */ \
{ "int32", 32}, \ { "int32", 32, "Use 32 bit int" }, \
{ "no-int16", 32}, \ { "no-int16", 32, "Use 32 bit int" }, \
{ "int16", -32}, \ { "int16", -32, "Use 16 bit int" }, \
{ "no-int32", -32}, \ { "no-int32", -32, "Use 16 bit int" }, \
/* use 32 bit for float */ \ /* use 32 bit for float */ \
{ "float32", 64}, \ { "float32", 64, "Use 32 bit float" }, \
{ "no-float64", 64}, \ { "no-float64", 64, "Use 32 bit float" }, \
{ "float64", -64}, \ { "float64", -64, "Use 64 bit float" }, \
{ "no-float32", -64}, \ { "no-float32", -64, "Use 64 bit float" }, \
/* allow abshi pattern? - can trigger "optimizations" which make code SLOW! */\ /* allow abshi pattern? - can trigger "optimizations" which make code SLOW! */\
{ "abshi", 128}, \ { "abshi", 128, NULL }, \
{ "no-abshi", -128}, \ { "no-abshi", -128, NULL }, \
/* is branching expensive - on a PDP, it's actually really cheap */ \ /* is branching expensive - on a PDP, it's actually really cheap */ \
/* this is just to play around and check what code gcc generates */ \ /* this is just to play around and check what code gcc generates */ \
{ "branch-expensive", 256}, \ { "branch-expensive", 256, NULL }, \
{ "branch-cheap", -256}, \ { "branch-cheap", -256, NULL }, \
/* split instruction and data memory? */ \ /* split instruction and data memory? */ \
{ "split", 1024 }, \ { "split", 1024, "Target has split I&D" }, \
{ "no-split", -1024 }, \ { "no-split", -1024, "Target does not have split I&D" }, \
/* default */ \ /* default */ \
{ "", TARGET_DEFAULT} \ { "", TARGET_DEFAULT, NULL} \
} }
#define TARGET_DEFAULT (1 | 8 | 128) #define TARGET_DEFAULT (1 | 8 | 128)
...@@ -398,7 +399,7 @@ enum reg_class { NO_REGS, MUL_REGS, GENERAL_REGS, LOAD_FPU_REGS, NO_LOAD_FPU_REG ...@@ -398,7 +399,7 @@ enum reg_class { NO_REGS, MUL_REGS, GENERAL_REGS, LOAD_FPU_REGS, NO_LOAD_FPU_REG
This is an initializer for a vector of HARD_REG_SET This is an initializer for a vector of HARD_REG_SET
of length N_REG_CLASSES. */ of length N_REG_CLASSES. */
#define REG_CLASS_CONTENTS {0, 0x00aa, 0x00ff, 0x0f00, 0x3000, 0x3f00, 0x3fff} #define REG_CLASS_CONTENTS {{0}, {0x00aa}, {0x00ff}, {0x0f00}, {0x3000}, {0x3f00}, {0x3fff}}
/* The same information, inverted: /* The same information, inverted:
Return the class number of the smallest class containing Return the class number of the smallest class containing
...@@ -1024,8 +1025,11 @@ extern struct rtx_def *cc0_reg_rtx; ...@@ -1024,8 +1025,11 @@ extern struct rtx_def *cc0_reg_rtx;
{ /* all bets are off */ CC_STATUS_INIT; } \ { /* all bets are off */ CC_STATUS_INIT; } \
if (cc_status.value1 && GET_CODE (cc_status.value1) == REG \ if (cc_status.value1 && GET_CODE (cc_status.value1) == REG \
&& cc_status.value2 \ && cc_status.value2 \
&& reg_overlap_mentioned_p (cc_status.value1, cc_status.value2)) \ && reg_overlap_mentioned_p (cc_status.value1, cc_status.value2)) \
printf ("here!\n", cc_status.value2 = 0); \ { \
printf ("here!\n"); \
cc_status.value2 = 0; \
} \
} }
/* Control the assembler format that we output. */ /* Control the assembler format that we output. */
...@@ -1250,8 +1254,6 @@ fprintf (FILE, "$help$: . = .+8 ; space for tmp moves!\n") \ ...@@ -1250,8 +1254,6 @@ fprintf (FILE, "$help$: . = .+8 ; space for tmp moves!\n") \
#define ASM_IDENTIFY_GCC(FILE) \ #define ASM_IDENTIFY_GCC(FILE) \
fprintf(FILE, "gcc_compiled:\n") fprintf(FILE, "gcc_compiled:\n")
#define ASM_OUTPUT_DOUBLE_INT(a,b) fprintf(a,"%d", b)
/* trampoline - how should i do it in separate i+d ? /* trampoline - how should i do it in separate i+d ?
have some allocate_trampoline magic??? have some allocate_trampoline magic???
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment