Remove the obsolete functor delete functions.

This commit is contained in:
steve 2003-03-13 04:36:57 +00:00
parent 155eb70d65
commit f45fd155c4
13 changed files with 34 additions and 429 deletions

View File

@ -16,7 +16,7 @@
# 59 Temple Place - Suite 330
# Boston, MA 02111-1307, USA
#
#ident "$Id: Makefile.in,v 1.47 2003/03/08 20:59:23 steve Exp $"
#ident "$Id: Makefile.in,v 1.48 2003/03/13 04:36:57 steve Exp $"
#
#
SHELL = /bin/sh
@ -68,7 +68,7 @@ vpi_priv.o vpi_scope.o vpi_real.o vpi_signal.o vpi_tasks.o vpi_time.o \
vpi_memory.o vpi_vthr_vector.o vpip_bin.o vpip_hex.o vpip_oct.o \
vpip_to_dec.o vvp_vpi.o
O = main.o parse.o parse_misc.o lexor.o arith.o bufif.o compile.o debug.o \
O = main.o parse.o parse_misc.o lexor.o arith.o bufif.o compile.o \
functor.o fvectors.o npmos.o resolv.o stop.o symbols.o ufunc.o codes.o \
vthread.o schedule.o statistics.o tables.o udp.o memory.o force.o event.o \
logic.o delay.o words.o $V

View File

