Projet_SETI_RISC-V/riscv-gnu-toolchain/binutils/sim/testsuite/sh/pswap.s
2023-03-06 14:48:14 +01:00

177 lines
2.9 KiB
ArmAsm

# sh testcase for pswap
# mach: shdsp
# as(shdsp): -defsym sim_cpu=1 -dsp
.include "testutils.inc"
start
pswapx:
set_grs_a5a5
lds r0, a0
pcopy a0, a1
lds r0, x0
lds r0, x1
lds r0, y0
lds r0, y1
pcopy x0, m0
pcopy y1, m1
set_greg 0xa5a57777, r0
lds r0, x0
pswap x0, y0
assert_sreg 0x7777a5a5, y0
set_greg 0xa5a5a5a5, r0
test_grs_a5a5
assert_sreg 0xa5a57777, x0
assert_sreg 0xa5a5a5a5, x1
assert_sreg 0xa5a5a5a5, y1
assert_sreg 0xa5a5a5a5, a0
assert_sreg2 0xa5a5a5a5, a1
assert_sreg2 0xa5a5a5a5, m0
assert_sreg2 0xa5a5a5a5, m1
pswapy:
set_grs_a5a5
lds r0, a0
pcopy a0, a1
lds r0, x0
lds r0, x1
lds r0, y0
lds r0, y1
pcopy x0, m0
pcopy y1, m1
set_greg 0xa5a57777, r0
lds r0, y0
pswap y0, x0
assert_sreg 0x7777a5a5, x0
set_greg 0xa5a5a5a5, r0
test_grs_a5a5
assert_sreg 0xa5a57777, y0
assert_sreg 0xa5a5a5a5, x1
assert_sreg 0xa5a5a5a5, y1
assert_sreg 0xa5a5a5a5, a0
assert_sreg2 0xa5a5a5a5, a1
assert_sreg2 0xa5a5a5a5, m0
assert_sreg2 0xa5a5a5a5, m1
pswapa:
set_grs_a5a5
lds r0, a0
pcopy a0, a1
lds r0, x0
lds r0, x1
lds r0, y0
lds r0, y1
pcopy x0, m0
pcopy y1, m1
set_greg 0xa5a57777, r0
lds r0, a0
pcopy a0, a1
pswap a1, y0
assert_sreg 0x7777a5a5, y0
set_greg 0xa5a5a5a5, r0
test_grs_a5a5
assert_sreg 0xa5a57777, a0
assert_sreg2 0xa5a57777, a1
assert_sreg 0xa5a5a5a5, x0
assert_sreg 0xa5a5a5a5, x1
assert_sreg 0xa5a5a5a5, y1
assert_sreg2 0xa5a5a5a5, m0
assert_sreg2 0xa5a5a5a5, m1
pswapm:
set_grs_a5a5
lds r0, a0
pcopy a0, a1
lds r0, x0
lds r0, x1
lds r0, y0
lds r0, y1
pcopy x0, m0
pcopy y1, m1
set_greg 0xa5a57777, r0
lds r0, a0
pcopy a0, m1
pswap m1, y0
assert_sreg 0x7777a5a5, y0
set_greg 0xa5a5a5a5, r0
test_grs_a5a5
assert_sreg 0xa5a57777, a0
assert_sreg2 0xa5a57777, m1
assert_sreg 0xa5a5a5a5, x0
assert_sreg 0xa5a5a5a5, x1
assert_sreg 0xa5a5a5a5, y1
assert_sreg2 0xa5a5a5a5, a1
assert_sreg2 0xa5a5a5a5, m0
dct_pswapx:
set_grs_a5a5
lds r0, a0
pcopy a0, a1
lds r0, x0
lds r0, x1
lds r0, y0
lds r0, y1
pcopy x0, m0
pcopy y1, m1
set_greg 0xa5a57777, r0
lds r0, x0
set_dcfalse
dct pswap x0, y0
assert_sreg 0xa5a5a5a5, y0
set_dctrue
dct pswap x0, y0
assert_sreg 0x7777a5a5, y0
set_greg 0xa5a5a5a5, r0
test_grs_a5a5
assert_sreg 0xa5a57777, x0
assert_sreg 0xa5a5a5a5, x1
assert_sreg 0xa5a5a5a5, y1
assert_sreg 0xa5a5a5a5, a0
assert_sreg2 0xa5a5a5a5, a1
assert_sreg2 0xa5a5a5a5, m0
assert_sreg2 0xa5a5a5a5, m1
dcf_pswapy:
set_grs_a5a5
lds r0, a0
pcopy a0, a1
lds r0, x0
lds r0, x1
lds r0, y0
lds r0, y1
pcopy x0, m0
pcopy y1, m1
set_greg 0xa5a57777, r0
lds r0, x0
set_dctrue
dcf pswap x0, y0
assert_sreg 0xa5a5a5a5, y0
set_dcfalse
dcf pswap x0, y0
assert_sreg 0x7777a5a5, y0
set_greg 0xa5a5a5a5, r0
test_grs_a5a5
assert_sreg 0xa5a57777, x0
assert_sreg 0xa5a5a5a5, x1
assert_sreg 0xa5a5a5a5, y1
assert_sreg 0xa5a5a5a5, a0
assert_sreg2 0xa5a5a5a5, a1
assert_sreg2 0xa5a5a5a5, m0
assert_sreg2 0xa5a5a5a5, m1
pass
exit 0