tum-ei-eda / etiss

Extendable Translating Instruction Set Simulator
https://tum-ei-eda.github.io/etiss/
Other
29 stars 36 forks source link

Resources #14

Closed nm944 closed 4 years ago

nm944 commented 4 years ago

add architectures generated from CoreDSL and libraries for floating point instruction and resource computation

JoGei commented 4 years ago

Hi,

Is there a particular reason why the external floating point library and resources support comes with compiled code, not source code? For example:

Additionally, the soft-float code (i guess its based on this one http://www.jhauser.us/arithmetic/SoftFloat.html) has in its copyright notice bp(2) the following:

"2. Redistributions in binary form must reproduce the above copyright notice,this list of conditions, and the following disclaimer in the documentation and/or other materials provided with the distribution."

nm944 commented 4 years ago

Rafael made the suggestion to use already compiled code.

The softfloat_orig.h header belongs to the softfloat library and includes the copyright notice. I guess that falls under "in the documentation and/or other materials provided with the distribution"?

rafzi commented 4 years ago

looks good overall thanks!

as for the binaries, i was suggesting that to you for testing and getting it working. in this repository we definitely will want the sources. could you please at least add the source files for resources and fp_funcs? if youre unsure how to integrate them to cmake, i can finish that.

nm944 commented 4 years ago

Sorry for the misunderstanding. I have added the "resources.cpp" file to "etiss/include_c/etiss/jit" and the file "fp_functions.cpp", with the needed headers, to "etiss/include_c/etiss/jit/fpu". I would very much appreciate it, if you could integrate them into cmake.

JoGei commented 4 years ago

I have noticed that these libraries are enabled for the JIT-compiled code through the translation unit src/Translation.cpp:L321ff, thus, including all headers for every possible Architecture.

In the future, we maybe should go for a configurable way of including these external libraries, e.g. through the ETISS::Config and optional parameters in the *.ini files? This might allow us to be more flexible with upcoming external JIT libraries.