///////////////////////////////////////////
// ../wally-riscv-arch-test/riscv-test-suite/rv32i_m/I/src/WALLY-SLT.S
// David_Harris@hmc.edu & Katherine Parry
// Created 2022-06-17 22:58:09.909889//
// 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
