From bbd808072be859074a023795a15bebab87cbfba8 Mon Sep 17 00:00:00 2001 From: Clifford Wolf Date: Fri, 10 Oct 2014 17:22:08 +0200 Subject: Added format __attribute__ to stringf() --- frontends/verilog/preproc.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'frontends/verilog/preproc.cc') diff --git a/frontends/verilog/preproc.cc b/frontends/verilog/preproc.cc index f83433219..7e14fcb84 100644 --- a/frontends/verilog/preproc.cc +++ b/frontends/verilog/preproc.cc @@ -422,7 +422,7 @@ std::string frontend_verilog_preproc(std::istream &f, std::string filename, cons if (tok == "(" || tok == "{" || tok == "[") level++; } - for (size_t i = 0; i < args.size(); i++) + for (int i = 0; i < GetSize(args); i++) defines_map[stringf("macro_%s_arg%d", name.c_str(), i+1)] = args[i]; } else { insert_input(tok); -- cgit v1.2.3 From 8263f6a74a822579f3c1da7d8b128ea8ab7b4d79 Mon Sep 17 00:00:00 2001 From: Clifford Wolf Date: Sat, 11 Oct 2014 11:36:22 +0200 Subject: Fixed win32 troubles with f.readsome() --- frontends/verilog/preproc.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'frontends/verilog/preproc.cc') diff --git a/frontends/verilog/preproc.cc b/frontends/verilog/preproc.cc index 7e14fcb84..b4e77c31b 100644 --- a/frontends/verilog/preproc.cc +++ b/frontends/verilog/preproc.cc @@ -202,7 +202,7 @@ static void input_file(std::istream &f, std::string filename) auto it = input_buffer.begin(); input_buffer.insert(it, "`file_push " + filename + "\n"); - while ((rc = f.readsome(buffer, sizeof(buffer)-1)) > 0) { + while ((rc = readsome(f, buffer, sizeof(buffer)-1)) > 0) { buffer[rc] = 0; input_buffer.insert(it, buffer); } -- cgit v1.2.3 From c3e9922b5d871269bf4ee33da24318d3b5199ac3 Mon Sep 17 00:00:00 2001 From: Clifford Wolf Date: Wed, 15 Oct 2014 01:12:53 +0200 Subject: Replaced readsome() with read() and gcount() --- frontends/verilog/preproc.cc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'frontends/verilog/preproc.cc') diff --git a/frontends/verilog/preproc.cc b/frontends/verilog/preproc.cc index b4e77c31b..da658410d 100644 --- a/frontends/verilog/preproc.cc +++ b/frontends/verilog/preproc.cc @@ -196,14 +196,16 @@ static std::string next_token(bool pass_newline = false) static void input_file(std::istream &f, std::string filename) { char buffer[513]; - int rc; insert_input(""); auto it = input_buffer.begin(); input_buffer.insert(it, "`file_push " + filename + "\n"); - while ((rc = readsome(f, buffer, sizeof(buffer)-1)) > 0) { - buffer[rc] = 0; + while (1) { + f.read(buffer, sizeof(buffer)-1); + if (f.gcount() <= 0) + break; + buffer[f.gcount()] = 0; input_buffer.insert(it, buffer); } input_buffer.insert(it, "\n`file_pop\n"); -- cgit v1.2.3 From c5eb5e56b8911bb520a987761739bbb9d9328380 Mon Sep 17 00:00:00 2001 From: Clifford Wolf Date: Thu, 23 Oct 2014 10:47:21 +0200 Subject: Re-introduced Yosys::readsome() helper function (f.read() + f.gcount() made problems with lines > 16kB) --- frontends/verilog/preproc.cc | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'frontends/verilog/preproc.cc') diff --git a/frontends/verilog/preproc.cc b/frontends/verilog/preproc.cc index da658410d..b4e77c31b 100644 --- a/frontends/verilog/preproc.cc +++ b/frontends/verilog/preproc.cc @@ -196,16 +196,14 @@ static std::string next_token(bool pass_newline = false) static void input_file(std::istream &f, std::string filename) { char buffer[513]; + int rc; insert_input(""); auto it = input_buffer.begin(); input_buffer.insert(it, "`file_push " + filename + "\n"); - while (1) { - f.read(buffer, sizeof(buffer)-1); - if (f.gcount() <= 0) - break; - buffer[f.gcount()] = 0; + while ((rc = readsome(f, buffer, sizeof(buffer)-1)) > 0) { + buffer[rc] = 0; input_buffer.insert(it, buffer); } input_buffer.insert(it, "\n`file_pop\n"); -- cgit v1.2.3 From 1bd67d792eefeb7e72bf74f80776b0d5e41d771a Mon Sep 17 00:00:00 2001 From: Clifford Wolf Date: Fri, 2 Jan 2015 17:11:54 +0100 Subject: Define YOSYS and SYNTHESIS in preproc --- frontends/verilog/preproc.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'frontends/verilog/preproc.cc') diff --git a/frontends/verilog/preproc.cc b/frontends/verilog/preproc.cc index b4e77c31b..4e5d16599 100644 --- a/frontends/verilog/preproc.cc +++ b/frontends/verilog/preproc.cc @@ -221,7 +221,8 @@ std::string frontend_verilog_preproc(std::istream &f, std::string filename, cons input_buffer_charp = 0; input_file(f, filename); - defines_map["__YOSYS__"] = "1"; + defines_map["YOSYS"] = "1"; + defines_map["SYNTHESIS"] = "1"; while (!input_buffer.empty()) { -- cgit v1.2.3 From ef151b0b30c7b7253aceba6d184e7721a4eff0c0 Mon Sep 17 00:00:00 2001 From: Clifford Wolf Date: Sat, 14 Feb 2015 08:41:03 +0100 Subject: Fixed handling of "//" in filenames in verilog pre-processor --- frontends/verilog/preproc.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'frontends/verilog/preproc.cc') diff --git a/frontends/verilog/preproc.cc b/frontends/verilog/preproc.cc index 4e5d16599..e2118630e 100644 --- a/frontends/verilog/preproc.cc +++ b/frontends/verilog/preproc.cc @@ -201,7 +201,7 @@ static void input_file(std::istream &f, std::string filename) insert_input(""); auto it = input_buffer.begin(); - input_buffer.insert(it, "`file_push " + filename + "\n"); + input_buffer.insert(it, "`file_push \"" + filename + "\"\n"); while ((rc = readsome(f, buffer, sizeof(buffer)-1)) > 0) { buffer[rc] = 0; input_buffer.insert(it, buffer); -- cgit v1.2.3