summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog11
-rw-r--r--gcc/machmode.h4
-rw-r--r--gcc/read-rtl.c14
-rw-r--r--gcc/rtl.h2
4 files changed, 24 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 40564640e56..77b50d8218e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,14 @@
+2005-06-09 Gabriel Dos Reis <gdr@cs.tamu.edu>
+
+ * machmode.h (to_machine_mode): New.
+ * rtl.h (to_rtx_code): Likewise.
+ * read-rtl.c (apply_mode_macro): Convert mode to machine_mode.
+ (print_c_condition): Convert return value of htab_find().
+ (apply_code_macro): Add explicit cast when convertin to enums.
+ (apply_mode_maps): Likewise.
+ (check_code_macro): Likewise.
+ (read_rtx_1): Likewise.
+
2005-06-09 Richard Henderson <rth@redhat.com>
* config/ia64/ia64.c (update_set_flags): Just return for IF_THEN_ELSE.
diff --git a/gcc/machmode.h b/gcc/machmode.h
index 10016f86ac7..f8ff1323729 100644
--- a/gcc/machmode.h
+++ b/gcc/machmode.h
@@ -25,6 +25,10 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
/* Make an enum class that gives all the machine modes. */
#include "insn-modes.h"
+/* Given MODE as integer value, get the corresponding enum machine_mode
+ enumeration value. */
+#define to_machine_mode(MODE) ((enum machine_mode) (MODE))
+
/* Get the name of mode MODE as a string. */
extern const char * const mode_name[NUM_MACHINE_MODES];
diff --git a/gcc/read-rtl.c b/gcc/read-rtl.c
index efd1dd44e8f..1312fc06d14 100644
--- a/gcc/read-rtl.c
+++ b/gcc/read-rtl.c
@@ -243,7 +243,7 @@ uses_mode_macro_p (rtx x, int mode)
static void
apply_mode_macro (rtx x, int mode)
{
- PUT_MODE (x, mode);
+ PUT_MODE (x, to_machine_mode (mode));
}
/* Implementations of the macro_group callbacks for codes. */
@@ -269,7 +269,7 @@ uses_code_macro_p (rtx x, int code)
static void
apply_code_macro (rtx x, int code)
{
- PUT_CODE (x, code);
+ PUT_CODE (x, to_rtx_code (code));
}
/* Map a code or mode attribute string P to the underlying string for
@@ -363,7 +363,7 @@ apply_mode_maps (rtx x, struct map_value *mode_maps, struct mapping *macro,
v = map_attr_string (pm->string, macro, value);
if (v)
- PUT_MODE (x, find_mode (v->string, infile));
+ PUT_MODE (x, to_machine_mode (find_mode (v->string, infile)));
else
*unknown = pm->string;
return;
@@ -798,7 +798,7 @@ join_c_conditions (const char *cond1, const char *cond2)
void
print_c_condition (const char *cond)
{
- const void **halves = htab_find (joined_conditions, &cond);
+ const char **halves = (const char **) htab_find (joined_conditions, &cond);
if (halves != 0)
{
printf ("(");
@@ -1311,7 +1311,7 @@ check_code_macro (struct mapping *macro, FILE *infile)
struct map_value *v;
enum rtx_code bellwether;
- bellwether = macro->values->number;
+ bellwether = to_rtx_code (macro->values->number);
for (v = macro->values->next; v != 0; v = v->next)
if (strcmp (GET_RTX_FORMAT (bellwether), GET_RTX_FORMAT (v->number)) != 0)
fatal_with_file_and_line (infile, "code macro `%s' combines "
@@ -1449,7 +1449,7 @@ read_rtx_1 (FILE *infile, struct map_value **mode_maps)
check_code_macro (read_mapping (&codes, codes.macros, infile), infile);
goto again;
}
- real_code = find_macro (&codes, tmp_char, infile);
+ real_code = to_rtx_code (find_macro (&codes, tmp_char, infile));
bellwether_code = BELLWETHER_CODE (real_code);
/* If we end up with an insn expression then we free this space below. */
@@ -1470,7 +1470,7 @@ read_rtx_1 (FILE *infile, struct map_value **mode_maps)
mode = find_macro (&modes, tmp_char, infile);
else
mode = mode_attr_index (mode_maps, tmp_char);
- PUT_MODE (return_rtx, mode);
+ PUT_MODE (return_rtx, to_machine_mode (mode));
if (GET_MODE (return_rtx) != mode)
fatal_with_file_and_line (infile, "mode too large");
}
diff --git a/gcc/rtl.h b/gcc/rtl.h
index 69091ab36d0..bbd1c62a421 100644
--- a/gcc/rtl.h
+++ b/gcc/rtl.h
@@ -51,6 +51,8 @@ enum rtx_code {
#define NUM_RTX_CODE ((int) LAST_AND_UNUSED_RTX_CODE)
/* The cast here, saves many elsewhere. */
+#define to_rtx_code(CODE) ((enum rtx_code) (CODE))
+
/* Register Transfer Language EXPRESSIONS CODE CLASSES */
enum rtx_class {