diff options
| author | Alasdair Armstrong | 2018-06-21 16:06:21 +0100 |
|---|---|---|
| committer | Alasdair Armstrong | 2018-06-21 16:06:21 +0100 |
| commit | 3658789d204eb100e901a2adb67b6bf8a30157bf (patch) | |
| tree | 65eb0255c01214cc044ef88f3e15c8b6641901ec /lib/sail.h | |
| parent | 5489108f054fb51aa190e1fda847d8ab59ee915b (diff) | |
Fix MIPS wrt changes to C runtime
This plus changes to bitfield internals is enough to run some MIPS tests at 1Mhz.
Diffstat (limited to 'lib/sail.h')
| -rw-r--r-- | lib/sail.h | 20 |
1 files changed, 20 insertions, 0 deletions
@@ -9,6 +9,8 @@ #include<gmp.h> #endif +#include<time.h> + /* * Called by the RTS to initialise and clear any library state. */ @@ -44,6 +46,8 @@ typedef int unit; unit UNDEFINED(unit)(const unit); bool eq_unit(const unit, const unit); +unit skip(const unit); + /* ***** Sail booleans ***** */ /* @@ -203,8 +207,13 @@ void or_bits(sail_bits *rop, const sail_bits op1, const sail_bits op2); void xor_bits(sail_bits *rop, const sail_bits op1, const sail_bits op2); void not_bits(sail_bits *rop, const sail_bits op); +void mults_vec(sail_bits *rop, const sail_bits op1, const sail_bits op2); +void mult_vec(sail_bits *rop, const sail_bits op1, const sail_bits op2); + void zeros(sail_bits *rop, const sail_int op); + void zero_extend(sail_bits *rop, const sail_bits op, const sail_int len); +void sign_extend(sail_bits *rop, const sail_bits op, const sail_int len); void length_sail_bits(sail_int *rop, const sail_bits op); @@ -250,6 +259,13 @@ void set_slice(sail_bits *rop, const sail_int start_mpz, const sail_bits slice); + +void shift_bits_left(sail_bits *rop, const sail_bits op1, const sail_bits op2); +void shift_bits_right(sail_bits *rop, const sail_bits op1, const sail_bits op2); +void shift_bits_right_arith(sail_bits *rop, const sail_bits op1, const sail_bits op2); + +void reverse_endianness(sail_bits*, sail_bits); + /* ***** Sail reals ***** */ typedef mpf_t real; @@ -310,3 +326,7 @@ unit print_int(const sail_string str, const sail_int op); unit prerr_int(const sail_string str, const sail_int op); unit sail_putchar(const sail_int op); + +/* ***** Misc ***** */ + +void get_time_ns(sail_int*, const unit); |