@ -17,7 +17,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#ifdef HAVE_CVS_IDENT
#ident "$Id: compile.cc,v 1.156 2003/03/10 23:37:07 steve Exp $"
#ident "$Id: compile.cc,v 1.157 2003/03/13 04:36:57 steve Exp $"
#endif
# include "arith.h"
@ -710,14 +710,8 @@ void const_functor_s::set(vvp_ipoint_t p, bool, unsigned val, unsigned)
fprintf(stderr, "internal error: Set value to const_functor 0x%x\n", p);
fprintf(stderr, " : Value is %u, trying to set %u\n",
oval, val);
#if defined(WITH_DEBUG)
debug_print(p);
breakpoint();
#else
fprintf(stderr, " : I'm driving functor 0x%x\n", out);
assert(0);
#endif
}
@ -1533,6 +1527,9 @@ void compile_param_string(char*label, char*name, char*str, char*value)
/*
* $Log: compile.cc,v $
* Revision 1.157 2003/03/13 04:36:57 steve
* Remove the obsolete functor delete functions.
*
* Revision 1.156 2003/03/10 23:37:07 steve
* Direct support for string parameters.
*

View File

@ -19,7 +19,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#if !defined(WINNT)
#ident "$Id: config.h.in,v 1.11 2002/05/24 00:43:16 steve Exp $"
#ident "$Id: config.h.in,v 1.12 2003/03/13 04:36:57 steve Exp $"
#endif
# define SIZEOF_UNSIGNED_LONG_LONG 0
@ -36,8 +36,6 @@
# undef HAVE_MALLOC_H
# undef HAVE_LIBREADLINE
# undef ENABLE_VVP_DEBUG
#ifndef MODULE_DIR
# define MODULE_DIR "."
#endif
@ -56,10 +54,6 @@ typedef unsigned long vvp_time64_t;
# endif
#endif
#if defined(HAVE_LIBREADLINE) && defined(ENABLE_VVP_DEBUG)
# define WITH_DEBUG 1
#endif
/* getrusage, /proc/self/statm */
# undef HAVE_SYS_RESOURCE_H
@ -85,6 +79,9 @@ typedef unsigned long vvp_time64_t;
/*
* $Log: config.h.in,v $
* Revision 1.12 2003/03/13 04:36:57 steve
* Remove the obsolete functor delete functions.
*
* Revision 1.11 2002/05/24 00:43:16 steve
* Define SIZEOF_UNSIGNED_LONG_LONG
*

View File

@ -29,9 +29,6 @@ fi
AC_PROG_INSTALL
AC_ARG_ENABLE(vvp-debug, vvp-debug -- interactive debugger for VVP runtime.,
AC_DEFINE(ENABLE_VVP_DEBUG))
AC_CHECK_HEADERS(getopt.h malloc.h)
AC_CHECK_SIZEOF(unsigned long long)

View File

@ -1,198 +0,0 @@
/*
* Copyright (c) 2001 Stephen Williams (steve@icarus.com)
*
* This source code is free software; you can redistribute it
* and/or modify it in source code form under the terms of the GNU
* General Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#ifdef HAVE_CVS_IDENT
#ident "$Id: debug.cc,v 1.11 2003/02/09 23:33:26 steve Exp $"
#endif
/*
* This file provides a simple command line debugger for the vvp
* runtime. It is a means to interact with the user running the
* simulation.
*/
# include "config.h"
#if defined(WITH_DEBUG)
# include "debug.h"
# include "functor.h"
# include "schedule.h"
# include <stdio.h>
# include <readline/readline.h>
# include <readline/history.h>
# include <string.h>
# include <stdlib.h>
#ifdef HAVE_MALLOC_H
# include <malloc.h>
#endif
static bool interact_flag = false;
static void cmd_lookup(unsigned argc, char*argv[])
{
printf(" **** not implemented...\n");
}
static void cmd_fbreak(unsigned argc, char*argv[])
{
for (unsigned idx = 1 ; idx < argc ; idx += 1) {
vvp_ipoint_t fnc = strtoul(argv[idx],0,0);
functor_t fp = functor_index(fnc);
if (fp == 0) {
continue;
}
fp->break_flag = 1;
}
}
static const char bitval_tab[4] = { '0', '1', 'x', 'z' };
static const char*strength_tab[8] = {
"hiz", "small",
"medium", "weak",
"large", "pull",
"strong", "supply" };
static void cmd_functor(unsigned argc, char*argv[])
{
for (unsigned idx = 1 ; idx < argc ; idx += 1) {
vvp_ipoint_t fnc = strtoul(argv[idx],0,0);
functor_t fp = functor_index(fnc);
if (fp == 0) {
continue;
}
fp->debug_print(fnc);
}
}
static void cmd_go(unsigned, char*[])
{
interact_flag = false;
}
static void cmd_time(unsigned, char*[])
{
unsigned long ticks = schedule_simtime();
printf("%lu ticks\n", ticks);
}
static void cmd_unknown(unsigned argc, char*argv[])
{
printf("Unknown command: %s\n", argv[0]);
}
struct {
const char*name; void (*proc)(unsigned argc, char*argv[]);
} cmd_table[] = {
{ "fbreak", &cmd_fbreak},
{ "func", &cmd_functor},
{ "go", &cmd_go},
{ "lookup", &cmd_lookup},
{ "time", &cmd_time},
{ 0, &cmd_unknown}
};
void breakpoint(void)
{
printf("** VVP Interactive Debugger **\n");
printf("Current simulation time is %lu ticks.\n", schedule_simtime());
interact_flag = true;
while (interact_flag) {
char*input = readline("> ");
if (input == 0)
break;
unsigned argc = 0;
char**argv = new char*[strlen(input)/2];
for (char*cp = input+strspn(input, " ")
; *cp; cp += strspn(cp, " ")) {
argv[argc] = cp;
cp += strcspn(cp, " ");
if (*cp)
*cp++ = 0;
argc += 1;
}
if (argc > 0) {
unsigned idx;
for (idx = 0 ; cmd_table[idx].name ; idx += 1)
if (strcmp(cmd_table[idx].name, argv[0]) == 0)
break;
cmd_table[idx].proc (argc, argv);
}
delete[] argv;
free(input);
}
}
#endif
/*
* $Log: debug.cc,v $
* Revision 1.11 2003/02/09 23:33:26 steve
* Spelling fixes.
*
* Revision 1.10 2002/08/12 01:35:08 steve
* conditional ident string using autoconfig.
*
* Revision 1.9 2002/07/05 04:40:59 steve
* Symbol table uses more efficient key string allocator,
* and remove all the symbol tables after compile is done.
*
* Revision 1.8 2001/12/18 05:32:11 steve
* Improved functor debug dumps.
*
* Revision 1.7 2001/09/15 18:27:05 steve
* Make configure detect malloc.h
*
* Revision 1.6 2001/08/09 22:25:30 steve
* Include functor address in debug functor print.
*
* Revision 1.5 2001/07/19 02:20:55 steve
* EOF is the same as resume.
*
* Revision 1.4 2001/05/31 04:12:43 steve
* Make the bufif0 and bufif1 gates strength aware,
* and accurately propagate strengths of outputs.
*
* Revision 1.3 2001/05/30 03:02:35 steve
* Propagate strength-values instead of drive strengths.
*
* Revision 1.2 2001/05/08 23:32:26 steve
* Add to the debugger the ability to view and
* break on functors.
*
* Add strengths to functors at compile time,
* and Make functors pass their strengths as they
* propagate their output.
*
* Revision 1.1 2001/05/05 23:55:46 steve
* Add the beginnings of an interactive debugger.
*
*/

