From: ceriel Date: Thu, 8 Jan 1987 14:11:23 +0000 (+0000) Subject: Added bitwise and and or operators X-Git-Tag: release-5-5~5036 X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=ceee24a4cd095f88b7ac167d4bfa0fef4603ee70;p=ack.git Added bitwise and and or operators --- diff --git a/mach/proto/ncg/compute.c b/mach/proto/ncg/compute.c index d023fd892..90b7d13fd 100644 --- a/mach/proto/ncg/compute.c +++ b/mach/proto/ncg/compute.c @@ -79,6 +79,8 @@ char opdesc[] = { 0, /* EX_HIGHW */ LLDEF, /* EX_INREG */ LLDEF, /* EX_REGVAR */ + LLDEF|RLDEF, /* EX_OR */ + LLDEF|RLDEF, /* EX_AND */ }; string salloc(),strcpy(),strcat(); @@ -290,6 +292,14 @@ result_t compute(node) register node_p node; { assert(leaf1.e_typ == EV_INT && leaf2.e_typ == EV_INT); result.e_v.e_con = leaf1.e_v.e_con - leaf2.e_v.e_con; return(result); + case EX_OR: + assert(leaf1.e_typ == EV_INT && leaf2.e_typ == EV_INT); + result.e_v.e_con = leaf1.e_v.e_con | leaf2.e_v.e_con; + return(result); + case EX_AND: + assert(leaf1.e_typ == EV_INT && leaf2.e_typ == EV_INT); + result.e_v.e_con = leaf1.e_v.e_con & leaf2.e_v.e_con; + return(result); case EX_TIMES: assert(leaf1.e_typ == EV_INT && leaf2.e_typ == EV_INT); result.e_v.e_con = leaf1.e_v.e_con * leaf2.e_v.e_con;