diff options
author | Zack Weinberg <zack@gcc.gnu.org> | 2002-12-16 18:23:00 +0000 |
---|---|---|
committer | Zack Weinberg <zack@gcc.gnu.org> | 2002-12-16 18:23:00 +0000 |
commit | 4977bab6ed59f01c73f9c8b9e92298706df9b6d5 (patch) | |
tree | c259697c448b0c6f548f153c48c46a8d7a75970f /gcc/config/dsp16xx | |
parent | b51dc045004ee7eb8d2bf4358ddf22a6cc6c1d00 (diff) | |
download | gcc-4977bab6ed59f01c73f9c8b9e92298706df9b6d5.zip gcc-4977bab6ed59f01c73f9c8b9e92298706df9b6d5.tar.gz gcc-4977bab6ed59f01c73f9c8b9e92298706df9b6d5.tar.bz2 |
Merge basic-improvements-branch to trunk
From-SVN: r60174
Diffstat (limited to 'gcc/config/dsp16xx')
-rw-r--r-- | gcc/config/dsp16xx/dsp16xx-protos.h | 2 | ||||
-rw-r--r-- | gcc/config/dsp16xx/dsp16xx.c | 4 | ||||
-rw-r--r-- | gcc/config/dsp16xx/dsp16xx.h | 25 | ||||
-rw-r--r-- | gcc/config/dsp16xx/dsp16xx.md | 130 |
4 files changed, 70 insertions, 91 deletions
diff --git a/gcc/config/dsp16xx/dsp16xx-protos.h b/gcc/config/dsp16xx/dsp16xx-protos.h index a2f68af..c2a2584 100644 --- a/gcc/config/dsp16xx/dsp16xx-protos.h +++ b/gcc/config/dsp16xx/dsp16xx-protos.h @@ -81,7 +81,7 @@ extern void asm_output_float PARAMS ((FILE *, double)); extern void dsp16xx_file_start PARAMS ((void)); extern void coff_dsp16xx_file_start PARAMS ((FILE *)); extern void luxworks_dsp16xx_file_start PARAMS ((FILE *)); -extern struct rtx_def *(*dsp16xx_compare_gen) PARAMS (()); +extern bool dsp16xx_compare_gen; extern int hard_regno_mode_ok PARAMS ((int, enum machine_mode)); extern enum reg_class dsp16xx_reg_class_from_letter PARAMS ((int)); extern int regno_reg_class PARAMS ((int)); diff --git a/gcc/config/dsp16xx/dsp16xx.c b/gcc/config/dsp16xx/dsp16xx.c index b031aa2..3b9f752 100644 --- a/gcc/config/dsp16xx/dsp16xx.c +++ b/gcc/config/dsp16xx/dsp16xx.c @@ -22,6 +22,8 @@ Boston, MA 02111-1307, USA. */ /* Some output-actions in dsp1600.md need these. */ #include "config.h" #include "system.h" +#include "coretypes.h" +#include "tm.h" #include "rtl.h" #include "regs.h" #include "hard-reg-set.h" @@ -58,7 +60,7 @@ const char *save_chip_name; rtx dsp16xx_compare_op0; rtx dsp16xx_compare_op1; -rtx (*dsp16xx_compare_gen) PARAMS (()); +bool dsp16xx_compare_gen; static const char *fp; static const char *sp; diff --git a/gcc/config/dsp16xx/dsp16xx.h b/gcc/config/dsp16xx/dsp16xx.h index c530a02..fbbf50e 100644 --- a/gcc/config/dsp16xx/dsp16xx.h +++ b/gcc/config/dsp16xx/dsp16xx.h @@ -1288,9 +1288,6 @@ extern struct dsp16xx_frame_info current_frame_info; #define HAVE_POST_INCREMENT 1 #define HAVE_POST_DECREMENT 1 -/* #define HAVE_PRE_DECREMENT 0 */ -/* #define HAVE_PRE_INCREMENT 0 */ - /* Recognize any constant value that is a valid address. */ #define CONSTANT_ADDRESS_P(X) CONSTANT_P (X) @@ -1642,22 +1639,7 @@ extern struct dsp16xx_frame_info current_frame_info; } \ while (0) -/* Store in OUTPUT a string (made with alloca) containing - an assembler-name for a local static variable or function - named NAME. LABELNO is an integer which is different for - each call. */ - -#define ASM_FORMAT_PRIVATE_NAME(OUTPUT, NAME, LABELNO) \ - do { \ - int len = strlen (NAME); \ - char *temp = (char *) alloca (len + 3); \ - temp[0] = 'L'; \ - strcpy (&temp[1], (NAME)); \ - temp[len + 1] = '_'; \ - temp[len + 2] = 0; \ - (OUTPUT) = (char *) alloca (strlen (NAME) + 11); \ - ASM_GENERATE_INTERNAL_LABEL (OUTPUT, temp, LABELNO); \ - } while (0) +#define ASM_PN_FORMAT "*L%s_%lu" /* OUTPUT OF UNINITIALIZED VARIABLES */ @@ -1702,11 +1684,6 @@ extern struct dsp16xx_frame_info current_frame_info; #define USER_LABEL_PREFIX "_" -/* This is how to output an internal numbered label where - PREFIX is the class of label and NUM is the number within the class. */ -#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM) \ - fprintf (FILE, "%s%d:\n", PREFIX, NUM) - /* This is how to store into the string LABEL the symbol_ref name of an internal numbered label where PREFIX is the class of label and NUM is the number within the class. diff --git a/gcc/config/dsp16xx/dsp16xx.md b/gcc/config/dsp16xx/dsp16xx.md index 89c09a1..fdb71de 100644 --- a/gcc/config/dsp16xx/dsp16xx.md +++ b/gcc/config/dsp16xx/dsp16xx.md @@ -70,7 +70,7 @@ "" " { - dsp16xx_compare_gen = gen_tst_reg; + dsp16xx_compare_gen = false; dsp16xx_compare_op0 = operands[0]; dsp16xx_compare_op1 = const0_rtx; DONE; @@ -89,7 +89,7 @@ "" " { - dsp16xx_compare_gen = gen_tst_reg; + dsp16xx_compare_gen = false; dsp16xx_compare_op0 = operands[0]; dsp16xx_compare_op1 = const0_rtx; DONE; @@ -181,7 +181,7 @@ if (GET_CODE (operands[1]) == CONST_INT) operands[1] = force_reg (HImode, operands[1]); - dsp16xx_compare_gen = gen_compare_reg; + dsp16xx_compare_gen = true; dsp16xx_compare_op0 = operands[0]; dsp16xx_compare_op1 = operands[1]; DONE; @@ -266,7 +266,7 @@ { if (operands[0]) /* Avoid unused code warning */ { - dsp16xx_compare_gen = gen_compare_reg; + dsp16xx_compare_gen = true; dsp16xx_compare_op0 = operands[0]; dsp16xx_compare_op1 = operands[1]; DONE; @@ -433,7 +433,7 @@ if (!dsp16xx_cmphf3_libcall) dsp16xx_cmphf3_libcall = gen_rtx_SYMBOL_REF (Pmode, CMPHF3_LIBCALL); - dsp16xx_compare_gen = gen_compare_reg; + dsp16xx_compare_gen = true; dsp16xx_compare_op0 = operands[0]; dsp16xx_compare_op1 = operands[1]; emit_library_call (dsp16xx_cmphf3_libcall, 1, HImode, 2, @@ -2397,10 +2397,10 @@ "" " { - if (dsp16xx_compare_gen == gen_compare_reg) - operands[1] = (*dsp16xx_compare_gen)(EQ, dsp16xx_compare_op0, dsp16xx_compare_op1); + if (dsp16xx_compare_gen) + operands[1] = gen_compare_reg (EQ, dsp16xx_compare_op0, dsp16xx_compare_op1); else - operands[1] = (*dsp16xx_compare_gen)(dsp16xx_compare_op0); + operands[1] = gen_tst_reg (dsp16xx_compare_op0); }") (define_expand "sne" @@ -2409,10 +2409,10 @@ "" " { - if (dsp16xx_compare_gen == gen_compare_reg) - operands[1] = (*dsp16xx_compare_gen)(NE, dsp16xx_compare_op0, dsp16xx_compare_op1); + if (dsp16xx_compare_gen) + operands[1] = gen_compare_reg (NE, dsp16xx_compare_op0, dsp16xx_compare_op1); else - operands[1] = (*dsp16xx_compare_gen)(dsp16xx_compare_op0); + operands[1] = gen_tst_reg (dsp16xx_compare_op0); }") @@ -2422,10 +2422,10 @@ "" " { - if (dsp16xx_compare_gen == gen_compare_reg) - operands[1] = (*dsp16xx_compare_gen)(GT, dsp16xx_compare_op0, dsp16xx_compare_op1); + if (dsp16xx_compare_gen) + operands[1] = gen_compare_reg (GT, dsp16xx_compare_op0, dsp16xx_compare_op1); else - operands[1] = (*dsp16xx_compare_gen)(dsp16xx_compare_op0); + operands[1] = gen_tst_reg (dsp16xx_compare_op0); }") @@ -2435,10 +2435,10 @@ "" " { - if (dsp16xx_compare_gen == gen_compare_reg) - operands[1] = (*dsp16xx_compare_gen)(LT, dsp16xx_compare_op0, dsp16xx_compare_op1); + if (dsp16xx_compare_gen) + operands[1] = gen_compare_reg (LT, dsp16xx_compare_op0, dsp16xx_compare_op1); else - operands[1] = (*dsp16xx_compare_gen)(dsp16xx_compare_op0); + operands[1] = gen_tst_reg (dsp16xx_compare_op0); }") (define_expand "sge" @@ -2447,10 +2447,10 @@ "" " { - if (dsp16xx_compare_gen == gen_compare_reg) - operands[1] = (*dsp16xx_compare_gen)(GE, dsp16xx_compare_op0, dsp16xx_compare_op1); + if (dsp16xx_compare_gen) + operands[1] = gen_compare_reg (GE, dsp16xx_compare_op0, dsp16xx_compare_op1); else - operands[1] = (*dsp16xx_compare_gen)(dsp16xx_compare_op0); + operands[1] = gen_tst_reg (dsp16xx_compare_op0); }") @@ -2460,10 +2460,10 @@ "" " { - if (dsp16xx_compare_gen == gen_compare_reg) - operands[1] = (*dsp16xx_compare_gen)(LE, dsp16xx_compare_op0, dsp16xx_compare_op1); + if (dsp16xx_compare_gen) + operands[1] = gen_compare_reg (LE, dsp16xx_compare_op0, dsp16xx_compare_op1); else - operands[1] = (*dsp16xx_compare_gen)(dsp16xx_compare_op0); + operands[1] = gen_tst_reg (dsp16xx_compare_op0); }") @@ -2473,10 +2473,10 @@ "" " { - if (dsp16xx_compare_gen == gen_compare_reg) - operands[1] = (*dsp16xx_compare_gen)(GTU, dsp16xx_compare_op0, dsp16xx_compare_op1); + if (dsp16xx_compare_gen) + operands[1] = gen_compare_reg (GTU, dsp16xx_compare_op0, dsp16xx_compare_op1); else - operands[1] = (*dsp16xx_compare_gen)(dsp16xx_compare_op0); + operands[1] = gen_tst_reg (dsp16xx_compare_op0); }") @@ -2486,10 +2486,10 @@ "" " { - if (dsp16xx_compare_gen == gen_compare_reg) - operands[1] = (*dsp16xx_compare_gen)(LTU, dsp16xx_compare_op0, dsp16xx_compare_op1); + if (dsp16xx_compare_gen) + operands[1] = gen_compare_reg (LTU, dsp16xx_compare_op0, dsp16xx_compare_op1); else - operands[1] = (*dsp16xx_compare_gen)(dsp16xx_compare_op0); + operands[1] = gen_tst_reg (dsp16xx_compare_op0); }") @@ -2499,10 +2499,10 @@ "" " { - if (dsp16xx_compare_gen == gen_compare_reg) - operands[1] = (*dsp16xx_compare_gen)(GEU, dsp16xx_compare_op0, dsp16xx_compare_op1); + if (dsp16xx_compare_gen) + operands[1] = gen_compare_reg (GEU, dsp16xx_compare_op0, dsp16xx_compare_op1); else - operands[1] = (*dsp16xx_compare_gen)(dsp16xx_compare_op0); + operands[1] = gen_tst_reg (dsp16xx_compare_op0); }") @@ -2512,10 +2512,10 @@ "" " { - if (dsp16xx_compare_gen == gen_compare_reg) - operands[1] = (*dsp16xx_compare_gen)(LEU, dsp16xx_compare_op0, dsp16xx_compare_op1); + if (dsp16xx_compare_gen) + operands[1] = gen_compare_reg (LEU, dsp16xx_compare_op0, dsp16xx_compare_op1); else - operands[1] = (*dsp16xx_compare_gen)(dsp16xx_compare_op0); + operands[1] = gen_tst_reg (dsp16xx_compare_op0); }") @@ -2539,10 +2539,10 @@ "" " { - if (dsp16xx_compare_gen == gen_compare_reg) - operands[1] = (*dsp16xx_compare_gen)(EQ, dsp16xx_compare_op0, dsp16xx_compare_op1); + if (dsp16xx_compare_gen) + operands[1] = gen_compare_reg (EQ, dsp16xx_compare_op0, dsp16xx_compare_op1); else - operands[1] = (*dsp16xx_compare_gen)(dsp16xx_compare_op0); + operands[1] = gen_tst_reg (dsp16xx_compare_op0); }") (define_expand "bne" @@ -2554,10 +2554,10 @@ "" " { - if (dsp16xx_compare_gen == gen_compare_reg) - operands[1] = (*dsp16xx_compare_gen)(NE, dsp16xx_compare_op0, dsp16xx_compare_op1); + if (dsp16xx_compare_gen) + operands[1] = gen_compare_reg (NE, dsp16xx_compare_op0, dsp16xx_compare_op1); else - operands[1] = (*dsp16xx_compare_gen)(dsp16xx_compare_op0); + operands[1] = gen_tst_reg (dsp16xx_compare_op0); }") @@ -2570,10 +2570,10 @@ "" " { - if (dsp16xx_compare_gen == gen_compare_reg) - operands[1] = (*dsp16xx_compare_gen)(GT, dsp16xx_compare_op0, dsp16xx_compare_op1); + if (dsp16xx_compare_gen) + operands[1] = gen_compare_reg (GT, dsp16xx_compare_op0, dsp16xx_compare_op1); else - operands[1] = (*dsp16xx_compare_gen)(dsp16xx_compare_op0); + operands[1] = gen_tst_reg (dsp16xx_compare_op0); }") @@ -2586,10 +2586,10 @@ "" " { - if (dsp16xx_compare_gen == gen_compare_reg) - operands[1] = (*dsp16xx_compare_gen)(GE, dsp16xx_compare_op0, dsp16xx_compare_op1); + if (dsp16xx_compare_gen) + operands[1] = gen_compare_reg (GE, dsp16xx_compare_op0, dsp16xx_compare_op1); else - operands[1] = (*dsp16xx_compare_gen)(dsp16xx_compare_op0); + operands[1] = gen_tst_reg (dsp16xx_compare_op0); }") @@ -2602,10 +2602,10 @@ "" " { - if (dsp16xx_compare_gen == gen_compare_reg) - operands[1] = (*dsp16xx_compare_gen)(LT, dsp16xx_compare_op0, dsp16xx_compare_op1); + if (dsp16xx_compare_gen) + operands[1] = gen_compare_reg (LT, dsp16xx_compare_op0, dsp16xx_compare_op1); else - operands[1] = (*dsp16xx_compare_gen)(dsp16xx_compare_op0); + operands[1] = gen_tst_reg (dsp16xx_compare_op0); }") @@ -2618,10 +2618,10 @@ "" " { - if (dsp16xx_compare_gen == gen_compare_reg) - operands[1] = (*dsp16xx_compare_gen)(LE, dsp16xx_compare_op0, dsp16xx_compare_op1); + if (dsp16xx_compare_gen) + operands[1] = gen_compare_reg (LE, dsp16xx_compare_op0, dsp16xx_compare_op1); else - operands[1] = (*dsp16xx_compare_gen)(dsp16xx_compare_op0); + operands[1] = gen_tst_reg (dsp16xx_compare_op0); }") @@ -2634,10 +2634,10 @@ "" " { - if (dsp16xx_compare_gen == gen_compare_reg) - operands[1] = (*dsp16xx_compare_gen)(GTU, dsp16xx_compare_op0, dsp16xx_compare_op1); + if (dsp16xx_compare_gen) + operands[1] = gen_compare_reg (GTU, dsp16xx_compare_op0, dsp16xx_compare_op1); else - operands[1] = (*dsp16xx_compare_gen)(dsp16xx_compare_op0); + operands[1] = gen_tst_reg (dsp16xx_compare_op0); }") @@ -2650,10 +2650,10 @@ "" " { - if (dsp16xx_compare_gen == gen_compare_reg) - operands[1] = (*dsp16xx_compare_gen)(GEU, dsp16xx_compare_op0, dsp16xx_compare_op1); + if (dsp16xx_compare_gen) + operands[1] = gen_compare_reg (GEU, dsp16xx_compare_op0, dsp16xx_compare_op1); else - operands[1] = (*dsp16xx_compare_gen)(dsp16xx_compare_op0); + operands[1] = gen_tst_reg (dsp16xx_compare_op0); }") @@ -2666,10 +2666,10 @@ "" " { - if (dsp16xx_compare_gen == gen_compare_reg) - operands[1] = (*dsp16xx_compare_gen)(LTU, dsp16xx_compare_op0, dsp16xx_compare_op1); + if (dsp16xx_compare_gen) + operands[1] = gen_compare_reg (LTU, dsp16xx_compare_op0, dsp16xx_compare_op1); else - operands[1] = (*dsp16xx_compare_gen)(dsp16xx_compare_op0); + operands[1] = gen_tst_reg (dsp16xx_compare_op0); }") @@ -2682,10 +2682,10 @@ "" " { - if (dsp16xx_compare_gen == gen_compare_reg) - operands[1] = (*dsp16xx_compare_gen)(LEU, dsp16xx_compare_op0, dsp16xx_compare_op1); + if (dsp16xx_compare_gen) + operands[1] = gen_compare_reg (LEU, dsp16xx_compare_op0, dsp16xx_compare_op1); else - operands[1] = (*dsp16xx_compare_gen)(dsp16xx_compare_op0); + operands[1] = gen_tst_reg (dsp16xx_compare_op0); }") |