View File

@ -1,36 +0,0 @@
#ifndef __debug_H
#define __debug_H
/*
* Copyright (c) 2001 Stephen Williams (steve@icarus.com)
*
* This source code is free software; you can redistribute it
* and/or modify it in source code form under the terms of the GNU
* General Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#ifdef HAVE_CVS_IDENT
#ident "$Id: debug.h,v 1.2 2002/08/12 01:35:08 steve Exp $"
#endif
extern void breakpoint(void);
/*
* $Log: debug.h,v $
* Revision 1.2 2002/08/12 01:35:08 steve
* conditional ident string using autoconfig.
*
* Revision 1.1 2001/05/05 23:55:46 steve
* Add the beginnings of an interactive debugger.
*
*/
#endif

View File

@ -1,26 +0,0 @@
INTERACTIVE ASSEMBLY DEBUGGER
The VVP runtime includes an interactive runtime debugger that allows
the expert user to trace the actions of the VVP simulation. It is
entered just before simulation starts if the user uses the -d flag to
the vvp command, and it is also entered when an interesting breakpoint
is triggered. The -d flag is useful for giving the user a chance to
set breakpoints.
DEBUGGER COMMANDS
* go
Resume the simulation. The simulation will continue until the next
breakpoint, or until the simulation ends.
* lookup <symbol>...
Give a symbol name, and this function will look up that symbol and
return the type and address.
fbreak <address>...
Set the breakpoint on a given functor address. (Use the lookup
function to locate the address.)

View File

