/* Copyright (C) 1998 - 2000 by Universitaet Karlsruhe
-** All rights reserved.
-**
-** Authors: Martin Trapp, Christian Schaefer
-**
+* All rights reserved.
+*
+* Authors: Martin Trapp, Christian Schaefer
+*
*/
/* $Id$ */
#endif
# include "irmode_t.h"
-# include <malloc.h>
+# include <stdlib.h>
# include <stddef.h>
# include <string.h>
# include "tv.h"
ir_mode *mode_T;
-ir_mode *mode_f;
-ir_mode *mode_d;
-ir_mode *mode_c;
+ir_mode *mode_F;
+ir_mode *mode_D;
+ir_mode *mode_E;
+ir_mode *mode_Bs;
+ir_mode *mode_Bu;
+ir_mode *mode_Hs;
+ir_mode *mode_Hu;
+ir_mode *mode_Is;
+ir_mode *mode_Iu;
+ir_mode *mode_Ls;
+ir_mode *mode_Lu;
ir_mode *mode_C;
-ir_mode *mode_h;
-ir_mode *mode_H;
-ir_mode *mode_i;
-ir_mode *mode_I;
-ir_mode *mode_l;
-ir_mode *mode_L;
-ir_mode *mode_B;
+ir_mode *mode_U;
ir_mode *mode_b;
-ir_mode *mode_p;
-ir_mode *mode_s;
-ir_mode *mode_S;
+ir_mode *mode_P;
ir_mode *mode_X;
ir_mode *mode_M;
-ir_mode *mode_R;
-ir_mode *mode_Z;
+ir_mode *mode_BB;
INLINE ir_mode *get_modeT() { return mode_T; }
-INLINE ir_mode *get_modef() { return mode_f; }
-INLINE ir_mode *get_moded() { return mode_d; }
-INLINE ir_mode *get_modec() { return mode_c; }
+INLINE ir_mode *get_modeF() { return mode_F; }
+INLINE ir_mode *get_modeD() { return mode_D; }
+INLINE ir_mode *get_modeE() { return mode_E; }
+INLINE ir_mode *get_modeBs() { return mode_Bs; }
+INLINE ir_mode *get_modeBu() { return mode_Bu; }
+INLINE ir_mode *get_modeHs() { return mode_Hs; }
+INLINE ir_mode *get_modeHu() { return mode_Hu; }
+INLINE ir_mode *get_modeIs() { return mode_Is; }
+INLINE ir_mode *get_modeIu() { return mode_Iu; }
+INLINE ir_mode *get_modeLs() { return mode_Ls; }
+INLINE ir_mode *get_modeLu() { return mode_Lu; }
INLINE ir_mode *get_modeC() { return mode_C; }
-INLINE ir_mode *get_modeh() { return mode_h; }
-INLINE ir_mode *get_modeH() { return mode_H; }
-INLINE ir_mode *get_modei() { return mode_i; }
-INLINE ir_mode *get_modeI() { return mode_I; }
-INLINE ir_mode *get_model() { return mode_l; }
-INLINE ir_mode *get_modeL() { return mode_L; }
-INLINE ir_mode *get_modeB() { return mode_B; }
-INLINE ir_mode *get_modep() { return mode_b; }
-INLINE ir_mode *get_modeb() { return mode_p; }
-INLINE ir_mode *get_modes() { return mode_s; }
-INLINE ir_mode *get_modeS() { return mode_S; }
+INLINE ir_mode *get_modeU() { return mode_U; }
+INLINE ir_mode *get_modeb() { return mode_b; }
+INLINE ir_mode *get_modeP() { return mode_P; }
INLINE ir_mode *get_modeX() { return mode_X; }
INLINE ir_mode *get_modeM() { return mode_M; }
-INLINE ir_mode *get_modeR() { return mode_R; }
-INLINE ir_mode *get_modeZ() { return mode_Z; }
+INLINE ir_mode *get_modeBB() { return mode_BB; }
void
init_mode (void)
/* allocate all modes. We need to memset them as tarval_vrfy
reads fields before they are initialized: It compares to
min/max when tarvals for min/max are allocated! */
- mode_T = (ir_mode *) malloc (sizeof (ir_mode)); memset(mode_T, 0, sizeof(ir_mode));
- mode_f = (ir_mode *) malloc (sizeof (ir_mode)); memset(mode_f, 0, sizeof(ir_mode));
- mode_d = (ir_mode *) malloc (sizeof (ir_mode)); memset(mode_d, 0, sizeof(ir_mode));
- mode_c = (ir_mode *) malloc (sizeof (ir_mode)); memset(mode_c, 0, sizeof(ir_mode));
- mode_C = (ir_mode *) malloc (sizeof (ir_mode)); memset(mode_C, 0, sizeof(ir_mode));
- mode_h = (ir_mode *) malloc (sizeof (ir_mode)); memset(mode_h, 0, sizeof(ir_mode));
- mode_H = (ir_mode *) malloc (sizeof (ir_mode)); memset(mode_H, 0, sizeof(ir_mode));
- mode_i = (ir_mode *) malloc (sizeof (ir_mode)); memset(mode_i, 0, sizeof(ir_mode));
- mode_I = (ir_mode *) malloc (sizeof (ir_mode)); memset(mode_I, 0, sizeof(ir_mode));
- mode_l = (ir_mode *) malloc (sizeof (ir_mode)); memset(mode_l, 0, sizeof(ir_mode));
- mode_L = (ir_mode *) malloc (sizeof (ir_mode)); memset(mode_L, 0, sizeof(ir_mode));
- mode_B = (ir_mode *) malloc (sizeof (ir_mode)); memset(mode_B, 0, sizeof(ir_mode));
- mode_b = (ir_mode *) malloc (sizeof (ir_mode)); memset(mode_b, 0, sizeof(ir_mode));
- mode_p = (ir_mode *) malloc (sizeof (ir_mode)); memset(mode_p, 0, sizeof(ir_mode));
- mode_s = (ir_mode *) malloc (sizeof (ir_mode)); memset(mode_s, 0, sizeof(ir_mode));
- mode_S = (ir_mode *) malloc (sizeof (ir_mode)); memset(mode_S, 0, sizeof(ir_mode));
- mode_X = (ir_mode *) malloc (sizeof (ir_mode)); memset(mode_X, 0, sizeof(ir_mode));
- mode_M = (ir_mode *) malloc (sizeof (ir_mode)); memset(mode_M, 0, sizeof(ir_mode));
- mode_R = (ir_mode *) malloc (sizeof (ir_mode)); memset(mode_R, 0, sizeof(ir_mode));
- mode_Z = (ir_mode *) malloc (sizeof (ir_mode)); memset(mode_Z, 0, sizeof(ir_mode));
+ mode_T = (ir_mode *) malloc (sizeof (ir_mode)); memset(mode_T, 0, sizeof(ir_mode));
+ mode_F = (ir_mode *) malloc (sizeof (ir_mode)); memset(mode_F, 0, sizeof(ir_mode));
+ mode_D = (ir_mode *) malloc (sizeof (ir_mode)); memset(mode_D, 0, sizeof(ir_mode));
+ mode_E = (ir_mode *) malloc (sizeof (ir_mode)); memset(mode_E, 0, sizeof(ir_mode));
+ mode_Bs = (ir_mode *) malloc (sizeof (ir_mode)); memset(mode_Bs, 0, sizeof(ir_mode));
+ mode_Bu = (ir_mode *) malloc (sizeof (ir_mode)); memset(mode_Bu, 0, sizeof(ir_mode));
+ mode_Hs = (ir_mode *) malloc (sizeof (ir_mode)); memset(mode_Hs, 0, sizeof(ir_mode));
+ mode_Hu = (ir_mode *) malloc (sizeof (ir_mode)); memset(mode_Hu, 0, sizeof(ir_mode));
+ mode_Is = (ir_mode *) malloc (sizeof (ir_mode)); memset(mode_Is, 0, sizeof(ir_mode));
+ mode_Iu = (ir_mode *) malloc (sizeof (ir_mode)); memset(mode_Iu, 0, sizeof(ir_mode));
+ mode_Ls = (ir_mode *) malloc (sizeof (ir_mode)); memset(mode_Ls, 0, sizeof(ir_mode));
+ mode_Lu = (ir_mode *) malloc (sizeof (ir_mode)); memset(mode_Lu, 0, sizeof(ir_mode));
+ mode_C = (ir_mode *) malloc (sizeof (ir_mode)); memset(mode_C, 0, sizeof(ir_mode));
+ mode_U = (ir_mode *) malloc (sizeof (ir_mode)); memset(mode_U, 0, sizeof(ir_mode));
+ mode_b = (ir_mode *) malloc (sizeof (ir_mode)); memset(mode_b, 0, sizeof(ir_mode));
+ mode_P = (ir_mode *) malloc (sizeof (ir_mode)); memset(mode_P, 0, sizeof(ir_mode));
+ mode_X = (ir_mode *) malloc (sizeof (ir_mode)); memset(mode_X, 0, sizeof(ir_mode));
+ mode_M = (ir_mode *) malloc (sizeof (ir_mode)); memset(mode_M, 0, sizeof(ir_mode));
+ mode_BB = (ir_mode *) malloc (sizeof (ir_mode)); memset(mode_BB, 0, sizeof(ir_mode));
mode_T->code = irm_T;
- mode_f->code = irm_f;
- mode_d->code = irm_d;
- mode_c->code = irm_c;
+ mode_F->code = irm_F;
+ mode_D->code = irm_D;
+ mode_E->code = irm_E;
+ mode_Bs->code = irm_Bs;
+ mode_Bu->code = irm_Bu;
+ mode_Hs->code = irm_Hs;
+ mode_Hu->code = irm_Hu;
+ mode_Is->code = irm_Is;
+ mode_Iu->code = irm_Iu;
+ mode_Ls->code = irm_Ls;
+ mode_Lu->code = irm_Lu;
mode_C->code = irm_C;
- mode_h->code = irm_h;
- mode_H->code = irm_H;
- mode_i->code = irm_i;
- mode_I->code = irm_I;
- mode_l->code = irm_l;
- mode_L->code = irm_L;
- mode_B->code = irm_B;
+ mode_U->code = irm_U;
mode_b->code = irm_b;
- mode_p->code = irm_p;
- mode_s->code = irm_s;
- mode_S->code = irm_S;
+ mode_P->code = irm_P;
mode_X->code = irm_X;
mode_M->code = irm_M;
- mode_R->code = irm_R;
- mode_Z->code = irm_Z;
+ mode_BB->code = irm_BB;
/* initialize all modes */
mode_T->ffloat = 0;
/* float */
- mode_f->name = id_from_str ("f", 1);
- mode_f->fsigned = 1;
- mode_f->ffloat = 1;
- mode_f->ld_align = 4;
- mode_f->size = 4;
+ mode_F->name = id_from_str ("F", 1);
+ mode_F->fsigned = 1;
+ mode_F->ffloat = 1;
+ mode_F->ld_align = 4;
+ mode_F->size = 4;
/* double */
- mode_d->name = id_from_str ("d", 1);
- mode_d->fsigned = 1;
- mode_d->ffloat = 1;
- mode_d->ld_align = 4;
- mode_d->size = 8;
-
- /* signed char */
- mode_c->name = id_from_str ("c", 1);
- mode_c->fsigned = 1;
- mode_c->ffloat = 0;
- mode_c->ld_align = 1;
- mode_c->size = 1;
- mode_c->min = tarval_from_long (mode_l, 0xffffff80);
- mode_c->max = tarval_from_long (mode_l, 0x0000007f);
- mode_c->null = tarval_from_long (mode_c, 0);
-
- /* unsigned char */
- mode_C->name = id_from_str ("C", 1);
- mode_C->fsigned = 0;
- mode_C->ffloat = 0;
- mode_C->ld_align = 1;
- mode_C->size = 1;
- mode_C->min = tarval_from_long (mode_L, 0x00000000);
- mode_C->max = tarval_from_long (mode_L, 0x000000ff);
- mode_C->null = tarval_from_long (mode_C, 0);
+ mode_D->name = id_from_str ("D", 1);
+ mode_D->fsigned = 1;
+ mode_D->ffloat = 1;
+ mode_D->ld_align = 4;
+ mode_D->size = 8;
+
+ /* extended */
+ mode_E->name = id_from_str ("E", 1);
+ mode_E->fsigned = 1;
+ mode_E->ffloat = 1;
+ mode_E->ld_align = 4;
+ mode_E->size = 12;
+
+ /* signed byte */
+ mode_Bs->name = id_from_str ("Bs", 1);
+ mode_Bs->fsigned = 1;
+ mode_Bs->ffloat = 0;
+ mode_Bs->ld_align = 1;
+ mode_Bs->size = 1;
+ mode_Bs->min = tarval_from_long (mode_Ls, 0xffffff80);
+ mode_Bs->max = tarval_from_long (mode_Ls, 0x0000007f);
+ mode_Bs->null = tarval_from_long (mode_Bs, 0);
+
+ /* unsigned byte */
+ mode_Bu->name = id_from_str ("Bu", 1);
+ mode_Bu->fsigned = 0;
+ mode_Bu->ffloat = 0;
+ mode_Bu->ld_align = 1;
+ mode_Bu->size = 1;
+ mode_Bu->min = tarval_from_long (mode_Lu, 0x00000000);
+ mode_Bu->max = tarval_from_long (mode_Lu, 0x000000ff);
+ mode_Bu->null = tarval_from_long (mode_Bu, 0);
/* signed short integer */
- mode_h->name = id_from_str ("h", 1);
- mode_h->fsigned = 1;
- mode_h->ffloat = 0;
- mode_h->ld_align = 2;
- mode_h->size = 2;
- mode_h->min = tarval_from_long (mode_l, 0xffff8000);
- mode_h->max = tarval_from_long (mode_l, 0x00007fff);
- mode_h->null = tarval_from_long (mode_h, 0);
-
- /* unsigened short integer */
- mode_H->name = id_from_str ("H", 1);
- mode_H->fsigned = 0;
- mode_H->ffloat = 0;
- mode_H->ld_align = 2;
- mode_H->size = 2;
- mode_H->min = tarval_from_long (mode_L, 0x00000000);
- mode_H->max = tarval_from_long (mode_L, 0x0000ffff);
- mode_H->null = tarval_from_long (mode_H, 0);
+ mode_Hs->name = id_from_str ("Hs", 1);
+ mode_Hs->fsigned = 1;
+ mode_Hs->ffloat = 0;
+ mode_Hs->ld_align = 2;
+ mode_Hs->size = 2;
+ mode_Hs->min = tarval_from_long (mode_Ls, 0xffff8000);
+ mode_Hs->max = tarval_from_long (mode_Ls, 0x00007fff);
+ mode_Hs->null = tarval_from_long (mode_Hs, 0);
+
+ /* unsigned short integer */
+ mode_Hu->name = id_from_str ("Hu", 1);
+ mode_Hu->fsigned = 0;
+ mode_Hu->ffloat = 0;
+ mode_Hu->ld_align = 2;
+ mode_Hu->size = 2;
+ mode_Hu->min = tarval_from_long (mode_Lu, 0x00000000);
+ mode_Hu->max = tarval_from_long (mode_Lu, 0x0000ffff);
+ mode_Hu->null = tarval_from_long (mode_Hu, 0);
/* signed integer */
- mode_i->name = id_from_str ("i", 1);
- mode_i->fsigned = 1;
- mode_i->ffloat = 0;
- mode_i->ld_align = 4;
- mode_i->size = 4;
- mode_i->min = tarval_from_long (mode_l, 0x80000000);
- mode_i->max = tarval_from_long (mode_l, 0x7fffffff);
- mode_i->null = tarval_from_long (mode_i, 0);
+ mode_Is->name = id_from_str ("Is", 1);
+ mode_Is->fsigned = 1;
+ mode_Is->ffloat = 0;
+ mode_Is->ld_align = 4;
+ mode_Is->size = 4;
+ mode_Is->min = tarval_from_long (mode_Ls, 0x80000000);
+ mode_Is->max = tarval_from_long (mode_Ls, 0x7fffffff);
+ mode_Is->null = tarval_from_long (mode_Is, 0);
/* unsigned integer */
- mode_I->name = id_from_str ("I", 1);
- mode_I->fsigned = 0;
- mode_I->ffloat = 0;
- mode_I->ld_align = 4;
- mode_I->size = 4;
- mode_I->min = tarval_from_long (mode_L, 0x00000000);
- mode_I->max = tarval_from_long (mode_L, 0xffffffff);
- mode_I->null = tarval_from_long (mode_I, 0);
+ mode_Iu->name = id_from_str ("Iu", 1);
+ mode_Iu->fsigned = 0;
+ mode_Iu->ffloat = 0;
+ mode_Iu->ld_align = 4;
+ mode_Iu->size = 4;
+ mode_Iu->min = tarval_from_long (mode_Lu, 0x00000000);
+ mode_Iu->max = tarval_from_long (mode_Lu, 0xffffffff);
+ mode_Iu->null = tarval_from_long (mode_Iu, 0);
/* signed long integer */
- mode_l->name = id_from_str ("l", 1);
- mode_l->fsigned = 1;
- mode_l->ffloat = 0;
- mode_l->ld_align = 4;
- mode_l->size = 4;
- mode_l->min = tarval_from_long (mode_l, 0x80000000);
- mode_l->max = tarval_from_long (mode_l, 0x7fffffff);
- mode_I->null = tarval_from_long (mode_l, 0);
+ mode_Ls->name = id_from_str ("Ls", 1);
+ mode_Ls->fsigned = 1;
+ mode_Ls->ffloat = 0;
+ mode_Ls->ld_align = 8;
+ mode_Ls->size = 8;
+ mode_Ls->min = tarval_from_long (mode_Ls, 0x80000000);
+ mode_Ls->max = tarval_from_long (mode_Ls, 0x7fffffff);
+ mode_Ls->null = tarval_from_long (mode_Ls, 0);
/* unsigned long integer */
- mode_L->name = id_from_str ("L", 1);
- mode_L->fsigned = 0;
- mode_L->ffloat = 0;
- mode_L->ld_align = 4;
- mode_L->size = 4;
- mode_L->min = tarval_from_long (mode_L, 0x00000000);
- mode_L->max = tarval_from_long (mode_L, 0xffffffff);
- mode_L->null = tarval_from_long (mode_L, 0);
-
- /* universal bits */
- mode_B->name = id_from_str ("B", 1);
- mode_B->fsigned = 0;
- mode_B->ffloat = 0;
+ mode_Lu->name = id_from_str ("Lu", 1);
+ mode_Lu->fsigned = 0;
+ mode_Lu->ffloat = 0;
+ mode_Lu->ld_align = 8;
+ mode_Lu->size = 8;
+ mode_Lu->min = tarval_from_long (mode_Lu, 0x00000000);
+ mode_Lu->max = tarval_from_long (mode_Lu, 0xffffffff);
+ mode_Lu->null = tarval_from_long (mode_Lu, 0);
+
+ /* character */
+ mode_C->name = id_from_str ("C", 1);
+ mode_C->fsigned = 0;
+ mode_C->ffloat = 0;
+ mode_C->ld_align = 1;
+ mode_C->size = 1;
+ mode_C->min = tarval_from_long (mode_Ls, 0xffffff80);
+ mode_C->max = tarval_from_long (mode_Ls, 0x0000007f);
+ mode_C->null = tarval_from_long (mode_C, 0);
+
+ /* unicode character */
+ mode_U->name = id_from_str ("U", 1);
+ mode_U->fsigned = 0;
+ mode_U->ffloat = 0;
+ mode_U->ld_align = 1;
+ mode_U->size = 2;
+ mode_U->min = tarval_from_long (mode_Ls, 0xffff8000);
+ mode_U->max = tarval_from_long (mode_Ls, 0x00007fff);
+ mode_U->null = tarval_from_long (mode_U, 0);
/* boolean */
mode_b->name = id_from_str ("b", 1);
mode_b->ffloat = 0;
/* pointer */
- mode_p->name = id_from_str ("p", 1);
- mode_p->fsigned = 0;
- mode_p->ffloat = 0;
- mode_p->ld_align = 4;
- mode_p->size = 4;
- mode_p->min = tarval_from_long (mode_L, 0x00000000);
- mode_p->max = tarval_from_long (mode_L, 0xffffffff);
- mode_p->null = tarval_from_long (mode_p, 0);
-
- mode_s->name = id_from_str ("s", 1);
- mode_s->fsigned = 0;
- mode_s->ffloat = 0;
-
- mode_S->name = id_from_str ("S", 1);
- mode_S->fsigned = 0;
- mode_S->ffloat = 0;
+ mode_P->name = id_from_str ("P", 1);
+ mode_P->fsigned = 0;
+ mode_P->ffloat = 0;
+ mode_P->ld_align = 4;
+ mode_P->size = 4;
+ mode_P->min = tarval_from_long (mode_Lu, 0x00000000);
+ mode_P->max = tarval_from_long (mode_Lu, 0xffffffff);
+ mode_P->null = tarval_from_long (mode_P, 0);
/* Execution */
mode_X->name = id_from_str ("X", 1);
mode_M->fsigned = 0;
mode_M->ffloat = 0;
- mode_R->name = id_from_str ("R", 1);
- mode_R->fsigned = 0;
- mode_R->ffloat = 0;
-
- mode_Z->name = id_from_str ("Z", 1);
- mode_Z->fsigned = 1;
- mode_Z->ffloat = 0;
+ mode_BB->name = id_from_str ("BB", 1);
+ mode_BB->fsigned = 0;
+ mode_BB->ffloat = 0;
}
/* Functions for the direct access to all attributes od a ir_mode */
modecode
get_mode_modecode (ir_mode *mode)
{
+ assert(mode && "no mode given");
return mode->code;
}
ident *
get_mode_ident (ir_mode *mode)
{
+ assert(mode && "no mode given");
return mode->name;
}
int
get_mode_size (ir_mode *mode)
{
+ assert(mode && "no mode given");
return mode->size;
}
/*
int
get_mode_ld_align (ir_mode *mode)
{
+ assert(mode && "no mode given");
return mode->ld_align;
}
tarval *
get_mode_min (ir_mode *mode)
{
+ assert(mode && "no mode given");
return mode->min;
}
tarval *
get_mode_max (ir_mode *mode)
{
+ assert(mode && "no mode given");
return mode->max;
}
tarval *
get_mode_null (ir_mode *mode)
{
+ assert(mode && "no mode given");
return mode->null;
}
unsigned
get_mode_fsigned (ir_mode *mode)
{
+ assert(mode && "no mode given");
return mode->fsigned;
}
unsigned
get_mode_ffloat (ir_mode *mode)
{
+ assert(mode && "no mode given");
return mode->ffloat;
}
The set of "float" is defined as:
---------------------------------
- float = {irm_f, irm_d}
+ float = {irm_F, irm_D, irm_E}
The set of "int" is defined as:
-------------------------------
- int = {irm_c, irm_C, irm_h, irm_H, irm_i, irm_I, irm_l, irm_L}
+ int = {irm_Bs, irm_Bu, irm_Hs, irm_Hu, irm_Is, irm_Iu, irm_Ls, irm_Lu}
The set of "num" is defined as:
-------------------------------
- num = {irm_f, irm_d, irm_c, irm_C, irm_h, irm_H,
- irm_i, irm_I, irm_l, irm_L}
+ num = {irm_F, irm_D, irm_E, irm_Bs, irm_Bu, irm_Hs, irm_Hu,
+ irm_Is, irm_Iu, irm_Ls, irm_Lu}
= {float || int}
The set of "data" is defined as:
-------------------------------
- data = {irm_f, irm_d, irm_c, irm_C, irm_h, irm_H,
- irm_i, irm_I, irm_l, irm_L, irm_p}
- = {num || irm_p}
+ data = {irm_F, irm_D, irm_E irm_Bs, irm_Bu, irm_Hs, irm_Hu,
+ irm_Is, irm_Iu, irm_Ls, irm_Lu, irm_C, irm_U, irm_p}
+ = {num || irm_C || irm_P}
The set of "datab" is defined as:
---------------------------------
- datab = {irm_f, irm_d, irm_c, irm_C, irm_h, irm_H,
- irm_i, irm_I, irm_l, irm_L, irm_p, irm_b, irm_B}
- = {data || irm_b || irm_B}
+ datab = {irm_F, irm_D, irm_E, irm_Bs, irm_Bu, irm_Hs, irm_Hu,
+ irm_Is, irm_Iu, irm_Ls, irm_Lu, irm_C, irm_U, irm_P, irm_b}
+ = {data || irm_b }
The set of "dataM" is defined as:
---------------------------------
- dataM = {irm_f, irm_d, irm_c, irm_C, irm_h, irm_H, irm_i,
- irm_I, irm_l, irm_L, irm_p, irm_M}
+ dataM = {irm_F, irm_D, irm_E, irm_Bs, irm_Bu, irm_Hs, irm_Hu,
+ irm_Is, irm_Iu, irm_Ls, irm_Lu, irm_C, irm_U, irm_P, irm_M}
= {data || irm_M}
*/
int
mode_is_signed (ir_mode *mode)
{
- int res;
- unsigned fsigned;
- fsigned = get_mode_fsigned (mode);
- if (fsigned == 1) {
- res = 1;
- }
- else {
- res = 0;
- }
- return res;
+ int res;
+ unsigned fsigned;
+
+ assert(mode && "no mode given");
+ fsigned = get_mode_fsigned (mode);
+ if (fsigned == 1) {
+ res = 1;
+ }
+ else {
+ res = 0;
+ }
+ return res;
}
-int
+INLINE int
mode_is_float (ir_mode *mode)
{
- int res;
- unsigned ffloat;
- ffloat = get_mode_ffloat (mode);
- if (ffloat == 1) {
- res = 1;
- }
- else {
- res = 0;
- }
- return res;
+ int res;
+ unsigned ffloat;
+
+ assert(mode && "no mode given");
+ ffloat = get_mode_ffloat (mode);
+ if (ffloat == 1) {
+ res = 1;
+ }
+ else {
+ res = 0;
+ }
+ return res;
}
-int
+INLINE int
mode_is_int (ir_mode *mode)
{
- int res;
- modecode code;
- code = get_mode_modecode (mode);
- if ((code >= irm_c) && (code <= irm_L)) {
- res = 1;
- }
- else {
- res = 0;
- }
- return res;
+ int res;
+ modecode code;
+
+ assert(mode && "no mode given");
+ code = get_mode_modecode (mode);
+ if ((code >= irm_Bs) && (code <= irm_Lu)) {
+ res = 1;
+ }
+ else {
+ res = 0;
+ }
+ return res;
}
-int
+INLINE int
mode_is_num (ir_mode *mode)
{
int res;
+
+ assert(mode && "no mode given");
if (mode_is_int (mode) || mode_is_float (mode)) {
res = 1;
}
return res;
}
-int
+INLINE int
mode_is_data (ir_mode *mode)
{
int res;
modecode code;
+
+ assert(mode && "no mode given");
code = get_mode_modecode (mode);
- if (mode_is_num (mode) || code == irm_p) {
+ if (mode_is_num (mode) ||
+ code == irm_C || code == irm_U || code == irm_P) {
res = 1;
}
else {
{
int res;
modecode code;
+
+ assert(mode && "no mode given");
code = get_mode_modecode (mode);
- if (mode_is_data (mode) || code == irm_b || code == irm_B) {
+ if (mode_is_data (mode) || code == irm_b ) {
res = 1;
}
else {
{
int res;
modecode code;
+
+ assert(mode && "no mode given");
code = get_mode_modecode (mode);
if (mode_is_data (mode) || code == irm_M) {
res = 1;