From 4c917994f1fe6a41dc9f93fa3f9225f41633f4fc Mon Sep 17 00:00:00 2001 From: =?utf8?q?G=C3=B6tz=20Lindenmaier?= Date: Fri, 28 Mar 2003 14:51:27 +0000 Subject: [PATCH] further adaptions in irmode.h [r1007] --- ir/ir/irmode.c | 12 ++++++------ ir/ir/irmode.h | 2 +- ir/ir/irnode.h | 2 ++ ir/ir/old_fctnames.h | 2 ++ ir/tr/type.c | 12 ++++++++---- ir/tv/tv.c | 18 +++++++++--------- 6 files changed, 28 insertions(+), 20 deletions(-) diff --git a/ir/ir/irmode.c b/ir/ir/irmode.c index 20b1bcf99..581367745 100644 --- a/ir/ir/irmode.c +++ b/ir/ir/irmode.c @@ -195,7 +195,7 @@ register_mode(ir_mode* new_mode) # undef get_mode_ident # undef get_mode_name # undef get_mode_sort -# undef get_mode_size +# undef get_mode_size_bits # undef get_mode_align #endif modecode @@ -251,7 +251,7 @@ get_mode_align (ir_mode *mode) # define get_mode_ident(mode) (mode)->name # define get_mode_name(mode) id_to_str((mode)->name) # define get_mode_sort(mode) (mode)->sort -# define get_mode_size(mode) (mode)->size +# define get_mode_size_bits(mode) (mode)->size # define get_mode_align(mode) (mode)->align #endif int @@ -460,15 +460,15 @@ smaller_mode(ir_mode *sm, ir_mode *lm) */ if (mode_is_signed(sm)) { - if ( mode_is_signed(lm) && (get_mode_size(lm) > get_mode_size(sm)) ) + if ( mode_is_signed(lm) && (get_mode_size_bits(lm) > get_mode_size_bits(sm)) ) return 1; } else if (mode_is_signed(lm)) { - if (get_mode_size(lm) > get_mode_size(sm) + 1) + if (get_mode_size_bits(lm) > get_mode_size_bits(sm) + 1) return 1; } - else if (get_mode_size(lm) > get_mode_size(sm)) + else if (get_mode_size_bits(lm) > get_mode_size_bits(sm)) { return 1; } @@ -487,7 +487,7 @@ smaller_mode(ir_mode *sm, ir_mode *lm) /* XXX currently only the three standard 32,64,80 bit floats * are supported which can safely be converted */ if ( (get_mode_sort(lm) == float_number) - && (get_mode_size(lm) > get_mode_size(sm)) ) + && (get_mode_size_bits(lm) > get_mode_size_bits(sm)) ) return 1; break; diff --git a/ir/ir/irmode.h b/ir/ir/irmode.h index 91984b591..f001b0743 100644 --- a/ir/ir/irmode.h +++ b/ir/ir/irmode.h @@ -133,7 +133,7 @@ ir_mode *register_mode(ir_mode* new_mode); # define get_mode_ident(mode) (mode)->name # define get_mode_name(mode) id_to_str((mode)->name) # define get_mode_sort(mode) (mode)->sort -# define get_mode_size(mode) (mode)->size +# define get_mode_size_bits(mode) (mode)->size # define get_mode_align(mode) (mode)->align #else /* The classification of the mode */ diff --git a/ir/ir/irnode.h b/ir/ir/irnode.h index b33bcdfcb..a035cd979 100644 --- a/ir/ir/irnode.h +++ b/ir/ir/irnode.h @@ -585,6 +585,8 @@ ir_node *get_fragile_op_mem(ir_node *node); #define DDMI(X) printf("%s(l.%i) %s: %p\n", __MYFUNC__, __LINE__, id_to_str(X), (X)) /** Output information about a mode */ #define DDMM(X) printf("%s(l.%i) %s: %p\n", __MYFUNC__, __LINE__, get_mode_name(X), (X)) +/** Output information about a loope */ +#define DDML(X) printf("%s(l.%i) loop with depth %d: %p\n", __MYFUNC__, __LINE__, get_loop_depth(X), (X)) /*@}*/ /* end of ir_node group definition */ diff --git a/ir/ir/old_fctnames.h b/ir/ir/old_fctnames.h index bff830f90..4160e7fe7 100644 --- a/ir/ir/old_fctnames.h +++ b/ir/ir/old_fctnames.h @@ -30,6 +30,7 @@ #define get_null_of_mode get_mode_null #define get_fsigned_of_mode get_mode_fsigned #define get_ffloat_of_mode get_mode_ffloat +#define get_mode_size(X) { assert(get_mode_size_bytes(X) != -1); get_mode_size_bytes(X); } /* type.h */ #define get_type_nameid(_t_) get_type_ident(_t_) @@ -41,6 +42,7 @@ #define get_method_n_res(X) get_method_n_ress(X) +/* tarval.h */ #define tarval_from_long(X, Y) new_tarval_from_long(Y, X) #define tarval_P_from_entity(X) new_tarval_from_entity(X, mode_P) #define get_tarval_entity(X) tarval_to_entity(X) diff --git a/ir/tr/type.c b/ir/tr/type.c index 7c4137d1a..2eee261f6 100644 --- a/ir/tr/type.c +++ b/ir/tr/type.c @@ -156,7 +156,8 @@ void set_type_mode(type *tp, ir_mode* m) { if ((tp->type_op == type_primitive) || (tp->type_op == type_enumeration)) { /* For pointer, primitive and enumeration size depends on the mode. */ - tp->size = get_mode_size(m)/8; + assert((get_mode_size_bytes(m) != -1) && "unorthodox modes not implemented"); + tp->size = get_mode_size_bytes(m); tp->mode = m; } } @@ -811,7 +812,8 @@ INLINE type *new_type_method (ident *name, int n_param, int n_res) { type *res; res = new_type(type_method, mode_P, name); res->state = layout_fixed; - res->size = get_mode_size(mode_P)/8; + assert((get_mode_size_bytes(mode_P) != -1) && "unorthodox modes not implemented"); + res->size = get_mode_size_bytes(mode_P); res->attr.ma.n_params = n_param; res->attr.ma.param_type = (type **) xmalloc (sizeof (type *) * n_param); res->attr.ma.n_res = n_res; @@ -1177,7 +1179,8 @@ INLINE type *new_type_pointer (ident *name, type *points_to) { type *res; res = new_type(type_pointer, mode_P, name); res->attr.pa.points_to = points_to; - res->size = get_mode_size(res->mode)/8; + assert((get_mode_size_bytes(res->mode) != -1) && "unorthodox modes not implemented"); + res->size = get_mode_size_bytes(res->mode); res->state = layout_fixed; return res; } @@ -1215,7 +1218,8 @@ INLINE type *new_type_primitive (ident *name, ir_mode *mode) { type *res; /* @@@ assert( mode_is_data(mode) && (!mode == mode_P)); */ res = new_type(type_primitive, mode, name); - res->size = get_mode_size(mode)/8; + assert((get_mode_size_bytes(mode) != -1) && "unorthodox modes not implemented"); + res->size = get_mode_size_bytes(mode); res->state = layout_fixed; return res; } diff --git a/ir/tv/tv.c b/ir/tv/tv.c index b8b3ceaee..a23463230 100644 --- a/ir/tv/tv.c +++ b/ir/tv/tv.c @@ -397,12 +397,12 @@ tarval *get_tarval_max(ir_mode *mode) return tarval_b_true; case float_number: - fc_get_max(get_mode_size(mode)); + fc_get_max(get_mode_size_bits(mode)); return get_tarval(fc_get_buffer(), fc_get_buffer_length(), mode); case int_number: case character: - sc_max_from_bits(get_mode_size(mode), mode_is_signed(mode)); + sc_max_from_bits(get_mode_size_bits(mode), mode_is_signed(mode)); return get_tarval(sc_get_buffer(), sc_get_buffer_length(), mode); } return tarval_bad; @@ -424,12 +424,12 @@ tarval *get_tarval_min(ir_mode *mode) return tarval_b_false; case float_number: - fc_get_min(get_mode_size(mode)); + fc_get_min(get_mode_size_bits(mode)); return get_tarval(fc_get_buffer(), fc_get_buffer_length(), mode); case int_number: case character: - sc_min_from_bits(get_mode_size(mode), mode_is_signed(mode)); + sc_min_from_bits(get_mode_size_bits(mode), mode_is_signed(mode)); return get_tarval(sc_get_buffer(), sc_get_buffer_length(), mode); } return tarval_bad; @@ -823,7 +823,7 @@ tarval *tarval_shl(tarval *a, tarval *b) /* bitwise left shift */ assert(b); assert(mode_is_int(a->mode) && mode_is_int(b->mode)); - sc_shl(a->value, b->value, get_mode_size(a->mode), mode_is_signed(a->mode)); + sc_shl(a->value, b->value, get_mode_size_bits(a->mode), mode_is_signed(a->mode)); return get_tarval(sc_get_buffer(), sc_get_buffer_length(), a->mode); } tarval *tarval_shr(tarval *a, tarval *b) /* bitwise unsigned right shift */ @@ -833,7 +833,7 @@ tarval *tarval_shr(tarval *a, tarval *b) /* bitwise unsigned right shift */ assert(b); assert(mode_is_int(a->mode) && mode_is_int(b->mode)); - sc_shr(a->value, b->value, get_mode_size(a->mode), mode_is_signed(a->mode)); + sc_shr(a->value, b->value, get_mode_size_bits(a->mode), mode_is_signed(a->mode)); return get_tarval(sc_get_buffer(), sc_get_buffer_length(), a->mode); } tarval *tarval_shrs(tarval *a, tarval *b) /* bitwise signed right shift */ @@ -843,7 +843,7 @@ tarval *tarval_shrs(tarval *a, tarval *b) /* bitwise signed right shift */ assert(b); assert(mode_is_int(a->mode) && mode_is_int(b->mode)); - sc_shrs(a->value, b->value, get_mode_size(a->mode), mode_is_signed(a->mode)); + sc_shrs(a->value, b->value, get_mode_size_bits(a->mode), mode_is_signed(a->mode)); return get_tarval(sc_get_buffer(), sc_get_buffer_length(), a->mode); } tarval *tarval_rot(tarval *a, tarval *b) /* bitwise rotation */ @@ -853,7 +853,7 @@ tarval *tarval_rot(tarval *a, tarval *b) /* bitwise rotation */ assert(b); assert(mode_is_int(a->mode) && mode_is_int(b->mode)); - sc_rot(a->value, b->value, get_mode_size(a->mode), mode_is_signed(a->mode)); + sc_rot(a->value, b->value, get_mode_size_bits(a->mode), mode_is_signed(a->mode)); return get_tarval(sc_get_buffer(), sc_get_buffer_length(), a->mode); } @@ -870,7 +870,7 @@ int tarval_print(XP_PAR1, const xprintf_info *info ATTRIBUTE((unused)), XP_PARN) { case int_number: case character: - offset = 16 - (get_mode_size(tv->mode)/4); + offset = 16 - (get_mode_size_bits(tv->mode)/4); str = sc_print_hex(tv->value); return XPF1R("0x%s", str + offset); -- 2.20.1