diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..ce1e707e --- /dev/null +++ b/Dockerfile @@ -0,0 +1,79 @@ +# Dockerfile for setting up the development environment for vortex + +# Set base OS +FROM ubuntu:18.04 + +# Install dependencies +RUN apt update && apt install -y \ + # verilator dependencies + git perl python3 g++ libfl2 libfl-dev \ + zlibc zlib1g zlib1g-dev \ + ccache libgoogle-perftools-dev numactl perl-doc \ + git autoconf flex bison \ + # riscv-gnu-toolchain dependencies + autoconf automake autotools-dev curl python3 \ + libmpc-dev libmpfr-dev libgmp-dev gawk build-essential \ + bison flex texinfo gperf libtool patchutils bc zlib1g-dev \ + libexpat-dev binutils build-essential libtool texinfo \ + # riscv-isa-sim dependencies + device-tree-compiler + +# set environment variables +ENV RISCV32=/opt/riscv32 +ENV RISCV64=/opt/riscv64 +ENV VERILATOR_ROOT=/opt/verilator +ENV POCL_CC_PATH=/opt/pocl/compiler +ENV POCL_RT_PATH=/opt/pocl/runtime +ENV VORTEX_HOME=/home/vortex +ENV PATH=$PATH:${RISCV32}/bin:${RISCV64}/bin:${RISCV64}/riscv64-unknown-elf/bin:${VERILATOR_ROOT}/bin/verilator + +# Install riscv-gnu-toolchain +RUN git clone https://github.com/riscv/riscv-gnu-toolchain /tmp/riscv-gnu-toolchain +RUN cd /tmp/riscv-gnu-toolchain; \ + ./configure --prefix=${RISCV64} --with-arch=rv64imfd --with-abi=lp64d; \ + make -j `nproc` +RUN cd /tmp/riscv-gnu-toolchain; \ + make clean; \ + ./configure --prefix=${RISCV32} --with-arch=rv32imf --with-abi=ilp32f; \ + make -j `nproc` +RUN rm -rf /tmp/riscv-gnu-toolchain + +# Install riscv-isa-sim +RUN git clone https://github.com/riscv-software-src/riscv-isa-sim.git /tmp/riscv-isa-sim +RUN cd /tmp/riscv-isa-sim; \ + mkdir build +RUN cd /tmp/riscv-isa-sim/build; \ + ../configure --prefix=${RISCV64} +RUN cd /tmp/riscv-isa-sim/build; \ + make -j `nproc`; \ + make install +RUN rm -rf /tmp/riscv-isa-sim + +# Install riscv-pk +RUN git clone https://github.com/riscv-software-src/riscv-pk.git /tmp/riscv-pk +RUN cd /tmp/riscv-pk; \ + mkdir build +RUN cd /tmp/riscv-pk/build; \ + ../configure --prefix=${RISCV64} --host=riscv64-unknown-elf +RUN cd /tmp/riscv-pk/build; \ + make -j `nproc`; \ + make install +RUN rm -rf /tmp/riscv-pk + +# Install verilator +RUN git clone https://github.com/verilator/verilator /tmp/verilator +RUN cd /tmp/verilator; \ + git pull; \ + git checkout v4.040 +RUN cd /tmp/verilator; \ + autoconf; \ + ./configure --prefix=/opt/verilator +RUN cd/tmp/verilator; \ + make -j `nproc`; \ + make install +RUN rm -rf /tmp/verilator + +# set working directory +RUN mkdir -p /home/vortex +WORKDIR /home/vortex + diff --git a/hw/rtl/VX_config.vh b/hw/rtl/VX_config.vh index e9e57b03..ef61f367 100644 --- a/hw/rtl/VX_config.vh +++ b/hw/rtl/VX_config.vh @@ -45,6 +45,7 @@ `define L1_BLOCK_SIZE ((`L2_ENABLE || `L3_ENABLE) ? 16 : `MEM_BLOCK_SIZE) `endif +// simx64 `ifndef STARTUP_ADDR `define STARTUP_ADDR 32'h80000000 `endif diff --git a/runtime/Makefile b/runtime/Makefile index d72eb665..824805a4 100644 --- a/runtime/Makefile +++ b/runtime/Makefile @@ -1,4 +1,7 @@ RISCV_TOOLCHAIN_PATH ?= /opt/riscv-gnu-toolchain +# simx64 +RISCV64_TOOLCHAIN_PATH ?= /nethome/ssrivatsan8/riscv + CC = $(RISCV_TOOLCHAIN_PATH)/bin/riscv32-unknown-elf-gcc AR = $(RISCV_TOOLCHAIN_PATH)/bin/riscv32-unknown-elf-gcc-ar diff --git a/runtime/src/vx_start.S b/runtime/src/vx_start.S index 16e91a15..9fa6dcec 100644 --- a/runtime/src/vx_start.S +++ b/runtime/src/vx_start.S @@ -23,13 +23,13 @@ _start: call memset # Register global termination functions - la a0, __libc_fini_array + # la a0, __libc_fini_array # to be called upon exit call atexit # Run global initialization functions - call __libc_init_array + # call __libc_init_array # call main program routine call main diff --git a/sim/common/rvfloats.cpp b/sim/common/rvfloats.cpp index 17fab394..87ba5e80 100644 --- a/sim/common/rvfloats.cpp +++ b/sim/common/rvfloats.cpp @@ -8,11 +8,19 @@ extern "C" { } #define F32_SIGN 0x80000000 +// simx64 +#define F64_SIGN 0x8000000000000000 inline float32_t to_float32_t(uint32_t x) { return float32_t{x}; } +// simx64 +inline float64_t to_float64_t(uint64_t x) { return float64_t{x}; } + inline uint32_t from_float32_t(float32_t x) { return uint32_t(x.v); } +// simx64 +inline uint64_t from_float64_t(float64_t x) { return uint64_t(x.v); } + inline uint32_t get_fflags() { uint32_t fflags = softfloat_exceptionFlags; if (fflags) { @@ -25,35 +33,67 @@ inline uint32_t get_fflags() { extern "C" { #endif -uint32_t rv_fadd(uint32_t a, uint32_t b, uint32_t frm, uint32_t* fflags) { +uint64_t rv_fadd(uint32_t a, uint32_t b, uint32_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; auto r = f32_add(to_float32_t(a), to_float32_t(b)); if (fflags) { *fflags = get_fflags(); } return from_float32_t(r); } -uint32_t rv_fsub(uint32_t a, uint32_t b, uint32_t frm, uint32_t* fflags) { +// simx64 +uint64_t rv_fadd_d(uint64_t a, uint64_t b, uint32_t frm, uint32_t* fflags) { + softfloat_roundingMode = frm; + auto r = f64_add(to_float64_t(a), to_float64_t(b)); + if (fflags) { *fflags = get_fflags(); } + return from_float64_t(r); +} + +uint64_t rv_fsub(uint32_t a, uint32_t b, uint32_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; auto r = f32_sub(to_float32_t(a), to_float32_t(b)); if (fflags) { *fflags = get_fflags(); } return from_float32_t(r); } -uint32_t rv_fmul(uint32_t a, uint32_t b, uint32_t frm, uint32_t* fflags) { +// simx64 +uint64_t rv_fsub_d(uint64_t a, uint64_t b, uint32_t frm, uint32_t* fflags) { + softfloat_roundingMode = frm; + auto r = f64_sub(to_float64_t(a), to_float64_t(b)); + if (fflags) { *fflags = get_fflags(); } + return from_float64_t(r); +} + +uint64_t rv_fmul(uint32_t a, uint32_t b, uint32_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; auto r = f32_mul(to_float32_t(a), to_float32_t(b)); if (fflags) { *fflags = get_fflags(); } return from_float32_t(r); } -uint32_t rv_fmadd(uint32_t a, uint32_t b, uint32_t c, uint32_t frm, uint32_t* fflags) { +// simx64 +uint64_t rv_fmul_d(uint64_t a, uint64_t b, uint32_t frm, uint32_t* fflags) { + softfloat_roundingMode = frm; + auto r = f64_mul(to_float64_t(a), to_float64_t(b)); + if (fflags) { *fflags = get_fflags(); } + return from_float64_t(r); +} + +uint64_t rv_fmadd(uint32_t a, uint32_t b, uint32_t c, uint32_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; auto r = f32_mulAdd(to_float32_t(a), to_float32_t(b), to_float32_t(c)); if (fflags) { *fflags = get_fflags(); } return from_float32_t(r); } -uint32_t rv_fmsub(uint32_t a, uint32_t b, uint32_t c, uint32_t frm, uint32_t* fflags) { +// simx64 +uint64_t rv_fmadd_d(uint64_t a, uint64_t b, uint64_t c, uint32_t frm, uint32_t* fflags) { + softfloat_roundingMode = frm; + auto r = f64_mulAdd(to_float64_t(a), to_float64_t(b), to_float64_t(c)); + if (fflags) { *fflags = get_fflags(); } + return from_float64_t(r); +} + +uint64_t rv_fmsub(uint32_t a, uint32_t b, uint32_t c, uint32_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; int c_neg = c ^ F32_SIGN; auto r = f32_mulAdd(to_float32_t(a), to_float32_t(b), to_float32_t(c_neg)); @@ -61,7 +101,16 @@ uint32_t rv_fmsub(uint32_t a, uint32_t b, uint32_t c, uint32_t frm, uint32_t* ff return from_float32_t(r); } -uint32_t rv_fnmadd(uint32_t a, uint32_t b, uint32_t c, uint32_t frm, uint32_t* fflags) { +// simx64 +uint64_t rv_fmsub_d(uint64_t a, uint64_t b, uint64_t c, uint32_t frm, uint32_t* fflags) { + softfloat_roundingMode = frm; + long c_neg = c ^ F64_SIGN; + auto r = f64_mulAdd(to_float64_t(a), to_float64_t(b), to_float64_t(c_neg)); + if (fflags) { *fflags = get_fflags(); } + return from_float64_t(r); +} + +uint64_t rv_fnmadd(uint32_t a, uint32_t b, uint32_t c, uint32_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; int a_neg = a ^ F32_SIGN; int c_neg = c ^ F32_SIGN; @@ -70,7 +119,17 @@ uint32_t rv_fnmadd(uint32_t a, uint32_t b, uint32_t c, uint32_t frm, uint32_t* f return from_float32_t(r); } -uint32_t rv_fnmsub(uint32_t a, uint32_t b, uint32_t c, uint32_t frm, uint32_t* fflags) { +// simx64 +uint64_t rv_fnmadd_d(uint64_t a, uint64_t b, uint64_t c, uint32_t frm, uint32_t* fflags) { + softfloat_roundingMode = frm; + long a_neg = a ^ F64_SIGN; + long c_neg = c ^ F64_SIGN; + auto r = f64_mulAdd(to_float64_t(a_neg), to_float64_t(b), to_float64_t(c_neg)); + if (fflags) { *fflags = get_fflags(); } + return from_float64_t(r); +} + +uint64_t rv_fnmsub(uint32_t a, uint32_t b, uint32_t c, uint32_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; int a_neg = a ^ F32_SIGN; auto r = f32_mulAdd(to_float32_t(a_neg), to_float32_t(b), to_float32_t(c)); @@ -78,68 +137,211 @@ uint32_t rv_fnmsub(uint32_t a, uint32_t b, uint32_t c, uint32_t frm, uint32_t* f return from_float32_t(r); } -uint32_t rv_fdiv(uint32_t a, uint32_t b, uint32_t frm, uint32_t* fflags) { +// simx64 +uint64_t rv_fnmsub_d(uint64_t a, uint64_t b, uint64_t c, uint32_t frm, uint32_t* fflags) { + softfloat_roundingMode = frm; + long a_neg = a ^ F64_SIGN; + auto r = f64_mulAdd(to_float64_t(a_neg), to_float64_t(b), to_float64_t(c)); + if (fflags) { *fflags = get_fflags(); } + return from_float64_t(r); +} + +uint64_t rv_fdiv(uint32_t a, uint32_t b, uint32_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; auto r = f32_div(to_float32_t(a), to_float32_t(b)); if (fflags) { *fflags = get_fflags(); } return from_float32_t(r); } -uint32_t rv_fsqrt(uint32_t a, uint32_t frm, uint32_t* fflags) { +// simx64 +uint64_t rv_fdiv_d(uint64_t a, uint64_t b, uint32_t frm, uint32_t* fflags) { + softfloat_roundingMode = frm; + auto r = f64_div(to_float64_t(a), to_float64_t(b)); + if (fflags) { *fflags = get_fflags(); } + return from_float64_t(r); +} + +uint64_t rv_fsqrt(uint32_t a, uint32_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; auto r = f32_sqrt(to_float32_t(a)); if (fflags) { *fflags = get_fflags(); } return from_float32_t(r); } -uint32_t rv_ftoi(uint32_t a, uint32_t frm, uint32_t* fflags) { +// simx64x +uint64_t rv_fsqrt_d(uint64_t a, uint32_t frm, uint32_t* fflags) { + softfloat_roundingMode = frm; + auto r = f64_sqrt(to_float64_t(a)); + if (fflags) { *fflags = get_fflags(); } + return from_float64_t(r); +} + + +uint64_t rv_ftoi(uint32_t a, uint32_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; auto r = f32_to_i32(to_float32_t(a), frm, true); if (fflags) { *fflags = get_fflags(); } return r; } -uint32_t rv_ftou(uint32_t a, uint32_t frm, uint32_t* fflags) { +// simx64 +uint64_t rv_ftoi_d(uint64_t a, uint64_t frm, uint32_t* fflags) { + softfloat_roundingMode = frm; + auto r = f64_to_i32(to_float64_t(a), frm, true); + if (fflags) { *fflags = get_fflags(); } + return r; +} + +uint64_t rv_ftou(uint32_t a, uint32_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; auto r = f32_to_ui32(to_float32_t(a), frm, true); if (fflags) { *fflags = get_fflags(); } return r; } -uint32_t rv_itof(uint32_t a, uint32_t frm, uint32_t* fflags) { +// simx64 +uint64_t rv_ftou_d(uint64_t a, uint64_t frm, uint32_t* fflags) { + softfloat_roundingMode = frm; + auto r = f64_to_ui32(to_float64_t(a), frm, true); + if (fflags) { *fflags = get_fflags(); } + return r; +} + +// simx64 +uint64_t rv_ftol(uint32_t a, uint32_t frm, uint32_t* fflags) { + softfloat_roundingMode = frm; + auto r = f32_to_i64(to_float32_t(a), frm, true); + if (fflags) { *fflags = get_fflags(); } + return r; +} + +// simx64 +uint64_t rv_ftol_d(uint64_t a, uint64_t frm, uint32_t* fflags) { + softfloat_roundingMode = frm; + auto r = f64_to_i64(to_float64_t(a), frm, true); + if (fflags) { *fflags = get_fflags(); } + return r; +} + +// simx64 +uint64_t rv_ftolu(uint32_t a, uint32_t frm, uint32_t* fflags) { + softfloat_roundingMode = frm; + auto r = f32_to_ui64(to_float32_t(a), frm, true); + if (fflags) { *fflags = get_fflags(); } + return r; +} + +// simx64 +uint64_t rv_ftolu_d(uint64_t a, uint64_t frm, uint32_t* fflags) { + softfloat_roundingMode = frm; + auto r = f64_to_ui64(to_float64_t(a), frm, true); + if (fflags) { *fflags = get_fflags(); } + return r; +} + +uint64_t rv_itof(uint32_t a, uint32_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; auto r = i32_to_f32(a); if (fflags) { *fflags = get_fflags(); } return from_float32_t(r); } -uint32_t rv_utof(uint32_t a, uint32_t frm, uint32_t* fflags) { +// simx64 +uint64_t rv_itof_d(uint32_t a, uint32_t frm, uint32_t* fflags) { + softfloat_roundingMode = frm; + auto r = i32_to_f64(a); + if (fflags) { *fflags = get_fflags(); } + return from_float64_t(r); +} + +uint64_t rv_utof(uint32_t a, uint32_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; auto r = ui32_to_f32(a); if (fflags) { *fflags = get_fflags(); } return from_float32_t(r); } -uint32_t rv_flt(uint32_t a, uint32_t b, uint32_t* fflags) { +// simx64 +uint64_t rv_utof_d(uint32_t a, uint32_t frm, uint32_t* fflags) { + softfloat_roundingMode = frm; + auto r = ui32_to_f64(a); + if (fflags) { *fflags = get_fflags(); } + return from_float64_t(r); +} + +// simx64 +uint64_t rv_ltof(uint64_t a, uint32_t frm, uint32_t* fflags) { + softfloat_roundingMode = frm; + auto r = i64_to_f32(a); + if (fflags) { *fflags = get_fflags(); } + return from_float32_t(r); +} + +// simx64 +uint64_t rv_ltof_d(uint64_t a, uint32_t frm, uint32_t* fflags) { + softfloat_roundingMode = frm; + auto r = i64_to_f64(a); + if (fflags) { *fflags = get_fflags(); } + return from_float64_t(r); +} + +// simx64 +uint64_t rv_lutof(uint64_t a, uint32_t frm, uint32_t* fflags) { + softfloat_roundingMode = frm; + auto r = ui64_to_f32(a); + if (fflags) { *fflags = get_fflags(); } + return from_float32_t(r); +} + +// simx64 +uint64_t rv_lutof_d(uint64_t a, uint32_t frm, uint32_t* fflags) { + softfloat_roundingMode = frm; + auto r = ui64_to_f64(a); + if (fflags) { *fflags = get_fflags(); } + return from_float64_t(r); +} + +uint64_t rv_flt(uint32_t a, uint32_t b, uint32_t* fflags) { auto r = f32_lt(to_float32_t(a), to_float32_t(b)); if (fflags) { *fflags = get_fflags(); } return r; } -uint32_t rv_fle(uint32_t a, uint32_t b, uint32_t* fflags) { +// simx64 +uint64_t rv_flt_d(uint64_t a, uint64_t b, uint32_t* fflags) { + auto r = f64_lt(to_float64_t(a), to_float64_t(b)); + if (fflags) { *fflags = get_fflags(); } + return r; +} + +uint64_t rv_fle(uint32_t a, uint32_t b, uint32_t* fflags) { auto r = f32_le(to_float32_t(a), to_float32_t(b)); if (fflags) { *fflags = get_fflags(); } return r; } -uint32_t rv_feq(uint32_t a, uint32_t b, uint32_t* fflags) { +// simx64 +uint64_t rv_fle_d(uint64_t a, uint64_t b, uint32_t* fflags) { + auto r = f64_le(to_float64_t(a), to_float64_t(b)); + if (fflags) { *fflags = get_fflags(); } + return r; +} + +uint64_t rv_feq(uint32_t a, uint32_t b, uint32_t* fflags) { auto r = f32_eq(to_float32_t(a), to_float32_t(b)); if (fflags) { *fflags = get_fflags(); } return r; } -uint32_t rv_fmin(uint32_t a, uint32_t b, uint32_t* fflags) { - int r; +// simx64 +uint64_t rv_feq_d(uint64_t a, uint64_t b, uint32_t* fflags) { + auto r = f64_eq(to_float64_t(a), to_float64_t(b)); + if (fflags) { *fflags = get_fflags(); } + return r; +} + +uint64_t rv_fmin(uint32_t a, uint32_t b, uint32_t* fflags) { + long r; if (isNaNF32UI(a) && isNaNF32UI(b)) { r = defaultNaNF32UI; } else { @@ -156,8 +358,27 @@ uint32_t rv_fmin(uint32_t a, uint32_t b, uint32_t* fflags) { return r; } -uint32_t rv_fmax(uint32_t a, uint32_t b, uint32_t* fflags) { - int r; +// simx64 +uint64_t rv_fmin_d(uint64_t a, uint64_t b, uint32_t* fflags) { + long r; + if (isNaNF64UI(a) && isNaNF64UI(b)) { + r = defaultNaNF64UI; + } else { + auto fa = to_float64_t(a); + auto fb = to_float64_t(b); + if ((f64_lt_quiet(fa, fb) || (f64_eq(fa, fb) && (a & F64_SIGN))) + || isNaNF64UI(b)) { + r = a; + } else { + r = b; + } + } + if (fflags) { *fflags = get_fflags(); } + return r; +} + +uint64_t rv_fmax(uint32_t a, uint32_t b, uint32_t* fflags) { + long r; if (isNaNF32UI(a) && isNaNF32UI(b)) { r = defaultNaNF32UI; } else { @@ -174,7 +395,26 @@ uint32_t rv_fmax(uint32_t a, uint32_t b, uint32_t* fflags) { return r; } -uint32_t rv_fclss(uint32_t a) { +// simx64 +uint64_t rv_fmax_d(uint64_t a, uint64_t b, uint32_t* fflags) { + long r; + if (isNaNF64UI(a) && isNaNF64UI(b)) { + r = defaultNaNF64UI; + } else { + auto fa = to_float64_t(a); + auto fb = to_float64_t(b); + if ((f64_lt_quiet(fb, fa) || (f64_eq(fb, fa) && (b & F64_SIGN))) + || isNaNF64UI(b)) { + r = a; + } else { + r = b; + } + } + if (fflags) { *fflags = get_fflags(); } + return r; +} + +uint64_t rv_fclss(uint32_t a) { auto infOrNaN = (0xff == expF32UI(a)); auto subnormOrZero = (0 == expF32UI(a)); bool sign = signF32UI(a); @@ -197,7 +437,31 @@ uint32_t rv_fclss(uint32_t a) { return r; } -uint32_t rv_fsgnj(uint32_t a, uint32_t b) { +// simx64 +uint64_t rv_fclss_d(uint64_t a) { + auto infOrNaN = (0x7ff == expF64UI(a)); + auto subnormOrZero = (0 == expF64UI(a)); + bool sign = signF64UI(a); + bool fracZero = (0 == fracF64UI(a)); + bool isNaN = isNaNF64UI(a); + bool isSNaN = softfloat_isSigNaNF64UI(a); + + int r = + ( sign && infOrNaN && fracZero ) << 0 | + ( sign && !infOrNaN && !subnormOrZero ) << 1 | + ( sign && subnormOrZero && !fracZero ) << 2 | + ( sign && subnormOrZero && fracZero ) << 3 | + ( !sign && infOrNaN && fracZero ) << 7 | + ( !sign && !infOrNaN && !subnormOrZero ) << 6 | + ( !sign && subnormOrZero && !fracZero ) << 5 | + ( !sign && subnormOrZero && fracZero ) << 4 | + ( isNaN && isSNaN ) << 8 | + ( isNaN && !isSNaN ) << 9; + + return r; +} + +uint64_t rv_fsgnj(uint32_t a, uint32_t b) { int sign = b & F32_SIGN; int r = sign | (a & ~F32_SIGN); @@ -205,7 +469,16 @@ uint32_t rv_fsgnj(uint32_t a, uint32_t b) { return r; } -uint32_t rv_fsgnjn(uint32_t a, uint32_t b) { +// simx64 +uint64_t rv_fsgnj_d(uint64_t a, uint64_t b) { + + long sign = b & F64_SIGN; + long r = sign | (a & ~F64_SIGN); + + return r; +} + +uint64_t rv_fsgnjn(uint32_t a, uint32_t b) { int sign = ~b & F32_SIGN; int r = sign | (a & ~F32_SIGN); @@ -213,7 +486,16 @@ uint32_t rv_fsgnjn(uint32_t a, uint32_t b) { return r; } -uint32_t rv_fsgnjx(uint32_t a, uint32_t b) { +// simx64 +uint64_t rv_fsgnjn_d(uint64_t a, uint64_t b) { + + long sign = ~b & F64_SIGN; + long r = sign | (a & ~F64_SIGN); + + return r; +} + +uint64_t rv_fsgnjx(uint32_t a, uint32_t b) { int sign1 = a & F32_SIGN; int sign2 = b & F32_SIGN; @@ -222,6 +504,30 @@ uint32_t rv_fsgnjx(uint32_t a, uint32_t b) { return r; } +// simx64 +uint64_t rv_fsgnjx_d(uint64_t a, uint64_t b) { + + long sign1 = a & F64_SIGN; + long sign2 = b & F64_SIGN; + long r = (sign1 ^ sign2) | (a & ~F64_SIGN); + + return r; +} + +// simx64 +uint64_t rv_dtof(uint64_t a) { + + auto r = f64_to_f32(to_float64_t(a)); + return from_float32_t(r); +} + +// simx64 +uint64_t rv_ftod(uint32_t a) { + + auto r = f32_to_f64(to_float32_t(a)); + return from_float64_t(r); +} + #ifdef __cplusplus } #endif diff --git a/sim/common/rvfloats.h b/sim/common/rvfloats.h index 392e5b63..2e36e16a 100644 --- a/sim/common/rvfloats.h +++ b/sim/common/rvfloats.h @@ -7,32 +7,76 @@ extern "C" { #endif -uint32_t rv_fadd(uint32_t a, uint32_t b, uint32_t frm, uint32_t* fflags); -uint32_t rv_fsub(uint32_t a, uint32_t b, uint32_t frm, uint32_t* fflags); -uint32_t rv_fmul(uint32_t a, uint32_t b, uint32_t frm, uint32_t* fflags); -uint32_t rv_fmadd(uint32_t a, uint32_t b, uint32_t c, uint32_t frm, uint32_t* fflags); -uint32_t rv_fmsub(uint32_t a, uint32_t b, uint32_t c, uint32_t frm, uint32_t* fflags); -uint32_t rv_fnmadd(uint32_t a, uint32_t b, uint32_t c, uint32_t frm, uint32_t* fflags); -uint32_t rv_fnmsub(uint32_t a, uint32_t b, uint32_t c, uint32_t frm, uint32_t* fflags); +uint64_t rv_fadd(uint32_t a, uint32_t b, uint32_t frm, uint32_t* fflags); +uint64_t rv_fsub(uint32_t a, uint32_t b, uint32_t frm, uint32_t* fflags); +uint64_t rv_fmul(uint32_t a, uint32_t b, uint32_t frm, uint32_t* fflags); +uint64_t rv_fmadd(uint32_t a, uint32_t b, uint32_t c, uint32_t frm, uint32_t* fflags); +uint64_t rv_fmsub(uint32_t a, uint32_t b, uint32_t c, uint32_t frm, uint32_t* fflags); +uint64_t rv_fnmadd(uint32_t a, uint32_t b, uint32_t c, uint32_t frm, uint32_t* fflags); +uint64_t rv_fnmsub(uint32_t a, uint32_t b, uint32_t c, uint32_t frm, uint32_t* fflags); +uint64_t rv_fdiv(uint32_t a, uint32_t b, uint32_t frm, uint32_t* fflags); +uint64_t rv_fsqrt(uint32_t a, uint32_t frm, uint32_t* fflags); -uint32_t rv_fdiv(uint32_t a, uint32_t b, uint32_t frm, uint32_t* fflags); -uint32_t rv_fsqrt(uint32_t a, uint32_t frm, uint32_t* fflags); +uint64_t rv_ftoi(uint32_t a, uint32_t frm, uint32_t* fflags); +uint64_t rv_ftou(uint32_t a, uint32_t frm, uint32_t* fflags); +// simx64 +uint64_t rv_ftol(uint32_t a, uint32_t frm, uint32_t* fflags); +// simx64 +uint64_t rv_ftolu(uint32_t a, uint32_t frm, uint32_t* fflags); +uint64_t rv_itof(uint32_t a, uint32_t frm, uint32_t* fflags); +uint64_t rv_utof(uint32_t a, uint32_t frm, uint32_t* fflags); +// simx64 +uint64_t rv_ltof(uint64_t a, uint32_t frm, uint32_t* fflags); +// simx64 +uint64_t rv_lutof(uint64_t a, uint32_t frm, uint32_t* fflags); -uint32_t rv_ftoi(uint32_t a, uint32_t frm, uint32_t* fflags); -uint32_t rv_ftou(uint32_t a, uint32_t frm, uint32_t* fflags); -uint32_t rv_itof(uint32_t a, uint32_t frm, uint32_t* fflags); -uint32_t rv_utof(uint32_t a, uint32_t frm, uint32_t* fflags); +uint64_t rv_fclss(uint32_t a); +uint64_t rv_fsgnj(uint32_t a, uint32_t b); +uint64_t rv_fsgnjn(uint32_t a, uint32_t b); +uint64_t rv_fsgnjx(uint32_t a, uint32_t b); -uint32_t rv_fclss(uint32_t a); -uint32_t rv_fsgnj(uint32_t a, uint32_t b); -uint32_t rv_fsgnjn(uint32_t a, uint32_t b); -uint32_t rv_fsgnjx(uint32_t a, uint32_t b); +uint64_t rv_flt(uint32_t a, uint32_t b, uint32_t* fflags); +uint64_t rv_fle(uint32_t a, uint32_t b, uint32_t* fflags); +uint64_t rv_feq(uint32_t a, uint32_t b, uint32_t* fflags); +uint64_t rv_fmin(uint32_t a, uint32_t b, uint32_t* fflags); +uint64_t rv_fmax(uint32_t a, uint32_t b, uint32_t* fflags); -uint32_t rv_flt(uint32_t a, uint32_t b, uint32_t* fflags); -uint32_t rv_fle(uint32_t a, uint32_t b, uint32_t* fflags); -uint32_t rv_feq(uint32_t a, uint32_t b, uint32_t* fflags); -uint32_t rv_fmin(uint32_t a, uint32_t b, uint32_t* fflags); -uint32_t rv_fmax(uint32_t a, uint32_t b, uint32_t* fflags); + + +// simx64 +uint64_t rv_fadd_d(uint64_t a, uint64_t b, uint32_t frm, uint32_t* fflags); +uint64_t rv_fsub_d(uint64_t a, uint64_t b, uint32_t frm, uint32_t* fflags); +uint64_t rv_fmul_d(uint64_t a, uint64_t b, uint32_t frm, uint32_t* fflags); +uint64_t rv_fdiv_d(uint64_t a, uint64_t b, uint32_t frm, uint32_t* fflags); +uint64_t rv_fsqrt_d(uint64_t a, uint32_t frm, uint32_t* fflags); + +uint64_t rv_fmadd_d(uint64_t a, uint64_t b, uint64_t c, uint32_t frm, uint32_t* fflags); +uint64_t rv_fmsub_d(uint64_t a, uint64_t b, uint64_t c, uint32_t frm, uint32_t* fflags); +uint64_t rv_fnmadd_d(uint64_t a, uint64_t b, uint64_t c, uint32_t frm, uint32_t* fflags); +uint64_t rv_fnmsub_d(uint64_t a, uint64_t b, uint64_t c, uint32_t frm, uint32_t* fflags); + +uint64_t rv_ftoi_d(uint64_t a, uint64_t frm, uint32_t* fflags); +uint64_t rv_ftou_d(uint64_t a, uint64_t frm, uint32_t* fflags); +uint64_t rv_ftol_d(uint64_t a, uint64_t frm, uint32_t* fflags); +uint64_t rv_ftolu_d(uint64_t a, uint64_t frm, uint32_t* fflags); +uint64_t rv_itof_d(uint32_t a, uint32_t frm, uint32_t* fflags); +uint64_t rv_utof_d(uint32_t a, uint32_t frm, uint32_t* fflags); +uint64_t rv_ltof_d(uint64_t a, uint32_t frm, uint32_t* fflags); +uint64_t rv_lutof_d(uint64_t a, uint32_t frm, uint32_t* fflags); + +uint64_t rv_fclss_d(uint64_t a); +uint64_t rv_fsgnj_d(uint64_t a, uint64_t b); +uint64_t rv_fsgnjn_d(uint64_t a, uint64_t b); +uint64_t rv_fsgnjx_d(uint64_t a, uint64_t b); + +uint64_t rv_flt_d(uint64_t a, uint64_t b, uint32_t* fflags); +uint64_t rv_fle_d(uint64_t a, uint64_t b, uint32_t* fflags); +uint64_t rv_feq_d(uint64_t a, uint64_t b, uint32_t* fflags); +uint64_t rv_fmin_d(uint64_t a, uint64_t b, uint32_t* fflags); +uint64_t rv_fmax_d(uint64_t a, uint64_t b, uint32_t* fflags); + +uint64_t rv_dtof(uint64_t a); +uint64_t rv_ftod(uint32_t a); #ifdef __cplusplus } diff --git a/sim/simX/Makefile b/sim/simX/Makefile new file mode 100644 index 00000000..0feba083 --- /dev/null +++ b/sim/simX/Makefile @@ -0,0 +1,50 @@ +RTL_DIR = ../hw/rtl + +CXXFLAGS += -std=c++11 -Wall -Wextra -Wfatal-errors -Werror -g +CXXFLAGS += -fPIC -Wno-maybe-uninitialized +CXXFLAGS += -I. -I../common -I../../hw +CXXFLAGS += -I../common/softfloat/source/include +CXXFLAGS += $(CONFIGS) + +LDFLAGS += ../common/softfloat/build/Linux-x86_64-GCC/softfloat.a + +TOP = vx_cache_sim + +SRCS = ../common/util.cpp ../common/mem.cpp ../common/rvfloats.cpp +SRCS += args.cpp pipeline.cpp warp.cpp core.cpp decode.cpp execute.cpp main.cpp + +OBJS := $(patsubst %.cpp, obj_dir/%.o, $(notdir $(SRCS))) +VPATH := $(sort $(dir $(SRCS))) + +#$(info OBJS is $(OBJS)) +#$(info VPATH is $(VPATH)) + +# Debugigng +ifdef DEBUG + CXXFLAGS += -g -O0 -DDEBUG_LEVEL=$(DEBUG) +else + CXXFLAGS += -O2 -DNDEBUG +endif + +PROJECT = simX + +all: $(PROJECT) + +$(PROJECT): $(SRCS) + $(CXX) $(CXXFLAGS) $^ $(LDFLAGS) -o $@ + +obj_dir/%.o: %.cpp + mkdir -p obj_dir + $(CXX) $(CXXFLAGS) -c $< -o $@ + +static: $(OBJS) + $(AR) rcs lib$(PROJECT).a $(OBJS) ../common/softfloat/build/Linux-x86_64-GCC/*.o + +.depend: $(SRCS) + $(CXX) $(CXXFLAGS) -MM $^ > .depend; + +clean-static: + rm -rf lib$(PROJECT).a obj_dir .depend + +clean: clean-static + rm -rf $(PROJECT) \ No newline at end of file diff --git a/sim/simx/Makefile b/sim/simx/Makefile index 1d081c9e..d83a17f4 100644 --- a/sim/simx/Makefile +++ b/sim/simx/Makefile @@ -45,4 +45,4 @@ $(DESTDIR)/lib$(PROJECT).so: $(SRCS) $(CXX) $(CXXFLAGS) -MM $^ > .depend; clean: - rm -rf obj_dir $(DESTDIR)/$(PROJECT) $(DESTDIR)/lib$(PROJECT).so \ No newline at end of file + rm -rf obj_dir $(DESTDIR)/$(PROJECT) $(DESTDIR)/lib$(PROJECT).so diff --git a/sim/simx/archdef.h b/sim/simx/archdef.h index c2a28f78..22cc1198 100644 --- a/sim/simx/archdef.h +++ b/sim/simx/archdef.h @@ -28,7 +28,7 @@ public: : num_cores_(num_cores) , num_warps_(num_warps) , num_threads_(num_threads) - , wsize_(4) + , wsize_(8) , vsize_(16) , num_regs_(32) , num_csrs_(4096) @@ -66,6 +66,4 @@ public: uint16_t num_cores() const { return num_cores_; } -}; - } \ No newline at end of file diff --git a/sim/simx/decode.cpp b/sim/simx/decode.cpp index 86e30266..9ead3a7f 100644 --- a/sim/simx/decode.cpp +++ b/sim/simx/decode.cpp @@ -50,7 +50,7 @@ static const char* op_string(const Instr &instr) { Word func3 = instr.getFunc3(); Word func7 = instr.getFunc7(); Word rs2 = instr.getRSrc(1); - Word imm = instr.getImm(); + DoubleWord imm = instr.getImm(); switch (opcode) { case Opcode::NOP: return "NOP"; @@ -109,8 +109,12 @@ static const char* op_string(const Instr &instr) { case 0: return "LBI"; case 1: return "LHI"; case 2: return "LW"; + // simx64 + case 3: return "LD"; case 4: return "LBU"; case 5: return "LHU"; + // simx64 + case 6: return "LWU"; default: std::abort(); } @@ -119,9 +123,41 @@ static const char* op_string(const Instr &instr) { case 0: return "SB"; case 1: return "SH"; case 2: return "SW"; + // simx64 + case 3: return "SD"; default: std::abort(); } + // simx64 + case Opcode::R_INST_64: + if (func7 & 0x1){ + switch (func3) { + case 0: return func7 ? "SUBW" : "ADDW"; + case 1: return "SLLW"; + case 5: return func7 ? "SRAW" : "SRLW"; + default: + std::abort(); + } + } else { + switch (func3) { + case 0: return "MULW"; + case 4: return "DIVW"; + case 5: return "DIVUW"; + case 6: return "REMW"; + case 7: return "REMUW"; + default: + std::abort(); + } + } + // simx64 + case Opcode::I_INST_64: + switch (func3) { + case 0: return "ADDIW"; + case 1: return "SLLIW"; + case 5: return func7 ? "SRAIW" : "SRLIW"; + default: + std::abort(); + } case Opcode::SYS_INST: switch (func3) { case 0: @@ -144,49 +180,131 @@ static const char* op_string(const Instr &instr) { std::abort(); } case Opcode::FENCE: return "FENCE"; - case Opcode::FL: return (func3 == 0x2) ? "FL" : "VL"; - case Opcode::FS: return (func3 == 0x2) ? "FS" : "VS"; + // simx64 + case Opcode::FL: + switch (func3) { + case 0x1: return "VL"; + case 0x2: return "FLW"; + case 0x3: return "FLD"; + default: + std::abort(); + } + case Opcode::FS: + switch (func3) { + case 0x1: return "VS"; + case 0x2: return "FSW"; + case 0x3: return "FSD"; + default: + std::abort(); + } case Opcode::FCI: switch (func7) { - case 0x00: return "FADD"; - case 0x04: return "FSUB"; - case 0x08: return "FMUL"; - case 0x0c: return "FDIV"; - case 0x2c: return "FSQRT"; + case 0x00: return "FADD.S"; + case 0x01: return "FADD.D"; + case 0x04: return "FSUB.S"; + case 0x05: return "FSUB.D"; + case 0x08: return "FMUL.S"; + case 0x09: return "FMUL.D"; + case 0x0c: return "FDIV.S"; + case 0x0d: return "FDIV.D"; + case 0x2c: return "FSQRT.S"; + case 0x2d: return "FSQRT.D"; case 0x10: switch (func3) { - case 0: return "FSGNJ"; - case 1: return "FSGNJN"; - case 2: return "FSGNJX"; + case 0: return "FSGNJ.S"; + case 1: return "FSGNJN.S"; + case 2: return "FSGNJX.S"; + default: + std::abort(); + } + case 0x11: + switch (func3) { + case 0: return "FSGNJ.D"; + case 1: return "FSGNJN.D"; + case 2: return "FSGNJX.D"; default: std::abort(); } case 0x14: switch (func3) { - case 0: return "FMIM"; - case 1: return "FMAX"; + case 0: return "FMIN.S"; + case 1: return "FMAX.S"; default: std::abort(); } + case 0x15: + switch (func3) { + case 0: return "FMIN.D"; + case 1: return "FMAX.D"; + default: + std::abort(); + } + case 0x20: return "FCVT.S.D"; + case 0x21: return "FCVT.D.S"; case 0x50: switch (func3) { - case 0: return "FLE"; - case 1: return "FLT"; - case 2: return "FEQ"; + case 0: return "FLE.S"; + case 1: return "FLT.S"; + case 2: return "FEQ.S"; default: std::abort(); } - case 0x60: return rs2 ? "FCVT.WU.S" : "FCVT.W.S"; - case 0x68: return rs2 ? "FCVT.S.WU" : "FCVT.S.W"; - case 0x70: return func3 ? "FLASS" : "FMV.X.W"; + case 0x51: + switch (func3) { + case 0: return "FLE.D"; + case 1: return "FLT.D"; + case 2: return "FEQ.D"; + default: + std::abort(); + } + // simx64 + case 0x60: + switch (rs2) { + case 0: return "FCVT.W.S"; + case 1: return "FCVT.WU.S"; + case 2: return "FCVT.L.S"; + case 3: return "FCVT.LU.S"; + default: + std::abort(); + } + case 0x61: + switch (rs2) { + case 0: return "FCVT.W.D"; + case 1: return "FCVT.WU.D"; + case 2: return "FCVT.L.D"; + case 3: return "FCVT.LU.D"; + default: + std::abort(); + } + case 0x68: + switch (rs2) { + case 0: return "FCVT.S.W"; + case 1: return "FCVT.S.WU"; + case 2: return "FCVT.S.L"; + case 3: return "FCVT.S.LU"; + default: + std::abort(); + } + case 0x69: + switch (rs2) { + case 0: return "FCVT.D.W"; + case 1: return "FCVT.D.WU"; + case 2: return "FCVT.D.L"; + case 3: return "FCVT.D.LU"; + default: + std::abort(); + } + case 0x70: return func3 ? "FCLASS.S" : "FMV.X.W"; + case 0x71: return func3 ? "FCLASS.D" : "FMV.X.D"; case 0x78: return "FMV.W.X"; + case 0x79: return "FMV.D.X"; default: std::abort(); } - case Opcode::FMADD: return "FMADD"; - case Opcode::FMSUB: return "FMSUB"; - case Opcode::FMNMADD: return "FMNMADD"; - case Opcode::FMNMSUB: return "FMNMSUB"; + case Opcode::FMADD: return func2 ? "FMADD.D" : "FMADD.S"; + case Opcode::FMSUB: return func2 ? "FMSUB.D" : "FMSUB.S"; + case Opcode::FMNMADD: return func2 ? "FNMADD.D" : "FNMADD.S"; + case Opcode::FMNMSUB: return func2 ? "FNMSUB.D" : "FNMSUB.S"; case Opcode::VSET: return "VSET"; case Opcode::GPGPU: switch (func3) { @@ -256,7 +374,8 @@ std::ostream &operator<<(std::ostream &os, const Instr &instr) { } Decoder::Decoder(const ArchDef &arch) { - inst_s_ = arch.wsize() * 8; + // simx64 + inst_s_ = arch.wsize() * 4; opcode_s_ = 7; reg_s_ = 5; func2_s_ = 2; @@ -314,7 +433,8 @@ std::shared_ptr Decoder::decode(Word code) const { auto iType = op_it->second.iType; if (op == Opcode::FL || op == Opcode::FS) { - if (func3 != 0x2) { + // simx64 + if (func3 != 0x2 && func3 != 0x3) { iType = InstType::V_TYPE; } } @@ -326,8 +446,10 @@ std::shared_ptr Decoder::decode(Word code) const { case InstType::R_TYPE: if (op == Opcode::FCI) { switch (func7) { - case 0x68: // FCVT.S.W, FCVT.S.WU + case 0x68: // FCVT.S.W, FCVT.S.WU, FCVT.S.L, FCVT.S.LU + case 0x69: // FCVT.D.W, FCVT.D.WU, FCVT.D.L, FCVT.D.LU case 0x78: // FMV.W.X + case 0x79: // FMV.D.X instr->setSrcReg(rs1); break; default: @@ -335,9 +457,12 @@ std::shared_ptr Decoder::decode(Word code) const { } instr->setSrcFReg(rs2); switch (func7) { - case 0x50: // FLE, FLT, FEQ - case 0x60: // FCVT.WU.S, FCVT.W.S - case 0x70: // FLASS, FMV.X.W + case 0x50: // FLE.S, FLT.S, FEQ.S + case 0x51: // FLE.D, FLT.D, FEQ.D + case 0x60: // FCVT.WU.S, FCVT.W.S, FCVT.L.S, FCVT.LU.S + case 0x61: // FCVT.W.D, FCVT.WU.D, FCVT.L.D, FCVT.LU.D + case 0x70: // FLASS.S, FMV.X.W + case 0x71: // FCLASS.D, FMV.X.D instr->setDestReg(rd); break; default: @@ -369,8 +494,9 @@ std::shared_ptr Decoder::decode(Word code) const { break; case Opcode::I_INST: if (func3 == 0x1 || func3 == 0x5) { - // int5 - instr->setImm(sext32(rs2, 5)); + // simx64 + // int6 + instr->setImm(sext32(rs2, 6)); } else { // int12 instr->setImm(sext32(code >> shift_rs2_, 12)); @@ -390,7 +516,8 @@ std::shared_ptr Decoder::decode(Word code) const { instr->setSrcReg(rs2); } instr->setFunc3(func3); - Word imm = (func7 << reg_s_) | rd; + // simx64 + DoubleWord imm = (func7 << reg_s_) | rd; instr->setImm(sext32(imm, 12)); } break; @@ -402,7 +529,8 @@ std::shared_ptr Decoder::decode(Word code) const { Word bits_4_1 = rd >> 1; Word bit_10_5 = func7 & 0x3f; Word bit_12 = func7 >> 6; - Word imm = (bits_4_1 << 1) | (bit_10_5 << 5) | (bit_11 << 11) | (bit_12 << 12); + // simx64 + DoubleWord imm = (bits_4_1 << 1) | (bit_10_5 << 5) | (bit_11 << 11) | (bit_12 << 12); instr->setImm(sext32(imm, 13)); } break; @@ -418,7 +546,8 @@ std::shared_ptr Decoder::decode(Word code) const { Word bit_11 = (unordered >> 8) & 0x1; Word bits_10_1 = (unordered >> 9) & 0x3ff; Word bit_20 = (unordered >> 19) & 0x1; - Word imm = 0 | (bits_10_1 << 1) | (bit_11 << 11) | (bits_19_12 << 12) | (bit_20 << 20); + // simx64 + DoubleWord imm = 0 | (bits_10_1 << 1) | (bit_11 << 11) | (bits_19_12 << 12) | (bit_20 << 20); if (bit_20) { imm |= ~j_imm_mask_; } @@ -487,6 +616,8 @@ std::shared_ptr Decoder::decode(Word code) const { } instr->setFunc2(func2); instr->setFunc3(func3); + // simx64 + instr->setFunc2(func2); break; default: std::abort(); diff --git a/sim/simx/execute.cpp b/sim/simx/execute.cpp index 5df72c6f..8c8480d9 100644 --- a/sim/simx/execute.cpp +++ b/sim/simx/execute.cpp @@ -16,7 +16,7 @@ using namespace vortex; static bool HasDivergentThreads(const ThreadMask &thread_mask, - const std::vector> ®_file, + const std::vector> ®_file, unsigned reg) { bool cond; size_t thread_idx = 0; @@ -52,7 +52,7 @@ inline void update_fcrs(uint32_t fflags, Core* core, uint32_t tid, uint32_t wid) void Warp::execute(const Instr &instr, pipeline_trace_t *trace) { assert(tmask_.any()); - Word nextPC = PC_ + core_->arch().wsize(); + DoubleWord nextPC = PC_ + 4; Word func2 = instr.getFunc2(); Word func3 = instr.getFunc3(); @@ -64,13 +64,13 @@ void Warp::execute(const Instr &instr, pipeline_trace_t *trace) { int rsrc0 = instr.getRSrc(0); int rsrc1 = instr.getRSrc(1); int rsrc2 = instr.getRSrc(2); - Word immsrc = instr.getImm(); + DoubleWord immsrc = instr.getImm(); Word vmask = instr.getVmask(); int num_threads = core_->arch().num_threads(); - std::vector rsdata(num_threads); - std::vector rddata(num_threads); + std::vector rsdata(num_threads); + std::vector rddata(num_threads); int num_rsrcs = instr.getNRSrc(); if (num_rsrcs) { @@ -123,7 +123,8 @@ void Warp::execute(const Instr &instr, pipeline_trace_t *trace) { for (int t = 0; t < num_threads; ++t) { if (!tmask_.test(t)) continue; - rddata[t] = (immsrc << 12) & 0xfffff000; + // simx64 + rddata[t] = (immsrc << 12) & 0xfffffffffffff000; } rd_write = true; break; @@ -133,7 +134,8 @@ void Warp::execute(const Instr &instr, pipeline_trace_t *trace) { for (int t = 0; t < num_threads; ++t) { if (!tmask_.test(t)) continue; - rddata[t] = ((immsrc << 12) & 0xfffff000) + PC_; + // simx64 + rddata[t] = ((immsrc << 12) & 0xfffffffffffff000) + PC_; } rd_write = true; break; @@ -148,48 +150,42 @@ void Warp::execute(const Instr &instr, pipeline_trace_t *trace) { if (func7 & 0x1) { switch (func3) { case 0: - // MUL - rddata[t] = ((WordI)rsdata[t][0]) * ((WordI)rsdata[t][1]); + // RV32M: MUL + rddata[t] = ((DoubleWordI)rsdata[t][0]) * ((DoubleWordI)rsdata[t][1]); trace->alu.type = AluType::IMUL; break; case 1: { - // MULH - int64_t first = (int64_t)rsdata[t][0]; - if (rsdata[t][0] & 0x80000000) { - first = first | 0xFFFFFFFF00000000; - } - int64_t second = (int64_t)rsdata[t][1]; - if (rsdata[t][1] & 0x80000000) { - second = second | 0xFFFFFFFF00000000; - } - uint64_t result = first * second; - rddata[t] = (result >> 32) & 0xFFFFFFFF; + // RV32M: MULH + // simx64 + __int128_t first = sext128((__int128_t)rsdata[t][0], 64); + __int128_t second = sext128((__int128_t)rsdata[t][1], 64); + rddata[t] = ((first * second) >> 64) & 0xFFFFFFFFFFFFFFFF; trace->alu.type = AluType::IMUL; } break; case 2: { - // MULHSU - int64_t first = (int64_t)rsdata[t][0]; - if (rsdata[t][0] & 0x80000000) { - first = first | 0xFFFFFFFF00000000; - } - int64_t second = (int64_t)rsdata[t][1]; - rddata[t] = ((first * second) >> 32) & 0xFFFFFFFF; + // RV32M: MULHSU + // simx64 + __int128_t first = sext128((__int128_t)rsdata[t][0], 64); + __int128_t second = (__int128_t)rsdata[t][1]; + rddata[t] = ((first * second) >> 64) & 0xFFFFFFFFFFFFFFFF; trace->alu.type = AluType::IMUL; } break; case 3: { - // MULHU - uint64_t first = (uint64_t)rsdata[t][0]; - uint64_t second = (uint64_t)rsdata[t][1]; - rddata[t] = ((first * second) >> 32) & 0xFFFFFFFF; + // RV32M: MULHU + // simx64 + __uint128_t first = (__int128_t)rsdata[t][0]; + __uint128_t second = (__int128_t)rsdata[t][1]; + rddata[t] = ((first * second) >> 64) & 0xFFFFFFFFFFFFFFFF; trace->alu.type = AluType::IMUL; } break; case 4: { - // DIV - WordI dividen = rsdata[t][0]; - WordI divisor = rsdata[t][1]; + // RV32M: DIV + // simx64 + DoubleWordI dividen = rsdata[t][0]; + DoubleWordI divisor = rsdata[t][1]; if (divisor == 0) { rddata[t] = -1; - } else if (dividen == WordI(0x80000000) && divisor == WordI(0xffffffff)) { + } else if (dividen == DoubleWordI(0x8000000000000000) && divisor == DoubleWordI(0xffffffffffffffff)) { rddata[t] = dividen; } else { rddata[t] = dividen / divisor; @@ -197,9 +193,10 @@ void Warp::execute(const Instr &instr, pipeline_trace_t *trace) { trace->alu.type = AluType::IDIV; } break; case 5: { - // DIVU - Word dividen = rsdata[t][0]; - Word divisor = rsdata[t][1]; + // RV32M: DIVU + // simx64 + DoubleWord dividen = rsdata[t][0]; + DoubleWord divisor = rsdata[t][1]; if (divisor == 0) { rddata[t] = -1; } else { @@ -208,12 +205,13 @@ void Warp::execute(const Instr &instr, pipeline_trace_t *trace) { trace->alu.type = AluType::IDIV; } break; case 6: { - // REM - WordI dividen = rsdata[t][0]; - WordI divisor = rsdata[t][1]; + // RV32M: REM + // simx64 + DoubleWordI dividen = rsdata[t][0]; + DoubleWordI divisor = rsdata[t][1]; if (rsdata[t][1] == 0) { rddata[t] = dividen; - } else if (dividen == WordI(0x80000000) && divisor == WordI(0xffffffff)) { + } else if (dividen == DoubleWordI(0x8000000000000000) && divisor == DoubleWordI(0xffffffffffffffff)) { rddata[t] = 0; } else { rddata[t] = dividen % divisor; @@ -221,9 +219,9 @@ void Warp::execute(const Instr &instr, pipeline_trace_t *trace) { trace->alu.type = AluType::IDIV; } break; case 7: { - // REMU - Word dividen = rsdata[t][0]; - Word divisor = rsdata[t][1]; + // RV32M: REMU + DoubleWord dividen = rsdata[t][0]; + DoubleWord divisor = rsdata[t][1]; if (rsdata[t][1] == 0) { rddata[t] = dividen; } else { @@ -238,44 +236,44 @@ void Warp::execute(const Instr &instr, pipeline_trace_t *trace) { switch (func3) { case 0: if (func7) { - // SUB + // RV32I: SUB rddata[t] = rsdata[t][0] - rsdata[t][1]; } else { - // ADD + // RV32I: ADD rddata[t] = rsdata[t][0] + rsdata[t][1]; } break; case 1: - // SHL + // RV32I: SHL rddata[t] = rsdata[t][0] << rsdata[t][1]; break; case 2: - // LT - rddata[t] = (WordI(rsdata[t][0]) < WordI(rsdata[t][1])); + // RV32I: LT + rddata[t] = (DoubleWordI(rsdata[t][0]) < DoubleWordI(rsdata[t][1])); break; case 3: - // LTU - rddata[t] = (Word(rsdata[t][0]) < Word(rsdata[t][1])); + // RV32I: LTU + rddata[t] = (DoubleWord(rsdata[t][0]) < DoubleWord(rsdata[t][1])); break; case 4: - // XOR + // RV32I: XOR rddata[t] = rsdata[t][0] ^ rsdata[t][1]; break; case 5: if (func7) { - // SRA - rddata[t] = WordI(rsdata[t][0]) >> WordI(rsdata[t][1]); + // RV32I: SRA + rddata[t] = DoubleWordI(rsdata[t][0]) >> DoubleWordI(rsdata[t][1]); } else { - // SHR - rddata[t] = Word(rsdata[t][0]) >> Word(rsdata[t][1]); + // RV32I: SHR + rddata[t] = DoubleWord(rsdata[t][0]) >> DoubleWord(rsdata[t][1]); } break; case 6: - // OR + // RV32I: OR rddata[t] = rsdata[t][0] | rsdata[t][1]; break; case 7: - // AND + // RV32I: AND rddata[t] = rsdata[t][0] & rsdata[t][1]; break; default: @@ -294,42 +292,42 @@ void Warp::execute(const Instr &instr, pipeline_trace_t *trace) { continue; switch (func3) { case 0: - // ADDI + // RV32I: ADDI rddata[t] = rsdata[t][0] + immsrc; break; case 1: - // SLLI + // RV32I: SLLI rddata[t] = rsdata[t][0] << immsrc; break; case 2: - // SLTI - rddata[t] = (WordI(rsdata[t][0]) < WordI(immsrc)); + // RV32I: SLTI + rddata[t] = (DoubleWordI(rsdata[t][0]) < DoubleWordI(immsrc)); break; case 3: { - // SLTIU - rddata[t] = (Word(rsdata[t][0]) < Word(immsrc)); + // RV32I: SLTIU + rddata[t] = (DoubleWord(rsdata[t][0]) < DoubleWord(immsrc)); } break; case 4: - // XORI + // RV32I: XORI rddata[t] = rsdata[t][0] ^ immsrc; break; case 5: if (func7) { - // SRAI - Word result = WordI(rsdata[t][0]) >> immsrc; + // RV32I: SRAI + DoubleWord result = WordI(rsdata[t][0]) >> immsrc; rddata[t] = result; } else { - // SRLI - Word result = Word(rsdata[t][0]) >> immsrc; + // RV32I: SRLI + DoubleWord result = Word(rsdata[t][0]) >> immsrc; rddata[t] = result; } break; case 6: - // ORI + // RV32I: ORI rddata[t] = rsdata[t][0] | immsrc; break; case 7: - // ANDI + // RV32I: ANDI rddata[t] = rsdata[t][0] & immsrc; break; } @@ -346,38 +344,38 @@ void Warp::execute(const Instr &instr, pipeline_trace_t *trace) { continue; switch (func3) { case 0: - // BEQ + // RV32I: BEQ if (rsdata[t][0] == rsdata[t][1]) { nextPC = PC_ + immsrc; } break; case 1: - // BNE + // RV32I: BNE if (rsdata[t][0] != rsdata[t][1]) { nextPC = PC_ + immsrc; } break; case 4: - // BLT - if (WordI(rsdata[t][0]) < WordI(rsdata[t][1])) { + // RV32I: BLT + if (DoubleWordI(rsdata[t][0]) < DoubleWordI(rsdata[t][1])) { nextPC = PC_ + immsrc; } break; case 5: - // BGE - if (WordI(rsdata[t][0]) >= WordI(rsdata[t][1])) { + // RV32I: BGE + if (DoubleWordI(rsdata[t][0]) >= DoubleWordI(rsdata[t][1])) { nextPC = PC_ + immsrc; } break; case 6: - // BLTU - if (Word(rsdata[t][0]) < Word(rsdata[t][1])) { + // RV32I: BLTU + if (DoubleWord(rsdata[t][0]) < DoubleWord(rsdata[t][1])) { nextPC = PC_ + immsrc; } break; case 7: - // BGEU - if (Word(rsdata[t][0]) >= Word(rsdata[t][1])) { + // RV32I: BGEU + if (DoubleWord(rsdata[t][0]) >= DoubleWord(rsdata[t][1])) { nextPC = PC_ + immsrc; } break; @@ -425,32 +423,39 @@ void Warp::execute(const Instr &instr, pipeline_trace_t *trace) { for (int t = 0; t < num_threads; ++t) { if (!tmask_.test(t)) continue; - Word mem_addr = ((rsdata[t][0] + immsrc) & 0xFFFFFFFC); // word aligned - Word shift_by = ((rsdata[t][0] + immsrc) & 0x00000003) * 8; - Word data_read = core_->dcache_read(mem_addr, 4); + DoubleWord mem_addr = ((rsdata[t][0] + immsrc) & 0xFFFFFFFFFFFFFFF8); // word aligned + Word shift_by = ((rsdata[t][0] + immsrc) & 0x00000007) * 8; + // simx64 + DoubleWord data_read = core_->dcache_read(mem_addr, 8); trace->mem_addrs.at(t).push_back({mem_addr, 4}); DP(4, "LOAD MEM: ADDRESS=0x" << std::hex << mem_addr << ", DATA=0x" << data_read); switch (func3) { case 0: - // LBI + // RV32I: LBI rddata[t] = sext32((data_read >> shift_by) & 0xFF, 8); break; case 1: - // LHI + // RV32I: LHI rddata[t] = sext32((data_read >> shift_by) & 0xFFFF, 16); break; case 2: - // LW - rddata[t] = data_read; + // RV32I: LW + rddata[t] = sext32((data_read >> shift_by) & 0xFFFFFFFF, 32); break; + case 3: + // RV64I: LD + rddata[t] = data_read; case 4: - // LBU - rddata[t] = Word((data_read >> shift_by) & 0xFF); + // RV32I: LBU + rddata[t] = DoubleWord((data_read >> shift_by) & 0xFF); break; case 5: - // LHU - rddata[t] = Word((data_read >> shift_by) & 0xFFFF); + // RV32I: LHU + rddata[t] = DoubleWord((data_read >> shift_by) & 0xFFFF); break; + case 6: + // RV64I: LWU + rddata[t] = DoubleWord((data_read >> shift_by) & 0xFFFFFFFF); default: std::abort(); } @@ -490,22 +495,25 @@ void Warp::execute(const Instr &instr, pipeline_trace_t *trace) { for (int t = 0; t < num_threads; ++t) { if (!tmask_.test(t)) continue; - Word mem_addr = rsdata[t][0] + immsrc; + DoubleWord mem_addr = rsdata[t][0] + immsrc; trace->mem_addrs.at(t).push_back({mem_addr, (1u << func3)}); DP(4, "STORE MEM: ADDRESS=0x" << std::hex << mem_addr); switch (func3) { case 0: - // SB + // RV32I: SB core_->dcache_write(mem_addr, rsdata[t][1] & 0x000000FF, 1); break; case 1: - // SH - core_->dcache_write(mem_addr, rsdata[t][1], 2); + // RV32I: SH + core_->dcache_write(mem_addr, rsdata[t][1] & 0x0000FFFF, 2); break; case 2: - // SW - core_->dcache_write(mem_addr, rsdata[t][1], 4); + // RV32I: SW + core_->dcache_write(mem_addr, rsdata[t][1] & 0xFFFFFFFF, 4); break; + case 3: + // RV64I: SD + core_->dcache_write(mem_addr, rsdata[t][1], 8); default: std::abort(); } @@ -527,6 +535,120 @@ void Warp::execute(const Instr &instr, pipeline_trace_t *trace) { } } break; + // simx64 + case R_INST_64: { + if (func7 & 0x1){ + switch (func3) { + case 0: + // RV64M: MULW + rddata[t] = sext64((WordI)rsdata[t][0] * (WordI)rsdata[t][1], 32); + break; + case 4: { + // RV64M: DIVW + int32_t dividen = (WordI) rsdata[t][0]; + int32_t divisor = (WordI) rsdata[t][1]; + if (divisor == 0){ + rddata[t] = -1; + } else if (dividen == WordI(0x80000000) && divisor == WordI(0xFFFFFFFF)) { + rddata[t] = sext64(dividen, 32); + } else { + rddata[t] = sext64(dividen / divisor, 32); + } + } break; + case 5: { + // RV64M: DIVUW + uint32_t dividen = (Word) rsdata[0]; + uint32_t divisor = (Word) rsdata[1]; + if (divisor == 0){ + rddata[t] = -1; + } else { + rddata[t] = sext64(dividen / divisor, 32); + } + } break; + case 6: { + // RV64M: REMW + int32_t dividen = (WordI) rsdata[0]; + int32_t divisor = (WordI) rsdata[1]; + if (divisor == 0){ + rddata[t] = sext64(dividen, 32); + } else if (dividen == WordI(0x80000000) && divisor == WordI(0xFFFFFFFF)) { + rddata[t] = 0; + } else { + rddata[t] = sext64(dividen % divisor, 32); + } + } break; + case 7: { + // RV64M: REMUW + uint32_t dividen = (Word) rsdata[0]; + uint32_t divisor = (Word) rsdata[1]; + if (divisor == 0){ + rddata[t] = sext64(dividen, 32); + } else { + rddata[t] = sext64(dividen % divisor, 32); + } + } break; + default: + std::abort(); + } + } else { + switch (func3) { + case 0: + if (func7){ + // RV64I: SUBW + rddata[t] = sext64((Word)rsdata[0] - (Word)rsdata[1], 32); + } + else{ + // RV64I: ADDW + rddata[t] = sext64((Word)rsdata[0] + (Word)rsdata[1], 32); + } + break; + case 1: + // RV64I: SLLW + rddata[t] = sext64((Word)rsdata[0] << (Word)rsdata[1], 32); + break; + case 5: + if (func7) { + // RV64I: SRAW + rddata[t] = sext64((WordI)rsdata[0] >> (WordI)rsdata[1], 32); + } else { + // RV64I: SRLW + rddata[t] = sext64((Word)rsdata[0] >> (Word)rsdata[1], 32); + } + break; + default: + std::abort(); + } + } + rd_write = true; + } break; + + // simx64 + case I_INST_64: { + switch (func3) { + case 0: + // RV64I: ADDIW + rddata[t] = sext64((Word)rsdata[0] + (Word)immsrc, 32); + break; + case 1: + // RV64I: SLLIW + rddata[t] = sext64((Word)rsdata[0] << (Word)immsrc, 32); + break; + case 5: + if (func7) { + // RV64I: SRAIW + DoubleWord result = sext64((WordI)rsdata[0] >> (WordI)immsrc, 32); + rddata[t] = result; + } else { + // RV64I: SRLIW + DoubleWord result = sext64((Word)rsdata[0] >> (Word)immsrc, 32); + rddata[t] = result; + } + break; + default: + std::abort(); + } + rd_write = true; + } break; case SYS_INST: for (int t = 0; t < num_threads; ++t) { if (!tmask_.test(t)) @@ -538,10 +660,10 @@ void Warp::execute(const Instr &instr, pipeline_trace_t *trace) { trace->alu.type = AluType::SYSCALL; trace->fetch_stall = true; switch (csr_addr) { - case 0: // ECALL + case 0: // RV32I: ECALL core_->trigger_ecall(); break; - case 1: // EBREAK + case 1: // RV32I: EBREAK core_->trigger_ebreak(); break; case 0x002: // URET @@ -556,40 +678,40 @@ void Warp::execute(const Instr &instr, pipeline_trace_t *trace) { csr_value = core_->get_csr(csr_addr, t, id_); switch (func3) { case 1: - // CSRRW + // RV32I: CSRRW rddata[t] = csr_value; core_->set_csr(csr_addr, rsdata[t][0], t, id_); trace->used_iregs.set(rsrc0); rd_write = true; break; case 2: - // CSRRS + // RV32I: CSRRS rddata[t] = csr_value; core_->set_csr(csr_addr, csr_value | rsdata[t][0], t, id_); trace->used_iregs.set(rsrc0); rd_write = true; break; case 3: - // CSRRC + // RV32I: CSRRC rddata[t] = csr_value; core_->set_csr(csr_addr, csr_value & ~rsdata[t][0], t, id_); trace->used_iregs.set(rsrc0); rd_write = true; break; case 5: - // CSRRWI + // RV32I: CSRRWI rddata[t] = csr_value; core_->set_csr(csr_addr, rsrc0, t, id_); rd_write = true; break; case 6: - // CSRRSI; + // RV32I: CSRRSI; rddata[t] = csr_value; core_->set_csr(csr_addr, csr_value | rsrc0, t, id_); rd_write = true; break; case 7: - // CSRRCI + // RV32I: CSRRCI rddata[t] = csr_value; core_->set_csr(csr_addr, csr_value & ~rsrc0, t, id_); rd_write = true; @@ -612,80 +734,177 @@ void Warp::execute(const Instr &instr, pipeline_trace_t *trace) { uint32_t frm = get_fpu_rm(func3, core_, t, id_); uint32_t fflags = 0; switch (func7) { - case 0x00: //FADD + case 0x00: // RV32F: FADD.S rddata[t] = rv_fadd(rsdata[t][0], rsdata[t][1], frm, &fflags); trace->fpu.type = FpuType::FMA; trace->used_fregs.set(rsrc0); trace->used_fregs.set(rsrc1); break; - case 0x04: //FSUB + case 0x01: // RV32D: FADD.D + rddata[t] = rv_fadd_d(rsdata[t][0], rsdata[t][1], frm, &fflags); + trace->fpu.type = FpuType::FMA; + trace->used_fregs.set(rsrc0); + trace->used_fregs.set(rsrc1); + break; + case 0x04: // RV32F: FSUB.S rddata[t] = rv_fsub(rsdata[t][0], rsdata[t][1], frm, &fflags); trace->fpu.type = FpuType::FMA; trace->used_fregs.set(rsrc0); trace->used_fregs.set(rsrc1); break; - case 0x08: //FMUL + case 0x05: // RV32D: FSUB.D + rddata[t] = rv_fsub_d(rsdata[t][0], rsdata[t][1], frm, &fflags); + trace->fpu.type = FpuType::FMA; + trace->used_fregs.set(rsrc0); + trace->used_fregs.set(rsrc1); + break; + case 0x08: // RV32F: FMUL.S rddata[t] = rv_fmul(rsdata[t][0], rsdata[t][1], frm, &fflags); trace->fpu.type = FpuType::FMA; trace->used_fregs.set(rsrc0); trace->used_fregs.set(rsrc1); break; - case 0x0c: //FDIV + case 0x09: // RV32F: FMUL.D + rddata[t] = rv_fmul_d(rsdata[t][0], rsdata[t][1], frm, &fflags); + trace->fpu.type = FpuType::FMA; + trace->used_fregs.set(rsrc0); + trace->used_fregs.set(rsrc1); + break; + case 0x0c: // RV32F: FDIV.S rddata[t] = rv_fdiv(rsdata[t][0], rsdata[t][1], frm, &fflags); trace->fpu.type = FpuType::FDIV; trace->used_fregs.set(rsrc0); trace->used_fregs.set(rsrc1); break; - case 0x2c: //FSQRT + case 0x0c: // RV32F: FDIV.D + rddata[t] = rv_fdiv_d(rsdata[t][0], rsdata[t][1], frm, &fflags); + trace->fpu.type = FpuType::FDIV; + trace->used_fregs.set(rsrc0); + trace->used_fregs.set(rsrc1); + break; + case 0x2c: // RV32F: FSQRT.S rddata[t] = rv_fsqrt(rsdata[t][0], frm, &fflags); trace->fpu.type = FpuType::FSQRT; trace->used_fregs.set(rsrc0); - break; + break; + case 0x2d: // RV32D: FSQRT.D + rddata[t] = rv_fsqrt_d(rsdata[t][0], frm, &fflags); + trace->fpu.type = FpuType::FSQRT; + trace->used_fregs.set(rsrc0); + break; case 0x10: switch (func3) { - case 0: // FSGNJ.S + case 0: // RV32F: FSGNJ.S rddata[t] = rv_fsgnj(rsdata[t][0], rsdata[t][1]); break; - case 1: // FSGNJN.S + case 1: // RV32F: FSGNJN.S rddata[t] = rv_fsgnjn(rsdata[t][0], rsdata[t][1]); break; - case 2: // FSGNJX.S + case 2: // RV32F: FSGNJX.S rddata[t] = rv_fsgnjx(rsdata[t][0], rsdata[t][1]); break; } + case 0x11: + switch (func3) { + case 0: // RV32F: FSGNJ.D + rddata[t] = rv_fsgnj_d(rsdata[t][0], rsdata[t][1]); + break; + case 1: // RV32F: FSGNJN.D + rddata[t] = rv_fsgnjn_d(rsdata[t][0], rsdata[t][1]); + break; + case 2: // RV32F: FSGNJX.D + rddata[t] = rv_fsgnjx_d(rsdata[t][0], rsdata[t][1]); + break; + } trace->fpu.type = FpuType::FNCP; trace->used_fregs.set(rsrc0); trace->used_fregs.set(rsrc1); break; case 0x14: if (func3) { - // FMAX.S + // RV32F: FMAX.S rddata[t] = rv_fmax(rsdata[t][0], rsdata[t][1], &fflags); } else { - // FMIN.S + // RV32F: FMIN.S rddata[t] = rv_fmin(rsdata[t][0], rsdata[t][1], &fflags); } trace->fpu.type = FpuType::FNCP; trace->used_fregs.set(rsrc0); trace->used_fregs.set(rsrc1); break; - case 0x60: - if (rsrc1 == 0) { - // FCVT.W.S - rddata[t] = rv_ftoi(rsdata[t][0], frm, &fflags); + case 0x15: + if (func3) { + // RV32D: FMAX.D + rddata[t] = rv_fmax_d(rsdata[t][0], rsdata[t][1], &fflags); } else { - // FCVT.WU.S - rddata[t] = rv_ftou(rsdata[t][0], frm, &fflags); + // RV32D: FMIN.D + rddata[t] = rv_fmin_d(rsdata[t][0], rsdata[t][1], &fflags); + } + trace->fpu.type = FpuType::FNCP; + trace->used_fregs.set(rsrc0); + trace->used_fregs.set(rsrc1); + break; + case 0x60: + switch(rsrc1) { + case 0: + // RV32F: FCVT.W.S + rddata[t] = sext64(rv_ftoi(rsdata[0], frm, &fflags), 32); + break; + case 1: + // RV32F: FCVT.WU.S + rddata[t] = sext64(rv_ftou(rsdata[0], frm, &fflags), 32); + break; + case 2: + // RV64F: FCVT.L.S + rddata[t] = rv_ftol(rsdata[0], frm, &fflags); + break; + case 3: + // RV64F: FCVT.LU.S + rddata[t] = rv_ftolu(rsdata[0], frm, &fflags); + break; + } + trace->fpu.type = FpuType::FCVT; + trace->used_fregs.set(rsrc0); + break; + case 0x61: + switch(rsrc1) { + case 0: + // RV32F: FCVT.W.D + rddata[t] = sext64(rv_ftoi_d(rsdata[0], frm, &fflags), 32); + break; + case 1: + // RV32F: FCVT.WU.D + rddata[t] = sext64(rv_ftou_d(rsdata[0], frm, &fflags), 32); + break; + case 2: + // RV64F: FCVT.L.D + rddata[t] = rv_ftol_d(rsdata[0], frm, &fflags); + break; + case 3: + // RV64F: FCVT.LU.D + rddata[t] = rv_ftolu_d(rsdata[0], frm, &fflags); + break; } trace->fpu.type = FpuType::FCVT; trace->used_fregs.set(rsrc0); break; case 0x70: if (func3) { - // FCLASS.S + // RV32F: FCLASS.S rddata[t] = rv_fclss(rsdata[t][0]); } else { - // FMV.X.W + // RV32F: FMV.X.W + rddata[t] = rsdata[t][0]; + } + trace->fpu.type = FpuType::FNCP; + trace->used_fregs.set(rsrc0); + break; + case 0x71: + if (func3) { + // RV32D: FCLASS.S + rddata[t] = rv_fclss_d(rsdata[t][0]); + } else { + // RV64D: FMV.X.D rddata[t] = rsdata[t][0]; } trace->fpu.type = FpuType::FNCP; @@ -694,35 +913,87 @@ void Warp::execute(const Instr &instr, pipeline_trace_t *trace) { case 0x50: switch(func3) { case 0: - // FLE.S + // RV32F: FLE.S rddata[t] = rv_fle(rsdata[t][0], rsdata[t][1], &fflags); break; case 1: - // FLT.S + // RV32F: FLT.S rddata[t] = rv_flt(rsdata[t][0], rsdata[t][1], &fflags); break; case 2: - // FEQ.S + // RV32F: FEQ.S rddata[t] = rv_feq(rsdata[t][0], rsdata[t][1], &fflags); break; } trace->fpu.type = FpuType::FNCP; trace->used_fregs.set(rsrc0); trace->used_fregs.set(rsrc1); + break; + case 0x51: + switch(func3) { + case 0: + // RV32D: FLE.D + rddata[t] = rv_fle_d(rsdata[t][0], rsdata[t][1], &fflags); + break; + case 1: + // RV32D: FLT.D + rddata[t] = rv_flt_d(rsdata[t][0], rsdata[t][1], &fflags); + break; + case 2: + // RV32D: FEQ.D + rddata[t] = rv_feq_d(rsdata[t][0], rsdata[t][1], &fflags); + break; + } + trace->fpu.type = FpuType::FNCP; + trace->used_fregs.set(rsrc0); + trace->used_fregs.set(rsrc1); break; case 0x68: - if (rsrc1) { - // FCVT.S.WU: - rddata[t] = rv_utof(rsdata[t][0], frm, &fflags); - } else { - // FCVT.S.W: - rddata[t] = rv_itof(rsdata[t][0], frm, &fflags); + switch(rsrc1) { + case 0: + // RV32F: FCVT.S.W + rddata[t] = rv_itof(rsdata[t][0], frm, &fflags); + break; + case 1: + // RV32F: FCVT.S.WU + rddata[t] = rv_utof(rsdata[t][0], frm, &fflags); + break; + case 2: + // RV64F: FCVT.S.L + rddata[t] = rv_ltof(rsdata[t][0], frm, &fflags); + break; + case 3: + // RV64F: FCVT.S.LU + rddata[t] = rv_lutof(rsdata[t][0], frm, &fflags); + break; } trace->fpu.type = FpuType::FCVT; trace->used_iregs.set(rsrc0); break; - case 0x78: - // FMV.W.X + case 0x69: + switch(rsrc1) { + case 0: + // RV32D: FCVT.D.W + rddata[t] = rv_itof_d(rsdata[t][0], frm, &fflags); + break; + case 1: + // RV32F: FCVT.D.WU + rddata[t] = rv_utof_d(rsdata[t][0], frm, &fflags); + break; + case 2: + // RV64D: FCVT.D.L + rddata[t] = rv_ltof_d(rsdata[t][0], frm, &fflags); + break; + case 3: + // RV64D: FCVT.D.LU + rddata[t] = rv_lutof_d(rsdata[t][0], frm, &fflags); + break; + } + trace->fpu.type = FpuType::FCVT; + trace->used_iregs.set(rsrc0); + break; + case 0x78: // FMV.W.X + case 0x79: // FMV.D.X rddata[t] = rsdata[t][0]; trace->fpu.type = FpuType::FNCP; trace->used_iregs.set(rsrc0); @@ -747,16 +1018,36 @@ void Warp::execute(const Instr &instr, pipeline_trace_t *trace) { Word fflags = 0; switch (opcode) { case FMADD: - rddata[t] = rv_fmadd(rsdata[t][0], rsdata[t][1], rsdata[t][2], frm, &fflags); + if (func2) + // RV32D: FMADD.D + rddata[t] = rv_fmadd_d(rsdata[t][0], rsdata[t][1], rsdata[t][2], frm, &fflags); + else + // RV32F: FMADD.S + rddata[t] = rv_fmadd(rsdata[t][0], rsdata[t][1], rsdata[t][2], frm, &fflags); break; case FMSUB: - rddata[t] = rv_fmsub(rsdata[t][0], rsdata[t][1], rsdata[t][2], frm, &fflags); + if (func2) + // RV32D: FMSUB.D + rddata[t] = rv_fmsub_d(rsdata[t][0], rsdata[t][1], rsdata[t][2], frm, &fflags); + else + // RV32F: FMSUB.S + rddata[t] = rv_fmsub(rsdata[t][0], rsdata[t][1], rsdata[t][2], frm, &fflags); break; case FMNMADD: - rddata[t] = rv_fnmadd(rsdata[t][0], rsdata[t][1], rsdata[t][2], frm, &fflags); - break; + if (func2) + // RV32D: FNMADD.D + rddata[t] = rv_fnmadd_d(rsdata[t][0], rsdata[t][1], rsdata[t][2], frm, &fflags); + else + // RV32F: FNMADD.S + rddata[t] = rv_fnmadd(rsdata[t][0], rsdata[t][1], rsdata[t][2], frm, &fflags); + break; case FMNMSUB: - rddata[t] = rv_fnmsub(rsdata[t][0], rsdata[t][1], rsdata[t][2], frm, &fflags); + if (func2) + // RV32D: FNMSUB.D + rddata[t] = rv_fnmsub_d(rsdata[t][0], rsdata[t][1], rsdata[t][2], frm, &fflags); + else + // RV32F: FNMSUB.S + rddata[t] = rv_fnmsub(rsdata[t][0], rsdata[t][1], rsdata[t][2], frm, &fflags); break; default: break; @@ -1832,7 +2123,7 @@ void Warp::execute(const Instr &instr, pipeline_trace_t *trace) { } } - PC_ += core_->arch().wsize(); + PC_ += 4; if (PC_ != nextPC) { DP(3, "*** Next PC: " << std::hex << nextPC << std::dec); PC_ = nextPC; diff --git a/sim/simx/instr.h b/sim/simx/instr.h index 334b8565..1d4c7699 100644 --- a/sim/simx/instr.h +++ b/sim/simx/instr.h @@ -32,6 +32,9 @@ enum Opcode { // GPGPU Extension GPGPU = 0x6b, GPU = 0x5b, + // RV64 Standard Extensions + R_INST_64 = 0x3b, + I_INST_64 = 0x1b, }; enum InstType { @@ -72,7 +75,7 @@ public: void setFunc2(Word func2) { func2_ = func2; } void setFunc3(Word func3) { func3_ = func3; } void setFunc7(Word func7) { func7_ = func7; } - void setImm(Word imm) { has_imm_ = true; imm_ = imm; } + void setImm(DoubleWord imm) { has_imm_ = true; imm_ = imm; } void setVlsWidth(Word width) { vlsWidth_ = width; } void setVmop(Word mop) { vMop_ = mop; } void setVnf(Word nf) { vNf_ = nf; } @@ -95,7 +98,7 @@ public: int getRDest() const { return rdest_; } RegType getRDType() const { return rdest_type_; } bool hasImm() const { return has_imm_; } - Word getImm() const { return imm_; } + DoubleWord getImm() const { return imm_; } Word getVlsWidth() const { return vlsWidth_; } Word getVmop() const { return vMop_; } Word getvNf() const { return vNf_; } @@ -115,7 +118,7 @@ private: int num_rsrcs_; bool has_imm_; RegType rdest_type_; - Word imm_; + DoubleWord imm_; RegType rsrc_type_[MAX_REG_SOURCES]; int rsrc_[MAX_REG_SOURCES]; int rdest_; diff --git a/sim/simx/pipeline.cpp b/sim/simx/pipeline.cpp new file mode 100644 index 00000000..c54977a0 --- /dev/null +++ b/sim/simx/pipeline.cpp @@ -0,0 +1,63 @@ +#include +#include "pipeline.h" + +using namespace vortex; + +namespace vortex { +std::ostream &operator<<(std::ostream &os, const Pipeline& pipeline) { + os << pipeline.name_ << ": valid=" << pipeline.valid << std::endl; + os << pipeline.name_ << ": stalled=" << pipeline.stalled << std::endl; + os << pipeline.name_ << ": stall_warp=" << pipeline.stall_warp << std::endl; + os << pipeline.name_ << ": wid=" << pipeline.wid << std::endl; + os << pipeline.name_ << ": PC=" << std::hex << pipeline.PC << std::endl; + os << pipeline.name_ << ": used_iregs=" << pipeline.used_iregs << std::endl; + os << pipeline.name_ << ": used_fregs=" << pipeline.used_fregs << std::endl; + os << pipeline.name_ << ": used_vregs=" << pipeline.used_vregs << std::endl; + return os; +} +} + +Pipeline::Pipeline(const char* name) +: name_(name) { + this->clear(); +} + +void Pipeline::clear() { + valid = false; + stalled = false; + stall_warp = false; + wid = 0; + PC = 0; + used_iregs.reset(); + used_fregs.reset(); + used_vregs.reset(); +} + +bool Pipeline::enter(Pipeline *drain) { + if (drain) { + if (drain->stalled) { + this->stalled = true; + return false; + } + drain->valid = false; + } + this->stalled = false; + if (!this->valid) + return false; + return true; +} + +void Pipeline::next(Pipeline *drain) { + if (drain) { + drain->valid = this->valid; + drain->stalled = this->stalled; + drain->stall_warp = this->stall_warp; + drain->wid = this->wid; + drain->PC = this->PC; + drain->rdest = this->rdest; + drain->rdest_type = this->rdest_type; + drain->used_iregs = this->used_iregs; + drain->used_fregs = this->used_fregs; + drain->used_vregs = this->used_vregs; + } +} \ No newline at end of file diff --git a/sim/simx/pipeline.h b/sim/simx/pipeline.h index 18d54e21..dbd1c972 100644 --- a/sim/simx/pipeline.h +++ b/sim/simx/pipeline.h @@ -18,7 +18,7 @@ struct pipeline_trace_t { int cid; int wid; ThreadMask tmask; - Word PC; + DoubleWord PC; //-- bool fetch_stall; diff --git a/sim/simx/types.h b/sim/simx/types.h index 9177dba4..a97b5041 100644 --- a/sim/simx/types.h +++ b/sim/simx/types.h @@ -13,8 +13,11 @@ namespace vortex { typedef uint8_t Byte; typedef uint32_t Word; typedef int32_t WordI; +// simx64 +typedef uint64_t DoubleWord; +typedef int64_t DoubleWordI; -typedef uint32_t Addr; +typedef uint64_t Addr; typedef uint32_t Size; typedef std::bitset<32> RegMask; diff --git a/sim/simx/warp.cpp b/sim/simx/warp.cpp index b05b1246..9fca6595 100644 --- a/sim/simx/warp.cpp +++ b/sim/simx/warp.cpp @@ -13,8 +13,8 @@ using namespace vortex; Warp::Warp(Core *core, Word id) : id_(id) , core_(core) - , ireg_file_(core->arch().num_threads(), std::vector(core->arch().num_regs())) - , freg_file_(core->arch().num_threads(), std::vector(core->arch().num_regs())) + , ireg_file_(core->arch().num_threads(), std::vector(core->arch().num_regs())) + , freg_file_(core->arch().num_threads(), std::vector(core->arch().num_regs())) , vreg_file_(core->arch().num_threads(), std::vector(core->arch().vsize())) { this->clear(); @@ -71,7 +71,7 @@ void Warp::eval(pipeline_trace_t *trace) { for (int i = 0; i < core_->arch().num_regs(); ++i) { DPN(4, " %r" << std::setfill('0') << std::setw(2) << std::dec << i << ':'); for (int j = 0; j < core_->arch().num_threads(); ++j) { - DPN(4, ' ' << std::setfill('0') << std::setw(8) << std::hex << ireg_file_.at(j).at(i) << std::setfill(' ') << ' '); + DPN(4, ' ' << std::setfill('0') << std::setw(16) << std::hex << ireg_file_.at(j).at(i) << std::setfill(' ') << ' '); } DPN(4, std::endl); } diff --git a/sim/simx/warp.h b/sim/simx/warp.h index 9e9970f3..cfed0933 100644 --- a/sim/simx/warp.h +++ b/sim/simx/warp.h @@ -11,7 +11,7 @@ class Core; class Instr; class pipeline_trace_t; struct DomStackEntry { - DomStackEntry(const ThreadMask &tmask, Word PC) + DomStackEntry(const ThreadMask &tmask, DoubleWord PC) : tmask(tmask) , PC(PC) , fallThrough(false) @@ -26,7 +26,7 @@ struct DomStackEntry { {} ThreadMask tmask; - Word PC; + DoubleWord PC; bool fallThrough; bool unanimous; }; @@ -66,11 +66,11 @@ public: return id_; } - Word getPC() const { + DoubleWord getPC() const { return PC_; } - void setPC(Word PC) { + void setPC(DoubleWord PC) { PC_ = PC; } @@ -99,11 +99,11 @@ private: Core *core_; bool active_; - Word PC_; + DoubleWord PC_; ThreadMask tmask_; - std::vector> ireg_file_; - std::vector> freg_file_; + std::vector> ireg_file_; + std::vector> freg_file_; std::vector> vreg_file_; std::stack dom_stack_; diff --git a/tests/regression/basic64/Makefile b/tests/regression/basic64/Makefile new file mode 100644 index 00000000..6d9c842d --- /dev/null +++ b/tests/regression/basic64/Makefile @@ -0,0 +1,74 @@ +RISCV64_TOOLCHAIN_PATH ?= /nethome/ssrivatsan8/riscv +RISCV_TOOLCHAIN_PATH ?= /opt/riscv-gnu-toolchain +VORTEX_DRV_PATH ?= $(realpath ../../../driver) +VORTEX_RT_PATH ?= $(realpath ../../../runtime) + +OPTS ?= -n256 + +VX_CC = $(RISCV64_TOOLCHAIN_PATH)/bin/riscv64-unknown-elf-gcc +VX_CXX = $(RISCV64_TOOLCHAIN_PATH)/bin/riscv64-unknown-elf-g++ +VX_DP = $(RISCV64_TOOLCHAIN_PATH)/bin/riscv64-unknown-elf-objdump +VX_CP = $(RISCV64_TOOLCHAIN_PATH)/bin/riscv64-unknown-elf-objcopy + +# https://www.sifive.com/blog/all-aboard-part-1-compiler-args +# find march and mabi combinations by navigating to the riscv64-unknown-elf-toolchain directory +# and running ./riscv64-unknown-elf-gcc --print-multi-lib +VX_CFLAGS += -march=rv64i -mabi=lp64 -O3 -Wstack-usage=1024 -ffreestanding -nostartfiles -fdata-sections -ffunction-sections +VX_CFLAGS += -I$(VORTEX_RT_PATH)/include -I$(VORTEX_RT_PATH)/../hw + +VX_LDFLAGS += -Wl,-Bstatic,-T,$(VORTEX_RT_PATH)/linker/vx_link64.ld -Wl,--noinhibit-exec,--gc-sections $(VORTEX_RT_PATH)/libvortexrt.a + +VX_SRCS = kernel.c + +#CXXFLAGS += -std=c++11 -O2 -Wall -Wextra -pedantic -Wfatal-errors +CXXFLAGS += -std=c++11 -O0 -g -Wall -Wextra -pedantic -Wfatal-errors + +CXXFLAGS += -I$(VORTEX_DRV_PATH)/include + +LDFLAGS += -L$(VORTEX_DRV_PATH)/stub -lvortex + +PROJECT = basic64 + +SRCS = main.cpp + +all: $(PROJECT) kernel.bin kernel.dump + +kernel.dump: kernel.elf + $(VX_DP) -D kernel.elf > kernel.dump + +kernel.bin: kernel.elf + $(VX_CP) -O binary kernel.elf kernel.bin + +kernel.elf: $(VX_SRCS) + $(VX_CC) $(VX_CFLAGS) $(VX_SRCS) $(VX_LDFLAGS) -o kernel.elf + +$(PROJECT): $(SRCS) + $(CXX) $(CXXFLAGS) $^ $(LDFLAGS) -o $@ + +run-simx: $(PROJECT) kernel.bin + LD_LIBRARY_PATH=$(POCL_RT_PATH)/lib:$(VORTEX_DRV_PATH)/simx:$(LD_LIBRARY_PATH) ./$(PROJECT) $(OPTS) + +run-fpga: $(PROJECT) kernel.bin + LD_LIBRARY_PATH=$(POCL_RT_PATH)/lib:$(VORTEX_DRV_PATH)/fpga:$(LD_LIBRARY_PATH) ./$(PROJECT) $(OPTS) + +run-asesim: $(PROJECT) kernel.bin + LD_LIBRARY_PATH=$(POCL_RT_PATH)/lib:$(VORTEX_DRV_PATH)/asesim:$(LD_LIBRARY_PATH) ./$(PROJECT) $(OPTS) + +run-vlsim: $(PROJECT) kernel.bin + LD_LIBRARY_PATH=$(POCL_RT_PATH)/lib:$(VORTEX_DRV_PATH)/vlsim:$(LD_LIBRARY_PATH) ./$(PROJECT) $(OPTS) + +run-rtlsim: $(PROJECT) kernel.bin + LD_LIBRARY_PATH=$(POCL_RT_PATH)/lib:$(VORTEX_DRV_PATH)/rtlsim:$(LD_LIBRARY_PATH) ./$(PROJECT) $(OPTS) + +.depend: $(SRCS) + $(CXX) $(CXXFLAGS) -MM $^ > .depend; + +clean: + rm -rf $(PROJECT) *.o .depend + +clean-all: clean + rm -rf *.elf *.bin *.dump + +ifneq ($(MAKECMDGOALS),clean) + -include .depend +endif \ No newline at end of file diff --git a/tests/regression/basic64/common.h b/tests/regression/basic64/common.h new file mode 100644 index 00000000..e496cf34 --- /dev/null +++ b/tests/regression/basic64/common.h @@ -0,0 +1,12 @@ +#ifndef _COMMON_H_ +#define _COMMON_H_ + +#define KERNEL_ARG_DEV_MEM_ADDR 0x7ffff000 + +typedef struct { + uint32_t count; + uint32_t src_ptr; + uint32_t dst_ptr; +} kernel_arg_t; + +#endif \ No newline at end of file diff --git a/tests/regression/basic64/kernel.c b/tests/regression/basic64/kernel.c new file mode 100644 index 00000000..bc5ec076 --- /dev/null +++ b/tests/regression/basic64/kernel.c @@ -0,0 +1,16 @@ +#include +#include +#include "common.h" + +void main() { + kernel_arg_t* arg = (kernel_arg_t*)KERNEL_ARG_DEV_MEM_ADDR; + uint32_t count = arg->count; + int32_t* src_ptr = (int32_t*)arg->src_ptr; + int32_t* dst_ptr = (int32_t*)arg->dst_ptr; + + uint32_t offset = vx_core_id() * count; + + for (uint32_t i = 0; i < count; ++i) { + dst_ptr[offset + i] = src_ptr[offset + i]; + } +} \ No newline at end of file diff --git a/tests/regression/basic64/kernel_scheduler.h b/tests/regression/basic64/kernel_scheduler.h new file mode 100644 index 00000000..8fd7dc28 --- /dev/null +++ b/tests/regression/basic64/kernel_scheduler.h @@ -0,0 +1,153 @@ +#include +#include + +#define NUM_CORES_MAX 32 + +#define MIN(a, b) ((a) < (b) ? (a) : (b)) + +struct context_t { + uint32_t num_groups[3]; + uint32_t global_offset[3]; + uint32_t local_size[3]; + char * printf_buffer; + uint32_t *printf_buffer_position; + uint32_t printf_buffer_capacity; + uint32_t work_dim; +}; + +typedef void (*vx_pocl_workgroup_func) ( + const void * /* args */, + const struct context_t * /* context */, + uint32_t /* group_x */, + uint32_t /* group_y */, + uint32_t /* group_z */ +); + +typedef struct { + struct context_t * ctx; + vx_pocl_workgroup_func pfn; + const void * args; + int offset; + int N; + int R; +} wspawn_args_t; + +void kernel_spawn_callback(int core_id, int NW, int NT, int nW, wspawn_args_t* p_wspawn_args) { + assert(nW <= NW); + for (int wid = 0; wid < nW; ++wid) { + for (int tid = 0; tid < NT; ++tid) { + int wK = (p_wspawn_args->N * wid) + MIN(p_wspawn_args->R, wid); + int tK = p_wspawn_args->N + (wid < p_wspawn_args->R); + int offset = p_wspawn_args->offset + (wK * NT) + (tid * tK); + + int X = p_wspawn_args->ctx->num_groups[0]; + int Y = p_wspawn_args->ctx->num_groups[1]; + int XY = X * Y; + + for (int wg_id = offset, N = wg_id + tK; wg_id < N; ++wg_id) { + int k = wg_id / XY; + int wg_2d = wg_id - k * XY; + int j = wg_2d / X; + int i = wg_2d - j * X; + + int gid0 = p_wspawn_args->ctx->global_offset[0] + i; + int gid1 = p_wspawn_args->ctx->global_offset[1] + j; + int gid2 = p_wspawn_args->ctx->global_offset[2] + k; + + printf("c%d w%d t%d: g={%d, %d, %d}\n", core_id, wid, tid, gid0, gid1, gid2); + } + } + } +} + +void kernel_spawn_remaining_callback(int core_id, int NW, int NT, int wid, int nT, wspawn_args_t* p_wspawn_args) { + assert(wid < NW); + assert(nT <= NT); + for (int t = 0; t < nT; ++t) { + int tid = core_id * NW * NT + wid * NT + t; + + int wg_id = p_wspawn_args->offset + tid; + + int X = p_wspawn_args->ctx->num_groups[0]; + int Y = p_wspawn_args->ctx->num_groups[1]; + int XY = X * Y; + + int k = wg_id / XY; + int wg_2d = wg_id - k * XY; + int j = wg_2d / X; + int i = wg_2d - j * X; + + int gid0 = p_wspawn_args->ctx->global_offset[0] + i; + int gid1 = p_wspawn_args->ctx->global_offset[1] + j; + int gid2 = p_wspawn_args->ctx->global_offset[2] + k; + + printf("c%d w%d t%d: g={%d, %d, %d}\n", core_id, wid, tid, gid0, gid1, gid2); + } +} + +void kernel_run_once(context_t* ctx, int NC, int NW, int NT, int core_id) { + // total number of WGs + int X = ctx->num_groups[0]; + int Y = ctx->num_groups[1]; + int Z = ctx->num_groups[2]; + int Q = X * Y * Z; + + // current core id + if (core_id >= NUM_CORES_MAX) + return; + + // calculate necessary active cores + int WT = NW * NT; + int nC = (Q > WT) ? (Q / WT) : 1; + int nc = MIN(nC, NC); + if (core_id >= nc) + return; // terminate extra cores + + // number of workgroups per core + int wgs_per_core = Q / nc; + int wgs_per_core0 = wgs_per_core; + if (core_id == (NC-1)) { + int QC_r = Q - (nc * wgs_per_core0); + wgs_per_core0 += QC_r; // last core executes remaining WGs + } + + // number of workgroups per warp + int nW = wgs_per_core0 / NT; // total warps per core + int rT = wgs_per_core0 - (nW * NT); // remaining threads + int fW = (nW >= NW) ? (nW / NW) : 0; // full warps iterations + int rW = (fW != 0) ? (nW - fW * NW) : 0; // reamining full warps + if (0 == fW) + fW = 1; + + //-- + wspawn_args_t wspawn_args = { ctx, NULL, NULL, core_id * wgs_per_core, fW, rW }; + + //-- + if (nW >= 1) { + int nw = MIN(nW, NW); + kernel_spawn_callback(core_id, NW, NT, nw, &wspawn_args); + } + + //-- + if (rT != 0) { + wspawn_args.offset = wgs_per_core0 - rT; + kernel_spawn_remaining_callback(core_id, NW, NT, 0, rT, &wspawn_args); + } + } + + void kernel_run(int X, int Y, int Z, int NC, int NW, int NT) { + context_t ctx; + + ctx.num_groups[0] = X; + ctx.num_groups[1] = Y; + ctx.num_groups[2] = Z; + ctx.global_offset[0] = 0; + ctx.global_offset[1] = 0; + ctx.global_offset[2] = 0; + + for (int cid = 0; cid < NC; ++cid) { + kernel_run_once(&ctx, NC, NW, NT, cid); + } + + exit (0); + } \ No newline at end of file diff --git a/tests/regression/basic64/main.cpp b/tests/regression/basic64/main.cpp new file mode 100755 index 00000000..c92bae8d --- /dev/null +++ b/tests/regression/basic64/main.cpp @@ -0,0 +1,286 @@ +#include +#include +#include +#include +#include +#include "common.h" +#include "kernel_scheduler.h" + +#define RT_CHECK(_expr) \ + do { \ + int _ret = _expr; \ + if (0 == _ret) \ + break; \ + printf("Error: '%s' returned %d!\n", #_expr, (int)_ret); \ + cleanup(); \ + exit(-1); \ + } while (false) + +/////////////////////////////////////////////////////////////////////////////// + +const char* kernel_file = "kernel.bin"; +int test = -1; +uint32_t count = 0; + +vx_device_h device = nullptr; +vx_buffer_h staging_buf = nullptr; + +static void show_usage() { + std::cout << "Vortex Test." << std::endl; + std::cout << "Usage: [-t testno][-k: kernel][-n words][-h: help]" << std::endl; +} + +static void parse_args(int argc, char **argv) { + int c; + while ((c = getopt(argc, argv, "n:t:k:h?")) != -1) { + switch (c) { + case 'n': + count = atoi(optarg); + break; + case 't': + test = atoi(optarg); + break; + case 'k': + kernel_file = optarg; + break; + case 'h': + case '?': { + show_usage(); + exit(0); + } break; + default: + show_usage(); + exit(-1); + } + } +} + +void cleanup() { + if (staging_buf) { + vx_buf_release(staging_buf); + } + if (device) { + vx_dev_close(device); + } +} + +uint64_t shuffle(int i, uint64_t value) { + return (value << i) | (value & ((1 << i)-1));; +} + +int run_memcopy_test(uint32_t dev_addr, uint64_t value, int num_blocks) { + int errors = 0; + + auto time_start = std::chrono::high_resolution_clock::now(); + + int num_blocks_8 = (64 * num_blocks) / 8; + + // update source buffer + for (int i = 0; i < num_blocks_8; ++i) { + ((uint64_t*)vx_host_ptr(staging_buf))[i] = shuffle(i, value); + } + + /*for (int i = 0; i < num_blocks; ++i) { + std::cout << "data[" << i << "]=0x"; + for (int j = 7; j >= 0; --j) { + std::cout << std::hex << ((uint64_t*)vx_host_ptr(staging_buf))[i * 8 +j]; + } + std::cout << std::endl; + }*/ + + // write source buffer to local memory + std::cout << "write source buffer to local memory" << std::endl; + auto t0 = std::chrono::high_resolution_clock::now(); + RT_CHECK(vx_copy_to_dev(staging_buf, dev_addr, 64 * num_blocks, 0)); + auto t1 = std::chrono::high_resolution_clock::now(); + + // clear destination buffer + for (int i = 0; i < num_blocks_8; ++i) { + ((uint64_t*)vx_host_ptr(staging_buf))[i] = 0; + } + + // read destination buffer from local memory + std::cout << "read destination buffer from local memory" << std::endl; + auto t2 = std::chrono::high_resolution_clock::now(); + RT_CHECK(vx_copy_from_dev(staging_buf, dev_addr, 64 * num_blocks, 0)); + auto t3 = std::chrono::high_resolution_clock::now(); + + // verify result + std::cout << "verify result" << std::endl; + for (int i = 0; i < num_blocks_8; ++i) { + auto curr = ((uint64_t*)vx_host_ptr(staging_buf))[i]; + auto ref = shuffle(i, value); + if (curr != ref) { + std::cout << "error at 0x" << std::hex << (dev_addr + 8 * i) + << ": actual 0x" << curr << ", expected 0x" << ref << std::endl; + ++errors; + } + } + + if (errors != 0) { + std::cout << "Found " << std::dec << errors << " errors!" << std::endl; + std::cout << "FAILED!" << std::endl; + return 1; + } + + auto time_end = std::chrono::high_resolution_clock::now(); + + double elapsed; + elapsed = std::chrono::duration_cast(t1 - t0).count(); + printf("upload time: %lg ms\n", elapsed); + elapsed = std::chrono::duration_cast(t3 - t2).count(); + printf("download time: %lg ms\n", elapsed); + elapsed = std::chrono::duration_cast(time_end - time_start).count(); + printf("Total elapsed time: %lg ms\n", elapsed); + + return 0; +} + +int run_kernel_test(const kernel_arg_t& kernel_arg, + uint32_t buf_size, + uint32_t num_points) { + int errors = 0; + + auto time_start = std::chrono::high_resolution_clock::now(); + + // update source buffer + { + auto buf_ptr = (int32_t*)vx_host_ptr(staging_buf); + for (uint32_t i = 0; i < num_points; ++i) { + buf_ptr[i] = i; + } + } + std::cout << "upload source buffer" << std::endl; + auto t0 = std::chrono::high_resolution_clock::now(); + RT_CHECK(vx_copy_to_dev(staging_buf, kernel_arg.src_ptr, buf_size, 0)); + auto t1 = std::chrono::high_resolution_clock::now(); + + // clear destination buffer + { + auto buf_ptr = (int32_t*)vx_host_ptr(staging_buf); + for (uint32_t i = 0; i < num_points; ++i) { + buf_ptr[i] = 0xdeadbeef; + } + } + std::cout << "clear destination buffer" << std::endl; + RT_CHECK(vx_copy_to_dev(staging_buf, kernel_arg.dst_ptr, buf_size, 0)); + + // start device + std::cout << "start execution" << std::endl; + auto t2 = std::chrono::high_resolution_clock::now(); + RT_CHECK(vx_start(device)); + RT_CHECK(vx_ready_wait(device, -1)); + auto t3 = std::chrono::high_resolution_clock::now(); + + // read destination buffer from local memory + std::cout << "read destination buffer from local memory" << std::endl; + auto t4 = std::chrono::high_resolution_clock::now(); + RT_CHECK(vx_copy_from_dev(staging_buf, kernel_arg.dst_ptr, buf_size, 0)); + auto t5 = std::chrono::high_resolution_clock::now(); + + + // verify result + std::cout << "verify result" << std::endl; + for (uint32_t i = 0; i < num_points; ++i) { + int32_t curr = ((int32_t*)vx_host_ptr(staging_buf))[i]; + int32_t ref = i; + if (curr != ref) { + std::cout << "error at result #" << std::dec << i + << std::hex << ": actual 0x" << curr << ", expected 0x" << ref << std::endl; + ++errors; + } + } + + if (errors != 0) { + std::cout << "Found " << std::dec << errors << " errors!" << std::endl; + std::cout << "FAILED!" << std::endl; + return 1; + } + + auto time_end = std::chrono::high_resolution_clock::now(); + + double elapsed; + elapsed = std::chrono::duration_cast(t1 - t0).count(); + printf("upload time: %lg ms\n", elapsed); + elapsed = std::chrono::duration_cast(t3 - t2).count(); + printf("execute time: %lg ms\n", elapsed); + elapsed = std::chrono::duration_cast(t5 - t4).count(); + printf("download time: %lg ms\n", elapsed); + elapsed = std::chrono::duration_cast(time_end - time_start).count(); + printf("Total elapsed time: %lg ms\n", elapsed); + + return 0; +} + +int main(int argc, char *argv[]) { + + size_t value; + kernel_arg_t kernel_arg; + + // parse command arguments + parse_args(argc, argv); + + if (count == 0) { + count = 1; + } + + // open device connection + std::cout << "open device connection" << std::endl; + RT_CHECK(vx_dev_open(&device)); + + unsigned max_cores; + RT_CHECK(vx_dev_caps(device, VX_CAPS_MAX_CORES, &max_cores)); + uint32_t num_points = count; + uint32_t num_blocks = (num_points * sizeof(int32_t) + 63) / 64; + uint32_t buf_size = num_blocks * 64; + + std::cout << "number of points: " << num_points << std::endl; + std::cout << "buffer size: " << buf_size << " bytes" << std::endl; + + // allocate device memory + RT_CHECK(vx_alloc_dev_mem(device, buf_size, &value)); + kernel_arg.src_ptr = value; + RT_CHECK(vx_alloc_dev_mem(device, buf_size, &value)); + kernel_arg.dst_ptr = value; + + kernel_arg.count = num_points; + + std::cout << "dev_src=" << std::hex << kernel_arg.src_ptr << std::endl; + std::cout << "dev_dst=" << std::hex << kernel_arg.dst_ptr << std::endl; + + // allocate shared memory + std::cout << "allocate shared memory" << std::endl; + uint32_t alloc_size = std::max(buf_size, sizeof(kernel_arg_t)); + RT_CHECK(vx_alloc_shared_mem(device, alloc_size, &staging_buf)); + + // run tests + if (0 == test || -1 == test) { + std::cout << "run memcopy test" << std::endl; + RT_CHECK(run_memcopy_test(kernel_arg.src_ptr, 0x0badf00d40ff40ff, num_blocks)); + } + + if (1 == test || -1 == test) { + // upload program + std::cout << "upload program" << std::endl; + RT_CHECK(vx_upload_kernel_file(device, kernel_file)); + + // upload kernel argument + std::cout << "upload kernel argument" << std::endl; + { + auto buf_ptr = (void*)vx_host_ptr(staging_buf); + memcpy(buf_ptr, &kernel_arg, sizeof(kernel_arg_t)); + RT_CHECK(vx_copy_to_dev(staging_buf, KERNEL_ARG_DEV_MEM_ADDR, sizeof(kernel_arg_t), 0)); + } + + std::cout << "run kernel test" << std::endl; + RT_CHECK(run_kernel_test(kernel_arg, buf_size, num_points)); + } + + // cleanup + std::cout << "cleanup" << std::endl; + cleanup(); + + std::cout << "Test PASSED" << std::endl; + + return 0; +} \ No newline at end of file diff --git a/tests/riscv/isa64/Makefile b/tests/riscv/isa64/Makefile new file mode 100644 index 00000000..136ea5e2 --- /dev/null +++ b/tests/riscv/isa64/Makefile @@ -0,0 +1,43 @@ +# ALL_TESTS := $(wildcard *.hex) + +# D_TESTS := $(wildcard *ud-p-*.hex) +# V_TESTS := $(wildcard *-v-*.hex) +# M_TESTS := $(wildcard *um-*.hex) +# A_TESTS := $(wildcard *ua-*.hex) + +# EXCLUDED_TESTS := $(V_TESTS) $(D_TESTS) $(M_TESTS) $(A_TESTS) rv32si-p-scall.hex rv32si-p-sbreak.hex rv32mi-p-breakpoint.hex rv32ua-p-amomax_w.hex rv32ua-p-amoxor_w.hex rv32ua-p-amoor_w.hex rv32mi-p-ma_addr.hex rv32mi-p-mcsr.hex rv32ua-p-amoswap_w.hex rv32mi-p-ma_fetch.hex rv32mi-p-csr.hex rv32ua-p-amoadd_w.hex rv32si-p-dirty.hex rv32ui-p-fence_i.hex rv32si-p-csr.hex rv32mi-p-shamt.hex rv32ua-p-amomin_w.hex rv32ua-p-lrsc.hex rv32si-p-wfi.hex rv32ua-p-amomaxu_w.hex rv32si-p-ma_fetch.hex rv32mi-p-illegal.hex rv32uc-p-rvc.hex rv32mi-p-sbreak.hex rv32ua-p-amominu_w.hex rv32ua-p-amoand_w.hex + +# TESTS := $(filter-out $(EXCLUDED_TESTS), $(ALL_TESTS)) + +ALL_TESTS := $(wildcard *.hex) + +EXCLUDED_TESTS := rv64ud-p-move.hex + +I_TESTS := $(wildcard *ui-p-*.hex) +M_TESTS := $(wildcard *um-p-*.hex) +F_TESTS := $(wildcard *uf-p-*.hex) +D_TESTS := $(filter-out $(EXCLUDED_TESTS), $(wildcard *ud-p-*.hex)) + +TESTS := $(I_TESTS) $(M_TESTS) $(F_TESTS) $(D_TESTS) + +all: + +run-simx-i: + $(foreach test, $(I_TESTS), ../../../sim/simX/simX -r -a rv64i -c 1 -i $(test) || exit;) + +run-simx-m: + $(foreach test, $(M_TESTS), ../../../sim/simX/simX -r -a rv64im -c 1 -i $(test) || exit;) + +run-simx-f: + $(foreach test, $(F_TESTS), ../../../sim/simX/simX -r -a rv64imf -c 1 -i $(test) || exit;) + +run-simx-d: + $(foreach test, $(D_TESTS), ../../../sim/simX/simX -r -a rv64imfd -c 1 -i $(test) || exit;) + +run-simx: + $(foreach test, $(TESTS), ../../../sim/simX/simX -r -a rv64i -c 1 -i $(test) || exit;) + +run-rtlsim: + $(foreach test, $(TESTS), ../../../sim/rtlsim/rtlsim -r $(test) || exit;) + +clean: \ No newline at end of file diff --git a/tests/riscv/isa64/rv64ud-p-fadd.hex b/tests/riscv/isa64/rv64ud-p-fadd.hex new file mode 100644 index 00000000..2adb634b --- /dev/null +++ b/tests/riscv/isa64/rv64ud-p-fadd.hex @@ -0,0 +1,92 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003037250000732005307350300085 +:10017000970200009382420173901234732540F17C +:10018000730020309301200017250000130585E738 +:10019000073005008730850007310501833685016A +:1001A000D3711002538501E2F3151000130600000D +:1001B0006310D51E639EC51C9301300017250000F7 +:1001C000130545E607300500873085000731050136 +:1001D00083368501D3711002538501E2F3151000B7 +:1001E000130610006316D51A6394C51A93014000D4 +:1001F00017250000130505E5073005008730850049 +:100200000731050183368501D3711002538501E260 +:10021000F315100013061000631CD516639AC5165B +:1002200093015000172500001305C5E307300500B2 +:10023000873085000731050183368501D371100AA7 +:10024000538501E2F3151000130600006312D51464 +:100250006390C5149301600017250000130585E223 +:100260000730050087308500073105018336850199 +:10027000D371100A538501E2F31510001306100024 +:100280006318D5106396C510930170001725000000 +:10029000130545E10730050087308500073105016A +:1002A00083368501D371100A538501E2F3151000DE +:1002B00013061000631ED50C639CC50C93018000CF +:1002C00017250000130505E007300500873085007D +:1002D0000731050183368501D3711012538501E280 +:1002E000F3151000130600006314D50A6392C50AC3 +:1002F00093019000172500001305C5DE07300500A7 +:10030000873085000731050183368501D3711012CE +:10031000538501E2F315100013061000631AD50689 +:100320006398C5069301A00017250000130585DD1D +:1003300007300500873085000731050183368501C8 +:10034000D3711012538501E2F3151000130610004B +:100350006310D504639EC5029301B0001725000009 +:10036000130545DC0730050087308500073105019E +:1003700083368501D371100A538501E2F31510000D +:10038000130600016316D5006394C50063103002A4 +:100390000F00F00F638001009391110093E11100B1 +:1003A0009308D00513850100730000000F00F00FC3 +:1003B000930110009308D00513050000730000009E +:1003C000731000C0000000000000000000000000EA +:1003D000000000000000000000000000000000001D +:1003E000000000000000000000000000000000000D +:0C03F00000000000000000000000000001 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:102000000000000000000440000000000000F03F5D +:1020100000000000000000000000000000000C4074 +:1020200066666666664C93C09A9999999999F13F4C +:10203000000000000000000000000000004893C005 +:10204000F1D4C853FB2109403A8C30E28E79453EE9 +:102050000000000000000000DF6D2055FB2109405A +:102060000000000000000440000000000000F03FFD +:102070000000000000000000000000000000F83F29 +:1020800066666666664C93C09A9999999999F1BF6C +:10209000000000000000000000000000004893C0A5 +:1020A000F1D4C853FB2109403A8C30E28E79453E89 +:1020B0000000000000000000033C7152FB210940B9 +:1020C0000000000000000440000000000000F03F9D +:1020D00000000000000000000000000000000440BC +:1020E00066666666664C93C09A9999999999F1BF0C +:1020F00000000000000000003D0AD7A3703A9540A0 +:10210000F1D4C853FB2109403A8C30E28E79453E28 +:10211000000000000000000009FFC1A5C5DD603E11 +:10212000000000000000F07F000000000000F07FD1 +:102130000000000000000000000000000000F87F28 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ud-p-fclass.hex b/tests/riscv/isa64/rv64ud-p-fclass.hex new file mode 100644 index 00000000..f795d599 --- /dev/null +++ b/tests/riscv/isa64/rv64ud-p-fclass.hex @@ -0,0 +1,56 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003037250000732005307350300085 +:10017000970200009382420173901234732540F17C +:10018000730020301B05F0FF13154503530505F2DE +:10019000531505E2930310009301200063187510B6 +:1001A0001B05F0BF13154503530505F2531505E272 +:1001B0009303200093013000631A750E1B05108015 +:1001C000131545031305F5FF530505F2531505E215 +:1001D0009303400093014000631A750C1B05F0FF68 +:1001E0001315F503530505F2531505E2930380003B +:1001F00093015000631C750A13050000530505F2B6 +:10020000531505E293030001930160006310750A22 +:100210001B051000131545031305F5FF530505F2E3 +:10022000531505E2930300029301700063107508F3 +:100230001B05F03F13154503530505F2531505E261 +:100240009303000493018000631275061B05F07F81 +:1002500013154503530505F2531505E293030008F2 +:1002600093019000631475041B05F07F131545037B +:1002700013051500530505F2531505E2930300100D +:100280009301A00063147502371500001B05F5FFEC +:1002900013153503530505F2531505E293030020AA +:1002A0009301B00063147500631030020F00F00F6B +:1002B000638001009391110093E111009308D00530 +:1002C00013850100730000000F00F00F9301100070 +:1002D0009308D0051305000073000000731000C0E0 +:1002E000000000000000000000000000000000000E +:0C02F00000000000000000000000000002 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ud-p-fcmp.hex b/tests/riscv/isa64/rv64ud-p-fcmp.hex new file mode 100644 index 00000000..58a009a7 --- /dev/null +++ b/tests/riscv/isa64/rv64ud-p-fcmp.hex @@ -0,0 +1,114 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003037250000732005307350300085 +:10017000970200009382420173901234732540F17C +:10018000730020309301200017250000130585E738 +:10019000073005008730850007310501833685016A +:1001A000532510A2F3151000130600006316D52A7C +:1001B0006394C52A9301300017250000130585E6D6 +:1001C000073005008730850007310501833685013A +:1001D000530510A2F315100013060000631ED52668 +:1001E000639CC5269301400017250000130585E593 +:1001F000073005008730850007310501833685010A +:10020000531510A2F3151000130600006316D52431 +:100210006394C5249301500017250000130585E45D +:1002200007300500873085000731050183368501D9 +:10023000532510A2F315100013060000631ED520ED +:10024000639CC5209301600017250000130585E31A +:1002500007300500873085000731050183368501A9 +:10026000530510A2F3151000130600006316D51EE7 +:100270006394C51E9301700017250000130585E2E5 +:100280000730050087308500073105018336850179 +:10029000531510A2F315100013060000631ED51AA3 +:1002A000639CC51A9301800017250000130585E1A2 +:1002B0000730050087308500073105018336850149 +:1002C000532510A2F3151000130600006316D5186D +:1002D0006394C5189301900017250000130585E06D +:1002E0000730050087308500073105018336850119 +:1002F000532510A2F315100013060000631ED51439 +:10030000639CC5149301A00017250000130585DF29 +:1003100007300500873085000731050183368501E8 +:10032000532510A2F3151000130600016316D51211 +:100330006394C5129301B00017250000130585DEF4 +:1003400007300500873085000731050183368501B8 +:10035000531510A2F315100013060001631ED50EED +:10036000639CC50E9301C00017250000130585DDB1 +:100370000730050087308500073105018336850188 +:10038000531510A2F3151000130600016316D50CC7 +:100390006394C50C9301D00017250000130585DC7C +:1003A0000730050087308500073105018336850158 +:1003B000531510A2F315100013060001631ED50893 +:1003C000639CC5089301E00017250000130585DB39 +:1003D0000730050087308500073105018336850128 +:1003E000530510A2F3151000130600016316D5067D +:1003F0006394C5069301F00017250000130585DA04 +:1004000007300500873085000731050183368501F7 +:10041000530510A2F315100013060001631ED50248 +:10042000639CC5029301000117250000130585D9BF +:1004300007300500873085000731050183368501C7 +:10044000530510A2F3151000130600016316D50022 +:100450006394C500631030020F00F00F6380010049 +:100460009391110093E111009308D00513850100C9 +:10047000730000000F00F00F930110009308D005E7 +:100480001305000073000000731000C0000000009E +:10049000000000000000000000000000000000005C +:1004A000000000000000000000000000000000004C +:0C04B00000000000000000000000000040 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:10200000C3F5285C8FC2F5BFC3F5285C8FC2F5BF4E +:1020100000000000000000000100000000000000BF +:10202000C3F5285C8FC2F5BFC3F5285C8FC2F5BF2E +:10203000000000000000000001000000000000009F +:10204000C3F5285C8FC2F5BFC3F5285C8FC2F5BF0E +:102050000000000000000000000000000000000080 +:10206000EC51B81E85EBF5BFC3F5285C8FC2F5BFF8 +:102070000000000000000000000000000000000060 +:10208000EC51B81E85EBF5BFC3F5285C8FC2F5BFD8 +:10209000000000000000000001000000000000003F +:1020A000EC51B81E85EBF5BFC3F5285C8FC2F5BFB8 +:1020B000000000000000000001000000000000001F +:1020C000FFFFFFFFFFFFFF7F000000000000000098 +:1020D0000000000000000000000000000000000000 +:1020E000FFFFFFFFFFFFFF7FFFFFFFFFFFFFFF7F00 +:1020F00000000000000000000000000000000000E0 +:10210000010000000000F07F00000000000000005F +:1021100000000000000000000000000000000000BF +:10212000FFFFFFFFFFFFFF7F000000000000000037 +:10213000000000000000000000000000000000009F +:10214000FFFFFFFFFFFFFF7FFFFFFFFFFFFFFF7F9F +:10215000000000000000000000000000000000007F +:10216000010000000000F07F0000000000000000FF +:10217000000000000000000000000000000000005F +:10218000FFFFFFFFFFFFFF7F0000000000000000D7 +:10219000000000000000000000000000000000003F +:1021A000FFFFFFFFFFFFFF7FFFFFFFFFFFFFFF7F3F +:1021B000000000000000000000000000000000001F +:1021C000010000000000F07F00000000000000009F +:1021D00000000000000000000000000000000000FF +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ud-p-fcvt.hex b/tests/riscv/isa64/rv64ud-p-fcvt.hex new file mode 100644 index 00000000..6d0195aa --- /dev/null +++ b/tests/riscv/isa64/rv64ud-p-fcvt.hex @@ -0,0 +1,72 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003037250000732005307350300085 +:10017000970200009382420173901234732540F17C +:10018000730020309301200017250000130585E738 +:100190008336050013052000530005D273101000AC +:1001A000530500E26312D51A9301300017250000B1 +:1001B0001305C5E5833605001305E0FF530005D29E +:1001C00073101000530500E26310D518930140002E +:1001D00017250000130505E48336050013052000EC +:1001E000530015D273101000530500E2631ED5149E +:1001F0009301500017250000130545E283360500E2 +:100200001305E0FF530015D273101000530500E2F0 +:10021000631CD5129301600017250000130585E0CB +:100220008336050013052000537025D2731010008B +:10023000530500E2631AD5109301700017250000E2 +:100240001305C5DE833605001305E0FF537025D284 +:1002500073101000530500E26318D50E930180005F +:1002600017250000130505DD833605001305200062 +:10027000537035D273101000530500E26316D50C8D +:100280009301900017250000130545DB8336050018 +:100290001305E0FF537035D273101000530500E2D0 +:1002A0006314D50A9301A00017250000130585D912 +:1002B0000730050087308500073105018336850149 +:1002C000D3711040D3810142538501E2F315100030 +:1002D00013060000631AD5066398C5069301B000A3 +:1002E00017250000130505D80720050087204500C5 +:1002F000072185008326C500D3010042D3F11140B8 +:10030000538501E0F315100013060000631ED502AB +:10031000639CC502972500009385C5D503B60500EB +:10032000530106F25371114053010142530501E29A +:10033000B71300009B83F3FF939333039301C00033 +:1003400063147500631030020F00F00F638001002A +:100350009391110093E111009308D00513850100DA +:10036000730000000F00F00F930110009308D005F8 +:0C0370001305000073000000731000C0B3 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:10200000000000000000004000000000000000C0D0 +:1020100000000000000000400000C0FFFFFFEF4193 +:10202000000000000000004000000000000000C0B0 +:102030000000000000000040000000000000F0432D +:10204000000000000000F8BF0000000000000000D9 +:102050000000000000000000000000000000F8BFC9 +:102060000000C0BF00000000000000000000C0BF72 +:102070000480FFFFFFFFFC7F000000000000000065 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ud-p-fcvt_w.hex b/tests/riscv/isa64/rv64ud-p-fcvt_w.hex new file mode 100644 index 00000000..93d4f6fd --- /dev/null +++ b/tests/riscv/isa64/rv64ud-p-fcvt_w.hex @@ -0,0 +1,243 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003037250000732005307350300085 +:10017000970200009382420173901234732540F17C +:10018000730020309301200017250000130585E738 +:10019000073005008730850007310501833685016A +:1001A000531500C2F315100013061000E312D50218 +:1001B000E390C5029301300017250000130585E682 +:1001C000073005008730850007310501833685013A +:1001D000531500C2F315100013060000631AD57EF4 +:1001E0006398C57E9301400017250000130585E53F +:1001F000073005008730850007310501833685010A +:10020000531500C2F3151000130610006312D57CBD +:100210006390C57C9301500017250000130585E409 +:1002200007300500873085000731050183368501D9 +:10023000531500C2F315100013061000631AD57889 +:100240006398C5789301600017250000130585E3C6 +:1002500007300500873085000731050183368501A9 +:10026000531500C2F3151000130600006312D57673 +:100270006390C5769301700017250000130585E291 +:100280000730050087308500073105018336850179 +:10029000531500C2F315100013061000631AD5722F +:1002A0006398C5729301800017250000130585E14E +:1002B0000730050087308500073105018336850149 +:1002C000531500C2F3151000130600016312D57018 +:1002D0006390C5709301900017250000130585E019 +:1002E0000730050087308500073105018336850119 +:1002F000531500C2F315100013060001631AD56CE4 +:100300006398C56C9301C00017250000130585DFB5 +:1003100007300500873085000731050183368501E8 +:10032000531510C2F3151000130600016312D56AAD +:100330006390C56A9301D00017250000130585DE80 +:1003400007300500873085000731050183368501B8 +:10035000531510C2F315100013060001631AD56679 +:100360006398C5669301E00017250000130585DD3D +:100370000730050087308500073105018336850188 +:10038000531510C2F3151000130610006312D56444 +:100390006390C5649301F00017250000130585DC08 +:1003A0000730050087308500073105018336850158 +:1003B000531510C2F315100013061000631AD56010 +:1003C0006398C5609301000117250000130585DBC4 +:1003D0000730050087308500073105018336850128 +:1003E000531510C2F3151000130600006312D55EFA +:1003F0006390C55E9301100117250000130585DA8F +:1004000007300500873085000731050183368501F7 +:10041000531510C2F315100013061000631AD55AB5 +:100420006398C55A9301200117250000130585D94B +:1004300007300500873085000731050183368501C7 +:10044000531510C2F3151000130600016312D5589E +:100450006390C5589301300117250000130585D816 +:100460000730050087308500073105018336850197 +:10047000531510C2F315100013060000631AD5546B +:100480006398C5549301600117250000130585D7B3 +:100490000730050087308500073105018336850167 +:1004A000531520C2F3151000130610006312D55225 +:1004B0006390C5529301700117250000130585D67E +:1004C0000730050087308500073105018336850137 +:1004D000531520C2F315100013060000631AD54E01 +:1004E0006398C54E9301800117250000130585D53B +:1004F0000730050087308500073105018336850107 +:10050000531520C2F3151000130610006312D54CCA +:100510006390C54C9301900117250000130585D405 +:1005200007300500873085000731050183368501D6 +:10053000531520C2F315100013061000631AD54896 +:100540006398C5489301A00117250000130585D3C2 +:1005500007300500873085000731050183368501A6 +:10056000531520C2F3151000130600006312D54680 +:100570006390C5469301B00117250000130585D28D +:100580000730050087308500073105018336850176 +:10059000531520C2F315100013061000631AD5423C +:1005A0006398C5429301C00117250000130585D14A +:1005B0000730050087308500073105018336850146 +:1005C000531520C2F3151000130600006312D54026 +:1005D0006390C5409301D00117250000130585D015 +:1005E0000730050087308500073105018336850116 +:1005F000531520C2F315100013060000631AD53CF2 +:100600006398C53C9301400117250000130585CF71 +:1006100007300500873085000731050183368501E5 +:10062000531520C2F3151000130600016312D53ACA +:100630006390C53A9301500117250000130585CE3C +:1006400007300500873085000731050183368501B5 +:10065000531520C2F315100013060001631AD53696 +:100660006398C5369301000217250000130585CD58 +:100670000730050087308500073105018336850185 +:10068000531530C2F3151000130600016312D53460 +:100690006390C5349301100217250000130585CC23 +:1006A0000730050087308500073105018336850155 +:1006B000531530C2F315100013060001631AD5302C +:1006C0006398C5309301200217250000130585CBE0 +:1006D0000730050087308500073105018336850125 +:1006E000531530C2F3151000130610006312D52EF7 +:1006F0006390C52E9301300217250000130585CAAB +:1007000007300500873085000731050183368501F4 +:10071000531530C2F315100013061000631AD52AC2 +:100720006398C52A9301400217250000130585C967 +:1007300007300500873085000731050183368501C4 +:10074000531530C2F3151000130600006312D528AC +:100750006390C5289301500217250000130585C832 +:100760000730050087308500073105018336850194 +:10077000531530C2F315100013061000631AD52468 +:100780006398C5249301600217250000130585C7EF +:100790000730050087308500073105018336850164 +:1007A000531530C2F3151000130600016312D52251 +:1007B0006390C5229301700217250000130585C6BA +:1007C0000730050087308500073105018336850134 +:1007D000531530C2F315100013060000631AD51E1E +:1007E0006398C51E972000009380C0C687B00000A4 +:1007F000D3F000C2B70300809B83F3FF9301A002F4 +:100800006398701C972000009380C0C487B00000DC +:10081000D3F020C29B03F0FF9393F3039383F3FF82 +:100820009301B0026396701A97200000938080C2F3 +:1008300087B00001D3F000C2B70300809301C0026B +:1008400063987018972000009380C0C087B00001A3 +:10085000D3F020C29B03F0FF9393F3039301D002E4 +:1008600063987016972000009380C0BE87B0800008 +:10087000D3F000C2B70300809B83F3FF93014003D2 +:1008800063987014972000009380C0BC87B08000EC +:10089000D3F020C29B03F0FF9393F3039383F3FF02 +:1008A000930150036396701297200000938080BAE2 +:1008B00087B08001D3F000C2B70300809B83F3FFB1 +:1008C000930160036396701097200000938080B8B6 +:1008D00087B08001D3F020C29B03F0FF9393F30312 +:1008E0009383F3FF930170036394700E97200000CD +:1008F000938040B687B00000D3F010C29303F0FF9E +:100900009301E0036396700C97200000938080B4FD +:1009100087B08000D3F010C29303F0FF9301F0037F +:100920006398700A972000009380C0B287B00001DE +:10093000D3F010C29303000093010004639A70087F +:1009400097200000938000B187B08001D3F010C2DF +:100950009303F0FF93011004639C7006972000003E +:10096000938040AF87B00000D3F030C29303F0FF14 +:1009700093012004639E700497200000938080AD53 +:1009800087B08000D3F030C29303F0FF93013004AE +:1009900063907004972000009380C0AB87B0000183 +:1009A000D3F030C2930300009301400463927002BD +:1009B00097200000938000AA87B08001D3F030C256 +:1009C0009303F0FF930150046394700063103002AE +:1009D0000F00F00F638001009391110093E111006B +:1009E0009308D00513850100730000000F00F00F7D +:1009F000930110009308D005130500007300000058 +:100A0000731000C0000000000000000000000000A3 +:100A100000000000000000000000000000000000D6 +:100A200000000000000000000000000000000000C6 +:0C0A3000000000000000000000000000BA +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:102000009A9999999999F1BF000000000000000089 +:102010000000000000000000FFFFFFFFFFFFFFFFC8 +:10202000000000000000F0BF000000000000000001 +:102030000000000000000000FFFFFFFFFFFFFFFFA8 +:10204000CDCCCCCCCCCCECBF00000000000000001C +:102050000000000000000000000000000000000080 +:10206000CDCCCCCCCCCCEC3F00000000000000007C +:102070000000000000000000000000000000000060 +:10208000000000000000F03F000000000000000021 +:10209000000000000000000001000000000000003F +:1020A0009A9999999999F13F000000000000000069 +:1020B000000000000000000001000000000000001F +:1020C000000000C00B5AE6C1000000000000000044 +:1020D000000000000000000000000080FFFFFFFF84 +:1020E000000000C00B5AE6410000000000000000A4 +:1020F0000000000000000000FFFFFF7F0000000064 +:1021000000000000000008C0000000000000000007 +:1021100000000000000000000000000000000000BF +:10212000000000000000F0BF000000000000000000 +:10213000000000000000000000000000000000009F +:10214000CDCCCCCCCCCCECBF00000000000000001B +:10215000000000000000000000000000000000007F +:10216000CDCCCCCCCCCCEC3F00000000000000007B +:10217000000000000000000000000000000000005F +:10218000000000000000F03F000000000000000020 +:10219000000000000000000001000000000000003E +:1021A0009A9999999999F13F000000000000000068 +:1021B000000000000000000001000000000000001E +:1021C000000000C00B5AE6C1000000000000000043 +:1021D00000000000000000000000000000000000FF +:1021E000000000C00B5AE6410000000000000000A3 +:1021F0000000000000000000005ED0B2FFFFFFFF03 +:102200009A9999999999F1BF000000000000000087 +:102210000000000000000000FFFFFFFFFFFFFFFFC6 +:10222000000000000000F0BF0000000000000000FF +:102230000000000000000000FFFFFFFFFFFFFFFFA6 +:10224000CDCCCCCCCCCCECBF00000000000000001A +:10225000000000000000000000000000000000007E +:10226000CDCCCCCCCCCCEC3F00000000000000007A +:10227000000000000000000000000000000000005E +:10228000000000000000F03F00000000000000001F +:10229000000000000000000001000000000000003D +:1022A0009A9999999999F13F000000000000000067 +:1022B000000000000000000001000000000000001D +:1022C000000000C00B5AE6C1000000000000000042 +:1022D000000000000000000000A22F4DFFFFFFFFE4 +:1022E000000000C00B5AE6410000000000000000A2 +:1022F0000000000000000000005ED0B200000000FE +:1023000080DBD9905605FAC30000000000000000F1 +:10231000000000000000000000000000000000803D +:1023200080DBD9905605FA43000000000000000051 +:102330000000000000000000FFFFFFFFFFFFFF7F25 +:1023400000000000000008C00000000000000000C5 +:10235000000000000000000000000000000000007D +:10236000000000000000F0BF0000000000000000BE +:10237000000000000000000000000000000000005D +:10238000CDCCCCCCCCCCECBF0000000000000000D9 +:10239000000000000000000000000000000000003D +:1023A000CDCCCCCCCCCCEC3F000000000000000039 +:1023B000000000000000000000000000000000001D +:1023C000000000000000F03F0000000000000000DE +:1023D00000000000000000000100000000000000FC +:1023E0009A9999999999F13F000000000000000026 +:1023F00000000000000000000100000000000000DC +:10240000000000C00B5AE6C1000000000000000000 +:1024100000000000000000000000000000000000BC +:10242000000000C00B5AE641000000000000000060 +:102430000000000000000000005ED0B200000000BC +:10244000FFFFFFFFFFFFFF7F000080FF0000807F96 +:10245000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F0C +:10246000000000000000F0FF000000000000F07F0E +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ud-p-fdiv.hex b/tests/riscv/isa64/rv64ud-p-fdiv.hex new file mode 100644 index 00000000..a516eb8f --- /dev/null +++ b/tests/riscv/isa64/rv64ud-p-fdiv.hex @@ -0,0 +1,80 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003037250000732005307350300085 +:10017000970200009382420173901234732540F17C +:10018000730020309301200017250000130585E738 +:10019000073005008730850007310501833685016A +:1001A000D371101A538501E2F315100013061000E5 +:1001B000631CD516639AC5169301300017250000FD +:1001C000130545E607300500873085000731050136 +:1001D00083368501D371101A538501E2F31510009F +:1001E000130610006312D5146390C51493014000E8 +:1001F00017250000130505E5073005008730850049 +:100200000731050183368501D371101A538501E248 +:10021000F3151000130600006318D5106396C5107F +:1002200093015000172500001305C5E307300500B2 +:10023000873085000731050183368501D371005A67 +:10024000538501E2F315100013061000631ED50C50 +:10025000639CC50C9301600017250000130585E21F +:100260000730050087308500073105018336850199 +:10027000D371005A538501E2F315100013060000F4 +:100280006314D50A6392C50A930100011725000083 +:10029000130545E10730050087308500073105016A +:1002A00083368501D371005A538501E2F31510009E +:1002B00013060001631AD5066398C5069301700002 +:1002C00017250000130505E007300500873085007D +:1002D0000731050183368501D371005A538501E248 +:1002E000F3151000130610006310D504639EC502B9 +:1002F00093018000172500001305C5DE07300500B7 +:10030000873085000731050183368501D371005A96 +:10031000538501E2F3151000130610006316D50093 +:100320006394C500631030020F00F00F638001007A +:100330009391110093E111009308D00513850100FA +:10034000730000000F00F00F930110009308D00518 +:100350001305000073000000731000C000000000CF +:10036000000000000000000000000000000000008D +:0C03700000000000000000000000000081 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:10200000F1D4C853FB210940DDB0F1890ABF054076 +:102010000000000000000000EC83C3F6DB7DF23F0F +:1020200000000000004893C066666666664C9340F8 +:102030000000000000000000A529193EB4F8EFBF21 +:10204000F1D4C853FB210940000000000000F03F1C +:102050000000000000000000F1D4C853FB2109403B +:10206000F1D4C853FB21094000000000000000002B +:1020700000000000000000007B586F91F85BFC3FFF +:10208000000000000088C3400000000000000000C5 +:1020900000000000000000000000000000005940A7 +:1020A000000000000000F0BF000000000000000081 +:1020B0000000000000000000000000000000F87FA9 +:1020C000000000000060654000000000000000000B +:1020D0000000000000000000F57496CE44272A405E +:1020E00005A10AC7DF94853E000000000000000043 +:1020F0000000000000000000997FE3C089473A3FDC +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ud-p-fmadd.hex b/tests/riscv/isa64/rv64ud-p-fmadd.hex new file mode 100644 index 00000000..cc1b17e3 --- /dev/null +++ b/tests/riscv/isa64/rv64ud-p-fmadd.hex @@ -0,0 +1,100 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003037250000732005307350300085 +:10017000970200009382420173901234732540F17C +:10018000730020309301200017250000130585E738 +:10019000073005008730850007310501833685016A +:1001A000C3711012538501E2F3151000130600000D +:1001B0006314D5246392C5249301300017250000F1 +:1001C000130545E607300500873085000731050136 +:1001D00083368501C3711012538501E2F3151000B7 +:1001E00013061000631AD5206398C52093014000C0 +:1001F00017250000130505E5073005008730850049 +:100200000731050183368501C3711012538501E260 +:10021000F3151000130600006310D51E639EC51C65 +:1002200093015000172500001305C5E307300500B2 +:10023000873085000731050183368501CF711012A3 +:10024000538501E2F3151000130600006316D51A5A +:100250006394C51A9301600017250000130585E219 +:100260000730050087308500073105018336850199 +:10027000CF711012538501E2F31510001306100020 +:10028000631CD516639AC5169301700017250000EC +:10029000130545E10730050087308500073105016A +:1002A00083368501CF711012538501E2F3151000DA +:1002B000130600006312D5146390C51493018000E7 +:1002C00017250000130505E007300500873085007D +:1002D0000731050183368501C7711012538501E28C +:1002E000F3151000130600006318D5106396C510AF +:1002F00093019000172500001305C5DE07300500A7 +:10030000873085000731050183368501C7711012DA +:10031000538501E2F315100013061000631ED50C7F +:10032000639CC50C9301A00017250000130585DD13 +:1003300007300500873085000731050183368501C8 +:10034000C7711012538501E2F31510001306000067 +:100350006314D50A6392C50A9301B0001725000003 +:10036000130545DC0730050087308500073105019E +:1003700083368501CB711012538501E2F31510000D +:1003800013060000631AD5066398C5069301C000E2 +:1003900017250000130505DB0730050087308500B1 +:1003A0000731050183368501CB711012538501E2B7 +:1003B000F3151000130610006310D504639EC502E8 +:1003C0009301D000172500001305C5D9073005009B +:1003D000873085000731050183368501CB71101206 +:1003E000538501E2F3151000130600006316D500D3 +:1003F0006394C500631030020F00F00F63800100AA +:100400009391110093E111009308D0051385010029 +:10041000730000000F00F00F930110009308D00547 +:100420001305000073000000731000C000000000FE +:0C043000000000000000000000000000C0 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:10200000000000000000F03F00000000000004405D +:10201000000000000000F03F0000000000000C4045 +:10202000000000000000F0BF66666666664C93C064 +:102030009A9999999999F13FCCCCCCCCCC509340BA +:10204000000000000000004000000000000014C07C +:1020500000000000000000C000000000000028C0D8 +:10206000000000000000F03F0000000000000440FD +:10207000000000000000F03F0000000000000CC065 +:10208000000000000000F0BF66666666664C93C004 +:102090009A9999999999F13FCCCCCCCCCC5093C0DA +:1020A000000000000000004000000000000014C01C +:1020B00000000000000000C00000000000002840F8 +:1020C000000000000000F03F00000000000004409D +:1020D000000000000000F03F000000000000F83F9A +:1020E000000000000000F0BF66666666664C93C0A4 +:1020F0009A9999999999F13F0000000000489340FE +:10210000000000000000004000000000000014C0BB +:1021100000000000000000C000000000000020C01F +:10212000000000000000F03F00000000000004403C +:10213000000000000000F03F000000000000F8BFB9 +:10214000000000000000F0BF66666666664C93C043 +:102150009A9999999999F13F00000000004893C01D +:10216000000000000000004000000000000014C05B +:1021700000000000000000C000000000000020403F +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ud-p-fmin.hex b/tests/riscv/isa64/rv64ud-p-fmin.hex new file mode 100644 index 00000000..ed1e7b3c --- /dev/null +++ b/tests/riscv/isa64/rv64ud-p-fmin.hex @@ -0,0 +1,132 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003037250000732005307350300085 +:10017000970200009382420173901234732540F17C +:10018000730020309301200017250000130585E738 +:10019000073005008730850007310501833685016A +:1001A000D301102A538501E2F31510001306000055 +:1001B0006310D538639EC5369301300017250000C3 +:1001C000130545E607300500873085000731050136 +:1001D00083368501D301102A538501E2F3151000FF +:1001E000130600006316D5346394C53493014000B0 +:1001F00017250000130505E5073005008730850049 +:100200000731050183368501D301102A538501E2A8 +:10021000F315100013060000631CD530639AC53037 +:1002200093015000172500001305C5E307300500B2 +:10023000873085000731050183368501D301102AF7 +:10024000538501E2F3151000130600006312D52E4A +:100250006390C52E9301600017250000130585E209 +:100260000730050087308500073105018336850199 +:10027000D301102A538501E2F31510001306000084 +:100280006318D52A6396C52A9301700017250000CC +:10029000130545E10730050087308500073105016A +:1002A00083368501D301102A538501E2F31510002E +:1002B00013060000631ED526639CC5269301C0006B +:1002C00017250000130505E007300500873085007D +:1002D0000731050183368501D311102A538501E2C8 +:1002E000F3151000130600006314D5246392C5248F +:1002F0009301D000172500001305C5DE0730050067 +:10030000873085000731050183368501D311102A16 +:10031000538501E2F315100013060000631AD5207F +:100320006398C5209301E00017250000130585DDC3 +:1003300007300500873085000731050183368501C8 +:10034000D311102A538501E2F315100013060000A3 +:100350006310D51E639EC51C9301F0001725000095 +:10036000130545DC0730050087308500073105019E +:1003700083368501D311102A538501E2F31510004D +:10038000130600006316D51A6394C51A9301000181 +:1003900017250000130505DB0730050087308500B1 +:1003A0000731050183368501D311102A538501E2F7 +:1003B000F315100013060000631CD516639AC516CA +:1003C00093011001172500001305C5D9073005005A +:1003D000873085000731050183368501D311102A46 +:1003E000538501E2F3151000130600006312D514C3 +:1003F0006390C5149301400117250000130585D8AB +:1004000007300500873085000731050183368501F7 +:10041000D311102A538501E2F315100013060001D1 +:100420006318D5106396C51093015001172500007D +:10043000130545D7073005008730850007310501D2 +:1004400083368501D311102A538501E2F31510007C +:1004500013060000631ED50C639CC50C9301E001DC +:1004600017250000130505D60730050087308500E5 +:100470000731050183368501D301102A538501E236 +:10048000F3151000130600006314D50A6392C50A21 +:100490009301F001172500001305C5D407300500AE +:1004A000873085000731050183368501D301102A85 +:1004B000538501E2F315100013060000631AD506F8 +:1004C0006398C5069301000217250000130585D324 +:1004D0000730050087308500073105018336850127 +:1004E000D311102A538501E2F31510001306000002 +:1004F0006310D504639EC502930110021725000006 +:10050000130545D207300500873085000731050106 +:1005100083368501D311102A538501E2F3151000AB +:10052000130600006316D5006394C5006310300203 +:100530000F00F00F638001009391110093E111000F +:100540009308D00513850100730000000F00F00F21 +:10055000930110009308D0051305000073000000FC +:10056000731000C000000000000000000000000048 +:0C0570000000000000000000000000007F +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:102000000000000000000440000000000000F03F5D +:102010000000000000000000000000000000F03F91 +:1020200066666666664C93C09A9999999999F13F4C +:10203000000000000000000066666666664C93C003 +:102040009A9999999999F13F66666666664C93C02C +:10205000000000000000000066666666664C93C0E3 +:10206000FFFFFFFFFFFFFF7F66666666664C93C05B +:10207000000000000000000066666666664C93C0C3 +:10208000F1D4C853FB2109403A8C30E28E79453EA9 +:1020900000000000000000003A8C30E28E79453EDE +:1020A000000000000000F0BF00000000000000C0C1 +:1020B000000000000000000000000000000000C060 +:1020C0000000000000000440000000000000F03F9D +:1020D00000000000000000000000000000000440BC +:1020E00066666666664C93C09A9999999999F13F8C +:1020F00000000000000000009A9999999999F13F19 +:102100009A9999999999F13F66666666664C93C06B +:1021100000000000000000009A9999999999F13FF8 +:10212000FFFFFFFFFFFFFF7F66666666664C93C09A +:10213000000000000000000066666666664C93C002 +:10214000F1D4C853FB2109403A8C30E28E79453EE8 +:102150000000000000000000F1D4C853FB2109403A +:10216000000000000000F0BF00000000000000C000 +:102170000000000000000000000000000000F0BFB0 +:10218000010000000000F07F000000000000F03FB0 +:102190000000000000000000000000000000F03F10 +:1021A000FFFFFFFFFFFFFF7FFFFFFFFFFFFFFF7F3F +:1021B0000000000000000000000000000000F87FA8 +:1021C000000000000000008000000000000000008F +:1021D000000000000000000000000000000000807F +:1021E000000000000000000000000000000000806F +:1021F000000000000000000000000000000000805F +:10220000000000000000008000000000000000004E +:1022100000000000000000000000000000000000BE +:10222000000000000000000000000000000000802E +:10223000000000000000000000000000000000009E +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ud-p-ldst.hex b/tests/riscv/isa64/rv64ud-p-ldst.hex new file mode 100644 index 00000000..f0b580cc --- /dev/null +++ b/tests/riscv/isa64/rv64ud-p-ldst.hex @@ -0,0 +1,50 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003037250000732005307350300085 +:10017000970200009382420173901234732540F17C +:1001800073002030172400001304C4E70731040073 +:1001900027382400033504019B0310009393730256 +:1001A0009383F317939373019301200063187508E9 +:1001B0000731040027282400033504019B031000A5 +:1001C000939373029383F317939373019301300016 +:1001D000631675060721040027282400033504014F +:1001E0009B031000939373029383F317939373010C +:1001F00093014000631475040731840027382400FC +:10020000033504019B0310F8939313029383131097 +:1002100093936301930150006312750207218400D8 +:1002200027382400033504019B0310D09393630106 +:100230009301600063147500631030020F00F00F2B +:10024000638001009391110093E111009308D005A0 +:1002500013850100730000000F00F00F93011000E0 +:100260009308D0051305000073000000731000C050 +:0C02700000000000000000000000000082 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:10200000000080BF0000004000004040000080C091 +:10201000EFBEADDEBEBAFECAEA1DADAB0DD03713C2 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ud-p-move.hex b/tests/riscv/isa64/rv64ud-p-move.hex new file mode 100644 index 00000000..1197e544 --- /dev/null +++ b/tests/riscv/isa64/rv64ud-p-move.hex @@ -0,0 +1,276 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153172F0000AD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003037250000732005307350300085 +:10017000970200009382420173901234732540F17C +:1001800073002030B77524009B85D58A9395E500D0 +:100190009385D5C49395C5009385755E9395D500D9 +:1001A000938505EF13060000D38005F2530106F294 +:1001B00053802022530500E2B77324009B83D38A27 +:1001C0009393E3009383D3C49393C3009383735EA9 +:1001D0009393D300938303EF9301A000E312756818 +:1001E000B77524009B85D58A9395E5009385D5C482 +:1001F0009395C5009385755E9395D500938505EF1E +:100200001306F0FFD38005F2530106F2538020223B +:10021000530500E2B77324FF9B83D38A9393E300D3 +:100220009383D3C49393C3009383735E9393D30058 +:10023000938303EF9301B000E3147562B77524FF55 +:100240009B85D58A9395E5009385D5C49395C50084 +:100250009385755E9395D500938505EF1306000091 +:10026000D38005F2530106F253802022530500E2A9 +:10027000B77324009B83D38A9393E3009383D3C4FF +:100280009393C3009383735E9393D300938303EF9D +:100290009301C000E316755CB77524FF9B85D58A72 +:1002A0009395E5009385D5C49395C5009385755EB8 +:1002B0009395D500938505EF1306F0FFD38005F2E3 +:1002C000530106F253802022530500E2B77324FF46 +:1002D0009B83D38A9393E3009383D3C49393C30004 +:1002E0009383735E9393D300938303EF9301D000C2 +:1002F000E3187556B77524009B85D58A9395E5005C +:100300009385D5C49395C5009385755E9395D50067 +:10031000938505EF13060000D38005F2530106F222 +:1003200053902022530500E2B77324FF9B83D38AA6 +:100330009393E3009383D3C49393C3009383735E37 +:100340009393D300938303EF93014001E31A755015 +:10035000B77524009B85D58A9395E5009385D5C410 +:100360009395C5009385755E9395D500938505EFAC +:100370001306F0FFD38005F2530106F253902022BA +:10038000530500E2B77324009B83D38A9393E30061 +:100390009383D3C49393C3009383735E9393D300E7 +:1003A000938303EF93015001E31C754AB77524FF53 +:1003B0009B85D58A9395E5009385D5C49395C50013 +:1003C0009385755E9395D500938505EF1306000020 +:1003D000D38005F2530106F253902022530500E228 +:1003E000B77324FF9B83D38A9393E3009383D3C48F +:1003F0009393C3009383735E9393D300938303EF2C +:1004000093016001E31E7544B77524FF9B85D58A6F +:100410009395E5009385D5C49395C5009385755E46 +:100420009395D500938505EF1306F0FFD38005F271 +:10043000530106F253902022530500E2B7732400C3 +:100440009B83D38A9393E3009383D3C49393C30092 +:100450009383735E9393D300938303EF93017001AF +:10046000E3107540B77524009B85D58A9395E50008 +:100470009385D5C49395C5009385755E9395D500F6 +:10048000938505EF13060000D38005F2530106F2B1 +:1004900053A02022530500E2B77324009B83D38A24 +:1004A0009393E3009383D3C49393C3009383735EC6 +:1004B0009393D300938303EF9301E001E312753A22 +:1004C000B77524009B85D58A9395E5009385D5C49F +:1004D0009395C5009385755E9395D500938505EF3B +:1004E0001306F0FFD38005F2530106F253A0202239 +:1004F000530500E2B77324FF9B83D38A9393E300F1 +:100500009383D3C49393C3009383735E9393D30075 +:10051000938303EF9301F001E3147534B77524FF5F +:100520009B85D58A9395E5009385D5C49395C500A1 +:100530009385755E9395D500938505EF13060000AE +:10054000D38005F2530106F253A02022530500E2A6 +:10055000B77324FF9B83D38A9393E3009383D3C41D +:100560009393C3009383735E9393D300938303EFBA +:1005700093010002E316752EB77524FF9B85D58A7B +:100580009395E5009385D5C49395C5009385755ED5 +:100590009395D500938505EF1306F0FFD38005F200 +:1005A000530106F253A02022530500E2B773240042 +:1005B0009B83D38A9393E3009383D3C49393C30021 +:1005C0009383735E9393D300938303EF930110029D +:1005D000E31875289B05100093956502938595F0A7 +:1005E0009395D500938555349395C500938585677C +:1005F00013060000D38005F2530106F25380202039 +:10060000530500E0B703C07F93018002E31A75240D +:100610009B05100093956502938595F09395D50001 +:10062000938555349395C50093858567130600001F +:10063000D38005F2530106F253802020530500E2D7 +:100640009B03F0DF939363019301C008E31A7520C5 +:10065000B725E1FF9B8555349395C5009385856744 +:1006600013060000D38005F2530106F253802020C8 +:10067000530500E0B703C07F93019002E312751E9B +:10068000B725E1FF9B8555349395C5009385856714 +:1006900013060000D38005F2530106F25380202098 +:1006A000530500E29B03F0DF939363019301D008AD +:1006B000E318751A9B05100093956502938595F8CC +:1006C0009395D500938555349395C500938585679B +:1006D00013060000D38005F2530106F25380202058 +:1006E000530500E0B703C07F9301A002E31A75161B +:1006F0009B05100093956502938595F89395D50019 +:10070000938555349395C50093858567130600003E +:10071000D38005F2530106F253802020530500E2F6 +:100720009B03F0DF939363019301E008E31A7512D2 +:10073000B725F1FF9B8555349395C5009385856753 +:1007400013060000D38005F2530106F253802020E7 +:10075000530500E0B75334129B8383679301B002C3 +:10076000E3107510B725F1FF9B8555349395C500AF +:100770009385856713060000D38005F2530106F2C6 +:1007800053802020530500E2B723F1FF9B835334AD +:100790009393C300938383679301F008E312750C6E +:1007A0009B05100093956502938595F09395D50070 +:1007B000938555349395C500938585671B06100076 +:1007C0001316F601D38005F2530106F25380202060 +:1007D000530500E0B703C07F93012003E3127508BF +:1007E0009B05100093956502938595F09395D50030 +:1007F000938555349395C500938585671B06100036 +:100800001316F601D38005F2530106F2538020201F +:10081000530500E29B03F0DF9393630193016009AA +:10082000E3107504B725E1FF9B8555349395C5000A +:10083000938585671B0610001316F601D38005F219 +:10084000530106F253802020530500E0B703C07F18 +:1008500093013003E3167500B725E1FF9B855534FE +:100860009395C500938585671B0610001316F60146 +:10087000D38005F2530106F253802020530500E295 +:100880009B03F0DF9393630193017009631A757CF6 +:100890009B05100093956502938595F89395D50077 +:1008A000938555349395C500938585671B06100085 +:1008B0001316F601D38005F2530106F2538020206F +:1008C000530500E0B703C07F93014003631A7578B6 +:1008D0009B05100093956502938595F89395D50037 +:1008E000938555349395C500938585671B06100045 +:1008F0001316F601D38005F2530106F2538020202F +:10090000530500E29B03F0DF939363019301800999 +:1009100063187574B725F1FF9B8555349395C50011 +:10092000938585671B0610001316F601D38005F228 +:10093000530106F253802020530500E0B7533412D0 +:100940009B83836793015003631C7570B725F1FF88 +:100950009B8555349395C500938585671B061000CC +:100960001316F601D38005F2530106F253802020BE +:10097000530500E2B723F1FF9B8353349393C300E5 +:100980009383836793019009631C756C9B0510002A +:1009900093956502938595F09395D500938555348D +:1009A0009395C5009385856737060080D38005F24F +:1009B000530106F253802020530500E0B703C0FF27 +:1009C0009301C003631E75689B0510009395650233 +:1009D000938595F09395D500938555349395C500EF +:1009E0009385856737060080D38005F2530106F2B0 +:1009F00053802020530500E2B703C0FF9301000A93 +:100A000063107566B725E1FF9B8555349395C50046 +:100A10009385856737060080D38005F2530106F27F +:100A200053802020530500E0B703C0FF9301D0039B +:100A300063187562B725E1FF9B8555349395C50012 +:100A40009385856737060080D38005F2530106F24F +:100A500053802020530500E2B703C0FF9301100A22 +:100A600063107560B725F1FF9B8555349395C500DC +:100A70009385856737060080D38005F2530106F21F +:100A800053802020530500E0B75334929B83836743 +:100A90009301E0036316755CB725F1FF9B85553420 +:100AA0009395C5009385856737060080D38005F24E +:100AB000530106F253802020530500E2B7533492CD +:100AC0009B8383679301200A631C7558B725F1FF48 +:100AD0009B8555349395C500938585671B0610004B +:100AE000131606021306F6FF1316F601D38005F25D +:100AF000530106F253802020530500E0B75334120F +:100B00009B8383679301F003631C7554B725F1FF42 +:100B10009B8555349395C500938585671B0610000A +:100B2000131606021306F6FF1316F601D38005F21C +:100B3000530106F253802020530500E2B723F1FF52 +:100B40009B8353349393C300938383679301300A49 +:100B500063187550B715F1FF9B8515119395C50066 +:100B6000938515113716F1FF1B0616111316C600D3 +:100B700013061611D38005F2530106F2538020228A +:100B8000532500A01305F5FF63140500530500E08D +:100B9000B71311119B831311930160046312754CF9 +:100BA000B715F1FF9B8515119395C5009385151118 +:100BB0003716F1FF1B0616111316C6001306161181 +:100BC000D38005F2530106F253802022530500E240 +:100BD000B713F1FF9B8313119393C30093831311F6 +:100BE0009301A00A631E7546B715F1FF9B85151189 +:100BF0009395C500938515111B06100013167602F8 +:100C0000130616F11316C600130616111316C600A6 +:100C100013061611D38005F2530106F253802022E9 +:100C2000532500A01305050063140500530500E0DB +:100C3000B71311119B831311930170046312754252 +:100C4000B715F1FF9B8515119395C5009385151177 +:100C50001B06100013167602130616F11316C600B3 +:100C6000130616111316C60013061611D38005F2CB +:100C7000530106F253802022530500E29B0310002B +:100C800093937302938313F19393C300938313118C +:100C90009393C300938313119301B00A6312753CBD +:100CA000B715F1FF9B8515119395C5009385151117 +:100CB000371611911B061611D38005F2530106F267 +:100CC00053802022532500A01305F5FF631405006F +:100CD000530500E0B71311119B8313119301800496 +:100CE00063107538B715F1FF9B8515119395C500F5 +:100CF00093851511371611911B061611D38005F235 +:100D0000530106F253802022530500E2B713F1FF8E +:100D10009B8313119393C300938313119301C00A10 +:100D200063107534B715F1FF9B8515119395C500B8 +:100D3000938515111B06F0FF1316F603D38005F2F9 +:100D4000530106F253802022532500A01305F5FF1E +:100D500063140500530500E0B71311119B831311B1 +:100D600093019004631E752EB715F1FF9B85151135 +:100D70009395C500938515111B06F0FF1316F60316 +:100D8000D38005F2530106F253802022530500E27E +:100D9000B713F1FF9B8313119393C3009383131134 +:100DA0009301D00A631E752A9B0510009395750266 +:100DB000938515F19395C500938515119395C500FD +:100DC000938515113716F1FF1B0616111316C60071 +:100DD00013061611D38005F2530106F25380202228 +:100DE000532500A01305F5FF63140500530500E02B +:100DF000B71311119B8313119301A004631275267D +:100E00009B05100093957502938515F19395C50088 +:100E1000938515119395C500938515113716F1FF2C +:100E20001B0616111316C60013061611D38005F201 +:100E3000530106F253802022530500E2B713F1FF5D +:100E40009B8313119393C300938313119301E00ABF +:100E5000631875209B05100093957502938515F115 +:100E60009395C500938515119395C500938515112C +:100E70001B06100013167602130616F11316C60091 +:100E8000130616111316C60013061611D38005F2A9 +:100E9000530106F253802022532500A013050500BC +:100EA00063140500530500E0B71311119B83131160 +:100EB0009301B0046316751A9B0510009395750293 +:100EC000938515F19395C500938515119395C500EC +:100ED000938515111B06100013167602130616F1E2 +:100EE0001316C600130616111316C60013061611A4 +:100EF000D38005F2530106F253802022530500E20D +:100F00009B03100093937302938313F19393C30095 +:100F1000938313119393C300938313119301F00AE6 +:100F2000631075149B05100093957502938515F158 +:100F30009395C500938515119395C500938515115B +:100F4000371611911B061611D38005F2530106F2D4 +:100F500053802022532500A01305F5FF63140500DC +:100F6000530500E0B71311119B8313119301C004C3 +:100F70006318750E9B05100093957502938515F106 +:100F80009395C500938515119395C500938515110B +:100F9000371611911B061611D38005F2530106F284 +:100FA00053802022530500E2B713F1FF9B831311F6 +:100FB0009393C300938313119301000B6312750A7B +:100FC0009B05100093957502938515F19395C500C7 +:100FD000938515119395C500938515111B06F0FF98 +:100FE0001316F603D38005F2530106F25380202234 +:100FF000532500A01305F5FF63140500530500E019 +:10100000B71311119B8313119301D004631A750454 +:101010009B05100093957502938515F19395C50076 +:10102000938515119395C500938515111B06F0FF47 +:101030001316F603D38005F2530106F253802022E3 +:10104000530500E2B713F1FF9B8313119393C30081 +:10105000938313119301100B631475006310300216 +:101060000F00F00F638001009391110093E11100D4 +:101070009308D00513850100730000000F00F00FE6 +:10108000930110009308D0051305000073000000C1 +:10109000731000C00000000000000000000000000D +:1010A0000000000000000000000000000000000040 +:0C10B00000000000000000000000000034 +:1020000000000000000000000000000000000000D0 +:1020100000000000000000000000000000000000C0 +:1020200000000000000000000000000000000000B0 +:1020300000000000000000000000000000000000A0 +:08204000000000000000000098 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ud-p-recoding.hex b/tests/riscv/isa64/rv64ud-p-recoding.hex new file mode 100644 index 00000000..7a63f32f --- /dev/null +++ b/tests/riscv/isa64/rv64ud-p-recoding.hex @@ -0,0 +1,54 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003037250000732005307350300085 +:10017000970200009382420173901234732540F17C +:1001800073002030172500000730C5E71725000051 +:100190008730C5E7D3F00012532510A29303100057 +:1001A000930120006316750C530510A293031000F1 +:1001B00093013000631E750A531510A293030000CB +:1001C000930140006316750A530000D21305100016 +:1001D000D30005D2D3F00012532510A293031000D0 +:1001E0009301500063167508530510A29303100085 +:1001F00093016000631E7506531510A2930300005F +:10020000930170006316750617250000072085E02E +:1002100017250000873085E0D3F010405370101090 +:10022000530500E09725000083A505DF3305B540A1 +:10023000930300009301A000631C750217250000C2 +:100240000720C5DCD37000005370000017250000A4 +:10025000273605DC17250000073045DC532510A0A4 +:100260009303100093014001631475006310300282 +:100270000F00F00F638001009391110093E11100D2 +:100280009308D00513850100730000000F00F00FE4 +:10029000930110009308D0051305000073000000BF +:1002A000731000C00000000000000000000000000B +:0C02B00000000000000000000000000042 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:10200000000000000000F0FF000000000000084099 +:1020100000A098440E45C60200000000F8C8B4377E +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ud-p-structural.hex b/tests/riscv/isa64/rv64ud-p-structural.hex new file mode 100644 index 00000000..ca0782e4 --- /dev/null +++ b/tests/riscv/isa64/rv64ud-p-structural.hex @@ -0,0 +1,79 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003037250000732005307350300085 +:10017000970200009382420173901234732540F17C +:1001800073002030130610001B01F03F13114103D0 +:10019000B700803F93011000530200F2D30100F03A +:1001A000530101F2D38000F06F00800113000000C2 +:1001B00013000000130000001300000013000000F3 +:1001C00053722112D3811020530202E2D38201E044 +:1001D000638450006F000025630441006F00802499 +:1001E000530100F2D30000F093012000530200F20B +:1001F000D30100F0530101F2D38000F06F00400002 +:100200005372211213000000D3811020530202E226 +:10021000D38201E0638450006F00C020630441007A +:100220006F004020530100F2D30000F09301300032 +:10023000530200F2D30100F0530101F2D38000F029 +:100240006F00000213000000130000001300000004 +:100250001300000013000000130000001300000052 +:10026000537221121300000013000000D3811020EC +:10027000530202E2D38201E0638450006F00801ACF +:10028000630441006F00001A530100F2D30000F034 +:1002900093014000530200F2D30100F0530101F238 +:1002A000D38000F06F00C0011300000013000000B5 +:1002B00013000000130000001300000013000000F2 +:1002C00053722112130000001300000013000000FD +:1002D000D3811020530202E2D38201E063845000F4 +:1002E0006F004014630441006F00C013530100F21B +:1002F000D30000F093015000530200F2D30100F04C +:10030000530101F2D38000F06F0080011300000060 +:100310001300000013000000130000001300000091 +:10032000537221121300000013000000130000009C +:1003300013000000D3811020530202E2D38201E0B7 +:10034000638450006F00000E630441006F00800D55 +:10035000530100F2D30000F093016000530200F259 +:10036000D30100F0530101F2D38000F06F0040018F +:100370001300000013000000130000001300000031 +:10038000537221121300000013000000130000003C +:100390001300000013000000D3811020530202E27A +:1003A000D38201E0638450006F00C0076304410002 +:1003B0006F004007530100F2D30000F0930170007A +:1003C000530200F2D30100F0530101F2D38000F098 +:1003D0006F00000113000000130000001300000074 +:1003E00053722112130000001300000013000000DC +:1003F000130000001300000013000000D381102040 +:10040000530202E2D38201E0638450006F00800156 +:10041000630441006F000001530100F2D30000F0BB +:10042000631030020F00F00F638001009391110000 +:1004300093E111009308D0051385010073000000BB +:100440000F00F00F930110009308D0051305000072 +:1004500073000000731000C00000000000000000E6 +:10046000000000000000000000000000000000008C +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64uf-p-fadd.hex b/tests/riscv/isa64/rv64uf-p-fadd.hex new file mode 100644 index 00000000..e4b26dc6 --- /dev/null +++ b/tests/riscv/isa64/rv64uf-p-fadd.hex @@ -0,0 +1,82 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003037250000732005307350300085 +:10017000970200009382420173901234732540F17C +:10018000730020309301200017250000130585E738 +:100190000720050087204500072185008326C5002C +:1001A000D3711000538501E0F31510001306000011 +:1001B0006310D51E639EC51C9301300017250000F7 +:1001C000130545E507200500872045000721850028 +:1001D0008326C500D3711000538501E0F31510008C +:1001E000130610006316D51A6394C51A93014000D4 +:1001F00017250000130505E30720050087204500AB +:10020000072185008326C500D3711000538501E0C6 +:10021000F315100013061000631CD516639AC5165B +:1002200093015000172500001305C5E007200500C5 +:1002300087204500072185008326C500D37110085B +:10024000538501E0F3151000130600006312D51466 +:100250006390C5149301600017250000130585DE27 +:100260000720050087204500072185008326C5005B +:10027000D3711008538501E0F31510001306100028 +:100280006318D5106396C510930170001725000000 +:10029000130545DC07200500872045000721850060 +:1002A0008326C500D3711008538501E0F3151000B3 +:1002B00013061000631ED50C639CC50C93018000CF +:1002C00017250000130505DA0720050087204500E3 +:1002D000072185008326C500D3711010538501E0E6 +:1002E000F3151000130600006314D50A6392C50AC3 +:1002F00093019000172500001305C5D707200500BE +:1003000087204500072185008326C500D371101082 +:10031000538501E0F315100013061000631AD5068B +:100320006398C5069301A00017250000130585D525 +:100330000720050087204500072185008326C5008A +:10034000D3711010538501E0F3151000130610004F +:100350006310D504639EC5029301B0001725000009 +:10036000130545D307200500872045000721850098 +:100370008326C500D3711008538501E0F3151000E2 +:10038000130600016316D5006394C50063103002A4 +:100390000F00F00F638001009391110093E11100B1 +:1003A0009308D00513850100730000000F00F00FC3 +:1003B000930110009308D00513050000730000009E +:1003C000731000C0000000000000000000000000EA +:1003D000000000000000000000000000000000001D +:1003E000000000000000000000000000000000000D +:0C03F00000000000000000000000000001 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:10200000000020400000803F000000000000604011 +:1020100033639AC4CDCC8C3F0000000000409AC4CA +:10202000DB0F494077CC2B3200000000DB0F49402A +:10203000000020400000803F000000000000C03F82 +:1020400033639AC4CDCC8CBF0000000000409AC41A +:10205000DB0F494077CC2B3200000000DB0F4940FA +:10206000000020400000803F0000000000002040F1 +:1020700033639AC4CDCC8CBF0000000085D3A94443 +:10208000DB0F494077CC2B32000000002DEE0633E9 +:102090000000807F0000807F000000000000C07F03 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64uf-p-fclass.hex b/tests/riscv/isa64/rv64uf-p-fclass.hex new file mode 100644 index 00000000..204f9185 --- /dev/null +++ b/tests/riscv/isa64/rv64uf-p-fclass.hex @@ -0,0 +1,56 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003037250000732005307350300085 +:10017000970200009382420173901234732540F17C +:10018000730020301B05F01F13157501530505F092 +:10019000531505E09303100093012000631C750EB6 +:1001A0001B05F01713157501530505F0531505E0F0 +:1001B0009303200093013000631E750C1B05101083 +:1001C000131575011305F5FF530505F0531505E0EB +:1001D0009303400093014000631E750A1B05100045 +:1001E0001315F501530505F0531505E09303800041 +:1001F000930150006310750A13050000530505F0C4 +:10020000531505E093030001930160006314750822 +:10021000370580001B05F5FF530505F0531505E074 +:100220009303000293017000631675063705803F43 +:10023000530505F0531505E0930300049301800076 +:10024000631A75043705807F530505F0531505E0E3 +:100250009303000893019000631E75023705807FA9 +:100260001B051500530505F0531505E09303001019 +:100270009301A000631075023705C07F530505F098 +:10028000531505E0930300209301B000631475003B +:10029000631030020F00F00F638001009391110092 +:1002A00093E111009308D00513850100730000004D +:1002B0000F00F00F930110009308D0051305000004 +:1002C00073000000731000C0000000000000000078 +:1002D000000000000000000000000000000000001E +:1002E000000000000000000000000000000000000E +:0C02F00000000000000000000000000002 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64uf-p-fcmp.hex b/tests/riscv/isa64/rv64uf-p-fcmp.hex new file mode 100644 index 00000000..21c2c8da --- /dev/null +++ b/tests/riscv/isa64/rv64uf-p-fcmp.hex @@ -0,0 +1,99 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003037250000732005307350300085 +:10017000970200009382420173901234732540F17C +:10018000730020309301200017250000130585E738 +:100190000720050087204500072185008326C5002C +:1001A000532510A0F3151000130600006316D52A7E +:1001B0006394C52A9301300017250000130585E5D7 +:1001C0000720050087204500072185008326C500FC +:1001D000530510A0F315100013060000631ED5266A +:1001E000639CC5269301400017250000130585E395 +:1001F0000720050087204500072185008326C500CC +:10020000531510A0F3151000130600006316D52433 +:100210006394C5249301500017250000130585E160 +:100220000720050087204500072185008326C5009B +:10023000532510A0F315100013060000631ED520EF +:10024000639CC5209301600017250000130585DF1E +:100250000720050087204500072185008326C5006B +:10026000530510A0F3151000130600006316D51EE9 +:100270006394C51E9301700017250000130585DDEA +:100280000720050087204500072185008326C5003B +:10029000531510A0F315100013060000631ED51AA5 +:1002A000639CC51A9301800017250000130585DBA8 +:1002B0000720050087204500072185008326C5000B +:1002C000532510A0F3151000130600006316D5186F +:1002D0006394C5189301900017250000130585D974 +:1002E0000720050087204500072185008326C500DB +:1002F000532510A0F315100013060000631ED5143B +:10030000639CC5149301A00017250000130585D731 +:100310000720050087204500072185008326C500AA +:10032000532510A0F3151000130600016316D51213 +:100330006394C5129301B00017250000130585D5FD +:100340000720050087204500072185008326C5007A +:10035000531510A0F315100013060001631ED50EEF +:10036000639CC50E9301C00017250000130585D3BB +:100370000720050087204500072185008326C5004A +:10038000531510A0F3151000130600016316D50CC9 +:100390006394C50C9301D00017250000130585D187 +:1003A0000720050087204500072185008326C5001A +:1003B000531510A0F315100013060001631ED50895 +:1003C000639CC5089301E00017250000130585CF45 +:1003D0000720050087204500072185008326C500EA +:1003E000530510A0F3151000130600016316D5067F +:1003F0006394C5069301F00017250000130585CD11 +:100400000720050087204500072185008326C500B9 +:10041000530510A0F315100013060001631ED5024A +:10042000639CC5029301000117250000130585CBCD +:100430000720050087204500072185008326C50089 +:10044000530510A0F3151000130600016316D50024 +:100450006394C500631030020F00F00F6380010049 +:100460009391110093E111009308D00513850100C9 +:10047000730000000F00F00F930110009308D005E7 +:100480001305000073000000731000C0000000009E +:10049000000000000000000000000000000000005C +:1004A000000000000000000000000000000000004C +:0C04B00000000000000000000000000040 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:102000007B14AEBF7B14AEBF0000000001000000D7 +:102010007B14AEBF7B14AEBF0000000001000000C7 +:102020007B14AEBF7B14AEBF0000000000000000B8 +:10203000295CAFBF7B14AEBF0000000000000000B1 +:10204000295CAFBF7B14AEBF0000000001000000A0 +:10205000295CAFBF7B14AEBF000000000100000090 +:10206000FFFFFF7F000000000000000000000000F4 +:10207000FFFFFF7FFFFFFF7F000000000000000068 +:102080000100807F00000000000000000000000050 +:10209000FFFFFF7F000000000000000000000000C4 +:1020A000FFFFFF7FFFFFFF7F000000000000000038 +:1020B0000100807F00000000000000000000000020 +:1020C000FFFFFF7F00000000000000000000000094 +:1020D000FFFFFF7FFFFFFF7F000000000000000008 +:1020E0000100807F000000000000000000000000F0 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64uf-p-fcvt.hex b/tests/riscv/isa64/rv64uf-p-fcvt.hex new file mode 100644 index 00000000..aca7f605 --- /dev/null +++ b/tests/riscv/isa64/rv64uf-p-fcvt.hex @@ -0,0 +1,58 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003037250000732005307350300085 +:10017000970200009382420173901234732540F17C +:10018000730020309301200017250000130585E738 +:100190008326050013052000537005D0731010004E +:1001A000530500E06312D5109301300017250000BD +:1001B000130585E5832605001305E0FF537005D080 +:1001C00073101000530500E06310D50E930140003A +:1001D00017250000130585E383260500130520007D +:1001E000537015D073101000530500E0631ED50A3C +:1001F0009301500017250000130585E183260500B3 +:100200001305E0FF537015D073101000530500E084 +:10021000631CD5089301600017250000130585DFD6 +:100220008326050013052000537025D0731010009D +:10023000530500E0631AD5069301700017250000EE +:10024000130585DD832605001305E0FF537025D0D7 +:1002500073101000530500E06318D504930180006B +:1002600017250000130585DB8326050013052000F4 +:10027000537035D073101000530500E06316D5029B +:100280009301900017250000130585D983260500EA +:100290001305E0FF537035D073101000530500E0D4 +:1002A0006314D500631030020F00F00F638001006B +:1002B0009391110093E111009308D005138501007B +:1002C000730000000F00F00F930110009308D00599 +:1002D0001305000073000000731000C00000000050 +:1002E000000000000000000000000000000000000E +:0C02F00000000000000000000000000002 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:1020000000000040000000C0000000400000804FC1 +:1020100000000040000000C0000000400000805FA1 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64uf-p-fcvt_w.hex b/tests/riscv/isa64/rv64uf-p-fcvt_w.hex new file mode 100644 index 00000000..d41a9de2 --- /dev/null +++ b/tests/riscv/isa64/rv64uf-p-fcvt_w.hex @@ -0,0 +1,188 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003037250000732005307350300085 +:10017000970200009382420173901234732540F17C +:10018000730020309301200017250000130585E738 +:100190000720050087204500072185008326C5002C +:1001A000531500C0F315100013061000631AD57222 +:1001B0006398C5729301300017250000130585E58B +:1001C0000720050087204500072185008326C500FC +:1001D000531500C0F3151000130600006312D5700C +:1001E0006390C5709301400017250000130585E357 +:1001F0000720050087204500072185008326C500CC +:10020000531500C0F315100013061000631AD56CC7 +:100210006398C56C9301500017250000130585E114 +:100220000720050087204500072185008326C5009B +:10023000531500C0F3151000130610006312D56AA1 +:100240006390C56A9301600017250000130585DFE0 +:100250000720050087204500072185008326C5006B +:10026000531500C0F315100013060000631AD5667D +:100270006398C5669301700017250000130585DD9E +:100280000720050087204500072185008326C5003B +:10029000531500C0F3151000130610006312D56447 +:1002A0006390C5649301800017250000130585DB6A +:1002B0000720050087204500072185008326C5000B +:1002C000531500C0F315100013060001631AD56022 +:1002D0006398C5609301900017250000130585D928 +:1002E0000720050087204500072185008326C500DB +:1002F000531500C0F3151000130600016312D55EFC +:100300006390C55E9301C00017250000130585D7D3 +:100310000720050087204500072185008326C500AA +:10032000531510C0F315100013060001631AD55AB7 +:100330006398C55A9301D00017250000130585D591 +:100340000720050087204500072185008326C5007A +:10035000531510C0F3151000130600016312D55891 +:100360006390C5589301E00017250000130585D35D +:100370000720050087204500072185008326C5004A +:10038000531510C0F315100013061000631AD5544E +:100390006398C5549301F00017250000130585D11B +:1003A0000720050087204500072185008326C5001A +:1003B000531510C0F3151000130610006312D55228 +:1003C0006390C5529301000117250000130585CFE6 +:1003D0000720050087204500072185008326C500EA +:1003E000531510C0F315100013060000631AD54E04 +:1003F0006398C54E9301100117250000130585CDA4 +:100400000720050087204500072185008326C500B9 +:10041000531510C0F3151000130610006312D54CCD +:100420006390C54C9301200117250000130585CB6F +:100430000720050087204500072185008326C50089 +:10044000531510C0F315100013060001631AD548A8 +:100450006398C5489301300117250000130585C92D +:100460000720050087204500072185008326C50059 +:10047000531510C0F3151000130600006312D54683 +:100480006390C5469301600117250000130585C7D9 +:100490000720050087204500072185008326C50029 +:1004A000531520C0F315100013061000631AD5422F +:1004B0006398C5429301700117250000130585C597 +:1004C0000720050087204500072185008326C500F9 +:1004D000531520C0F3151000130600006312D54019 +:1004E0006390C5409301800117250000130585C363 +:1004F0000720050087204500072185008326C500C9 +:10050000531520C0F315100013061000631AD53CD4 +:100510006398C53C9301900117250000130585C120 +:100520000720050087204500072185008326C50098 +:10053000531520C0F3151000130610006312D53AAE +:100540006390C53A9301A00117250000130585BFEC +:100550000720050087204500072185008326C50068 +:10056000531520C0F315100013060000631AD5368A +:100570006398C5369301B00117250000130585BDAA +:100580000720050087204500072185008326C50038 +:10059000531520C0F3151000130610006312D53454 +:1005A0006390C5349301000217250000130585BB35 +:1005B0000720050087204500072185008326C50008 +:1005C000531530C0F315100013060001631AD5301F +:1005D0006398C5309301100217250000130585B9F3 +:1005E0000720050087204500072185008326C500D8 +:1005F000531530C0F3151000130600016312D52EF9 +:100600006390C52E9301200217250000130585B7BE +:100610000720050087204500072185008326C500A7 +:10062000531530C0F315100013061000631AD52AB5 +:100630006398C52A9301300217250000130585B57C +:100640000720050087204500072185008326C50077 +:10065000531530C0F3151000130610006312D5288F +:100660006390C5289301400217250000130585B348 +:100670000720050087204500072185008326C50047 +:10068000531530C0F315100013060000631AD5246B +:100690006398C5249301500217250000130585B106 +:1006A0000720050087204500072185008326C50017 +:1006B000531530C0F3151000130610006312D52235 +:1006C0006390C5229301600217250000130585AFD2 +:1006D0000720050087204500072185008326C500E7 +:1006E000531530C0F315100013060001631AD51E10 +:1006F0006398C51E972000009380C0AD87A00000BE +:10070000D3F000C0B70300809B83F3FF9301A002E6 +:100710006398701C972000009380C0AB87A0800076 +:10072000D3F000C0B70300809301C002639A701A2F +:1007300097200000938000AA87A00000D3F020C07B +:100740009B03F0FF9393F3039383F3FF9301B002B2 +:1007500063987018972000009380C0A787A080003E +:10076000D3F020C09B03F0FF9393F3039301D002D7 +:1007700063987016972000009380C0A587A0400062 +:10078000D3F000C0B70300809B83F3FF93014003C5 +:1007900063987014972000009380C0A387A0C000C6 +:1007A000D3F000C0B70300809B83F3FF9301600385 +:1007B00063987012972000009380C0A187A040002A +:1007C000D3F020C09B03F0FF9393F3039383F3FFD5 +:1007D0009301500363967010972000009380809FD0 +:1007E00087A0C000D3F020C09B03F0FF9393F303D6 +:1007F0009383F3FF930170036394700E97200000BE +:100800009380409D87A00000D3F010C09303F0FFB9 +:100810009301E0036396700C972000009380809B07 +:1008200087A04000D3F010C09303F0FF9301F003C2 +:100830006398700A972000009380C09987A0800079 +:10084000D3F010C09303000093010004639A700872 +:10085000972000009380009887A0C000D3F010C0BC +:100860009303F0FF93011004639C7006972000002F +:100870009380409687A00000D3F030C09303F0FF30 +:1008800093012004639E700497200000938080945D +:1008900087A04000D3F030C09303F0FF93013004F1 +:1008A00063907004972000009380C09287A080001E +:1008B000D3F030C0930300009301400463927002B0 +:1008C000972000009380009187A0C000D3F030C033 +:1008D0009303F0FF9301500463947000631030029F +:1008E0000F00F00F638001009391110093E111005C +:1008F0009308D00513850100730000000F00F00F6E +:10090000930110009308D005130500007300000048 +:10091000731000C000000000000000000000000094 +:1009200000000000000000000000000000000000C7 +:0C093000000000000000000000000000BB +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:10200000CDCC8CBF0000000000000000FFFFFFFFF0 +:10201000000080BF0000000000000000FFFFFFFF85 +:10202000666666BF000000000000000000000000BF +:102030006666663F0000000000000000000000002F +:102040000000803F000000000000000001000000D0 +:10205000CDCC8C3F0000000000000000010000001B +:102060005ED032CF000000000000000000000080C1 +:102070005ED0324F0000000000000000FFFFFF7F35 +:10208000000040C000000000000000000000000050 +:10209000000080BF00000000000000000000000001 +:1020A000666666BF0000000000000000000000003F +:1020B0006666663F000000000000000000000000AF +:1020C0000000803F00000000000000000100000050 +:1020D000CDCC8C3F0000000000000000010000009B +:1020E0005ED032CF000000000000000000000000C1 +:1020F0005ED0324F0000000000000000005ED0B251 +:10210000CDCC8CBF0000000000000000FFFFFFFFEF +:10211000000080BF0000000000000000FFFFFFFF84 +:10212000666666BF000000000000000000000000BE +:102130006666663F0000000000000000000000002E +:102140000000803F000000000000000001000000CF +:10215000CDCC8C3F0000000000000000010000001A +:10216000000040C00000000000000000000000006F +:10217000000080BF00000000000000000000000020 +:10218000666666BF0000000000000000000000005E +:102190006666663F000000000000000000000000CE +:1021A0000000803F0000000000000000010000006F +:1021B000CDCC8C3F000000000000000001000000BA +:1021C0005ED032CF000000000000000000000000E0 +:1021D000FFFFFFFFFFFFFF7F000080FF0000807F09 +:1021E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F +:1021F000000000000000F0FF000000000000F07F81 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64uf-p-fdiv.hex b/tests/riscv/isa64/rv64uf-p-fdiv.hex new file mode 100644 index 00000000..43e28a32 --- /dev/null +++ b/tests/riscv/isa64/rv64uf-p-fdiv.hex @@ -0,0 +1,68 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003037250000732005307350300085 +:10017000970200009382420173901234732540F17C +:10018000730020309301200017250000130585E738 +:100190000720050087204500072185008326C5002C +:1001A000D3711018538501E0F315100013061000E9 +:1001B0006312D5146390C514930130001725000015 +:1001C000130545E507200500872045000721850028 +:1001D0008326C500D3711018538501E0F315100074 +:1001E000130610006318D5106396C51093014000E4 +:1001F00017250000130505E30720050087204500AB +:10020000072185008326C500D3711018538501E0AE +:10021000F315100013060000631ED50C639CC50C7B +:1002200093015000172500001305C5E007200500C5 +:1002300087204500072185008326C500D37100581B +:10024000538501E0F3151000130610006314D50A5E +:100250006392C50A9301600017250000130585DE2F +:100260000720050087204500072185008326C5005B +:10027000D3710058538501E0F315100013060000F8 +:10028000631AD5066398C506930170001725000010 +:10029000130545DC07200500872045000721850060 +:1002A0008326C500D3710058538501E0F315100073 +:1002B000130600016310D504639EC50293018000FC +:1002C00017250000130545DA0720050087204500A3 +:1002D000072185008326C500D3710058538501E0AE +:1002E000F3151000130610006316D5006394C500C3 +:1002F000631030020F00F00F638001009391110032 +:1003000093E111009308D0051385010073000000EC +:100310000F00F00F930110009308D00513050000A3 +:1003200073000000731000C0000000000000000017 +:0C033000000000000000000000000000C1 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:10200000DB0F494054F82D4000000000E0EE933F04 +:1020100000409AC433639A4400000000A2C57FBF09 +:10202000DB0F49400000803F00000000DB0F49400B +:10203000DB0F49400000000000000000C5DFE23F68 +:1020400000401C4600000000000000000000C842E4 +:10205000000080BF00000000000000000000C07F02 +:102060000000000000002B43000000000000000002 +:10207000263A51410000000000000000000000006E +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64uf-p-fmadd.hex b/tests/riscv/isa64/rv64uf-p-fmadd.hex new file mode 100644 index 00000000..56bb0315 --- /dev/null +++ b/tests/riscv/isa64/rv64uf-p-fmadd.hex @@ -0,0 +1,88 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003037250000732005307350300085 +:10017000970200009382420173901234732540F17C +:10018000730020309301200017250000130585E738 +:100190000720050087204500072185008326C5002C +:1001A000C3711010538501E0F31510001306000011 +:1001B0006314D5246392C5249301300017250000F1 +:1001C000130545E507200500872045000721850028 +:1001D0008326C500C3711010538501E0F31510008C +:1001E00013061000631AD5206398C52093014000C0 +:1001F00017250000130505E30720050087204500AB +:10020000072185008326C500C3711010538501E0C6 +:10021000F3151000130600006310D51E639EC51C65 +:1002200093015000172500001305C5E007200500C5 +:1002300087204500072185008326C500CF71101057 +:10024000538501E0F3151000130600006316D51A5C +:100250006394C51A9301600017250000130585DE1D +:100260000720050087204500072185008326C5005B +:10027000CF711010538501E0F31510001306100024 +:10028000631CD516639AC5169301700017250000EC +:10029000130545DC07200500872045000721850060 +:1002A0008326C500CF711010538501E0F3151000AF +:1002B000130600006312D5146390C51493018000E7 +:1002C00017250000130505DA0720050087204500E3 +:1002D000072185008326C500C7711010538501E0F2 +:1002E000F3151000130600006318D5106396C510AF +:1002F00093019000172500001305C5D707200500BE +:1003000087204500072185008326C500C77110108E +:10031000538501E0F315100013061000631ED50C81 +:10032000639CC50C9301A00017250000130585D51B +:100330000720050087204500072185008326C5008A +:10034000C7711010538501E0F3151000130600006B +:100350006314D50A6392C50A9301B0001725000003 +:10036000130545D307200500872045000721850098 +:100370008326C500CB711010538501E0F3151000E2 +:1003800013060000631AD5066398C5069301C000E2 +:1003900017250000130505D107200500872045001B +:1003A000072185008326C500CB711010538501E01D +:1003B000F3151000130610006310D504639EC502E8 +:1003C0009301D000172500001305C5CE07200500B6 +:1003D00087204500072185008326C500CB711010BA +:1003E000538501E0F3151000130600006316D500D5 +:1003F0006394C500631030020F00F00F63800100AA +:100400009391110093E111009308D0051385010029 +:10041000730000000F00F00F930110009308D00547 +:100420001305000073000000731000C000000000FE +:0C043000000000000000000000000000C0 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:102000000000803F000020400000803F0000604052 +:10201000000080BF33639AC4CDCC8C3F66869A445F +:10202000000000400000A0C0000000C0000040C14F +:102030000000803F000020400000803F000060C0A2 +:10204000000080BF33639AC4CDCC8C3F66869AC4AF +:10205000000000400000A0C0000000C0000040419F +:102060000000803F000020400000803F0000C03F93 +:10207000000080BF33639AC4CDCC8C3F00409A44AB +:10208000000000400000A0C0000000C0000000C12F +:102090000000803F000020400000803F0000C0BFE3 +:1020A000000080BF33639AC4CDCC8C3F00409AC4FB +:1020B000000000400000A0C0000000C0000000417F +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64uf-p-fmin.hex b/tests/riscv/isa64/rv64uf-p-fmin.hex new file mode 100644 index 00000000..c42724fe --- /dev/null +++ b/tests/riscv/isa64/rv64uf-p-fmin.hex @@ -0,0 +1,114 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003037250000732005307350300085 +:10017000970200009382420173901234732540F17C +:10018000730020309301200017250000130585E738 +:100190000720050087204500072185008326C5002C +:1001A000D3011028538501E0F31510001306000059 +:1001B0006310D538639EC5369301300017250000C3 +:1001C000130545E507200500872045000721850028 +:1001D0008326C500D3011028538501E0F3151000D4 +:1001E000130600006316D5346394C53493014000B0 +:1001F00017250000130505E30720050087204500AB +:10020000072185008326C500D3011028538501E00E +:10021000F315100013060000631CD530639AC53037 +:1002200093015000172500001305C5E007200500C5 +:1002300087204500072185008326C500D3011028AB +:10024000538501E0F3151000130600006312D52E4C +:100250006390C52E9301600017250000130585DE0D +:100260000720050087204500072185008326C5005B +:10027000D3011028538501E0F31510001306000088 +:100280006318D52A6396C52A9301700017250000CC +:10029000130545DC07200500872045000721850060 +:1002A0008326C500D3011028538501E0F315100003 +:1002B00013060000631ED526639CC5269301C0006B +:1002C00017250000130505DA0720050087204500E3 +:1002D000072185008326C500D3111028538501E02E +:1002E000F3151000130600006314D5246392C5248F +:1002F0009301D000172500001305C5D7072005007E +:1003000087204500072185008326C500D3111028CA +:10031000538501E0F315100013060000631AD52081 +:100320006398C5209301E00017250000130585D5CB +:100330000720050087204500072185008326C5008A +:10034000D3111028538501E0F315100013060000A7 +:100350006310D51E639EC51C9301F0001725000095 +:10036000130545D307200500872045000721850098 +:100370008326C500D3111028538501E0F315100022 +:10038000130600006316D51A6394C51A9301000181 +:1003900017250000130505D107200500872045001B +:1003A000072185008326C500D3111028538501E05D +:1003B000F315100013060000631CD516639AC516CA +:1003C00093011001172500001305C5CE0720050075 +:1003D00087204500072185008326C500D3111028FA +:1003E000538501E0F3151000130600006312D514C5 +:1003F0006390C5149301400117250000130585CCB7 +:100400000720050087204500072185008326C500B9 +:10041000D3111028538501E0F315100013060001D5 +:100420006318D5106396C51093015001172500007D +:10043000130545CA072005008720450007218500D0 +:100440008326C500D3111028538501E0F315100051 +:1004500013060000631ED50C639CC50C9301E001DC +:1004600017250000130505C8072005008720450053 +:10047000072185008326C500D3011028538501E09C +:10048000F3151000130600006314D50A6392C50A21 +:100490009301F001172500001305C5C507200500CD +:1004A00087204500072185008326C500D301102839 +:1004B000538501E0F315100013060000631AD506FA +:1004C0006398C5069301000217250000130585C334 +:1004D0000720050087204500072185008326C500E9 +:1004E000D3111028538501E0F31510001306000006 +:1004F0006310D504639EC502930110021725000006 +:10050000130545C107200500872045000721850008 +:100510008326C500D3111028538501E0F315100080 +:10052000130600006316D5006394C5006310300203 +:100530000F00F00F638001009391110093E111000F +:100540009308D00513850100730000000F00F00F21 +:10055000930110009308D0051305000073000000FC +:10056000731000C000000000000000000000000048 +:0C0570000000000000000000000000007F +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:10200000000020400000803F000000000000803FF2 +:1020100033639AC4CDCC8C3F0000000033639AC474 +:10202000CDCC8C3F33639AC40000000033639AC464 +:10203000FFFFFF7F33639AC40000000033639AC43C +:10204000DB0F494077CC2B320000000077CC2B32DD +:10205000000080BF000000C000000000000000C0C1 +:10206000000020400000803F0000000000002040F1 +:1020700033639AC4CDCC8C3F00000000CDCC8C3FA4 +:10208000CDCC8C3F33639AC400000000CDCC8C3F94 +:10209000FFFFFF7F33639AC40000000033639AC4DC +:1020A000DB0F494077CC2B3200000000DB0F4940AA +:1020B000000080BF000000C000000000000080BFE2 +:1020C0000100807F0000803F000000000000803F92 +:1020D000FFFFFF7FFFFFFF7F000000000000C07FC9 +:1020E00000000080000000000000000000000080F0 +:1020F00000000000000000800000000000000080E0 +:10210000000000800000000000000000000000004F +:10211000000000000000008000000000000000003F +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64uf-p-ldst.hex b/tests/riscv/isa64/rv64uf-p-ldst.hex new file mode 100644 index 00000000..97ee3e08 --- /dev/null +++ b/tests/riscv/isa64/rv64uf-p-ldst.hex @@ -0,0 +1,46 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003037250000732005307350300085 +:10017000970200009382420173901234732540F17C +:1001800073002030972500009385C5E787A04500C0 +:1001900027AA150003B505019B03100093931302D2 +:1001A000938373009393F300938373AB9393E30070 +:1001B0009383F3EE93012000631C750297250000E2 +:1001C000938545E487A0050027AC150003B585019C +:1001D000B78333019B8313D09393D3009383F3B7F7 +:1001E0009393730193013000631475006310300220 +:1001F0000F00F00F638001009391110093E1110053 +:100200009308D00513850100730000000F00F00F64 +:10021000930110009308D00513050000730000003F +:10022000731000C00000000000000000000000008B +:0C023000000000000000000000000000C2 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:10200000000080BF0000004000004040000080C091 +:10201000EFBEADDEBEBAFECAEA1DADAB0DD03713C2 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64uf-p-move.hex b/tests/riscv/isa64/rv64uf-p-move.hex new file mode 100644 index 00000000..a221f5c4 --- /dev/null +++ b/tests/riscv/isa64/rv64uf-p-move.hex @@ -0,0 +1,80 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003037250000732005307350300085 +:10017000970200009382420173901234732540F17C +:100180007300203073D03000371500001B05452365 +:10019000F315350093031000930120006394752A32 +:1001A000732530009303400393013000631C7528CE +:1001B00073251000930340019301400063147528D8 +:1001C000735521009303100093015000631C7526A2 +:1001D0007325300093034005930160006314752676 +:1001E000737512009303400193017000631C752422 +:1001F0007325300093030005930180006314752478 +:10020000B75534129B85856713060000D38005F02F +:10021000530106F053802020530500E0B7533412F9 +:100220009B8383679301A000631E7520B75534122A +:100230009B8585671306F0FFD38005F0530106F018 +:1002400053802020530500E0B75334929B8383678B +:100250009301B0006318751EB72509009B855534BE +:100260009395C5009385856713060000D38005F03C +:10027000530106F053802020530500E0B753341299 +:100280009B8383679301C000631E751AB72509001D +:100290009B8555349395C500938585671306F0FFBC +:1002A000D38005F0530106F053802020530500E071 +:1002B000B75334929B8383679301D00063147518FE +:1002C000B75534129B85856713060000D38005F06F +:1002D000530106F053902020530500E0B7533492A9 +:1002E0009B83836793014001631E7514B7553412D5 +:1002F0009B8585671306F0FFD38005F0530106F058 +:1003000053902020530500E0B75334129B8383673A +:100310009301500163187512B72509009B85553468 +:100320009395C5009385856713060000D38005F07B +:10033000530106F053902020530500E0B753349248 +:100340009B83836793016001631E750EB7250900C7 +:100350009B8555349395C500938585671306F0FFFB +:10036000D38005F0530106F053902020530500E0A0 +:10037000B75334129B838367930170016314750C28 +:10038000B75534129B85856713060000D38005F0AE +:10039000530106F053A02020530500E0B753341258 +:1003A0009B8383679301E001631E7508B755341280 +:1003B0009B8585671306F0FFD38005F0530106F097 +:1003C00053A02020530500E0B75334929B838367EA +:1003D0009301F00163187506B72509009B85553414 +:1003E0009395C5009385856713060000D38005F0BB +:1003F000530106F053A02020530500E0B753349278 +:100400009B83836793010002631E7502B725090071 +:100410009B8555349395C500938585671306F0FF3A +:10042000D38005F0530106F053A02020530500E0CF +:10043000B75334129B8383679301100263147500D2 +:10044000631030020F00F00F6380010093911100E0 +:1004500093E111009308D00513850100730000009B +:100460000F00F00F930110009308D0051305000052 +:0C04700073000000731000C000000000CA +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64uf-p-recoding.hex b/tests/riscv/isa64/rv64uf-p-recoding.hex new file mode 100644 index 00000000..a2c4034a --- /dev/null +++ b/tests/riscv/isa64/rv64uf-p-recoding.hex @@ -0,0 +1,49 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003037250000732005307350300085 +:10017000970200009382420173901234732540F17C +:1001800073002030172500000720C5E71725000061 +:10019000872085E7D3F00010532510A093031000AB +:1001A0009301200063147506530510A093031000FB +:1001B00093013000631C7504531510A093030000D5 +:1001C0009301400063147504537000D013051000B0 +:1001D000D37005D0D3F00010532510A09303100066 +:1001E0009301500063147502530510A0930310008F +:1001F00093016000631C7500531510A09303000069 +:100200009301700063147500631030020F00F00F4B +:10021000638001009391110093E111009308D005D0 +:1002200013850100730000000F00F00F9301100010 +:100230009308D0051305000073000000731000C080 +:1002400000000000000000000000000000000000AE +:10025000000000000000000000000000000000009E +:10026000000000000000000000000000000000008E +:0C02700000000000000000000000000082 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:10200000000080FF000040400000000000000000D1 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-add.hex b/tests/riscv/isa64/rv64ui-p-add.hex new file mode 100644 index 00000000..ef93d2d7 --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-add.hex @@ -0,0 +1,116 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F17300203093000000130100004C +:100180003387200093030000930120006310774E13 +:100190009300100013011000338720009303200008 +:1001A000930130006314774C93003000130170000A +:1001B000338720009303A000930140006318774A1F +:1001C000930000003781FFFF33872000B783FFFFD4 +:1001D00093015000631C7748B700008013010000B2 +:1001E00033872000B70300809301600063107748D5 +:1001F000B70000803781FFFF33872000B703FFFF80 +:100200009B83F3FF9393F300930170006310774691 +:1002100093000000378100001B01F1FF33872000AD +:10022000B78300009B83F3FF930180006310774442 +:10023000B70000809B80F0FF13010000338720008F +:10024000B70300809B83F3FF930190006310774214 +:10025000B70000809B80F0FF378100001B01F1FF99 +:1002600033872000B70301009B8313009393F300AF +:100270009383E3FF9301A000631A773EB7000080E9 +:10028000378100001B01F1FF33872000B783008016 +:100290009B83F3FF9301B000631A773CB7000080A3 +:1002A0009B80F0FF3781FFFF33872000B783FF7FFC +:1002B0009B83F3FF9301C000631A773A9300000019 +:1002C0001301F0FF338720009303F0FF9301D00068 +:1002D000631E77389300F0FF13011000338720006E +:1002E000930300009301E000631277389300F0FF5E +:1002F0001301F0FF338720009303E0FF9301F00028 +:100300006316773693001000370100801B01F1FF60 +:10031000338720009B0310009393F30193010001A6 +:10032000631677349300D0001301B000B38020002F +:100330009303800193011001639A70329300E000EF +:100340001301B00033812000930390019301200139 +:10035000631E71309300D000B38010009303A0019E +:100360009301300163947030130200009300D000B9 +:100370001301B0003387200013030700130212009B +:1003800093022000E31452FE930380019301400185 +:10039000631E732C130200009300E0001301B000F1 +:1003A000338720001300000013030700130212001C +:1003B00093022000E31252FE930390019301500137 +:1003C0006316732A130200009300F0001301B000BB +:1003D0003387200013000000130000001303070000 +:1003E0001302120093022000E31052FE9303A001B7 +:1003F00093016001631C7326130200009300D00078 +:100400001301B00033872000130212009302200072 +:10041000E31652FE93038001930170016318772461 +:10042000130200009300E0001301B000130000006D +:10043000338720001302120093022000E31452FEBF +:10044000930390019301800163127722130200004D +:100450009300F0001301B00013000000130000002F +:10046000338720001302120093022000E31252FE91 +:100470009303A00193019001631A771E13020000F9 +:100480009300D000130000001301B0003387200058 +:100490001302120093022000E31452FE9303800122 +:1004A0009301A0016314771C130200009300E00085 +:1004B000130000001301B000130000003387200078 +:1004C0001302120093022000E31252FE93039001E4 +:1004D0009301B001631C7718130200009300F00031 +:1004E00013000000130000001301B0003387200048 +:1004F0001302120093022000E31252FE9303A001A4 +:100500009301C00163147716130200001301B000B9 +:100510009300D000338720001302120093022000C2 +:10052000E31652FE930380019301D0016310771408 +:10053000130200001301B0009300E000130000005C +:10054000338720001302120093022000E31452FEAE +:10055000930390019301E001631A771013020000E6 +:100560001301B0009300F00013000000130000001E +:10057000338720001302120093022000E31252FE80 +:100580009303A0019301F0016312770E13020000A0 +:100590001301B000130000009300D0003387200047 +:1005A0001302120093022000E31452FE9303800111 +:1005B00093010002631C770A130200001301B000CC +:1005C000130000009300E0001300000033872000B8 +:1005D0001302120093022000E31252FE93039001D3 +:1005E0009301100263147708130200001301B00096 +:1005F00013000000130000009300F0003387200078 +:100600001302120093022000E31252FE9303A00192 +:1006100093012002631C77049300F0003301100063 +:100620009303F000930130026312710493000002FF +:1006300033810000930300029301400263187102AA +:10064000B300000093030000930150026390700216 +:10065000930000011301E0013380200093030000A8 +:100660009301600263147000631030020F00F00FFA +:10067000638001009391110093E111009308D0056C +:1006800013850100730000000F00F00F93011000AC +:100690009308D0051305000073000000731000C01C +:1006A000000000000000000000000000000000004A +:0C06B0000000000000000000000000003E +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-addi.hex b/tests/riscv/isa64/rv64ui-p-addi.hex new file mode 100644 index 00000000..120ff907 --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-addi.hex @@ -0,0 +1,80 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F1730020309300000013870000C6 +:10018000930300009301200063127728930010006E +:100190001387100093032000930130006318772623 +:1001A00093003000138770009303A0009301400078 +:1001B000631E772493000000138700809303008060 +:1001C0009301500063147724B70000801387000068 +:1001D000B703008093016000631A7722B7000080A4 +:1001E000138700809B03F0FF9393F30193830380B5 +:1001F00093017000631C7720930000001387F07F49 +:100200009303F07F9301800063127720B700008092 +:100210009B80F0FF13870000B70300809B83F3FFF0 +:10022000930190006314771EB70000809B80F0FF5D +:100230001387F07F9B0310009393F3019383E37F75 +:100240009301A0006314771CB70000801387F07F30 +:10025000B70300809B83F37F9301B0006318771A84 +:10026000B70000809B80F0FF13870080B7F3FF7F0B +:100270009B83F37F9301C000631A771893000000FB +:100280001387F0FF9303F0FF9301D00063107718FA +:100290009300F0FF13871000930300009301E00028 +:1002A000631677169300F0FF1387F0FF9303E0FFC8 +:1002B0009301F000631C7714B70000809B80F0FF6F +:1002C000138710009B0310009393F3019301000127 +:1002D000631E77129300D0009380B00093038001D7 +:1002E0009301100163947012130200009300D00078 +:1002F0001387B000130307001302120093022000BB +:10030000E31652FE930380019301200163107310E2 +:10031000130200009300D0001387A0001300000018 +:10032000130307001302120093022000E31452FE8D +:100330009303700193013001631A730C13020000E0 +:100340009300D000138790001300000013000000FA +:10035000130307001302120093022000E31252FE5F +:1003600093036001930140016312730A13020000BA +:100370009300D0001387B0001302120093022000F4 +:10038000E31852FE93038001930150016310770834 +:10039000130200009300D000130000001387A00098 +:1003A0001302120093022000E31652FE9303700121 +:1003B00093016001631C7704130200009300D000D6 +:1003C00013000000130000001387900013021200B6 +:1003D00093022000E31452FE930360019301700125 +:1003E00063167702930000029303000293018001D9 +:1003F000639E70009300100213802003930300009B +:100400009301900163147000631030020F00F00F2D +:10041000638001009391110093E111009308D005CE +:1004200013850100730000000F00F00F930110000E +:100430009308D0051305000073000000731000C07E +:1004400000000000000000000000000000000000AC +:10045000000000000000000000000000000000009C +:10046000000000000000000000000000000000008C +:0C04700000000000000000000000000080 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-addiw.hex b/tests/riscv/isa64/rv64ui-p-addiw.hex new file mode 100644 index 00000000..df59375a --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-addiw.hex @@ -0,0 +1,76 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F173002030930000001B870000BE +:100180009303000093012000631C77269300100066 +:100190001B87100093032000930130006312772621 +:1001A000930030001B8770009303A0009301400070 +:1001B00063187724930000001B870080930300805E +:1001C00093015000631E7722B70000801B87000058 +:1001D000B70300809301600063147722B7000080AA +:1001E0001B870080B70300809B830380930170000E +:1001F00063187720930000001B87F07F9303F07F44 +:1002000093018000631E771EB70000809B80F0FF83 +:100210001B870000B70300809B83F3FF93019000CE +:100220006310771EB70000809B80F0FF1B87F07F74 +:10023000B70300809B83E37F9301A0006312771CC8 +:10024000B70000801B87F07FB70300809B83F37F9C +:100250009301B0006316771AB70000809B80F0FF0F +:100260001B870080B7F3FF7F9B83F37F9301C00060 +:1002700063187718930000001B87F0FF9303F0FFCB +:100280009301D000631E77169300F0FF1B871000C8 +:10029000930300009301E000631477169300F0FFCE +:1002A0001B87F0FF9303E0FF9301F000631A7714BC +:1002B000B70000809B80F0FF1B871000B703008011 +:1002C00093010001631E77129300D0009B80B00061 +:1002D00093038001930110016394701213020000D4 +:1002E0009300D0001B87B000130307001302120015 +:1002F00093022000E31652FE930380019301200134 +:1003000063107310130200009300D0001B87A0003D +:1003100013000000130307001302120093022000D1 +:10032000E31452FE9303700193013001631A730CBE +:10033000130200009300D0001B8790001300000000 +:1003400013000000130307001302120093022000A1 +:10035000E31252FE93036001930140016312730A9A +:10036000130200009300D0001B87B000130212009C +:1003700093022000E31852FE930380019301500181 +:1003800063107708130200009300D00013000000F0 +:100390001B87A0001302120093022000E31652FEF6 +:1003A0009303700193016001631C77041302000042 +:1003B0009300D00013000000130000001B87900082 +:1003C0001302120093022000E31452FE9303600113 +:1003D00093017001631677029B00000293030002F1 +:1003E00093018001639E7000930010021B80200324 +:1003F00093030000930190016314700063103002B6 +:100400000F00F00F638001009391110093E1110040 +:100410009308D00513850100730000000F00F00F52 +:10042000930110009308D00513050000730000002D +:0C043000731000C000000000000000007D +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-addw.hex b/tests/riscv/isa64/rv64ui-p-addw.hex new file mode 100644 index 00000000..5be931d8 --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-addw.hex @@ -0,0 +1,116 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F17300203093000000130100004C +:100180003B87200093030000930120006316774C07 +:1001900093001000130110003B8720009303200000 +:1001A00093013000631A774A930030001301700006 +:1001B0003B8720009303A00093014000631E774813 +:1001C000930000003781FFFF3B872000B783FFFFCC +:1001D0009301500063127748B700008013010000BC +:1001E0003B872000B70300809301600063167746C9 +:1001F000B70000803781FFFF3B872000B783FF7F78 +:1002000093017000631A7744930000003781000067 +:100210001B01F1FF3B872000B78300009B83F3FFA6 +:1002200093018000631A7742B70000809B80F0FF43 +:10023000130100003B872000B70300809B83F3FF7E +:1002400093019000631A7740B70000809B80F0FF15 +:10025000378100001B01F1FF3B872000B78300803E +:100260009B83E3FF9301A0006318773EB7000080F3 +:10027000378100001B01F1FF3B872000B78300801E +:100280009B83F3FF9301B0006318773CB7000080B5 +:100290009B80F0FF3781FFFF3B872000B783FF7F04 +:1002A0009B83F3FF9301C0006318773A930000002B +:1002B0001301F0FF3B8720009303F0FF9301D00070 +:1002C000631C77389300F0FF130110003B87200078 +:1002D000930300009301E000631077389300F0FF70 +:1002E0001301F0FF3B8720009303E0FF9301F00030 +:1002F0006314773693001000370100801B01F1FF73 +:100300003B872000B7030080930100016316773418 +:100310009300D0001301B000BB8020009303800144 +:1003200093011001639A70329300E0001301B00052 +:100330003B8120009303900193012001631E7130E3 +:100340009300D000BB8010009303A0019301300103 +:1003500063947030130200009300D0001301B000CA +:100360003B872000130307001302120093022000B2 +:10037000E31452FE9303800193014001631E732C2A +:10038000130200009300E0001301B0003B8720003F +:100390001300000013030700130212009302200051 +:1003A000E31252FE93039001930150016316732AE6 +:1003B000130200009300F0001301B0003B872000FF +:1003C00013000000130000001303070013021200C3 +:1003D00093022000E31052FE9303A00193016001F9 +:1003E000631C7326130200009300D0001301B000B9 +:1003F0003B8720001302120093022000E31652FEF6 +:1004000093038001930170016318772413020000A5 +:100410009300E0001301B000130000003B872000B0 +:100420001302120093022000E31452FE9303900182 +:100430009301800163127722130200009300F00001 +:100440001301B00013000000130000003B872000E0 +:100450001302120093022000E31252FE9303A00144 +:1004600093019001631A771E130200009300D000DD +:10047000130000001301B0003B872000130212009C +:1004800093022000E31452FE930380019301A00124 +:100490006314771C130200009300E00013000000B7 +:1004A0001301B000130000003B872000130212006C +:1004B00093022000E31252FE930390019301B001D6 +:1004C000631C7718130200009300F0001300000073 +:1004D000130000001301B0003B872000130212003C +:1004E00093022000E31252FE9303A0019301C00186 +:1004F00063147716130200001301B0009300D000BC +:100500003B8720001302120093022000E31652FEE4 +:10051000930380019301D00163107714130200004C +:100520001301B0009300E000130000003B8720009F +:100530001302120093022000E31452FE9303900171 +:100540009301E001631A7710130200001301B00059 +:100550009300F00013000000130000003B87200010 +:100560001302120093022000E31252FE9303A00133 +:100570009301F0016312770E130200001301B00023 +:10058000130000009300D0003B87200013021200EC +:1005900093022000E31452FE9303800193010002B2 +:1005A000631C770A130200001301B000130000005F +:1005B0009300E000130000003B87200013021200AC +:1005C00093022000E31252FE930390019301100264 +:1005D00063147708130200001301B0001300000039 +:1005E000130000009300F0003B872000130212006C +:1005F00093022000E31252FE9303A0019301200214 +:10060000631C77049300F0003B0110009303F0009B +:100610009301300263127104930000023B810000D9 +:10062000930300029301400263187102BB000000B3 +:100630009303000093015002639070029300000145 +:100640001301E0013B80200093030000930160024E +:1006500063147000631030020F00F00F638001001C +:100660009391110093E111009308D00513850100C7 +:10067000730000000F00F00F930110009308D005E5 +:100680001305000073000000731000C0000000009C +:10069000000000000000000000000000000000005A +:1006A000000000000000000000000000000000004A +:0C06B0000000000000000000000000003E +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-and.hex b/tests/riscv/isa64/rv64ui-p-and.hex new file mode 100644 index 00000000..958131df --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-and.hex @@ -0,0 +1,124 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F173002030B70001009B8010F020 +:1001800093900001938000F037110F0F1B01F1F0E5 +:1001900033F72000B713000F9B8303F09301200077 +:1001A00063187752B710F00F9B8000FF37110F00D4 +:1001B0001B01F1F01311C1001301010F33F72000EF +:1001C000B703F0009B83030F930130006312775055 +:1001D000B700FF009B80F00F37110F0F1B01F1F0EC +:1001E00033F72000B7030F009B83F3009301400017 +:1001F0006310774EB7000F009B80F00F9390C00004 +:100200009380F00037110F001B01F1F01311C100B2 +:100210001301010F33F72000B7030F009B83F30096 +:100220009393C300930150006314774AB700010011 +:100230009B8010F093900001938000F037110F0F16 +:100240001B01F1F0B3F02000B713000F9B8303F004 +:1002500093016000639E7046B710F00F9B8000FF13 +:1002600037110F001B01F1F01311C1001301010F31 +:1002700033F12000B703F0009B83030F930170005C +:1002800063187144B70001009B8010F09390000147 +:10029000938000F0B3F01000B70301009B8313F0CC +:1002A00093930301938303F0930180006392704260 +:1002B00013020000B70001009B8010F09390000132 +:1002C000938000F037110F0F1B01F1F033F720007E +:1002D000130307001302120093022000E31C52FCD8 +:1002E000B713000F9B8303F0930190006312733EDA +:1002F00013020000B710F00F9B8000FF37110F00B2 +:100300001B01F1F01311C1001301010F33F720009D +:1003100013000000130307001302120093022000D1 +:10032000E31A52FCB703F0009B83030F9301A00074 +:100330006310733A13020000B700FF009B80F00FB8 +:1003400037110F0F1B01F1F033F7200013000000ED +:100350001300000013030700130212009302200091 +:10036000E31C52FCB7030F009B83F3009301B00022 +:100370006310733613020000B70001009B8010F079 +:1003800093900001938000F037110F0F1B01F1F0E3 +:1003900033F720001302120093022000E31E52FCE8 +:1003A000B713000F9B8303F09301C00063127732F1 +:1003B00013020000B710F00F9B8000FF37110F00F1 +:1003C0001B01F1F01311C1001301010F1300000014 +:1003D00033F720001302120093022000E31C52FCAA +:1003E000B703F0009B83030F9301D0006312772EB5 +:1003F00013020000B700FF009B80F00F37110F0FB2 +:100400001B01F1F0130000001300000033F720007F +:100410001302120093022000E31E52FCB7030F00E8 +:100420009B83F3009301E0006314772A130200001A +:10043000B70001009B8010F093900001938000F0C2 +:100440001300000037110F0F1B01F1F033F72000EC +:100450001302120093022000E31C52FCB713000F9A +:100460009B8303F09301F0006314772613020000CE +:10047000B710F00F9B8000FF1300000037110F0032 +:100480001B01F1F01311C1001301010F1300000053 +:1004900033F720001302120093022000E31A52FCEB +:1004A000B703F0009B83030F9301000163127722CF +:1004B00013020000B700FF009B80F00F1300000044 +:1004C0001300000037110F0F1B01F1F033F720006C +:1004D0001302120093022000E31E52FCB7030F0028 +:1004E0009B83F300930110016314771E1302000035 +:1004F00037110F0F1B01F1F0B70001009B8010F0C6 +:1005000093900001938000F033F720001302120053 +:1005100093022000E31E52FCB713000F9B8303F0ED +:10052000930120016316771A1302000037110F00A0 +:100530001B01F1F01311C1001301010FB710F00FEF +:100540009B8000FF1300000033F72000130212000D +:1005500093022000E31C52FCB703F0009B83030FBF +:1005600093013001631677161302000037110F0F45 +:100570001B01F1F0B700FF009B80F00F130000009B +:100580001300000033F72000130212009302200032 +:10059000E31E52FCB7030F009B83F300930140015D +:1005A000631877121302000037110F0F1B01F1F0CF +:1005B00013000000B70001009B8010F09390000131 +:1005C000938000F033F72000130212009302200002 +:1005D000E31C52FCB713000F9B8303F093015001FF +:1005E0006318770E1302000037110F001B01F1F0A2 +:1005F0001311C1001301010F13000000B710F00F19 +:100600009B8000FF1300000033F72000130212004C +:1006100093022000E31A52FCB703F0009B83030F00 +:10062000930160016316770A1302000037110F0F60 +:100630001B01F1F01300000013000000B700FF00E1 +:100640009B80F00F33F7200013021200930220006A +:10065000E31E52FCB7030F009B83F300930170016C +:1006600063187706B70001009B8010F0939000019B +:10067000938000F033711000930300009301800118 +:1006800063187104B700FF009B80F00F33F1000086 +:100690009303000093019001631C7102B37000008A +:1006A000930300009301A00163947002B71011112D +:1006B0009B801011372122221B01212233F02000C0 +:1006C000930300009301B0016314700063103002C3 +:1006D0000F00F00F638001009391110093E111006E +:1006E0009308D00513850100730000000F00F00F80 +:1006F000930110009308D00513050000730000005B +:10070000731000C0000000000000000000000000A6 +:1007100000000000000000000000000000000000D9 +:1007200000000000000000000000000000000000C9 +:0C073000000000000000000000000000BD +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-andi.hex b/tests/riscv/isa64/rv64ui-p-andi.hex new file mode 100644 index 00000000..0cfdbf04 --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-andi.hex @@ -0,0 +1,68 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F173002030B70001009B8010F020 +:1001800093900001938000F013F7F0F0B7030100A3 +:100190009B8313F093930301938303F09301200057 +:1001A0006318771CB710F00F9B8000FF13F7000F48 +:1001B0009303000F93013000631C771AB700FF0010 +:1001C0009B80F00F13F7F0709303F0009301400051 +:1001D0006310771AB7000F009B80F00F9390C00058 +:1001E0009380F00013F7000F930300009301500079 +:1001F00063107718B70001009B8010F09390000106 +:10020000938000F093F0000F9303000093016000CF +:100210006390701613020000B710F00F9B8000FF70 +:1002200013F7F0701303070013021200930220006B +:10023000E31452FE9303007093017000631A73126B +:1002400013020000B700FF009B80F00F13F7000FB0 +:100250001300000013030700130212009302200092 +:10026000E31252FE9303000F930180006312731098 +:1002700013020000B7000F009B80F00F9390C000A6 +:100280009380F00013F7F0F013000000130000005B +:10029000130307001302120093022000E31C52FC18 +:1002A000B7030F009B83F30F9393C3009383F30073 +:1002B00093019000631E730A13020000B710F00F41 +:1002C0009B8000FF13F7F0701302120093022000CE +:1002D000E31652FE930300709301A000631A77089F +:1002E00013020000B700FF009B80F00F1300000016 +:1002F00013F7000F1302120093022000E31452FEC2 +:100300009303000F9301B0006314770613020000FB +:10031000B7000F009B80F00F9390C0009380F00017 +:10032000130000001300000013F7F0701302120016 +:1003300093022000E31E52FC9303F0009301C000DF +:10034000631877029370000F930300009301D000AD +:1003500063907002B700FF009B80F00F13F0F07005 +:10036000930300009301E0006314700063103002F7 +:100370000F00F00F638001009391110093E11100D1 +:100380009308D00513850100730000000F00F00FE3 +:10039000930110009308D0051305000073000000BE +:1003A000731000C00000000000000000000000000A +:0C03B00000000000000000000000000041 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-auipc.hex b/tests/riscv/isa64/rv64ui-p-auipc.hex new file mode 100644 index 00000000..f1b272f5 --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-auipc.hex @@ -0,0 +1,40 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F173002030172500001305C57169 +:10018000EF0540003305B540B72300009B830371A2 +:10019000930120006314750217E5FFFF1305C58F57 +:1001A000EF0540003305B540B7E3FFFF9B83038FA6 +:1001B0009301300063147500631030020F00F00FDC +:1001C000638001009391110093E111009308D00521 +:1001D00013850100730000000F00F00F9301100061 +:1001E0009308D0051305000073000000731000C0D1 +:0401F000000000000B +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-beq.hex b/tests/riscv/isa64/rv64ui-p-beq.hex new file mode 100644 index 00000000..63a7763e --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-beq.hex @@ -0,0 +1,80 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F1730020309301200093000000AC +:1001800013010000638620006318302A63163000D4 +:10019000E38E20FE6312302A93013000930010009A +:1001A00013011000638620006318302863163000A6 +:1001B000E38E20FE63123028930140009300F0FF8D +:1001C0001301F0FF638620006318302663163000A9 +:1001D000E38E20FE6312302693015000930000004E +:1001E0001301100063842000631430006316302470 +:1001F000E38E20FE930160009300100013010000C5 +:10020000638420006314300063183022E38E20FEE4 +:10021000930170009300F0FF13011000638420002D +:1002200063143000631A3020E38E20FE93018000B7 +:10023000930010001301F0FF63842000631430006A +:10024000631C301EE38E20FE930190001302000019 +:10025000930000001301F0FF6380201E13021200C0 +:1002600093022000E31652FE9301A0001302000047 +:10027000930000001301F0FF13000000638E201AAA +:100280001302120093022000E31452FE9301B00007 +:1002900013020000930000001301F0FF13000000A0 +:1002A00013000000638A201813021200930220003A +:1002B000E31252FE9301C0001302000093000000FD +:1002C000130000001301F0FF6388201613021200D0 +:1002D00093022000E31452FE9301D00013020000A9 +:1002E00093000000130000001301F0FF1300000052 +:1002F000638420141302120093022000E31252FEC2 +:100300009301E000130200009300000013000000BE +:10031000130000001301F0FF63802012130212008B +:1003200093022000E31252FE9301F000130200003A +:10033000930000001301F0FF6380201013021200ED +:1003400093022000E31652FE930100011302000005 +:10035000930000001301F0FF13000000638E200CD7 +:100360001302120093022000E31452FE93011001C5 +:1003700013020000930000001301F0FF13000000BF +:1003800013000000638A200A130212009302200067 +:10039000E31252FE930120011302000093000000BB +:1003A000130000001301F0FF6388200813021200FD +:1003B00093022000E31452FE930130011302000067 +:1003C00093000000130000001301F0FF1300000071 +:1003D000638420061302120093022000E31252FEEF +:1003E000930140011302000093000000130000007D +:1003F000130000001301F0FF6380200413021200B9 +:1004000093022000E31252FE93001000630A0000E2 +:100410009380100093801000938010009380100050 +:1004200093801000938010009303300093015001DB +:1004300063947000631030020F00F00F63800100BE +:100440009391110093E111009308D00513850100E9 +:10045000730000000F00F00F930110009308D00507 +:100460001305000073000000731000C000000000BE +:0C04700000000000000000000000000080 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-bge.hex b/tests/riscv/isa64/rv64ui-p-bge.hex new file mode 100644 index 00000000..dd44758a --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-bge.hex @@ -0,0 +1,88 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F1730020309301200093000000AC +:100180001301000063D6200063183030631630007E +:10019000E3DE20FE63123030930130009300100044 +:1001A0001301100063D620006318302E6316300050 +:1001B000E3DE20FE6312302E930140009300F0FF37 +:1001C0001301F0FF63D620006318302C6316300053 +:1001D000E3DE20FE6312302C9301500093001000E8 +:1001E0001301000063D620006318302A6316300024 +:1001F000E3DE20FE6312302A9301600093001000BA +:100200001301F0FF63D62000631830286316300016 +:10021000E3DE20FE63123028930170009300F0FFAC +:100220001301E0FF63D62000631830266316300008 +:10023000E3DE20FE6312302693018000930000006D +:100240001301100063D420006314300063163024BF +:10025000E3DE20FE930190009300F0FF13011000F5 +:1002600063D420006314300063183022E3DE20FEE4 +:100270009301A0009300E0FF1301F0FF63D420007E +:1002800063143000631A3020E3DE20FE9301B000D7 +:100290009300E0FF1301100063D4200063143000CA +:1002A000631C301EE3DE20FE9301C0001302000039 +:1002B0009300F0FF1301000063D0201E1302120010 +:1002C00093022000E31652FE9301D00013020000B7 +:1002D0009300F0FF130100001300000063DE201AFA +:1002E0001302120093022000E31452FE9301E00077 +:1002F000130200009300F0FF130100001300000040 +:100300001300000063DA2018130212009302200089 +:10031000E31252FE9301F000130200009300F0FF7D +:10032000130000001301000063D82016130212000E +:1003300093022000E31452FE930100011302000017 +:100340009300F0FF130000001301000013000000F1 +:1003500063D420141302120093022000E31252FE11 +:1003600093011001130200009300F0FF130000003E +:10037000130000001301000063D0201213021200CA +:1003800093022000E31252FE9301200113020000A9 +:100390009300F0FF1301000063D02010130212003D +:1003A00093022000E31652FE930130011302000075 +:1003B0009300F0FF130100001300000063DE200C27 +:1003C0001302120093022000E31452FE9301400135 +:1003D000130200009300F0FF13010000130000005F +:1003E0001300000063DA200A1302120093022000B7 +:1003F000E31252FE93015001130200009300F0FF3C +:10040000130000001301000063D82008130212003B +:1004100093022000E31452FE9301600113020000D6 +:100420009300F0FF13000000130100001300000010 +:1004300063D420061302120093022000E31252FE3E +:1004400093017001130200009300F0FF13000000FD +:10045000130000001301000063D0200413021200F7 +:1004600093022000E31252FE9300100063DA0000B2 +:1004700093801000938010009380100093801000F0 +:10048000938010009380100093033000930180014B +:1004900063947000631030020F00F00F638001005E +:1004A0009391110093E111009308D0051385010089 +:1004B000730000000F00F00F930110009308D005A7 +:1004C0001305000073000000731000C0000000005E +:1004D000000000000000000000000000000000001C +:1004E000000000000000000000000000000000000C +:0C04F00000000000000000000000000000 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-bgeu.hex b/tests/riscv/isa64/rv64ui-p-bgeu.hex new file mode 100644 index 00000000..1b1de506 --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-bgeu.hex @@ -0,0 +1,100 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F1730020309301200093000000AC +:100180001301000063F620006314303E6316300054 +:10019000E3FE20FE631E303C93013000930010000C +:1001A0001301100063F620006314303C6316300026 +:1001B000E3FE20FE631E303A930140009B001000D6 +:1001C000939000029380F0FF1B01100013110102B5 +:1001D0001301F1FF63F62000631C30386316300012 +:1001E000E3FE20FE631630389301500093001000A8 +:1001F0001301000063F62000631C303663163000E4 +:10020000E3FE20FE63163036930160009B00100071 +:10021000939000029380F0FF1B0110001311010264 +:100220001301E1FF63F620006314303463163000DD +:10023000E3FE20FE631E3032930170009B0010002D +:10024000939000029380F0FF1301000063F62000FA +:100250006310303263163000E3FE20FE631A303044 +:1002600093018000930000001301100063F420004C +:1002700063143000631E302EE3FE20FE93019000D5 +:100280009B001000939000029380E0FF1B01100080 +:10029000131101021301F1FF63F420006314300015 +:1002A0006318302CE3FE20FE9301A00093000000B1 +:1002B0001B011000131101021301F1FF63F4200070 +:1002C000631430006316302AE3FE20FE9301B00071 +:1002D000B70000809B80F0FF1B0110001311F1019B +:1002E00063F420006314300063143028E3FE20FE22 +:1002F0009301C000130200009B00F0009390C00126 +:100300009380F0FF1B01F0001311C10163F220265E +:100310001302120093022000E31052FE9301D0005A +:10032000130200009B00F0009390C0019380F0FF47 +:100330001B01F0001311C1011300000063FA202219 +:100340001302120093022000E31E52FC9301E0000E +:10035000130200009B00F0009390C0019380F0FF17 +:100360001B01F0001311C101130000001300000075 +:1003700063F020201302120093022000E31C52FCC1 +:100380009301F000130200009B00F0009390C00165 +:100390009380F0FF130000001B01F0001311C10156 +:1003A00063F8201C1302120093022000E31E52FC8B +:1003B00093010001130200009B00F0009390C00124 +:1003C0009380F0FF130000001B01F0001311C10126 +:1003D0001300000063FE2018130212009302200095 +:1003E000E31C52FC93011001130200009B00F0007B +:1003F0009390C0019380F0FF1300000013000000F1 +:100400001B01F0001311C10163F420161302120046 +:1004100093022000E31C52FC930120011302000010 +:100420009B00F0009390C0019380F0FF1B01F0004F +:100430001311C10163FE2012130212009302200067 +:10044000E31052FE93013001130200009B00F00004 +:100450009390C0019380F0FF1B01F0001311C101C4 +:100460001300000063F62010130212009302200014 +:10047000E31E52FC93014001130200009B00F000B8 +:100480009390C0019380F0FF1B01F0001311C10194 +:10049000130000001300000063FC200C1302120084 +:1004A00093022000E31C52FC930150011302000050 +:1004B0009B00F0009390C0019380F0FF13000000B8 +:1004C0001B01F0001311C10163F4200A1302120092 +:1004D00093022000E31E52FC93016001130200000E +:1004E0009B00F0009390C0019380F0FF1300000088 +:1004F0001B01F0001311C1011300000063FA200674 +:100500001302120093022000E31C52FC93017001BD +:10051000130200009B00F0009390C0019380F0FF55 +:1005200013000000130000001B01F0001311C101B3 +:1005300063F020041302120093022000E31C52FC1B +:100540009300100063FA0000938010009380100065 +:10055000938010009380100093801000938010000F +:1005600093033000930180016394700063103002A4 +:100570000F00F00F638001009391110093E11100CF +:100580009308D00513850100730000000F00F00FE1 +:10059000930110009308D0051305000073000000BC +:1005A000731000C000000000000000000000000008 +:0C05B0000000000000000000000000003F +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-blt.hex b/tests/riscv/isa64/rv64ui-p-blt.hex new file mode 100644 index 00000000..f9afa6e3 --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-blt.hex @@ -0,0 +1,80 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F1730020309301200093000000AC +:100180001301100063C620006318302A6316300084 +:10019000E3CE20FE6312302A930130009300F0FF7B +:1001A0001301100063C62000631830286316300066 +:1001B000E3CE20FE63123028930140009300E0FF5D +:1001C0001301F0FF63C62000631830266316300069 +:1001D000E3CE20FE631230269301500093001000FE +:1001E0001301000063C42000631430006316302440 +:1001F000E3CE20FE93016000930010001301F0FF96 +:1002000063C420006314300063183022E3CE20FE64 +:10021000930170009300F0FF1301E0FF63C420001E +:1002200063143000631A3020E3CE20FE9301800077 +:10023000930010001301E0FF63C42000631430003A +:10024000631C301EE3CE20FE9301900013020000D9 +:10025000930000001301F0FF63C0201E1302120080 +:1002600093022000E31652FE9301A0001302000047 +:10027000930000001301F0FF1300000063CE201A6A +:100280001302120093022000E31452FE9301B00007 +:1002900013020000930000001301F0FF13000000A0 +:1002A0001300000063CA20181302120093022000FA +:1002B000E31252FE9301C0001302000093000000FD +:1002C000130000001301F0FF63C820161302120090 +:1002D00093022000E31452FE9301D00013020000A9 +:1002E00093000000130000001301F0FF1300000052 +:1002F00063C420141302120093022000E31252FE82 +:100300009301E000130200009300000013000000BE +:10031000130000001301F0FF63C02012130212004B +:1003200093022000E31252FE9301F000130200003A +:10033000930000001301F0FF63C0201013021200AD +:1003400093022000E31652FE930100011302000005 +:10035000930000001301F0FF1300000063CE200C97 +:100360001302120093022000E31452FE93011001C5 +:1003700013020000930000001301F0FF13000000BF +:100380001300000063CA200A130212009302200027 +:10039000E31252FE930120011302000093000000BB +:1003A000130000001301F0FF63C8200813021200BD +:1003B00093022000E31452FE930130011302000067 +:1003C00093000000130000001301F0FF1300000071 +:1003D00063C420061302120093022000E31252FEAF +:1003E000930140011302000093000000130000007D +:1003F000130000001301F0FF63C020041302120079 +:1004000093022000E31252FE93001000634A100092 +:100410009380100093801000938010009380100050 +:1004200093801000938010009303300093015001DB +:1004300063947000631030020F00F00F63800100BE +:100440009391110093E111009308D00513850100E9 +:10045000730000000F00F00F930110009308D00507 +:100460001305000073000000731000C000000000BE +:0C04700000000000000000000000000080 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-bltu.hex b/tests/riscv/isa64/rv64ui-p-bltu.hex new file mode 100644 index 00000000..5d73231a --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-bltu.hex @@ -0,0 +1,92 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F1730020309301200093000000AC +:100180001301100063E62000631C30366316300054 +:10019000E3EE20FE63163036930130009B00100022 +:1001A000939000029380E0FF1B01100013110102E5 +:1001B0001301F1FF63E6200063143034631630004E +:1001C000E3EE20FE631E30329301400093000000F6 +:1001D0001B011000131101021301F1FF63E620005F +:1001E0006310303263163000E3EE20FE631A3030C5 +:1001F00093015000930010001301000063E42000FD +:1002000063143000631E302EE3EE20FE9301600085 +:100210009B001000939000029380F0FF1B011000E0 +:10022000131101021301E1FF63E4200063143000A5 +:100230006318302CE3EE20FE930170009B00100049 +:10024000939000029380F0FF1301000063E420000C +:10025000631430006316302AE3EE20FE9301800021 +:100260009B0010009390F001370100801B01F1FF0B +:1002700063E420006314300063143028E3EE20FEB2 +:1002800093019000130200009B00F0009390C001C6 +:100290001B01F0001311C1011301F1FF63E22026DD +:1002A0001302120093022000E31052FE9301A000FB +:1002B000130200009B00F0009390C0011B01F000AE +:1002C0001311C1011301F1FF1300000063EA2022A2 +:1002D0001302120093022000E31E52FC9301B000AF +:1002E000130200009B00F0009390C0011B01F0007E +:1002F0001311C1011301F1FF1300000013000000EE +:1003000063E020201302120093022000E31C52FC41 +:100310009301C000130200009B00F0009390C00105 +:10032000130000001B01F0001311C1011301F1FFC4 +:1003300063E8201C1302120093022000E31E52FC0B +:100340009301D000130200009B00F0009390C001C5 +:10035000130000001B01F0001311C1011301F1FF94 +:100360001300000063EE2018130212009302200015 +:10037000E31C52FC9301E000130200009B00F0001C +:100380009390C00113000000130000001B01F00057 +:100390001311C1011301F1FF63E4201613021200CF +:1003A00093022000E31C52FC9301F00013020000B2 +:1003B0009B00F0009390C0011B01F0001311C101DC +:1003C0001301F1FF63EE20121302120093022000CA +:1003D000E31052FE93010001130200009B00F000A5 +:1003E0009390C0011B01F0001311C1011301F1FF33 +:1003F0001300000063E62010130212009302200095 +:10040000E31E52FC93011001130200009B00F00058 +:100410009390C0011B01F0001311C1011301F1FF02 +:10042000130000001300000063EC200C1302120004 +:1004300093022000E31C52FC9301200113020000F0 +:100440009B00F0009390C001130000001B01F0001E +:100450001311C1011301F1FF63E4200A130212001A +:1004600093022000E31E52FC9301300113020000AE +:100470009B00F0009390C001130000001B01F000EE +:100480001311C1011301F1FF1300000063EA2006FC +:100490001302120093022000E31C52FC930140015E +:1004A000130200009B00F0009390C00113000000B5 +:1004B000130000001B01F0001311C1011301F1FF33 +:1004C00063E020041302120093022000E31C52FC9C +:1004D00093001000636A1000938010009380100056 +:1004E0009380100093801000938010009380100080 +:1004F0009303300093015001639470006310300245 +:100500000F00F00F638001009391110093E111003F +:100510009308D00513850100730000000F00F00F51 +:10052000930110009308D00513050000730000002C +:0C053000731000C000000000000000007C +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-bne.hex b/tests/riscv/isa64/rv64ui-p-bne.hex new file mode 100644 index 00000000..bee17982 --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-bne.hex @@ -0,0 +1,80 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F1730020309301200093000000AC +:100180001301100063962000631A302A63163000B2 +:10019000E39E20FE6314302A930130009300100088 +:1001A0001301000063962000631A302863163000A4 +:1001B000E39E20FE63143028930140009300F0FF7B +:1001C0001301100063962000631A30266316300076 +:1001D000E39E20FE6314302693015000930010002C +:1001E0001301F0FF63962000631A30246316300079 +:1001F000E39E20FE6314302493016000930000000E +:10020000130100006394200063143000631830224F +:10021000E39E20FE93017000930010001301100074 +:100220006394200063143000631A3020E39E20FEA4 +:10023000930180009300F0FF1301F0FF639420000E +:1002400063143000631C301EE39E20FE9301900077 +:100250001302000093000000130100006390201EB1 +:100260001302120093022000E31652FE9301A00035 +:1002700013020000930000001301000013000000AF +:10028000639E201A1302120093022000E31452FE10 +:100290009301B0001302000093000000130100005E +:1002A0001300000013000000639A201813021200CC +:1002B00093022000E31252FE9301C00013020000DB +:1002C0009300000013000000130100006398201643 +:1002D0001302120093022000E31452FE9301D00097 +:1002E000130200009300000013000000130100003F +:1002F00013000000639420141302120093022000E4 +:10030000E31252FE9301E00013020000930000008C +:10031000130000001300000013010000639020127E +:100320001302120093022000E31252FE9301F00028 +:1003300013020000930000001301000063902010DE +:100340001302120093022000E31652FE93010001F3 +:1003500013020000930000001301000013000000CE +:10036000639E200C1302120093022000E31452FE3D +:10037000930110011302000093000000130100001C +:100380001300000013000000639A200A13021200F9 +:1003900093022000E31252FE930120011302000099 +:1003A0009300000013000000130100006398200870 +:1003B0001302120093022000E31452FE9301300155 +:1003C000130200009300000013000000130100005E +:1003D0001300000063942006130212009302200011 +:1003E000E31252FE9301400113020000930000004B +:1003F00013000000130000001301000063902004AC +:100400001302120093022000E31252FE9300100028 +:10041000639A000093801000938010009380100076 +:10042000938010009380100093801000930330009D +:100430009301500163947000631030020F00F00FBD +:10044000638001009391110093E111009308D0059E +:1004500013850100730000000F00F00F93011000DE +:100460009308D0051305000073000000731000C04E +:0C04700000000000000000000000000080 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-fence_i.hex b/tests/riscv/isa64/rv64ui-p-fence_i.hex new file mode 100644 index 00000000..b24865a1 --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-fence_i.hex @@ -0,0 +1,53 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F1730020309306F0061725000028 +:10018000031545E8972500008395E5E71300000077 +:100190001300000013000000130000001300000013 +:1001A0001300000013000000130000001300000003 +:1001B00013000000130000001300000013000000F3 +:1001C000972200002392A2E497220000239FB2E22C +:1001D0000F10000097270000938707E3678307004D +:1001E000130000009303C01B93012000639A76065E +:1001F000130740061307F7FFE31E07FE97220000D0 +:100200002398A2E0972200002395B2E00F1000008F +:100210001300000013000000130000001300000092 +:100220001300000013000000130000001300000082 +:100230001300000013000000130000001300000072 +:10024000972700009387C7DC67830700130000002F +:100250009303903093013000639476006310300272 +:100260000F00F00F638001009391110093E11100E2 +:100270009308D00513850100730000000F00F00FF4 +:10028000930110009308D0051305000073000000CF +:10029000731000C00000000000000000000000001B +:0802A000000000000000000056 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:102000009386D6149386E60DE70703009386B622DF +:10201000E7070300000000000000000000000000CF +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-jal.hex b/tests/riscv/isa64/rv64ui-p-jal.hex new file mode 100644 index 00000000..f18e9b36 --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-jal.hex @@ -0,0 +1,44 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F1730020309301200093000000AC +:100180006F02000113000000130000006F00000464 +:1001900017010000130141FF631A41029300100090 +:1001A0006F00400193801000938010009380100036 +:1001B0009380100093801000938010009303300010 +:1001C0009301300063947000631030020F00F00F51 +:1001D000638001009391110093E111009308D00511 +:1001E00013850100730000000F00F00F9301100051 +:1001F0009308D0051305000073000000731000C0C1 +:1002000000000000000000000000000000000000EE +:1002100000000000000000000000000000000000DE +:1002200000000000000000000000000000000000CE +:0C023000000000000000000000000000C2 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-jalr.hex b/tests/riscv/isa64/rv64ui-p-jalr.hex new file mode 100644 index 00000000..15d206c3 --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-jalr.hex @@ -0,0 +1,52 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F1730020309301200093020000AA +:100180001703000013030301E70203006F00000ED2 +:10019000170300001303C3FF639A620C930130003E +:1001A0009702000093820201E78202006F00000CB8 +:1001B000170300001303C3FF639A620A9301400010 +:1001C000130200001703000013030301E7060300F6 +:1001D000631E30081302120093022000E31452FE43 +:1001E00093015000130200001703000013034301A2 +:1001F00013000000E7060300631A30061302120022 +:1002000093022000E31252FE9301600013020000EB +:100210001703000013038301130000001300000004 +:10022000E706030063143004130212009302200057 +:10023000E31052FE93021000170300001303C301E2 +:100240006700C3FF93821200938212009382120010 +:100250009382120093821200938212009303400053 +:100260009301700063947200631030020F00F00F6E +:10027000638001009391110093E111009308D00570 +:1002800013850100730000000F00F00F93011000B0 +:100290009308D0051305000073000000731000C020 +:1002A000000000000000000000000000000000004E +:0C02B00000000000000000000000000042 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-lb.hex b/tests/riscv/isa64/rv64ui-p-lb.hex new file mode 100644 index 00000000..c8624213 --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-lb.hex @@ -0,0 +1,73 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F17300203097200000938080E8C1 +:10018000038700009303F0FF93012000631C772294 +:1001900097200000938000E703871000930300007E +:1001A000930130006310772297200000938080E550 +:1001B00003872000930300FF93014000631477201E +:1001C00097200000938000E4038730009303F00041 +:1001D000930150006318771E972000009380B0E2CF +:1001E0000387D0FF9303F0FF93016000631C771C2B +:1001F00097200000938030E10387E0FF9303000025 +:10020000930170006310771C972000009380B0DF8B +:100210000387F0FF930300FF930180006314771AB4 +:1002200097200000938030DE038700009303F000E6 +:10023000930190006318771897200000938080DC6A +:10024000938000FE838200029303F0FF9301A000DD +:10025000639A7216972000009380C0DA9380A0FF03 +:1002600083827000930300009301B000639C7214BA +:100270009301C0001302000097200000938090D8E3 +:100280000387100013030700930300FF631C73121E +:100290001302120093022000E31052FE9301D000DB +:1002A00013020000972000009380E0D50387100020 +:1002B00013000000130307009303F000631473108E +:1002C0001302120093022000E31E52FC9301E0008F +:1002D00013020000972000009380C0D20387100013 +:1002E0001300000013000000130307009303000035 +:1002F000631A730C1302120093022000E31C52FCD9 +:100300009301F0001302000097200000938090CF2B +:1003100003871000930300FF6316770A130212008D +:1003200093022000E31252FE930100011302000029 +:1003300097200000938020CD130000000387100059 +:100340009303F00063107708130212009302200059 +:10035000E31052FE930110011302000097200000E9 +:10036000938040CA130000001300000003871000B0 +:100370009303000063187704130212009302200015 +:10038000E31E52FC972200009382C2C70381020041 +:1003900013012000930320009301200163147102D4 +:1003A00097220000938202C603810200130000001E +:1003B00013012000930320009301300163147100A6 +:1003C000631030020F00F00F638001009391110061 +:1003D00093E111009308D00513850100730000001C +:1003E0000F00F00F930110009308D00513050000D3 +:0C03F00073000000731000C0000000004B +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:10200000FF00F00F000000000000000000000000D2 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-lbu.hex b/tests/riscv/isa64/rv64ui-p-lbu.hex new file mode 100644 index 00000000..48c545bc --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-lbu.hex @@ -0,0 +1,73 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F17300203097200000938080E8C1 +:1001800003C700009303F00F93012000631C772244 +:1001900097200000938000E703C71000930300003E +:1001A000930130006310772297200000938080E550 +:1001B00003C720009303000F9301400063147720CE +:1001C00097200000938000E403C730009303F00001 +:1001D000930150006318771E972000009380B0E2CF +:1001E00003C7D0FF9303F00F93016000631C771CDB +:1001F00097200000938030E103C7E0FF93030000E5 +:10020000930170006310771C972000009380B0DF8B +:1002100003C7F0FF9303000F930180006314771A64 +:1002200097200000938030DE03C700009303F000A6 +:10023000930190006318771897200000938080DC6A +:10024000938000FE83C200029303F00F9301A0008D +:10025000639A7216972000009380C0DA9380A0FF03 +:1002600083C27000930300009301B000639C72147A +:100270009301C0001302000097200000938090D8E3 +:1002800003C71000130307009303000F631C7312CE +:100290001302120093022000E31052FE9301D000DB +:1002A00013020000972000009380E0D503C71000E0 +:1002B00013000000130307009303F000631473108E +:1002C0001302120093022000E31E52FC9301E0008F +:1002D00013020000972000009380C0D203C71000D3 +:1002E0001300000013000000130307009303000035 +:1002F000631A730C1302120093022000E31C52FCD9 +:100300009301F0001302000097200000938090CF2B +:1003100003C710009303000F6316770A130212003D +:1003200093022000E31252FE930100011302000029 +:1003300097200000938020CD1300000003C7100019 +:100340009303F00063107708130212009302200059 +:10035000E31052FE930110011302000097200000E9 +:10036000938040CA130000001300000003C7100070 +:100370009303000063187704130212009302200015 +:10038000E31E52FC972200009382C2C703C1020001 +:1003900013012000930320009301200163147102D4 +:1003A00097220000938202C603C1020013000000DE +:1003B00013012000930320009301300163147100A6 +:1003C000631030020F00F00F638001009391110061 +:1003D00093E111009308D00513850100730000001C +:1003E0000F00F00F930110009308D00513050000D3 +:0C03F00073000000731000C0000000004B +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:10200000FF00F00F000000000000000000000000D2 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-ld.hex b/tests/riscv/isa64/rv64ui-p-ld.hex new file mode 100644 index 00000000..d0b0253d --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-ld.hex @@ -0,0 +1,98 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F17300203097200000938080E8C1 +:1001800003B70000B703FF009B83F30F93930301B2 +:100190009383F30F939303019383F30F9301200051 +:1001A0006312773A972000009380C0E503B7800080 +:1001B000B70301FF9B8313F093930301938313F021 +:1001C00093930301938303F093013000631C77360C +:1001D00097200000938000E303B70001B7030100FC +:1001E0009B8313F093930301938313F09393030181 +:1001F000938313F09393C300938303FF9301400011 +:1002000063127734972000009380C0DF03B780012A +:10021000B703FFFF9B83F30F939303019383F30FC4 +:10022000939303019383F30F9393C3009383F3009A +:10023000930150006318773097200000938000DE10 +:1002400003B780FEB703FF009B83F30F9393030173 +:100250009383F30F939303019383F30F9301600050 +:100260006312772E97200000938040DB03B700FFD6 +:10027000B70301FF9B8313F093930301938313F060 +:1002800093930301938303F093017000631C772A17 +:1002900097200000938080D803B780FFB703010048 +:1002A0009B8313F093930301938313F093930301C0 +:1002B000938313F09393C300938303FF9301800010 +:1002C0006312772897200000938040D503B7000081 +:1002D000B703FFFF9B83F30F939303019383F30F04 +:1002E000939303019383F30F9393C3009383F300DA +:1002F000930190006318772497200000938080D0AA +:10030000938000FE83B20002B703FF009B83F30FCC +:10031000939303019383F30F939303019383F30F59 +:100320009301A0006390722297200000938080CDFB +:100330009380D0FF83B2B000B70301FF9B8313F01B +:1003400093930301938313F093930301938303F037 +:100350009301B0006398721E9301C0001302000065 +:1003600097200000938080CA03B780001303070022 +:10037000B70301009B8313F093930301938313F05E +:1003800093930301938313F09393C300938303FF29 +:10039000631A731A1302120093022000E31252FC34 +:1003A0009301D0001302000097200000938080C6C4 +:1003B00003B780001300000013030700B703FFFF1B +:1003C0009B83F30F939303019383F30F93930301A1 +:1003D0009383F30F9393C3009383F3006314731613 +:1003E0001302120093022000E31052FC9301E0007C +:1003F00013020000972000009380C0C003B7800064 +:10040000130000001300000013030700B70301FFEF +:100410009B8313F093930301938313F0939303014E +:10042000938303F0631073121302120093022000EF +:10043000E31252FC9301F000130200009720000029 +:100440009380C0BC03B78000B70301009B8313F007 +:1004500093930301938313F093930301938313F016 +:100460009393C300938303FF631E770C1302120060 +:1004700093022000E31452FC9301000113020000D8 +:1004800097200000938000B91300000003B780009C +:10049000B703FFFF9B83F30F939303019383F30F42 +:1004A000939303019383F30F9393C3009383F30018 +:1004B000631A77081302120093022000E31252FC21 +:1004C000930110011302000097200000938080B375 +:1004D000130000001300000003B78000B70301FF02 +:1004E0009B8313F093930301938313F0939303017E +:1004F000938303F063187704130212009302200021 +:10050000E31452FC972200009382C2AF03B10200B1 +:100510001301200093032000930120016314710252 +:1005200097220000938202AE03B102001300000084 +:100530001301200093032000930130016314710024 +:10054000631030020F00F00F6380010093911100DF +:1005500093E111009308D00513850100730000009A +:100560000F00F00F930110009308D0051305000051 +:0C05700073000000731000C000000000C9 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:10200000FF00FF00FF00FF0000FF00FF00FF00FFD8 +:10201000F00FF00FF00FF00F0FF00FF00FF00FF0C8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-lh.hex b/tests/riscv/isa64/rv64ui-p-lh.hex new file mode 100644 index 00000000..2a79b236 --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-lh.hex @@ -0,0 +1,77 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F17300203097200000938080E8C1 +:10018000039700009303F00F93012000631C772472 +:1001900097200000938000E703972000930300F06E +:1001A000930130006310772497200000938080E54E +:1001B00003974000B71300009B8303FF93014000A7 +:1001C00063127722972000009380C0E303976000BA +:1001D000B7F3FFFF9B83F300930150006314772074 +:1001E00097200000938060E20397A0FF9303F00F35 +:1001F000930160006318771E972000009380E0E071 +:100200000397C0FF930300F093017000631C771CF9 +:1002100097200000938060DF0397E0FFB713000092 +:100220009B8303FF93018000631E771A97200000D1 +:100230009380A0DD03970000B7F3FFFF9B83F300DB +:10024000930190006310771A97200000938080DB61 +:10025000938000FE839200029303F00F9301A000AD +:1002600063927218972000009380C0D99380B0FFEA +:1002700083927000930300F09301B00063947216B0 +:100280009301C00013020000972000009380A0D7C4 +:100290000397200013030700B71300009B8303FF9D +:1002A000631273141302120093022000E31E52FC27 +:1002B0009301D00013020000972000009380C0D467 +:1002C000039720001300000013030700B7F3FFFF9C +:1002D0009B83F30063187310130212009302200033 +:1002E000E31C52FC9301E000130200009720000081 +:1002F000938040D1039720001300000013000000FA +:1003000013030700930300F0631E730C1302120023 +:1003100093022000E31C52FC9301F0001302000042 +:1003200097200000938020CE03972000B713000091 +:100330009B8303FF6318770A1302120093022000C5 +:10034000E31052FE93010001130200009720000009 +:10035000938080CB1300000003972000B7F3FFFFCA +:100360009B83F300631077081302120093022000AE +:10037000E31E52FC930110011302000097200000BD +:10038000938040C813000000130000000397200072 +:10039000930300F063187704130212009302200005 +:1003A000E31E52FC972200009382C2C50391020013 +:1003B00013012000930320009301200163147102B4 +:1003C00097220000938202C40391020013000000F0 +:1003D0001301200093032000930130016314710086 +:1003E000631030020F00F00F638001009391110041 +:1003F00093E111009308D0051385010073000000FC +:100400000F00F00F930110009308D00513050000B2 +:1004100073000000731000C0000000000000000026 +:1004200000000000000000000000000000000000CC +:0C043000000000000000000000000000C0 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:10200000FF0000FFF00F0FF00000000000000000D4 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-lhu.hex b/tests/riscv/isa64/rv64ui-p-lhu.hex new file mode 100644 index 00000000..f9caef43 --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-lhu.hex @@ -0,0 +1,77 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F17300203097200000938080E8C1 +:1001800003D700009303F00F930120006316772636 +:1001900097200000938000E703D72000B7030100F9 +:1001A0009B8303F0930130006318772497200000AD +:1001B000938040E503D74000B71300009B8303FF03 +:1001C00093014000631A772297200000938080E318 +:1001D00003D76000B7F300009B83F3009301500046 +:1001E000631C772097200000938020E203D7A0FFB4 +:1001F0009303F00F930160006310772097200000B5 +:100200009380A0E003D7C0FFB70301009B8303F0F6 +:10021000930170006312771E972000009380E0DE48 +:1002200003D7E0FFB71300009B8303FF9301800017 +:100230006314771C97200000938020DD03D7000013 +:10024000B7F300009B83F300930190006316771AC5 +:1002500097200000938000DB938000FE83D2000291 +:100260009303F00F9301A000639872189720000089 +:10027000938040D99380B0FF83D27000B703010010 +:100280009B8303F09301B000639872169301C00042 +:1002900013020000972000009380E0D603D72000CF +:1002A00013030700B71300009B8303FF6316731447 +:1002B0001302120093022000E31E52FC9301D000AF +:1002C0001302000097200000938000D403D7200081 +:1002D0001300000013030700B7F300009B83F30033 +:1002E000631C73101302120093022000E31C52FCE3 +:1002F0009301E0001302000097200000938080D05B +:1003000003D72000130000001300000013030700B0 +:10031000B70301009B8303F06310730E13021200F6 +:1003200093022000E31A52FC9301F0001302000034 +:1003300097200000938020CD03D72000B713000042 +:100340009B8303FF631A770A1302120093022000B3 +:10035000E31052FE930100011302000097200000F9 +:10036000938080CA1300000003D72000B7F3000079 +:100370009B83F3006312770813021200930220009C +:10038000E31E52FC930110011302000097200000AD +:10039000938040C7130000001300000003D7200023 +:1003A000B70301009B8303F0631877041302120064 +:1003B00093022000E31C52FC97220000938282C427 +:1003C00003D10200130120009303200093012001B8 +:1003D00063147102972200009382C2C203D102000B +:1003E000130000001301200093032000930130014B +:1003F00063147100631030020F00F00F638001007E +:100400009391110093E111009308D0051385010029 +:10041000730000000F00F00F930110009308D00547 +:100420001305000073000000731000C000000000FE +:0C043000000000000000000000000000C0 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:10200000FF0000FFF00F0FF00000000000000000D4 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-lui.hex b/tests/riscv/isa64/rv64ui-p-lui.hex new file mode 100644 index 00000000..b3721b4b --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-lui.hex @@ -0,0 +1,44 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F173002030B700000093030000A6 +:1001800093012000639A7004B7F0FFFF93D01040F2 +:10019000930300809301300063907004B7F0FF7FF9 +:1001A00093D040419303F07F930140006396700227 +:1001B000B700008093D0404193030080930150002A +:1001C000639C70003700008093030000930160007F +:1001D00063147000631030020F00F00F63800100A1 +:1001E0009391110093E111009308D005138501004C +:1001F000730000000F00F00F930110009308D0056A +:100200001305000073000000731000C00000000020 +:1002100000000000000000000000000000000000DE +:1002200000000000000000000000000000000000CE +:0C023000000000000000000000000000C2 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-lw.hex b/tests/riscv/isa64/rv64ui-p-lw.hex new file mode 100644 index 00000000..c96c231d --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-lw.hex @@ -0,0 +1,77 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F17300203097200000938080E8C1 +:1001800003A70000B703FF009B83F30F9301200038 +:10019000631A7726972000009380C0E603A74000EB +:1001A000B70301FF9B8303F093013000631C7724A6 +:1001B00097200000938000E503A78000B713F00F9D +:1001C0009B8303FF93014000631E7722972000006A +:1001D000938040E303A7C000B7F30FF09B83F300C5 +:1001E000930150006310772297200000938040E233 +:1001F00003A740FFB703FF009B83F30F9301600049 +:100200006312772097200000938080E003A780FF8F +:10021000B70301FF9B8303F0930170006314771E03 +:10022000972000009380C0DE03A7C0FFB713F00F34 +:100230009B8303FF930180006316771C97200000C7 +:10024000938000DD03A70000B7F30FF09B83F3005A +:10025000930190006318771A97200000938080DA4A +:10026000938000FE83A20002B703FF009B83F30F7D +:100270009301A0006398721897200000938080D8A3 +:100280009380D0FF83A27000B70301FF9B8303F02C +:100290009301B000639872169301C000130200002E +:1002A00097200000938040D603A740001303070067 +:1002B000B713F00F9B8303FF63167314130212002E +:1002C00093022000E31E52FC9301D00013020000B1 +:1002D00097200000938080D303A740001300000004 +:1002E00013030700B7F30FF09B83F300631C731035 +:1002F0001302120093022000E31C52FC9301E00061 +:1003000013020000972000009380C0CF03A7400095 +:10031000130000001300000013030700B70301FFE0 +:100320009B8303F06310730E1302120093022000EC +:10033000E31A52FC9301F000130200009720000022 +:10034000938080CC03A74000B713F00F9B8303FF7B +:10035000631A770A1302120093022000E31052FE80 +:10036000930100011302000097200000938000CA4F +:100370001300000003A74000B7F30FF09B83F300C6 +:10038000631277081302120093022000E31E52FC4E +:10039000930110011302000097200000938080C693 +:1003A000130000001300000003A74000B70301FF83 +:1003B0009B8303F06318770413021200930220005A +:1003C000E31C52FC972200009382C2C303A10200E7 +:1003D0001301200093032000930120016314710294 +:1003E00097220000938202C203A1020013000000C2 +:1003F0001301200093032000930130016314710066 +:10040000631030020F00F00F638001009391110020 +:1004100093E111009308D0051385010073000000DB +:100420000F00F00F930110009308D0051305000092 +:0C04300073000000731000C0000000000A +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:10200000FF00FF0000FF00FFF00FF00F0FF00FF0D8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-lwu.hex b/tests/riscv/isa64/rv64ui-p-lwu.hex new file mode 100644 index 00000000..11dedbf4 --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-lwu.hex @@ -0,0 +1,85 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F17300203097200000938080E8C1 +:1001800003E70000B703FF009B83F30F93012000F8 +:10019000631E772A972000009380C0E603E74000A3 +:1001A000B70301009B8313F093930301938303F040 +:1001B00093013000631C772897200000938080E42F +:1001C00003E78000B713F00F9B8303FF9301400008 +:1001D000631E7726972000009380C0E203E7C000EB +:1001E000B7030F009B83F30F9393C3009383F30034 +:1001F00093015000631C772497200000938040E116 +:1002000003E740FFB703FF009B83F30F93016000F8 +:10021000631E772297200000938080DF03E780FF32 +:10022000B70301009B8313F093930301938303F0BF +:1002300093017000631C772097200000938040DDBD +:1002400003E7C0FFB713F00F9B8303FF9301800008 +:10025000631E771E97200000938080DB03E7000079 +:10026000B7030F009B83F30F9393C3009383F300B3 +:1002700093019000631C771C97200000938080D826 +:10028000938000FE83E20002B703FF009B83F30F1D +:100290009301A000639C721A97200000938080D67F +:1002A0009380D0FF83E27000B70301009B8313F0BB +:1002B00093930301938303F09301B0006398721842 +:1002C0009301C00013020000972000009380C0D368 +:1002D00003E7400013030700B713F00F9B8303FFEE +:1002E000631673161302120093022000E31E52FCE1 +:1002F0009301D0001302000097200000938000D1EA +:1003000003E740001300000013030700B7030F00CA +:100310009B83F30F9393C3009383F30063187312CB +:100320001302120093022000E31852FC9301E00034 +:1003300013020000972000009380C0CC03E7400028 +:10034000130000001300000013030700B7030100AF +:100350009B8313F093930301938303F06318730E4D +:100360001302120093022000E31652FC9301F000E6 +:100370001302000097200000938000C903E74000AB +:10038000B713F00F9B8303FF6312770C1302120065 +:1003900093022000E31052FE9301000113020000BB +:1003A00097200000938080C61300000003E7400000 +:1003B000B7030F009B83F30F9393C3009383F30062 +:1003C000631677081302120093022000E31A52FC0E +:1003D000930110011302000097200000938080C257 +:1003E000130000001300000003E74000B703010002 +:1003F0009B8313F093930301938303F063187704B3 +:100400001302120093022000E31852FC972200000E +:10041000938242BF03E102001301200093032000F6 +:10042000930120016314710297220000938282BD20 +:1004300003E10200130000001301200093032000D9 +:100440009301300163147100631030020F00F00F4C +:10045000638001009391110093E111009308D0058E +:1004600013850100730000000F00F00F93011000CE +:100470009308D0051305000073000000731000C03E +:10048000000000000000000000000000000000006C +:10049000000000000000000000000000000000005C +:1004A000000000000000000000000000000000004C +:0C04B00000000000000000000000000040 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:10200000FF00FF0000FF00FFF00FF00F0FF00FF0D8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-or.hex b/tests/riscv/isa64/rv64ui-p-or.hex new file mode 100644 index 00000000..2a7b679c --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-or.hex @@ -0,0 +1,132 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F173002030B70001009B8010F020 +:1001800093900001938000F037110F0F1B01F1F0E5 +:1001900033E72000B71300009B8313FF93934301C1 +:1001A0009383F3F0930120006316775AB710F00F92 +:1001B0009B8000FF37110F001B01F1F01311C100EC +:1001C0001301010F33E72000B70301009B8313FFE6 +:1001D00093930301938303FF93013000631C7756CD +:1001E000B700FF009B80F00F37110F0F1B01F1F0DC +:1001F00033E72000B713FF0F9B83F3FF9301400009 +:10020000631A7754B7000F009B80F00F9390C000E3 +:100210009380F00037110F001B01F1F01311C100A2 +:100220001301010F33E72000B7130F009B83F3FF87 +:100230009393C3009383F30F93015000631C775093 +:10024000B70001009B8010F093900001938000F0B4 +:1002500037110F0F1B01F1F0B3E02000B7130000BE +:100260009B8313FF939343019383F3F09301600007 +:100270006392704EB70001009B8010F093900001D4 +:10028000938000F037110F0F1B01F1F033E12000D4 +:10029000B71300009B8313FF939343019383F3F001 +:1002A000930170006318714AB70001009B8010F041 +:1002B00093900001938000F0B3E01000B7030100B9 +:1002C0009B8313F093930301938303F093018000C6 +:1002D0006392704813020000B70001009B8010F089 +:1002E00093900001938000F037110F0F1B01F1F084 +:1002F00033E72000130307001302120093022000CB +:10030000E31C52FCB71300009B8313FF939343013C +:100310009383F3F093019000631E73421302000075 +:10032000B710F00F9B8000FF37110F001B01F1F099 +:100330001311C1001301010F33E720001300000067 +:10034000130307001302120093022000E31A52FC69 +:10035000B70301009B8313FF93930301938303FF70 +:100360009301A0006318733E13020000B700FF0062 +:100370009B80F00F37110F0F1B01F1F033E72000C6 +:100380001300000013000000130307001302120003 +:1003900093022000E31C52FCB713FF0F9B83F3FF73 +:1003A0009301B0006318733A13020000B700010014 +:1003B0009B8010F093900001938000F037110F0F95 +:1003C0001B01F1F033E7200013021200930220001A +:1003D000E31E52FCB71300009B8313FF939343016A +:1003E0009383F3F09301C000631677361302000085 +:1003F000B710F00F9B8000FF37110F001B01F1F0C9 +:100400001311C1001301010F1300000033E7200096 +:100410001302120093022000E31C52FCB7030100F8 +:100420009B8313FF93930301938303FF9301D000F6 +:100430006312773213020000B700FF009B80F00FB9 +:1004400037110F0F1B01F1F0130000001300000023 +:1004500033E720001302120093022000E31E52FC37 +:10046000B713FF0F9B83F3FF9301E0006314772E14 +:1004700013020000B70001009B8010F09390000170 +:10048000938000F01300000037110F0F1B01F1F0F3 +:1004900033E720001302120093022000E31C52FCF9 +:1004A000B71300009B8313FF939343019383F3F0EF +:1004B0009301F0006310772A13020000B710F00FC9 +:1004C0009B8000FF1300000037110F001B01F1F0AB +:1004D0001311C1001301010F1300000033E72000C6 +:1004E0001302120093022000E31A52FCB70301002A +:1004F0009B8313FF93930301938303FF93010001F5 +:10050000631A772413020000B700FF009B80F00FEE +:10051000130000001300000037110F0F1B01F1F052 +:1005200033E720001302120093022000E31E52FC66 +:10053000B713FF0F9B83F3FF93011001631C772018 +:100540001302000037110F0F1B01F1F0B70001007B +:100550009B8010F093900001938000F033E720001F +:100560001302120093022000E31E52FCB713000096 +:100570009B8313FF939343019383F3F09301200133 +:10058000631A771C1302000037110F001B01F1F0F2 +:100590001311C1001301010FB710F00F9B8000FF72 +:1005A0001300000033E72000130212009302200022 +:1005B000E31C52FCB70301009B8313FF93930301D9 +:1005C000938303FF93013001631677181302000031 +:1005D00037110F0F1B01F1F0B700FF009B80F00FE8 +:1005E000130000001300000033E720001302120084 +:1005F00093022000E31E52FCB713FF0F9B83F3FF0F +:1006000093014001631877141302000037110F0F94 +:100610001B01F1F013000000B70001009B8010F0F7 +:1006200093900001938000F033E720001302120042 +:1006300093022000E31C52FCB71300009B8313FFBE +:10064000939343019383F3F0930150016314771064 +:100650001302000037110F001B01F1F01311C1004C +:100660001301010F13000000B710F00F9B8000FF73 +:100670001300000033E72000130212009302200051 +:10068000E31A52FCB70301009B8313FF939303010A +:10069000938303FF93016001631E770A1302000036 +:1006A00037110F0F1B01F1F01300000013000000C1 +:1006B000B700FF009B80F00F33E720001302120009 +:1006C00093022000E31E52FCB713FF0F9B83F3FF3E +:1006D0009301700163107708B70001009B8010F050 +:1006E00093900001938000F033611000B703010084 +:1006F0009B8313F093930301938303F09301800191 +:10070000631A7104B700FF009B80F00F33E1000013 +:10071000B703FF009B83F30F93019001631C7102E9 +:10072000B3600000930300009301A0016394700282 +:10073000B71011119B801011372122221B01212299 +:1007400033E02000930300009301B00163147000B4 +:10075000631030020F00F00F6380010093911100CD +:1007600093E111009308D005138501007300000088 +:100770000F00F00F930110009308D005130500003F +:1007800073000000731000C00000000000000000B3 +:100790000000000000000000000000000000000059 +:1007A0000000000000000000000000000000000049 +:0C07B0000000000000000000000000003D +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-ori.hex b/tests/riscv/isa64/rv64ui-p-ori.hex new file mode 100644 index 00000000..42818cdf --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-ori.hex @@ -0,0 +1,68 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F173002030B70001FF9B8000F031 +:1001800013E7F0F09303F0F093012000631C771C59 +:10019000B710F00F9B8000FF13E7000FB713F00FAD +:1001A0009B8303FF93013000631E771AB700FF00A3 +:1001B0009B80F00F13E7F070B703FF009B83F37F82 +:1001C000930140006310771AB7F00FF09B80F000A6 +:1001D00013E7000FB7F30FF09B83F30F9301500069 +:1001E00063127718B70001009B8010F09390000114 +:1001F000938000F093E0000FB70301009B8313F09E +:1002000093930301938303FF93016000639C701435 +:1002100013020000B710F00F9B8000FF13E7000FE0 +:10022000130307001302120093022000E31452FE8E +:10023000B713F00F9B8303FF9301700063147312D5 +:1002400013020000B700FF009B80F00F13E7F0706F +:100250001300000013030700130212009302200092 +:10026000E31252FEB703FF009B83F37F93018000EC +:10027000631A730E13020000B7F00FF09B80F000BA +:1002800013E7000F13000000130000001303070022 +:100290001302120093022000E31052FEB7F30FF096 +:1002A0009B83F30F93019000631E730A13020000F7 +:1002B000B710F00F9B8000FF13E7000F130212002E +:1002C00093022000E31652FEB713F00F9B8303FF47 +:1002D0009301A0006318770813020000B700FF0025 +:1002E0009B80F00F1300000013E7F0F013021200E0 +:1002F00093022000E31452FE9303F0FF9301B00039 +:100300006312770613020000B7F00FF09B80F00035 +:10031000130000001300000013E7000F1302120087 +:1003200093022000E31252FEB7F30FF09B83F30F0A +:100330009301C000631877029360000F9303000FCE +:100340009301D00063907002B700FF009B80F00F14 +:1003500013E0F070930300009301E0006314700059 +:10036000631030020F00F00F6380010093911100C1 +:1003700093E111009308D00513850100730000007C +:100380000F00F00F930110009308D0051305000033 +:1003900073000000731000C00000000000000000A7 +:1003A000000000000000000000000000000000004D +:0C03B00000000000000000000000000041 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-sb.hex b/tests/riscv/isa64/rv64ui-p-sb.hex new file mode 100644 index 00000000..bca04bda --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-sb.hex @@ -0,0 +1,101 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F17300203097200000938080E8C1 +:100180001301A0FA23802000038700009303A0FA44 +:1001900093012000631C773C97200000938080E649 +:1001A00013010000A38020000387100093030000C8 +:1001B00093013000631C773A97200000938080E41D +:1001C00037F1FFFF1B0101FA238120000397200074 +:1001D000B7F3FFFF9B8303FA93014000631877385E +:1001E00097200000938000E21301A000A38120006B +:1001F000038730009303A000930150006318773603 +:1002000097200000938070E01301A0FAA38E20FED7 +:100210000387D0FF9303A0FA93016000631877343B +:1002200097200000938070DE13010000238F20FED2 +:100230000387E0FF93030000930170006318773297 +:1002400097200000938070DC130100FAA38F20FE3A +:100250000387F0FF930300FA93018000631877305F +:1002600097200000938070DA1301A0002380200003 +:10027000038700009303A000930190006318772E7A +:1002800097200000938080D8375134121B0181677A +:10029000138200FE23002202838200009303800762 +:1002A0009301A0006394722C97200000938000D6E5 +:1002B000373100001B0181099380A0FFA383200038 +:1002C00017220000130292D483020200930380F9E4 +:1002D0009301B000639C72289301C00013020000D8 +:1002E0009300D0FD172100001301C1D1230011009C +:1002F000030701009303D0FD631A7726130212004F +:1003000093022000E31E52FC9301D0001302000070 +:100310009300D0FC172100001301C1CE1300000090 +:10032000A3001100030711009303D0FC631077248E +:100330001302120093022000E31C52FC9301E00020 +:10034000130200009300C0FC17210000130181CBB1 +:100350001300000013000000230111000307210017 +:100360009303C0FC63147720130212009302200051 +:10037000E31A52FC9301F000130200009300C0FB4B +:1003800013000000172100001301C1C7A3011100D1 +:10039000030731009303C0FB631A771C130212009A +:1003A00093022000E31C52FC9301000113020000A1 +:1003B0009300B0FB1300000017210000130181C45B +:1003C0001300000023021100030741009303B0FB58 +:1003D000631E77181302120093022000E31A52FCE6 +:1003E00093011001130200009300B0FA1300000003 +:1003F00013000000172100001301C1C0A302110067 +:10040000030751009303B0FA631277161302120028 +:1004100093022000E31A52FC930120011302000012 +:1004200017210000130101BE9300300323001100C7 +:100430000307010093033003631A771213021200BB +:1004400093022000E31E52FC9301300113020000CE +:1004500017210000130101BB9300300213000000BC +:10046000A3001100030711009303300263107710FB +:100470001302120093022000E31C52FC930140017E +:1004800013020000172100001301C1B793002002DE +:1004900013000000130000002301110003072100D6 +:1004A000930320026314770C1302120093022000BE +:1004B000E31A52FC930150011302000017210000BF +:1004C000130141B41300000093002001A3011100A7 +:1004D0000307310093032001631A77081302120007 +:1004E00093022000E31C52FC930160011302000000 +:1004F00017210000130101B1130000009300100147 +:1005000013000000230211000307410093031001B0 +:10051000631E77041302120093022000E31A52FCB8 +:10052000930170011302000017210000130181AD37 +:10053000130000001300000093001000A30211003C +:100540000307510093031000631277021302120095 +:1005500093022000E31A52FC1305F00E97250000C9 +:10056000938545AAA381A500631030020F00F00F08 +:10057000638001009391110093E111009308D0056D +:1005800013850100730000000F00F00F93011000AD +:100590009308D0051305000073000000731000C01D +:1005A000000000000000000000000000000000004B +:0C05B0000000000000000000000000003F +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:10200000EFEFEFEFEFEFEFEFEFEF0000000000007A +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-sd.hex b/tests/riscv/isa64/rv64ui-p-sd.hex new file mode 100644 index 00000000..35487362 --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-sd.hex @@ -0,0 +1,141 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F17300203097200000938080E8C1 +:10018000370155001B0151051311010113015105E0 +:10019000131111011301A10A23B0200003B70000BD +:1001A000B70355009B835305939303019383530532 +:1001B000939313019383A30A930120006310776044 +:1001C00097200000938000E43701D5FF1B01510503 +:1001D00013110101130151051311D1001301B100D5 +:1001E0001311C100130101A023B4200003B7800044 +:1001F000B703D5FF9B835305939303019383530563 +:100200009393D3009383B3009393C300938303A08A +:10021000930130006314775A97200000938080DEAA +:10022000370155001B0151051311D1001301B10015 +:100230001311C100130111A01311C100130101AA70 +:1002400023B8200003B70001B70355009B83530573 +:100250009393D3009383B3009393C300938313A02A +:100260009393C300938303AA9301400063187754C8 +:1002700097200000938000D93701FDFF1B01510535 +:10028000131101011301510513110101130151054E +:100290001311D1001301A10023BC200003B780017A +:1002A000B703FDFF9B83530593930301938353058A +:1002B00093930301938353059393D3009383A300F4 +:1002C00093015000631C774E97200000938000D765 +:1002D000370155001B01510513110101130151058F +:1002E000131111011301A10A23B420FE03B780FEEC +:1002F000B70355009B8353059393030193835305E1 +:10030000939313019383A30A930160006318774AC0 +:1003100097200000938080D23701D5FF1B01510543 +:1003200013110101130151051311D1001301B10083 +:100330001311C100130101A023B820FE03B700FF71 +:10034000B703D5FF9B835305939303019383530511 +:100350009393D3009383B3009393C300938303A039 +:1003600093017000631C774497200000938000CDB8 +:10037000370155001B0151051311D1001301B100C4 +:100380001311C100130111A01311C100130101AA1F +:1003900023BC20FE03B780FFB70355009B835305A2 +:1003A0009393D3009383B3009393C300938313A0D9 +:1003B0009393C300938303AA930180006310774053 +:1003C00097200000938080C73701FDFF1B01510576 +:1003D00013110101130151051311010113015105FD +:1003E0001311D1001301A10023B0200003B70000B6 +:1003F000B703FDFF9B835305939303019383530539 +:1004000093930301938353059393D3009383A300A2 +:10041000930190006314773A97200000938080C284 +:10042000377124001B01D18A1311E100130191C01F +:100430001311D100130151341311C100130181674D +:10044000138200FE2330220283B20000B77324001F +:100450009B83D38A9393E300938393C09393D300B6 +:10046000938353349393C300938383679301A000D2 +:1004700063967234972000009380C0BC3741B0006F +:100480001B0111261311C1001301B1301311F1002A +:10049000130131211311C100130181099380D0FF91 +:1004A000A3B5200017220000130242BA83320200D3 +:1004B000B743B0009B8313269393C3009383B33059 +:1004C0009393F300938333219393C300938383091E +:1004D0009301B0006394722E9301C00013020000D8 +:1004E000B7D0BB0A9B80D0CD17210000130181B18A +:1004F0002330110003370100B7D3BB0A9B83D3CD50 +:10050000631E772A1302120093022000E31A52FCA2 +:100510009301D00013020000B7C0AB0A9B80D0CC7F +:1005200017210000130101AE130000002334110055 +:1005300003378100B7C3AB0A9B83D3CC6310772802 +:100540001302120093022000E31852FC9301E00012 +:1005500013020000B7C0AA0D9B80C0BC1721000089 +:10056000130141AA130000001300000023381100FA +:1005700003370101B7C3AA0D9B83C3BC6310772463 +:100580001302120093022000E31652FC9301F000C4 +:1005900013020000B7B0DA0D9B80C0BB130000004F +:1005A00017210000130101A6233C1100033781012C +:1005B000B7B3DA0D9B83C3BB63127720130212001B +:1005C00093022000E31852FC930100011302000083 +:1005D000B7B0DD0C9B80B0AB13000000172100000A +:1005E000130141A21300000023301102033701025E +:1005F000B7B3DD0C9B83B3AB6312771C13021200FD +:1006000093022000E31652FC930110011302000034 +:10061000B7E0CD0C9B80B0AA1300000013000000CF +:10062000172100001301019E2334110203378102B8 +:10063000B7E3CD0C9B83B3AA6312771813021200A1 +:1006400093022000E31652FC9301200113020000E4 +:10065000172100001301019BB72011009B8030235C +:100660002330110003370100B72311009B8333238C +:10067000631677141302120093022000E31A52FC4F +:10068000930130011302000017210000130181972C +:10069000B71001309B80302213000000233411007A +:1006A00003378100B71301309B833322631877101F +:1006B0001302120093022000E31852FC9301400140 +:1006C00013020000172100001301C193B71000337B +:1006D0009B8020121300000013000000233811003B +:1006E00003370101B71300339B8323126318770C80 +:1006F0001302120093022000E31652FC93015001F2 +:1007000013020000172100001301C18F1300000025 +:10071000B70030239B802011233C11000337810157 +:10072000B70330239B832311631A77081302120047 +:1007300093022000E31852FC9301600113020000B1 +:10074000172100001301018C13000000B7003322B1 +:100750009B801001130000002330110203370102B7 +:10076000B70333229B831301631A77041302120029 +:1007700093022000E31652FC930170011302000063 +:10078000172100001301018813000000130000006E +:10079000B73023129B8010002334110203378102EB +:1007A000B73323129B831300631A770013021200DE +:1007B00093022000E31652FC631030020F00F00F8A +:1007C000638001009391110093E111009308D0051B +:1007D00013850100730000000F00F00F930110005B +:1007E0009308D0051305000073000000731000C0CB +:0C07F000000000000000000000000000FD +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:10200000EFBEADDEEFBEADDEEFBEADDEEFBEADDEF0 +:10201000EFBEADDEEFBEADDEEFBEADDEEFBEADDEE0 +:10202000EFBEADDEEFBEADDEEFBEADDEEFBEADDED0 +:10203000EFBEADDEEFBEADDEEFBEADDEEFBEADDEC0 +:10204000EFBEADDEEFBEADDEEFBEADDEEFBEADDEB0 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-sh.hex b/tests/riscv/isa64/rv64ui-p-sh.hex new file mode 100644 index 00000000..cc46d23f --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-sh.hex @@ -0,0 +1,110 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F17300203097200000938080E8C1 +:100180001301A00A23902000039700009303A00A04 +:1001900093012000631E774497200000938080E63F +:1001A00037B1FFFF1B0101A023912000039720001E +:1001B000B7B3FFFF9B8303A093013000631A77421C +:1001C00097200000938000E43711EFBE1B0101AAC5 +:1001D0002392200003A74000B713EFBE9B8303AA1E +:1001E000930140006316774097200000938080E1E0 +:1001F00037A1FFFF1B01A10023932000039760009C +:10020000B7A3FFFF9B83A300930150006312773EC7 +:10021000972000009380E0DF1301A00A239D20FEB9 +:100220000397A0FF9303A00A930160006312773C39 +:10023000972000009380E0DD37B1FFFF1B0101A094 +:10024000239E20FE0397C0FFB7B3FFFF9B8303A04D +:1002500093017000631E773897200000938060DB65 +:10026000371100001B0101AA239F20FE0397E0FF26 +:10027000B71300009B8303AA93018000631A7736AB +:10028000972000009380E0D837A1FFFF1B01A10059 +:100290002390200003970000B7A3FFFF9B83A300D8 +:1002A000930190006316773497200000938080D6E6 +:1002B000375134121B018167138200FE2310220282 +:1002C00083920000B75300009B8383679301A000D3 +:1002D00063907232972000009380C0D337310000C2 +:1002E0001B0181099380B0FFA39320001722000017 +:1002F000130262D283120200B73300009B8383098A +:100300009301B0006396722E9301C00013020000A7 +:10031000B7D0FFFF9B80D0CD17210000130181CE05 +:100320002310110003170100B7D3FFFF9B83D3CD28 +:100330006310772C1302120093022000E31A52FC80 +:100340009301D00013020000B7C0FFFF9B80D0CC08 +:1003500017210000130101CB13000000231111002D +:1003600003172100B7C3FFFF9B83D3CC6312772809 +:100370001302120093022000E31852FC9301E000E4 +:1003800013020000B7C0FFFF9B80C0BC1721000014 +:10039000130141C7130000001300000023121100D5 +:1003A00003174100B7C3FFFF9B83C3BC63127724CD +:1003B0001302120093022000E31652FC9301F00096 +:1003C00013020000B7B0FFFF9B80C0BB130000000A +:1003D00017210000130101C323131100031761004B +:1003E000B7B3FFFF9B83C3BB6314772013021200D4 +:1003F00093022000E31852FC930100011302000055 +:10040000B7B0FFFF9B80B0AB1300000017210000C6 +:10041000130141BF130000002314110003178100D2 +:10042000B7B3FFFF9B83B3AB6314771C13021200B7 +:1004300093022000E31652FC930110011302000006 +:10044000B7E0FFFF9B80B0AA13000000130000007C +:1004500017210000130101BB231511000317A10090 +:10046000B7E3FFFF9B83B3AA63147718130212004C +:1004700093022000E31652FC9301200113020000B6 +:1004800017210000130101B8B72000009B80302322 +:100490002310110003170100B72300009B833323AF +:1004A000631877141302120093022000E31A52FC1F +:1004B000930130011302000017210000130181B4E1 +:1004C000B71000009B8030221300000023111100A0 +:1004D00003172100B71300009B833322631A7710A0 +:1004E0001302120093022000E31852FC9301400112 +:1004F00013020000172100001301C1B0B710000063 +:100500009B80201213000000130000002312110032 +:1005100003174100B71300009B832312631A770C63 +:100520001302120093022000E31652FC93015001C3 +:1005300013020000172100001301C1AC13000000DA +:10054000930020112313110003176100930320115E +:100550006310770A1302120093022000E31C52FC7E +:10056000930160011302000017210000130181A90B +:100570001300000093001001130000002314110069 +:10058000031781009303100163147706130212000E +:1005900093022000E31A52FC930170011302000041 +:1005A00017210000130101A6130000001300000032 +:1005B000B73000009B801000231511000317A10025 +:1005C000B73300009B8313006314770213021200F9 +:1005D00093022000E31652FC37C500001B05F5EE20 +:1005E00097250000938505A22393A5006310300290 +:1005F0000F00F00F638001009391110093E111004F +:100600009308D00513850100730000000F00F00F60 +:10061000930110009308D00513050000730000003B +:10062000731000C000000000000000000000000087 +:0C063000000000000000000000000000BE +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:10200000EFBEEFBEEFBEEFBEEFBEEFBEEFBEEFBE68 +:10201000EFBEEFBE00000000000000000000000066 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-simple.hex b/tests/riscv/isa64/rv64ui-p-simple.hex new file mode 100644 index 00000000..0839fdba --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-simple.hex @@ -0,0 +1,36 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F1730020300F00F00F9301100041 +:100180009308D0051305000073000000731000C031 +:10019000000000000000000000000000000000005F +:1001A000000000000000000000000000000000004F +:0C01B00000000000000000000000000043 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-sll.hex b/tests/riscv/isa64/rv64ui-p-sll.hex new file mode 100644 index 00000000..ff5c32af --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-sll.hex @@ -0,0 +1,132 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F17300203093001000130100003C +:10018000339720009303100093012000631C775ED7 +:1001900093001000130110003397200093032000F8 +:1001A000930130006310775E93001000130170001C +:1001B0003397200093030008930140006314775C99 +:1001C000930010001301E00033972000B7430000B4 +:1001D000930150006318775A930010001301F00147 +:1001E000339720009B0310009393F3019301600069 +:1001F000631A77589300F0FF130100003397200033 +:100200009303F0FF93017000631E77569300F0FF95 +:1002100013011000339720009303E0FF9301800047 +:10022000631277569300F0FF13017000339720009C +:10023000930300F893019000631677549300F0FF46 +:100240001301E00033972000B7C3FFFF9301A00024 +:10025000631A77529300F0FF1301F00133972000E7 +:10026000B70300809301B000631E7750B7202121AF +:100270009B8010121301000033972000B723212127 +:100280009B8313129301C000631E774EB720212178 +:100290009B8010121301100033972000B743424295 +:1002A0009B8323249301D000631E774CB720212128 +:1002B0009B8010121301700033972000B7130901BF +:1002C0009B8393909393C300938303089301E0006F +:1002D000631A774AB72021219B8010121301E00096 +:1002E00033972000B72321219B8313129393E300BC +:1002F0009301F00063187748B72021219B801012EA +:100300001301F00133972000B72321219B8313129F +:100310009393F3019301000163167746B7202121DF +:100320009B801012130100FC33972000B72321217A +:100330009B8313129301100163167744B720212188 +:100340009B801012130110FC33972000B7434242E8 +:100350009B8323249301200163167742B720212138 +:100360009B801012130170FC33972000B713090112 +:100370009B8393909393C30093830308930130016D +:1003800063127740B72021219B8010121301E0FCFB +:1003900033972000B72321219B8313129393E3000B +:1003A000930140016310773EB72021219B801012FA +:1003B0001301F0FF339720009B03F0FF9393F303A7 +:1003C000930150016310773C930010001301F00378 +:1003D000339720009B03F0FF9393F30393012003D3 +:1003E0006312773A9300F0FF1301700233972000F5 +:1003F0009B03F0FF939373029301300363147738E8 +:10040000B72021219B8010121301B00233972000E6 +:10041000B72301009B8313129393B302930140030C +:10042000631277369300100013017000B390200020 +:1004300093030008930160016396703493001000E9 +:100440001301E00033912000B743000093017001D5 +:10045000631A713293003000B3901000930380014F +:10046000930180016390703213020000930010002A +:1004700013017000339720001303070013021200CA +:1004800093022000E31452FE9303000893019001AD +:10049000631A732E13020000930010001301E00092 +:1004A000339720001300000013030700130212000B +:1004B00093022000E31252FEB74300009301A00113 +:1004C0006312732C13020000930010001301F0015B +:1004D00033972000130000001300000013030700EF +:1004E0001302120093022000E31052FE9B0310003F +:1004F0009393F3019301B001631673281302000074 +:1005000093001000130170003397200013021200B3 +:1005100093022000E31652FE930300089301C001EA +:100520006312772613020000930010001301E0000D +:1005300013000000339720001302120093022000E2 +:10054000E31452FEB74300009301D001631C7722ED +:1005500013020000930010001301F00113000000CB +:1005600013000000339720001302120093022000B2 +:10057000E31252FE9B0310009393F3019301E001F9 +:100580006312772013020000930010001300000094 +:100590001301700033972000130212009302200011 +:1005A000E31452FE930300089301F001631C771CCF +:1005B0001302000093001000130000001301E0007C +:1005C0001300000033972000130212009302200052 +:1005D000E31252FEB7430000930100026314771A3E +:1005E000130200009300100013000000130000002D +:1005F0001301F00133972000130212009302200030 +:10060000E31252FE9B0310009393F3019301100237 +:10061000631A771613020000130170009300100094 +:10062000339720001302120093022000E31652FEBB +:10063000930300089301200263167714130200004D +:100640001301E00093001000130000003397200016 +:100650001302120093022000E31452FEB74300007D +:100660009301300263107712130200001301F001AE +:1006700093001000130000001300000033972000C7 +:100680001302120093022000E31252FE9B0310009B +:100690009393F301930140026316770E1302000057 +:1006A0001301700013000000930010003397200026 +:1006B0001302120093022000E31452FE9303000879 +:1006C000930150026310770C130200001301E00045 +:1006D0001300000093001000130000003397200067 +:1006E0001302120093022000E31252FEB7430000EF +:1006F0009301600263187708130200001301F001F0 +:100700001300000013000000930010003397200036 +:100710001302120093022000E31252FE9B0310000A +:100720009393F30193017002631E77049300F0002A +:1007300033111000930300009301800263147104CD +:100740009300000233910000930300029301900292 +:10075000631A7102B3100000930300009301A0021A +:100760006392700293000040371100001B0101806A +:1007700033902000930300009301B00263147000D3 +:10078000631030020F00F00F63800100939111009D +:1007900093E111009308D005138501007300000058 +:1007A0000F00F00F930110009308D005130500000F +:0C07B00073000000731000C00000000087 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-slli.hex b/tests/riscv/isa64/rv64ui-p-slli.hex new file mode 100644 index 00000000..64e2772d --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-slli.hex @@ -0,0 +1,84 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F1730020309300100013970000A6 +:1001800093031000930120006314772E9300100056 +:10019000139710009303200093013000631A772C0B +:1001A0009300100013977000930300089301400020 +:1001B0006310772C930010001397E000B743000002 +:1001C000930150006316772A930010001397F001F3 +:1001D0009B0310009393F30193016000631A772847 +:1001E0009300F0FF139700009303F0FF930170005A +:1001F000631077289300F0FF139710009303E0FF3C +:1002000093018000631677269300F0FF1397700028 +:10021000930300F893019000631C77249300F0FF90 +:100220001397E000B7C3FFFF9301A0006312772488 +:100230009300F0FF1397F001B70300809301B00023 +:1002400063187722B72021219B801012139700009A +:10025000B72321219B8313129301C000631A7720D7 +:10026000B72021219B80101213971000B743424200 +:100270009B8323249301D000631C771EB720212188 +:100280009B80101213977000B71309019B83939002 +:100290009393C300938303089301E000631A771CD0 +:1002A000B72021219B8010121397E000B723212152 +:1002B0009B8313129393E3009301F000631A771A60 +:1002C000B72021219B8010121397F001B723212121 +:1002D0009B8313129393F30193010001631A771820 +:1002E000930010001397F0039B03F0FF9393F30325 +:1002F00093012003631E77169300F0FF139770029B +:100300009B03F0FF939373029301300363127716FC +:10031000B72021219B8010121397B002B723010050 +:100320009B8313129393B3029301400363127714D8 +:100330009300100093907000930300089301100144 +:10034000639870121302000093001000139770005E +:10035000130307001302120093022000E31652FE5B +:10036000930300089301200163147310130200002B +:10037000930010001397E000130000001303070020 +:100380001302120093022000E31452FEB743000050 +:1003900093013001631E730C1302000093001000E0 +:1003A0001397F0011300000013000000130307006F +:1003B0001302120093022000E31252FE9B0310006E +:1003C0009393F301930140016314730A1302000035 +:1003D0009300100013977000130212009302200084 +:1003E000E31852FE9303000893015001631277084B +:1003F0001302000093001000130000001397E000A8 +:100400001302120093022000E31652FEB7430000CD +:1004100093016001631E7704130200009300100033 +:1004200013000000130000001397F00113021200E4 +:1004300093022000E31452FE9B0310009393F301F8 +:1004400093017001631677029310F001930300008B +:1004500093018001639E700093001002139040018D +:100460009303000093019001631470006310300245 +:100470000F00F00F638001009391110093E11100D0 +:100480009308D00513850100730000000F00F00FE2 +:10049000930110009308D0051305000073000000BD +:1004A000731000C000000000000000000000000009 +:0C04B00000000000000000000000000040 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-slliw.hex b/tests/riscv/isa64/rv64ui-p-slliw.hex new file mode 100644 index 00000000..f4abc05a --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-slliw.hex @@ -0,0 +1,88 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F173002030930010001B9700009E +:100180009303100093012000631277309300100056 +:100190001B97100093032000930130006318772E03 +:1001A000930010001B977000930300089301400018 +:1001B000631E772C930010001B97E000B7430000EC +:1001C000930150006314772C930010001B97F001EB +:1001D000B703008093016000631A772A9300F0FF51 +:1001E0001B9700009303F0FF930170006310772AC0 +:1001F0009300F0FF1B9710009303E0FF9301800032 +:10020000631677289300F0FF1B977000930300F8A4 +:1002100093019000631C77269300F0FF1B97E0008A +:10022000B7C3FFFF9301A000631277269300F0FF8E +:100230001B97F001B70300809301B0006318772487 +:10024000B72021219B8010121B970000B72321218A +:100250009B8313129301C000631A7722B7202121D8 +:100260009B8010121B971000B74342429B832324AC +:100270009301D000631C7720B72021219B801012AE +:100280001B977000B79390909B8303089301E00045 +:10029000631E771EB72021219B8010121B97E00060 +:1002A000B74348489301F0006312771EB72021211D +:1002B0009B8010121B97F001B7030080930100018F +:1002C0006316771CB720F1FF9B8050349390C000D9 +:1002D000938080671B970000B75334129B8383671A +:1002E0009301C0026314771AB720F1FF9B8050344A +:1002F0009390C000938080671B974000B7634523AD +:100300009B8303789301D00263127718B72009000A +:100310009B8050349390C000938080671B970000AF +:10032000B75334929B8383679301E002631077167F +:10033000B79009009B8050349390C00093808067F1 +:100340001B974000B76345939B8303789301F002AA +:10035000631E7712930010009B90700093030008B7 +:1003600093011001639470121302000093001000B7 +:100370001B97700013030700130212009302200062 +:10038000E31652FE930300089301200163107310DB +:1003900013020000930010001B97E0001300000000 +:1003A000130307001302120093022000E31452FE0D +:1003B000B743000093013001631A730C130200006D +:1003C000930010001B97F0011300000013000000C1 +:1003D000130307001302120093022000E31252FEDF +:1003E000B7030080930140016312730A13020000F7 +:1003F000930010001B97700013021200930220005C +:10040000E31852FE9303000893015001631077082C +:100410001302000093001000130000001B97E0007F +:100420001302120093022000E31652FEB7430000AD +:1004300093016001631C7704130200009300100015 +:1004400013000000130000001B97F00113021200BC +:1004500093022000E31452FEB70300809301700161 +:10046000631677029B10F001930300009301800153 +:10047000639E70009300F0011B90C0019303000085 +:100480009301900163147000631030020F00F00FAD +:10049000638001009391110093E111009308D0054E +:1004A00013850100730000000F00F00F930110008E +:1004B0009308D0051305000073000000731000C0FE +:1004C000000000000000000000000000000000002C +:1004D000000000000000000000000000000000001C +:1004E000000000000000000000000000000000000C +:0C04F00000000000000000000000000000 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-sllw.hex b/tests/riscv/isa64/rv64ui-p-sllw.hex new file mode 100644 index 00000000..0703c561 --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-sllw.hex @@ -0,0 +1,132 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F17300203093001000130100003C +:100180003B9720009303100093012000631C775ECF +:1001900093001000130110003B97200093032000F0 +:1001A000930130006310775E93001000130170001C +:1001B0003B97200093030008930140006314775C91 +:1001C000930010001301E0003B972000B7430000AC +:1001D000930150006318775A930010001301F00147 +:1001E0003B972000B703008093016000631C7758A1 +:1001F0009300F0FF130100003B9720009303F0FFF2 +:1002000093017000631077589300F0FF1301100002 +:100210003B9720009303E0FF93018000631477561F +:100220009300F0FF130170003B972000930300F848 +:1002300093019000631877549300F0FF1301E000DE +:100240003B972000B7C3FFFF9301A000631C7752C8 +:100250009300F0FF1301F0013B972000B7030080EB +:100260009301B00063107752B72021219B801012B8 +:10027000130100003B972000B72321219B83131219 +:100280009301C00063107750B72021219B8010128A +:10029000130110003B972000B74342429B83232465 +:1002A0009301D0006310774EB72021219B8010125C +:1002B000130170003B972000B79390909B83030835 +:1002C0009301E0006310774CB72021219B8010122E +:1002D0001301E0003B972000B74348489301F0002A +:1002E0006312774AB72021219B8010121301F0017D +:1002F0003B972000B7030080930100016314774807 +:10030000B72021219B801012130100FE3B97200093 +:10031000B72321219B8313129301100163147746A5 +:10032000B72021219B801012130110FE3B97200063 +:10033000B74342429B8323249301200163147744F3 +:10034000B72021219B801012130170FE3B972000E3 +:10035000B79390909B830308930130016314774215 +:10036000B72021219B8010121301E0FE3B97200053 +:10037000B74348489301400163167740B7202121D5 +:100380009B8010121301F0FF3B972000B703008001 +:10039000930150016318773EB720F1FF9B805034E2 +:1003A0009390C00093808067130100003B9720006A +:1003B000B75334129B8383679301C0026314773C65 +:1003C000B720F1FF9B8050349390C00093808067EA +:1003D000130140003B972000B76345239B830378BC +:1003E0009301D0026310773AB72009009B80503404 +:1003F0009390C00093808067130100003B9720001A +:10040000B75334929B8383679301E002631C773672 +:10041000B79009009B8050349390C0009380806710 +:10042000130140003B972000B76345939B830378FB +:100430009301F002631877349300100013017000E9 +:10044000BB9020009303000893016001639C70320D +:10045000930010001301E0003B912000B74300001F +:10046000930170016310713293003000BB90100053 +:1004700093038001930180016396703013020000A2 +:1004800093001000130170003B9720001303070036 +:100490001302120093022000E31452FE930300089B +:1004A000930190016310732E13020000930010005B +:1004B0001301E0003B972000130000001303070026 +:1004C0001302120093022000E31252FEB743000011 +:1004D0009301A0016318732A130200009300100017 +:1004E0001301F0013B9720001300000013000000EF +:1004F000130307001302120093022000E31052FEC0 +:10050000B70300809301B001631E7326130200003D +:1005100093001000130170003B972000130212009B +:1005200093022000E31652FE930300089301C001DA +:10053000631A772413020000930010001301E000F7 +:10054000130000003B9720001302120093022000CA +:10055000E31452FEB74300009301D00163147722E5 +:1005600013020000930010001301F00113000000BB +:10057000130000003B97200013021200930220009A +:10058000E31252FEB70300809301E001631C771E63 +:10059000130200009300100013000000130170000C +:1005A0003B9720001302120093022000E31452FE36 +:1005B000930300089301F0016316771C13020000F7 +:1005C00093001000130000001301E000130000006E +:1005D0003B9720001302120093022000E31252FE08 +:1005E000B743000093010002631E77181302000056 +:1005F0009300100013000000130000001301F0012D +:100600003B9720001302120093022000E31252FED7 +:10061000B7030080930110026316771613020000DF +:1006200013017000930010003B972000130212008A +:1006300093022000E31652FE930300089301200268 +:1006400063127714130200001301E00093001000FE +:10065000130000003B9720001302120093022000B9 +:10066000E31452FEB743000093013002631C77107D +:10067000130200001301F0019300100013000000AA +:10068000130000003B972000130212009302200089 +:10069000E31252FEB7030080930140026314770E09 +:1006A00013020000130170001300000093001000FB +:1006B0003B9720001302120093022000E31452FE25 +:1006C0009303000893015002631E770A130200008F +:1006D0001301E0001300000093001000130000005D +:1006E0003B9720001302120093022000E31252FEF7 +:1006F000B7430000930160026316770813020000FD +:100700001301F0011300000013000000930010001B +:100710003B9720001302120093022000E31252FEC6 +:10072000B703008093017002631E77049300F0000A +:100730003B111000930300009301800263147104C5 +:10074000930000023B91000093030002930190028A +:10075000631A7102BB100000930300009301A00212 +:100760006392700293000040371100001B0101806A +:100770003B902000930300009301B00263147000CB +:10078000631030020F00F00F63800100939111009D +:1007900093E111009308D005138501007300000058 +:1007A0000F00F00F930110009308D005130500000F +:0C07B00073000000731000C00000000087 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-slt.hex b/tests/riscv/isa64/rv64ui-p-slt.hex new file mode 100644 index 00000000..da77f17c --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-slt.hex @@ -0,0 +1,112 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F17300203093000000130100004C +:1001800033A720009303000093012000631A774AED +:10019000930010001301100033A720009303000008 +:1001A00093013000631E7748930030001301700004 +:1001B00033A7200093031000930140006312774897 +:1001C000930070001301300033A720009303000058 +:1001D0009301500063167746930000003781FFFFBC +:1001E00033A720009303000093016000631A774453 +:1001F000B70000801301000033A720009303100014 +:1002000093017000631E7742B70000803781FFFFC3 +:1002100033A72000930310009301800063127742FC +:1002200093000000378100001B01F1FF33A720007D +:10023000930310009301900063147740B70000808F +:100240009B80F0FF1301000033A720009303000000 +:100250009301A0006316773EB70000809B80F0FFFB +:10026000378100001B01F1FF33A72000930300003A +:100270009301B0006316773CB7000080378100001F +:100280001B01F1FF33A72000930310009301C0006E +:100290006318773AB70000809B80F0FF3781FFFF3B +:1002A00033A72000930300009301D000631A77382E +:1002B000930000001301F0FF33A720009303000018 +:1002C0009301E000631E77369300F0FF13011000E6 +:1002D00033A72000930310009301F00063127736D8 +:1002E0009300F0FF1301F0FF33A7200093030000F9 +:1002F00093010001631677349300E0001301D000EE +:10030000B3A020009303000093011001639A7032A0 +:100310009300B0001301D00033A12000930310001C +:1003200093012001631E71309300D000B3A0100030 +:1003300093030000930130016394703013020000B6 +:100340009300B0001301D00033A72000130307006F +:100350001302120093022000E31452FE93031000D4 +:1003600093014001631E732C130200009300E00010 +:100370001301D00033A7200013000000130307006F +:100380001302120093022000E31252FE93030000B6 +:10039000930150016316732A130200009300C000FA +:1003A0001301D00033A72000130000001300000049 +:1003B000130307001302120093022000E31052FE01 +:1003C0009303100093016001631C73261302000065 +:1003D0009300E0001301D00033A7200013021200A5 +:1003E00093022000E31652FE930300009301700174 +:1003F00063187724130200009300B0001301D000AB +:100400001300000033A72000130212009302200003 +:10041000E31452FE930310009301800163127722CC +:10042000130200009300F0001301D000130000003D +:100430001300000033A720001302120093022000D3 +:10044000E31252FE9303000093019001631A771E9A +:10045000130200009300A000130000001301D0005D +:1004600033A720001302120093022000E31452FE6F +:10047000930310009301A0016314771C1302000082 +:1004800093000001130000001301D00013000000CE +:1004900033A720001302120093022000E31252FE41 +:1004A000930300009301B001631C7718130200004E +:1004B0009300900013000000130000001301D0000F +:1004C00033A720001302120093022000E31252FE11 +:1004D000930310009301C001631477161302000008 +:1004E0001301D0009300100133A720001302120063 +:1004F00093022000E31652FE930300009301D00103 +:1005000063107714130200001301D00093008000E1 +:100510001300000033A720001302120093022000F2 +:10052000E31452FE930310009301E001631A771065 +:10053000130200001301D0009300200113000000FB +:100540001300000033A720001302120093022000C2 +:10055000E31252FE930300009301F0016312770E41 +:10056000130200001301D00013000000930070007C +:1005700033A720001302120093022000E31452FE5E +:100580009303100093010002631C770A130200001A +:100590001301D0001300000093003001130000008D +:1005A00033A720001302120093022000E31252FE30 +:1005B00093030000930110026314770813020000F4 +:1005C0001301D0001300000013000000930060002E +:1005D00033A720001302120093022000E31252FE00 +:1005E0009303100093012002631C77049300F0FF33 +:1005F0003321100093030000930130026312710451 +:100600009300F0FF33A10000930310009301400218 +:1006100063187102B320000093030000930150029D +:1006200063907002930000011301E00133A02000E9 +:1006300093030000930160026314700063103002A2 +:100640000F00F00F638001009391110093E11100FE +:100650009308D00513850100730000000F00F00F10 +:10066000930110009308D0051305000073000000EB +:0C067000731000C000000000000000003B +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-slti.hex b/tests/riscv/isa64/rv64ui-p-slti.hex new file mode 100644 index 00000000..877b6b11 --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-slti.hex @@ -0,0 +1,76 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F1730020309300000013A70000A6 +:100180009303000093012000631277269300100070 +:1001900013A7100093030000930130006318772425 +:1001A0009300300013A770009303100093014000E8 +:1001B000631E77229300700013A7300093030000A2 +:1001C00093015000631477229300000013A700806E +:1001D0009303000093016000631A7720B70000804A +:1001E00013A70000930310009301700063107720A1 +:1001F000B700008013A700809303100093018000D4 +:100200006316771E9300000013A7F07F930310007E +:1002100093019000631C771CB70000809B80F0FF67 +:1002200013A70000930300009301A0006310771C44 +:10023000B70000809B80F0FF13A7F07F93030000BE +:100240009301B0006314771AB700008013A7F07F02 +:10025000930310009301C000631A7718B700008061 +:100260009B80F0FF13A70080930300009301D00050 +:10027000631E77169300000013A7F0FF930300009E +:100280009301E000631477169300F0FF13A71000AA +:10029000930310009301F000631A77149300F0FFAA +:1002A00013A7F0FF9303000093010001631077147C +:1002B0009300B00093A0D0009303100093011001AD +:1002C00063967012130200009300F00013A7A000C1 +:1002D000130307001302120093022000E31652FEDC +:1002E00093030000930120016312731013020000B6 +:1002F0009300A00013A700011300000013030700E0 +:100300001302120093022000E31452FE9303100024 +:1003100093013001631C730C130200009300000171 +:1003200013A7900013000000130000001303070040 +:100330001302120093022000E31252FE9303000006 +:10034000930140016314730A130200009300B0008C +:1003500013A7F0001302120093022000E31852FECC +:1003600093031000930150016312770813020000F9 +:10037000930010011300000013A780001302120065 +:1003800093022000E31652FE9303000093016001E4 +:10039000631E7704130200009300C00013000000E6 +:1003A0001300000013A7E0001302120093022000C4 +:1003B000E31452FE93031000930170016318770257 +:1003C0009320F0FF9303000093018001639070027B +:1003D000B700FF009B80F00F13A0F0FF9303000015 +:1003E0009301900163147000631030020F00F00F4E +:1003F000638001009391110093E111009308D005EF +:1004000013850100730000000F00F00F930110002E +:100410009308D0051305000073000000731000C09E +:1004200000000000000000000000000000000000CC +:0C043000000000000000000000000000C0 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-sltiu.hex b/tests/riscv/isa64/rv64ui-p-sltiu.hex new file mode 100644 index 00000000..3c2ed7f0 --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-sltiu.hex @@ -0,0 +1,76 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F1730020309300000013B7000096 +:100180009303000093012000631277269300100070 +:1001900013B7100093030000930130006318772415 +:1001A0009300300013B770009303100093014000D8 +:1001B000631E77229300700013B730009303000092 +:1001C00093015000631477229300000013B700805E +:1001D0009303100093016000631A7720B70000803A +:1001E00013B70000930300009301700063107720A1 +:1001F000B700008013B700809303100093018000C4 +:100200006316771E9300000013B7F07F930310006E +:1002100093019000631C771CB70000809B80F0FF67 +:1002200013B70000930300009301A0006310771C34 +:10023000B70000809B80F0FF13B7F07F93030000AE +:100240009301B0006314771AB700008013B7F07FF2 +:10025000930300009301C000631A7718B700008071 +:100260009B80F0FF13B70080930310009301D00030 +:10027000631E77169300000013B7F0FF930310007E +:100280009301E000631477169300F0FF13B710009A +:10029000930300009301F000631A77149300F0FFBA +:1002A00013B7F0FF9303000093010001631077146C +:1002B0009300B00093B0D00093031000930110019D +:1002C00063967012130200009300F00013B7A000B1 +:1002D000130307001302120093022000E31652FEDC +:1002E00093030000930120016312731013020000B6 +:1002F0009300A00013B700011300000013030700D0 +:100300001302120093022000E31452FE9303100024 +:1003100093013001631C730C130200009300000171 +:1003200013B7900013000000130000001303070030 +:100330001302120093022000E31252FE9303000006 +:10034000930140016314730A130200009300B0008C +:1003500013B7F0001302120093022000E31852FEBC +:1003600093031000930150016312770813020000F9 +:10037000930010011300000013B780001302120055 +:1003800093022000E31652FE9303000093016001E4 +:10039000631E7704130200009300C00013000000E6 +:1003A0001300000013B7E0001302120093022000B4 +:1003B000E31452FE93031000930170016318770257 +:1003C0009330F0FF9303100093018001639070025B +:1003D000B700FF009B80F00F13B0F0FF9303000005 +:1003E0009301900163147000631030020F00F00F4E +:1003F000638001009391110093E111009308D005EF +:1004000013850100730000000F00F00F930110002E +:100410009308D0051305000073000000731000C09E +:1004200000000000000000000000000000000000CC +:0C043000000000000000000000000000C0 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-sltu.hex b/tests/riscv/isa64/rv64ui-p-sltu.hex new file mode 100644 index 00000000..76785ef3 --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-sltu.hex @@ -0,0 +1,116 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F17300203093000000130100004C +:1001800033B720009303000093012000631C774ED7 +:10019000930010001301100033B7200093030000F8 +:1001A000930130006310774E93003000130170000C +:1001B00033B7200093031000930140006314774C81 +:1001C000930070001301300033B720009303000048 +:1001D000930150006318774A930000003701020032 +:1001E0001B01F1FF1311F10033B72000930310003E +:1001F00093016000631877489B0010009390F00112 +:100200001301000033B72000930300009301700036 +:10021000631A77469B0010009390F00137010200AB +:100220001B01F1FF1311F10033B7200093031000FD +:100230009301800063187744930000003781000029 +:100240001B01F1FF33B720009303100093019000CE +:10025000631A7742B70000809B80F0FF1301000013 +:1002600033B72000930300009301A000631C774084 +:10027000B70000809B80F0FF378100001B01F1FF79 +:1002800033B72000930300009301B000631C773E56 +:100290009B0010009390F001378100001B01F1FFDB +:1002A00033B72000930300009301C000631C773C28 +:1002B000B70000809B80F0FF370102001B01F1FFB7 +:1002C0001311F10033B72000930310009301D00005 +:1002D000631A773A930000001B011000131101020A +:1002E0001301F1FF33B72000930310009301E000E6 +:1002F000631A77389B001000939000029380F0FF00 +:100300001301100033B72000930300009301F000A5 +:10031000631A77369B001000939000029380F0FFE1 +:100320001B011000131101021301F1FF33B720006C +:100330009303000093010001631677349300E000FB +:100340001301D000B3B0200093030000930110010B +:10035000639A70329300B0001301D00033B12000D3 +:100360009303100093012001631E71309300D000AD +:10037000B3B0100093030000930130016394703018 +:10038000130200009300B0001301D00033B7200027 +:10039000130307001302120093022000E31452FE1D +:1003A0009303100093014001631E732C130200009D +:1003B0009300E0001301D00033B7200013000000C9 +:1003C000130307001302120093022000E31252FEEF +:1003D00093030000930150016316732A1302000077 +:1003E0009300C0001301D00033B7200013000000B9 +:1003F00013000000130307001302120093022000F1 +:10040000E31052FE9303100093016001631C7326F6 +:10041000130200009300E0001301D00033B7200066 +:100420001302120093022000E31652FE9303000011 +:100430009301700163187724130200009300B00049 +:100440001301D0001300000033B720001302120084 +:1004500093022000E31452FE9303100093018001E5 +:1004600063127722130200009300F0001301D00002 +:10047000130000001300000033B720001302120025 +:1004800093022000E31252FE9303000093019001B7 +:10049000631A771E130200009300A00013000000EF +:1004A0001301D00033B72000130212009302200082 +:1004B000E31452FE930310009301A0016314771C10 +:1004C0001302000093000001130000001301D0008C +:1004D0001300000033B72000130212009302200023 +:1004E000E31252FE930300009301B001631C7718DE +:1004F000130200009300900013000000130000009E +:100500001301D00033B72000130212009302200021 +:10051000E31252FE930310009301C0016314771697 +:10052000130200001301D0009300100133B7200024 +:100530001302120093022000E31652FE9303000000 +:100540009301D00163107714130200001301D0004F +:10055000930080001300000033B720001302120044 +:1005600093022000E31452FE930310009301E00174 +:10057000631A7710130200001301D00093002001CA +:10058000130000001300000033B720001302120014 +:1005900093022000E31252FE930300009301F00146 +:1005A0006312770E130200001301D0001300000045 +:1005B0009300700033B72000130212009302200052 +:1005C000E31452FE9303100093010002631C770AA8 +:1005D000130200001301D00013000000930030014B +:1005E0001300000033B72000130212009302200012 +:1005F000E31252FE93030000930110026314770884 +:10060000130200001301D0001300000013000000CB +:100610009300600033B72000130212009302200001 +:10062000E31252FE9303100093012002631C77042F +:100630009300F0FF33311000930310009301300258 +:10064000631271049300F0FF33B1000093030000C4 +:100650009301400263187102B3300000930300005D +:100660009301500263907002930000011301E001B6 +:1006700033B0200093030000930160026314700004 +:10068000631030020F00F00F63800100939111009E +:1006900093E111009308D005138501007300000059 +:1006A0000F00F00F930110009308D0051305000010 +:0C06B00073000000731000C00000000088 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-sra.hex b/tests/riscv/isa64/rv64ui-p-sra.hex new file mode 100644 index 00000000..093878c0 --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-sra.hex @@ -0,0 +1,128 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F173002030B700008013010000A8 +:1001800033D72040B70300809301200063147758D1 +:10019000B70000801301100033D72040B70300C020 +:1001A0009301300063187756B70000801301700088 +:1001B00033D72040B70300FF93014000631C7754FE +:1001C000B70000801301E00033D72040B703FEFFE3 +:1001D0009301500063107754B70000809B8010009B +:1001E0001301F00133D720409303F0FF9301600027 +:1001F00063127752B70000809B80F0FF130100006C +:1002000033D72040B70300809B83F3FF9301700036 +:1002100063127750B70000809B80F0FF130110003D +:1002200033D72040B70300409B83F3FF9301800046 +:100230006312774EB70000809B80F0FF13017000BF +:1002400033D72040B70300019B83F3FF9301900055 +:100250006312774CB70000809B80F0FF1301E00031 +:1002600033D72040B70302009B83F3FF9301A00024 +:100270006312774AB70000809B80F0FF1301F00102 +:1002800033D72040930300009301B00063147748F4 +:10029000B78081819B8010181301000033D7204064 +:1002A000B78381819B8313189301C0006314774641 +:1002B000B78081819B8010181301100033D7204034 +:1002C000B7C3C0C09B83030C9301D0006314774471 +:1002D000B78081819B8010181301700033D72040B4 +:1002E000B70303FF9B8333309301E000631477422D +:1002F000B78081819B8010181301E00033D7204024 +:10030000B703FEFF9B8363609301F00063147740A3 +:10031000B78081819B8010181301F00133D72040F2 +:100320009303F0FF930100016316773EB78081814C +:100330009B801018130100FC33D72040B7838181C4 +:100340009B831318930110016316773CB78081815A +:100350009B801018130110FC33D72040B7C3C0C0D6 +:100360009B83030C930120016316773AB780818148 +:100370009B801018130170FC33D72040B70303FF94 +:100380009B8333309301300163167738B7808181C6 +:100390009B8010181301E0FC33D72040B703FEFF09 +:1003A0009B8363609301400163167736B780818138 +:1003B0009B8010181301F0FF33D720409303F0FF08 +:1003C0009301500163187734B70000801301700067 +:1003D000B3D02040B70300FF93016001639C7032EB +:1003E000B70000801301E00033D12040B703FEFFC7 +:1003F000930170016310713293007000B3D010400C +:100400009303000093018001639670301302000093 +:10041000B70000801301700033D72040130307009A +:100420001302120093022000E31452FEB70300FFF0 +:10043000930190016310732E13020000B700008037 +:100440001301E00033D7204013000000130307001E +:100450001302120093022000E31252FEB703FEFFC4 +:100460009301A0016318732A13020000B7000080F3 +:100470001301F00133D720401300000013000000E7 +:10048000130307001302120093022000E31052FE30 +:100490009303F0FF9301B001631E73261302000063 +:1004A000B70000801301700033D720401302120000 +:1004B00093022000E31652FEB70300FF9301C00130 +:1004C000631A772413020000B70000801301E000D4 +:1004D0001300000033D720401302120093022000C3 +:1004E000E31452FEB703FEFF9301D0016314772299 +:1004F00013020000B70000801301F0011300000098 +:100500001300000033D72040130212009302200092 +:10051000E31252FE9303F0FF9301E001631C771E88 +:1005200013020000B70000801300000013017000E8 +:1005300033D720401302120093022000E31452FE2E +:10054000B70300FF9301F0016316771C130200004C +:10055000B7000080130000001301E000130000004A +:1005600033D720401302120093022000E31252FE00 +:10057000B703FEFF93010002631E77181302000009 +:10058000B700008013000000130000001301F00109 +:1005900033D720401302120093022000E31252FED0 +:1005A0009303F0FF93011002631677161302000005 +:1005B00013017000B700008033D7204013021200EF +:1005C00093022000E31652FEB70300FF93012002BE +:1005D00063127714130200001301E000B7000080DB +:1005E0001300000033D720401302120093022000B2 +:1005F000E31452FEB703FEFF93013002631C771031 +:10060000130200001301F001B70000801300000086 +:100610001300000033D72040130212009302200081 +:10062000E31252FE9303F0FF930140026314770E2E +:10063000130200001301700013000000B7000080D7 +:1006400033D720401302120093022000E31452FE1D +:10065000B70300FF93015002631E770A13020000E4 +:100660001301E00013000000B70000801300000039 +:1006700033D720401302120093022000E31252FEEF +:10068000B703FEFF930160026316770813020000B0 +:100690001301F0011300000013000000B7000080F8 +:1006A00033D720401302120093022000E31252FEBF +:1006B0009303F0FF93017002631E77049300F00030 +:1006C00033511040930300009301800263147104BE +:1006D0009300000233D10040930300029301900283 +:1006E000631A7102B3500040930300009301A0020B +:1006F0006392700293000040371100001B010180DB +:1007000033D02040930300009301B00263147000C3 +:10071000631030020F00F00F63800100939111000D +:1007200093E111009308D0051385010073000000C8 +:100730000F00F00F930110009308D005130500007F +:1007400073000000731000C00000000000000000F3 +:100750000000000000000000000000000000000099 +:100760000000000000000000000000000000000089 +:0C0770000000000000000000000000007D +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-srai.hex b/tests/riscv/isa64/rv64ui-p-srai.hex new file mode 100644 index 00000000..428ef673 --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-srai.hex @@ -0,0 +1,80 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F1730020309B00F0FF93907002D4 +:1001800013D700409B03F0FF939373029301200069 +:100190006314772AB700008013D71040B70300C05C +:1001A00093013000631A7728B700008013D770409E +:1001B000B70300FF9301400063107728B700008069 +:1001C00013D7E040B703FEFF930150006316772674 +:1001D000B70000809B80100013D7F0419303F0FF1D +:1001E00093016000631A7724B70000809B80F0FFC2 +:1001F00013D70040B70300809B83F3FF9301700087 +:10020000631C7722B70000809B80F0FF13D710405B +:10021000B70300409B83F3FF93018000631E7720A8 +:10022000B70000809B80F0FF13D77040B703000138 +:100230009B83F3FF9301900063107720B700008049 +:100240009B80F0FF13D7E040B70302009B83F3FFCE +:100250009301A0006312771EB70000809B80F0FF1F +:1002600013D7F041930300009301B0006316771C8D +:10027000B78081819B80101813D70040B78381819C +:100280009B8313189301C0006318771AB78081818C +:100290009B80101813D71040B7C3C0C09B83030CBA +:1002A0009301D000631A7718B78081819B80101862 +:1002B00013D77040B70303FF9B8333309301E000F3 +:1002C000631C7716B78081819B80101813D7E0409C +:1002D000B703FEFF9B8363609301F000631E7714F6 +:1002E000B78081819B80101813D7F0419303F0FFF2 +:1002F0009301000163127714B700008093D070401F +:10030000B70300FF930110016398701213020000FD +:10031000B700008013D770401303070013021200C8 +:1003200093022000E31652FEB70300FF9301200161 +:100330006314731013020000B700008013D7E0406D +:1003400013000000130307001302120093022000A1 +:10035000E31452FEB703FEFF93013001631E730CDA +:1003600013020000B70000809B80100013D7F041FB +:100370001300000013000000130307001302120013 +:1003800093022000E31052FE9303F0FF930140011B +:100390006314730A13020000B700008013D7704083 +:1003A0001302120093022000E31852FEB70300FF6D +:1003B000930150016312770813020000B700008018 +:1003C0001300000013D7E040130212009302200034 +:1003D000E31652FEB703FEFF93016001631E77042C +:1003E00013020000B70000809B8010001300000083 +:1003F0001300000013D7F0411302120093022000F3 +:10040000E31252FE9303F0FF93017001631677022B +:10041000935040409303000093018001639E70005D +:100420009300100213D0A0409303000093019001A9 +:1004300063147000631030020F00F00F638001003E +:100440009391110093E111009308D00513850100E9 +:10045000730000000F00F00F930110009308D00507 +:100460001305000073000000731000C000000000BE +:0C04700000000000000000000000000080 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-sraiw.hex b/tests/riscv/isa64/rv64ui-p-sraiw.hex new file mode 100644 index 00000000..257d8a16 --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-sraiw.hex @@ -0,0 +1,92 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F173002030B70000801BD700408A +:10018000B70300809301200063147736B700008026 +:100190001BD71040B70300C093013000631A7734B7 +:1001A000B70000801BD77040B70300FF93014000E9 +:1001B00063107734B70000801BD7E040B703FEFF21 +:1001C0009301500063167732B70000809B801000C7 +:1001D0001BD7F0419303F0FF93016000631A77305F +:1001E000B70000809B80F0FF1BD70040B703008062 +:1001F0009B83F3FF93017000631C772EB700008090 +:100200009B80F0FF1BD71040B70300409B83F3FF98 +:1002100093018000631E772CB70000809B80F0FF65 +:100220001BD77040B70300019B83F3FF930190003D +:100230006310772CB70000809B80F0FF1BD7E04055 +:10024000B70302009B83F3FF9301A0006312772A98 +:10025000B70000809B80F0FF1BD7F04193030000A4 +:100260009301B00063167728B78081819B801018B6 +:100270001BD70040B78381819B8313189301C00073 +:1002800063187726B78081819B8010181BD7104098 +:10029000B7C3C0C09B83030C9301D000631A7724BB +:1002A000B78081819B8010181BD77040B70303FF74 +:1002B0009B8333309301E000631C7722B7808181F8 +:1002C0009B8010181BD7E040B703FEFF9B83636041 +:1002D0009301F000631E7720B78081819B80101806 +:1002E0001BD7F0419303F0FF9301000163127720C5 +:1002F000B720F1FF9B8050349390C00093808067BB +:100300001BD70040B75334129B8383679301C0020D +:100310006310771EB720F1FF9B8050349390C0008C +:10032000938080671BD74040B74323019B8373565C +:100330009301D002631E771AB72009009B805034C6 +:100340009390C000938080671BD70040B7533492CE +:100350009B8383679301E002631C7718B720090031 +:100360009B8050349390C000938080671BD740409F +:10037000B74323F99B8373569301F002631A7716F0 +:10038000B70000809BD07040B70300FF93011001BD +:100390006390701613020000B70000801BD77040F6 +:1003A000130307001302120093022000E31652FE0B +:1003B000B70300FF93012001631C731213020000B6 +:1003C000B70000801BD7E0401300000013030700B4 +:1003D0001302120093022000E31452FEB703FEFF43 +:1003E000930130016316731013020000B700008000 +:1003F0009B8010001BD7F041130000001300000089 +:10040000130307001302120093022000E31052FEB0 +:100410009303F0FF93014001631C730C130200006F +:10042000B70000801BD77040130212009302200017 +:10043000E31852FEB70300FF93015001631A770AD5 +:1004400013020000B7000080130000001BD7E0403B +:100450001302120093022000E31652FEB703FEFFC0 +:10046000930160016316770813020000B700008053 +:100470009B80100013000000130000001BD7F04108 +:100480001302120093022000E31252FE9303F0FFC6 +:1004900093017001631E77049B50F04193030000A9 +:1004A00093018001639670049300F0011BD0C0415A +:1004B0009303000093019001631C70029B00700085 +:1004C000939050031BD7C041930300009301A001F8 +:1004D000631077029B00F0009390C0011BD740404F +:1004E000B70300FF9301B00163147700631030027B +:1004F0000F00F00F638001009391110093E1110050 +:100500009308D00513850100730000000F00F00F61 +:10051000930110009308D00513050000730000003C +:10052000731000C000000000000000000000000088 +:0C053000000000000000000000000000BF +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-sraw.hex b/tests/riscv/isa64/rv64ui-p-sraw.hex new file mode 100644 index 00000000..234bc98f --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-sraw.hex @@ -0,0 +1,136 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F173002030B700008013010000A8 +:100180003BD72040B70300809301200063147762BF +:10019000B7000080130110003BD72040B70300C018 +:1001A0009301300063187760B7000080130170007E +:1001B0003BD72040B70300FF93014000631C775EEC +:1001C000B70000801301E0003BD72040B703FEFFDB +:1001D000930150006310775EB70000809B80100091 +:1001E0001301F0013BD720409303F0FF930160001F +:1001F0006312775CB70000809B80F0FF1301000062 +:100200003BD72040B70300809B83F3FF930170002E +:100210006312775AB70000809B80F0FF1301100033 +:100220003BD72040B70300409B83F3FF930180003E +:1002300063127758B70000809B80F0FF13017000B5 +:100240003BD72040B70300019B83F3FF930190004D +:1002500063127756B70000809B80F0FF1301E00027 +:100260003BD72040B70302009B83F3FF9301A0001C +:1002700063127754B70000809B80F0FF1301F001F8 +:100280003BD72040930300009301B00063147752E2 +:10029000B78081819B801018130100003BD720405C +:1002A000B78381819B8313189301C0006314775037 +:1002B000B78081819B801018130110003BD720402C +:1002C000B7C3C0C09B83030C9301D0006314774E67 +:1002D000B78081819B801018130170003BD72040AC +:1002E000B70303FF9B8333309301E0006314774C23 +:1002F000B78081819B8010181301E0003BD720401C +:10030000B703FEFF9B8363609301F0006314774A99 +:10031000B78081819B8010181301F0013BD72040EA +:100320009303F0FF9301000163167748B780818142 +:100330009B801018130100FE3BD72040B7838181BA +:100340009B8313189301100163167746B780818150 +:100350009B801018130110FE3BD72040B7C3C0C0CC +:100360009B83030C9301200163167744B78081813E +:100370009B801018130170FE3BD72040B70303FF8A +:100380009B8333309301300163167742B7808181BC +:100390009B8010181301E0FE3BD72040B703FEFFFF +:1003A0009B8363609301400163167740B78081812E +:1003B0009B8010181301F0FF3BD720409303F0FF00 +:1003C000930150016318773EB720F1FF9B805034B2 +:1003D0009390C00093808067130100003BD72040BA +:1003E000B75334129B8383679301C0026314773C35 +:1003F000B720F1FF9B8050349390C00093808067BA +:10040000130140003BD72040B74323019B83735621 +:100410009301D0026310773AB72009009B805034D3 +:100420009390C00093808067130100003BD7204069 +:10043000B75334929B8383679301E002631C773642 +:10044000B72009009B8050349390C0009380806750 +:10045000130140003BD72040B74323F99B837356D9 +:100460009301F00263187734B70000801301700025 +:10047000BBD02040B70300FF93016001639C703242 +:10048000B70000801301E0003BD12040B703FEFF1E +:10049000930170016310713293007000BBD0104063 +:1004A00093030000930180016396703013020000F3 +:1004B000B7000080130170003BD7204013030700F2 +:1004C0001302120093022000E31452FEB70300FF50 +:1004D000930190016310732E13020000B700008097 +:1004E0001301E0003BD72040130000001303070076 +:1004F0001302120093022000E31252FEB703FEFF24 +:100500009301A0016318732A13020000B700008052 +:100510001301F0013BD7204013000000130000003E +:10052000130307001302120093022000E31052FE8F +:100530009303F0FF9301B001631E732613020000C2 +:10054000B7000080130170003BD720401302120057 +:1005500093022000E31652FEB70300FF9301C0018F +:10056000631A772413020000B70000801301E00033 +:10057000130000003BD7204013021200930220001A +:10058000E31452FEB703FEFF9301D00163147722F8 +:1005900013020000B70000801301F00113000000F7 +:1005A000130000003BD720401302120093022000EA +:1005B000E31252FE9303F0FF9301E001631C771EE8 +:1005C00013020000B7000080130000001301700048 +:1005D0003BD720401302120093022000E31452FE86 +:1005E000B70300FF9301F0016316771C13020000AC +:1005F000B7000080130000001301E00013000000AA +:100600003BD720401302120093022000E31252FE57 +:10061000B703FEFF93010002631E77181302000068 +:10062000B700008013000000130000001301F00168 +:100630003BD720401302120093022000E31252FE27 +:100640009303F0FF93011002631677161302000064 +:1006500013017000B70000803BD720401302120046 +:1006600093022000E31652FEB70300FF930120021D +:1006700063127714130200001301E000B70000803A +:10068000130000003BD72040130212009302200009 +:10069000E31452FEB703FEFF93013002631C771090 +:1006A000130200001301F001B700008013000000E6 +:1006B000130000003BD720401302120093022000D9 +:1006C000E31252FE9303F0FF930140026314770E8E +:1006D000130200001301700013000000B700008037 +:1006E0003BD720401302120093022000E31452FE75 +:1006F000B70300FF93015002631E770A1302000044 +:100700001301E00013000000B70000801300000098 +:100710003BD720401302120093022000E31252FE46 +:10072000B703FEFF9301600263167708130200000F +:100730001301F0011300000013000000B700008057 +:100740003BD720401302120093022000E31252FE16 +:100750009303F0FF93017002631E77049300F0008F +:100760003B51104093030000930180026314710415 +:10077000930000023BD100409303000293019002DA +:10078000631A7102BB500040930300009301A00262 +:100790006392700293000040371100001B0101803A +:1007A0003BD02040930300009301B002631470001B +:1007B000631030020F00F00F63800100939111006D +:1007C00093E111009308D005138501007300000028 +:1007D0000F00F00F930110009308D00513050000DF +:1007E00073000000731000C0000000000000000053 +:0C07F000000000000000000000000000FD +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-srl.hex b/tests/riscv/isa64/rv64ui-p-srl.hex new file mode 100644 index 00000000..3d73c116 --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-srl.hex @@ -0,0 +1,132 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F173002030B700008013010000A8 +:1001800033D72000B703008093012000631A775E05 +:10019000B70000801301100033D720009B0310002C +:1001A000939313029383F3FF9393E301930130003E +:1001B0006318775CB70000801301700033D720000C +:1001C0009B031000939313029383F3FF9393830194 +:1001D000930140006316775AB70000801301E000D6 +:1001E00033D720009B031000939313029383F3FFF4 +:1001F000939313019301500063147758B700008064 +:100200009B8010001301F00133D720009B031000E6 +:10021000939313029383F3FF930160006312775665 +:100220009300F0FF1301000033D720009303F0FF89 +:1002300093017000631677549300F0FF13011000D0 +:1002400033D720009B03F0FF9393F3039383F3FFD3 +:1002500093018000631677529300F0FF1301700042 +:1002600033D720009B031000939393039383F3FFF2 +:1002700093019000631677509300F0FF1301E000A4 +:1002800033D720009B031000939323039383F3FF42 +:100290009301A0006316774E9300F0FF1301F00165 +:1002A00033D720009B031000939313029383F3FF33 +:1002B0009301B0006316774CB72021219B80101268 +:1002C0001301000033D72000B72321219B83131291 +:1002D0009301C0006316774AB72021219B8010123A +:1002E0001301100033D72000B79390109B830309AC +:1002F0009301D00063167748B72021219B8010120C +:100300001301700033D72000B74342009B8323249E +:100310009301E00063167746B72021219B801012DD +:100320001301E00033D72000B78300009B834348CC +:100330009301F00063167744B72021219B801012AF +:100340001301F00133D72000930300009301000153 +:1003500063187742B72021219B801012130100FC03 +:1003600033D72000B72321219B831312930110015F +:1003700063187740B72021219B801012130110FCD5 +:1003800033D72000B79390109B830309930120017A +:100390006318773EB72021219B801012130170FC57 +:1003A00033D72000B74342009B83232493013001BD +:1003B0006318773CB72021219B8010121301E0FCC9 +:1003C00033D72000B78300009B834348930140014B +:1003D0006318773AB72021219B8010121301F0FF98 +:1003E00033D720009303000093015001631A77383C +:1003F0009B0010009390F00113017000B3D0200017 +:10040000B703000193016001639C70369B001000EC +:100410009390F0011301E00033D12000B7030200F4 +:1004200093017001631E713493007000B3D010000B +:100430009303000093018001639470341302000061 +:100440009B0010009390F0011301700033D720003F +:10045000130307001302120093022000E31252FE5E +:10046000B703000193019001631C73301302000075 +:100470009B0010009390F0011301E00033D720009F +:100480001300000013030700130212009302200060 +:10049000E31052FEB70302009301A0016312732E12 +:1004A000130200009B0010009390F0011301F00173 +:1004B00033D72000130000001300000013030700CF +:1004C0001302120093022000E31E52FC930310005B +:1004D0009301B0016316732A130200009B00100001 +:1004E0009390F0011301700033D720001302120023 +:1004F00093022000E31452FEB70300019301C001F0 +:1005000063107728130200009B0010009390F00105 +:100510001301E0001300000033D720001302120083 +:1005200093022000E31252FEB70302009301D001B0 +:1005300063187724130200009B0010009390F001D1 +:100540001301F001130000001300000033D7200056 +:100550001302120093022000E31052FE93031000D6 +:100560009301E001631E7720130200009B0010003E +:100570009390F001130000001301700033D72000A6 +:100580001302120093022000E31252FEB70300018F +:100590009301F0016316771E130200009B00100008 +:1005A0009390F001130000001301E000130000001D +:1005B00033D720001302120093022000E31052FEF2 +:1005C000B703020093010002631C771A13020000B4 +:1005D0009B0010009390F001130000001300000036 +:1005E0001301F00133D72000130212009302200000 +:1005F000E31052FE93031000930110026312771868 +:1006000013020000130170009B0010009390F00192 +:1006100033D720001302120093022000E31452FE8D +:10062000B703000193012002631C7714130200003A +:100630001301E0009B0010009390F00113000000F4 +:1006400033D720001302120093022000E31252FE5F +:10065000B703020093013002631477121302000003 +:100660001301F0019B0010009390F00113000000B3 +:100670001300000033D72000130212009302200061 +:10068000E31052FE9303100093014002631A770EA9 +:100690001302000013017000130000009B00100003 +:1006A0009390F00133D72000130212009302200030 +:1006B000E31252FEB7030001930150026312770C5C +:1006C000130200001301E000130000009B00100063 +:1006D0009390F0011300000033D7200013021200A2 +:1006E00093022000E31052FEB70302009301600260 +:1006F00063187708130200001301F00113000000D3 +:10070000130000009B0010009390F00133D72000ED +:100710001302120093022000E31052FE9303100014 +:1007200093017002631E77049300F00033511000B0 +:10073000930300009301800263147104930000028C +:1007400033D100009303000293019002631A7102F7 +:10075000B3500000930300009301A0026392700263 +:1007600093000040371100001B01018033D02000AE +:10077000930300009301B002631470006310300211 +:100780000F00F00F638001009391110093E11100BD +:100790009308D00513850100730000000F00F00FCF +:1007A000930110009308D0051305000073000000AA +:0C07B000731000C00000000000000000FA +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-srli.hex b/tests/riscv/isa64/rv64ui-p-srli.hex new file mode 100644 index 00000000..29911e99 --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-srli.hex @@ -0,0 +1,84 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F173002030B700008013D70000D2 +:10018000B7030080930120006316772EB70000802C +:1001900013D710009B031000939313029383F3FF74 +:1001A0009393E301930130006316772CB70000802E +:1001B00013D770009B031000939313029383F3FFF4 +:1001C00093938301930140006316772AB700008060 +:1001D00013D7E0009B031000939313029383F3FF64 +:1001E000939313019301500063167728B7000080A2 +:1001F0009B80100013D7F0019B0310009393130210 +:100200009383F3FF93016000631677269300F0FF5A +:1002100013D700009303F0FF93017000631C772451 +:100220009300F0FF13D710009B03F0FF9393F303A9 +:100230009383F3FF93018000631E77229300F0FF06 +:1002400013D770009B031000939393039383F3FFE2 +:1002500093019000631077229300F0FF13D7E00022 +:100260009B031000939323039383F3FF9301A00058 +:10027000631277209300F0FF13D7F0019B03100067 +:10028000939313029383F3FF9301B0006314771EDB +:10029000B72021219B80101213D70000B723212102 +:1002A0009B8313129301C0006316771CB720212192 +:1002B0009B80101213D71000B79390109B830309F3 +:1002C0009301D0006318771AB72021219B80101268 +:1002D00013D77000B74342009B8323249301E000AF +:1002E000631A7718B72021219B80101213D7E000E2 +:1002F000B78300009B8343489301F000631C77168B +:10030000B72021219B80101213D7F0019303000026 +:1003100093010001631077169B0010009390F00189 +:1003200093D07000B703000193011001639470141F +:10033000130200009B0010009390F00113D770008F +:10034000130307001302120093022000E31452FE6D +:10035000B703000193012001631E73101302000014 +:100360009B0010009390F00113D7E00013000000F1 +:10037000130307001302120093022000E31252FE3F +:10038000B7030200930130016316730E13020000DD +:100390009B0010009390F0019380100013D7F001A0 +:1003A00013000000130000001303070013021200E3 +:1003B00093022000E31E52FC9303100093014001BE +:1003C000631A730A130200009B0010009390F0015F +:1003D00013D770001302120093022000E31652FE9E +:1003E000B703000193015001631677081302000060 +:1003F0009B0010009390F0011300000013D7E00061 +:100400001302120093022000E31452FEB70302000D +:100410009301600163107706130200009B00100037 +:100420009390F0019380100013000000130000006F +:1004300013D7F0011302120093022000E31052FEC2 +:1004400093031000930170016316770293504000EC +:100450009303000093018001639E700093001002DB +:1004600013D0A00093030000930190016314700067 +:10047000631030020F00F00F6380010093911100B0 +:1004800093E111009308D00513850100730000006B +:100490000F00F00F930110009308D0051305000022 +:1004A00073000000731000C0000000000000000096 +:0C04B00000000000000000000000000040 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-srliw.hex b/tests/riscv/isa64/rv64ui-p-srliw.hex new file mode 100644 index 00000000..1923f2fc --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-srliw.hex @@ -0,0 +1,88 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F173002030B70000801BD70000CA +:10018000B70300809301200063107732B70000802E +:100190001BD71000B703004093013000631677307F +:1001A000B70000801BD77000B70300019301400027 +:1001B000631C772EB70000801BD7E000B703020056 +:1001C000930150006312772EB70000809B801000CF +:1001D0001BD7F00193031000930160006316772C86 +:1001E0009300F0FF1BD700009303F0FF9301700012 +:1001F000631C772A9300F0FF1BD71000B703008021 +:100200009B83F3FF930180006310772A9300F0FF34 +:100210001BD77000B70300029B83F3FF930190008C +:10022000631477289300F0FF1BD7E000B7030400A6 +:100230009B83F3FF9301A000631877269300F0FFE0 +:100240001BD7F001930310009301B000631E7724C5 +:10025000B72021219B8010121BD70000B72321213A +:100260009B8313129301C00063107724B7202121D0 +:100270009B8010121BD71000B79390109B8303092B +:100280009301D00063127722B72021219B801012A6 +:100290001BD77000B74342009B8323249301E000E7 +:1002A00063147720B72021219B8010121BD7E00018 +:1002B000B78300009B8343489301F0006316771EC9 +:1002C000B72021219B8010121BD7F001930300005F +:1002D00093010001631A771CB720F1FF9B80503413 +:1002E0009390C000938080671BD70000B7533412EF +:1002F0009B8383679301C0026318771AB720F1FFCD +:100300009B8050349390C000938080671BD740003F +:10031000B74323019B8373569301D002631677186A +:10032000B72009009B8050349390C0009380806771 +:100330001BD70000B75334929B8383679301E0027D +:1003400063147716B72009009B8050349390C00047 +:10035000938080671BD74000B74323099B83735664 +:100360009301F00263127714B70000809BD07000F5 +:10037000B70300019301100163987012130200008B +:10038000B70000801BD77000130307001302120090 +:1003900093022000E31652FEB703000193012001EF +:1003A0006314731013020000B70000801BD7E00035 +:1003B0001300000013030700130212009302200031 +:1003C000E31452FEB703020093013001631E730C65 +:1003D00013020000B70000809B8010001BD7F001C3 +:1003E00013000000130000001303070013021200A3 +:1003F00093022000E31052FE93031000930140018A +:100400006314730A13020000B70000801BD770004A +:100410001302120093022000E31852FEB7030001FA +:10042000930150016312770813020000B7000080A7 +:10043000130000001BD7E0001302120093022000FB +:10044000E31652FEB703020093016001631E7704B6 +:1004500013020000B70000809B8010001300000012 +:10046000130000001BD7F0011302120093022000BA +:10047000E31252FE9303100093017001631677029A +:100480009B50F0019303000093018001639E700074 +:100490009300F0011BD0C001930300009301900171 +:1004A00063147000631030020F00F00F63800100CE +:1004B0009391110093E111009308D0051385010079 +:1004C000730000000F00F00F930110009308D00597 +:1004D0001305000073000000731000C0000000004E +:1004E000000000000000000000000000000000000C +:0C04F00000000000000000000000000000 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-srlw.hex b/tests/riscv/isa64/rv64ui-p-srlw.hex new file mode 100644 index 00000000..4008588f --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-srlw.hex @@ -0,0 +1,136 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F173002030B700008013010000A8 +:100180003BD72000B70300809301200063187760FD +:10019000B7000080130110003BD72000B7030040D8 +:1001A00093013000631C775EB7000080130170007C +:1001B0003BD72000B7030001930140006310775E36 +:1001C000B70000801301E0003BD72000B703020016 +:1001D000930150006314775CB70000809B8010008F +:1001E0001301F0013BD7200093031000930160003E +:1001F0006316775A9300F0FF130100003BD72000ED +:100200009303F0FF93017000631A77589300F0FF97 +:10021000130110003BD72000B70300809B83F3FF3E +:1002200093018000631C77569300F0FF1301700068 +:100230003BD72000B70300029B83F3FF930190009C +:10024000631E77549300F0FF1301E0003BD72000BA +:10025000B70304009B83F3FF9301A000631077545E +:100260009300F0FF1301F0013BD72000930310002F +:100270009301B00063147752B72021219B801012A4 +:10028000130100003BD72000B72321219B831312C9 +:100290009301C00063147750B72021219B80101276 +:1002A000130110003BD72000B79390109B830309E4 +:1002B0009301D0006314774EB72021219B80101248 +:1002C000130170003BD72000B74342009B832324D7 +:1002D0009301E0006314774CB72021219B8010121A +:1002E0001301E0003BD72000B78300009B83434805 +:1002F0009301F0006314774AB72021219B801012EC +:100300001301F0013BD7200093030000930100018B +:1003100063167748B72021219B801012130100FE3D +:100320003BD72000B72321219B8313129301100197 +:1003300063167746B72021219B801012130110FE0F +:100340003BD72000B79390109B83030993012001B2 +:1003500063167744B72021219B801012130170FE91 +:100360003BD72000B74342009B83232493013001F5 +:1003700063167742B72021219B8010121301E0FE03 +:100380003BD72000B78300009B8343489301400183 +:1003900063167740B72021219B8010121301F0FFD4 +:1003A0003BD7200093030000930150016318773E70 +:1003B000B720F1FF9B8050349390C00093808067FA +:1003C000130100003BD72000B75334129B8383678F +:1003D0009301C0026314773CB720F1FF9B80503437 +:1003E0009390C00093808067130140003BD72000AA +:1003F000B74323019B8373569301D0026310773A6E +:10040000B72009009B8050349390C0009380806790 +:10041000130100003BD72000B75334929B838367BE +:100420009301E002631C7736B72009009B805034AB +:100430009390C00093808067130140003BD7200059 +:10044000B74323099B8373569301F00263187734F3 +:10045000B700008013017000BBD02000B70300017B +:1004600093016001639C7032B70000801301E000CB +:100470003BD12000B7030200930170016310713279 +:1004800093007000BBD01000930300009301800123 +:100490006396703013020000B700008013017000F3 +:1004A0003BD7200013030700130212009302200021 +:1004B000E31452FEB7030001930190016310732E01 +:1004C00013020000B70000801301E0003BD72000BA +:1004D0001300000013030700130212009302200010 +:1004E000E31252FEB70302009301A0016318732ABE +:1004F00013020000B70000801301F0013BD7200079 +:100500001300000013000000130307001302120081 +:1005100093022000E31052FE930310009301B001F8 +:10052000631E732613020000B700008013017000E1 +:100530003BD720001302120093022000E31652FE64 +:10054000B70300019301C001631A7724130200006E +:10055000B70000801301E000130000003BD720002B +:100560001302120093022000E31452FEB7030200AC +:100570009301D0016314772213020000B7000080BA +:100580001301F00113000000130000003BD720000E +:100590001302120093022000E31252FE9303100094 +:1005A0009301E001631C771E13020000B700008076 +:1005B00013000000130170003BD72000130212004B +:1005C00093022000E31452FEB70300019301F001EF +:1005D0006316771C13020000B700008013000000B0 +:1005E0001301E000130000003BD7200013021200AB +:1005F00093022000E31252FEB703020093010002AF +:10060000631E771813020000B7000080130000007B +:10061000130000001301F0013BD720001302120069 +:1006200093022000E31252FE930310009301100284 +:10063000631677161302000013017000B7000080E4 +:100640003BD720001302120093022000E31652FE53 +:10065000B703000193012002631277141302000014 +:100660001301E000B7000080130000003BD720001A +:100670001302120093022000E31452FEB70302009B +:1006800093013002631C7710130200001301F00184 +:10069000B700008013000000130000003BD72000CB +:1006A0001302120093022000E31252FE9303100083 +:1006B000930140026314770E1302000013017000CF +:1006C00013000000B70000803BD720001302120087 +:1006D00093022000E31452FEB7030001930150027D +:1006E000631E770A130200001301E00013000000EC +:1006F000B7000080130000003BD720001302120057 +:1007000093022000E31252FEB7030200930160023D +:1007100063167708130200001301F00113000000B4 +:1007200013000000B70000803BD720001302120026 +:1007300093022000E31252FE930310009301700213 +:10074000631E77049300F0003B51100093030000F8 +:100750009301800263147104930000023BD10000F6 +:100760009303000293019002631A7102BB500000D0 +:10077000930300009301A002639270029300004073 +:10078000371100001B0101803BD0200093030000C3 +:100790009301B00263147000631030020F00F00F79 +:1007A000638001009391110093E111009308D0053B +:1007B00013850100730000000F00F00F930110007B +:1007C0009308D0051305000073000000731000C0EB +:1007D0000000000000000000000000000000000019 +:1007E0000000000000000000000000000000000009 +:0C07F000000000000000000000000000FD +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-sub.hex b/tests/riscv/isa64/rv64ui-p-sub.hex new file mode 100644 index 00000000..89ba9bc9 --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-sub.hex @@ -0,0 +1,112 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F17300203093000000130100004C +:10018000338720409303000093012000631E774AC9 +:1001900093001000130110003387204093030000E8 +:1001A000930130006312774A93003000130170000E +:1001B000338720409303C0FF9301400063167748C4 +:1001C000930000003781FFFF33872040B783000092 +:1001D00093015000631A7746B700008013010000B6 +:1001E00033872040B703008093016000631E77448B +:1001F000B70000803781FFFF33872040B78300803E +:10020000930170006312774493000000378100006F +:100210001B01F1FF33872040B783FFFF9B8313004F +:100220009301800063127742B70000809B80F0FF4B +:100230001301000033872040B70300809B83F3FF46 +:100240009301900063127740B70000809B80F0FF1D +:10025000378100001B01F1FF33872040B783FF7F08 +:100260009301A0006312773EB70000803781000041 +:100270001B01F1FF33872040B703FFFF9B83F3FF90 +:100280009393F300938313009301B000631E773AB6 +:10029000B70000809B80F0FF3781FFFF338720404D +:1002A000B70301009B8313009393F3009383F3FF41 +:1002B0009301C000631A7738930000001301F0FF28 +:1002C00033872040930310009301D000631E7736DC +:1002D0009300F0FF13011000338720409303E0FFE9 +:1002E0009301E000631277369300F0FF1301F0FFF3 +:1002F00033872040930300009301F00063167734A6 +:100300009300D0001301B000B3802040930320007D +:1003100093010001639A70329300E0001301B00072 +:10032000338120409303300093011001631E71302C +:100330009300D000B380104093030000930120018C +:1003400063947030130200009300D0001301B000DA +:10035000338720401303070013021200930220008A +:10036000E31452FE9303200093013001631E732CAB +:10037000130200009300E0001301B0003387204017 +:100380001300000013030700130212009302200061 +:10039000E31252FE93033000930140016316732A67 +:1003A000130200009300F0001301B00033872040D7 +:1003B00013000000130000001303070013021200D3 +:1003C00093022000E31052FE93034000930150017A +:1003D000631C7326130200009300D0001301B000C9 +:1003E000338720401302120093022000E31652FECE +:1003F0009303200093016001631877241302000027 +:100400009300E0001301B000130000003387204088 +:100410001302120093022000E31452FE93033000F3 +:100420009301700163127722130200009300F00021 +:100430001301B000130000001300000033872040B8 +:100440001302120093022000E31252FE93034000B5 +:1004500093018001631A771E130200009300D000FD +:10046000130000001301B000338720401302120074 +:1004700093022000E31452FE9303200093019001A5 +:100480006314771C130200009300E00013000000C7 +:100490001301B00013000000338720401302120044 +:1004A00093022000E31252FE930330009301A00157 +:1004B000631C7718130200009300F0001300000083 +:1004C000130000001301B000338720401302120014 +:1004D00093022000E31252FE930340009301B00107 +:1004E00063147716130200001301B0009300D000CC +:1004F000338720401302120093022000E31652FEBD +:10050000930320009301C0016310771413020000CD +:100510001301B0009300E000130000003387204077 +:100520001302120093022000E31452FE93033000E2 +:100530009301D001631A7710130200001301B00079 +:100540009300F000130000001300000033872040E8 +:100550001302120093022000E31252FE93034000A4 +:100560009301E0016312770E130200001301B00043 +:10057000130000009300D0003387204013021200C4 +:1005800093022000E31452FE930320009301F00134 +:10059000631C770A130200001301B000130000006F +:1005A0009300E00013000000338720401302120084 +:1005B00093022000E31252FE9303300093010002E5 +:1005C00063147708130200001301B0001300000049 +:1005D000130000009300F000338720401302120044 +:1005E00093022000E31252FE930340009301100295 +:1005F000631C7704930010FF330110409303F00055 +:1006000093012002631271049300000233810040C1 +:10061000930300029301300263187102B30000409B +:100620009303000093014002639070029300000165 +:100630001301E00133802040930300009301500236 +:1006400063147000631030020F00F00F638001002C +:100650009391110093E111009308D00513850100D7 +:10066000730000000F00F00F930110009308D005F5 +:0C0670001305000073000000731000C0B0 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-subw.hex b/tests/riscv/isa64/rv64ui-p-subw.hex new file mode 100644 index 00000000..cfbef8c6 --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-subw.hex @@ -0,0 +1,112 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F17300203093000000130100004C +:100180003B87204093030000930120006316774AC9 +:1001900093001000130110003B87204093030000E0 +:1001A00093013000631A7748930030001301700008 +:1001B0003B8720409303C0FF93014000631E7746B6 +:1001C000930000003781FFFF3B872040B78300008A +:1001D0009301500063127746B700008013010000BE +:1001E0003B872040B703008093016000631677448B +:1001F000B70000803781FFFF3B872040B783008036 +:1002000093017000631A7742930000003781000069 +:100210001B01F1FF3B872040B783FFFF9B83130047 +:1002200093018000631A7740B70000809B80F0FF45 +:10023000130100003B872040B70300809B83F3FF3E +:1002400093019000631A773EB70000809B80F0FF17 +:10025000378100001B01F1FF3B872040B783FF7F00 +:100260009301A000631A773CB7000080378100003B +:100270001B01F1FF3B872040B783FF7F9B83130067 +:100280009301B000631A773AB70000809B80F0FFBB +:100290003781FFFF3B872040B78300809B83F3FFBC +:1002A0009301C000631A7738930000001301F0FF38 +:1002B0003B872040930310009301D000631E7736E4 +:1002C0009300F0FF130110003B8720409303E0FFF1 +:1002D0009301E000631277369300F0FF1301F0FF03 +:1002E0003B872040930300009301F00063167734AE +:1002F0009300D0001301B000BB8020409303200086 +:1003000093010001639A70329300E0001301B00082 +:100310003B8120409303300093011001631E713034 +:100320009300D000BB801040930300009301200194 +:1003300063947030130200009300D0001301B000EA +:100340003B87204013030700130212009302200092 +:10035000E31452FE9303200093013001631E732CBB +:10036000130200009300E0001301B0003B8720401F +:100370001300000013030700130212009302200071 +:10038000E31252FE93033000930140016316732A77 +:10039000130200009300F0001301B0003B872040DF +:1003A00013000000130000001303070013021200E3 +:1003B00093022000E31052FE93034000930150018A +:1003C000631C7326130200009300D0001301B000D9 +:1003D0003B8720401302120093022000E31652FED6 +:1003E0009303200093016001631877241302000037 +:1003F0009300E0001301B000130000003B87204091 +:100400001302120093022000E31452FE9303300003 +:100410009301700163127722130200009300F00031 +:100420001301B00013000000130000003B872040C0 +:100430001302120093022000E31252FE93034000C5 +:1004400093018001631A771E130200009300D0000D +:10045000130000001301B0003B872040130212007C +:1004600093022000E31452FE9303200093019001B5 +:100470006314771C130200009300E00013000000D7 +:100480001301B000130000003B872040130212004C +:1004900093022000E31252FE930330009301A00167 +:1004A000631C7718130200009300F0001300000093 +:1004B000130000001301B0003B872040130212001C +:1004C00093022000E31252FE930340009301B00117 +:1004D00063147716130200001301B0009300D000DC +:1004E0003B8720401302120093022000E31652FEC5 +:1004F000930320009301C0016310771413020000DE +:100500001301B0009300E000130000003B8720407F +:100510001302120093022000E31452FE93033000F2 +:100520009301D001631A7710130200001301B00089 +:100530009300F00013000000130000003B872040F0 +:100540001302120093022000E31252FE93034000B4 +:100550009301E0016312770E130200001301B00053 +:10056000130000009300D0003B87204013021200CC +:1005700093022000E31452FE930320009301F00144 +:10058000631C770A130200001301B000130000007F +:100590009300E000130000003B872040130212008C +:1005A00093022000E31252FE9303300093010002F5 +:1005B00063147708130200001301B0001300000059 +:1005C000130000009300F0003B872040130212004C +:1005D00093022000E31252FE9303400093011002A5 +:1005E000631C7704930010FF3B0110409303F0005D +:1005F0009301200263127104930000023B810040CA +:10060000930300029301300263187102BB000040A3 +:100610009303000093014002639070029300000175 +:100620001301E0013B80204093030000930150023E +:1006300063147000631030020F00F00F638001003C +:100640009391110093E111009308D00513850100E7 +:10065000730000000F00F00F930110009308D00505 +:100660001305000073000000731000C000000000BC +:0C0670000000000000000000000000007E +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-sw.hex b/tests/riscv/isa64/rv64ui-p-sw.hex new file mode 100644 index 00000000..405f6f9b --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-sw.hex @@ -0,0 +1,111 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F17300203097200000938080E8C1 +:100180003701AA001B01A10A23A0200003A7000039 +:10019000B703AA009B83A30A93012000631077464C +:1001A00097200000938000E637B100AA1B0101A050 +:1001B00023A2200003A74000B7B300AA9B8303A09B +:1001C00093013000631C774297200000938080E306 +:1001D0003711A00A1B0101AA23A4200003A7800055 +:1001E000B713A00A9B8303AA9301400063187740CA +:1001F00097200000938000E137A10AA01B01A10015 +:1002000023A6200003A7C000B7A30AA09B83A300D6 +:10021000930150006314773E97200000938040E0E4 +:100220003701AA001B01A10A23AA20FE03A740FF51 +:10023000B703AA009B83A30A930160006310773C75 +:10024000972000009380C0DD37B100AA1B0101A0F8 +:1002500023AC20FE03A780FFB7B300AA9B8303A0B3 +:1002600093017000631C773897200000938040DB77 +:100270003711A00A1B0101AA23AE20FE03A7C0FF6D +:10028000B713A00A9B8303AA9301800063187736F3 +:10029000972000009380C0D837A10AA01B01A100BD +:1002A00023A0200003A70000B7A30AA09B83A300FC +:1002B000930190006314773497200000938080D6D8 +:1002C000375134121B018167138200FE2320220262 +:1002D00083A20000B75334129B8383679301A0006D +:1002E000639E7230972000009380C0D3373121582D +:1002F0001B0181099380D0FFA3A3200017220000D7 +:10030000130282D283220200B73321589B838309D0 +:100310009301B0006394722E9301C0001302000099 +:10032000B7D0BBAA9B80D0CD17210000130181CD8F +:100330002320110003270100B7D3BBAA9B83D3CD91 +:10034000631E772A1302120093022000E31A52FC64 +:100350009301D00013020000B7C0ABDA9B80D0CC71 +:1003600017210000130101CA13000000232211000D +:1003700003274100B7C3ABDA9B83D3CC6310772844 +:100380001302120093022000E31852FC9301E000D4 +:1003900013020000B7C0AADD9B80C0BC172100007B +:1003A000130141C6130000001300000023241100B4 +:1003B00003278100B7C3AADD9B83C3BC63107724E6 +:1003C0001302120093022000E31652FC9301F00086 +:1003D00013020000B7B0DACD9B80C0BB1300000051 +:1003E00017210000130101C2232611000327C100B9 +:1003F000B7B3DACD9B83C3BB63127720130212001D +:1004000093022000E31852FC930100011302000044 +:10041000B7B0DDCC9B80B0AB13000000172100000B +:10042000130141BE1300000023281100032701011E +:10043000B7B3DDCC9B83B3AB6312771C13021200FE +:1004400093022000E31652FC9301100113020000F6 +:10045000B7E0CDBC9B80B0AA1300000013000000E1 +:1004600017210000130101BA232A110003274101BB +:10047000B7E3CDBC9B83B3AA6312771813021200B3 +:1004800093022000E31652FC9301200113020000A6 +:1004900017210000130101B7B72011009B80302302 +:1004A0002320110003270100B72311009B8333236E +:1004B000631677141302120093022000E31A52FC11 +:1004C000930130011302000017210000130181B3D2 +:1004D000B71001309B80302213000000232211004E +:1004E00003274100B71301309B8333226318771031 +:1004F0001302120093022000E31852FC9301400102 +:1005000013020000172100001301C1AFB710003320 +:100510009B80201213000000130000002324110010 +:1005200003278100B71300339B8323126318770CD2 +:100530001302120093022000E31652FC93015001B3 +:1005400013020000172100001301C1AB13000000CB +:10055000B70030239B802011232611000327C10000 +:10056000B70330239B832311631A77081302120009 +:1005700093022000E31852FC930160011302000073 +:1005800017210000130101A813000000B700332257 +:100590009B80100113000000232811000327010194 +:1005A000B70333229B831301631A770413021200EB +:1005B00093022000E31652FC930170011302000025 +:1005C00017210000130101A4130000001300000014 +:1005D000B73023129B801000232A1100032741010A +:1005E000B73323129B831300631A770013021200A0 +:1005F00093022000E31652FC631030020F00F00F4C +:10060000638001009391110093E111009308D005DC +:1006100013850100730000000F00F00F930110001C +:100620009308D0051305000073000000731000C08C +:0C063000000000000000000000000000BE +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:10200000EFBEADDEEFBEADDEEFBEADDEEFBEADDEF0 +:10201000EFBEADDEEFBEADDEEFBEADDEEFBEADDEE0 +:10202000EFBEADDEEFBEADDE000000000000000040 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-xor.hex b/tests/riscv/isa64/rv64ui-p-xor.hex new file mode 100644 index 00000000..090f1253 --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-xor.hex @@ -0,0 +1,128 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F173002030B70001009B8010F020 +:1001800093900001938000F037110F0F1B01F1F0E5 +:1001900033C72000B7030F009B83F30F9393C30073 +:1001A0009383F30093012000631C7758B710F00F7E +:1001B0009B8000FF37110F001B01F1F01311C100EC +:1001C0001301010F33C72000B70301009B8313F015 +:1001D00093930301938303F09301300063127756E6 +:1001E000B700FF009B80F00F37110F0F1B01F1F0DC +:1001F00033C72000B713F00F9B8303FF9301400028 +:1002000063107754B7000F009B80F00F9390C000ED +:100210009380F00037110F001B01F1F01311C100A2 +:100220001301010F33C72000B703FF009B83F30FB7 +:100230009301500063167750B70001009B8010F0C7 +:1002400093900001938000F037110F0F1B01F1F024 +:10025000B3C02000B7030F009B83F30F9393C30039 +:100260009383F30093016000639C704CB70001001E +:100270009B8010F093900001938000F037110F0FD6 +:100280001B01F1F033C12000B7030F009B83F30F74 +:100290009393C3009383F300930170006312714A38 +:1002A000B70001009B8010F093900001938000F054 +:1002B000B3C0100093030000930180006392704864 +:1002C00013020000B70001009B8010F09390000122 +:1002D000938000F037110F0F1B01F1F033C720009E +:1002E000130307001302120093022000E31C52FCC8 +:1002F000B7030F009B83F30F9393C3009383F30023 +:1003000093019000631E734213020000B710F00FB8 +:100310009B8000FF37110F001B01F1F01311C1008A +:100320001301010F33C7200013000000130307005F +:100330001302120093022000E31A52FCB7030100DB +:100340009B8313F093930301938303F09301A00025 +:100350006318733E13020000B700FF009B80F00F8C +:1003600037110F0F1B01F1F033C7200013000000FD +:100370001300000013030700130212009302200071 +:10038000E31C52FCB713F00F9B8303FF9301B000F3 +:100390006318733A13020000B70001009B8010F04D +:1003A00093900001938000F037110F0F1B01F1F0C3 +:1003B00033C720001302120093022000E31E52FCF8 +:1003C000B7030F009B83F30F9393C3009383F30052 +:1003D0009301C0006316773613020000B710F00FC8 +:1003E0009B8000FF37110F001B01F1F01311C100BA +:1003F0001301010F1300000033C720001302120085 +:1004000093022000E31C52FCB70301009B8313F00E +:1004100093930301938303F09301D0006312773227 +:1004200013020000B700FF009B80F00F37110F0F81 +:100430001B01F1F0130000001300000033C720007F +:100440001302120093022000E31E52FCB713F00FB8 +:100450009B8303FF9301E0006314772E13020000D7 +:10046000B70001009B8010F093900001938000F092 +:100470001300000037110F0F1B01F1F033C72000EC +:100480001302120093022000E31C52FCB7030F007A +:100490009B83F30F9393C3009383F3009301F000C6 +:1004A0006310772A13020000B710F00F9B8000FF43 +:1004B0001300000037110F001B01F1F01311C100F0 +:1004C0001301010F1300000033C7200013021200B4 +:1004D00093022000E31A52FCB70301009B8313F040 +:1004E00093930301938303F093010001631A77242C +:1004F00013020000B700FF009B80F00F1300000004 +:100500001300000037110F0F1B01F1F033C720005B +:100510001302120093022000E31E52FCB713F00FE7 +:100520009B8303FF93011001631C772013020000DB +:1005300037110F0F1B01F1F0B70001009B8010F085 +:1005400093900001938000F033C720001302120043 +:1005500093022000E31E52FCB7030F009B83F30FAE +:100560009393C3009383F30093012001631A771CD4 +:100570001302000037110F001B01F1F01311C1002D +:100580001301010FB710F00F9B8000FF1300000054 +:1005900033C720001302120093022000E31C52FC18 +:1005A000B70301009B8313F093930301938303F03C +:1005B00093013001631677181302000037110F0FF3 +:1005C0001B01F1F0B700FF009B80F00F130000004B +:1005D0001300000033C72000130212009302200012 +:1005E000E31E52FCB713F00F9B8303FF93014001FE +:1005F000631877141302000037110F0F1B01F1F07D +:1006000013000000B70001009B8010F093900001E0 +:10061000938000F033C720001302120093022000E1 +:10062000E31C52FCB7030F009B83F30F9393C300AB +:100630009383F300930150016314771013020000B9 +:1006400037110F001B01F1F01311C1001301010F4D +:1006500013000000B710F00F9B8000FF1300000094 +:1006600033C720001302120093022000E31A52FC49 +:10067000B70301009B8313F093930301938303F06B +:1006800093016001631E770A1302000037110F0FF8 +:100690001B01F1F01300000013000000B700FF0081 +:1006A0009B80F00F33C7200013021200930220003A +:1006B000E31E52FCB713F00F9B8303FF93017001FD +:1006C00063107708B70001009B8010F09390000141 +:1006D000938000F033411000B70301009B8313F0B7 +:1006E00093930301938303F093018001631A7104D0 +:1006F000B700FF009B80F00F33C10000B703FF007D +:100700009B83F30F93019001631C7102B3400000BF +:10071000930300009301A00163947002B7101111BC +:100720009B801011372122221B01212233C020007F +:10073000930300009301B001631470006310300252 +:100740000F00F00F638001009391110093E11100FD +:100750009308D00513850100730000000F00F00F0F +:10076000930110009308D0051305000073000000EA +:0C077000731000C000000000000000003A +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64ui-p-xori.hex b/tests/riscv/isa64/rv64ui-p-xori.hex new file mode 100644 index 00000000..3b2340da --- /dev/null +++ b/tests/riscv/isa64/rv64ui-p-xori.hex @@ -0,0 +1,68 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F173002030B710FF009B8000F022 +:1001800013C7F0F0B7F300FF9B83F3009301200047 +:100190006316771CB710F00F9B8000FF13C7000F8A +:1001A000B713F00F9B8303F0930130006318771AA5 +:1001B000B710FF009B80F08F13C7F070B713FF00DC +:1001C0009B8303FF93014000631A7718B7F00FF089 +:1001D0009B80F00013C7000FB7F30FF09B83F30F62 +:1001E00093015000631C7716B7F000FF9B800070EE +:1001F00093C0F070B7F300FF9B83F300930160009E +:10020000639E701413020000B710F00F9B8000FF74 +:1002100013C7000F130307001302120093022000FC +:10022000E31452FEB713F00F9B8303F093017000A9 +:100230006316731213020000B710FF009B80F08F4B +:1002400013C7F0701300000013030700130212001D +:1002500093022000E31252FEB713FF009B8303FFBB +:1002600093018000631C730E13020000B7F00FF0BF +:100270009B80F00013C7000F130000001300000064 +:10028000130307001302120093022000E31052FE32 +:10029000B7F30FF09B83F30F930190006310730C7F +:1002A00013020000B710F00F9B8000FF13C7000F70 +:1002B0001302120093022000E31652FEB713F00F50 +:1002C0009B8303F09301A000631A770813020000D8 +:1002D000B710FF009B80F0FF1300000013C7F00071 +:1002E0001302120093022000E31452FEB713FF0022 +:1002F0009B8303FF9301B000631277061302000093 +:10030000B7F00FF09B80F000130000001300000016 +:1003100013C7000F1302120093022000E31252FED3 +:10032000B7F30FF09B83F30F9301C00063187702BC +:100330009340000F9303000F9301D000639070026D +:10034000B700FF009B80F00F13C0F0709303000014 +:100350009301E00063147000631030020F00F00F8F +:10036000638001009391110093E111009308D0057F +:1003700013850100730000000F00F00F93011000BF +:100380009308D0051305000073000000731000C02F +:10039000000000000000000000000000000000005D +:1003A000000000000000000000000000000000004D +:0C03B00000000000000000000000000041 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64um-p-div.hex b/tests/riscv/isa64/rv64um-p-div.hex new file mode 100644 index 00000000..dcb0cdc8 --- /dev/null +++ b/tests/riscv/isa64/rv64um-p-div.hex @@ -0,0 +1,52 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F1730020309300400113016000AB +:1001800033C720029303300093012000631E770CD5 +:100190009300C0FE1301600033C720029303D0FF19 +:1001A000930130006312770C930040011301A0FF0C +:1001B00033C720029303D0FF930140006316770AF0 +:1001C0009300C0FE1301A0FF33C720029303300049 +:1001D00093015000631A77089B00F0FF9390F0039F +:1001E0001301100033C720029B03F0FF9393F30326 +:1001F00093016000631A77069B00F0FF9390F00371 +:100200001301F0FF33C720029B03F0FF9393F30326 +:1002100093017000631A77049B00F0FF9390F00342 +:100220001301000033C720029303F0FF9301800005 +:10023000631C7702930010001301000033C72002F3 +:100240009303F0FF93019000631077029300000086 +:100250001301000033C720029303F0FF9301A000B5 +:1002600063147700631030020F00F00F6380010009 +:100270009391110093E111009308D00513850100BB +:10028000730000000F00F00F930110009308D005D9 +:100290001305000073000000731000C00000000090 +:1002A000000000000000000000000000000000004E +:0C02B00000000000000000000000000042 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64um-p-divu.hex b/tests/riscv/isa64/rv64um-p-divu.hex new file mode 100644 index 00000000..48617602 --- /dev/null +++ b/tests/riscv/isa64/rv64um-p-divu.hex @@ -0,0 +1,52 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F1730020309300400113016000AB +:1001800033D720029303300093012000631A770EC7 +:100190009300C0FE1301600033D72002B7B3AA0258 +:1001A0009B83B3AA9393C3009383B3AA9393C3008F +:1001B0009383B3AA9393C300938373AA93013000EC +:1001C0006310770C930040011301A0FF33D7200286 +:1001D00093030000930140006314770A9300C0FE6C +:1001E0001301A0FF33D720029303000093015000B6 +:1001F000631877089B00F0FF9390F0031301100041 +:1002000033D720029B03F0FF9393F3039301600025 +:10021000631877069B00F0FF9390F0031301F0FF43 +:1002200033D720029303000093017000631A770410 +:100230009B00F0FF9390F0031301000033D72002DE +:100240009303F0FF93018000631C7702930010007A +:100250001301000033D720029303F0FF93019000B5 +:1002600063107702930000001301000033D72002CF +:100270009303F0FF9301A000631477006310300232 +:100280000F00F00F638001009391110093E11100C2 +:100290009308D00513850100730000000F00F00FD4 +:1002A000930110009308D0051305000073000000AF +:0C02B000731000C00000000000000000FF +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64um-p-divuw.hex b/tests/riscv/isa64/rv64um-p-divuw.hex new file mode 100644 index 00000000..75338393 --- /dev/null +++ b/tests/riscv/isa64/rv64um-p-divuw.hex @@ -0,0 +1,52 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F1730020309300400113016000AB +:100180003BD720029303300093012000631A770CC1 +:100190009B001000939000029380C0FE130160004A +:1001A0003BD72002B7B3AA2A9B8373AA93013000DE +:1001B0006318770A930040011301A0FF3BD7200288 +:1001C0009303000093014000631C77089300C0FE76 +:1001D0001301A0FF3BD720029303000093015000BE +:1001E00063107708B7000080130110003BD720028E +:1001F000B70300809301600063147706B7000080A6 +:100200001301F0FF3BD7200293030000930170001D +:1002100063187704B7000080130100003BD7200269 +:100220009303F0FF93018000631C7702930010009A +:10023000130100003BD720029303F0FF93019000CD +:100240006310770293000000130100003BD72002E7 +:100250009303F0FF9301A000631477006310300252 +:100260000F00F00F638001009391110093E11100E2 +:100270009308D00513850100730000000F00F00FF4 +:10028000930110009308D0051305000073000000CF +:10029000731000C00000000000000000000000001B +:1002A000000000000000000000000000000000004E +:0C02B00000000000000000000000000042 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64um-p-divw.hex b/tests/riscv/isa64/rv64um-p-divw.hex new file mode 100644 index 00000000..b379b8a1 --- /dev/null +++ b/tests/riscv/isa64/rv64um-p-divw.hex @@ -0,0 +1,52 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F1730020309300400113016000AB +:100180003BC7200293033000930120006314770CD7 +:100190009300C0FE130160003BC720029303D0FF11 +:1001A000930130006318770A930040011301A0FF08 +:1001B0003BC720029303D0FF93014000631C7708E4 +:1001C0009300C0FE1301A0FF3BC720029303300041 +:1001D0009301500063107708B700008013011000EE +:1001E0003BC72002B70300809301600063147706C9 +:1001F000B70000801301F0FF3BC72002B703008067 +:100200009301700063187704B700008013010000A9 +:100210003BC720029303F0FF93018000631C770229 +:1002200093001000130100003BC720029303F0FF6E +:100230009301900063107702930000001301000007 +:100240003BC720029303F0FF9301A00063147700E3 +:10025000631030020F00F00F6380010093911100D2 +:1002600093E111009308D00513850100730000008D +:100270000F00F00F930110009308D0051305000044 +:1002800073000000731000C00000000000000000B8 +:10029000000000000000000000000000000000005E +:1002A000000000000000000000000000000000004E +:0C02B00000000000000000000000000042 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64um-p-mul.hex b/tests/riscv/isa64/rv64um-p-mul.hex new file mode 100644 index 00000000..b6536ff1 --- /dev/null +++ b/tests/riscv/isa64/rv64um-p-mul.hex @@ -0,0 +1,112 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F173002030B78000009B8000E0C1 +:100180003771DB061B0171DB1311C100130171DB39 +:100190001311C100130171DB1311C100130171DBD5 +:1001A00033872002B71300009B83032093010002D2 +:1001B000631A7748B78000009B8000FC3771DB062C +:1001C0001B0171DB1311C100130171DB1311C1009D +:1001D000130171DB1311C100130171DB338720029E +:1001E000B71300009B83032493011002631C774420 +:1001F00093000000130100003387200293030000E6 +:100200009301200063107744930010001301100045 +:100210003387200293031000930130006314774268 +:1002200093003000130170003387200293035001C4 +:100230009301400063187740930000003781FFFF6F +:10024000338720029303000093015000631C773E24 +:10025000B7000080130100003387200293030000E1 +:10026000930160006310773EB70000803781FFFF85 +:10027000338720029B0310009393E30293017000E5 +:100280006312773CB7B0AAFA9B80B0AA9390C000E3 +:100290009380B0AA9390C0009380B0AA9390C000BE +:1002A0009380B0AA370103001B01D1E733872002F6 +:1002B000B70301009B83F3F79301E00163147738E0 +:1002C000B70003009B80D0E737B1AAFA1B01B1AA9F +:1002D0001311C1001301B1AA1311C1001301B1AA76 +:1002E0001311C1001301B1AA33872002B703010023 +:1002F0009B83F3F79301F001631677349300D000EA +:100300001301B000B38020029303F0089301800032 +:10031000639A70329300E0001301B0003381200231 +:100320009303A00993019000631E71309300D000E5 +:10033000B38010029303900A9301A000639470307D +:10034000130200009300D0001301B0003387200295 +:10035000130307001302120093022000E31452FE5D +:100360009303F0089301B000631E732C1302000086 +:100370009300E0001301B000338720021300000057 +:10038000130307001302120093022000E31252FE2F +:100390009303A0099301C0006316732A130200009F +:1003A0009300F0001301B000338720021300000017 +:1003B0001300000013030700130212009302200031 +:1003C000E31052FE9303500A9301D000631C73267E +:1003D000130200009300D0001301B0003387200205 +:1003E0001302120093022000E31652FE9303F0085A +:1003F0009301E00063187724130200009300E000EB +:100400001301B00013000000338720021302120012 +:1004100093022000E31452FE9303A0099301F0001D +:1004200063127722130200009300F0001301B00062 +:100430001300000013000000338720021302120093 +:1004400093022000E31252FE9303500A930100012D +:10045000631A771E130200009300D00013000000FF +:100460001301B00033872002130212009302200010 +:10047000E31452FE9303F008930110016314771CF8 +:10048000130200009300E000130000001301B0000D +:100490001300000033872002130212009302200091 +:1004A000E31252FE9303A00993012001631C771805 +:1004B000130200009300F00013000000130000007E +:1004C0001301B000338720021302120093022000B0 +:1004D000E31252FE9303500A93013001631477161E +:1004E000130200001301B0009300D00033872002F4 +:1004F0001302120093022000E31652FE9303F00849 +:100500009301400163107714130200001301B0003F +:100510009300E00013000000338720021302120052 +:1005200093022000E31452FE9303A00993015001AB +:10053000631A7710130200001301B0009300F0005B +:100540001300000013000000338720021302120082 +:1005500093022000E31252FE9303500A93016001BC +:100560006312770E130200001301B00013000000A5 +:100570009300D00033872002130212009302200060 +:10058000E31452FE9303F00893017001631C770A91 +:10059000130200001301B000130000009300E000FC +:1005A0001300000033872002130212009302200080 +:1005B000E31252FE9303A0099301800163147708AC +:1005C000130200001301B00013000000130000002C +:1005D0009300F000338720021302120093022000E0 +:1005E000E31252FE9303500A93019001631C7704B7 +:1005F0009300F00133011002930300009301A00166 +:10060000631271049300000233810002930300001F +:100610009301B00163187102B3000002930300005C +:100620009301C00163907002930010021301200235 +:1006300033802002930300009301D0016314700003 +:10064000631030020F00F00F6380010093911100DE +:1006500093E111009308D005138501007300000099 +:100660000F00F00F930110009308D0051305000050 +:0C06700073000000731000C000000000C8 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64um-p-mulh.hex b/tests/riscv/isa64/rv64um-p-mulh.hex new file mode 100644 index 00000000..4108e732 --- /dev/null +++ b/tests/riscv/isa64/rv64um-p-mulh.hex @@ -0,0 +1,108 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F17300203093000000130100004C +:100180003397200293030000930120006310774609 +:100190009300100013011000339720029303000016 +:1001A0009301300063147744930030001301700012 +:1001B00033972002930300009301400063187742B5 +:1001C000930000003781FFFF339720029303000064 +:1001D00093015000631C7740B700008013010000BA +:1001E000339720029303000093016000631077406F +:1001F000B70000803781FFFF339720029303000090 +:10020000930170006314773E9B00D000939000022E +:100210001B01B00013110102B39020029303F008F8 +:10022000930180006394703C9B00700093901002D7 +:100230001B01B00013110102339120029303A009A6 +:10024000930190006314713A9B00D00093900002D8 +:10025000B39010029303900A9301A0006398703842 +:10026000130200009B00D000939000021B01B0001D +:100270001311010233972002130307001302120027 +:1002800093022000E31052FE9303F0089301B000A4 +:10029000631E7334130200009B00700093901002E1 +:1002A0001B01B0001311010233972002130000005C +:1002B000130307001302120093022000E31E52FCF6 +:1002C0009303A0099301C00063127332130200006C +:1002D0009B00F000939000021B01B000131101027B +:1002E00033972002130000001300000013030700DF +:1002F0001302120093022000E31C52FC9303500AE5 +:100300009301D0006314732E130200009B00D000F1 +:10031000939000021B01B0001311010233972002D9 +:100320001302120093022000E31252FE9303F0081E +:100330009301E000631C772A130200009B00700009 +:10034000939010021B01B000131101021300000072 +:10035000339720021302120093022000E31052FE92 +:100360009303A0099301F0006312772813020000A1 +:100370009B00F000939000021B01B00013110102DA +:100380001300000013000000339720021302120034 +:1003900093022000E31E52FC9303500A93010001D4 +:1003A00063167724130200009B00D0009390000294 +:1003B000130000001B01B00013110102339720024B +:1003C0001302120093022000E31052FE9303F00880 +:1003D00093011001631C7720130200009B00700042 +:1003E00093901002130000001B01B00013110102D2 +:1003F0001300000033972002130212009302200022 +:10040000E31E52FC9303A009930120016310771EA1 +:10041000130200009B00F000939000021300000004 +:10042000130000001B01B0001311010233972002DA +:100430001302120093022000E31E52FC9303500AA1 +:10044000930130016314771A130200001B01B000FE +:10045000131101029B00D0009390000233972002F9 +:100460001302120093022000E31252FE9303F008DD +:1004700093014001631C7716130200001B01B000BA +:10048000131101029B0070009390100213000000F2 +:10049000339720021302120093022000E31052FE51 +:1004A0009303A00993015001631277141302000013 +:1004B0001B01B000131101029B00F0009390000299 +:1004C00013000000130000003397200213021200F3 +:1004D00093022000E31E52FC9303500A9301600133 +:1004E00063167710130200001B01B0001311010204 +:1004F000130000009B00D00093900002339720026D +:100500001302120093022000E31052FE9303F0083E +:1005100093017001631C770C130200001B01B000F3 +:1005200013110102130000009B0070009390100251 +:1005300013000000339720021302120093022000E0 +:10054000E31E52FC9303A009930180016310770A14 +:10055000130200001B01B000131101021300000080 +:10056000130000009B00F0009390000233972002DC +:100570001302120093022000E31E52FC9303500A60 +:1005800093019001631477069B00F00193900002A1 +:1005900033111002930300009301A001631871044A +:1005A0009B001000939050023391000293030000CF +:1005B0009301B001631C7102B310000293030000A9 +:1005C0009301C001639470029B001002939000029B +:1005D0001B0110011311110233902002930300003C +:1005E0009301D00163147000631030020F00F00F0C +:1005F000638001009391110093E111009308D005ED +:1006000013850100730000000F00F00F930110002C +:100610009308D0051305000073000000731000C09C +:1006200000000000000000000000000000000000CA +:0C063000000000000000000000000000BE +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64um-p-mulhsu.hex b/tests/riscv/isa64/rv64um-p-mulhsu.hex new file mode 100644 index 00000000..1f5f9260 --- /dev/null +++ b/tests/riscv/isa64/rv64um-p-mulhsu.hex @@ -0,0 +1,108 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F17300203093000000130100004C +:1001800033A72002930300009301200063107746F9 +:10019000930010001301100033A720029303000006 +:1001A0009301300063147744930030001301700012 +:1001B00033A72002930300009301400063187742A5 +:1001C000930000003781FFFF33A720029303000054 +:1001D00093015000631C7740B700008013010000BA +:1001E00033A720029303000093016000631077405F +:1001F000B70000803781FFFF33A72002B7030080DC +:10020000930170006314773E9B00D000939000022E +:100210001B01B00013110102B3A020029303F008E8 +:10022000930180006394703C9B00700093901002D7 +:100230001B01B0001311010233A120029303A00996 +:10024000930190006314713A9B00D00093900002D8 +:10025000B3A010029303900A9301A0006398703832 +:10026000130200009B00D000939000021B01B0001D +:100270001311010233A72002130307001302120017 +:1002800093022000E31052FE9303F0089301B000A4 +:10029000631E7334130200009B00700093901002E1 +:1002A0001B01B0001311010233A72002130000004C +:1002B000130307001302120093022000E31E52FCF6 +:1002C0009303A0099301C00063127332130200006C +:1002D0009B00F000939000021B01B000131101027B +:1002E00033A72002130000001300000013030700CF +:1002F0001302120093022000E31C52FC9303500AE5 +:100300009301D0006314732E130200009B00D000F1 +:10031000939000021B01B0001311010233A72002C9 +:100320001302120093022000E31252FE9303F0081E +:100330009301E000631C772A130200009B00700009 +:10034000939010021B01B000131101021300000072 +:1003500033A720021302120093022000E31052FE82 +:100360009303A0099301F0006312772813020000A1 +:100370009B00F000939000021B01B00013110102DA +:10038000130000001300000033A720021302120024 +:1003900093022000E31E52FC9303500A93010001D4 +:1003A00063167724130200009B00D0009390000294 +:1003B000130000001B01B0001311010233A720023B +:1003C0001302120093022000E31052FE9303F00880 +:1003D00093011001631C7720130200009B00700042 +:1003E00093901002130000001B01B00013110102D2 +:1003F0001300000033A72002130212009302200012 +:10040000E31E52FC9303A009930120016310771EA1 +:10041000130200009B00F000939000021300000004 +:10042000130000001B01B0001311010233A72002CA +:100430001302120093022000E31E52FC9303500AA1 +:10044000930130016314771A130200001B01B000FE +:10045000131101029B00D0009390000233A72002E9 +:100460001302120093022000E31252FE9303F008DD +:1004700093014001631C7716130200001B01B000BA +:10048000131101029B0070009390100213000000F2 +:1004900033A720021302120093022000E31052FE41 +:1004A0009303A00993015001631277141302000013 +:1004B0001B01B000131101029B00F0009390000299 +:1004C000130000001300000033A7200213021200E3 +:1004D00093022000E31E52FC9303500A9301600133 +:1004E00063167710130200001B01B0001311010204 +:1004F000130000009B00D0009390000233A720025D +:100500001302120093022000E31052FE9303F0083E +:1005100093017001631C770C130200001B01B000F3 +:1005200013110102130000009B0070009390100251 +:100530001300000033A720021302120093022000D0 +:10054000E31E52FC9303A009930180016310770A14 +:10055000130200001B01B000131101021300000080 +:10056000130000009B00F0009390000233A72002CC +:100570001302120093022000E31E52FC9303500A60 +:1005800093019001631477069B00F00193900002A1 +:1005900033211002930300009301A001631871043A +:1005A0009B0010009390500233A1000293030000BF +:1005B0009301B001631C7102B32000029303000099 +:1005C0009301C001639470029B001002939000029B +:1005D0001B0110011311110233A02002930300002C +:1005E0009301D00163147000631030020F00F00F0C +:1005F000638001009391110093E111009308D005ED +:1006000013850100730000000F00F00F930110002C +:100610009308D0051305000073000000731000C09C +:1006200000000000000000000000000000000000CA +:0C063000000000000000000000000000BE +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64um-p-mulhu.hex b/tests/riscv/isa64/rv64um-p-mulhu.hex new file mode 100644 index 00000000..828ccc38 --- /dev/null +++ b/tests/riscv/isa64/rv64um-p-mulhu.hex @@ -0,0 +1,116 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F17300203093000000130100004C +:1001800033B7200293030000930120006310774EE1 +:10019000930010001301100033B7200293030000F6 +:1001A000930130006314774C93003000130170000A +:1001B00033B7200293030000930140006318774A8D +:1001C000930000003781FFFF33B720029303000044 +:1001D00093015000631C7748B700008013010000B2 +:1001E00033B7200293030000930160006310774847 +:1001F000B70000803781FFFF33B72002B703FFFF4E +:100200009B83F3FF9393F300930170006310774691 +:10021000B7B0AAFA9B80B0AA9390C0009380B0AA0E +:100220009390C0009380B0AA9390C0009380B0AA2E +:10023000370103001B01D1E733B72002B7030200E7 +:100240009B83E3EF9301E00163127742B700030061 +:100250009B80D0E737B1AAFA1B01B1AA1311C100E4 +:100260001301B1AA1311C1001301B1AA1311C100E6 +:100270001301B1AA33B72002B70302009B83E3EF57 +:100280009301F0016314773E9B00D000939000022D +:100290001B01B00013110102B3B020029303F00858 +:1002A000930180006394703C9B0070009390100257 +:1002B0001B01B0001311010233B120029303A00906 +:1002C000930190006314713A9B00D0009390000258 +:1002D000B3B010029303900A9301A00063987038A2 +:1002E000130200009B00D000939000021B01B0009D +:1002F0001311010233B72002130307001302120087 +:1003000093022000E31052FE9303F0089301B00023 +:10031000631E7334130200009B0070009390100260 +:100320001B01B0001311010233B7200213000000BB +:10033000130307001302120093022000E31E52FC75 +:100340009303A0099301C0006312733213020000EB +:100350009B00F000939000021B01B00013110102FA +:1003600033B720021300000013000000130307003E +:100370001302120093022000E31C52FC9303500A64 +:100380009301D0006314732E130200009B00D00071 +:10039000939000021B01B0001311010233B7200239 +:1003A0001302120093022000E31252FE9303F0089E +:1003B0009301E000631C772A130200009B00700089 +:1003C000939010021B01B0001311010213000000F2 +:1003D00033B720021302120093022000E31052FEF2 +:1003E0009303A0099301F000631277281302000021 +:1003F0009B00F000939000021B01B000131101025A +:10040000130000001300000033B720021302120093 +:1004100093022000E31E52FC9303500A9301000153 +:1004200063167724130200009B00D0009390000213 +:10043000130000001B01B0001311010233B72002AA +:100440001302120093022000E31052FE9303F008FF +:1004500093011001631C7720130200009B007000C1 +:1004600093901002130000001B01B0001311010251 +:100470001300000033B72002130212009302200081 +:10048000E31E52FC9303A009930120016310771E21 +:10049000130200009B00F000939000021300000084 +:1004A000130000001B01B0001311010233B720023A +:1004B0001302120093022000E31E52FC9303500A21 +:1004C000930130016314771A130200001B01B0007E +:1004D000131101029B00D0009390000233B7200259 +:1004E0001302120093022000E31252FE9303F0085D +:1004F00093014001631C7716130200001B01B0003A +:10050000131101029B007000939010021300000071 +:1005100033B720021302120093022000E31052FEB0 +:100520009303A00993015001631277141302000092 +:100530001B01B000131101029B00F0009390000218 +:10054000130000001300000033B720021302120052 +:1005500093022000E31E52FC9303500A93016001B2 +:1005600063167710130200001B01B0001311010283 +:10057000130000009B00D0009390000233B72002CC +:100580001302120093022000E31052FE9303F008BE +:1005900093017001631C770C130200001B01B00073 +:1005A00013110102130000009B00700093901002D1 +:1005B0001300000033B72002130212009302200040 +:1005C000E31E52FC9303A009930180016310770A94 +:1005D000130200001B01B000131101021300000000 +:1005E000130000009B00F0009390000233B720023C +:1005F0001302120093022000E31E52FC9303500AE0 +:1006000093019001631477069B00F0019390000220 +:1006100033311002930300009301A00163187104A9 +:100620009B0010009390500233B10002930300002E +:100630009301B001631C7102B33000029303000008 +:100640009301C001639470029B001002939000021A +:100650001B0110011311110233B02002930300009B +:100660009301D00163147000631030020F00F00F8B +:10067000638001009391110093E111009308D0056C +:1006800013850100730000000F00F00F93011000AC +:100690009308D0051305000073000000731000C01C +:1006A000000000000000000000000000000000004A +:0C06B0000000000000000000000000003E +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64um-p-mulw.hex b/tests/riscv/isa64/rv64um-p-mulw.hex new file mode 100644 index 00000000..6de52e5e --- /dev/null +++ b/tests/riscv/isa64/rv64um-p-mulw.hex @@ -0,0 +1,100 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F17300203093000000130100004C +:100180003B87200293030000930120006312773C19 +:1001900093001000130110003B872002930310000E +:1001A000930130006316773A93003000130170001A +:1001B0003B8720029303500193014000631A773874 +:1001C000930000003781FFFF3B872002930300006C +:1001D00093015000631E7736B700008013010000C2 +:1001E0003B8720029303000093016000631277367F +:1001F000B70000803781FFFF3B8720029303000098 +:1002000093017000631677349300D0001301B0009F +:10021000BB8020029303F00893018000639A703240 +:100220009300E0001301B0003B8120029303A0097A +:1002300093019000631E71309300D000BB801002C8 +:100240009303900A9301A00063947030130200009E +:100250009300D0001301B0003B8720021303070076 +:100260001302120093022000E31452FE9303F008DD +:100270009301B000631E732C130200009300E00092 +:100280001301B0003B872002130000001303070096 +:100290001302120093022000E31252FE9303A009FE +:1002A0009301C0006316732A130200009300F0004C +:1002B0001301B0003B872002130000001300000070 +:1002C000130307001302120093022000E31052FEF2 +:1002D0009303500A9301D000631C7326130200009D +:1002E0009300D0001301B0003B87200213021200DC +:1002F00093022000E31652FE9303F0089301E000FE +:1003000063187724130200009300E0001301B0008B +:10031000130000003B87200213021200930220000A +:10032000E31452FE9303A0099301F00063127722B5 +:10033000130200009300F0001301B000130000004E +:10034000130000003B8720021302120093022000DA +:10035000E31252FE9303500A93010001631A771EC1 +:10036000130200009300D000130000001301B0003E +:100370003B8720021302120093022000E31452FE76 +:100380009303F008930110016314771C130200001B +:100390009300E000130000001301B0001300000000 +:1003A0003B8720021302120093022000E31252FE48 +:1003B0009303A00993012001631C77181302000026 +:1003C0009300F00013000000130000001301B000C0 +:1003D0003B8720021302120093022000E31252FE18 +:1003E0009303500A9301300163147716130200003F +:1003F0001301B0009300D0003B87200213021200CB +:1004000093022000E31652FE9303F008930140018B +:1004100063107714130200001301B0009300E00092 +:10042000130000003B8720021302120093022000F9 +:10043000E31452FE9303A00993015001631A77104D +:10044000130200001301B0009300F000130000003D +:10045000130000003B8720021302120093022000C9 +:10046000E31252FE9303500A930160016312770E68 +:10047000130200001301B000130000009300D0002D +:100480003B8720021302120093022000E31452FE65 +:100490009303F00893017001631C770A13020000B4 +:1004A0001301B000130000009300E00013000000EF +:1004B0003B8720021302120093022000E31252FE37 +:1004C0009303A009930180016314770813020000CD +:1004D0001301B00013000000130000009300F000AF +:1004E0003B8720021302120093022000E31252FE07 +:1004F0009303500A93019001631C77049300F00169 +:100500003B011002930300009301A00163127104E8 +:10051000930000023B810002930300009301B001AD +:1005200063187102BB000002930300009301C00135 +:100530006390700293001002130120023B8020029E +:10054000930300009301D001631470006310300224 +:100550000F00F00F638001009391110093E11100EF +:100560009308D00513850100730000000F00F00F01 +:10057000930110009308D0051305000073000000DC +:10058000731000C000000000000000000000000028 +:10059000000000000000000000000000000000005B +:1005A000000000000000000000000000000000004B +:0C05B0000000000000000000000000003F +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64um-p-rem.hex b/tests/riscv/isa64/rv64um-p-rem.hex new file mode 100644 index 00000000..6c5728b4 --- /dev/null +++ b/tests/riscv/isa64/rv64um-p-rem.hex @@ -0,0 +1,52 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F1730020309300400113016000AB +:1001800033E720029303200093012000631C770CC7 +:100190009300C0FE1301600033E720029303E0FFE9 +:1001A000930130006310770C930040011301A0FF0E +:1001B00033E7200293032000930140006314770A81 +:1001C0009300C0FE1301A0FF33E720029303E0FF7A +:1001D00093015000631877089B00F0FF9390F003A1 +:1001E0001301100033E72002930300009301600025 +:1001F000631A77069B00F0FF9390F0031301F0FF62 +:1002000033E720029303000093017000631C77041E +:100210009B00F0FF9390F0031301000033E72002EE +:100220009B03F0FF9393F30393018000631C770219 +:10023000930010001301000033E720029303100025 +:1002400093019000631077029300000013010000F7 +:1002500033E72002930300009301A00063147700AA +:10026000631030020F00F00F6380010093911100C2 +:1002700093E111009308D00513850100730000007D +:100280000F00F00F930110009308D0051305000034 +:1002900073000000731000C00000000000000000A8 +:1002A000000000000000000000000000000000004E +:0C02B00000000000000000000000000042 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64um-p-remu.hex b/tests/riscv/isa64/rv64um-p-remu.hex new file mode 100644 index 00000000..ba81a927 --- /dev/null +++ b/tests/riscv/isa64/rv64um-p-remu.hex @@ -0,0 +1,52 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F1730020309300400113016000AB +:1001800033F720029303200093012000631E770CB5 +:100190009300C0FE1301600033F720029303200098 +:1001A000930130006312770C930040011301A0FF0C +:1001B00033F7200293034001930140006316770A4E +:1001C0009300C0FE1301A0FF33F720029303C0FE8B +:1001D00093015000631A77089B00F0FF9390F0039F +:1001E0001301100033F72002930300009301600015 +:1001F000631C77069B00F0FF9390F0031301F0FF60 +:1002000033F720029B03F0FF9393F30393017000F5 +:10021000631C77049B00F0FF9390F0031301000030 +:1002200033F720029B03F0FF9393F30393018000C5 +:10023000631C7702930010001301000033F72002C3 +:100240009303100093019000631077029300000065 +:100250001301000033F72002930300009301A00074 +:1002600063147700631030020F00F00F6380010009 +:100270009391110093E111009308D00513850100BB +:10028000730000000F00F00F930110009308D005D9 +:100290001305000073000000731000C00000000090 +:1002A000000000000000000000000000000000004E +:0C02B00000000000000000000000000042 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64um-p-remuw.hex b/tests/riscv/isa64/rv64um-p-remuw.hex new file mode 100644 index 00000000..39493b38 --- /dev/null +++ b/tests/riscv/isa64/rv64um-p-remuw.hex @@ -0,0 +1,52 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F1730020309300400113016000AB +:100180003BF7200293032000930120006314770CB7 +:100190009300C0FE130160003BF720029303200090 +:1001A000930130006318770A930040011301A0FF08 +:1001B0003BF720029303400193014000631C770842 +:1001C0009300C0FE1301A0FF3BF720029303C0FE83 +:1001D0009301500063107708B700008013011000EE +:1001E0003BF720029303000093016000631477063D +:1001F000B70000801301F0FF3BF72002B703008037 +:100200009301700063187704B700008013010000A9 +:100210003BF72002B703008093018000631C770244 +:1002200093001000130100003BF72002930310001D +:100230009301900063107702930000001301000007 +:100240003BF72002930300009301A00063147700A2 +:10025000631030020F00F00F6380010093911100D2 +:1002600093E111009308D00513850100730000008D +:100270000F00F00F930110009308D0051305000044 +:1002800073000000731000C00000000000000000B8 +:10029000000000000000000000000000000000005E +:1002A000000000000000000000000000000000004E +:0C02B00000000000000000000000000042 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/riscv/isa64/rv64um-p-remw.hex b/tests/riscv/isa64/rv64um-p-remw.hex new file mode 100644 index 00000000..4c849829 --- /dev/null +++ b/tests/riscv/isa64/rv64um-p-remw.hex @@ -0,0 +1,52 @@ +:0200000480007A +:100000006F008004732F2034930F80006308FF0378 +:10001000930F90006304FF03930FB0006300FF038E +:10002000130F000063040F0067000F00732F2034CC +:1000300063540F006F00400093E19153171F0000BD +:1000400023223FFC6FF09FFF93000000130100008C +:10005000930100001302000093020000130300004C +:100060009303000013040000930400001305000034 +:10007000930500001306000093060000130700001C +:100080009307000013080000930800001309000004 +:1000900093090000130A0000930A0000130B0000EC +:1000A000930B0000130C0000930C0000130D0000D4 +:1000B000930D0000130E0000930E0000130F0000BC +:1000C000930F0000732540F16310050097020000B4 +:1000D000938202017390523073500018970200000F +:1000E00093824202739052309B021000939252030B +:1000F0009382F2FF7390023B9302F0017390023AF5 +:100100007350403097020000938242017390523046 +:10011000735020307350303093010000970200007C +:10012000938282EE73905230130510001315F5017F +:10013000635C05000F00F00F930110009308D005D9 +:10014000130500007300000093020000638A0200A0 +:1001500073905210B7B200009B82921073902230BD +:100160007350003097020000938242017390123462 +:10017000732540F1730020309300400113016000AB +:100180003BE7200293032000930120006310770EC9 +:100190009300C0FE130160003BE720029303E0FFE1 +:1001A000930130006314770C930040011301A0FF0A +:1001B0003BE7200293032000930140006318770A75 +:1001C0009300C0FE1301A0FF3BE720029303E0FF72 +:1001D00093015000631C7708B700008013011000E2 +:1001E0003BE720029303000093016000631077084F +:1001F000B70000801301F0FF3BE7200293030000EB +:100200009301700063147706B700008013010000AB +:100210003BE72002B7030080930180006318770456 +:1002200093001000130100003BE72002930310002D +:1002300093019000631C77029300000013010000FB +:100240003BE72002930300009301A00063107702B4 +:1002500093007089130100003BE72002930370892B +:100260009301B00063147700631030020F00F00FA9 +:10027000638001009391110093E111009308D00570 +:1002800013850100730000000F00F00F93011000B0 +:100290009308D0051305000073000000731000C020 +:1002A000000000000000000000000000000000004E +:0C02B00000000000000000000000000042 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000000000000C0 +:1010300000000000000000000000000000000000B0 +:081040000000000000000000A8 +:040000058000000077 +:00000001FF diff --git a/tests/runtime/Makefile b/tests/runtime/Makefile index f420f31c..a6869135 100644 --- a/tests/runtime/Makefile +++ b/tests/runtime/Makefile @@ -11,10 +11,10 @@ run-simx: run-rtlsim: $(MAKE) -C hello run-rtlsim $(MAKE) -C fibonacci run-rtlsim - $(MAKE) -C simple run-rtlsim + $(MAKE) -C simple run-rtlsim clean: $(MAKE) -C hello clean $(MAKE) -C fibonacci clean - $(MAKE) -C simple clean + $(MAKE) -C simple clean diff --git a/tests/runtime/hello64/Makefile b/tests/runtime/hello64/Makefile new file mode 100644 index 00000000..dbf04c83 --- /dev/null +++ b/tests/runtime/hello64/Makefile @@ -0,0 +1,42 @@ +RISCV_TOOLCHAIN_PATH ?= /opt/riscv-gnu-toolchain +RISCV64_TOOLCHAIN_PATH ?= /nethome/ssrivatsan8/riscv +VORTEX_RT_PATH ?= $(realpath ../../../runtime) + +CC = $(RISCV64_TOOLCHAIN_PATH)/bin/riscv64-unknown-elf-gcc +AR = $(RISCV64_TOOLCHAIN_PATH)/bin/riscv64-unknown-elf-gcc-ar +DP = $(RISCV64_TOOLCHAIN_PATH)/bin/riscv64-unknown-elf-objdump +CP = $(RISCV64_TOOLCHAIN_PATH)/bin/riscv64-unknown-elf-objcopy + +CFLAGS += -march=rv64imfd -mabi=lp64d -O3 -Wstack-usage=1024 -ffreestanding -nostartfiles -fdata-sections -ffunction-sections +CFLAGS += -I$(VORTEX_RT_PATH)/include -I$(VORTEX_RT_PATH)/../hw + +LDFLAGS += -Wl,-Bstatic,-T,$(VORTEX_RT_PATH)/linker/vx_link64.ld -Wl,--gc-sections + +# $(VORTEX_RT_PATH)/libvortexrt.a + +PROJECT = hello64 + +SRCS = main.cpp $(VORTEX_RT_PATH)/src/vx_start.S $(VORTEX_RT_PATH)/src/vx_syscalls.c + +all: $(PROJECT).elf $(PROJECT).bin $(PROJECT).dump + +$(PROJECT).dump: $(PROJECT).elf + $(DP) -D $(PROJECT).elf > $(PROJECT).dump + +$(PROJECT).bin: $(PROJECT).elf + $(CP) -O binary $(PROJECT).elf $(PROJECT).bin + +$(PROJECT).elf: $(SRCS) + $(CC) $(CFLAGS) $(SRCS) $(LDFLAGS) -o $(PROJECT).elf + +run-rtlsim: $(PROJECT).bin + ../../../sim/rtlsim/rtlsim $(PROJECT).bin + +run-simx: $(PROJECT).bin + ../../../sim/simX/simX -a rv64i -c 1 -i $(PROJECT).bin + +.depend: $(SRCS) + $(CC) $(CFLAGS) -MM $^ > .depend; + +clean: + rm -rf *.elf *.bin *.dump .depend diff --git a/tests/runtime/hello64/main.cpp b/tests/runtime/hello64/main.cpp new file mode 100644 index 00000000..d9ad0537 --- /dev/null +++ b/tests/runtime/hello64/main.cpp @@ -0,0 +1,6 @@ +#include + +int main() +{ + return 0; +} \ No newline at end of file diff --git a/tests/runtime/simple64/Makefile b/tests/runtime/simple64/Makefile new file mode 100644 index 00000000..1ccf20cf --- /dev/null +++ b/tests/runtime/simple64/Makefile @@ -0,0 +1,40 @@ +RISCV_TOOLCHAIN_PATH ?= /opt/riscv-gnu-toolchain +RISCV64_TOOLCHAIN_PATH ?= /nethome/ssrivatsan8/riscv +VORTEX_RT_PATH ?= $(realpath ../../../runtime) + +CC = $(RISCV64_TOOLCHAIN_PATH)/bin/riscv64-unknown-elf-gcc +AR = $(RISCV64_TOOLCHAIN_PATH)/bin/riscv64-unknown-elf-gcc-ar +DP = $(RISCV64_TOOLCHAIN_PATH)/bin/riscv64-unknown-elf-objdump +CP = $(RISCV64_TOOLCHAIN_PATH)/bin/riscv64-unknown-elf-objcopy + +CFLAGS += -march=rv64imfd -mabi=lp64d -O3 -Wstack-usage=1024 -ffreestanding -nostartfiles -fdata-sections -ffunction-sections +CFLAGS += -I$(VORTEX_RT_PATH)/include -I$(VORTEX_RT_PATH)/../hw + +LDFLAGS += -Wl,-Bstatic,-T,$(VORTEX_RT_PATH)/linker/vx_link64.ld -Wl,--gc-sections $(VORTEX_RT_PATH)/libvortexrt.a + +PROJECT = simple64 + +SRCS = main.cpp + +all: $(PROJECT).elf $(PROJECT).bin $(PROJECT).dump + +$(PROJECT).dump: $(PROJECT).elf + $(DP) -D $(PROJECT).elf > $(PROJECT).dump + +$(PROJECT).bin: $(PROJECT).elf + $(CP) -O binary $(PROJECT).elf $(PROJECT).bin + +$(PROJECT).elf: $(SRCS) + $(CC) $(CFLAGS) $(SRCS) $(LDFLAGS) -o $(PROJECT).elf + +run-rtlsim: $(PROJECT).bin + ../../../sim/rtlsim/rtlsim $(PROJECT).bin + +run-simx: $(PROJECT).bin + ../../../sim/simX/simX -a rv64i -c 1 -i $(PROJECT).bin + +.depend: $(SRCS) + $(CC) $(CFLAGS) -MM $^ > .depend; + +clean: + rm -rf *.elf *.bin *.dump .depend diff --git a/tests/runtime/simple64/main.cpp b/tests/runtime/simple64/main.cpp new file mode 100644 index 00000000..68e00b3a --- /dev/null +++ b/tests/runtime/simple64/main.cpp @@ -0,0 +1,5 @@ +int main() +{ + int num=1+2; + return 0; +} \ No newline at end of file