Permalink
Browse files

stub for the concat operator.

  • Loading branch information...
1 parent 72229ab commit 5b65f15df41f243de5eb9eeb3b4e46ae0d12d228 steve committed Oct 28, 2000
Showing with 45 additions and 9 deletions.
  1. +5 −1 ivl_target.h
  2. +15 −1 t-dll-expr.cc
  3. +5 −1 t-dll.h
  4. +20 −6 tgt-stub/stub.c
View
@@ -19,7 +19,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#if !defined(WINNT) && !defined(macintosh)
-#ident "$Id: ivl_target.h,v 1.23 2000/10/25 05:41:24 steve Exp $"
+#ident "$Id: ivl_target.h,v 1.24 2000/10/28 17:55:03 steve Exp $"
#endif
#ifdef __cplusplus
@@ -135,6 +135,7 @@ typedef struct ivl_statement_s*ivl_statement_t;
typedef enum ivl_expr_type_e {
IVL_EX_NONE = 0,
IVL_EX_BINARY,
+ IVL_EX_CONCAT,
IVL_EX_NUMBER,
IVL_EX_SFUNC,
IVL_EX_SIGNAL,
@@ -523,6 +524,9 @@ _END_DECL
/*
* $Log: ivl_target.h,v $
+ * Revision 1.24 2000/10/28 17:55:03 steve
+ * stub for the concat operator.
+ *
* Revision 1.23 2000/10/25 05:41:24 steve
* Get target signal from nexus_ptr.
*
View
@@ -17,7 +17,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#if !defined(WINNT) & !defined(macintosh)
-#ident "$Id: t-dll-expr.cc,v 1.5 2000/10/05 05:03:01 steve Exp $"
+#ident "$Id: t-dll-expr.cc,v 1.6 2000/10/28 17:55:03 steve Exp $"
#endif
# include "t-dll.h"
@@ -55,6 +55,17 @@ void dll_target::expr_binary(const NetEBinary*net)
expr_->u_.binary_.rig_ = rght;
}
+void dll_target::expr_concat(const NetEConcat*net)
+{
+ assert(expr_ == 0);
+
+ expr_ = new struct ivl_expr_s;
+ assert(expr_);
+
+ expr_->type_ = IVL_EX_CONCAT;
+ expr_->width_= net->expr_width();
+}
+
void dll_target::expr_const(const NetEConst*net)
{
assert(expr_ == 0);
@@ -122,6 +133,9 @@ void dll_target::expr_signal(const NetESignal*net)
/*
* $Log: t-dll-expr.cc,v $
+ * Revision 1.6 2000/10/28 17:55:03 steve
+ * stub for the concat operator.
+ *
* Revision 1.5 2000/10/05 05:03:01 steve
* xor and constant devices.
*
View
@@ -19,7 +19,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#if !defined(WINNT) && !defined(macintosh)
-#ident "$Id: t-dll.h,v 1.15 2000/10/21 16:49:45 steve Exp $"
+#ident "$Id: t-dll.h,v 1.16 2000/10/28 17:55:03 steve Exp $"
#endif
# include "target.h"
@@ -79,6 +79,7 @@ struct dll_target : public target_t, public expr_scan_t {
struct ivl_expr_s*expr_;
void expr_binary(const NetEBinary*);
+ void expr_concat(const NetEConcat*);
void expr_const(const NetEConst*);
void expr_sfunc(const NetESFunc*);
void expr_signal(const NetESignal*);
@@ -310,6 +311,9 @@ struct ivl_statement_s {
/*
* $Log: t-dll.h,v $
+ * Revision 1.16 2000/10/28 17:55:03 steve
+ * stub for the concat operator.
+ *
* Revision 1.15 2000/10/21 16:49:45 steve
* Reduce the target entry points to the target_design.
*
View
@@ -17,7 +17,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#if !defined(WINNT) && !defined(macintosh)
-#ident "$Id: stub.c,v 1.21 2000/10/25 05:41:24 steve Exp $"
+#ident "$Id: stub.c,v 1.22 2000/10/28 17:55:03 steve Exp $"
#endif
/*
@@ -35,20 +35,31 @@ static FILE*out;
static void show_expression(ivl_expr_t net, unsigned ind)
{
const ivl_expr_type_t code = ivl_expr_type(net);
+ unsigned width = ivl_expr_width(net);
+ const char*sign = ivl_expr_signed(net)? "signed" : "unsigned";
switch (code) {
+ case IVL_EX_BINARY:
+ fprintf(out, "%*s<\"%c\" width=%u, %s>\n", ind, "",
+ ivl_expr_opcode(net), width, sign);
+ show_expression(ivl_expr_oper1(net), ind+3);
+ show_expression(ivl_expr_oper2(net), ind+3);
+ break;
+
+ case IVL_EX_CONCAT:
+ fprintf(out, "%*s<concat width=%u, %s>\n", ind, "", width, sign);
+ break;
+
case IVL_EX_NUMBER: {
const char*bits = ivl_expr_bits(net);
- unsigned width = ivl_expr_width(net);
unsigned idx;
fprintf(out, "%*s<number=%u'b", ind, "", width);
for (idx = width ; idx > 0 ; idx -= 1)
fprintf(out, "%c", bits[idx-1]);
- fprintf(out, ", %s>\n", ivl_expr_signed(net)? "signed"
- : "unsigned");
+ fprintf(out, ", %s>\n", sign);
break;
}
@@ -63,8 +74,8 @@ static void show_expression(ivl_expr_t net, unsigned ind)
break;
case IVL_EX_SIGNAL:
- fprintf(out, "%*s<signal=%s, width=%u>\n", ind, "",
- ivl_expr_name(net), ivl_expr_width(net));
+ fprintf(out, "%*s<signal=%s, width=%u, %s>\n", ind, "",
+ ivl_expr_name(net), width, sign);
break;
default:
@@ -325,6 +336,9 @@ DECLARE_CYGWIN_DLL(DllMain);
/*
* $Log: stub.c,v $
+ * Revision 1.22 2000/10/28 17:55:03 steve
+ * stub for the concat operator.
+ *
* Revision 1.21 2000/10/25 05:41:24 steve
* Get target signal from nexus_ptr.
*

0 comments on commit 5b65f15

Please sign in to comment.