mirror of
https://github.com/holub/mame
synced 2025-06-22 04:06:39 +03:00
Moved nltool.c and nlwav.c into src/emu/netlist/prg.
Added src/emu/netlist/build/makefile. This allows netlist to be ripped out of the tree and to compile it standalone. (nw)
This commit is contained in:
parent
f8e7f02ce0
commit
3011b4b068
@ -615,7 +615,7 @@ includedirs {
|
|||||||
}
|
}
|
||||||
|
|
||||||
files {
|
files {
|
||||||
MAME_DIR .. "src/tools/nltool.c",
|
MAME_DIR .. "src/emu/netlist/prg/nltool.c",
|
||||||
}
|
}
|
||||||
|
|
||||||
--------------------------------------------------
|
--------------------------------------------------
|
||||||
@ -651,7 +651,7 @@ includedirs {
|
|||||||
}
|
}
|
||||||
|
|
||||||
files {
|
files {
|
||||||
MAME_DIR .. "src/tools/nlwav.c",
|
MAME_DIR .. "src/emu/netlist/prg/nlwav.c",
|
||||||
}
|
}
|
||||||
|
|
||||||
--------------------------------------------------
|
--------------------------------------------------
|
||||||
|
166
src/emu/netlist/build/makefile
Normal file
166
src/emu/netlist/build/makefile
Normal file
@ -0,0 +1,166 @@
|
|||||||
|
###########################################################################
|
||||||
|
#
|
||||||
|
# makefile
|
||||||
|
#
|
||||||
|
# Core makefile for building MAME and derivatives
|
||||||
|
#
|
||||||
|
# Copyright (c) Nicola Salmoria and the MAME Team.
|
||||||
|
# Visit http://mamedev.org for licensing and usage restrictions.
|
||||||
|
#
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
OBJ = obj
|
||||||
|
SRC = ..
|
||||||
|
|
||||||
|
#-fuse-ld=gold -Wpedantic -march=native -march=native
|
||||||
|
|
||||||
|
# LTO = -flto=4 -fuse-linker-plugin -flto-partition=balanced -Wodr
|
||||||
|
|
||||||
|
CDEFS = -DPSTANDALONE=1 -DPTR64=1
|
||||||
|
#-Werror
|
||||||
|
CFLAGS = $(LTO) -g -O3 -std=c++98 -march=native -msse4.2 -Wall -Wpedantic -Wsign-compare -Wextra -Wno-long-long -Wno-unused-parameter -Wno-unused-result -Wno-variadic-macros -I..
|
||||||
|
LDFLAGS = $(LTO) -g -O3 -std=c++98
|
||||||
|
#CFLAGS = $(LTO) -g -O3 -std=c++11 -Wall -Wpedantic -Wsign-compare -Wextra -Isrc
|
||||||
|
#LDFLAGS = $(LTO) -g -O3 -std=c++11
|
||||||
|
|
||||||
|
CC = @g++-5
|
||||||
|
LD = @g++-5
|
||||||
|
MD = @mkdir
|
||||||
|
RM = @rm
|
||||||
|
|
||||||
|
TARGETS = nltool nlwav
|
||||||
|
|
||||||
|
NLOBJ = $(OBJ)
|
||||||
|
POBJ = $(OBJ)/plib
|
||||||
|
|
||||||
|
OBJDIRS = $(OBJ) \
|
||||||
|
$(OBJ)/analog \
|
||||||
|
$(OBJ)/solver \
|
||||||
|
$(OBJ)/devices \
|
||||||
|
$(OBJ)/plib \
|
||||||
|
$(OBJ)/devices \
|
||||||
|
$(OBJ)/macro \
|
||||||
|
$(OBJ)/tools \
|
||||||
|
$(OBJ)/prg \
|
||||||
|
|
||||||
|
|
||||||
|
OBJS = $(POBJS) $(NLOBJS)
|
||||||
|
|
||||||
|
POBJS := \
|
||||||
|
$(POBJ)/pstring.o \
|
||||||
|
$(POBJ)/palloc.o \
|
||||||
|
$(POBJ)/pparser.o \
|
||||||
|
$(POBJ)/pstate.o \
|
||||||
|
$(POBJ)/pstream.o \
|
||||||
|
|
||||||
|
NLOBJS := \
|
||||||
|
$(NLOBJ)/nl_base.o \
|
||||||
|
$(NLOBJ)/nl_parser.o \
|
||||||
|
$(NLOBJ)/nl_setup.o \
|
||||||
|
$(NLOBJ)/nl_factory.o \
|
||||||
|
$(NLOBJ)/analog/nld_bjt.o \
|
||||||
|
$(NLOBJ)/analog/nld_fourterm.o \
|
||||||
|
$(NLOBJ)/analog/nld_switches.o \
|
||||||
|
$(NLOBJ)/analog/nld_twoterm.o \
|
||||||
|
$(NLOBJ)/analog/nld_opamps.o \
|
||||||
|
$(NLOBJ)/devices/nld_4020.o \
|
||||||
|
$(NLOBJ)/devices/nld_4066.o \
|
||||||
|
$(NLOBJ)/devices/nld_7400.o \
|
||||||
|
$(NLOBJ)/devices/nld_7402.o \
|
||||||
|
$(NLOBJ)/devices/nld_7404.o \
|
||||||
|
$(NLOBJ)/devices/nld_7408.o \
|
||||||
|
$(NLOBJ)/devices/nld_7410.o \
|
||||||
|
$(NLOBJ)/devices/nld_7411.o \
|
||||||
|
$(NLOBJ)/devices/nld_7420.o \
|
||||||
|
$(NLOBJ)/devices/nld_7425.o \
|
||||||
|
$(NLOBJ)/devices/nld_7427.o \
|
||||||
|
$(NLOBJ)/devices/nld_7430.o \
|
||||||
|
$(NLOBJ)/devices/nld_7432.o \
|
||||||
|
$(NLOBJ)/devices/nld_7437.o \
|
||||||
|
$(NLOBJ)/devices/nld_7448.o \
|
||||||
|
$(NLOBJ)/devices/nld_7450.o \
|
||||||
|
$(NLOBJ)/devices/nld_7474.o \
|
||||||
|
$(NLOBJ)/devices/nld_7483.o \
|
||||||
|
$(NLOBJ)/devices/nld_7486.o \
|
||||||
|
$(NLOBJ)/devices/nld_7490.o \
|
||||||
|
$(NLOBJ)/devices/nld_7493.o \
|
||||||
|
$(NLOBJ)/devices/nld_74107.o \
|
||||||
|
$(NLOBJ)/devices/nld_74123.o \
|
||||||
|
$(NLOBJ)/devices/nld_74153.o \
|
||||||
|
$(NLOBJ)/devices/nld_74175.o \
|
||||||
|
$(NLOBJ)/devices/nld_74192.o \
|
||||||
|
$(NLOBJ)/devices/nld_74193.o \
|
||||||
|
$(NLOBJ)/devices/nld_74279.o \
|
||||||
|
$(NLOBJ)/devices/nld_74ls629.o \
|
||||||
|
$(NLOBJ)/devices/nld_82S16.o \
|
||||||
|
$(NLOBJ)/devices/nld_9310.o \
|
||||||
|
$(NLOBJ)/devices/nld_9312.o \
|
||||||
|
$(NLOBJ)/devices/nld_9316.o \
|
||||||
|
$(NLOBJ)/devices/nld_mm5837.o \
|
||||||
|
$(NLOBJ)/devices/nld_ne555.o \
|
||||||
|
$(NLOBJ)/devices/nld_r2r_dac.o \
|
||||||
|
$(NLOBJ)/devices/nld_legacy.o \
|
||||||
|
$(NLOBJ)/devices/net_lib.o \
|
||||||
|
$(NLOBJ)/devices/nld_log.o \
|
||||||
|
$(NLOBJ)/devices/nld_system.o \
|
||||||
|
$(NLOBJ)/devices/nld_truthtable.o \
|
||||||
|
$(NLOBJ)/macro/nlm_cd4xxx.o \
|
||||||
|
$(NLOBJ)/macro/nlm_opamp.o \
|
||||||
|
$(NLOBJ)/macro/nlm_other.o \
|
||||||
|
$(NLOBJ)/macro/nlm_ttl74xx.o \
|
||||||
|
$(NLOBJ)/solver/nld_solver.o \
|
||||||
|
$(NLOBJ)/tools/nl_convert.o \
|
||||||
|
|
||||||
|
all: maketree $(TARGETS)
|
||||||
|
|
||||||
|
#-------------------------------------------------
|
||||||
|
# clean
|
||||||
|
#-------------------------------------------------
|
||||||
|
|
||||||
|
clean:
|
||||||
|
$(RM) -rf $(OBJS) $(TARGETS)
|
||||||
|
|
||||||
|
#-------------------------------------------------
|
||||||
|
# nltool
|
||||||
|
#-------------------------------------------------
|
||||||
|
|
||||||
|
nltool: $(OBJ)/prg/nltool.o $(OBJS)
|
||||||
|
@echo Linking $@...
|
||||||
|
$(LD) -o $@ $(LDFLAGS) $^ $(LIBS)
|
||||||
|
|
||||||
|
nlwav: $(OBJ)/prg/nlwav.o $(OBJS)
|
||||||
|
@echo Linking $@...
|
||||||
|
$(LD) -o $@ $(LDFLAGS) $^ $(LIBS)
|
||||||
|
|
||||||
|
#-------------------------------------------------
|
||||||
|
# directories
|
||||||
|
#-------------------------------------------------
|
||||||
|
|
||||||
|
$(sort $(OBJDIRS)):
|
||||||
|
$(MD) -p $@
|
||||||
|
|
||||||
|
maketree: $(sort $(OBJDIRS))
|
||||||
|
|
||||||
|
|
||||||
|
#-------------------------------------------------
|
||||||
|
# generic rules
|
||||||
|
#-------------------------------------------------
|
||||||
|
|
||||||
|
$(OBJ)/%.o: $(SRC)/%.c
|
||||||
|
@echo Compiling $<...
|
||||||
|
$(CC) $(CDEFS) $(CFLAGS) -c $< -o $@
|
||||||
|
|
||||||
|
$(OBJ)/%.pp: $(SRC)/%.c | $(OSPREBUILD)
|
||||||
|
@echo Compiling $<...
|
||||||
|
$(CC) $(CDEFS) $(CFLAGS) -E $< -o $@
|
||||||
|
|
||||||
|
$(OBJ)/%.s: $(SRC)/%.c | $(OSPREBUILD)
|
||||||
|
@echo Compiling $<...
|
||||||
|
$(CC) $(CDEFS) $(CFLAGS) -S $< -o $@
|
||||||
|
|
||||||
|
$(OBJ)/%.a:
|
||||||
|
@echo Archiving $@...
|
||||||
|
$(RM) $@
|
||||||
|
$(AR) $(ARFLAGS) $@ $^
|
||||||
|
|
||||||
|
|
@ -5,6 +5,8 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <cstdio>
|
||||||
|
|
||||||
#include "solver/nld_solver.h"
|
#include "solver/nld_solver.h"
|
||||||
|
|
||||||
#include "plib/palloc.h"
|
#include "plib/palloc.h"
|
||||||
|
@ -5,9 +5,10 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <cstdio>
|
||||||
|
|
||||||
#include "pconfig.h"
|
#include "pconfig.h"
|
||||||
#include "palloc.h"
|
#include "palloc.h"
|
||||||
|
|
||||||
//============================================================
|
//============================================================
|
||||||
// Exceptions
|
// Exceptions
|
||||||
//============================================================
|
//============================================================
|
||||||
|
@ -63,9 +63,6 @@ typedef __int128_t INT128;
|
|||||||
|
|
||||||
#if !(PSTANDALONE)
|
#if !(PSTANDALONE)
|
||||||
|
|
||||||
//#undef ATTR_COLD
|
|
||||||
//#define ATTR_COLD
|
|
||||||
|
|
||||||
/* use MAME */
|
/* use MAME */
|
||||||
#if (USE_DELEGATE_TYPE == DELEGATE_TYPE_INTERNAL)
|
#if (USE_DELEGATE_TYPE == DELEGATE_TYPE_INTERNAL)
|
||||||
#define PHAS_PMF_INTERNAL 1
|
#define PHAS_PMF_INTERNAL 1
|
||||||
@ -101,10 +98,10 @@ typedef __int128_t INT128;
|
|||||||
/* ATTR_HOT and ATTR_COLD cause performance degration in 5.1 */
|
/* ATTR_HOT and ATTR_COLD cause performance degration in 5.1 */
|
||||||
//#define ATTR_HOT
|
//#define ATTR_HOT
|
||||||
//#define ATTR_COLD
|
//#define ATTR_COLD
|
||||||
#define ATTR_HOT __attribute__((hot))
|
#define ATTR_HOT __attribute__((hot))
|
||||||
#define ATTR_COLD __attribute__((cold))
|
#define ATTR_COLD __attribute__((cold))
|
||||||
|
|
||||||
#define RESTRICT
|
#define RESTRICT __restrict__
|
||||||
#define EXPECTED(x) (x)
|
#define EXPECTED(x) (x)
|
||||||
#define UNEXPECTED(x) (x)
|
#define UNEXPECTED(x) (x)
|
||||||
#define ATTR_PRINTF(x,y) __attribute__((format(printf, x, y)))
|
#define ATTR_PRINTF(x,y) __attribute__((format(printf, x, y)))
|
||||||
@ -144,28 +141,6 @@ typedef int64_t INT64;
|
|||||||
#define S64(val) val
|
#define S64(val) val
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* MINGW has adopted the MSVC formatting for 64-bit ints as of gcc 4.4 */
|
|
||||||
#if (defined(__MINGW32__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))) || defined(_MSC_VER)
|
|
||||||
#define I64FMT "I64"
|
|
||||||
#else
|
|
||||||
#define I64FMT "ll"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(_MSC_VER) || defined(__MINGW32__)
|
|
||||||
#if (PTR64)
|
|
||||||
#define SIZETFMT "I64u"
|
|
||||||
#else
|
|
||||||
#define SIZETFMT "u"
|
|
||||||
#endif
|
|
||||||
#else
|
|
||||||
//#define SIZETFMT "zu"
|
|
||||||
#if (PTR64)
|
|
||||||
#define SIZETFMT "lu"
|
|
||||||
#else
|
|
||||||
#define SIZETFMT "u"
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -566,7 +566,7 @@ public:
|
|||||||
p = pn + onstr.len();
|
p = pn + onstr.len();
|
||||||
pn = str.find(onstr, p);
|
pn = str.find(onstr, p);
|
||||||
}
|
}
|
||||||
if (p<str.len())
|
if (p < (int) str.len())
|
||||||
{
|
{
|
||||||
pstring t = str.substr(p);
|
pstring t = str.substr(p);
|
||||||
if (!ignore_empty || t.len() != 0)
|
if (!ignore_empty || t.len() != 0)
|
||||||
@ -579,7 +579,7 @@ public:
|
|||||||
pstring_list_t temp;
|
pstring_list_t temp;
|
||||||
pstring col = "";
|
pstring col = "";
|
||||||
|
|
||||||
int i = 0;
|
unsigned i = 0;
|
||||||
while (i<str.blen())
|
while (i<str.blen())
|
||||||
{
|
{
|
||||||
int p = -1;
|
int p = -1;
|
||||||
@ -715,6 +715,7 @@ public:
|
|||||||
|
|
||||||
void clear()
|
void clear()
|
||||||
{
|
{
|
||||||
|
#if 0
|
||||||
if (0)
|
if (0)
|
||||||
{
|
{
|
||||||
unsigned cnt = 0;
|
unsigned cnt = 0;
|
||||||
@ -727,6 +728,7 @@ public:
|
|||||||
else
|
else
|
||||||
printf("phashmap: No elements .. \n");
|
printf("phashmap: No elements .. \n");
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
m_values.clear();
|
m_values.clear();
|
||||||
for (unsigned i=0; i<m_hash.size(); i++)
|
for (unsigned i=0; i<m_hash.size(); i++)
|
||||||
m_hash[i] = -1;
|
m_hash[i] = -1;
|
||||||
|
@ -138,7 +138,7 @@ private:
|
|||||||
pstring m_number_chars_start;
|
pstring m_number_chars_start;
|
||||||
plist_t<pstring> m_tokens;
|
plist_t<pstring> m_tokens;
|
||||||
pstring m_whitespace;
|
pstring m_whitespace;
|
||||||
char m_string;
|
pstring::code_t m_string;
|
||||||
|
|
||||||
token_id_t m_tok_comment_start;
|
token_id_t m_tok_comment_start;
|
||||||
token_id_t m_tok_comment_end;
|
token_id_t m_tok_comment_end;
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
class pstream
|
class pstream
|
||||||
{
|
{
|
||||||
P_PREVENT_COPYING(pstream);
|
P_PREVENT_COPYING(pstream)
|
||||||
public:
|
public:
|
||||||
|
|
||||||
typedef long unsigned pos_type;
|
typedef long unsigned pos_type;
|
||||||
@ -93,7 +93,7 @@ private:
|
|||||||
|
|
||||||
class pistream : public pstream
|
class pistream : public pstream
|
||||||
{
|
{
|
||||||
P_PREVENT_COPYING(pistream);
|
P_PREVENT_COPYING(pistream)
|
||||||
public:
|
public:
|
||||||
|
|
||||||
pistream(unsigned flags) : pstream(flags) {}
|
pistream(unsigned flags) : pstream(flags) {}
|
||||||
@ -148,7 +148,7 @@ private:
|
|||||||
|
|
||||||
class postream : public pstream
|
class postream : public pstream
|
||||||
{
|
{
|
||||||
P_PREVENT_COPYING(postream);
|
P_PREVENT_COPYING(postream)
|
||||||
public:
|
public:
|
||||||
|
|
||||||
postream(unsigned flags) : pstream(flags) {}
|
postream(unsigned flags) : pstream(flags) {}
|
||||||
@ -190,7 +190,7 @@ private:
|
|||||||
|
|
||||||
class pomemstream : public postream
|
class pomemstream : public postream
|
||||||
{
|
{
|
||||||
P_PREVENT_COPYING(pomemstream);
|
P_PREVENT_COPYING(pomemstream)
|
||||||
public:
|
public:
|
||||||
|
|
||||||
pomemstream();
|
pomemstream();
|
||||||
@ -214,7 +214,7 @@ private:
|
|||||||
|
|
||||||
class postringstream : public postream
|
class postringstream : public postream
|
||||||
{
|
{
|
||||||
P_PREVENT_COPYING(postringstream );
|
P_PREVENT_COPYING(postringstream )
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@ -242,7 +242,7 @@ private:
|
|||||||
|
|
||||||
class pofilestream : public postream
|
class pofilestream : public postream
|
||||||
{
|
{
|
||||||
P_PREVENT_COPYING(pofilestream);
|
P_PREVENT_COPYING(pofilestream)
|
||||||
public:
|
public:
|
||||||
|
|
||||||
pofilestream(const pstring &fname);
|
pofilestream(const pstring &fname);
|
||||||
@ -267,7 +267,7 @@ private:
|
|||||||
|
|
||||||
class pifilestream : public pistream
|
class pifilestream : public pistream
|
||||||
{
|
{
|
||||||
P_PREVENT_COPYING(pifilestream);
|
P_PREVENT_COPYING(pifilestream)
|
||||||
public:
|
public:
|
||||||
|
|
||||||
pifilestream(const pstring &fname);
|
pifilestream(const pstring &fname);
|
||||||
@ -292,7 +292,7 @@ private:
|
|||||||
|
|
||||||
class pimemstream : public pistream
|
class pimemstream : public pistream
|
||||||
{
|
{
|
||||||
P_PREVENT_COPYING(pimemstream);
|
P_PREVENT_COPYING(pimemstream)
|
||||||
public:
|
public:
|
||||||
|
|
||||||
pimemstream(const void *mem, const pos_type len);
|
pimemstream(const void *mem, const pos_type len);
|
||||||
@ -317,7 +317,7 @@ private:
|
|||||||
|
|
||||||
class pistringstream : public pimemstream
|
class pistringstream : public pimemstream
|
||||||
{
|
{
|
||||||
P_PREVENT_COPYING(pistringstream);
|
P_PREVENT_COPYING(pistringstream)
|
||||||
public:
|
public:
|
||||||
|
|
||||||
pistringstream(const pstring &str) : pimemstream(str.cstr(), str.len()), m_str(str) { }
|
pistringstream(const pstring &str) : pimemstream(str.cstr(), str.len()), m_str(str) { }
|
||||||
@ -333,7 +333,7 @@ private:
|
|||||||
|
|
||||||
class pstream_fmt_writer_t : public pfmt_writer_t<>
|
class pstream_fmt_writer_t : public pfmt_writer_t<>
|
||||||
{
|
{
|
||||||
P_PREVENT_COPYING(pstream_fmt_writer_t);
|
P_PREVENT_COPYING(pstream_fmt_writer_t)
|
||||||
public:
|
public:
|
||||||
|
|
||||||
pstream_fmt_writer_t(postream &strm) : m_strm(strm) {}
|
pstream_fmt_writer_t(postream &strm) : m_strm(strm) {}
|
||||||
|
@ -118,7 +118,7 @@ template<typename F>
|
|||||||
const pstring_t<F> pstring_t<F>::substr(int start, int count) const
|
const pstring_t<F> pstring_t<F>::substr(int start, int count) const
|
||||||
{
|
{
|
||||||
pstring_t ret;
|
pstring_t ret;
|
||||||
unsigned alen = len();
|
int alen = (int) len();
|
||||||
if (start < 0)
|
if (start < 0)
|
||||||
start = 0;
|
start = 0;
|
||||||
if (start >= alen)
|
if (start >= alen)
|
||||||
@ -148,7 +148,7 @@ const pstring_t<F> pstring_t<F>::ucase() const
|
|||||||
{
|
{
|
||||||
pstring_t ret = *this;
|
pstring_t ret = *this;
|
||||||
ret.pcopy(cstr(), blen());
|
ret.pcopy(cstr(), blen());
|
||||||
for (int i=0; i<ret.len(); i++)
|
for (unsigned i=0; i<ret.len(); i++)
|
||||||
ret.m_ptr->str()[i] = toupper((unsigned) ret.m_ptr->str()[i]);
|
ret.m_ptr->str()[i] = toupper((unsigned) ret.m_ptr->str()[i]);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -159,11 +159,11 @@ int pstring_t<F>::find_first_not_of(const pstring_t &no) const
|
|||||||
char *t = m_ptr->str();
|
char *t = m_ptr->str();
|
||||||
unsigned nolen = no.len();
|
unsigned nolen = no.len();
|
||||||
unsigned tlen = len();
|
unsigned tlen = len();
|
||||||
for (int i=0; i < tlen; i++)
|
for (unsigned i=0; i < tlen; i++)
|
||||||
{
|
{
|
||||||
char *n = no.m_ptr->str();
|
char *n = no.m_ptr->str();
|
||||||
bool f = true;
|
bool f = true;
|
||||||
for (int j=0; j < nolen; j++)
|
for (unsigned j=0; j < nolen; j++)
|
||||||
{
|
{
|
||||||
if (F::code(t) == F::code(n))
|
if (F::code(t) == F::code(n))
|
||||||
f = false;
|
f = false;
|
||||||
@ -183,11 +183,11 @@ int pstring_t<F>::find_last_not_of(const pstring_t &no) const
|
|||||||
unsigned nolen = no.len();
|
unsigned nolen = no.len();
|
||||||
unsigned tlen = len();
|
unsigned tlen = len();
|
||||||
int last_found = -1;
|
int last_found = -1;
|
||||||
for (int i=0; i < tlen; i++)
|
for (unsigned i=0; i < tlen; i++)
|
||||||
{
|
{
|
||||||
char *n = no.m_ptr->str();
|
char *n = no.m_ptr->str();
|
||||||
bool f = true;
|
bool f = true;
|
||||||
for (int j=0; j < nolen; j++)
|
for (unsigned j=0; j < nolen; j++)
|
||||||
{
|
{
|
||||||
if (F::code(t) == F::code(n))
|
if (F::code(t) == F::code(n))
|
||||||
f = false;
|
f = false;
|
||||||
@ -251,7 +251,7 @@ const pstring_t<F> pstring_t<F>::rtrim(const pstring_t &ws) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
template<typename F>
|
template<typename F>
|
||||||
const pstring_t<F> pstring_t<F>::rpad(const pstring_t &ws, const int cnt) const
|
const pstring_t<F> pstring_t<F>::rpad(const pstring_t &ws, const unsigned cnt) const
|
||||||
{
|
{
|
||||||
// FIXME: pstringbuffer ret(*this);
|
// FIXME: pstringbuffer ret(*this);
|
||||||
|
|
||||||
@ -363,7 +363,7 @@ int pstring_t<F>::find(const pstring_t &search, unsigned start) const
|
|||||||
const char *s = search.cstr();
|
const char *s = search.cstr();
|
||||||
const unsigned startt = std::min(start, tlen);
|
const unsigned startt = std::min(start, tlen);
|
||||||
const char *t = cstr();
|
const char *t = cstr();
|
||||||
for (int i=0; i<startt; i++)
|
for (unsigned i=0; i<startt; i++)
|
||||||
t += F::codelen(t);
|
t += F::codelen(t);
|
||||||
for (int i=0; i <= (int) tlen - (int) startt - (int) slen; i++)
|
for (int i=0; i <= (int) tlen - (int) startt - (int) slen; i++)
|
||||||
{
|
{
|
||||||
@ -392,7 +392,7 @@ int pstring_t<F>::find(const mem_t *search, unsigned start) const
|
|||||||
const char *s = search;
|
const char *s = search;
|
||||||
const unsigned startt = std::min(start, tlen);
|
const unsigned startt = std::min(start, tlen);
|
||||||
const char *t = cstr();
|
const char *t = cstr();
|
||||||
for (int i=0; i<startt; i++)
|
for (unsigned i=0; i<startt; i++)
|
||||||
t += F::codelen(t);
|
t += F::codelen(t);
|
||||||
for (int i=0; i <= (int) tlen - (int) startt - (int) slen; i++)
|
for (int i=0; i <= (int) tlen - (int) startt - (int) slen; i++)
|
||||||
{
|
{
|
||||||
@ -426,7 +426,7 @@ bool pstring_t<F>::endsWith(const pstring_t &arg) const
|
|||||||
template<typename F>
|
template<typename F>
|
||||||
bool pstring_t<F>::startsWith(const mem_t *arg) const
|
bool pstring_t<F>::startsWith(const mem_t *arg) const
|
||||||
{
|
{
|
||||||
int alen = strlen(arg);
|
unsigned alen = strlen(arg);
|
||||||
if (alen > blen())
|
if (alen > blen())
|
||||||
return false;
|
return false;
|
||||||
else
|
else
|
||||||
|
@ -145,7 +145,7 @@ public:
|
|||||||
const pstring_t rtrim(const pstring_t &ws = " \t\n\r") const;
|
const pstring_t rtrim(const pstring_t &ws = " \t\n\r") const;
|
||||||
const pstring_t trim(const pstring_t &ws = " \t\n\r") const { return this->ltrim(ws).rtrim(ws); }
|
const pstring_t trim(const pstring_t &ws = " \t\n\r") const { return this->ltrim(ws).rtrim(ws); }
|
||||||
|
|
||||||
const pstring_t rpad(const pstring_t &ws, const int cnt) const;
|
const pstring_t rpad(const pstring_t &ws, const unsigned cnt) const;
|
||||||
|
|
||||||
const pstring_t ucase() const;
|
const pstring_t ucase() const;
|
||||||
|
|
||||||
@ -348,7 +348,7 @@ public:
|
|||||||
operator pstring() const { return pstring(m_ptr); }
|
operator pstring() const { return pstring(m_ptr); }
|
||||||
|
|
||||||
// concatenation operators
|
// concatenation operators
|
||||||
pstringbuffer& operator+=(const UINT8 c) { char buf[2] = { c, 0 }; pcat(buf); return *this; }
|
pstringbuffer& operator+=(const UINT8 c) { UINT8 buf[2] = { c, 0 }; pcat((char *) buf); return *this; }
|
||||||
pstringbuffer& operator+=(const pstring &string) { pcat(string); return *this; }
|
pstringbuffer& operator+=(const pstring &string) { pcat(string); return *this; }
|
||||||
pstringbuffer& operator+=(const char *string) { pcat(string); return *this; }
|
pstringbuffer& operator+=(const char *string) { pcat(string); return *this; }
|
||||||
|
|
||||||
|
@ -11,9 +11,9 @@
|
|||||||
#include <cstdio>
|
#include <cstdio>
|
||||||
|
|
||||||
#ifdef PSTANDALONE
|
#ifdef PSTANDALONE
|
||||||
#if (PSTANDALONE)
|
#if (PSTANDALONE)
|
||||||
#define PSTANDALONE_PROVIDED
|
#define PSTANDALONE_PROVIDED
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "plib/poptions.h"
|
#include "plib/poptions.h"
|
||||||
@ -98,12 +98,12 @@ class tool_options_t : public poptions
|
|||||||
public:
|
public:
|
||||||
tool_options_t() :
|
tool_options_t() :
|
||||||
poptions(),
|
poptions(),
|
||||||
opt_ttr ("t", "time_to_run", 1.0, "time to run the emulation (seconds)", this),
|
opt_ttr ("t", "time_to_run", 1.0, "time to run the emulation (seconds)", this),
|
||||||
opt_name("n", "name", "", "netlist in file to run; default is first one", this),
|
opt_name("n", "name", "", "netlist in file to run; default is first one", this),
|
||||||
opt_logs("l", "logs", "", "colon separated list of terminals to log", this),
|
opt_logs("l", "logs", "", "colon separated list of terminals to log", this),
|
||||||
opt_file("f", "file", "-", "file to process (default is stdin)", this),
|
opt_file("f", "file", "-", "file to process (default is stdin)", this),
|
||||||
opt_type("y", "type", "spice", "spice:eagle", "type of file to be converted: spice,eagle", this),
|
opt_type("y", "type", "spice", "spice:eagle", "type of file to be converted: spice,eagle", this),
|
||||||
opt_cmd ("c", "cmd", "run", "run|convert|listdevices", this),
|
opt_cmd ("c", "cmd", "run", "run|convert|listdevices", this),
|
||||||
opt_inp( "i", "input", "", "input file to process (default is none)", this),
|
opt_inp( "i", "input", "", "input file to process (default is none)", this),
|
||||||
opt_verb("v", "verbose", "be verbose - this produces lots of output", this),
|
opt_verb("v", "verbose", "be verbose - this produces lots of output", this),
|
||||||
opt_quiet("q", "quiet", "be quiet - no warnings", this),
|
opt_quiet("q", "quiet", "be quiet - no warnings", this),
|
||||||
@ -113,7 +113,7 @@ public:
|
|||||||
poption_double opt_ttr;
|
poption_double opt_ttr;
|
||||||
poption_str opt_name;
|
poption_str opt_name;
|
||||||
poption_str opt_logs;
|
poption_str opt_logs;
|
||||||
poption_str opt_file;
|
poption_str opt_file;
|
||||||
poption_str_limit opt_type;
|
poption_str_limit opt_type;
|
||||||
poption_str opt_cmd;
|
poption_str opt_cmd;
|
||||||
poption_str opt_inp;
|
poption_str opt_inp;
|
||||||
@ -211,7 +211,7 @@ public:
|
|||||||
{
|
{
|
||||||
log().debug("Creating dynamic logs ...\n");
|
log().debug("Creating dynamic logs ...\n");
|
||||||
pstring_list_t ll(m_opts ? m_opts->opt_logs() : "" , ":");
|
pstring_list_t ll(m_opts ? m_opts->opt_logs() : "" , ":");
|
||||||
for (int i=0; i < ll.size(); i++)
|
for (unsigned i=0; i < ll.size(); i++)
|
||||||
{
|
{
|
||||||
pstring name = "log_" + ll[i];
|
pstring name = "log_" + ll[i];
|
||||||
/*netlist_device_t *nc = */ m_setup->register_dev("LOG", name);
|
/*netlist_device_t *nc = */ m_setup->register_dev("LOG", name);
|
||||||
@ -380,7 +380,7 @@ static void listdevices()
|
|||||||
nt.setup().start_devices();
|
nt.setup().start_devices();
|
||||||
nt.setup().resolve_inputs();
|
nt.setup().resolve_inputs();
|
||||||
|
|
||||||
for (int i=0; i < list.size(); i++)
|
for (unsigned i=0; i < list.size(); i++)
|
||||||
{
|
{
|
||||||
netlist::base_factory_t *f = list.value_at(i);
|
netlist::base_factory_t *f = list.value_at(i);
|
||||||
pstring out = pfmt("{1} {2}(<id>")(f->classname(),"-20")(f->name());
|
pstring out = pfmt("{1} {2}(<id>")(f->classname(),"-20")(f->name());
|
||||||
@ -391,7 +391,7 @@ static void listdevices()
|
|||||||
d->start_dev();
|
d->start_dev();
|
||||||
|
|
||||||
// get the list of terminals ...
|
// get the list of terminals ...
|
||||||
for (int j=0; j < d->m_terminals.size(); j++)
|
for (unsigned j=0; j < d->m_terminals.size(); j++)
|
||||||
{
|
{
|
||||||
pstring inp = d->m_terminals[j];
|
pstring inp = d->m_terminals[j];
|
||||||
if (inp.startsWith(d->name() + "."))
|
if (inp.startsWith(d->name() + "."))
|
@ -190,7 +190,9 @@ ATTR_HOT inline int matrix_solver_GMRES_t<m_N, _storage_N>::vsolve_non_dynamic(c
|
|||||||
|
|
||||||
const nl_double accuracy = this->m_params.m_accuracy;
|
const nl_double accuracy = this->m_params.m_accuracy;
|
||||||
#if 1
|
#if 1
|
||||||
int mr = std::min((int) iN-1,(int) sqrt(iN));
|
int mr = _storage_N;
|
||||||
|
if (_storage_N > 3 )
|
||||||
|
mr = (int) sqrt(iN);
|
||||||
mr = std::min(mr, this->m_params.m_gs_loops);
|
mr = std::min(mr, this->m_params.m_gs_loops);
|
||||||
int iter = 4;
|
int iter = 4;
|
||||||
int gsl = solve_ilu_gmres(new_V, RHS, iter, mr, accuracy);
|
int gsl = solve_ilu_gmres(new_V, RHS, iter, mr, accuracy);
|
||||||
|
Loading…
Reference in New Issue
Block a user