From 4147b55c233013dd861172f13d0b9669598d234c Mon Sep 17 00:00:00 2001 From: Clifford Wolf Date: Mon, 21 Jul 2014 15:15:18 +0200 Subject: Added "autoidx" statement to ilang file format --- backends/ilang/ilang_backend.cc | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'backends/ilang/ilang_backend.cc') diff --git a/backends/ilang/ilang_backend.cc b/backends/ilang/ilang_backend.cc index b3d96b28..eaad7869 100644 --- a/backends/ilang/ilang_backend.cc +++ b/backends/ilang/ilang_backend.cc @@ -335,15 +335,26 @@ void ILANG_BACKEND::dump_module(FILE *f, std::string indent, const RTLIL::Module void ILANG_BACKEND::dump_design(FILE *f, const RTLIL::Design *design, bool only_selected, bool flag_m, bool flag_n) { + int init_autoidx = RTLIL::autoidx; + if (!flag_m) { int count_selected_mods = 0; - for (auto it = design->modules.begin(); it != design->modules.end(); it++) + for (auto it = design->modules.begin(); it != design->modules.end(); it++) { + if (design->selected_whole_module(it->first)) + flag_m = true; if (design->selected(it->second)) count_selected_mods++; + } if (count_selected_mods > 1) flag_m = true; } + if (!only_selected || flag_m) { + if (only_selected) + fprintf(f, "\n"); + fprintf(f, "autoidx %d\n", RTLIL::autoidx); + } + for (auto it = design->modules.begin(); it != design->modules.end(); it++) { if (!only_selected || design->selected(it->second)) { if (only_selected) @@ -351,6 +362,8 @@ void ILANG_BACKEND::dump_design(FILE *f, const RTLIL::Design *design, bool only_ dump_module(f, "", it->second, design, only_selected, flag_m, flag_n); } } + + log_assert(init_autoidx == RTLIL::autoidx); } struct IlangBackend : public Backend { -- cgit v1.2.3