irmode: remove support for vector mode
[libfirm] / ir / ir / irmode_t.h
index 71ba15f..8456ccc 100644 (file)
 /* ------------------------------- *
  * inline functions                *
  * ------------------------------- */
 /* ------------------------------- *
  * inline functions                *
  * ------------------------------- */
-extern ir_mode *mode_P_code, *mode_P_data;
+static inline ir_mode *_get_modeP_code(void) { return mode_P_code; }
 
 
-static INLINE ir_mode *
-_get_modeP_code(void) { return mode_P_code; }
+static inline ir_mode *_get_modeP_data(void) { return mode_P_data; }
 
 
-static INLINE ir_mode *
-_get_modeP_data(void) { return mode_P_data; }
+static inline ident *_get_mode_ident(const ir_mode *mode) { return mode->name; }
 
 
-static INLINE ir_modecode
-_get_mode_modecode(const ir_mode *mode) { return mode->code; }
+static inline ir_mode_sort _get_mode_sort(const ir_mode *mode) { return mode->sort; }
 
 
-static INLINE ident *
-_get_mode_ident(const ir_mode *mode) { return mode->name; }
+static inline unsigned _get_mode_size_bits(const ir_mode *mode) { return mode->size; }
 
 
-static INLINE ir_mode_sort
-_get_mode_sort(const ir_mode *mode) { return mode->sort; }
-
-static INLINE unsigned
-_get_mode_size_bits(const ir_mode *mode) { return mode->size; }
-
-static INLINE unsigned
-_get_mode_size_bytes(const ir_mode *mode) {
+static inline unsigned _get_mode_size_bytes(const ir_mode *mode)
+{
        unsigned size = _get_mode_size_bits(mode);
        if ((size & 7) != 0) return (unsigned) -1;
        return size >> 3;
 }
 
        unsigned size = _get_mode_size_bits(mode);
        if ((size & 7) != 0) return (unsigned) -1;
        return size >> 3;
 }
 
-static INLINE int
-_get_mode_sign(const ir_mode *mode) { return mode->sign; }
-
-static INLINE ir_mode_arithmetic
-_get_mode_arithmetic(const ir_mode *mode) { return mode->arithmetic; }
+static inline int _get_mode_sign(const ir_mode *mode) { return mode->sign; }
 
 
-static INLINE unsigned int
-_get_mode_modulo_shift(const ir_mode *mode) { return mode->modulo_shift; }
+static inline ir_mode_arithmetic _get_mode_arithmetic(const ir_mode *mode) { return mode->arithmetic; }
 
 
-static INLINE unsigned int
-_get_mode_vector_elems(const ir_mode *mode) { return mode->vector_elem; }
+static inline unsigned int _get_mode_modulo_shift(const ir_mode *mode) { return mode->modulo_shift; }
 
 
-static INLINE void *
-_get_mode_link(const ir_mode *mode) { return mode->link; }
+static inline void * _get_mode_link(const ir_mode *mode) { return mode->link; }
 
 
-static INLINE void
-_set_mode_link(ir_mode *mode, void *l) { mode->link = l; }
+static inline void _set_mode_link(ir_mode *mode, void *l) { mode->link = l; }
 
 
-/* Functions to check, whether a ir_modecode is signed, float, int, num, data,
+/* Functions to check, whether a mode is signed, float, int, num, data,
    datab or dataM. For more exact definitions read the corresponding pages
    in the firm documentation or the following enumeration
 
    datab or dataM. For more exact definitions read the corresponding pages
    in the firm documentation or the following enumeration
 
@@ -116,63 +98,49 @@ _set_mode_link(ir_mode *mode, void *l) { mode->link = l; }
             = {data || irm_M}
 */
 
             = {data || irm_M}
 */
 
-static INLINE int
-_mode_is_signed(const ir_mode *mode) {
-       assert(mode);
+static inline int _mode_is_signed(const ir_mode *mode)
+{
        return mode->sign;
 }
 
        return mode->sign;
 }
 
-static INLINE int
-_mode_is_float(const ir_mode *mode) {
-       assert(mode);
+static inline int _mode_is_float(const ir_mode *mode)
+{
        return (_get_mode_sort(mode) == irms_float_number);
 }
 
        return (_get_mode_sort(mode) == irms_float_number);
 }
 
-static INLINE int
-_mode_is_int(const ir_mode *mode) {
-       assert(mode);
+static inline int _mode_is_int(const ir_mode *mode)
+{
        return (_get_mode_sort(mode) == irms_int_number);
 }
 
        return (_get_mode_sort(mode) == irms_int_number);
 }
 
-static INLINE int
-_mode_is_reference(const ir_mode *mode) {
-       assert(mode);
+static inline int _mode_is_reference(const ir_mode *mode)
+{
        return (_get_mode_sort(mode) == irms_reference);
 }
 
        return (_get_mode_sort(mode) == irms_reference);
 }
 
