1*f8bc6aafSDavid du Colombier #include "gc.h" 2*f8bc6aafSDavid du Colombier 3*f8bc6aafSDavid du Colombier int machcap(Node * n)4*f8bc6aafSDavid du Colombiermachcap(Node *n) 5*f8bc6aafSDavid du Colombier { 6*f8bc6aafSDavid du Colombier 7*f8bc6aafSDavid du Colombier if(n == Z) 8*f8bc6aafSDavid du Colombier return 1; /* test */ 9*f8bc6aafSDavid du Colombier 10*f8bc6aafSDavid du Colombier switch(n->op) { 11*f8bc6aafSDavid du Colombier case OMUL: 12*f8bc6aafSDavid du Colombier case OLMUL: 13*f8bc6aafSDavid du Colombier case OASMUL: 14*f8bc6aafSDavid du Colombier case OASLMUL: 15*f8bc6aafSDavid du Colombier if(typechlv[n->type->etype]) 16*f8bc6aafSDavid du Colombier return 1; 17*f8bc6aafSDavid du Colombier break; 18*f8bc6aafSDavid du Colombier 19*f8bc6aafSDavid du Colombier case OADD: 20*f8bc6aafSDavid du Colombier case OAND: 21*f8bc6aafSDavid du Colombier case OOR: 22*f8bc6aafSDavid du Colombier case OSUB: 23*f8bc6aafSDavid du Colombier case OXOR: 24*f8bc6aafSDavid du Colombier case OASHL: 25*f8bc6aafSDavid du Colombier case OLSHR: 26*f8bc6aafSDavid du Colombier case OASHR: 27*f8bc6aafSDavid du Colombier if(typechlv[n->left->type->etype]) 28*f8bc6aafSDavid du Colombier return 1; 29*f8bc6aafSDavid du Colombier break; 30*f8bc6aafSDavid du Colombier 31*f8bc6aafSDavid du Colombier case OCAST: 32*f8bc6aafSDavid du Colombier return 1; 33*f8bc6aafSDavid du Colombier 34*f8bc6aafSDavid du Colombier case OCOND: 35*f8bc6aafSDavid du Colombier case OCOMMA: 36*f8bc6aafSDavid du Colombier case OLIST: 37*f8bc6aafSDavid du Colombier case OANDAND: 38*f8bc6aafSDavid du Colombier case OOROR: 39*f8bc6aafSDavid du Colombier case ONOT: 40*f8bc6aafSDavid du Colombier return 1; 41*f8bc6aafSDavid du Colombier 42*f8bc6aafSDavid du Colombier case OASADD: 43*f8bc6aafSDavid du Colombier case OASSUB: 44*f8bc6aafSDavid du Colombier case OASAND: 45*f8bc6aafSDavid du Colombier case OASOR: 46*f8bc6aafSDavid du Colombier case OASXOR: 47*f8bc6aafSDavid du Colombier return 1; 48*f8bc6aafSDavid du Colombier 49*f8bc6aafSDavid du Colombier case OASASHL: 50*f8bc6aafSDavid du Colombier case OASASHR: 51*f8bc6aafSDavid du Colombier case OASLSHR: 52*f8bc6aafSDavid du Colombier return 1; 53*f8bc6aafSDavid du Colombier 54*f8bc6aafSDavid du Colombier case OPOSTINC: 55*f8bc6aafSDavid du Colombier case OPOSTDEC: 56*f8bc6aafSDavid du Colombier case OPREINC: 57*f8bc6aafSDavid du Colombier case OPREDEC: 58*f8bc6aafSDavid du Colombier return 1; 59*f8bc6aafSDavid du Colombier 60*f8bc6aafSDavid du Colombier case OEQ: 61*f8bc6aafSDavid du Colombier case ONE: 62*f8bc6aafSDavid du Colombier case OLE: 63*f8bc6aafSDavid du Colombier case OGT: 64*f8bc6aafSDavid du Colombier case OLT: 65*f8bc6aafSDavid du Colombier case OGE: 66*f8bc6aafSDavid du Colombier case OHI: 67*f8bc6aafSDavid du Colombier case OHS: 68*f8bc6aafSDavid du Colombier case OLO: 69*f8bc6aafSDavid du Colombier case OLS: 70*f8bc6aafSDavid du Colombier return 1; 71*f8bc6aafSDavid du Colombier 72*f8bc6aafSDavid du Colombier case OCOM: 73*f8bc6aafSDavid du Colombier case ONEG: 74*f8bc6aafSDavid du Colombier break; 75*f8bc6aafSDavid du Colombier } 76*f8bc6aafSDavid du Colombier return 0; 77*f8bc6aafSDavid du Colombier } 78