@ -17,12 +17,11 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#ifdef HAVE_CVS_IDENT
#ident "$Id: functor.cc,v 1.41 2002/08/12 01:35:08 steve Exp $"
#ident "$Id: functor.cc,v 1.42 2003/03/13 04:36:57 steve Exp $"
#endif
# include "functor.h"
# include "statistics.h"
# include "debug.h"
# include <assert.h>
# include <string.h>
# include <stdlib.h>
@ -131,9 +130,6 @@ functor_s::functor_s()
ostr = StX;
cstr = StX;
inhibit = 0;
#if defined(WITH_DEBUG)
break_flag = 0;
#endif
}
functor_s::~functor_s()
@ -155,10 +151,6 @@ void functor_s::propagate(unsigned val, unsigned str, bool push)
idx = idxp->port[ipoint_port(idx)];
}
#if defined(WITH_DEBUG)
if (break_flag)
breakpoint();
#endif
}
void functor_s::put_ostr(unsigned val, unsigned str, bool push)
@ -227,32 +219,11 @@ void extra_inputs_functor_s::set(vvp_ipoint_t i, bool push,
edge_inputs_functor_s::~edge_inputs_functor_s()
{}
#ifdef WITH_DEBUG
# include <stdio.h>
static const char bitval_tab[4] = { '0', '1', 'x', 'z' };
void functor_s::debug_print(vvp_ipoint_t fnc)
{
printf("0x%x: out pointer =", fnc);
vvp_ipoint_t cur = out;
while (cur) {
printf(" 0x%x", cur);
functor_t tmp = functor_index(cur);
cur = tmp->port[cur&3];
}
printf("\n");
printf("0x%x: input values = %c %c %c %c\n", fnc,
bitval_tab[ival&3],
bitval_tab[(ival>>2)&3],
bitval_tab[(ival>>4)&3],
bitval_tab[(ival>>6)&3]);
printf("0x%x: out value = %c (%02x)\n", fnc,
bitval_tab[get_oval()], get_ostr());
}
#endif
/*
* $Log: functor.cc,v $
* Revision 1.42 2003/03/13 04:36:57 steve
* Remove the obsolete functor delete functions.
*
* Revision 1.41 2002/08/12 01:35:08 steve
* conditional ident string using autoconfig.
*
@ -267,35 +238,5 @@ void functor_s::debug_print(vvp_ipoint_t fnc)
*
* Revision 1.37 2001/12/18 05:32:11 steve
* Improved functor debug dumps.
*
* Revision 1.36 2001/12/14 01:59:28 steve
* Better variable names for functor chunks.
*
* Revision 1.35 2001/12/06 03:31:24 steve
* Support functor delays for gates and UDP devices.
* (Stephan Boettcher)
*
* Revision 1.34 2001/11/16 04:22:27 steve
* include stdlib.h for portability.
*
* Revision 1.33 2001/11/10 18:07:11 steve
* Runtime support for functor delays. (Stephan Boettcher)
*
* Revision 1.32 2001/11/06 03:07:22 steve
* Code rearrange. (Stephan Boettcher)
*
* Revision 1.31 2001/11/04 05:03:21 steve
* MacOSX 10.1 updates.
*
* Revision 1.30 2001/11/01 03:00:19 steve
* Add force/cassign/release/deassign support. (Stephan Boettcher)
*
* Revision 1.29 2001/10/31 04:27:46 steve
* Rewrite the functor type to have fewer functor modes,
* and use objects to manage the different types.
* (Stephan Boettcher)
*
* Revision 1.28 2001/10/27 03:43:56 steve
* Propagate functor push, to make assign better.
*/

View File

@ -19,14 +19,11 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#ifdef HAVE_CVS_IDENT
#ident "$Id: functor.h,v 1.49 2003/02/09 23:33:26 steve Exp $"
#ident "$Id: functor.h,v 1.50 2003/03/13 04:36:57 steve Exp $"
#endif
# include "pointers.h"
# include "delay.h"
#ifdef ENABLE_VVP_DEBUG
# include "debug.h"
#endif
/*
* The vvp_ipoint_t is an integral type that is 32bits. The low 2 bits
@ -182,13 +179,6 @@ struct functor_s {
unsigned inhibit : 1;
public:
#if defined(WITH_DEBUG)
/* True if this functor triggers a breakpoint. */
unsigned break_flag : 1;
virtual void debug_print(vvp_ipoint_t fnc);
#endif
public:
virtual void set(vvp_ipoint_t ipt, bool push,
unsigned val, unsigned str = 0) = 0;
@ -266,11 +256,6 @@ void functor_set(vvp_ipoint_t ptr, unsigned val, unsigned str, bool push)
{
functor_t fp = functor_index(ptr);
fp->set(ptr, push, val, str);
#if defined(WITH_DEBUG)
if (fp->break_flag)
breakpoint();
#endif
}
/*
@ -352,6 +337,9 @@ extern vvp_fvector_t vvp_fvector_continuous_new(unsigned size, vvp_ipoint_t p);
/*
* $Log: functor.h,v $
* Revision 1.50 2003/03/13 04:36:57 steve
* Remove the obsolete functor delete functions.
*
* Revision 1.49 2003/02/09 23:33:26 steve
* Spelling fixes.
*

View File

@ -17,11 +17,10 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#ifdef HAVE_CVS_IDENT
#ident "$Id: main.cc,v 1.34 2003/02/07 02:45:05 steve Exp $"
#ident "$Id: main.cc,v 1.35 2003/03/13 04:36:57 steve Exp $"
#endif
# include "config.h"
# include "debug.h"
# include "parse_misc.h"
# include "compile.h"
# include "schedule.h"
@ -123,7 +122,6 @@ int main(int argc, char*argv[])
int opt;
unsigned flag_errors = 0;
const char*design_path = 0;
bool debug_flag = false;
struct rusage cycles[3];
const char *logfile_name = 0x0;
FILE *logfile = 0x0;
@ -144,16 +142,10 @@ int main(int argc, char*argv[])
#endif
while ((opt = getopt(argc, argv, "+dhl:M:m:v")) != EOF) switch (opt) {
case 'd':
debug_flag = true;
break;
case 'h':
fprintf(stderr,
"Usage: vvp [options] input-file [+plusargs...]\n"
"Options:\n"
#if defined(WITH_DEBUG)
" -d Enter the debugger.\n"
#endif
" -h Print this help message.\n"
" -l file Logfile, '-' for <stderr>\n"
" -M path VPI module directory\n"
@ -267,10 +259,6 @@ int main(int argc, char*argv[])
}
}
#if defined(WITH_DEBUG)
if (debug_flag)
breakpoint();
#endif
schedule_simulate();
@ -297,6 +285,9 @@ int main(int argc, char*argv[])
/*
* $Log: main.cc,v $
* Revision 1.35 2003/03/13 04:36:57 steve
* Remove the obsolete functor delete functions.
*
* Revision 1.34 2003/02/07 02:45:05 steve
* Mke getopt ignore options after the file name.
*

View File

@ -17,7 +17,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#ifdef HAVE_CVS_IDENT
#ident "$Id: resolv.cc,v 1.16 2003/02/09 23:33:26 steve Exp $"
#ident "$Id: resolv.cc,v 1.17 2003/03/13 04:36:57 steve Exp $"
#endif
# include "resolv.h"
@ -188,22 +188,12 @@ void resolv_functor_s::set(vvp_ipoint_t i, bool push, unsigned, unsigned str)
put_ostr(val, sval, false);
}
#ifdef WITH_DEBUG
# include <stdio.h>
static const char bitval_tab[4] = { '0', '1', 'x', 'z' };
void resolv_functor_s::debug_print(vvp_ipoint_t fnc)
{
printf("0x%x: Resolver tied to %02x\n", fnc, hiz_);
printf("0x%x: input strengths = %02x %02x %02x %02x\n", fnc,
istr[0], istr[1], istr[2], istr[3]);
functor_s::debug_print(fnc);
}
#endif
/*
* $Log: resolv.cc,v $
* Revision 1.17 2003/03/13 04:36:57 steve
* Remove the obsolete functor delete functions.
*
* Revision 1.16 2003/02/09 23:33:26 steve
* Spelling fixes.
*
@ -223,40 +213,5 @@ void resolv_functor_s::debug_print(vvp_ipoint_t fnc)
*
* Revision 1.11 2001/12/15 02:11:51 steve
* Give tri0 and tri1 their proper strengths.
*
* Revision 1.10 2001/12/15 01:54:39 steve
* Support tri0 and tri1 resolvers.
*
* Revision 1.9 2001/12/06 03:31:25 steve
* Support functor delays for gates and UDP devices.
* (Stephan Boettcher)
*
* Revision 1.8 2001/11/07 03:34:42 steve
* Use functor pointers where vvp_ipoint_t is unneeded.
*
* Revision 1.7 2001/10/31 04:27:47 steve
* Rewrite the functor type to have fewer functor modes,
* and use objects to manage the different types.
* (Stephan Boettcher)
*
* Revision 1.6 2001/10/14 01:45:11 steve
* Propogate strength-only changes from resolver.
*
* Revision 1.5 2001/07/21 02:34:39 steve
* Fix blending of ambiguous pairs.
*
* Revision 1.4 2001/05/31 04:12:43 steve
* Make the bufif0 and bufif1 gates strength aware,
* and accurately propagate strengths of outputs.
*
* Revision 1.3 2001/05/30 03:02:35 steve
* Propagate strength-values instead of drive strengths.
*
* Revision 1.2 2001/05/12 20:38:06 steve
* A resolver that understands some simple strengths.
*
* Revision 1.1 2001/05/09 02:53:53 steve
* Implement the .resolv syntax.
*
*/

View File

@ -19,7 +19,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#ifdef HAVE_CVS_IDENT
#ident "$Id: resolv.h,v 1.7 2002/08/12 01:35:08 steve Exp $"
#ident "$Id: resolv.h,v 1.8 2003/03/13 04:36:57 steve Exp $"
#endif
# include "config.h"
@ -39,9 +39,6 @@ class resolv_functor_s: public functor_s {
virtual void set(vvp_ipoint_t i, bool push, unsigned val, unsigned str);
#ifdef WITH_DEBUG
void debug_print(vvp_ipoint_t fnc);
#endif
private:
unsigned char istr[4];
@ -50,6 +47,9 @@ class resolv_functor_s: public functor_s {
/*
* $Log: resolv.h,v $
* Revision 1.8 2003/03/13 04:36:57 steve
* Remove the obsolete functor delete functions.
*
* Revision 1.7 2002/08/12 01:35:08 steve
* conditional ident string using autoconfig.
*

View File

@ -17,12 +17,11 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#ifdef HAVE_CVS_IDENT
#ident "$Id: vthread.cc,v 1.104 2003/02/27 20:36:29 steve Exp $"
#ident "$Id: vthread.cc,v 1.105 2003/03/13 04:36:57 steve Exp $"
#endif
# include "vthread.h"
# include "codes.h"
# include "debug.h"
# include "schedule.h"
# include "functor.h"
# include "ufunc.h"
@ -586,9 +585,6 @@ bool of_BLEND(vthread_t thr, vvp_code_t cp)
bool of_BREAKPOINT(vthread_t thr, vvp_code_t cp)
{
#if defined(WITH_DEBUG)
breakpoint();
#endif
return true;
}
@ -2679,6 +2675,9 @@ bool of_CALL_UFUNC(vthread_t thr, vvp_code_t cp)
/*
* $Log: vthread.cc,v $
* Revision 1.105 2003/03/13 04:36:57 steve
* Remove the obsolete functor delete functions.
*
* Revision 1.104 2003/02/27 20:36:29 steve
* Add the cvt/vr instruction.
*