-static INLINE int
-_mode_is_num(const ir_mode *mode) {
-       assert(mode);
-       return (_mode_is_int(mode) || _mode_is_float(mode));
-}
-
-static INLINE int
-_mode_is_data(const ir_mode *mode) {
-       return (_mode_is_int(mode) || _mode_is_float(mode) || _mode_is_reference(mode));
+static inline int _mode_is_num(const ir_mode *mode)
+{
+       return (_get_mode_sort(mode) & irmsh_is_num);
 }
 
 }
 
-static INLINE int
-_mode_is_datab(const ir_mode *mode) {
-       assert(mode);
-       return (_mode_is_data(mode) || _get_mode_sort(mode) == irms_internal_boolean);
+static inline int _mode_is_data(const ir_mode *mode)
+{
+       return (_get_mode_sort(mode) & irmsh_is_data);
 }
 
 }
 
-static INLINE int
-_mode_is_dataM(const ir_mode *mode) {
-       assert(mode);
-       return (_mode_is_data(mode) || _get_mode_modecode(mode) == irm_M);
+static inline int _mode_is_datab(const ir_mode *mode)
+{
+       return (_get_mode_sort(mode) & irmsh_is_datab);
 }
 
 }
 
-static INLINE int
-_mode_is_float_vector(const ir_mode *mode) {
-       assert(mode);
-       return (_get_mode_sort(mode) == irms_float_number) && (_get_mode_vector_elems(mode) > 1);
+static inline int _mode_is_dataM(const ir_mode *mode)
+{
+       return (_get_mode_sort(mode) & irmsh_is_dataM);
 }
 
 }
 
-static INLINE int
-_mode_is_int_vector(const ir_mode *mode) {
-       assert(mode);
-       return (_get_mode_sort(mode) == irms_int_number) && (_get_mode_vector_elems(mode) > 1);
+static inline ir_type *get_type_for_mode_(const ir_mode *mode)
+{
+       return mode->type;
 }
 
 /** mode module initialization, call once before use of any other function **/
 }
 
 /** mode module initialization, call once before use of any other function **/
@@ -183,7 +151,6 @@ void finish_mode(void);
 
 #define get_modeP_code()               _get_modeP_code()
 #define get_modeP_data()               _get_modeP_data()
 
 #define get_modeP_code()               _get_modeP_code()
 #define get_modeP_data()               _get_modeP_data()
-#define get_mode_modecode(mode)        _get_mode_modecode(mode)
 #define get_mode_ident(mode)           _get_mode_ident(mode)
 #define get_mode_sort(mode)            _get_mode_sort(mode)
 #define get_mode_size_bits(mode)       _get_mode_size_bits(mode)
 #define get_mode_ident(mode)           _get_mode_ident(mode)
 #define get_mode_sort(mode)            _get_mode_sort(mode)
 #define get_mode_size_bits(mode)       _get_mode_size_bits(mode)
@@ -191,7 +158,6 @@ void finish_mode(void);
 #define get_mode_sign(mode)            _get_mode_sign(mode)
 #define get_mode_arithmetic(mode)      _get_mode_arithmetic(mode)
 #define get_mode_modulo_shift(mode)    _get_mode_modulo_shift(mode)
 #define get_mode_sign(mode)            _get_mode_sign(mode)
 #define get_mode_arithmetic(mode)      _get_mode_arithmetic(mode)
 #define get_mode_modulo_shift(mode)    _get_mode_modulo_shift(mode)
-#define get_mode_n_vector_elems(mode)  _get_mode_vector_elems(mode)
 #define get_mode_link(mode)            _get_mode_link(mode)
 #define set_mode_link(mode, l)         _set_mode_link(mode, l)
 #define mode_is_signed(mode)           _mode_is_signed(mode)
 #define get_mode_link(mode)            _get_mode_link(mode)
 #define set_mode_link(mode, l)         _set_mode_link(mode, l)
 #define mode_is_signed(mode)           _mode_is_signed(mode)
@@ -202,7 +168,6 @@ void finish_mode(void);
 #define mode_is_data(mode)             _mode_is_data(mode)
 #define mode_is_datab(mode)            _mode_is_datab(mode)
 #define mode_is_dataM(mode)            _mode_is_dataM(mode)
 #define mode_is_data(mode)             _mode_is_data(mode)
 #define mode_is_datab(mode)            _mode_is_datab(mode)
 #define mode_is_dataM(mode)            _mode_is_dataM(mode)
-#define mode_is_float_vector(mode)     _mode_is_float_vector(mode)
-#define mode_is_int_vector(mode)       _mode_is_int_vector(mode)
+#define get_type_for_mode(mode)        get_type_for_mode_(mode)
 
 #endif
 
 #endif