mirror of
https://github.com/openhwgroup/cvw
synced 2025-02-03 10:15:19 +00:00
Merge branch 'main' of https://github.com/davidharrishmc/riscv-wally into main
This commit is contained in:
commit
5eccbcf531
@ -12,6 +12,17 @@
|
||||
##################################
|
||||
import sys,os
|
||||
|
||||
class bcolors:
|
||||
HEADER = '\033[95m'
|
||||
OKBLUE = '\033[94m'
|
||||
OKCYAN = '\033[96m'
|
||||
OKGREEN = '\033[92m'
|
||||
WARNING = '\033[93m'
|
||||
FAIL = '\033[91m'
|
||||
ENDC = '\033[0m'
|
||||
BOLD = '\033[1m'
|
||||
UNDERLINE = '\033[4m'
|
||||
|
||||
from collections import namedtuple
|
||||
regressionDir = os.path.dirname(os.path.abspath(__file__))
|
||||
os.chdir(regressionDir)
|
||||
@ -103,10 +114,10 @@ def run_test_case(config):
|
||||
os.chdir(regressionDir)
|
||||
os.system(cmd)
|
||||
if search_log_for_text(config.grepstr, logname):
|
||||
print("%s_%s: Success" % (config.variant, config.name))
|
||||
print(f"{bcolors.OKGREEN}%s_%s: Success{bcolors.ENDC}" % (config.variant, config.name))
|
||||
return 0
|
||||
else:
|
||||
print("%s_%s: Failures detected in output" % (config.variant, config.name))
|
||||
print(f"{bcolors.FAIL}%s_%s: Failures detected in output{bcolors.ENDC}" % (config.variant, config.name))
|
||||
print(" Check %s" % logname)
|
||||
return 1
|
||||
|
||||
@ -145,16 +156,16 @@ def main():
|
||||
num_fail+=result.get(timeout=TIMEOUT_DUR)
|
||||
except TimeoutError:
|
||||
num_fail+=1
|
||||
print("%s_%s: Timeout - runtime exceeded %d seconds" % (config.variant, config.name, TIMEOUT_DUR))
|
||||
print(f"{bcolors.FAIL}%s_%s: Timeout - runtime exceeded %d seconds{bcolors.ENDC}" % (config.variant, config.name, TIMEOUT_DUR))
|
||||
|
||||
# Count the number of failures
|
||||
if num_fail:
|
||||
print("Regression failed with %s failed configurations" % num_fail)
|
||||
print(f"{bcolors.FAIL}Regression failed with %s failed configurations{bcolors.ENDC}" % num_fail)
|
||||
# Remind the user to try `make allclean`, since it may be needed if test
|
||||
# cases have changed
|
||||
print("Reminder: have you run `make allclean`?")
|
||||
else:
|
||||
print("SUCCESS! All tests ran without failures")
|
||||
print(f"{bcolors.OKGREEN}SUCCESS! All tests ran without failures{bcolors.ENDC}")
|
||||
return num_fail
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
@ -96,7 +96,6 @@ module ifu (
|
||||
logic [`XLEN-1:0] PCD;
|
||||
|
||||
localparam [31:0] nop = 32'h00000013; // instruction for NOP
|
||||
logic reset_q; // see comment below about PCNextF and icache.
|
||||
|
||||
logic [`XLEN-1:0] PCBPWrongInvalidate;
|
||||
logic BPPredWrongM;
|
||||
@ -106,8 +105,8 @@ module ifu (
|
||||
logic [`XLEN+1:0] PCFExt;
|
||||
|
||||
logic CacheableF;
|
||||
logic [`XLEN-1:0] PCNextFMux;
|
||||
logic [`XLEN-1:0] PCFMux;
|
||||
logic [`XLEN-1:0] PCNextFSpill;
|
||||
logic [`XLEN-1:0] PCFSpill;
|
||||
logic SelNextSpill;
|
||||
logic ICacheFetchLine;
|
||||
logic BusStall;
|
||||
@ -127,8 +126,8 @@ module ifu (
|
||||
// this exists only if there are compressed instructions.
|
||||
assign PCFp2 = PCF + `XLEN'b10;
|
||||
|
||||
assign PCNextFMux = SelNextSpill ? PCFp2 : PCNextF;
|
||||
assign PCFMux = SelSpill ? PCFp2 : PCF;
|
||||
assign PCNextFSpill = SelNextSpill ? PCFp2 : PCNextF;
|
||||
assign PCFSpill = SelSpill ? PCFp2 : PCF;
|
||||
|
||||
assign Spill = &PCF[$clog2(SPILLTHRESHOLD)+1:1];
|
||||
|
||||
@ -167,18 +166,18 @@ module ifu (
|
||||
|
||||
// end of spill support
|
||||
end else begin : NoSpillSupport // line: SpillSupport
|
||||
assign PCNextFMux = PCNextF;
|
||||
assign PCFMux = PCF;
|
||||
assign PCNextFSpill = PCNextF;
|
||||
assign PCFSpill = PCF;
|
||||
assign SelNextSpill = 0;
|
||||
assign PostSpillInstrRawF = InstrRawF;
|
||||
end
|
||||
|
||||
|
||||
assign PCFExt = {2'b00, PCFMux};
|
||||
assign PCFExt = {2'b00, PCFSpill};
|
||||
|
||||
mmu #(.TLB_ENTRIES(`ITLB_ENTRIES), .IMMU(1))
|
||||
immu(.PAdr(PCFExt[`PA_BITS-1:0]),
|
||||
.VAdr(PCFMux),
|
||||
.VAdr(PCFSpill),
|
||||
.Size(2'b10),
|
||||
.PTE(PTE),
|
||||
.PageTypeWriteVal(PageType),
|
||||
@ -235,7 +234,7 @@ module ifu (
|
||||
simpleram #(
|
||||
.BASE(`RAM_BASE), .RANGE(`RAM_RANGE)) ram (
|
||||
.clk,
|
||||
.a(CPUBusy | reset ? PCPF[31:0] : PCNextFMux[31:0]), // mux is also inside $, have to replay address if CPU is stalled.
|
||||
.a(CPUBusy | reset ? PCPF[31:0] : PCNextFSpill[31:0]), // mux is also inside $, have to replay address if CPU is stalled.
|
||||
.we(1'b0),
|
||||
.wd(0), .rd(FinalInstrRawF_FIXME));
|
||||
assign FinalInstrRawF = FinalInstrRawF_FIXME[31:0];
|
||||
@ -286,7 +285,7 @@ module ifu (
|
||||
.RW(IFURWF),
|
||||
.Atomic(2'b00),
|
||||
.FlushCache(1'b0),
|
||||
.NextAdr(PCNextFMux[11:0]),
|
||||
.NextAdr(PCNextFSpill[11:0]),
|
||||
.PAdr(PCPF),
|
||||
.CacheCommitted(),
|
||||
.InvalidateCacheM(InvalidateICacheM));
|
||||
@ -303,7 +302,7 @@ module ifu (
|
||||
|
||||
// branch predictor signal
|
||||
logic SelBPPredF;
|
||||
logic [`XLEN-1:0] BPPredPCF, PCNext0F, PCNext1F, PCNext2F, PCNext3F;
|
||||
logic [`XLEN-1:0] BPPredPCF, PCNext0F, PCNext1F, PCNext2F;
|
||||
logic [4:0] InstrClassD, InstrClassE;
|
||||
|
||||
|
||||
@ -333,15 +332,8 @@ module ifu (
|
||||
mux2 #(`XLEN) pcmux2(.d0(PCNext1F), .d1(PCBPWrongInvalidate), .s(InvalidateICacheM), .y(PCNext2F));
|
||||
// Mux only required on instruction class miss prediction.
|
||||
mux2 #(`XLEN) pcmuxBPWrongInvalidateFlush(.d0(PCE), .d1(PCF), .s(BPPredWrongM), .y(PCBPWrongInvalidate));
|
||||
mux2 #(`XLEN) pcmux3(.d0(PCNext2F), .d1(PrivilegedNextPCM), .s(PrivilegedChangePCM), .y(PCNext3F));
|
||||
// This mux is required as PCNextF needs to be the valid reset vector during reset.
|
||||
// Reseting PCF does not accomplish this as PCNextF will be +2/4 more than PCF.
|
||||
//mux2 #(`XLEN) pcmux4(.d0(PCNext3F), .d1(`RESET_VECTOR), .s(`MEM_IROM ? reset : reset_q), .y(UnalignedPCNextF));
|
||||
// mux2 #(`XLEN) pcmux4(.d0(PCNext3F), .d1(`RESET_VECTOR), .s(reset), .y(UnalignedPCNextF)); // ******* probably can get rid of by making reset SelAdr = 01
|
||||
assign UnalignedPCNextF = PCNext3F;
|
||||
|
||||
mux2 #(`XLEN) pcmux3(.d0(PCNext2F), .d1(PrivilegedNextPCM), .s(PrivilegedChangePCM), .y(UnalignedPCNextF));
|
||||
|
||||
flopenrc #(1) BPPredWrongMReg(.clk, .reset, .en(~StallM), .clear(FlushM), .d(BPPredWrongE), .q(BPPredWrongM));
|
||||
|
||||
|
||||
assign PCNextF = {UnalignedPCNextF[`XLEN-1:1], 1'b0}; // hart-SPEC p. 21 about 16-bit alignment
|
||||
@ -351,6 +343,8 @@ module ifu (
|
||||
if (`BPRED_ENABLED) begin : bpred
|
||||
logic BPPredDirWrongE, BTBPredPCWrongE, RASPredPCWrongE, BPPredClassNonCFIWrongE;
|
||||
|
||||
flopenrc #(1) BPPredWrongMReg(.clk, .reset, .en(~StallM), .clear(FlushM), .d(BPPredWrongE), .q(BPPredWrongM));
|
||||
|
||||
bpred bpred(.clk, .reset,
|
||||
.StallF, .StallD, .StallE,
|
||||
.FlushF, .FlushD, .FlushE,
|
||||
@ -376,6 +370,7 @@ module ifu (
|
||||
end else begin : bpred
|
||||
assign BPPredPCF = '0;
|
||||
assign BPPredWrongE = PCSrcE;
|
||||
assign BPPredWrongM = '0;
|
||||
assign {SelBPPredF, BPPredDirWrongM, BTBPredPCWrongM, RASPredPCWrongM, BPPredClassNonCFIWrongM} = '0;
|
||||
end
|
||||
|
||||
|
@ -0,0 +1,12 @@
|
||||
00000000
|
||||
00000001
|
||||
ffffffff
|
||||
00000001
|
||||
00000002
|
||||
00000000
|
||||
ffffffff
|
||||
00000000
|
||||
fffffffe
|
||||
b6944260
|
||||
83edeb47
|
||||
0c939c34
|
@ -0,0 +1,12 @@
|
||||
00000000
|
||||
00000001
|
||||
00000000
|
||||
00000000
|
||||
00000000
|
||||
00000000
|
||||
00000001
|
||||
00000001
|
||||
00000000
|
||||
00000000
|
||||
00000001
|
||||
00000001
|
@ -0,0 +1,12 @@
|
||||
00000000
|
||||
00000001
|
||||
00000001
|
||||
00000000
|
||||
00000000
|
||||
00000001
|
||||
00000000
|
||||
00000000
|
||||
00000000
|
||||
00000001
|
||||
00000001
|
||||
00000000
|
@ -0,0 +1,12 @@
|
||||
00000000
|
||||
ffffffff
|
||||
00000001
|
||||
00000001
|
||||
00000000
|
||||
00000002
|
||||
ffffffff
|
||||
fffffffe
|
||||
00000000
|
||||
ebb7926c
|
||||
e2aa20ca
|
||||
63a59ba8
|
@ -0,0 +1,12 @@
|
||||
00000000
|
||||
00000001
|
||||
ffffffff
|
||||
00000001
|
||||
00000000
|
||||
fffffffe
|
||||
ffffffff
|
||||
fffffffe
|
||||
00000000
|
||||
674f4c2c
|
||||
d1bb1e6e
|
||||
3395fef6
|
@ -0,0 +1,136 @@
|
||||
///////////////////////////////////////////
|
||||
// ../wally-riscv-arch-test/riscv-test-suite/rv32i_m/I/src/WALLY-ADD.S
|
||||
// David_Harris@hmc.edu & Katherine Parry
|
||||
// Created 2022-01-27 08:08:42.392776//
|
||||
// Copyright (C) 2021 Harvey Mudd College & Oklahoma State University
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
|
||||
// files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy,
|
||||
// modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software
|
||||
// is furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
||||
// BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT
|
||||
// OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
///////////////////////////////////////////
|
||||
|
||||
#include "model_test.h"
|
||||
#include "arch_test.h"
|
||||
|
||||
.section .text.init
|
||||
.globl rvtest_entry_point
|
||||
rvtest_entry_point:
|
||||
RVMODEL_BOOT
|
||||
RVTEST_CODE_BEGIN
|
||||
|
||||
RVTEST_SIGBASE( x6, wally_signature)
|
||||
|
||||
# Testcase 0: rs1:x28(0x00000000), rs2:x13(0x00000000), result rd:x25(0x00000000)
|
||||
li x28, MASK_XLEN(0x00000000)
|
||||
li x13, MASK_XLEN(0x00000000)
|
||||
ADD x25, x28, x13
|
||||
sw x25, 0(x6)
|
||||
|
||||
# Testcase 1: rs1:x29(0x00000000), rs2:x14(0x00000001), result rd:x2(0x00000001)
|
||||
li x29, MASK_XLEN(0x00000000)
|
||||
li x14, MASK_XLEN(0x00000001)
|
||||
ADD x2, x29, x14
|
||||
sw x2, 4(x6)
|
||||
|
||||
# Testcase 2: rs1:x9(0x00000000), rs2:x31(0xffffffff), result rd:x17(0xffffffff)
|
||||
li x9, MASK_XLEN(0x00000000)
|
||||
li x31, MASK_XLEN(0xffffffff)
|
||||
ADD x17, x9, x31
|
||||
sw x17, 8(x6)
|
||||
|
||||
# Testcase 3: rs1:x16(0x00000001), rs2:x13(0x00000000), result rd:x30(0x00000001)
|
||||
li x16, MASK_XLEN(0x00000001)
|
||||
li x13, MASK_XLEN(0x00000000)
|
||||
ADD x30, x16, x13
|
||||
sw x30, 12(x6)
|
||||
|
||||
# Testcase 4: rs1:x26(0x00000001), rs2:x27(0x00000001), result rd:x10(0x00000002)
|
||||
li x26, MASK_XLEN(0x00000001)
|
||||
li x27, MASK_XLEN(0x00000001)
|
||||
ADD x10, x26, x27
|
||||
sw x10, 16(x6)
|
||||
|
||||
# Testcase 5: rs1:x31(0x00000001), rs2:x16(0xffffffff), result rd:x12(0x00000000)
|
||||
li x31, MASK_XLEN(0x00000001)
|
||||
li x16, MASK_XLEN(0xffffffff)
|
||||
ADD x12, x31, x16
|
||||
sw x12, 20(x6)
|
||||
|
||||
# Testcase 6: rs1:x19(0xffffffff), rs2:x29(0x00000000), result rd:x30(0xffffffff)
|
||||
li x19, MASK_XLEN(0xffffffff)
|
||||
li x29, MASK_XLEN(0x00000000)
|
||||
ADD x30, x19, x29
|
||||
sw x30, 24(x6)
|
||||
|
||||
# Testcase 7: rs1:x7(0xffffffff), rs2:x17(0x00000001), result rd:x5(0x00000000)
|
||||
li x7, MASK_XLEN(0xffffffff)
|
||||
li x17, MASK_XLEN(0x00000001)
|
||||
ADD x5, x7, x17
|
||||
sw x5, 28(x6)
|
||||
|
||||
# Testcase 8: rs1:x10(0xffffffff), rs2:x5(0xffffffff), result rd:x25(0xfffffffe)
|
||||
li x10, MASK_XLEN(0xffffffff)
|
||||
li x5, MASK_XLEN(0xffffffff)
|
||||
ADD x25, x10, x5
|
||||
sw x25, 32(x6)
|
||||
|
||||
# Testcase 9: rs1:x26(0x1846d424), rs2:x9(0x9e4d6e3c), result rd:x30(0xb6944260)
|
||||
li x26, MASK_XLEN(0x1846d424)
|
||||
li x9, MASK_XLEN(0x9e4d6e3c)
|
||||
ADD x30, x26, x9
|
||||
sw x30, 36(x6)
|
||||
|
||||
# Testcase 10: rs1:x23(0x88561712), rs2:x26(0xfb97d435), result rd:x20(0x83edeb47)
|
||||
li x23, MASK_XLEN(0x88561712)
|
||||
li x26, MASK_XLEN(0xfb97d435)
|
||||
ADD x20, x23, x26
|
||||
sw x20, 40(x6)
|
||||
|
||||
# Testcase 11: rs1:x10(0xe6f4590b), rs2:x4(0x259f4329), result rd:x24(0x0c939c34)
|
||||
li x10, MASK_XLEN(0xe6f4590b)
|
||||
li x4, MASK_XLEN(0x259f4329)
|
||||
ADD x24, x10, x4
|
||||
sw x24, 44(x6)
|
||||
|
||||
.EQU NUMTESTS,12
|
||||
|
||||
RVTEST_CODE_END
|
||||
RVMODEL_HALT
|
||||
|
||||
RVTEST_DATA_BEGIN
|
||||
.align 4
|
||||
rvtest_data:
|
||||
.word 0x98765432
|
||||
RVTEST_DATA_END
|
||||
|
||||
RVMODEL_DATA_BEGIN
|
||||
|
||||
|
||||
wally_signature:
|
||||
.fill NUMTESTS*(XLEN/32),4,0xdeadbeef
|
||||
|
||||
#ifdef rvtest_mtrap_routine
|
||||
|
||||
mtrap_sigptr:
|
||||
.fill 64*(XLEN/32),4,0xdeadbeef
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef rvtest_gpr_save
|
||||
|
||||
gpr_save:
|
||||
.fill 32*(XLEN/32),4,0xdeadbeef
|
||||
|
||||
#endif
|
||||
|
||||
RVMODEL_DATA_END
|
||||
// ../wally-riscv-arch-test/riscv-test-suite/rv32i_m/I/src/WALLY-ADD.S
|
||||
// David_Harris@hmc.edu & Katherine Parry
|
@ -0,0 +1,136 @@
|
||||
///////////////////////////////////////////
|
||||
// ../wally-riscv-arch-test/riscv-test-suite/rv32i_m/I/src/WALLY-SLT.S
|
||||
// David_Harris@hmc.edu & Katherine Parry
|
||||
// Created 2022-01-27 08:08:42.393471//
|
||||
// Copyright (C) 2021 Harvey Mudd College & Oklahoma State University
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
|
||||
// files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy,
|
||||
// modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software
|
||||
// is furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
||||
// BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT
|
||||
// OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
///////////////////////////////////////////
|
||||
|
||||
#include "model_test.h"
|
||||
#include "arch_test.h"
|
||||
|
||||
.section .text.init
|
||||
.globl rvtest_entry_point
|
||||
rvtest_entry_point:
|
||||
RVMODEL_BOOT
|
||||
RVTEST_CODE_BEGIN
|
||||
|
||||
RVTEST_SIGBASE( x6, wally_signature)
|
||||
|
||||
# Testcase 0: rs1:x11(0x00000000), rs2:x8(0x00000000), result rd:x24(0x00000000)
|
||||
li x11, MASK_XLEN(0x00000000)
|
||||
li x8, MASK_XLEN(0x00000000)
|
||||
SLT x24, x11, x8
|
||||
sw x24, 0(x6)
|
||||
|
||||
# Testcase 1: rs1:x11(0x00000000), rs2:x23(0x00000001), result rd:x28(0x00000001)
|
||||
li x11, MASK_XLEN(0x00000000)
|
||||
li x23, MASK_XLEN(0x00000001)
|
||||
SLT x28, x11, x23
|
||||
sw x28, 4(x6)
|
||||
|
||||
# Testcase 2: rs1:x3(0x00000000), rs2:x7(0xffffffff), result rd:x30(0x00000000)
|
||||
li x3, MASK_XLEN(0x00000000)
|
||||
li x7, MASK_XLEN(0xffffffff)
|
||||
SLT x30, x3, x7
|
||||
sw x30, 8(x6)
|
||||
|
||||
# Testcase 3: rs1:x19(0x00000001), rs2:x8(0x00000000), result rd:x8(0x00000000)
|
||||
li x19, MASK_XLEN(0x00000001)
|
||||
li x8, MASK_XLEN(0x00000000)
|
||||
SLT x8, x19, x8
|
||||
sw x8, 12(x6)
|
||||
|
||||
# Testcase 4: rs1:x26(0x00000001), rs2:x31(0x00000001), result rd:x5(0x00000000)
|
||||
li x26, MASK_XLEN(0x00000001)
|
||||
li x31, MASK_XLEN(0x00000001)
|
||||
SLT x5, x26, x31
|
||||
sw x5, 16(x6)
|
||||
|
||||
# Testcase 5: rs1:x26(0x00000001), rs2:x18(0xffffffff), result rd:x15(0x00000000)
|
||||
li x26, MASK_XLEN(0x00000001)
|
||||
li x18, MASK_XLEN(0xffffffff)
|
||||
SLT x15, x26, x18
|
||||
sw x15, 20(x6)
|
||||
|
||||
# Testcase 6: rs1:x29(0xffffffff), rs2:x17(0x00000000), result rd:x30(0x00000001)
|
||||
li x29, MASK_XLEN(0xffffffff)
|
||||
li x17, MASK_XLEN(0x00000000)
|
||||
SLT x30, x29, x17
|
||||
sw x30, 24(x6)
|
||||
|
||||
# Testcase 7: rs1:x16(0xffffffff), rs2:x4(0x00000001), result rd:x10(0x00000001)
|
||||
li x16, MASK_XLEN(0xffffffff)
|
||||
li x4, MASK_XLEN(0x00000001)
|
||||
SLT x10, x16, x4
|
||||
sw x10, 28(x6)
|
||||
|
||||
# Testcase 8: rs1:x18(0xffffffff), rs2:x10(0xffffffff), result rd:x23(0x00000000)
|
||||
li x18, MASK_XLEN(0xffffffff)
|
||||
li x10, MASK_XLEN(0xffffffff)
|
||||
SLT x23, x18, x10
|
||||
sw x23, 32(x6)
|
||||
|
||||
# Testcase 9: rs1:x11(0x1ff39849), rs2:x27(0x8c25166a), result rd:x30(0x00000000)
|
||||
li x11, MASK_XLEN(0x1ff39849)
|
||||
li x27, MASK_XLEN(0x8c25166a)
|
||||
SLT x30, x11, x27
|
||||
sw x30, 36(x6)
|
||||
|
||||
# Testcase 10: rs1:x31(0x8a5006c1), rs2:x26(0x3405095c), result rd:x20(0x00000001)
|
||||
li x31, MASK_XLEN(0x8a5006c1)
|
||||
li x26, MASK_XLEN(0x3405095c)
|
||||
SLT x20, x31, x26
|
||||
sw x20, 40(x6)
|
||||
|
||||
# Testcase 11: rs1:x10(0x8c1745a7), rs2:x15(0x966e1277), result rd:x3(0x00000001)
|
||||
li x10, MASK_XLEN(0x8c1745a7)
|
||||
li x15, MASK_XLEN(0x966e1277)
|
||||
SLT x3, x10, x15
|
||||
sw x3, 44(x6)
|
||||
|
||||
.EQU NUMTESTS,12
|
||||
|
||||
RVTEST_CODE_END
|
||||
RVMODEL_HALT
|
||||
|
||||
RVTEST_DATA_BEGIN
|
||||
.align 4
|
||||
rvtest_data:
|
||||
.word 0x98765432
|
||||
RVTEST_DATA_END
|
||||
|
||||
RVMODEL_DATA_BEGIN
|
||||
|
||||
|
||||
wally_signature:
|
||||
.fill NUMTESTS*(XLEN/32),4,0xdeadbeef
|
||||
|
||||
#ifdef rvtest_mtrap_routine
|
||||
|
||||
mtrap_sigptr:
|
||||
.fill 64*(XLEN/32),4,0xdeadbeef
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef rvtest_gpr_save
|
||||
|
||||
gpr_save:
|
||||
.fill 32*(XLEN/32),4,0xdeadbeef
|
||||
|
||||
#endif
|
||||
|
||||
RVMODEL_DATA_END
|
||||
// ../wally-riscv-arch-test/riscv-test-suite/rv32i_m/I/src/WALLY-SLT.S
|
||||
// David_Harris@hmc.edu & Katherine Parry
|
@ -0,0 +1,136 @@
|
||||
///////////////////////////////////////////
|
||||
// ../wally-riscv-arch-test/riscv-test-suite/rv32i_m/I/src/WALLY-SLTU.S
|
||||
// David_Harris@hmc.edu & Katherine Parry
|
||||
// Created 2022-01-27 08:08:42.393741//
|
||||
// Copyright (C) 2021 Harvey Mudd College & Oklahoma State University
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
|
||||
// files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy,
|
||||
// modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software
|
||||
// is furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
||||
// BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT
|
||||
// OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
///////////////////////////////////////////
|
||||
|
||||
#include "model_test.h"
|
||||
#include "arch_test.h"
|
||||
|
||||
.section .text.init
|
||||
.globl rvtest_entry_point
|
||||
rvtest_entry_point:
|
||||
RVMODEL_BOOT
|
||||
RVTEST_CODE_BEGIN
|
||||
|
||||
RVTEST_SIGBASE( x6, wally_signature)
|
||||
|
||||
# Testcase 0: rs1:x20(0x00000000), rs2:x26(0x00000000), result rd:x13(0x00000000)
|
||||
li x20, MASK_XLEN(0x00000000)
|
||||
li x26, MASK_XLEN(0x00000000)
|
||||
SLTU x13, x20, x26
|
||||
sw x13, 0(x6)
|
||||
|
||||
# Testcase 1: rs1:x11(0x00000000), rs2:x19(0x00000001), result rd:x8(0x00000001)
|
||||
li x11, MASK_XLEN(0x00000000)
|
||||
li x19, MASK_XLEN(0x00000001)
|
||||
SLTU x8, x11, x19
|
||||
sw x8, 4(x6)
|
||||
|
||||
# Testcase 2: rs1:x20(0x00000000), rs2:x22(0xffffffff), result rd:x9(0x00000001)
|
||||
li x20, MASK_XLEN(0x00000000)
|
||||
li x22, MASK_XLEN(0xffffffff)
|
||||
SLTU x9, x20, x22
|
||||
sw x9, 8(x6)
|
||||
|
||||
# Testcase 3: rs1:x16(0x00000001), rs2:x3(0x00000000), result rd:x3(0x00000000)
|
||||
li x16, MASK_XLEN(0x00000001)
|
||||
li x3, MASK_XLEN(0x00000000)
|
||||
SLTU x3, x16, x3
|
||||
sw x3, 12(x6)
|
||||
|
||||
# Testcase 4: rs1:x22(0x00000001), rs2:x25(0x00000001), result rd:x5(0x00000000)
|
||||
li x22, MASK_XLEN(0x00000001)
|
||||
li x25, MASK_XLEN(0x00000001)
|
||||
SLTU x5, x22, x25
|
||||
sw x5, 16(x6)
|
||||
|
||||
# Testcase 5: rs1:x29(0x00000001), rs2:x5(0xffffffff), result rd:x30(0x00000001)
|
||||
li x29, MASK_XLEN(0x00000001)
|
||||
li x5, MASK_XLEN(0xffffffff)
|
||||
SLTU x30, x29, x5
|
||||
sw x30, 20(x6)
|
||||
|
||||
# Testcase 6: rs1:x2(0xffffffff), rs2:x27(0x00000000), result rd:x3(0x00000000)
|
||||
li x2, MASK_XLEN(0xffffffff)
|
||||
li x27, MASK_XLEN(0x00000000)
|
||||
SLTU x3, x2, x27
|
||||
sw x3, 24(x6)
|
||||
|
||||
# Testcase 7: rs1:x29(0xffffffff), rs2:x23(0x00000001), result rd:x30(0x00000000)
|
||||
li x29, MASK_XLEN(0xffffffff)
|
||||
li x23, MASK_XLEN(0x00000001)
|
||||
SLTU x30, x29, x23
|
||||
sw x30, 28(x6)
|
||||
|
||||
# Testcase 8: rs1:x27(0xffffffff), rs2:x18(0xffffffff), result rd:x22(0x00000000)
|
||||
li x27, MASK_XLEN(0xffffffff)
|
||||
li x18, MASK_XLEN(0xffffffff)
|
||||
SLTU x22, x27, x18
|
||||
sw x22, 32(x6)
|
||||
|
||||
# Testcase 9: rs1:x23(0x642bfa42), rs2:x17(0xd67e55fd), result rd:x9(0x00000001)
|
||||
li x23, MASK_XLEN(0x642bfa42)
|
||||
li x17, MASK_XLEN(0xd67e55fd)
|
||||
SLTU x9, x23, x17
|
||||
sw x9, 36(x6)
|
||||
|
||||
# Testcase 10: rs1:x8(0x85940927), rs2:x28(0xcfc6e625), result rd:x7(0x00000001)
|
||||
li x8, MASK_XLEN(0x85940927)
|
||||
li x28, MASK_XLEN(0xcfc6e625)
|
||||
SLTU x7, x8, x28
|
||||
sw x7, 40(x6)
|
||||
|
||||
# Testcase 11: rs1:x19(0xe5214606), rs2:x27(0xadf20806), result rd:x31(0x00000000)
|
||||
li x19, MASK_XLEN(0xe5214606)
|
||||
li x27, MASK_XLEN(0xadf20806)
|
||||
SLTU x31, x19, x27
|
||||
sw x31, 44(x6)
|
||||
|
||||
.EQU NUMTESTS,12
|
||||
|
||||
RVTEST_CODE_END
|
||||
RVMODEL_HALT
|
||||
|
||||
RVTEST_DATA_BEGIN
|
||||
.align 4
|
||||
rvtest_data:
|
||||
.word 0x98765432
|
||||
RVTEST_DATA_END
|
||||
|
||||
RVMODEL_DATA_BEGIN
|
||||
|
||||
|
||||
wally_signature:
|
||||
.fill NUMTESTS*(XLEN/32),4,0xdeadbeef
|
||||
|
||||
#ifdef rvtest_mtrap_routine
|
||||
|
||||
mtrap_sigptr:
|
||||
.fill 64*(XLEN/32),4,0xdeadbeef
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef rvtest_gpr_save
|
||||
|
||||
gpr_save:
|
||||
.fill 32*(XLEN/32),4,0xdeadbeef
|
||||
|
||||
#endif
|
||||
|
||||
RVMODEL_DATA_END
|
||||
// ../wally-riscv-arch-test/riscv-test-suite/rv32i_m/I/src/WALLY-SLTU.S
|
||||
// David_Harris@hmc.edu & Katherine Parry
|
@ -0,0 +1,136 @@
|
||||
///////////////////////////////////////////
|
||||
// ../wally-riscv-arch-test/riscv-test-suite/rv32i_m/I/src/WALLY-SUB.S
|
||||
// David_Harris@hmc.edu & Katherine Parry
|
||||
// Created 2022-01-27 08:08:42.393180//
|
||||
// Copyright (C) 2021 Harvey Mudd College & Oklahoma State University
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
|
||||
// files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy,
|
||||
// modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software
|
||||
// is furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
||||
// BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT
|
||||
// OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
///////////////////////////////////////////
|
||||
|
||||
#include "model_test.h"
|
||||
#include "arch_test.h"
|
||||
|
||||
.section .text.init
|
||||
.globl rvtest_entry_point
|
||||
rvtest_entry_point:
|
||||
RVMODEL_BOOT
|
||||
RVTEST_CODE_BEGIN
|
||||
|
||||
RVTEST_SIGBASE( x6, wally_signature)
|
||||
|
||||
# Testcase 0: rs1:x3(0x00000000), rs2:x29(0x00000000), result rd:x28(0x00000000)
|
||||
li x3, MASK_XLEN(0x00000000)
|
||||
li x29, MASK_XLEN(0x00000000)
|
||||
SUB x28, x3, x29
|
||||
sw x28, 0(x6)
|
||||
|
||||
# Testcase 1: rs1:x22(0x00000000), rs2:x11(0x00000001), result rd:x16(0xffffffff)
|
||||
li x22, MASK_XLEN(0x00000000)
|
||||
li x11, MASK_XLEN(0x00000001)
|
||||
SUB x16, x22, x11
|
||||
sw x16, 4(x6)
|
||||
|
||||
# Testcase 2: rs1:x18(0x00000000), rs2:x4(0xffffffff), result rd:x12(0x00000001)
|
||||
li x18, MASK_XLEN(0x00000000)
|
||||
li x4, MASK_XLEN(0xffffffff)
|
||||
SUB x12, x18, x4
|
||||
sw x12, 8(x6)
|
||||
|
||||
# Testcase 3: rs1:x14(0x00000001), rs2:x11(0x00000000), result rd:x20(0x00000001)
|
||||
li x14, MASK_XLEN(0x00000001)
|
||||
li x11, MASK_XLEN(0x00000000)
|
||||
SUB x20, x14, x11
|
||||
sw x20, 12(x6)
|
||||
|
||||
# Testcase 4: rs1:x21(0x00000001), rs2:x30(0x00000001), result rd:x7(0x00000000)
|
||||
li x21, MASK_XLEN(0x00000001)
|
||||
li x30, MASK_XLEN(0x00000001)
|
||||
SUB x7, x21, x30
|
||||
sw x7, 16(x6)
|
||||
|
||||
# Testcase 5: rs1:x31(0x00000001), rs2:x18(0xffffffff), result rd:x16(0x00000002)
|
||||
li x31, MASK_XLEN(0x00000001)
|
||||
li x18, MASK_XLEN(0xffffffff)
|
||||
SUB x16, x31, x18
|
||||
sw x16, 20(x6)
|
||||
|
||||
# Testcase 6: rs1:x15(0xffffffff), rs2:x28(0x00000000), result rd:x17(0xffffffff)
|
||||
li x15, MASK_XLEN(0xffffffff)
|
||||
li x28, MASK_XLEN(0x00000000)
|
||||
SUB x17, x15, x28
|
||||
sw x17, 24(x6)
|
||||
|
||||
# Testcase 7: rs1:x9(0xffffffff), rs2:x2(0x00000001), result rd:x26(0xfffffffe)
|
||||
li x9, MASK_XLEN(0xffffffff)
|
||||
li x2, MASK_XLEN(0x00000001)
|
||||
SUB x26, x9, x2
|
||||
sw x26, 28(x6)
|
||||
|
||||
# Testcase 8: rs1:x30(0xffffffff), rs2:x18(0xffffffff), result rd:x30(0x00000000)
|
||||
li x30, MASK_XLEN(0xffffffff)
|
||||
li x18, MASK_XLEN(0xffffffff)
|
||||
SUB x30, x30, x18
|
||||
sw x30, 32(x6)
|
||||
|
||||
# Testcase 9: rs1:x24(0x03983ca8), rs2:x27(0x17e0aa3c), result rd:x13(0xebb7926c)
|
||||
li x24, MASK_XLEN(0x03983ca8)
|
||||
li x27, MASK_XLEN(0x17e0aa3c)
|
||||
SUB x13, x24, x27
|
||||
sw x13, 36(x6)
|
||||
|
||||
# Testcase 10: rs1:x26(0xb5d32b16), rs2:x22(0xd3290a4c), result rd:x21(0xe2aa20ca)
|
||||
li x26, MASK_XLEN(0xb5d32b16)
|
||||
li x22, MASK_XLEN(0xd3290a4c)
|
||||
SUB x21, x26, x22
|
||||
sw x21, 40(x6)
|
||||
|
||||
# Testcase 11: rs1:x16(0x004ae545), rs2:x27(0x9ca5499d), result rd:x28(0x63a59ba8)
|
||||
li x16, MASK_XLEN(0x004ae545)
|
||||
li x27, MASK_XLEN(0x9ca5499d)
|
||||
SUB x28, x16, x27
|
||||
sw x28, 44(x6)
|
||||
|
||||
.EQU NUMTESTS,12
|
||||
|
||||
RVTEST_CODE_END
|
||||
RVMODEL_HALT
|
||||
|
||||
RVTEST_DATA_BEGIN
|
||||
.align 4
|
||||
rvtest_data:
|
||||
.word 0x98765432
|
||||
RVTEST_DATA_END
|
||||
|
||||
RVMODEL_DATA_BEGIN
|
||||
|
||||
|
||||
wally_signature:
|
||||
.fill NUMTESTS*(XLEN/32),4,0xdeadbeef
|
||||
|
||||
#ifdef rvtest_mtrap_routine
|
||||
|
||||
mtrap_sigptr:
|
||||
.fill 64*(XLEN/32),4,0xdeadbeef
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef rvtest_gpr_save
|
||||
|
||||
gpr_save:
|
||||
.fill 32*(XLEN/32),4,0xdeadbeef
|
||||
|
||||
#endif
|
||||
|
||||
RVMODEL_DATA_END
|
||||
// ../wally-riscv-arch-test/riscv-test-suite/rv32i_m/I/src/WALLY-SUB.S
|
||||
// David_Harris@hmc.edu & Katherine Parry
|
@ -0,0 +1,136 @@
|
||||
///////////////////////////////////////////
|
||||
// ../wally-riscv-arch-test/riscv-test-suite/rv32i_m/I/src/WALLY-XOR.S
|
||||
// David_Harris@hmc.edu & Katherine Parry
|
||||
// Created 2022-01-27 08:08:42.394013//
|
||||
// Copyright (C) 2021 Harvey Mudd College & Oklahoma State University
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
|
||||
// files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy,
|
||||
// modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software
|
||||
// is furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
||||
// BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT
|
||||
// OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
///////////////////////////////////////////
|
||||
|
||||
#include "model_test.h"
|
||||
#include "arch_test.h"
|
||||
|
||||
.section .text.init
|
||||
.globl rvtest_entry_point
|
||||
rvtest_entry_point:
|
||||
RVMODEL_BOOT
|
||||
RVTEST_CODE_BEGIN
|
||||
|
||||
RVTEST_SIGBASE( x6, wally_signature)
|
||||
|
||||
# Testcase 0: rs1:x14(0x00000000), rs2:x19(0x00000000), result rd:x9(0x00000000)
|
||||
li x14, MASK_XLEN(0x00000000)
|
||||
li x19, MASK_XLEN(0x00000000)
|
||||
XOR x9, x14, x19
|
||||
sw x9, 0(x6)
|
||||
|
||||
# Testcase 1: rs1:x15(0x00000000), rs2:x16(0x00000001), result rd:x22(0x00000001)
|
||||
li x15, MASK_XLEN(0x00000000)
|
||||
li x16, MASK_XLEN(0x00000001)
|
||||
XOR x22, x15, x16
|
||||
sw x22, 4(x6)
|
||||
|
||||
# Testcase 2: rs1:x21(0x00000000), rs2:x23(0xffffffff), result rd:x30(0xffffffff)
|
||||
li x21, MASK_XLEN(0x00000000)
|
||||
li x23, MASK_XLEN(0xffffffff)
|
||||
XOR x30, x21, x23
|
||||
sw x30, 8(x6)
|
||||
|
||||
# Testcase 3: rs1:x26(0x00000001), rs2:x12(0x00000000), result rd:x3(0x00000001)
|
||||
li x26, MASK_XLEN(0x00000001)
|
||||
li x12, MASK_XLEN(0x00000000)
|
||||
XOR x3, x26, x12
|
||||
sw x3, 12(x6)
|
||||
|
||||
# Testcase 4: rs1:x11(0x00000001), rs2:x20(0x00000001), result rd:x4(0x00000000)
|
||||
li x11, MASK_XLEN(0x00000001)
|
||||
li x20, MASK_XLEN(0x00000001)
|
||||
XOR x4, x11, x20
|
||||
sw x4, 16(x6)
|
||||
|
||||
# Testcase 5: rs1:x16(0x00000001), rs2:x19(0xffffffff), result rd:x21(0xfffffffe)
|
||||
li x16, MASK_XLEN(0x00000001)
|
||||
li x19, MASK_XLEN(0xffffffff)
|
||||
XOR x21, x16, x19
|
||||
sw x21, 20(x6)
|
||||
|
||||
# Testcase 6: rs1:x11(0xffffffff), rs2:x28(0x00000000), result rd:x7(0xffffffff)
|
||||
li x11, MASK_XLEN(0xffffffff)
|
||||
li x28, MASK_XLEN(0x00000000)
|
||||
XOR x7, x11, x28
|
||||
sw x7, 24(x6)
|
||||
|
||||
# Testcase 7: rs1:x8(0xffffffff), rs2:x1(0x00000001), result rd:x24(0xfffffffe)
|
||||
li x8, MASK_XLEN(0xffffffff)
|
||||
li x1, MASK_XLEN(0x00000001)
|
||||
XOR x24, x8, x1
|
||||
sw x24, 28(x6)
|
||||
|
||||
# Testcase 8: rs1:x9(0xffffffff), rs2:x4(0xffffffff), result rd:x23(0x00000000)
|
||||
li x9, MASK_XLEN(0xffffffff)
|
||||
li x4, MASK_XLEN(0xffffffff)
|
||||
XOR x23, x9, x4
|
||||
sw x23, 32(x6)
|
||||
|
||||
# Testcase 9: rs1:x14(0x38701a14), rs2:x27(0x5f3f5638), result rd:x2(0x674f4c2c)
|
||||
li x14, MASK_XLEN(0x38701a14)
|
||||
li x27, MASK_XLEN(0x5f3f5638)
|
||||
XOR x2, x14, x27
|
||||
sw x2, 36(x6)
|
||||
|
||||
# Testcase 10: rs1:x5(0x19c16a0d), rs2:x28(0xc87a7463), result rd:x23(0xd1bb1e6e)
|
||||
li x5, MASK_XLEN(0x19c16a0d)
|
||||
li x28, MASK_XLEN(0xc87a7463)
|
||||
XOR x23, x5, x28
|
||||
sw x23, 40(x6)
|
||||
|
||||
# Testcase 11: rs1:x27(0x38018b47), rs2:x19(0x0b9475b1), result rd:x21(0x3395fef6)
|
||||
li x27, MASK_XLEN(0x38018b47)
|
||||
li x19, MASK_XLEN(0x0b9475b1)
|
||||
XOR x21, x27, x19
|
||||
sw x21, 44(x6)
|
||||
|
||||
.EQU NUMTESTS,12
|
||||
|
||||
RVTEST_CODE_END
|
||||
RVMODEL_HALT
|
||||
|
||||
RVTEST_DATA_BEGIN
|
||||
.align 4
|
||||
rvtest_data:
|
||||
.word 0x98765432
|
||||
RVTEST_DATA_END
|
||||
|
||||
RVMODEL_DATA_BEGIN
|
||||
|
||||
|
||||
wally_signature:
|
||||
.fill NUMTESTS*(XLEN/32),4,0xdeadbeef
|
||||
|
||||
#ifdef rvtest_mtrap_routine
|
||||
|
||||
mtrap_sigptr:
|
||||
.fill 64*(XLEN/32),4,0xdeadbeef
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef rvtest_gpr_save
|
||||
|
||||
gpr_save:
|
||||
.fill 32*(XLEN/32),4,0xdeadbeef
|
||||
|
||||
#endif
|
||||
|
||||
RVMODEL_DATA_END
|
||||
// ../wally-riscv-arch-test/riscv-test-suite/rv32i_m/I/src/WALLY-XOR.S
|
||||
// David_Harris@hmc.edu & Katherine Parry
|
@ -0,0 +1,24 @@
|
||||
00000000
|
||||
00000000
|
||||
00000001
|
||||
00000000
|
||||
ffffffff
|
||||
ffffffff
|
||||
00000001
|
||||
00000000
|
||||
00000002
|
||||
00000000
|
||||
00000000
|
||||
00000000
|
||||
ffffffff
|
||||
ffffffff
|
||||
00000000
|
||||
00000000
|
||||
fffffffe
|
||||
ffffffff
|
||||
393cb5d1
|
||||
72ca6f49
|
||||
7b12609b
|
||||
245889d8
|
||||
7f42ac28
|
||||
af17a2d3
|
@ -0,0 +1,24 @@
|
||||
00000000
|
||||
00000000
|
||||
00000001
|
||||
00000000
|
||||
00000000
|
||||
00000000
|
||||
00000000
|
||||
00000000
|
||||
00000000
|
||||
00000000
|
||||
00000000
|
||||
00000000
|
||||
00000001
|
||||
00000000
|
||||
00000001
|
||||
00000000
|
||||
00000000
|
||||
00000000
|
||||
00000001
|
||||
00000000
|
||||
00000000
|
||||
00000000
|
||||
00000000
|
||||
00000000
|
@ -0,0 +1,24 @@
|
||||
00000000
|
||||
00000000
|
||||
00000001
|
||||
00000000
|
||||
00000001
|
||||
00000000
|
||||
00000000
|
||||
00000000
|
||||
00000000
|
||||
00000000
|
||||
00000001
|
||||
00000000
|
||||
00000000
|
||||
00000000
|
||||
00000000
|
||||
00000000
|
||||
00000000
|
||||
00000000
|
||||
00000001
|
||||
00000000
|
||||
00000000
|
||||
00000000
|
||||
00000001
|
||||
00000000
|
@ -0,0 +1,24 @@
|
||||
00000000
|
||||
00000000
|
||||
ffffffff
|
||||
ffffffff
|
||||
00000001
|
||||
00000000
|
||||
00000001
|
||||
00000000
|
||||
00000000
|
||||
00000000
|
||||
00000002
|
||||
00000000
|
||||
ffffffff
|
||||
ffffffff
|
||||
fffffffe
|
||||
ffffffff
|
||||
00000000
|
||||
00000000
|
||||
0f7dc13a
|
||||
f51130ed
|
||||
bb2485d0
|
||||
9633d6e4
|
||||
4557352f
|
||||
60fe4e94
|
@ -0,0 +1,24 @@
|
||||
00000000
|
||||
00000000
|
||||
00000001
|
||||
00000000
|
||||
ffffffff
|
||||
ffffffff
|
||||
00000001
|
||||
00000000
|
||||
00000000
|
||||
00000000
|
||||
fffffffe
|
||||
ffffffff
|
||||
ffffffff
|
||||
ffffffff
|
||||
fffffffe
|
||||
ffffffff
|
||||
00000000
|
||||
00000000
|
||||
e6f91511
|
||||
a770a807
|
||||
87ea008b
|
||||
3afeadc9
|
||||
3e7f1ce8
|
||||
a43d2571
|
@ -0,0 +1,136 @@
|
||||
///////////////////////////////////////////
|
||||
// ../wally-riscv-arch-test/riscv-test-suite/rv64i_m/I/src/WALLY-ADD.S
|
||||
// David_Harris@hmc.edu & Katherine Parry
|
||||
// Created 2022-01-27 08:08:42.394307//
|
||||
// Copyright (C) 2021 Harvey Mudd College & Oklahoma State University
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
|
||||
// files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy,
|
||||
// modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software
|
||||
// is furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
||||
// BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT
|
||||
// OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
///////////////////////////////////////////
|
||||
|
||||
#include "model_test.h"
|
||||
#include "arch_test.h"
|
||||
|
||||
.section .text.init
|
||||
.globl rvtest_entry_point
|
||||
rvtest_entry_point:
|
||||
RVMODEL_BOOT
|
||||
RVTEST_CODE_BEGIN
|
||||
|
||||
RVTEST_SIGBASE( x6, wally_signature)
|
||||
|
||||
# Testcase 0: rs1:x20(0x0000000000000000), rs2:x22(0x0000000000000000), result rd:x3(0x0000000000000000)
|
||||
li x20, MASK_XLEN(0x0000000000000000)
|
||||
li x22, MASK_XLEN(0x0000000000000000)
|
||||
ADD x3, x20, x22
|
||||
sd x3, 0(x6)
|
||||
|
||||
# Testcase 1: rs1:x1(0x0000000000000000), rs2:x4(0x0000000000000001), result rd:x21(0x0000000000000001)
|
||||
li x1, MASK_XLEN(0x0000000000000000)
|
||||
li x4, MASK_XLEN(0x0000000000000001)
|
||||
ADD x21, x1, x4
|
||||
sd x21, 8(x6)
|
||||
|
||||
# Testcase 2: rs1:x7(0x0000000000000000), rs2:x20(0xffffffffffffffff), result rd:x27(0xffffffffffffffff)
|
||||
li x7, MASK_XLEN(0x0000000000000000)
|
||||
li x20, MASK_XLEN(0xffffffffffffffff)
|
||||
ADD x27, x7, x20
|
||||
sd x27, 16(x6)
|
||||
|
||||
# Testcase 3: rs1:x19(0x0000000000000001), rs2:x4(0x0000000000000000), result rd:x13(0x0000000000000001)
|
||||
li x19, MASK_XLEN(0x0000000000000001)
|
||||
li x4, MASK_XLEN(0x0000000000000000)
|
||||
ADD x13, x19, x4
|
||||
sd x13, 24(x6)
|
||||
|
||||
# Testcase 4: rs1:x3(0x0000000000000001), rs2:x12(0x0000000000000001), result rd:x27(0x0000000000000002)
|
||||
li x3, MASK_XLEN(0x0000000000000001)
|
||||
li x12, MASK_XLEN(0x0000000000000001)
|
||||
ADD x27, x3, x12
|
||||
sd x27, 32(x6)
|
||||
|
||||
# Testcase 5: rs1:x4(0x0000000000000001), rs2:x2(0xffffffffffffffff), result rd:x20(0x0000000000000000)
|
||||
li x4, MASK_XLEN(0x0000000000000001)
|
||||
li x2, MASK_XLEN(0xffffffffffffffff)
|
||||
ADD x20, x4, x2
|
||||
sd x20, 40(x6)
|
||||
|
||||
# Testcase 6: rs1:x1(0xffffffffffffffff), rs2:x7(0x0000000000000000), result rd:x31(0xffffffffffffffff)
|
||||
li x1, MASK_XLEN(0xffffffffffffffff)
|
||||
li x7, MASK_XLEN(0x0000000000000000)
|
||||
ADD x31, x1, x7
|
||||
sd x31, 48(x6)
|
||||
|
||||
# Testcase 7: rs1:x16(0xffffffffffffffff), rs2:x7(0x0000000000000001), result rd:x24(0x0000000000000000)
|
||||
li x16, MASK_XLEN(0xffffffffffffffff)
|
||||
li x7, MASK_XLEN(0x0000000000000001)
|
||||
ADD x24, x16, x7
|
||||
sd x24, 56(x6)
|
||||
|
||||
# Testcase 8: rs1:x26(0xffffffffffffffff), rs2:x2(0xffffffffffffffff), result rd:x30(0xfffffffffffffffe)
|
||||
li x26, MASK_XLEN(0xffffffffffffffff)
|
||||
li x2, MASK_XLEN(0xffffffffffffffff)
|
||||
ADD x30, x26, x2
|
||||
sd x30, 64(x6)
|
||||
|
||||
# Testcase 9: rs1:x20(0x05d51433ade9b2b4), rs2:x4(0x6cf55b158b53031d), result rd:x27(0x72ca6f49393cb5d1)
|
||||
li x20, MASK_XLEN(0x05d51433ade9b2b4)
|
||||
li x4, MASK_XLEN(0x6cf55b158b53031d)
|
||||
ADD x27, x20, x4
|
||||
sd x27, 72(x6)
|
||||
|
||||
# Testcase 10: rs1:x21(0x11ebcd49428a1c22), rs2:x10(0x126cbc8f38884479), result rd:x12(0x245889d87b12609b)
|
||||
li x21, MASK_XLEN(0x11ebcd49428a1c22)
|
||||
li x10, MASK_XLEN(0x126cbc8f38884479)
|
||||
ADD x12, x21, x10
|
||||
sd x12, 80(x6)
|
||||
|
||||
# Testcase 11: rs1:x15(0x2e2950656fa231e9), rs2:x2(0x80ee526e0fa07a3f), result rd:x20(0xaf17a2d37f42ac28)
|
||||
li x15, MASK_XLEN(0x2e2950656fa231e9)
|
||||
li x2, MASK_XLEN(0x80ee526e0fa07a3f)
|
||||
ADD x20, x15, x2
|
||||
sd x20, 88(x6)
|
||||
|
||||
.EQU NUMTESTS,12
|
||||
|
||||
RVTEST_CODE_END
|
||||
RVMODEL_HALT
|
||||
|
||||
RVTEST_DATA_BEGIN
|
||||
.align 4
|
||||
rvtest_data:
|
||||
.word 0x98765432
|
||||
RVTEST_DATA_END
|
||||
|
||||
RVMODEL_DATA_BEGIN
|
||||
|
||||
|
||||
wally_signature:
|
||||
.fill NUMTESTS*(XLEN/32),4,0xdeadbeef
|
||||
|
||||
#ifdef rvtest_mtrap_routine
|
||||
|
||||
mtrap_sigptr:
|
||||
.fill 64*(XLEN/32),4,0xdeadbeef
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef rvtest_gpr_save
|
||||
|
||||
gpr_save:
|
||||
.fill 32*(XLEN/32),4,0xdeadbeef
|
||||
|
||||
#endif
|
||||
|
||||
RVMODEL_DATA_END
|
||||
// ../wally-riscv-arch-test/riscv-test-suite/rv64i_m/I/src/WALLY-ADD.S
|
||||
// David_Harris@hmc.edu & Katherine Parry
|
@ -0,0 +1,136 @@
|
||||
///////////////////////////////////////////
|
||||
// ../wally-riscv-arch-test/riscv-test-suite/rv64i_m/I/src/WALLY-SLT.S
|
||||
// David_Harris@hmc.edu & Katherine Parry
|
||||
// Created 2022-01-27 08:08:42.394785//
|
||||
// Copyright (C) 2021 Harvey Mudd College & Oklahoma State University
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
|
||||
// files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy,
|
||||
// modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software
|
||||
// is furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
||||
// BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT
|
||||
// OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
///////////////////////////////////////////
|
||||
|
||||
#include "model_test.h"
|
||||
#include "arch_test.h"
|
||||
|
||||
.section .text.init
|
||||
.globl rvtest_entry_point
|
||||
rvtest_entry_point:
|
||||
RVMODEL_BOOT
|
||||
RVTEST_CODE_BEGIN
|
||||
|
||||
RVTEST_SIGBASE( x6, wally_signature)
|
||||
|
||||
# Testcase 0: rs1:x18(0x0000000000000000), rs2:x9(0x0000000000000000), result rd:x5(0x0000000000000000)
|
||||
li x18, MASK_XLEN(0x0000000000000000)
|
||||
li x9, MASK_XLEN(0x0000000000000000)
|
||||
SLT x5, x18, x9
|
||||
sd x5, 0(x6)
|
||||
|
||||
# Testcase 1: rs1:x8(0x0000000000000000), rs2:x25(0x0000000000000001), result rd:x31(0x0000000000000001)
|
||||
li x8, MASK_XLEN(0x0000000000000000)
|
||||
li x25, MASK_XLEN(0x0000000000000001)
|
||||
SLT x31, x8, x25
|
||||
sd x31, 8(x6)
|
||||
|
||||
# Testcase 2: rs1:x16(0x0000000000000000), rs2:x12(0xffffffffffffffff), result rd:x20(0x0000000000000000)
|
||||
li x16, MASK_XLEN(0x0000000000000000)
|
||||
li x12, MASK_XLEN(0xffffffffffffffff)
|
||||
SLT x20, x16, x12
|
||||
sd x20, 16(x6)
|
||||
|
||||
# Testcase 3: rs1:x10(0x0000000000000001), rs2:x22(0x0000000000000000), result rd:x12(0x0000000000000000)
|
||||
li x10, MASK_XLEN(0x0000000000000001)
|
||||
li x22, MASK_XLEN(0x0000000000000000)
|
||||
SLT x12, x10, x22
|
||||
sd x12, 24(x6)
|
||||
|
||||
# Testcase 4: rs1:x19(0x0000000000000001), rs2:x31(0x0000000000000001), result rd:x29(0x0000000000000000)
|
||||
li x19, MASK_XLEN(0x0000000000000001)
|
||||
li x31, MASK_XLEN(0x0000000000000001)
|
||||
SLT x29, x19, x31
|
||||
sd x29, 32(x6)
|
||||
|
||||
# Testcase 5: rs1:x21(0x0000000000000001), rs2:x28(0xffffffffffffffff), result rd:x20(0x0000000000000000)
|
||||
li x21, MASK_XLEN(0x0000000000000001)
|
||||
li x28, MASK_XLEN(0xffffffffffffffff)
|
||||
SLT x20, x21, x28
|
||||
sd x20, 40(x6)
|
||||
|
||||
# Testcase 6: rs1:x5(0xffffffffffffffff), rs2:x23(0x0000000000000000), result rd:x10(0x0000000000000001)
|
||||
li x5, MASK_XLEN(0xffffffffffffffff)
|
||||
li x23, MASK_XLEN(0x0000000000000000)
|
||||
SLT x10, x5, x23
|
||||
sd x10, 48(x6)
|
||||
|
||||
# Testcase 7: rs1:x13(0xffffffffffffffff), rs2:x24(0x0000000000000001), result rd:x14(0x0000000000000001)
|
||||
li x13, MASK_XLEN(0xffffffffffffffff)
|
||||
li x24, MASK_XLEN(0x0000000000000001)
|
||||
SLT x14, x13, x24
|
||||
sd x14, 56(x6)
|
||||
|
||||
# Testcase 8: rs1:x27(0xffffffffffffffff), rs2:x21(0xffffffffffffffff), result rd:x3(0x0000000000000000)
|
||||
li x27, MASK_XLEN(0xffffffffffffffff)
|
||||
li x21, MASK_XLEN(0xffffffffffffffff)
|
||||
SLT x3, x27, x21
|
||||
sd x3, 64(x6)
|
||||
|
||||
# Testcase 9: rs1:x8(0x983631890063e42f), rs2:x21(0xb2d650af313b32b7), result rd:x15(0x0000000000000001)
|
||||
li x8, MASK_XLEN(0x983631890063e42f)
|
||||
li x21, MASK_XLEN(0xb2d650af313b32b7)
|
||||
SLT x15, x8, x21
|
||||
sd x15, 72(x6)
|
||||
|
||||
# Testcase 10: rs1:x19(0xb5d97ef760ef1471), rs2:x28(0xac7c8803e01bbf50), result rd:x14(0x0000000000000000)
|
||||
li x19, MASK_XLEN(0xb5d97ef760ef1471)
|
||||
li x28, MASK_XLEN(0xac7c8803e01bbf50)
|
||||
SLT x14, x19, x28
|
||||
sd x14, 80(x6)
|
||||
|
||||
# Testcase 11: rs1:x19(0x66faf98908135d58), rs2:x14(0xb3ab1b2cdf26f517), result rd:x25(0x0000000000000000)
|
||||
li x19, MASK_XLEN(0x66faf98908135d58)
|
||||
li x14, MASK_XLEN(0xb3ab1b2cdf26f517)
|
||||
SLT x25, x19, x14
|
||||
sd x25, 88(x6)
|
||||
|
||||
.EQU NUMTESTS,12
|
||||
|
||||
RVTEST_CODE_END
|
||||
RVMODEL_HALT
|
||||
|
||||
RVTEST_DATA_BEGIN
|
||||
.align 4
|
||||
rvtest_data:
|
||||
.word 0x98765432
|
||||
RVTEST_DATA_END
|
||||
|
||||
RVMODEL_DATA_BEGIN
|
||||
|
||||
|
||||
wally_signature:
|
||||
.fill NUMTESTS*(XLEN/32),4,0xdeadbeef
|
||||
|
||||
#ifdef rvtest_mtrap_routine
|
||||
|
||||
mtrap_sigptr:
|
||||
.fill 64*(XLEN/32),4,0xdeadbeef
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef rvtest_gpr_save
|
||||
|
||||
gpr_save:
|
||||
.fill 32*(XLEN/32),4,0xdeadbeef
|
||||
|
||||
#endif
|
||||
|
||||
RVMODEL_DATA_END
|
||||
// ../wally-riscv-arch-test/riscv-test-suite/rv64i_m/I/src/WALLY-SLT.S
|
||||
// David_Harris@hmc.edu & Katherine Parry
|
@ -0,0 +1,136 @@
|
||||
///////////////////////////////////////////
|
||||
// ../wally-riscv-arch-test/riscv-test-suite/rv64i_m/I/src/WALLY-SLTU.S
|
||||
// David_Harris@hmc.edu & Katherine Parry
|
||||
// Created 2022-01-27 08:08:42.395005//
|
||||
// Copyright (C) 2021 Harvey Mudd College & Oklahoma State University
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
|
||||
// files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy,
|
||||
// modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software
|
||||
// is furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
||||
// BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT
|
||||
// OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
///////////////////////////////////////////
|
||||
|
||||
#include "model_test.h"
|
||||
#include "arch_test.h"
|
||||
|
||||
.section .text.init
|
||||
.globl rvtest_entry_point
|
||||
rvtest_entry_point:
|
||||
RVMODEL_BOOT
|
||||
RVTEST_CODE_BEGIN
|
||||
|
||||
RVTEST_SIGBASE( x6, wally_signature)
|
||||
|
||||
# Testcase 0: rs1:x22(0x0000000000000000), rs2:x23(0x0000000000000000), result rd:x2(0x0000000000000000)
|
||||
li x22, MASK_XLEN(0x0000000000000000)
|
||||
li x23, MASK_XLEN(0x0000000000000000)
|
||||
SLTU x2, x22, x23
|
||||
sd x2, 0(x6)
|
||||
|
||||
# Testcase 1: rs1:x15(0x0000000000000000), rs2:x17(0x0000000000000001), result rd:x29(0x0000000000000001)
|
||||
li x15, MASK_XLEN(0x0000000000000000)
|
||||
li x17, MASK_XLEN(0x0000000000000001)
|
||||
SLTU x29, x15, x17
|
||||
sd x29, 8(x6)
|
||||
|
||||
# Testcase 2: rs1:x16(0x0000000000000000), rs2:x30(0xffffffffffffffff), result rd:x18(0x0000000000000001)
|
||||
li x16, MASK_XLEN(0x0000000000000000)
|
||||
li x30, MASK_XLEN(0xffffffffffffffff)
|
||||
SLTU x18, x16, x30
|
||||
sd x18, 16(x6)
|
||||
|
||||
# Testcase 3: rs1:x20(0x0000000000000001), rs2:x25(0x0000000000000000), result rd:x1(0x0000000000000000)
|
||||
li x20, MASK_XLEN(0x0000000000000001)
|
||||
li x25, MASK_XLEN(0x0000000000000000)
|
||||
SLTU x1, x20, x25
|
||||
sd x1, 24(x6)
|
||||
|
||||
# Testcase 4: rs1:x29(0x0000000000000001), rs2:x2(0x0000000000000001), result rd:x16(0x0000000000000000)
|
||||
li x29, MASK_XLEN(0x0000000000000001)
|
||||
li x2, MASK_XLEN(0x0000000000000001)
|
||||
SLTU x16, x29, x2
|
||||
sd x16, 32(x6)
|
||||
|
||||
# Testcase 5: rs1:x11(0x0000000000000001), rs2:x10(0xffffffffffffffff), result rd:x27(0x0000000000000001)
|
||||
li x11, MASK_XLEN(0x0000000000000001)
|
||||
li x10, MASK_XLEN(0xffffffffffffffff)
|
||||
SLTU x27, x11, x10
|
||||
sd x27, 40(x6)
|
||||
|
||||
# Testcase 6: rs1:x15(0xffffffffffffffff), rs2:x2(0x0000000000000000), result rd:x26(0x0000000000000000)
|
||||
li x15, MASK_XLEN(0xffffffffffffffff)
|
||||
li x2, MASK_XLEN(0x0000000000000000)
|
||||
SLTU x26, x15, x2
|
||||
sd x26, 48(x6)
|
||||
|
||||
# Testcase 7: rs1:x27(0xffffffffffffffff), rs2:x29(0x0000000000000001), result rd:x26(0x0000000000000000)
|
||||
li x27, MASK_XLEN(0xffffffffffffffff)
|
||||
li x29, MASK_XLEN(0x0000000000000001)
|
||||
SLTU x26, x27, x29
|
||||
sd x26, 56(x6)
|
||||
|
||||
# Testcase 8: rs1:x14(0xffffffffffffffff), rs2:x7(0xffffffffffffffff), result rd:x18(0x0000000000000000)
|
||||
li x14, MASK_XLEN(0xffffffffffffffff)
|
||||
li x7, MASK_XLEN(0xffffffffffffffff)
|
||||
SLTU x18, x14, x7
|
||||
sd x18, 64(x6)
|
||||
|
||||
# Testcase 9: rs1:x3(0xf689a4a5ffda0336), rs2:x27(0xfa83ada4a2121ac5), result rd:x24(0x0000000000000001)
|
||||
li x3, MASK_XLEN(0xf689a4a5ffda0336)
|
||||
li x27, MASK_XLEN(0xfa83ada4a2121ac5)
|
||||
SLTU x24, x3, x27
|
||||
sd x24, 72(x6)
|
||||
|
||||
# Testcase 10: rs1:x31(0xfca055362169df82), rs2:x22(0x66dd779403c54c71), result rd:x14(0x0000000000000000)
|
||||
li x31, MASK_XLEN(0xfca055362169df82)
|
||||
li x22, MASK_XLEN(0x66dd779403c54c71)
|
||||
SLTU x14, x31, x22
|
||||
sd x14, 80(x6)
|
||||
|
||||
# Testcase 11: rs1:x23(0x00de59f550f0fc2b), rs2:x25(0x03a8987936a98d74), result rd:x1(0x0000000000000001)
|
||||
li x23, MASK_XLEN(0x00de59f550f0fc2b)
|
||||
li x25, MASK_XLEN(0x03a8987936a98d74)
|
||||
SLTU x1, x23, x25
|
||||
sd x1, 88(x6)
|
||||
|
||||
.EQU NUMTESTS,12
|
||||
|
||||
RVTEST_CODE_END
|
||||
RVMODEL_HALT
|
||||
|
||||
RVTEST_DATA_BEGIN
|
||||
.align 4
|
||||
rvtest_data:
|
||||
.word 0x98765432
|
||||
RVTEST_DATA_END
|
||||
|
||||
RVMODEL_DATA_BEGIN
|
||||
|
||||
|
||||
wally_signature:
|
||||
.fill NUMTESTS*(XLEN/32),4,0xdeadbeef
|
||||
|
||||
#ifdef rvtest_mtrap_routine
|
||||
|
||||
mtrap_sigptr:
|
||||
.fill 64*(XLEN/32),4,0xdeadbeef
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef rvtest_gpr_save
|
||||
|
||||
gpr_save:
|
||||
.fill 32*(XLEN/32),4,0xdeadbeef
|
||||
|
||||
#endif
|
||||
|
||||
RVMODEL_DATA_END
|
||||
// ../wally-riscv-arch-test/riscv-test-suite/rv64i_m/I/src/WALLY-SLTU.S
|
||||
// David_Harris@hmc.edu & Katherine Parry
|
@ -0,0 +1,136 @@
|
||||
///////////////////////////////////////////
|
||||
// ../wally-riscv-arch-test/riscv-test-suite/rv64i_m/I/src/WALLY-SUB.S
|
||||
// David_Harris@hmc.edu & Katherine Parry
|
||||
// Created 2022-01-27 08:08:42.394545//
|
||||
// Copyright (C) 2021 Harvey Mudd College & Oklahoma State University
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
|
||||
// files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy,
|
||||
// modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software
|
||||
// is furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
||||
// BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT
|
||||
// OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
///////////////////////////////////////////
|
||||
|
||||
#include "model_test.h"
|
||||
#include "arch_test.h"
|
||||
|
||||
.section .text.init
|
||||
.globl rvtest_entry_point
|
||||
rvtest_entry_point:
|
||||
RVMODEL_BOOT
|
||||
RVTEST_CODE_BEGIN
|
||||
|
||||
RVTEST_SIGBASE( x6, wally_signature)
|
||||
|
||||
# Testcase 0: rs1:x4(0x0000000000000000), rs2:x23(0x0000000000000000), result rd:x13(0x0000000000000000)
|
||||
li x4, MASK_XLEN(0x0000000000000000)
|
||||
li x23, MASK_XLEN(0x0000000000000000)
|
||||
SUB x13, x4, x23
|
||||
sd x13, 0(x6)
|
||||
|
||||
# Testcase 1: rs1:x7(0x0000000000000000), rs2:x9(0x0000000000000001), result rd:x12(0xffffffffffffffff)
|
||||
li x7, MASK_XLEN(0x0000000000000000)
|
||||
li x9, MASK_XLEN(0x0000000000000001)
|
||||
SUB x12, x7, x9
|
||||
sd x12, 8(x6)
|
||||
|
||||
# Testcase 2: rs1:x29(0x0000000000000000), rs2:x24(0xffffffffffffffff), result rd:x16(0x0000000000000001)
|
||||
li x29, MASK_XLEN(0x0000000000000000)
|
||||
li x24, MASK_XLEN(0xffffffffffffffff)
|
||||
SUB x16, x29, x24
|
||||
sd x16, 16(x6)
|
||||
|
||||
# Testcase 3: rs1:x27(0x0000000000000001), rs2:x29(0x0000000000000000), result rd:x30(0x0000000000000001)
|
||||
li x27, MASK_XLEN(0x0000000000000001)
|
||||
li x29, MASK_XLEN(0x0000000000000000)
|
||||
SUB x30, x27, x29
|
||||
sd x30, 24(x6)
|
||||
|
||||
# Testcase 4: rs1:x22(0x0000000000000001), rs2:x7(0x0000000000000001), result rd:x31(0x0000000000000000)
|
||||
li x22, MASK_XLEN(0x0000000000000001)
|
||||
li x7, MASK_XLEN(0x0000000000000001)
|
||||
SUB x31, x22, x7
|
||||
sd x31, 32(x6)
|
||||
|
||||
# Testcase 5: rs1:x25(0x0000000000000001), rs2:x2(0xffffffffffffffff), result rd:x26(0x0000000000000002)
|
||||
li x25, MASK_XLEN(0x0000000000000001)
|
||||
li x2, MASK_XLEN(0xffffffffffffffff)
|
||||
SUB x26, x25, x2
|
||||
sd x26, 40(x6)
|
||||
|
||||
# Testcase 6: rs1:x9(0xffffffffffffffff), rs2:x4(0x0000000000000000), result rd:x20(0xffffffffffffffff)
|
||||
li x9, MASK_XLEN(0xffffffffffffffff)
|
||||
li x4, MASK_XLEN(0x0000000000000000)
|
||||
SUB x20, x9, x4
|
||||
sd x20, 48(x6)
|
||||
|
||||
# Testcase 7: rs1:x30(0xffffffffffffffff), rs2:x15(0x0000000000000001), result rd:x22(0xfffffffffffffffe)
|
||||
li x30, MASK_XLEN(0xffffffffffffffff)
|
||||
li x15, MASK_XLEN(0x0000000000000001)
|
||||
SUB x22, x30, x15
|
||||
sd x22, 56(x6)
|
||||
|
||||
# Testcase 8: rs1:x22(0xffffffffffffffff), rs2:x14(0xffffffffffffffff), result rd:x29(0x0000000000000000)
|
||||
li x22, MASK_XLEN(0xffffffffffffffff)
|
||||
li x14, MASK_XLEN(0xffffffffffffffff)
|
||||
SUB x29, x22, x14
|
||||
sd x29, 64(x6)
|
||||
|
||||
# Testcase 9: rs1:x10(0xdff3334b91b15f5d), rs2:x21(0xeae2025e82339e23), result rd:x12(0xf51130ed0f7dc13a)
|
||||
li x10, MASK_XLEN(0xdff3334b91b15f5d)
|
||||
li x21, MASK_XLEN(0xeae2025e82339e23)
|
||||
SUB x12, x10, x21
|
||||
sd x12, 72(x6)
|
||||
|
||||
# Testcase 10: rs1:x5(0xd670f668637e0edc), rs2:x18(0x403d1f83a859890c), result rd:x23(0x9633d6e4bb2485d0)
|
||||
li x5, MASK_XLEN(0xd670f668637e0edc)
|
||||
li x18, MASK_XLEN(0x403d1f83a859890c)
|
||||
SUB x23, x5, x18
|
||||
sd x23, 80(x6)
|
||||
|
||||
# Testcase 11: rs1:x11(0x753c7c99032f06ca), rs2:x24(0x143e2e04bdd7d19b), result rd:x2(0x60fe4e944557352f)
|
||||
li x11, MASK_XLEN(0x753c7c99032f06ca)
|
||||
li x24, MASK_XLEN(0x143e2e04bdd7d19b)
|
||||
SUB x2, x11, x24
|
||||
sd x2, 88(x6)
|
||||
|
||||
.EQU NUMTESTS,12
|
||||
|
||||
RVTEST_CODE_END
|
||||
RVMODEL_HALT
|
||||
|
||||
RVTEST_DATA_BEGIN
|
||||
.align 4
|
||||
rvtest_data:
|
||||
.word 0x98765432
|
||||
RVTEST_DATA_END
|
||||
|
||||
RVMODEL_DATA_BEGIN
|
||||
|
||||
|
||||
wally_signature:
|
||||
.fill NUMTESTS*(XLEN/32),4,0xdeadbeef
|
||||
|
||||
#ifdef rvtest_mtrap_routine
|
||||
|
||||
mtrap_sigptr:
|
||||
.fill 64*(XLEN/32),4,0xdeadbeef
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef rvtest_gpr_save
|
||||
|
||||
gpr_save:
|
||||
.fill 32*(XLEN/32),4,0xdeadbeef
|
||||
|
||||
#endif
|
||||
|
||||
RVMODEL_DATA_END
|
||||
// ../wally-riscv-arch-test/riscv-test-suite/rv64i_m/I/src/WALLY-SUB.S
|
||||
// David_Harris@hmc.edu & Katherine Parry
|
@ -0,0 +1,136 @@
|
||||
///////////////////////////////////////////
|
||||
// ../wally-riscv-arch-test/riscv-test-suite/rv64i_m/I/src/WALLY-XOR.S
|
||||
// David_Harris@hmc.edu & Katherine Parry
|
||||
// Created 2022-01-27 08:08:42.395231//
|
||||
// Copyright (C) 2021 Harvey Mudd College & Oklahoma State University
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
|
||||
// files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy,
|
||||
// modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software
|
||||
// is furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
||||
// BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT
|
||||
// OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
///////////////////////////////////////////
|
||||
|
||||
#include "model_test.h"
|
||||
#include "arch_test.h"
|
||||
|
||||
.section .text.init
|
||||
.globl rvtest_entry_point
|
||||
rvtest_entry_point:
|
||||
RVMODEL_BOOT
|
||||
RVTEST_CODE_BEGIN
|
||||
|
||||
RVTEST_SIGBASE( x6, wally_signature)
|
||||
|
||||
# Testcase 0: rs1:x27(0x0000000000000000), rs2:x22(0x0000000000000000), result rd:x17(0x0000000000000000)
|
||||
li x27, MASK_XLEN(0x0000000000000000)
|
||||
li x22, MASK_XLEN(0x0000000000000000)
|
||||
XOR x17, x27, x22
|
||||
sd x17, 0(x6)
|
||||
|
||||
# Testcase 1: rs1:x20(0x0000000000000000), rs2:x4(0x0000000000000001), result rd:x7(0x0000000000000001)
|
||||
li x20, MASK_XLEN(0x0000000000000000)
|
||||
li x4, MASK_XLEN(0x0000000000000001)
|
||||
XOR x7, x20, x4
|
||||
sd x7, 8(x6)
|
||||
|
||||
# Testcase 2: rs1:x4(0x0000000000000000), rs2:x20(0xffffffffffffffff), result rd:x21(0xffffffffffffffff)
|
||||
li x4, MASK_XLEN(0x0000000000000000)
|
||||
li x20, MASK_XLEN(0xffffffffffffffff)
|
||||
XOR x21, x4, x20
|
||||
sd x21, 16(x6)
|
||||
|
||||
# Testcase 3: rs1:x7(0x0000000000000001), rs2:x28(0x0000000000000000), result rd:x10(0x0000000000000001)
|
||||
li x7, MASK_XLEN(0x0000000000000001)
|
||||
li x28, MASK_XLEN(0x0000000000000000)
|
||||
XOR x10, x7, x28
|
||||
sd x10, 24(x6)
|
||||
|
||||
# Testcase 4: rs1:x4(0x0000000000000001), rs2:x16(0x0000000000000001), result rd:x28(0x0000000000000000)
|
||||
li x4, MASK_XLEN(0x0000000000000001)
|
||||
li x16, MASK_XLEN(0x0000000000000001)
|
||||
XOR x28, x4, x16
|
||||
sd x28, 32(x6)
|
||||
|
||||
# Testcase 5: rs1:x30(0x0000000000000001), rs2:x13(0xffffffffffffffff), result rd:x21(0xfffffffffffffffe)
|
||||
li x30, MASK_XLEN(0x0000000000000001)
|
||||
li x13, MASK_XLEN(0xffffffffffffffff)
|
||||
XOR x21, x30, x13
|
||||
sd x21, 40(x6)
|
||||
|
||||
# Testcase 6: rs1:x3(0xffffffffffffffff), rs2:x1(0x0000000000000000), result rd:x9(0xffffffffffffffff)
|
||||
li x3, MASK_XLEN(0xffffffffffffffff)
|
||||
li x1, MASK_XLEN(0x0000000000000000)
|
||||
XOR x9, x3, x1
|
||||
sd x9, 48(x6)
|
||||
|
||||
# Testcase 7: rs1:x30(0xffffffffffffffff), rs2:x15(0x0000000000000001), result rd:x26(0xfffffffffffffffe)
|
||||
li x30, MASK_XLEN(0xffffffffffffffff)
|
||||
li x15, MASK_XLEN(0x0000000000000001)
|
||||
XOR x26, x30, x15
|
||||
sd x26, 56(x6)
|
||||
|
||||
# Testcase 8: rs1:x26(0xffffffffffffffff), rs2:x4(0xffffffffffffffff), result rd:x28(0x0000000000000000)
|
||||
li x26, MASK_XLEN(0xffffffffffffffff)
|
||||
li x4, MASK_XLEN(0xffffffffffffffff)
|
||||
XOR x28, x26, x4
|
||||
sd x28, 64(x6)
|
||||
|
||||
# Testcase 9: rs1:x27(0x2227d96d41a93f90), rs2:x21(0x8557716aa7502a81), result rd:x21(0xa770a807e6f91511)
|
||||
li x27, MASK_XLEN(0x2227d96d41a93f90)
|
||||
li x21, MASK_XLEN(0x8557716aa7502a81)
|
||||
XOR x21, x27, x21
|
||||
sd x21, 72(x6)
|
||||
|
||||
# Testcase 10: rs1:x9(0x1d77ce4058d87776), rs2:x28(0x27896389df3277fd), result rd:x1(0x3afeadc987ea008b)
|
||||
li x9, MASK_XLEN(0x1d77ce4058d87776)
|
||||
li x28, MASK_XLEN(0x27896389df3277fd)
|
||||
XOR x1, x9, x28
|
||||
sd x1, 80(x6)
|
||||
|
||||
# Testcase 11: rs1:x9(0x0a68e88e0ad40415), rs2:x18(0xae55cdff34ab18fd), result rd:x11(0xa43d25713e7f1ce8)
|
||||
li x9, MASK_XLEN(0x0a68e88e0ad40415)
|
||||
li x18, MASK_XLEN(0xae55cdff34ab18fd)
|
||||
XOR x11, x9, x18
|
||||
sd x11, 88(x6)
|
||||
|
||||
.EQU NUMTESTS,12
|
||||
|
||||
RVTEST_CODE_END
|
||||
RVMODEL_HALT
|
||||
|
||||
RVTEST_DATA_BEGIN
|
||||
.align 4
|
||||
rvtest_data:
|
||||
.word 0x98765432
|
||||
RVTEST_DATA_END
|
||||
|
||||
RVMODEL_DATA_BEGIN
|
||||
|
||||
|
||||
wally_signature:
|
||||
.fill NUMTESTS*(XLEN/32),4,0xdeadbeef
|
||||
|
||||
#ifdef rvtest_mtrap_routine
|
||||
|
||||
mtrap_sigptr:
|
||||
.fill 64*(XLEN/32),4,0xdeadbeef
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef rvtest_gpr_save
|
||||
|
||||
gpr_save:
|
||||
.fill 32*(XLEN/32),4,0xdeadbeef
|
||||
|
||||
#endif
|
||||
|
||||
RVMODEL_DATA_END
|
||||
// ../wally-riscv-arch-test/riscv-test-suite/rv64i_m/I/src/WALLY-XOR.S
|
||||
// David_Harris@hmc.edu & Katherine Parry
|
Loading…
Reference in New Issue
Block a user