projects
/
libfirm
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
- add ir_bk_outport and ir_bk_inport
[libfirm]
/
ir
/
ir
/
irmode.c
diff --git
a/ir/ir/irmode.c
b/ir/ir/irmode.c
index
75b02bc
..
f83214e
100644
(file)
--- a/
ir/ir/irmode.c
+++ b/
ir/ir/irmode.c
@@
-23,27
+23,22
@@
* @author Martin Trapp, Christian Schaefer, Goetz Lindenmaier, Mathias Heil
* @version $Id$
*/
* @author Martin Trapp, Christian Schaefer, Goetz Lindenmaier, Mathias Heil
* @version $Id$
*/
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
+#include "config.h"
-#ifdef HAVE_STDLIB_H
-# include <stdlib.h>
-#endif
-#ifdef HAVE_STRING_H
-# include <string.h>
-#endif
+#include <stdlib.h>
+#include <string.h>
-#
include <stddef.h>
+#include <stddef.h>
-# include "irprog_t.h"
-# include "irmode_t.h"
-# include "ident.h"
-# include "tv_t.h"
-# include "obst.h"
-# include "irhooks.h"
-# include "irtools.h"
-# include "array.h"
+#include "irprog_t.h"
+#include "irmode_t.h"
+#include "ident.h"
+#include "tv_t.h"
+#include "obst.h"
+#include "irhooks.h"
+#include "irtools.h"
+#include "array.h"
+#include "error.h"
/** Obstack to hold all modes. */
static struct obstack modes;
/** Obstack to hold all modes. */
static struct obstack modes;
@@
-60,7
+55,7
@@
static ir_mode **mode_list;
*
* TODO: Add other fields
**/
*
* TODO: Add other fields
**/
-static
INLINE
int modes_are_equal(const ir_mode *m, const ir_mode *n) {
+static
inline
int modes_are_equal(const ir_mode *m, const ir_mode *n) {
if (m == n) return 1;
if (m->sort == n->sort &&
m->arithmetic == n->arithmetic &&
if (m == n) return 1;
if (m->sort == n->sort &&
m->arithmetic == n->arithmetic &&
@@
-292,14
+287,15
@@
ir_mode *new_ir_mode(const char *name, ir_mode_sort sort, int bit_size, int sign
case irms_control_flow:
case irms_memory:
case irms_internal_boolean:
case irms_control_flow:
case irms_memory:
case irms_internal_boolean:
- assert(0 && "internal modes cannot be user defined");
- break;
+ panic("internal modes cannot be user defined");
case irms_float_number:
case irms_int_number:
case irms_reference:
mode = register_mode(&mode_tmpl);
case irms_float_number:
case irms_int_number:
case irms_reference:
mode = register_mode(&mode_tmpl);
+ break;
}
}
+ assert(mode != NULL);
return mode;
}
return mode;
}
@@
-339,20
+335,18
@@
ir_mode *new_ir_vector_mode(const char *name, ir_mode_sort sort, int bit_size, u
case irms_control_flow:
case irms_memory:
case irms_internal_boolean:
case irms_control_flow:
case irms_memory:
case irms_internal_boolean:
- assert(0 && "internal modes cannot be user defined");
- break;
+ panic("internal modes cannot be user defined");
case irms_reference:
case irms_reference:
- assert(0 && "only integer and floating point modes can be vectorized");
- break;
+ panic("only integer and floating point modes can be vectorized");
case irms_float_number:
case irms_float_number:
- assert(0 && "not yet implemented");
- break;
+ panic("not yet implemented");
case irms_int_number:
mode = register_mode(&mode_tmpl);
}
case irms_int_number:
mode = register_mode(&mode_tmpl);
}
+ assert(mode != NULL);
return mode;
}
return mode;
}
@@
-751,7
+745,9
@@
void init_mode(void) {
newmode.name = new_id_from_chars("E", 1);
newmode.code = irm_E;
newmode.sign = 1;
newmode.name = new_id_from_chars("E", 1);
newmode.code = irm_E;
newmode.sign = 1;
- newmode.size = 80;
+ /* note that the tarval module is calculating with 80 bits, but we use
+ * 96 bits, as that is what will be stored to memory by most hardware */
+ newmode.size = 96;
mode_E = register_mode(&newmode);
mode_E = register_mode(&newmode);