diff options
author | Miodrag Milanović <mmicko@gmail.com> | 2019-09-29 10:37:34 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-09-29 10:37:34 +0200 |
commit | ce0631c371f69f0132ea9ee4bc8f5ee576dbb1a3 (patch) | |
tree | 65a3ee15a95cd30a3df5df1a5c5b77d864672e29 /kernel | |
parent | 178c67ea226b093cdbe101a69cb83cc8800aa702 (diff) | |
parent | 0c380f085576c2cead5e3576825cb60046bfd76b (diff) | |
download | yosys-ce0631c371f69f0132ea9ee4bc8f5ee576dbb1a3.tar.gz yosys-ce0631c371f69f0132ea9ee4bc8f5ee576dbb1a3.tar.bz2 yosys-ce0631c371f69f0132ea9ee4bc8f5ee576dbb1a3.zip |
Merge pull request #1413 from YosysHQ/mmicko/backend_binary_out
Support binary files for backends, fixes #1407
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/register.cc | 4 | ||||
-rw-r--r-- | kernel/register.h | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/kernel/register.cc b/kernel/register.cc index 8131fa279..3033ee710 100644 --- a/kernel/register.cc +++ b/kernel/register.cc @@ -612,7 +612,7 @@ void Backend::execute(std::vector<std::string> args, RTLIL::Design *design) delete f; } -void Backend::extra_args(std::ostream *&f, std::string &filename, std::vector<std::string> args, size_t argidx) +void Backend::extra_args(std::ostream *&f, std::string &filename, std::vector<std::string> args, size_t argidx, bool bin_output) { bool called_with_fp = f != NULL; @@ -647,7 +647,7 @@ void Backend::extra_args(std::ostream *&f, std::string &filename, std::vector<st #endif } else { std::ofstream *ff = new std::ofstream; - ff->open(filename.c_str(), std::ofstream::trunc); + ff->open(filename.c_str(), bin_output ? (std::ofstream::trunc | std::ofstream::binary) : std::ofstream::trunc); yosys_output_files.insert(filename); if (ff->fail()) { delete ff; diff --git a/kernel/register.h b/kernel/register.h index c74029823..be836013f 100644 --- a/kernel/register.h +++ b/kernel/register.h @@ -109,7 +109,7 @@ struct Backend : Pass void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE YS_FINAL; virtual void execute(std::ostream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) = 0; - void extra_args(std::ostream *&f, std::string &filename, std::vector<std::string> args, size_t argidx); + void extra_args(std::ostream *&f, std::string &filename, std::vector<std::string> args, size_t argidx, bool bin_output = false); static void backend_call(RTLIL::Design *design, std::ostream *f, std::string filename, std::string command); static void backend_call(RTLIL::Design *design, std::ostream *f, std::string filename, std::vector<std::string> args); |