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