updates templates for interp to make extension specific includes conditonal
This commit is contained in:
		| @@ -30,6 +30,9 @@ | |||||||
|  * |  * | ||||||
|  *******************************************************************************/ |  *******************************************************************************/ | ||||||
| <% | <% | ||||||
|  | def floating_point = registers.find {it.name=='FCSR'} | ||||||
|  | def vector = registers.find {it.name=='vtype'} | ||||||
|  | def aes = functions.find { it.contains('aes') } | ||||||
| def nativeTypeSize(int size){ | def nativeTypeSize(int size){ | ||||||
|     if(size<=8) return 8; else if(size<=16) return 16; else if(size<=32) return 32; else return 64; |     if(size<=8) return 8; else if(size<=16) return 16; else if(size<=32) return 32; else return 64; | ||||||
| } | } | ||||||
| @@ -41,9 +44,16 @@ def nativeTypeSize(int size){ | |||||||
| #include <iss/debugger/server.h> | #include <iss/debugger/server.h> | ||||||
| #include <iss/iss.h> | #include <iss/iss.h> | ||||||
| #include <iss/interp/vm_base.h> | #include <iss/interp/vm_base.h> | ||||||
|  | <% | ||||||
|  | if(floating_point != null) {%> | ||||||
| #include <vm/fp_functions.h> | #include <vm/fp_functions.h> | ||||||
|  | <%} | ||||||
|  | if(vector != null) {%> | ||||||
| #include <vm/vector_functions.h> | #include <vm/vector_functions.h> | ||||||
|  | <%} | ||||||
|  | if(aes != null) {%> | ||||||
| #include <vm/aes_sbox.h> | #include <vm/aes_sbox.h> | ||||||
|  | <%}%> | ||||||
| #include <util/logging.h> | #include <util/logging.h> | ||||||
| #include <boost/coroutine2/all.hpp> | #include <boost/coroutine2/all.hpp> | ||||||
| #include <functional> | #include <functional> | ||||||
| @@ -104,11 +114,9 @@ protected: | |||||||
|  |  | ||||||
|     inline const char *name(size_t index){return traits::reg_aliases.at(index);} |     inline const char *name(size_t index){return traits::reg_aliases.at(index);} | ||||||
| <%  | <%  | ||||||
| def fcsr = registers.find {it.name=='FCSR'} | if(floating_point != null) {%> | ||||||
| if(fcsr != null) {%> |  | ||||||
|     inline const char *fname(size_t index){return index < 32?name(index+traits::F0):"illegal";}      |     inline const char *fname(size_t index){return index < 32?name(index+traits::F0):"illegal";}      | ||||||
| <%} | <%} | ||||||
| def vector = registers.find {it.name=='vtype'} |  | ||||||
| if(vector != null) {%> | if(vector != null) {%> | ||||||
|     inline const char *vname(size_t index){return index < 32?name(index+traits::V0):"illegal";} |     inline const char *vname(size_t index){return index < 32?name(index+traits::V0):"illegal";} | ||||||
|     inline const char *sew_name(size_t bits){ |     inline const char *sew_name(size_t bits){ | ||||||
|   | |||||||
| @@ -37,9 +37,7 @@ | |||||||
| #include <iss/debugger/server.h> | #include <iss/debugger/server.h> | ||||||
| #include <iss/iss.h> | #include <iss/iss.h> | ||||||
| #include <iss/interp/vm_base.h> | #include <iss/interp/vm_base.h> | ||||||
| #include <vm/fp_functions.h> |  | ||||||
| #include <vm/vector_functions.h> |  | ||||||
| #include <vm/aes_sbox.h> |  | ||||||
| #include <util/logging.h> | #include <util/logging.h> | ||||||
| #include <boost/coroutine2/all.hpp> | #include <boost/coroutine2/all.hpp> | ||||||
| #include <functional> | #include <functional> | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user