MIPS/resources/2021/soft/func/inst/n54_blez_ds.S
2021-06-18 15:43:51 +08:00

57 lines
1.6 KiB
ArmAsm

#include <asm.h>
#include <regdef.h>
#include <inst_test.h>
LEAF(n54_blez_ds_test)
.set noreorder
addiu s0, s0 ,1
li s2, 0x00
###test inst
TEST_BLEZ_DS(lui, t0,0x800d)
TEST_BLEZ_DS(addiu, t1, t0, 0x8123)
TEST_BLEZ_DS(sw, t1, -0x7120(t0))
TEST_BLEZ_DS(lw, t2, -0x7120(t0))
TEST_BLEZ_DS(addu, t3, t1, t2)
TEST_BLEZ_DS(or, t4, s1, s2)
TEST_BLEZ_DS(slt, t5, s2, s3)
TEST_BLEZ_DS(slti, t6, s2, 0x8011)
TEST_BLEZ_DS(sltiu, t7, s2, 0x8011)
TEST_BLEZ_DS(sltu, t8, s2, s3)
TEST_BLEZ_DS(sll, t1, s2, 0x11)
TEST_BLEZ_DS(add, t2, t0, s0)
TEST_BLEZ_DS(addi, t3, s0, 0x8002)
TEST_BLEZ_DS(sub, t4, t0, s0)
TEST_BLEZ_DS(subu, t5, t0, s0)
TEST_BLEZ_DS(and, t6, t0, s0)
TEST_BLEZ_DS(andi, t7, s0, 0x8ff2)
TEST_BLEZ_DS(nor, t8, t0, s0)
TEST_BLEZ_DS(ori, t1, s0, 0x8ff2)
TEST_BLEZ_DS(xor, t2, t0, s0)
TEST_BLEZ_DS(xori, t3, s0, 0x8ff2)
TEST_BLEZ_DS(sllv, t4, t0, s0)
TEST_BLEZ_DS(sra, t5, s0, 0x8)
TEST_BLEZ_DS(srav, t6, t0, s0)
TEST_BLEZ_DS(srl, t7, s0, 0x8)
TEST_BLEZ_DS(srlv, t8, t0, s0)
lui t0, 0x8000
li t1, 0x00008000
TEST_BLEZ_DS_MD(div zero, t0, t1)
TEST_BLEZ_DS_MD(divu zero, t0, t1)
TEST_BLEZ_DS_MD(mult t0, t1)
TEST_BLEZ_DS_MD(multu t0, t1)
TEST_BLEZ_DS(mfhi, t7)
TEST_BLEZ_DS(mflo, t6)
###detect exception
bne s2, zero, inst_error
nop
###score ++
addiu s3, s3, 1
###output (s0<<24)|s3
inst_error:
sll t1, s0, 24
or t0, t1, s3
sw t0, 0(s1)
jr ra
nop
END(n54_blez_ds_test)