Unary ! is a reduction operator.

This commit is contained in:
steve 2001-04-01 22:26:21 +00:00
parent bf30a0bc07
commit ce66498c88
1 changed files with 6 additions and 2 deletions

View File

@ -17,7 +17,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#if !defined(WINNT)
#ident "$Id: eval_expr.c,v 1.10 2001/04/01 21:47:29 steve Exp $"
#ident "$Id: eval_expr.c,v 1.11 2001/04/01 22:26:21 steve Exp $"
#endif
# include "vvp_priv.h"
@ -435,14 +435,15 @@ static struct vector_info draw_unary_expr(ivl_expr_t exp, unsigned wid)
{
struct vector_info res;
ivl_expr_t sub = ivl_expr_oper1(exp);
res = draw_eval_expr_wid(sub, wid);
switch (ivl_expr_opcode(exp)) {
case '~':
res = draw_eval_expr_wid(sub, wid);
fprintf(vvp_out, " %%inv %u, %u;\n", res.base, res.wid);
break;
case '!':
res = draw_eval_expr(sub);
if (res.wid > 1) {
/* a ! on a vector is implemented with a reduction
nor. Generate the result into the first bit of
@ -515,6 +516,9 @@ struct vector_info draw_eval_expr(ivl_expr_t exp)
/*
* $Log: eval_expr.c,v $
* Revision 1.11 2001/04/01 22:26:21 steve
* Unary ! is a reduction operator.
*
* Revision 1.10 2001/04/01 21:47:29 steve
* Implement the unary ! operator.
*