shithub: mc

ref: 6e35fce1673ee59c3bc1c302263ecb2e92fa5fe3
dir: /parse/ops.def/

View raw version
/* operator name, is it pure */
O(Obad, 1)
O(Oadd, 1)
O(Osub, 1)
O(Omul, 1)
O(Odiv, 1)
O(Omod, 1)
O(Oneg, 1)
O(Obor, 1)
O(Oband, 1)
O(Obxor, 1)
O(Obsl, 1)
O(Obsr, 1)
O(Obnot, 1)
O(Opreinc, 1)
O(Opostinc, 1)
O(Opredec, 1)
O(Opostdec, 1)
O(Oaddr, 1)
O(Oderef, 1)
O(Olor, 1)
O(Oland, 1)
O(Olnot, 1)
O(Oeq, 1)
O(One, 1)
O(Ogt, 1)
O(Oge, 1)
O(Olt, 1)
O(Ole, 1)
O(Oasn, 1)
O(Oaddeq, 1)
O(Osubeq, 1)
O(Omuleq, 1)
O(Odiveq, 1)
O(Omodeq, 1)
O(Oboreq, 1)
O(Obandeq, 1)
O(Obxoreq, 1)
O(Obsleq, 1)
O(Obsreq, 1)
O(Oidx, 1)
O(Oslice, 1)
O(Omemb, 1)
O(Osize, 1)
O(Ocall, 0)
O(Ocast, 1)
O(Oret, 1)
O(Ojmp, 0)
O(Obreak, 0)
O(Ocontinue, 0)
O(Ovar, 1)
O(Olit, 1)
O(Olbl, 1)
O(Oucon, 1)
O(Ouget, 1)
O(Otup, 1)
O(Ostruct, 1)
O(Oarr, 1)

/* all below this point are backend-only */
O(Ocjmp, 1)        /* conditional jump */
O(Oset, 1)         /* store to var */
O(Osllen, 1)       /* size of slice */
O(Oslbase, 1)      /* base of sice */
O(Oblit, 1)        /* block copy of memory */
O(Otrunc, 1)       /* truncating cast */
O(Ozwiden, 1)      /* zero-extending widening cast */
O(Oswiden, 1)      /* sign-extending widening cast */
O(Oflt2int, 1)     /* float to int conversion */
O(Oint2flt, 1)     /* int to float conversion */
O(Ofadd, 1)
O(Ofsub, 1)
O(Ofmul, 1)
O(Ofdiv, 1)
O(Ofneg, 1)

/* floating point comparisons */
O(Ofeq, 1)
O(Ofne, 1)
O(Ofgt, 1)
O(Ofge, 1)
O(Oflt, 1)
O(Ofle, 1)
/* unsigned comparisons */
O(Oueq, 1)
O(Oune, 1)
O(Ougt, 1)
O(Ouge, 1)
O(Oult, 1)
O(Oule, 1)