tests: tcg: mips: Remove old directories
Remove old test directories. Reviewed-by: Aleksandar Rikalo <arikalo@wavecomp.com> Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
This commit is contained in:
parent
5e0aa63b08
commit
dcca150f83
|
@ -1,136 +0,0 @@
|
|||
-include ../../config-host.mak
|
||||
|
||||
CROSS=mips64el-unknown-linux-gnu-
|
||||
|
||||
SIM=qemu-mipsel
|
||||
SIM_FLAGS=-cpu 74Kf
|
||||
|
||||
CC = $(CROSS)gcc
|
||||
CFLAGS = -mabi=32 -march=mips32r2 -mgp32 -mdsp -static
|
||||
|
||||
TESTCASES = absq_s_ph.tst
|
||||
TESTCASES += absq_s_w.tst
|
||||
TESTCASES += addq_ph.tst
|
||||
TESTCASES += addq_s_ph.tst
|
||||
TESTCASES += addq_s_w.tst
|
||||
TESTCASES += addsc.tst
|
||||
TESTCASES += addu_qb.tst
|
||||
TESTCASES += addu_s_qb.tst
|
||||
TESTCASES += addwc.tst
|
||||
TESTCASES += bitrev.tst
|
||||
TESTCASES += bposge32.tst
|
||||
TESTCASES += cmp_eq_ph.tst
|
||||
TESTCASES += cmpgu_eq_qb.tst
|
||||
TESTCASES += cmpgu_le_qb.tst
|
||||
TESTCASES += cmpgu_lt_qb.tst
|
||||
TESTCASES += cmp_le_ph.tst
|
||||
TESTCASES += cmp_lt_ph.tst
|
||||
TESTCASES += cmpu_eq_qb.tst
|
||||
TESTCASES += cmpu_le_qb.tst
|
||||
TESTCASES += cmpu_lt_qb.tst
|
||||
TESTCASES += dpaq_sa_l_w.tst
|
||||
TESTCASES += dpaq_s_w_ph.tst
|
||||
TESTCASES += dpau_h_qbl.tst
|
||||
TESTCASES += dpau_h_qbr.tst
|
||||
TESTCASES += dpsq_sa_l_w.tst
|
||||
TESTCASES += dpsq_s_w_ph.tst
|
||||
TESTCASES += dpsu_h_qbl.tst
|
||||
TESTCASES += dpsu_h_qbr.tst
|
||||
TESTCASES += extp.tst
|
||||
TESTCASES += extpdp.tst
|
||||
TESTCASES += extpdpv.tst
|
||||
TESTCASES += extpv.tst
|
||||
TESTCASES += extr_rs_w.tst
|
||||
TESTCASES += extr_r_w.tst
|
||||
TESTCASES += extr_s_h.tst
|
||||
TESTCASES += extrv_rs_w.tst
|
||||
TESTCASES += extrv_r_w.tst
|
||||
TESTCASES += extrv_s_h.tst
|
||||
TESTCASES += extrv_w.tst
|
||||
TESTCASES += extr_w.tst
|
||||
TESTCASES += insv.tst
|
||||
TESTCASES += lbux.tst
|
||||
TESTCASES += lhx.tst
|
||||
TESTCASES += lwx.tst
|
||||
TESTCASES += madd.tst
|
||||
TESTCASES += maddu.tst
|
||||
TESTCASES += maq_sa_w_phl.tst
|
||||
TESTCASES += maq_sa_w_phr.tst
|
||||
TESTCASES += maq_s_w_phl.tst
|
||||
TESTCASES += maq_s_w_phr.tst
|
||||
TESTCASES += mfhi.tst
|
||||
TESTCASES += mflo.tst
|
||||
TESTCASES += modsub.tst
|
||||
TESTCASES += msub.tst
|
||||
TESTCASES += msubu.tst
|
||||
TESTCASES += mthi.tst
|
||||
TESTCASES += mthlip.tst
|
||||
TESTCASES += mtlo.tst
|
||||
TESTCASES += muleq_s_w_phl.tst
|
||||
TESTCASES += muleq_s_w_phr.tst
|
||||
TESTCASES += muleu_s_ph_qbl.tst
|
||||
TESTCASES += muleu_s_ph_qbr.tst
|
||||
TESTCASES += mulq_rs_ph.tst
|
||||
TESTCASES += mult.tst
|
||||
TESTCASES += multu.tst
|
||||
TESTCASES += packrl_ph.tst
|
||||
TESTCASES += pick_ph.tst
|
||||
TESTCASES += pick_qb.tst
|
||||
TESTCASES += precequ_ph_qbla.tst
|
||||
TESTCASES += precequ_ph_qbl.tst
|
||||
TESTCASES += precequ_ph_qbra.tst
|
||||
TESTCASES += precequ_ph_qbr.tst
|
||||
TESTCASES += preceq_w_phl.tst
|
||||
TESTCASES += preceq_w_phr.tst
|
||||
TESTCASES += preceu_ph_qbla.tst
|
||||
TESTCASES += preceu_ph_qbl.tst
|
||||
TESTCASES += preceu_ph_qbra.tst
|
||||
TESTCASES += preceu_ph_qbr.tst
|
||||
TESTCASES += precrq_ph_w.tst
|
||||
TESTCASES += precrq_qb_ph.tst
|
||||
TESTCASES += precrq_rs_ph_w.tst
|
||||
TESTCASES += precrqu_s_qb_ph.tst
|
||||
TESTCASES += raddu_w_qb.tst
|
||||
TESTCASES += rddsp.tst
|
||||
TESTCASES += repl_ph.tst
|
||||
TESTCASES += repl_qb.tst
|
||||
TESTCASES += replv_ph.tst
|
||||
TESTCASES += replv_qb.tst
|
||||
TESTCASES += shilo.tst
|
||||
TESTCASES += shilov.tst
|
||||
TESTCASES += shll_ph.tst
|
||||
TESTCASES += shll_qb.tst
|
||||
TESTCASES += shll_s_ph.tst
|
||||
TESTCASES += shll_s_w.tst
|
||||
TESTCASES += shllv_ph.tst
|
||||
TESTCASES += shllv_qb.tst
|
||||
TESTCASES += shllv_s_ph.tst
|
||||
TESTCASES += shllv_s_w.tst
|
||||
TESTCASES += shra_ph.tst
|
||||
TESTCASES += shra_r_ph.tst
|
||||
TESTCASES += shra_r_w.tst
|
||||
TESTCASES += shrav_ph.tst
|
||||
TESTCASES += shrav_r_ph.tst
|
||||
TESTCASES += shrav_r_w.tst
|
||||
TESTCASES += shrl_qb.tst
|
||||
TESTCASES += shrlv_qb.tst
|
||||
TESTCASES += subq_ph.tst
|
||||
TESTCASES += subq_s_ph.tst
|
||||
TESTCASES += subq_s_w.tst
|
||||
TESTCASES += subu_qb.tst
|
||||
TESTCASES += subu_s_qb.tst
|
||||
TESTCASES += wrdsp.tst
|
||||
|
||||
all: $(TESTCASES)
|
||||
|
||||
%.tst: %.c
|
||||
$(CC) $(CFLAGS) $< -o $@
|
||||
|
||||
check: $(TESTCASES)
|
||||
@for case in $(TESTCASES); do \
|
||||
echo $(SIM) $(SIM_FLAGS) ./$$case;\
|
||||
$(SIM) $(SIM_FLAGS) ./$$case; \
|
||||
done
|
||||
|
||||
clean:
|
||||
$(RM) -rf $(TESTCASES)
|
|
@ -1,71 +0,0 @@
|
|||
-include ../../config-host.mak
|
||||
|
||||
CROSS=mips64el-unknown-linux-gnu-
|
||||
|
||||
SIM=qemu-mipsel
|
||||
SIM_FLAGS=-cpu 74Kf
|
||||
|
||||
CC = $(CROSS)gcc
|
||||
CFLAGS = -mabi=32 -march=mips32r2 -mgp32 -mdspr2 -static
|
||||
|
||||
TESTCASES = absq_s_qb.tst
|
||||
TESTCASES += addqh_ph.tst
|
||||
TESTCASES += addqh_r_ph.tst
|
||||
TESTCASES += addqh_r_w.tst
|
||||
TESTCASES += addqh_w.tst
|
||||
TESTCASES += adduh_qb.tst
|
||||
TESTCASES += adduh_r_qb.tst
|
||||
TESTCASES += addu_ph.tst
|
||||
TESTCASES += addu_s_ph.tst
|
||||
TESTCASES += append.tst
|
||||
TESTCASES += balign.tst
|
||||
TESTCASES += cmpgdu_eq_qb.tst
|
||||
TESTCASES += cmpgdu_le_qb.tst
|
||||
TESTCASES += cmpgdu_lt_qb.tst
|
||||
TESTCASES += dpaqx_sa_w_ph.tst
|
||||
TESTCASES += dpa_w_ph.tst
|
||||
TESTCASES += dpax_w_ph.tst
|
||||
TESTCASES += dpaqx_s_w_ph.tst
|
||||
TESTCASES += dpsqx_sa_w_ph.tst
|
||||
TESTCASES += dpsqx_s_w_ph.tst
|
||||
TESTCASES += dps_w_ph.tst
|
||||
TESTCASES += dpsx_w_ph.tst
|
||||
TESTCASES += mul_ph.tst
|
||||
TESTCASES += mulq_rs_w.tst
|
||||
TESTCASES += mulq_s_ph.tst
|
||||
TESTCASES += mulq_s_w.tst
|
||||
TESTCASES += mulsaq_s_w_ph.tst
|
||||
TESTCASES += mulsa_w_ph.tst
|
||||
TESTCASES += mul_s_ph.tst
|
||||
TESTCASES += precr_qb_ph.tst
|
||||
TESTCASES += precr_sra_ph_w.tst
|
||||
TESTCASES += precr_sra_r_ph_w.tst
|
||||
TESTCASES += prepend.tst
|
||||
TESTCASES += shra_qb.tst
|
||||
TESTCASES += shra_r_qb.tst
|
||||
TESTCASES += shrav_qb.tst
|
||||
TESTCASES += shrav_r_qb.tst
|
||||
TESTCASES += shrl_ph.tst
|
||||
TESTCASES += shrlv_ph.tst
|
||||
TESTCASES += subqh_ph.tst
|
||||
TESTCASES += subqh_r_ph.tst
|
||||
TESTCASES += subqh_r_w.tst
|
||||
TESTCASES += subqh_w.tst
|
||||
TESTCASES += subuh_qb.tst
|
||||
TESTCASES += subuh_r_qb.tst
|
||||
TESTCASES += subu_ph.tst
|
||||
TESTCASES += subu_s_ph.tst
|
||||
|
||||
all: $(TESTCASES)
|
||||
|
||||
%.tst: %.c
|
||||
$(CC) $(CFLAGS) $< -o $@
|
||||
|
||||
check: $(TESTCASES)
|
||||
@for case in $(TESTCASES); do \
|
||||
echo $(SIM) $(SIM_FLAGS) ./$$case;\
|
||||
$(SIM) $(SIM_FLAGS) ./$$case; \
|
||||
done
|
||||
|
||||
clean:
|
||||
$(RM) -rf $(TESTCASES)
|
|
@ -1,306 +0,0 @@
|
|||
|
||||
CROSS_COMPILE ?= mips64el-unknown-linux-gnu-
|
||||
|
||||
SIM = qemu-system-mips64el
|
||||
SIMFLAGS = -nographic -cpu mips64dspr2 -kernel
|
||||
|
||||
AS = $(CROSS_COMPILE)as
|
||||
LD = $(CROSS_COMPILE)ld
|
||||
CC = $(CROSS_COMPILE)gcc
|
||||
AR = $(CROSS_COMPILE)ar
|
||||
NM = $(CROSS_COMPILE)nm
|
||||
STRIP = $(CROSS_COMPILE)strip
|
||||
RANLIB = $(CROSS_COMPILE)ranlib
|
||||
OBJCOPY = $(CROSS_COMPILE)objcopy
|
||||
OBJDUMP = $(CROSS_COMPILE)objdump
|
||||
|
||||
VECTORS_OBJ ?= ./head.o ./printf.o
|
||||
|
||||
HEAD_FLAGS ?= -nostdinc -mabi=64 -G 0 -mno-abicalls -fno-pic -pipe \
|
||||
-msoft-float -march=mips64 -Wa,-mips64 -Wa,--trap \
|
||||
-msym32 -DKBUILD_64BIT_SYM32 -I./
|
||||
|
||||
CFLAGS ?= -nostdinc -mabi=64 -G 0 -mno-abicalls -fno-pic -fno-builtin \
|
||||
-pipe -march=mips64r2 -mgp64 -mdsp -static -Wa,--trap -msym32 \
|
||||
-DKBUILD_64BIT_SYM32 -I./
|
||||
|
||||
LDFLAGS = -T./mips_boot.lds -L./
|
||||
FLAGS = -nostdlib -mabi=64 -march=mips64r2 -mgp64 -mdsp
|
||||
|
||||
|
||||
#TESTCASES = absq_s_ob.tst
|
||||
TESTCASES = absq_s_ph.tst
|
||||
TESTCASES += absq_s_pw.tst
|
||||
TESTCASES += absq_s_qh.tst
|
||||
TESTCASES += absq_s_w.tst
|
||||
TESTCASES += addq_ph.tst
|
||||
TESTCASES += addq_pw.tst
|
||||
TESTCASES += addq_qh.tst
|
||||
TESTCASES += addq_s_ph.tst
|
||||
TESTCASES += addq_s_pw.tst
|
||||
TESTCASES += addq_s_qh.tst
|
||||
TESTCASES += addq_s_w.tst
|
||||
TESTCASES += addsc.tst
|
||||
TESTCASES += addu_ob.tst
|
||||
TESTCASES += addu_qb.tst
|
||||
TESTCASES += addu_s_ob.tst
|
||||
TESTCASES += addu_s_qb.tst
|
||||
TESTCASES += addwc.tst
|
||||
TESTCASES += bitrev.tst
|
||||
TESTCASES += bposge32.tst
|
||||
TESTCASES += bposge64.tst
|
||||
TESTCASES += cmp_eq_ph.tst
|
||||
TESTCASES += cmp_eq_pw.tst
|
||||
TESTCASES += cmp_eq_qh.tst
|
||||
TESTCASES += cmpgu_eq_ob.tst
|
||||
TESTCASES += cmpgu_eq_qb.tst
|
||||
TESTCASES += cmpgu_le_ob.tst
|
||||
TESTCASES += cmpgu_le_qb.tst
|
||||
TESTCASES += cmpgu_lt_ob.tst
|
||||
TESTCASES += cmpgu_lt_qb.tst
|
||||
TESTCASES += cmp_le_ph.tst
|
||||
TESTCASES += cmp_le_pw.tst
|
||||
TESTCASES += cmp_le_qh.tst
|
||||
TESTCASES += cmp_lt_ph.tst
|
||||
TESTCASES += cmp_lt_pw.tst
|
||||
TESTCASES += cmp_lt_qh.tst
|
||||
TESTCASES += cmpu_eq_ob.tst
|
||||
TESTCASES += cmpu_eq_qb.tst
|
||||
TESTCASES += cmpu_le_ob.tst
|
||||
TESTCASES += cmpu_le_qb.tst
|
||||
TESTCASES += cmpu_lt_ob.tst
|
||||
TESTCASES += cmpu_lt_qb.tst
|
||||
#TESTCASES += dappend.tst
|
||||
TESTCASES += dextp.tst
|
||||
TESTCASES += dextpdp.tst
|
||||
TESTCASES += dextpdpv.tst
|
||||
TESTCASES += dextpv.tst
|
||||
TESTCASES += dextr_l.tst
|
||||
TESTCASES += dextr_r_l.tst
|
||||
TESTCASES += dextr_rs_l.tst
|
||||
TESTCASES += dextr_rs_w.tst
|
||||
TESTCASES += dextr_r_w.tst
|
||||
TESTCASES += dextr_s_h.tst
|
||||
TESTCASES += dextrv_l.tst
|
||||
TESTCASES += dextrv_r_l.tst
|
||||
TESTCASES += dextrv_rs_l.tst
|
||||
TESTCASES += dextrv_rs_w.tst
|
||||
TESTCASES += dextrv_r_w.tst
|
||||
TESTCASES += dextrv_s_h.tst
|
||||
TESTCASES += dextrv_w.tst
|
||||
TESTCASES += dextr_w.tst
|
||||
TESTCASES += dinsv.tst
|
||||
TESTCASES += dmadd.tst
|
||||
TESTCASES += dmaddu.tst
|
||||
TESTCASES += dmsub.tst
|
||||
TESTCASES += dmsubu.tst
|
||||
TESTCASES += dmthlip.tst
|
||||
TESTCASES += dpaq_sa_l_pw.tst
|
||||
TESTCASES += dpaq_sa_l_w.tst
|
||||
TESTCASES += dpaq_s_w_ph.tst
|
||||
TESTCASES += dpaq_s_w_qh.tst
|
||||
TESTCASES += dpau_h_obl.tst
|
||||
TESTCASES += dpau_h_obr.tst
|
||||
TESTCASES += dpau_h_qbl.tst
|
||||
TESTCASES += dpau_h_qbr.tst
|
||||
TESTCASES += dpsq_sa_l_pw.tst
|
||||
TESTCASES += dpsq_sa_l_w.tst
|
||||
TESTCASES += dpsq_s_w_ph.tst
|
||||
TESTCASES += dpsq_s_w_qh.tst
|
||||
TESTCASES += dpsu_h_obl.tst
|
||||
TESTCASES += dpsu_h_obr.tst
|
||||
TESTCASES += dpsu_h_qbl.tst
|
||||
TESTCASES += dpsu_h_qbr.tst
|
||||
TESTCASES += dshilo.tst
|
||||
TESTCASES += dshilov.tst
|
||||
TESTCASES += extp.tst
|
||||
TESTCASES += extpdp.tst
|
||||
TESTCASES += extpdpv.tst
|
||||
TESTCASES += extpv.tst
|
||||
TESTCASES += extr_rs_w.tst
|
||||
TESTCASES += extr_r_w.tst
|
||||
TESTCASES += extr_s_h.tst
|
||||
TESTCASES += extrv_rs_w.tst
|
||||
TESTCASES += extrv_r_w.tst
|
||||
TESTCASES += extrv_s_h.tst
|
||||
TESTCASES += extrv_w.tst
|
||||
TESTCASES += extr_w.tst
|
||||
TESTCASES += insv.tst
|
||||
TESTCASES += lbux.tst
|
||||
TESTCASES += lhx.tst
|
||||
TESTCASES += lwx.tst
|
||||
TESTCASES += ldx.tst
|
||||
TESTCASES += madd.tst
|
||||
TESTCASES += maddu.tst
|
||||
TESTCASES += maq_sa_w_phl.tst
|
||||
TESTCASES += maq_sa_w_phr.tst
|
||||
TESTCASES += maq_sa_w_qhll.tst
|
||||
TESTCASES += maq_sa_w_qhlr.tst
|
||||
TESTCASES += maq_sa_w_qhrl.tst
|
||||
TESTCASES += maq_sa_w_qhrr.tst
|
||||
TESTCASES += maq_s_l_pwl.tst
|
||||
TESTCASES += maq_s_l_pwr.tst
|
||||
TESTCASES += maq_s_w_phl.tst
|
||||
TESTCASES += maq_s_w_phr.tst
|
||||
TESTCASES += maq_s_w_qhll.tst
|
||||
TESTCASES += maq_s_w_qhlr.tst
|
||||
TESTCASES += maq_s_w_qhrl.tst
|
||||
TESTCASES += maq_s_w_qhrr.tst
|
||||
TESTCASES += mfhi.tst
|
||||
TESTCASES += mflo.tst
|
||||
TESTCASES += modsub.tst
|
||||
TESTCASES += msub.tst
|
||||
TESTCASES += msubu.tst
|
||||
TESTCASES += mthi.tst
|
||||
TESTCASES += mthlip.tst
|
||||
TESTCASES += mtlo.tst
|
||||
TESTCASES += muleq_s_pw_qhl.tst
|
||||
TESTCASES += muleq_s_pw_qhr.tst
|
||||
TESTCASES += muleq_s_w_phl.tst
|
||||
TESTCASES += muleq_s_w_phr.tst
|
||||
TESTCASES += muleu_s_ph_qbl.tst
|
||||
TESTCASES += muleu_s_ph_qbr.tst
|
||||
TESTCASES += muleu_s_qh_obl.tst
|
||||
TESTCASES += muleu_s_qh_obr.tst
|
||||
TESTCASES += mulq_rs_ph.tst
|
||||
TESTCASES += mulq_rs_qh.tst
|
||||
TESTCASES += mulsaq_s_l_pw.tst
|
||||
TESTCASES += mulsaq_s_w_qh.tst
|
||||
TESTCASES += mult.tst
|
||||
TESTCASES += multu.tst
|
||||
TESTCASES += packrl_ph.tst
|
||||
TESTCASES += packrl_pw.tst
|
||||
TESTCASES += pick_ob.tst
|
||||
TESTCASES += pick_ph.tst
|
||||
TESTCASES += pick_pw.tst
|
||||
TESTCASES += pick_qb.tst
|
||||
TESTCASES += pick_qh.tst
|
||||
#TESTCASES += preceq_l_pwl.tst
|
||||
#TESTCASES += preceq_l_pwr.tst
|
||||
TESTCASES += preceq_pw_qhla.tst
|
||||
TESTCASES += preceq_pw_qhl.tst
|
||||
TESTCASES += preceq_pw_qhra.tst
|
||||
TESTCASES += preceq_pw_qhr.tst
|
||||
TESTCASES += precequ_ph_qbla.tst
|
||||
TESTCASES += precequ_ph_qbl.tst
|
||||
TESTCASES += precequ_ph_qbra.tst
|
||||
TESTCASES += precequ_ph_qbr.tst
|
||||
#TESTCASES += precequ_qh_obla.tst
|
||||
#TESTCASES += precequ_qh_obl.tst
|
||||
#TESTCASES += precequ_qh_obra.tst
|
||||
#TESTCASES += precequ_qh_obr.tst
|
||||
TESTCASES += preceq_w_phl.tst
|
||||
TESTCASES += preceq_w_phr.tst
|
||||
TESTCASES += preceu_ph_qbla.tst
|
||||
TESTCASES += preceu_ph_qbl.tst
|
||||
TESTCASES += preceu_ph_qbra.tst
|
||||
TESTCASES += preceu_ph_qbr.tst
|
||||
TESTCASES += preceu_qh_obla.tst
|
||||
TESTCASES += preceu_qh_obl.tst
|
||||
TESTCASES += preceu_qh_obra.tst
|
||||
TESTCASES += preceu_qh_obr.tst
|
||||
#TESTCASES += precr_ob_qh.tst
|
||||
TESTCASES += precrq_ob_qh.tst
|
||||
TESTCASES += precrq_ph_w.tst
|
||||
TESTCASES += precrq_pw_l.tst
|
||||
TESTCASES += precrq_qb_ph.tst
|
||||
TESTCASES += precrq_qh_pw.tst
|
||||
TESTCASES += precrq_rs_ph_w.tst
|
||||
TESTCASES += precrq_rs_qh_pw.tst
|
||||
TESTCASES += precrqu_s_ob_qh.tst
|
||||
TESTCASES += precrqu_s_qb_ph.tst
|
||||
#TESTCASES += precr_sra_qh_pw.tst
|
||||
#TESTCASES += precr_sra_r_qh_pw.tst
|
||||
#TESTCASES += prependd.tst
|
||||
#TESTCASES += prependw.tst
|
||||
#TESTCASES += raddu_l_ob.tst
|
||||
TESTCASES += raddu_w_qb.tst
|
||||
TESTCASES += rddsp.tst
|
||||
TESTCASES += repl_ob.tst
|
||||
TESTCASES += repl_ph.tst
|
||||
TESTCASES += repl_pw.tst
|
||||
TESTCASES += repl_qb.tst
|
||||
TESTCASES += repl_qh.tst
|
||||
TESTCASES += replv_ob.tst
|
||||
TESTCASES += replv_ph.tst
|
||||
TESTCASES += replv_pw.tst
|
||||
TESTCASES += replv_qb.tst
|
||||
TESTCASES += shilo.tst
|
||||
TESTCASES += shilov.tst
|
||||
TESTCASES += shll_ob.tst
|
||||
TESTCASES += shll_ph.tst
|
||||
TESTCASES += shll_pw.tst
|
||||
TESTCASES += shll_qb.tst
|
||||
TESTCASES += shll_qh.tst
|
||||
TESTCASES += shll_s_ph.tst
|
||||
TESTCASES += shll_s_pw.tst
|
||||
TESTCASES += shll_s_qh.tst
|
||||
TESTCASES += shll_s_w.tst
|
||||
TESTCASES += shllv_ob.tst
|
||||
TESTCASES += shllv_ph.tst
|
||||
TESTCASES += shllv_pw.tst
|
||||
TESTCASES += shllv_qb.tst
|
||||
TESTCASES += shllv_qh.tst
|
||||
TESTCASES += shllv_s_ph.tst
|
||||
TESTCASES += shllv_s_pw.tst
|
||||
TESTCASES += shllv_s_qh.tst
|
||||
TESTCASES += shllv_s_w.tst
|
||||
#TESTCASES += shra_ob.tst
|
||||
TESTCASES += shra_ph.tst
|
||||
TESTCASES += shra_pw.tst
|
||||
TESTCASES += shra_qh.tst
|
||||
#TESTCASES += shra_r_ob.tst
|
||||
TESTCASES += shra_r_ph.tst
|
||||
TESTCASES += shra_r_pw.tst
|
||||
TESTCASES += shra_r_qh.tst
|
||||
TESTCASES += shra_r_w.tst
|
||||
TESTCASES += shrav_ph.tst
|
||||
TESTCASES += shrav_pw.tst
|
||||
TESTCASES += shrav_qh.tst
|
||||
TESTCASES += shrav_r_ph.tst
|
||||
TESTCASES += shrav_r_pw.tst
|
||||
TESTCASES += shrav_r_qh.tst
|
||||
TESTCASES += shrav_r_w.tst
|
||||
TESTCASES += shrl_ob.tst
|
||||
TESTCASES += shrl_qb.tst
|
||||
#TESTCASES += shrl_qh.tst
|
||||
TESTCASES += shrlv_ob.tst
|
||||
TESTCASES += shrlv_qb.tst
|
||||
#TESTCASES += shrlv_qh.tst
|
||||
TESTCASES += subq_ph.tst
|
||||
TESTCASES += subq_pw.tst
|
||||
TESTCASES += subq_qh.tst
|
||||
TESTCASES += subq_s_ph.tst
|
||||
TESTCASES += subq_s_pw.tst
|
||||
TESTCASES += subq_s_qh.tst
|
||||
TESTCASES += subq_s_w.tst
|
||||
TESTCASES += subu_ob.tst
|
||||
TESTCASES += subu_qb.tst
|
||||
TESTCASES += subu_s_ob.tst
|
||||
TESTCASES += subu_s_qb.tst
|
||||
TESTCASES += wrdsp.tst
|
||||
|
||||
all: build
|
||||
|
||||
head.o : head.S
|
||||
$(Q)$(CC) $(HEAD_FLAGS) -D"STACK_TOP=0xffffffff80200000" -c $< -o $@
|
||||
|
||||
%.o : %.S
|
||||
$(CC) $(CFLAGS) -c $< -o $@
|
||||
|
||||
%.o : %.c
|
||||
$(CC) $(CFLAGS) -c $< -o $@
|
||||
|
||||
%.tst: %.o $(VECTORS_OBJ)
|
||||
$(CC) $(VECTORS_OBJ) $(FLAGS) $(LDFLAGS) $< -o $@
|
||||
|
||||
build: $(VECTORS_OBJ) $(MIPSSOC_LIB) $(TESTCASES)
|
||||
|
||||
check: $(VECTORS_OBJ) $(MIPSSOC_LIB) $(TESTCASES)
|
||||
@for case in $(TESTCASES); do \
|
||||
echo $(SIM) $(SIMFLAGS) ./$$case; \
|
||||
$(SIM) $(SIMFLAGS) ./$$case & (sleep 1; killall $(SIM)); \
|
||||
done
|
||||
|
||||
clean:
|
||||
$(Q)rm -f *.o *.tst *.a
|
|
@ -1,63 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rd, rt, result, dspcontrol;
|
||||
rt = 0x7F7F7F7F7F7F7F7F;
|
||||
result = 0x7F7F7F7F7F7F7F7F;
|
||||
|
||||
|
||||
__asm
|
||||
(".set mips64\n\t"
|
||||
"absq_s.ob %0 %1\n\t"
|
||||
: "=r"(rd)
|
||||
: "r"(rt)
|
||||
);
|
||||
|
||||
if (result != rd) {
|
||||
printf("absq_s.ob test 1 error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
__asm
|
||||
("rddsp %0\n\t"
|
||||
: "=r"(rd)
|
||||
);
|
||||
rd >> 20;
|
||||
rd = rd & 0x1;
|
||||
if (rd != 0) {
|
||||
printf("absq_s.ob test 1 dspcontrol overflow flag error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
rt = 0x80FFFFFFFFFFFFFF;
|
||||
result = 0x7F01010101010101;
|
||||
|
||||
__asm
|
||||
("absq_s.ob %0, %1\n\t"
|
||||
: "=r"(rd)
|
||||
: "r"(rt)
|
||||
);
|
||||
if (result != rd) {
|
||||
printf("absq_s.ob test 2 error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
__asm
|
||||
("rddsp %0\n\t"
|
||||
: "=r"(rd)
|
||||
);
|
||||
rd = rd >> 20;
|
||||
rd = rd & 0x1;
|
||||
if (rd != 1) {
|
||||
printf("absq_s.ob test 2 dspcontrol overflow flag error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rd, rt;
|
||||
long long result;
|
||||
|
||||
rt = 0x10017EFD;
|
||||
result = 0x10017EFD;
|
||||
|
||||
__asm
|
||||
("absq_s.ph %0, %1\n\t"
|
||||
: "=r"(rd)
|
||||
: "r"(rt)
|
||||
);
|
||||
if (rd != result) {
|
||||
printf("absq_s.ph wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
rt = 0x8000A536;
|
||||
result = 0x7FFF5ACA;
|
||||
|
||||
__asm
|
||||
("absq_s.ph %0, %1\n\t"
|
||||
: "=r"(rd)
|
||||
: "r"(rt)
|
||||
);
|
||||
if (rd != result) {
|
||||
printf("absq_s.ph wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,66 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rd, rt, result, dspcontrol;
|
||||
rd = 0;
|
||||
rt = 0x7F7F7F7F7F7F7F7F;
|
||||
result = 0x7F7F7F7F7F7F7F7F;
|
||||
|
||||
|
||||
__asm
|
||||
("absq_s.pw %0, %1\n\t"
|
||||
: "=r"(rd)
|
||||
: "r"(rt)
|
||||
);
|
||||
|
||||
if (result != rd) {
|
||||
printf("absq_s.pw test 1 error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
rd = 0;
|
||||
__asm
|
||||
("rddsp %0\n\t"
|
||||
: "=r"(rd)
|
||||
);
|
||||
rd >> 20;
|
||||
rd = rd & 0x1;
|
||||
if (rd != 0) {
|
||||
printf("absq_s.pw test 1 dspcontrol overflow flag error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
rd = 0;
|
||||
rt = 0x80000000FFFFFFFF;
|
||||
result = 0x7FFFFFFF00000001;
|
||||
|
||||
__asm
|
||||
("absq_s.pw %0, %1\n\t"
|
||||
: "=r"(rd)
|
||||
: "r"(rt)
|
||||
);
|
||||
if (result != rd) {
|
||||
printf("absq_s.pw test 2 error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
rd = 0;
|
||||
__asm
|
||||
("rddsp %0\n\t"
|
||||
: "=r"(rd)
|
||||
);
|
||||
rd = rd >> 20;
|
||||
rd = rd & 0x1;
|
||||
if (rd != 1) {
|
||||
printf("absq_s.pw test 2 dspcontrol overflow flag error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rd, rt, result, dspcontrol;
|
||||
rd = 0;
|
||||
rt = 0x7F7F7F7F7F7F7F7F;
|
||||
result = 0x7F7F7F7F7F7F7F7F;
|
||||
|
||||
|
||||
__asm
|
||||
("absq_s.qh %0, %1\n\t"
|
||||
: "=r"(rd)
|
||||
: "r"(rt)
|
||||
);
|
||||
|
||||
if (result != rd) {
|
||||
printf("absq_s.qh test 1 error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
rd = 0;
|
||||
rt = 0x8000FFFFFFFFFFFF;
|
||||
result = 0x7FFF000100000001;
|
||||
|
||||
__asm
|
||||
("absq_s.pw %0, %1\n\t"
|
||||
: "=r"(rd)
|
||||
: "r"(rt)
|
||||
);
|
||||
if (result != rd) {
|
||||
printf("absq_s.rw test 2 error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -1,48 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rd, rt;
|
||||
long long result;
|
||||
|
||||
rt = 0x80000000;
|
||||
result = 0x7FFFFFFF;
|
||||
__asm
|
||||
("absq_s.w %0, %1\n\t"
|
||||
: "=r"(rd)
|
||||
: "r"(rt)
|
||||
);
|
||||
if (rd != result) {
|
||||
printf("absq_s_w.ph wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
rt = 0x80030000;
|
||||
result = 0x7FFD0000;
|
||||
__asm
|
||||
("absq_s.w %0, %1\n\t"
|
||||
: "=r"(rd)
|
||||
: "r"(rt)
|
||||
);
|
||||
if (rd != result) {
|
||||
printf("absq_s_w.ph wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
rt = 0x31036080;
|
||||
result = 0x31036080;
|
||||
__asm
|
||||
("absq_s.w %0, %1\n\t"
|
||||
: "=r"(rd)
|
||||
: "r"(rt)
|
||||
);
|
||||
if (rd != result) {
|
||||
printf("absq_s_w.ph wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,57 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rd, rs, rt;
|
||||
long long dsp;
|
||||
long long result;
|
||||
|
||||
rs = 0xFFFFFFFF;
|
||||
rt = 0x10101010;
|
||||
result = 0x100F100F;
|
||||
__asm
|
||||
("addq.ph %0, %1, %2\n\t"
|
||||
: "=r"(rd)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
if (rd != result) {
|
||||
printf("1 addq.ph wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
rs = 0x3712847D;
|
||||
rt = 0x0031AF2D;
|
||||
result = 0x374333AA;
|
||||
__asm
|
||||
("addq.ph %0, %1, %2\n\t"
|
||||
: "=r"(rd)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
if (rd != result) {
|
||||
printf("2 addq.ph wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
rs = 0x7fff847D;
|
||||
rt = 0x0031AF2D;
|
||||
result = 0xffffffff803033AA;
|
||||
__asm
|
||||
("addq.ph %0, %1, %2\n\t"
|
||||
: "=r"(rd)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
__asm("rddsp %0\n\t"
|
||||
: "=r"(dsp)
|
||||
);
|
||||
|
||||
if (rd != result || (((dsp >> 20) & 0x01) != 1)) {
|
||||
printf("3 addq.ph wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,46 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rd, rs, rt, result, dspreg, dspresult;
|
||||
|
||||
rs = 0x123456787FFFFFFF;
|
||||
rt = 0x1111111100000101;
|
||||
result = 0x2345678980000100;
|
||||
dspresult = 0x1;
|
||||
|
||||
__asm
|
||||
("addq.pw %0, %2, %3\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rd), "=r"(dspreg)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
dspreg = ((dspreg >> 20) & 0x01);
|
||||
if ((rd != result) || (dspreg != dspresult)) {
|
||||
printf("addq.pw error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
rs = 0x1234567880FFFFFF;
|
||||
rt = 0x1111111180000001;
|
||||
result = 0x2345678901000000;
|
||||
dspresult = 0x1;
|
||||
|
||||
__asm
|
||||
("addq.pw %0, %2, %3\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rd), "=r"(dspreg)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
dspreg = ((dspreg >> 20) & 0x01);
|
||||
if ((rd != result) || (dspreg != dspresult)) {
|
||||
printf("addq.pw error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,28 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rd, rs, rt, result, dspreg, dspresult;
|
||||
|
||||
rs = 0x123456787FFF8010;
|
||||
rt = 0x1111111100018000;
|
||||
result = 0x2345678980000010;
|
||||
dspresult = 0x1;
|
||||
|
||||
__asm
|
||||
("addq.qh %0, %2, %3\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rd), "=r"(dspreg)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
dspreg = ((dspreg >> 20) & 0x01);
|
||||
|
||||
if ((rd != result) || (dspreg != dspresult)) {
|
||||
printf("addq.qh error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,84 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rd, rs, rt;
|
||||
long long dsp;
|
||||
long long result;
|
||||
|
||||
rs = 0xFFFFFFFF;
|
||||
rt = 0x10101010;
|
||||
result = 0x100F100F;
|
||||
__asm
|
||||
("addq_s.ph %0, %1, %2\n\t"
|
||||
: "=r"(rd)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
if (rd != result) {
|
||||
printf("1 addq_s.ph wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
rs = 0x3712847D;
|
||||
rt = 0x0031AF2D;
|
||||
result = 0x37438000;
|
||||
__asm
|
||||
("addq_s.ph %0, %1, %2\n\t"
|
||||
: "=r"(rd)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
__asm
|
||||
("rddsp %0\n\t"
|
||||
: "=r"(dsp)
|
||||
);
|
||||
|
||||
if ((rd != result) || (((dsp >> 20) & 0x01) != 1)) {
|
||||
printf("2 addq_s.ph wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
rs = 0x7fff847D;
|
||||
rt = 0x0031AF2D;
|
||||
result = 0x7fff8000;
|
||||
__asm
|
||||
("addq_s.ph %0, %1, %2\n\t"
|
||||
: "=r"(rd)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
__asm
|
||||
("rddsp %0\n\t"
|
||||
: "=r"(dsp)
|
||||
);
|
||||
|
||||
if ((rd != result) || (((dsp >> 20) & 0x01) != 1)) {
|
||||
printf("3 addq_s.ph wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
rs = 0x8030847D;
|
||||
rt = 0x8a00AF2D;
|
||||
result = 0xffffffff80008000;
|
||||
__asm
|
||||
("addq_s.ph %0, %1, %2\n\t"
|
||||
: "=r"(rd)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
__asm
|
||||
("rddsp %0\n\t"
|
||||
: "=r"(dsp)
|
||||
);
|
||||
|
||||
if ((rd != result) || (((dsp >> 20) & 0x01) != 1)) {
|
||||
printf("4 addq_s.ph wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,45 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rd, rs, rt, result, dspreg, dspresult;
|
||||
rs = 0x123456787FFFFFFF;
|
||||
rt = 0x1111111100000001;
|
||||
result = 0x234567897FFFFFFF;
|
||||
dspresult = 0x1;
|
||||
|
||||
__asm
|
||||
("addq_s.pw %0, %2, %3\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rd), "=r"(dspreg)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
dspreg = ((dspreg >> 20) & 0x01);
|
||||
if ((rd != result) || (dspreg != dspresult)) {
|
||||
printf("addq_s.pw error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
rs = 0x80FFFFFFE00000FF;
|
||||
rt = 0x80000001200000DD;
|
||||
result = 0x80000000000001DC;
|
||||
dspresult = 0x01;
|
||||
|
||||
__asm
|
||||
("addq_s.pw %0, %2, %3\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rd), "=r"(dspreg)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
dspreg = ((dspreg >> 20) & 0x01);
|
||||
if ((rd != result) || (dspreg != dspresult)) {
|
||||
printf("addq_s.pw error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,26 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rd, rs, rt, result, dspreg, dspresult;
|
||||
rs = 0x123456787FFF8000;
|
||||
rt = 0x1111111100028000;
|
||||
result = 0x234567897FFF8000;
|
||||
dspresult = 0x1;
|
||||
|
||||
__asm
|
||||
("addq_s.qh %0, %2, %3\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rd), "=r"(dspreg)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
dspreg = ((dspreg >> 20) & 0x01);
|
||||
if ((rd != result) || (dspreg != dspresult)) {
|
||||
printf("addq_s.qh error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,48 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main()
|
||||
{
|
||||
long long rd, rs, rt;
|
||||
long long result;
|
||||
|
||||
rt = 0x10017EFD;
|
||||
rs = 0x11111111;
|
||||
result = 0x2112900e;
|
||||
|
||||
__asm
|
||||
("addq_s.w %0, %1, %2\n\t"
|
||||
: "=r"(rd)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
if (rd != result) {
|
||||
printf("addq_s.w error\n");
|
||||
}
|
||||
|
||||
rt = 0x80017EFD;
|
||||
rs = 0x81111111;
|
||||
result = 0xffffffff80000000;
|
||||
|
||||
__asm
|
||||
("addq_s.w %0, %1, %2\n\t"
|
||||
: "=r"(rd)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
if (rd != result) {
|
||||
printf("addq_s.w error\n");
|
||||
}
|
||||
|
||||
rt = 0x7fffffff;
|
||||
rs = 0x01111111;
|
||||
result = 0x7fffffff;
|
||||
|
||||
__asm
|
||||
("addq_s.w %0, %1, %2\n\t"
|
||||
: "=r"(rd)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
if (rd != result) {
|
||||
printf("addq_s.w error\n");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,39 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rd, rs, rt;
|
||||
long long dsp;
|
||||
long long result;
|
||||
|
||||
rs = 0x0000000F;
|
||||
rt = 0x00000001;
|
||||
result = 0x00000010;
|
||||
__asm
|
||||
("addsc %0, %1, %2\n\t"
|
||||
: "=r"(rd)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
if (rd != result) {
|
||||
printf("1 addsc wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
rs = 0xFFFF0FFF;
|
||||
rt = 0x00010111;
|
||||
result = 0x00001110;
|
||||
__asm
|
||||
("addsc %0, %2, %3\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rd), "=r"(dsp)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
if ((rd != result) || (((dsp >> 13) & 0x01) != 1)) {
|
||||
printf("2 addsc wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,28 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rd, rs, rt, result, dspreg, dspresult;
|
||||
|
||||
rs = 0x123456789ABCDEF0;
|
||||
rt = 0x3456123498DEF390;
|
||||
result = 0x468A68AC329AD180;
|
||||
dspresult = 0x01;
|
||||
|
||||
__asm
|
||||
("addu.ob %0, %2, %3\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rd), "=r"(dspreg)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
dspreg = ((dspreg >> 20) & 0x01);
|
||||
|
||||
if ((rd != result) || (dspreg != dspresult)) {
|
||||
printf("addu.ob error\n\t");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,40 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rd, rs, rt;
|
||||
long long dsp;
|
||||
long long result;
|
||||
|
||||
rs = 0x00FF00FF;
|
||||
rt = 0x00010001;
|
||||
result = 0x00000000;
|
||||
__asm
|
||||
("addu.qb %0, %2, %3\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rd), "=r"(dsp)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
if ((rd != result) || (((dsp >> 20) & 0x01) != 1)) {
|
||||
printf("1 addu.qb wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
rs = 0xFFFF1111;
|
||||
rt = 0x00020001;
|
||||
result = 0xFFFFFFFFFF011112;
|
||||
__asm
|
||||
("addu.qb %0, %2, %3\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rd), "=r"(dsp)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
if ((rd != result) || (((dsp >> 20) & 0x01) != 1)) {
|
||||
printf("2 addu.qb wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rd, rs, rt, result, dspreg, dspresult;
|
||||
rs = 0x123456789ABCDEF0;
|
||||
rt = 0x3456123498DEF390;
|
||||
result = 0x468A68ACFFFFFFFF;
|
||||
dspresult = 0x01;
|
||||
|
||||
__asm
|
||||
("addu_s.ob %0, %2, %3\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rd), "=r"(dspreg)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
dspreg = ((dspreg >> 20) & 0x01);
|
||||
|
||||
if ((rd != result) || (dspreg != dspresult)) {
|
||||
printf("addu_s.ob error\n\t");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,40 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rd, rs, rt;
|
||||
long long dsp;
|
||||
long long result;
|
||||
|
||||
rs = 0x10FF01FF;
|
||||
rt = 0x10010001;
|
||||
result = 0x20FF01FF;
|
||||
__asm
|
||||
("addu_s.qb %0, %2, %3\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rd), "=r"(dsp)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
if ((rd != result) || (((dsp >> 20) & 0x1) != 1)) {
|
||||
printf("1 addu_s.qb error 1\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
rs = 0xFFFFFFFFFFFF1111;
|
||||
rt = 0x00020001;
|
||||
result = 0xFFFFFFFFFFFF1112;
|
||||
__asm
|
||||
("addu_s.qb %0, %2, %3\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rd), "=r"(dsp)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
if ((rd != result) || (((dsp >> 20) & 0x1) != 1)) {
|
||||
printf("2 addu_s.qb error 2\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,59 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rd, rs, rt;
|
||||
long long dspi, dspo;
|
||||
long long result;
|
||||
|
||||
rs = 0x10FF01FF;
|
||||
rt = 0x10010001;
|
||||
dspi = 0x00002000;
|
||||
result = 0x21000201;
|
||||
__asm
|
||||
("wrdsp %3\n"
|
||||
"addwc %0, %1, %2\n\t"
|
||||
: "=r"(rd)
|
||||
: "r"(rs), "r"(rt), "r"(dspi)
|
||||
);
|
||||
if (rd != result) {
|
||||
printf("1 addwc wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
rs = 0xFFFF1111;
|
||||
rt = 0x00020001;
|
||||
dspi = 0x00;
|
||||
result = 0x00011112;
|
||||
__asm
|
||||
("wrdsp %3\n"
|
||||
"addwc %0, %1, %2\n\t"
|
||||
: "=r"(rd)
|
||||
: "r"(rs), "r"(rt), "r"(dspi)
|
||||
);
|
||||
if (rd != result) {
|
||||
printf("2 addwc wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
rs = 0x8FFF1111;
|
||||
rt = 0x80020001;
|
||||
dspi = 0x00;
|
||||
result = 0x10011112;
|
||||
__asm
|
||||
("wrdsp %4\n"
|
||||
"addwc %0, %2, %3\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rd), "=r"(dspo)
|
||||
: "r"(rs), "r"(rt), "r"(dspi)
|
||||
);
|
||||
if ((rd != result) || (((dspo >> 20) & 0x01) != 1)) {
|
||||
printf("3 addwc wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,23 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rd, rt;
|
||||
long long result;
|
||||
|
||||
rt = 0x12345678;
|
||||
result = 0x00001E6A;
|
||||
|
||||
__asm
|
||||
("bitrev %0, %1\n\t"
|
||||
: "=r"(rd)
|
||||
: "r"(rt)
|
||||
);
|
||||
if (rd != result) {
|
||||
printf("bitrev wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,50 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long dsp, sum;
|
||||
long long result;
|
||||
|
||||
dsp = 0x20;
|
||||
sum = 0x01;
|
||||
result = 0x02;
|
||||
|
||||
__asm
|
||||
("wrdsp %1\n\t"
|
||||
"bposge32 test1\n\t"
|
||||
"nop\n\t"
|
||||
"addi %0, 0xA2\n\t"
|
||||
"nop\n\t"
|
||||
"test1:\n\t"
|
||||
"addi %0, 0x01\n\t"
|
||||
: "+r"(sum)
|
||||
: "r"(dsp)
|
||||
);
|
||||
if (sum != result) {
|
||||
printf("bposge32 wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
dsp = 0x10;
|
||||
sum = 0x01;
|
||||
result = 0xA4;
|
||||
|
||||
__asm
|
||||
("wrdsp %1\n\t"
|
||||
"bposge32 test2\n\t"
|
||||
"nop\n\t"
|
||||
"addi %0, 0xA2\n\t"
|
||||
"nop\n\t"
|
||||
"test2:\n\t"
|
||||
"addi %0, 0x01\n\t"
|
||||
: "+r"(sum)
|
||||
: "r"(dsp)
|
||||
);
|
||||
if (sum != result) {
|
||||
printf("bposge32 wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
}
|
|
@ -1,50 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long dsp, sum;
|
||||
long long result;
|
||||
|
||||
dsp = 0x40;
|
||||
sum = 0x01;
|
||||
result = 0x02;
|
||||
|
||||
__asm
|
||||
("wrdsp %1\n\t"
|
||||
"bposge64 test1\n\t"
|
||||
"nop\n\t"
|
||||
"addi %0, 0xA2\n\t"
|
||||
"nop\n\t"
|
||||
"test1:\n\t"
|
||||
"addi %0, 0x01\n\t"
|
||||
: "+r"(sum)
|
||||
: "r"(dsp)
|
||||
);
|
||||
if (sum != result) {
|
||||
printf("bposge64 wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
dsp = 0x10;
|
||||
sum = 0x01;
|
||||
result = 0xA4;
|
||||
|
||||
__asm
|
||||
("wrdsp %1\n\t"
|
||||
"bposge64 test2\n\t"
|
||||
"nop\n\t"
|
||||
"addi %0, 0xA2\n\t"
|
||||
"nop\n\t"
|
||||
"test2:\n\t"
|
||||
"addi %0, 0x01\n\t"
|
||||
: "+r"(sum)
|
||||
: "r"(dsp)
|
||||
);
|
||||
if (sum != result) {
|
||||
printf("bposge64 wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
}
|
|
@ -1,42 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rd, rs, rt;
|
||||
long long result;
|
||||
|
||||
rs = 0x11777066;
|
||||
rt = 0x55AA33FF;
|
||||
result = 0x00;
|
||||
__asm
|
||||
("cmp.eq.ph %1, %2\n\t"
|
||||
"rddsp %0\n\t"
|
||||
: "=r"(rd)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
rd = (rd >> 24) & 0x03;
|
||||
if (rd != result) {
|
||||
printf("cmp.eq.ph wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
rs = 0x11777066;
|
||||
rt = 0x11777066;
|
||||
result = 0x03;
|
||||
__asm
|
||||
("cmp.eq.ph %1, %2\n\t"
|
||||
"rddsp %0\n\t"
|
||||
: "=r"(rd)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
rd = (rd >> 24) & 0x03;
|
||||
if (rd != result) {
|
||||
printf("cmp.eq.ph wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,46 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rs, rt, dspreg, dspresult;
|
||||
|
||||
rs = 0x123456789ABCDEFF;
|
||||
rt = 0x123456789ABCDEFF;
|
||||
dspresult = 0x03;
|
||||
|
||||
__asm
|
||||
("cmp.eq.pw %1, %2\n\t"
|
||||
"rddsp %0\n\t"
|
||||
: "=r"(dspreg)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
dspreg = ((dspreg >> 24) & 0x03);
|
||||
|
||||
if (dspreg != dspresult) {
|
||||
printf("1 cmp.eq.pw error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
rs = 0x123456799ABCDEFe;
|
||||
rt = 0x123456789ABCDEFF;
|
||||
dspresult = 0x00;
|
||||
|
||||
__asm
|
||||
("cmp.eq.pw %1, %2\n\t"
|
||||
"rddsp %0\n\t"
|
||||
: "=r"(dspreg)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
dspreg = ((dspreg >> 24) & 0x03);
|
||||
|
||||
if (dspreg != dspresult) {
|
||||
printf("2 cmp.eq.pw error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,46 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rs, rt, dspreg, dspresult;
|
||||
|
||||
rs = 0x123456789ABCDEF0;
|
||||
rt = 0x123456789ABCDEFF;
|
||||
dspresult = 0x0E;
|
||||
|
||||
__asm
|
||||
("cmp.eq.qh %1, %2\n\t"
|
||||
"rddsp %0\n\t"
|
||||
: "=r"(dspreg)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
dspreg = ((dspreg >> 24) & 0x0F);
|
||||
|
||||
if (dspreg != dspresult) {
|
||||
printf("cmp.eq.qh error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
rs = 0x12355a789A4CD3F0;
|
||||
rt = 0x123456789ABCDEFF;
|
||||
dspresult = 0x00;
|
||||
|
||||
__asm
|
||||
("cmp.eq.qh %1, %2\n\t"
|
||||
"rddsp %0\n\t"
|
||||
: "=r"(dspreg)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
dspreg = ((dspreg >> 24) & 0x0F);
|
||||
|
||||
if (dspreg != dspresult) {
|
||||
printf("cmp.eq.qh error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,40 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rd, rs, rt;
|
||||
long long result;
|
||||
|
||||
rs = 0x11777066;
|
||||
rt = 0x55AA33FF;
|
||||
result = 0x02;
|
||||
__asm
|
||||
("cmp.le.ph %1, %2\n\t"
|
||||
"rddsp %0\n\t"
|
||||
: "=r"(rd)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
rd = (rd >> 24) & 0x03;
|
||||
if (rd != result) {
|
||||
printf("cmp.le.ph wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
rs = 0x11777066;
|
||||
rt = 0x11777066;
|
||||
result = 0x03;
|
||||
__asm
|
||||
("cmp.le.ph %1, %2\n\t"
|
||||
"rddsp %0\n\t"
|
||||
: "=r"(rd)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
rd = (rd >> 24) & 0x03;
|
||||
if (rd != result) {
|
||||
printf("cmp.le.ph wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
}
|
|
@ -1,46 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rs, rt, dspreg, dspresult;
|
||||
|
||||
rs = 0x123456789ABCDEF0;
|
||||
rt = 0x123456789ABCDEFF;
|
||||
dspresult = 0x03;
|
||||
|
||||
__asm
|
||||
("cmp.le.pw %1, %2\n\t"
|
||||
"rddsp %0\n\t"
|
||||
: "=r"(dspreg)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
dspreg = ((dspreg >> 24) & 0x03);
|
||||
|
||||
if (dspreg != dspresult) {
|
||||
printf("1 cmp.le.pw error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
rs = 0x123456799ABCEEFF;
|
||||
rt = 0x123456789ABCDEFF;
|
||||
dspresult = 0x00;
|
||||
|
||||
__asm
|
||||
("cmp.le.pw %1, %2\n\t"
|
||||
"rddsp %0\n\t"
|
||||
: "=r"(dspreg)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
dspreg = ((dspreg >> 24) & 0x03);
|
||||
|
||||
if (dspreg != dspresult) {
|
||||
printf("2 cmp.le.pw error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,46 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rs, rt, dspreg, dspresult;
|
||||
|
||||
rs = 0x123456789ABCDEF0;
|
||||
rt = 0x123456789ABCDEFF;
|
||||
dspresult = 0x0F;
|
||||
|
||||
__asm
|
||||
("cmp.le.qh %1, %2\n\t"
|
||||
"rddsp %0\n\t"
|
||||
: "=r"(dspreg)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
dspreg = ((dspreg >> 24) & 0x0F);
|
||||
|
||||
if (dspreg != dspresult) {
|
||||
printf("cmp.le.qh error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
rs = 0x823456789ABCDEF0;
|
||||
rt = 0x123456789ABCDEFF;
|
||||
dspresult = 0x0f;
|
||||
|
||||
__asm
|
||||
("cmp.le.qh %1, %2\n\t"
|
||||
"rddsp %0\n\t"
|
||||
: "=r"(dspreg)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
dspreg = ((dspreg >> 24) & 0x0F);
|
||||
|
||||
if (dspreg != dspresult) {
|
||||
printf("cmp.le.qh error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,41 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rd, rs, rt;
|
||||
long long result;
|
||||
|
||||
rs = 0x11777066;
|
||||
rt = 0x55AA33FF;
|
||||
result = 0x02;
|
||||
__asm
|
||||
("cmp.lt.ph %1, %2\n\t"
|
||||
"rddsp %0\n\t"
|
||||
: "=r"(rd)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
rd = (rd >> 24) & 0x03;
|
||||
if (rd != result) {
|
||||
printf("cmp.lt.ph wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
rs = 0x11777066;
|
||||
rt = 0x11777066;
|
||||
result = 0x00;
|
||||
__asm
|
||||
("cmp.lt.ph %1, %2\n\t"
|
||||
"rddsp %0\n\t"
|
||||
: "=r"(rd)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
rd = (rd >> 24) & 0x03;
|
||||
if (rd != result) {
|
||||
printf("cmp.lt.ph2 wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,46 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rs, rt, dspreg, dspresult;
|
||||
|
||||
rs = 0x123456789ABCDEF0;
|
||||
rt = 0x123456789ABCDEFF;
|
||||
dspresult = 0x01;
|
||||
|
||||
__asm
|
||||
("cmp.lt.pw %1, %2\n\t"
|
||||
"rddsp %0\n\t"
|
||||
: "=r"(dspreg)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
dspreg = ((dspreg >> 24) & 0x03);
|
||||
|
||||
if (dspreg != dspresult) {
|
||||
printf("cmp.lt.pw error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
rs = 0x123456779ABCDEFf;
|
||||
rt = 0x123456789ABCDEFF;
|
||||
dspresult = 0x02;
|
||||
|
||||
__asm
|
||||
("cmp.lt.pw %1, %2\n\t"
|
||||
"rddsp %0\n\t"
|
||||
: "=r"(dspreg)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
dspreg = ((dspreg >> 24) & 0x03);
|
||||
|
||||
if (dspreg != dspresult) {
|
||||
printf("cmp.lt.pw error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,46 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rs, rt, dspreg, dspresult;
|
||||
|
||||
rs = 0x123558789ABCDEF0;
|
||||
rt = 0x123456789ABCDEFF;
|
||||
dspresult = 0x01;
|
||||
|
||||
__asm
|
||||
("cmp.lt.qh %1, %2\n\t"
|
||||
"rddsp %0\n\t"
|
||||
: "=r"(dspreg)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
dspreg = ((dspreg >> 24) & 0x0F);
|
||||
|
||||
if (dspreg != dspresult) {
|
||||
printf("cmp.lt.qh error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
rs = 0x123356779ABbDEF0;
|
||||
rt = 0x123456789ABCDEFF;
|
||||
dspresult = 0x0f;
|
||||
|
||||
__asm
|
||||
("cmp.lt.qh %1, %2\n\t"
|
||||
"rddsp %0\n\t"
|
||||
: "=r"(dspreg)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
dspreg = ((dspreg >> 24) & 0x0F);
|
||||
|
||||
if (dspreg != dspresult) {
|
||||
printf("cmp.lt.qh error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,40 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rd, rs, rt, result;
|
||||
|
||||
rs = 0x123456789ABCDEF0;
|
||||
rt = 0x123456789ABCDEFF;
|
||||
result = 0xFE;
|
||||
|
||||
__asm
|
||||
("cmpgu.eq.ob %0, %1, %2\n\t"
|
||||
: "=r"(rd)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
if (rd != result) {
|
||||
printf("cmpgu.eq.ob error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
rs = 0x133456789ABCDEF0;
|
||||
rt = 0x123556789ABCDEFF;
|
||||
result = 0x3E;
|
||||
|
||||
__asm
|
||||
("cmpgu.eq.ob %0, %1, %2\n\t"
|
||||
: "=r"(rd)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
if (rd != result) {
|
||||
printf("cmpgu.eq.ob error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,38 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rd, rs, rt;
|
||||
long long result;
|
||||
|
||||
rs = 0x11777066;
|
||||
rt = 0x55AA70FF;
|
||||
result = 0x02;
|
||||
__asm
|
||||
("cmpgu.eq.qb %0, %1, %2\n\t"
|
||||
: "=r"(rd)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
if (rd != result) {
|
||||
printf("cmpgu.eq.ph wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
rs = 0x11777066;
|
||||
rt = 0x11777066;
|
||||
result = 0x0F;
|
||||
__asm
|
||||
("cmpgu.eq.qb %0, %1, %2\n\t"
|
||||
: "=r"(rd)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
if (rd != result) {
|
||||
printf("cmpgu.eq.ph wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,40 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rd, rs, rt, result;
|
||||
|
||||
rs = 0x123456789ABCDEF0;
|
||||
rt = 0x123456789ABCDEFF;
|
||||
result = 0xFF;
|
||||
|
||||
__asm
|
||||
("cmpgu.le.ob %0, %1, %2\n\t"
|
||||
: "=r"(rd)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
if (rd != result) {
|
||||
printf("cmpgu.le.ob error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
rs = 0x823556789ABCDEF0;
|
||||
rt = 0x123456789ABCDEFF;
|
||||
result = 0x3F;
|
||||
|
||||
__asm
|
||||
("cmpgu.le.ob %0, %1, %2\n\t"
|
||||
: "=r"(rd)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
if (rd != result) {
|
||||
printf("cmpgu.le.ob error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,37 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rd, rs, rt;
|
||||
long long result;
|
||||
|
||||
rs = 0x11777066;
|
||||
rt = 0x55AA70FF;
|
||||
result = 0x0F;
|
||||
__asm
|
||||
("cmpgu.le.qb %0, %1, %2\n\t"
|
||||
: "=r"(rd)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
if (rd != result) {
|
||||
printf("cmpgu.le.qb wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
rs = 0x11777066;
|
||||
rt = 0x11766066;
|
||||
result = 0x09;
|
||||
__asm
|
||||
("cmpgu.le.qb %0, %1, %2\n\t"
|
||||
: "=r"(rd)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
if (rd != result) {
|
||||
printf("cmpgu.le.qb wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,40 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rd, rs, rt, result;
|
||||
|
||||
rs = 0x123456789ABCDEF0;
|
||||
rt = 0x123456789ABCDEFF;
|
||||
result = 0x01;
|
||||
|
||||
__asm
|
||||
("cmpgu.lt.ob %0, %1, %2\n\t"
|
||||
: "=r"(rd)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
if (rd != result) {
|
||||
printf("cmpgu.lt.ob error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
rs = 0x823455789ABCDEF0;
|
||||
rt = 0x123356789ABCDEFF;
|
||||
result = 0x21;
|
||||
|
||||
__asm
|
||||
("cmpgu.lt.ob %0, %1, %2\n\t"
|
||||
: "=r"(rd)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
if (rd != result) {
|
||||
printf("cmpgu.lt.ob error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,38 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rd, rs, rt;
|
||||
long long result;
|
||||
|
||||
rs = 0x11777066;
|
||||
rt = 0x55AA70FF;
|
||||
result = 0x0D;
|
||||
__asm
|
||||
("cmpgu.lt.qb %0, %1, %2\n\t"
|
||||
: "=r"(rd)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
if (rd != result) {
|
||||
printf("cmpgu.lt.qb wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
rs = 0x11777066;
|
||||
rt = 0x11766066;
|
||||
result = 0x00;
|
||||
__asm
|
||||
("cmpgu.lt.qb %0, %1, %2\n\t"
|
||||
: "=r"(rd)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
if (rd != result) {
|
||||
printf("cmpgu.lt.qb wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,46 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rd, rs, rt, dspreg, dspresult;
|
||||
|
||||
rs = 0x123456789ABCDEF0;
|
||||
rt = 0x123456789ABCDEFF;
|
||||
dspresult = 0xFE;
|
||||
|
||||
__asm
|
||||
("cmpu.eq.ob %1, %2\n\t"
|
||||
"rddsp %0"
|
||||
: "=r"(dspreg)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
dspreg = ((dspreg >> 24) & 0xFF);
|
||||
|
||||
if (dspreg != dspresult) {
|
||||
printf("cmpu.eq.ob error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
rs = 0x133516713A0CD1F0;
|
||||
rt = 0x123456789ABCDEFF;
|
||||
dspresult = 0x00;
|
||||
|
||||
__asm
|
||||
("cmpu.eq.ob %1, %2\n\t"
|
||||
"rddsp %0"
|
||||
: "=r"(dspreg)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
dspreg = ((dspreg >> 24) & 0xFF);
|
||||
|
||||
if (dspreg != dspresult) {
|
||||
printf("cmpu.eq.ob error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,42 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rs, rt;
|
||||
long long dsp;
|
||||
long long result;
|
||||
|
||||
rs = 0x11777066;
|
||||
rt = 0x55AA70FF;
|
||||
result = 0x02;
|
||||
__asm
|
||||
("cmpu.eq.qb %1, %2\n\t"
|
||||
"rddsp %0\n\t"
|
||||
: "=r"(dsp)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
dsp = (dsp >> 24) & 0x0F;
|
||||
if (dsp != result) {
|
||||
printf("cmpu.eq.qb wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
rs = 0x11777066;
|
||||
rt = 0x11777066;
|
||||
result = 0x0F;
|
||||
__asm
|
||||
("cmpu.eq.qb %1, %2\n\t"
|
||||
"rddsp %0\n\t"
|
||||
: "=r"(dsp)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
dsp = (dsp >> 24) & 0x0F;
|
||||
if (dsp != result) {
|
||||
printf("cmpu.eq.qb wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,44 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rs, rt, dspreg, dspresult;
|
||||
|
||||
rs = 0x123456789ABCDEF0;
|
||||
rt = 0x123456789ABCDEFF;
|
||||
dspresult = 0xFF;
|
||||
|
||||
__asm
|
||||
("cmpu.le.ob %1, %2\n\t"
|
||||
"rddsp %0"
|
||||
: "=r"(dspreg)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
dspreg = dspreg >> 24;
|
||||
if (dspreg != dspresult) {
|
||||
printf("cmpu.le.ob error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
rs = 0x823656789ABCDEF0;
|
||||
rt = 0x123456789ABCDEFF;
|
||||
dspresult = 0x3F;
|
||||
|
||||
__asm
|
||||
("cmpu.le.ob %1, %2\n\t"
|
||||
"rddsp %0"
|
||||
: "=r"(dspreg)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
dspreg = dspreg >> 24;
|
||||
if (dspreg != dspresult) {
|
||||
printf("cmpu.le.ob error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,41 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rs, rt;
|
||||
long long dsp;
|
||||
long long result;
|
||||
|
||||
rs = 0x11777066;
|
||||
rt = 0x55AA70FF;
|
||||
result = 0x0F;
|
||||
__asm
|
||||
("cmpu.le.qb %1, %2\n\t"
|
||||
"rddsp %0\n\t"
|
||||
: "=r"(dsp)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
dsp = (dsp >> 24) & 0x0F;
|
||||
if (dsp != result) {
|
||||
printf("cmpu.le.qb wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
rs = 0x11777066;
|
||||
rt = 0x11777066;
|
||||
result = 0x0F;
|
||||
__asm
|
||||
("cmpu.le.qb %1, %2\n\t"
|
||||
"rddsp %0\n\t"
|
||||
: "=r"(dsp)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
dsp = (dsp >> 24) & 0x0F;
|
||||
if (dsp != result) {
|
||||
printf("cmpu.le.qb wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
}
|
|
@ -1,44 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rs, rt, dspreg, dspresult;
|
||||
|
||||
rs = 0x123456789ABCDEF0;
|
||||
rt = 0x123456789ABCDEFF;
|
||||
dspresult = 0x01;
|
||||
|
||||
__asm
|
||||
("cmpu.lt.ob %1, %2\n\t"
|
||||
"rddsp %0"
|
||||
: "=r"(dspreg)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
dspreg = dspreg >> 24;
|
||||
if (dspreg != dspresult) {
|
||||
printf("cmpu.lt.ob error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
rs = 0x823156789ABCDEF0;
|
||||
rt = 0x123456789ABCDEFF;
|
||||
dspresult = 0x41;
|
||||
|
||||
__asm
|
||||
("cmpu.lt.ob %1, %2\n\t"
|
||||
"rddsp %0"
|
||||
: "=r"(dspreg)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
dspreg = dspreg >> 24;
|
||||
if (dspreg != dspresult) {
|
||||
printf("cmpu.lt.ob error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,42 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rs, rt;
|
||||
long long dsp;
|
||||
long long result;
|
||||
|
||||
rs = 0x11777066;
|
||||
rt = 0x55AA70FF;
|
||||
result = 0x0D;
|
||||
__asm
|
||||
("cmpu.lt.qb %1, %2\n\t"
|
||||
"rddsp %0\n\t"
|
||||
: "=r"(dsp)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
dsp = (dsp >> 24) & 0x0F;
|
||||
if (dsp != result) {
|
||||
printf("cmpu.lt.qb wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
rs = 0x11777066;
|
||||
rt = 0x11777066;
|
||||
result = 0x00;
|
||||
__asm
|
||||
("cmpu.lt.qb %1, %2\n\t"
|
||||
"rddsp %0\n\t"
|
||||
: "=r"(dsp)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
dsp = (dsp >> 24) & 0x0F;
|
||||
if (dsp != result) {
|
||||
printf("cmpu.lt.qb wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,37 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rt, rs;
|
||||
long long res;
|
||||
rt = 0x1234567887654321;
|
||||
rs = 0xabcd1234abcd8765;
|
||||
|
||||
res = 0x1234567887654321;
|
||||
__asm
|
||||
("dappend %0, %1, 0x0\n\t"
|
||||
: "=r"(rt)
|
||||
: "r"(rs)
|
||||
);
|
||||
|
||||
if (rt != res) {
|
||||
printf("dappend error\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
rt = 0x1234567887654321;
|
||||
rs = 0xabcd1234abcd8765;
|
||||
|
||||
res = 0x2345678876543215;
|
||||
__asm
|
||||
("dappend %0, %1, 0x4\n\t"
|
||||
: "=r"(rt)
|
||||
: "r"(rs)
|
||||
);
|
||||
|
||||
if (rt != res) {
|
||||
printf("dappend error\n");
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
}
|
|
@ -1,54 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rt, dsp;
|
||||
long long achi, acli;
|
||||
long long res, resdsp;
|
||||
int rs;
|
||||
|
||||
rs = 0xabcd1234;
|
||||
|
||||
achi = 0x12345678;
|
||||
acli = 0x87654321;
|
||||
res = 0xff;
|
||||
resdsp = 0x0;
|
||||
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"wrdsp %4\n\t"
|
||||
"dextp %0, $ac1, 0x7\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "=r"(dsp)
|
||||
: "r"(achi), "r"(acli), "r"(rs)
|
||||
);
|
||||
dsp = (dsp >> 14) & 0x1;
|
||||
if ((dsp != resdsp) || (rt != res)) {
|
||||
printf("dextp error\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
rs = 0xabcd1200;
|
||||
|
||||
achi = 0x12345678;
|
||||
acli = 0x87654321;
|
||||
resdsp = 0x1;
|
||||
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"wrdsp %4\n\t"
|
||||
"dextp %0, $ac1, 0x7\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "=r"(dsp)
|
||||
: "r"(achi), "r"(acli), "r"(rs)
|
||||
);
|
||||
dsp = (dsp >> 14) & 0x1;
|
||||
if (dsp != resdsp) {
|
||||
printf("dextp error\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,59 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rt, dsp;
|
||||
long long achi, acli;
|
||||
long long res, resdsp, resdsppos;
|
||||
int rs;
|
||||
int tmp1, tmp2;
|
||||
|
||||
rs = 0xabcd1234;
|
||||
|
||||
achi = 0x12345678;
|
||||
acli = 0x87654321;
|
||||
res = 0xff;
|
||||
resdsp = 0x0;
|
||||
resdsppos = 0x2c;
|
||||
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"wrdsp %4\n\t"
|
||||
"dextpdp %0, $ac1, 0x7\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "=r"(dsp)
|
||||
: "r"(achi), "r"(acli), "r"(rs)
|
||||
);
|
||||
tmp1 = (dsp >> 14) & 0x1;
|
||||
tmp2 = dsp & 0x3f;
|
||||
|
||||
if ((tmp1 != resdsp) || (rt != res) || (tmp2 != resdsppos)) {
|
||||
printf("dextpdp error\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
rs = 0xabcd1200;
|
||||
|
||||
achi = 0x12345678;
|
||||
acli = 0x87654321;
|
||||
resdsp = 0x1;
|
||||
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"wrdsp %4\n\t"
|
||||
"dextpdp %0, $ac1, 0x7\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "=r"(dsp)
|
||||
: "r"(achi), "r"(acli), "r"(rs)
|
||||
);
|
||||
tmp1 = (dsp >> 14) & 0x1;
|
||||
|
||||
if (tmp1 != resdsp) {
|
||||
printf("dextpdp error\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,63 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rt, rs, dsp;
|
||||
long long achi, acli;
|
||||
long long res, resdsp, resdsppos;
|
||||
int rsdsp;
|
||||
int tmp1, tmp2;
|
||||
|
||||
rsdsp = 0xabcd1234;
|
||||
rs = 0x7;
|
||||
achi = 0x12345678;
|
||||
acli = 0x87654321;
|
||||
res = 0xff;
|
||||
resdsp = 0x0;
|
||||
resdsppos = 0x2c;
|
||||
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"wrdsp %4, 0x1\n\t"
|
||||
"wrdsp %4\n\t"
|
||||
"dextpdpv %0, $ac1, %5\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "=r"(dsp)
|
||||
: "r"(achi), "r"(acli), "r"(rsdsp), "r"(rs)
|
||||
);
|
||||
|
||||
tmp1 = (dsp >> 14) & 0x1;
|
||||
tmp2 = dsp & 0x3f;
|
||||
|
||||
if ((tmp1 != resdsp) || (rt != res) || (tmp2 != resdsppos)) {
|
||||
printf("dextpdpv error\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
rsdsp = 0xabcd1200;
|
||||
rs = 0x7;
|
||||
achi = 0x12345678;
|
||||
acli = 0x87654321;
|
||||
resdsp = 0x1;
|
||||
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"wrdsp %4, 0x1\n\t"
|
||||
"wrdsp %4\n\t"
|
||||
"dextpdpv %0, $ac1, %5\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "=r"(dsp)
|
||||
: "r"(achi), "r"(acli), "r"(rsdsp), "r"(rs)
|
||||
);
|
||||
|
||||
tmp1 = (dsp >> 14) & 0x1;
|
||||
|
||||
if (tmp1 != resdsp) {
|
||||
printf("dextpdpv error\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,58 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rt, rs, dsp;
|
||||
long long achi, acli;
|
||||
long long res, resdsp;
|
||||
int rsdsp;
|
||||
|
||||
rsdsp = 0xabcd1234;
|
||||
rs = 0x7;
|
||||
|
||||
achi = 0x12345678;
|
||||
acli = 0x87654321;
|
||||
res = 0xff;
|
||||
resdsp = 0x0;
|
||||
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"wrdsp %4, 0x1\n\t"
|
||||
"wrdsp %4\n\t"
|
||||
"dextpv %0, $ac1, %5\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "=r"(dsp)
|
||||
: "r"(achi), "r"(acli), "r"(rsdsp), "r"(rs)
|
||||
);
|
||||
dsp = (dsp >> 14) & 0x1;
|
||||
if ((dsp != resdsp) || (rt != res)) {
|
||||
printf("dextpv error\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
rsdsp = 0xabcd1200;
|
||||
rs = 0x7;
|
||||
|
||||
achi = 0x12345678;
|
||||
acli = 0x87654321;
|
||||
resdsp = 0x1;
|
||||
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"wrdsp %4, 0x1\n\t"
|
||||
"wrdsp %4\n\t"
|
||||
"dextpv %0, $ac1, %5\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "=r"(dsp)
|
||||
: "r"(achi), "r"(acli), "r"(rsdsp), "r"(rs)
|
||||
);
|
||||
dsp = (dsp >> 14) & 0x1;
|
||||
if (dsp != resdsp) {
|
||||
printf("dextpv error\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,44 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rt;
|
||||
long long achi, acli;
|
||||
long long res;
|
||||
|
||||
achi = 0x87654321;
|
||||
acli = 0x12345678;
|
||||
|
||||
res = 0x2100000000123456;
|
||||
|
||||
__asm
|
||||
("mthi %1, $ac1\n\t"
|
||||
"mtlo %2, $ac1\n\t"
|
||||
"dextr.l %0, $ac1, 0x8\n\t"
|
||||
: "=r"(rt)
|
||||
: "r"(achi), "r"(acli)
|
||||
);
|
||||
if (rt != res) {
|
||||
printf("dextr.l error\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
achi = 0x87654321;
|
||||
acli = 0x12345678;
|
||||
|
||||
res = 0x12345678;
|
||||
|
||||
__asm
|
||||
("mthi %1, $ac1\n\t"
|
||||
"mtlo %2, $ac1\n\t"
|
||||
"dextr.l %0, $ac1, 0x0\n\t"
|
||||
: "=r"(rt)
|
||||
: "r"(achi), "r"(acli)
|
||||
);
|
||||
if (rt != res) {
|
||||
printf("dextr.l error\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,54 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rt, dsp;
|
||||
long long achi, acli;
|
||||
long long res, resdsp;
|
||||
|
||||
achi = 0x87654321;
|
||||
acli = 0x12345678;
|
||||
|
||||
res = 0x2100000000123456;
|
||||
resdsp = 0x01;
|
||||
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"dextr_r.l %0, $ac1, 0x8\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "=r"(dsp)
|
||||
: "r"(achi), "r"(acli)
|
||||
);
|
||||
|
||||
dsp = (dsp >> 23) & 0x1;
|
||||
|
||||
if ((dsp != resdsp) || (rt != res)) {
|
||||
printf("dextr_r.l error\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
achi = 0x87654321;
|
||||
acli = 0x12345678;
|
||||
|
||||
res = 0x12345678;
|
||||
resdsp = 0x01;
|
||||
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"dextr_r.l %0, $ac1, 0x0\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "=r"(dsp)
|
||||
: "r"(achi), "r"(acli)
|
||||
);
|
||||
|
||||
dsp = (dsp >> 23) & 0x1;
|
||||
|
||||
if ((dsp != resdsp) || (rt != res)) {
|
||||
printf("dextr_r.l error\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,54 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rt, dsp;
|
||||
long long achi, acli;
|
||||
long long res, resdsp;
|
||||
|
||||
achi = 0x87654321;
|
||||
acli = 0x12345678;
|
||||
|
||||
res = 0x123456;
|
||||
resdsp = 0x01;
|
||||
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"dextr_r.w %0, $ac1, 0x8\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "=r"(dsp)
|
||||
: "r"(achi), "r"(acli)
|
||||
);
|
||||
|
||||
dsp = (dsp >> 23) & 0x1;
|
||||
|
||||
if ((dsp != resdsp) || (rt != res)) {
|
||||
printf("dextr_r.w error\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
achi = 0x87654321;
|
||||
acli = 0x12345678;
|
||||
|
||||
res = 0x12345678;
|
||||
resdsp = 0x01;
|
||||
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"dextr_r.w %0, $ac1, 0x0\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "=r"(dsp)
|
||||
: "r"(achi), "r"(acli)
|
||||
);
|
||||
|
||||
dsp = (dsp >> 23) & 0x1;
|
||||
|
||||
if ((dsp != resdsp) || (rt != res)) {
|
||||
printf("dextr_r.w error\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,52 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rt, dsp;
|
||||
long long achi, acli;
|
||||
long long res, resdsp;
|
||||
|
||||
achi = 0x87654321;
|
||||
acli = 0x12345678;
|
||||
|
||||
res = 0x8000000000000000;
|
||||
resdsp = 0x1;
|
||||
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"dextr_rs.l %0, $ac1, 0x8\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "=r"(dsp)
|
||||
: "r"(achi), "r"(acli)
|
||||
);
|
||||
dsp = (dsp >> 23) & 0x1;
|
||||
|
||||
if ((dsp != resdsp) || (rt != res)) {
|
||||
printf("dextr_rs.l error\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
achi = 0x00;
|
||||
acli = 0x12345678;
|
||||
|
||||
res = 0x12345678;
|
||||
resdsp = 0x1;
|
||||
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"dextr_rs.l %0, $ac1, 0x0\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "=r"(dsp)
|
||||
: "r"(achi), "r"(acli)
|
||||
);
|
||||
dsp = (dsp >> 23) & 0x1;
|
||||
|
||||
if ((dsp != resdsp) || (rt != res)) {
|
||||
printf("dextr_rs.l error\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,52 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rt, dsp;
|
||||
long long achi, acli;
|
||||
long long res, resdsp;
|
||||
|
||||
achi = 0x87654321;
|
||||
acli = 0x12345678;
|
||||
|
||||
res = 0xffffffff80000000;
|
||||
resdsp = 0x1;
|
||||
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"dextr_rs.w %0, $ac1, 0x8\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "=r"(dsp)
|
||||
: "r"(achi), "r"(acli)
|
||||
);
|
||||
dsp = (dsp >> 23) & 0x1;
|
||||
|
||||
if ((dsp != resdsp) || (rt != res)) {
|
||||
printf("dextr_rs.w error\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
achi = 0x00;
|
||||
acli = 0x12345678;
|
||||
|
||||
res = 0x123456;
|
||||
resdsp = 0x1;
|
||||
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"dextr_rs.w %0, $ac1, 0x8\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "=r"(dsp)
|
||||
: "r"(achi), "r"(acli)
|
||||
);
|
||||
dsp = (dsp >> 23) & 0x1;
|
||||
|
||||
if ((dsp != resdsp) || (rt != res)) {
|
||||
printf("dextr_rs.w error\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,73 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rt, dsp;
|
||||
long long achi, acli;
|
||||
long long res, resdsp;
|
||||
|
||||
achi = 0x87654321;
|
||||
acli = 0x12345678;
|
||||
|
||||
res = 0xffffffffffff8000;
|
||||
resdsp = 0x1;
|
||||
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"dextr_s.h %0, $ac1, 0x8\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "=r"(dsp)
|
||||
: "r"(achi), "r"(acli)
|
||||
);
|
||||
dsp = (dsp >> 23) & 0x1;
|
||||
|
||||
if ((dsp != resdsp) || (rt != res)) {
|
||||
printf("1 dextr_s.h error\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
achi = 0x77654321;
|
||||
acli = 0x12345678;
|
||||
|
||||
res = 0x7fff;
|
||||
resdsp = 0x1;
|
||||
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"dextr_s.h %0, $ac1, 0x8\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "=r"(dsp)
|
||||
: "r"(achi), "r"(acli)
|
||||
);
|
||||
dsp = (dsp >> 23) & 0x1;
|
||||
|
||||
if ((dsp != resdsp) || (rt != res)) {
|
||||
printf("2 dextr_s.h error\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
achi = 0x00;
|
||||
acli = 0x78;
|
||||
|
||||
res = 0x7;
|
||||
resdsp = 0x1;
|
||||
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"dextr_s.h %0, $ac1, 0x4\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "=r"(dsp)
|
||||
: "r"(achi), "r"(acli)
|
||||
);
|
||||
dsp = (dsp >> 23) & 0x1;
|
||||
|
||||
if ((dsp != resdsp) || (rt != res)) {
|
||||
printf("3 dextr_s.h error\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,44 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rt;
|
||||
long long achi, acli;
|
||||
long long res;
|
||||
|
||||
achi = 0x87654321;
|
||||
acli = 0x12345678;
|
||||
|
||||
res = 0x123456;
|
||||
|
||||
__asm
|
||||
("mthi %1, $ac1\n\t"
|
||||
"mtlo %2, $ac1\n\t"
|
||||
"dextr.w %0, $ac1, 0x8\n\t"
|
||||
: "=r"(rt)
|
||||
: "r"(achi), "r"(acli)
|
||||
);
|
||||
if (rt != res) {
|
||||
printf("dextr.w error\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
achi = 0x87654321;
|
||||
acli = 0x12345678;
|
||||
|
||||
res = 0x12345678;
|
||||
|
||||
__asm
|
||||
("mthi %1, $ac1\n\t"
|
||||
"mtlo %2, $ac1\n\t"
|
||||
"dextr.w %0, $ac1, 0x0\n\t"
|
||||
: "=r"(rt)
|
||||
: "r"(achi), "r"(acli)
|
||||
);
|
||||
if (rt != res) {
|
||||
printf("dextr.w error\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,46 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rt, rs;
|
||||
long long achi, acli;
|
||||
long long res;
|
||||
|
||||
achi = 0x87654321;
|
||||
acli = 0x12345678;
|
||||
rs = 0x8;
|
||||
|
||||
res = 0x2100000000123456;
|
||||
|
||||
__asm
|
||||
("mthi %1, $ac1\n\t"
|
||||
"mtlo %2, $ac1\n\t"
|
||||
"dextrv.l %0, $ac1, %3\n\t"
|
||||
: "=r"(rt)
|
||||
: "r"(achi), "r"(acli), "r"(rs)
|
||||
);
|
||||
if (rt != res) {
|
||||
printf("dextrv.l error\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
achi = 0x87654321;
|
||||
acli = 0x12345678;
|
||||
rs = 0x0;
|
||||
|
||||
res = 0x12345678;
|
||||
|
||||
__asm
|
||||
("mthi %1, $ac1\n\t"
|
||||
"mtlo %2, $ac1\n\t"
|
||||
"dextrv.l %0, $ac1, %3\n\t"
|
||||
: "=r"(rt)
|
||||
: "r"(achi), "r"(acli), "r"(rs)
|
||||
);
|
||||
if (rt != res) {
|
||||
printf("dextrv.l error\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,56 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rt, dsp, rs;
|
||||
long long achi, acli;
|
||||
long long res, resdsp;
|
||||
|
||||
achi = 0x87654321;
|
||||
acli = 0x12345678;
|
||||
rs = 0x8;
|
||||
|
||||
res = 0x2100000000123456;
|
||||
resdsp = 0x01;
|
||||
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"dextrv_r.l %0, $ac1, %4\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "=r"(dsp)
|
||||
: "r"(achi), "r"(acli), "r"(rs)
|
||||
);
|
||||
|
||||
dsp = (dsp >> 23) & 0x1;
|
||||
|
||||
if ((dsp != resdsp) || (rt != res)) {
|
||||
printf("dextrv_r.l error\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
achi = 0x87654321;
|
||||
acli = 0x12345678;
|
||||
rs = 0x0;
|
||||
|
||||
res = 0x12345678;
|
||||
resdsp = 0x01;
|
||||
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"dextrv_r.l %0, $ac1, %4\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "=r"(dsp)
|
||||
: "r"(achi), "r"(acli), "r"(rs)
|
||||
);
|
||||
|
||||
dsp = (dsp >> 23) & 0x1;
|
||||
|
||||
if ((dsp != resdsp) || (rt != res)) {
|
||||
printf("dextrv_r.l error\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,56 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rt, rs, dsp;
|
||||
long long achi, acli;
|
||||
long long res, resdsp;
|
||||
|
||||
achi = 0x87654321;
|
||||
acli = 0x12345678;
|
||||
rs = 0x8;
|
||||
|
||||
res = 0x123456;
|
||||
resdsp = 0x01;
|
||||
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"dextrv_r.w %0, $ac1, %4\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "=r"(dsp)
|
||||
: "r"(achi), "r"(acli), "r"(rs)
|
||||
);
|
||||
|
||||
dsp = (dsp >> 23) & 0x1;
|
||||
|
||||
if ((dsp != resdsp) || (rt != res)) {
|
||||
printf("dextrv_r.w error\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
achi = 0x87654321;
|
||||
acli = 0x12345678;
|
||||
rs = 0x0;
|
||||
|
||||
res = 0x12345678;
|
||||
resdsp = 0x01;
|
||||
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"dextrv_r.w %0, $ac1, %4\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "=r"(dsp)
|
||||
: "r"(achi), "r"(acli), "r"(rs)
|
||||
);
|
||||
|
||||
dsp = (dsp >> 23) & 0x1;
|
||||
|
||||
if ((dsp != resdsp) || (rt != res)) {
|
||||
printf("dextrv_r.w error\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,54 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rt, rs, dsp;
|
||||
long long achi, acli;
|
||||
long long res, resdsp;
|
||||
|
||||
achi = 0x87654321;
|
||||
acli = 0x12345678;
|
||||
rs = 0x8;
|
||||
|
||||
res = 0x8000000000000000;
|
||||
resdsp = 0x1;
|
||||
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"dextrv_rs.l %0, $ac1, %4\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "=r"(dsp)
|
||||
: "r"(achi), "r"(acli), "r"(rs)
|
||||
);
|
||||
dsp = (dsp >> 23) & 0x1;
|
||||
|
||||
if ((dsp != resdsp) || (rt != res)) {
|
||||
printf("dextrv_rs.l error\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
achi = 0x00;
|
||||
acli = 0x12345678;
|
||||
rs = 0x0;
|
||||
|
||||
res = 0x12345678;
|
||||
resdsp = 0x1;
|
||||
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"dextrv_rs.l %0, $ac1, %4\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "=r"(dsp)
|
||||
: "r"(achi), "r"(acli), "r"(rs)
|
||||
);
|
||||
dsp = (dsp >> 23) & 0x1;
|
||||
|
||||
if ((dsp != resdsp) || (rt != res)) {
|
||||
printf("dextrv_rs.l error\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,54 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rt, rs, dsp;
|
||||
long long achi, acli;
|
||||
long long res, resdsp;
|
||||
|
||||
achi = 0x87654321;
|
||||
acli = 0x12345678;
|
||||
rs = 0x8;
|
||||
|
||||
res = 0xffffffff80000000;
|
||||
resdsp = 0x1;
|
||||
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"dextrv_rs.w %0, $ac1, %4\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "=r"(dsp)
|
||||
: "r"(achi), "r"(acli), "r"(rs)
|
||||
);
|
||||
dsp = (dsp >> 23) & 0x1;
|
||||
|
||||
if ((dsp != resdsp) || (rt != res)) {
|
||||
printf("dextrv_rs.w error\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
achi = 0x00;
|
||||
acli = 0x12345678;
|
||||
rs = 0x8;
|
||||
|
||||
res = 0x123456;
|
||||
resdsp = 0x1;
|
||||
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"dextrv_rs.w %0, $ac1, %4\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "=r"(dsp)
|
||||
: "r"(achi), "r"(acli), "r"(rs)
|
||||
);
|
||||
dsp = (dsp >> 23) & 0x1;
|
||||
|
||||
if ((dsp != resdsp) || (rt != res)) {
|
||||
printf("dextrv_rs.w error\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,32 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rt, rs, dsp;
|
||||
long long achi, acli;
|
||||
long long res, resdsp;
|
||||
|
||||
achi = 0x87654321;
|
||||
acli = 0x12345678;
|
||||
rs = 0x8;
|
||||
|
||||
res = 0xffffffffffff8000;
|
||||
resdsp = 0x1;
|
||||
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"dextrv_s.h %0, $ac1, %4\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "=r"(dsp)
|
||||
: "r"(achi), "r"(acli), "r"(rs)
|
||||
);
|
||||
dsp = (dsp >> 23) & 0x1;
|
||||
|
||||
if ((dsp != resdsp) || (rt != res)) {
|
||||
printf("dextrv_s.h error\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,46 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rt, rs;
|
||||
long long achi, acli;
|
||||
long long res;
|
||||
|
||||
achi = 0x87654321;
|
||||
acli = 0x12345678;
|
||||
rs = 0x8;
|
||||
|
||||
res = 0x123456;
|
||||
|
||||
__asm
|
||||
("mthi %1, $ac1\n\t"
|
||||
"mtlo %2, $ac1\n\t"
|
||||
"dextrv.w %0, $ac1, %3\n\t"
|
||||
: "=r"(rt)
|
||||
: "r"(achi), "r"(acli), "r"(rs)
|
||||
);
|
||||
if (rt != res) {
|
||||
printf("dextrv.w error\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
achi = 0x87654321;
|
||||
acli = 0x12345678;
|
||||
rs = 0x0;
|
||||
|
||||
res = 0x12345678;
|
||||
|
||||
__asm
|
||||
("mthi %1, $ac1\n\t"
|
||||
"mtlo %2, $ac1\n\t"
|
||||
"dextrv.w %0, $ac1, %3\n\t"
|
||||
: "=r"(rt)
|
||||
: "r"(achi), "r"(acli), "r"(rs)
|
||||
);
|
||||
if (rt != res) {
|
||||
printf("dextrv.w error\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,26 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rs, rt, dsp;
|
||||
long long res;
|
||||
|
||||
rs = 0x1234567887654321;
|
||||
rt = 0x1234567812345678;
|
||||
dsp = 0x2222;
|
||||
res = 0x1234567812345678;
|
||||
__asm
|
||||
("wrdsp %1, 0x3\n\t"
|
||||
"wrdsp %1\n\t"
|
||||
"dinsv %0, %2\n\t"
|
||||
: "+r"(rt)
|
||||
: "r"(dsp), "r"(rs)
|
||||
);
|
||||
|
||||
if (rt != res) {
|
||||
printf("dinsv error\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,57 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rt, rs;
|
||||
long long achi, acli;
|
||||
long long acho, aclo;
|
||||
long long resh, resl;
|
||||
|
||||
achi = 0x1;
|
||||
acli = 0x1;
|
||||
|
||||
rs = 0x0000000100000001;
|
||||
rt = 0x0000000200000002;
|
||||
|
||||
resh = 0x1;
|
||||
resl = 0x5;
|
||||
__asm
|
||||
("mthi %2, $ac1 \t\n"
|
||||
"mtlo %3, $ac1 \t\n"
|
||||
"dmadd $ac1, %4, %5\t\n"
|
||||
"mfhi %0, $ac1 \t\n"
|
||||
"mflo %1, $ac1 \t\n"
|
||||
: "=r"(acho), "=r"(aclo)
|
||||
: "r"(achi), "r"(acli), "r"(rs), "r"(rt)
|
||||
);
|
||||
if ((acho != resh) || (aclo != resl)) {
|
||||
printf("1 dmadd error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
achi = 0x1;
|
||||
acli = 0x1;
|
||||
|
||||
rs = 0xaaaabbbbccccdddd;
|
||||
rt = 0xaaaabbbbccccdddd;
|
||||
|
||||
resh = 0x0000000000000000;
|
||||
resl = 0xffffffffca860b63;
|
||||
|
||||
__asm
|
||||
("mthi %2, $ac1 \t\n"
|
||||
"mtlo %3, $ac1 \t\n"
|
||||
"dmadd $ac1, %4, %5\t\n"
|
||||
"mfhi %0, $ac1 \t\n"
|
||||
"mflo %1, $ac1 \t\n"
|
||||
: "=r"(acho), "=r"(aclo)
|
||||
: "r"(achi), "r"(acli), "r"(rs), "r"(rt)
|
||||
);
|
||||
if ((acho != resh) || (aclo != resl)) {
|
||||
printf("2 dmadd error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
}
|
|
@ -1,56 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rt, rs;
|
||||
long long achi, acli;
|
||||
long long acho, aclo;
|
||||
long long resh, resl;
|
||||
achi = 0x1;
|
||||
acli = 0x2;
|
||||
|
||||
rs = 0x0000000200000002;
|
||||
rt = 0x0000000200000002;
|
||||
resh = 0x1;
|
||||
resl = 0xa;
|
||||
__asm
|
||||
("mthi %2, $ac1 \t\n"
|
||||
"mtlo %3, $ac1 \t\n"
|
||||
"dmaddu $ac1, %4, %5\t\n"
|
||||
"mfhi %0, $ac1 \t\n"
|
||||
"mflo %1, $ac1 \t\n"
|
||||
: "=r"(acho), "=r"(aclo)
|
||||
: "r"(achi), "r"(acli), "r"(rs), "r"(rt)
|
||||
);
|
||||
if ((acho != resh) || (aclo != resl)) {
|
||||
printf("1 dmaddu error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
achi = 0x1;
|
||||
acli = 0x1;
|
||||
|
||||
rs = 0xaaaabbbbccccdddd;
|
||||
rt = 0xaaaabbbbccccdddd;
|
||||
|
||||
resh = 0x0000000000000002;
|
||||
resl = 0xffffffffca860b63;
|
||||
|
||||
__asm
|
||||
("mthi %2, $ac1 \t\n"
|
||||
"mtlo %3, $ac1 \t\n"
|
||||
"dmaddu $ac1, %4, %5\t\n"
|
||||
"mfhi %0, $ac1 \t\n"
|
||||
"mflo %1, $ac1 \t\n"
|
||||
: "=r"(acho), "=r"(aclo)
|
||||
: "r"(achi), "r"(acli), "r"(rs), "r"(rt)
|
||||
);
|
||||
if ((acho != resh) || (aclo != resl)) {
|
||||
printf("2 dmaddu error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,59 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rt, rs;
|
||||
long long achi, acli;
|
||||
long long acho, aclo;
|
||||
long long resh, resl;
|
||||
achi = 0x1;
|
||||
acli = 0x8;
|
||||
|
||||
rs = 0x0000000100000001;
|
||||
rt = 0x0000000200000002;
|
||||
|
||||
resh = 0x1;
|
||||
resl = 0x4;
|
||||
|
||||
__asm
|
||||
("mthi %2, $ac1 \t\n"
|
||||
"mtlo %3, $ac1 \t\n"
|
||||
"dmsub $ac1, %4, %5\t\n"
|
||||
"mfhi %0, $ac1 \t\n"
|
||||
"mflo %1, $ac1 \t\n"
|
||||
: "=r"(acho), "=r"(aclo)
|
||||
: "r"(achi), "r"(acli), "r"(rs), "r"(rt)
|
||||
);
|
||||
if ((acho != resh) || (aclo != resl)) {
|
||||
printf("1 dmsub error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
achi = 0xfffffffF;
|
||||
acli = 0xfffffffF;
|
||||
|
||||
rs = 0x8888999977776666;
|
||||
rt = 0x9999888877776666;
|
||||
|
||||
resh = 0xffffffffffffffff;
|
||||
resl = 0x789aae13;
|
||||
|
||||
__asm
|
||||
("mthi %2, $ac1 \t\n"
|
||||
"mtlo %3, $ac1 \t\n"
|
||||
"dmsub $ac1, %4, %5\t\n"
|
||||
"mfhi %0, $ac1 \t\n"
|
||||
"mflo %1, $ac1 \t\n"
|
||||
: "=r"(acho), "=r"(aclo)
|
||||
: "r"(achi), "r"(acli), "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
if ((acho != resh) || (aclo != resl)) {
|
||||
printf("2 dmsub error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,59 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rt, rs;
|
||||
long long achi, acli;
|
||||
long long acho, aclo;
|
||||
long long resh, resl;
|
||||
achi = 0x1;
|
||||
acli = 0x8;
|
||||
|
||||
rs = 0x0000000100000001;
|
||||
rt = 0x0000000200000002;
|
||||
|
||||
resh = 0x1;
|
||||
resl = 0x4;
|
||||
|
||||
__asm
|
||||
("mthi %2, $ac1 \t\n"
|
||||
"mtlo %3, $ac1 \t\n"
|
||||
"dmsubu $ac1, %4, %5\t\n"
|
||||
"mfhi %0, $ac1 \t\n"
|
||||
"mflo %1, $ac1 \t\n"
|
||||
: "=r"(acho), "=r"(aclo)
|
||||
: "r"(achi), "r"(acli), "r"(rs), "r"(rt)
|
||||
);
|
||||
if ((acho != resh) || (aclo != resl)) {
|
||||
printf("1 dmsubu error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
achi = 0xfffffffF;
|
||||
acli = 0xfffffffF;
|
||||
|
||||
rs = 0x8888999977776666;
|
||||
rt = 0x9999888877776666;
|
||||
|
||||
resh = 0xffffffffffffffff;
|
||||
resl = 0x789aae13;
|
||||
|
||||
__asm
|
||||
("mthi %2, $ac1 \t\n"
|
||||
"mtlo %3, $ac1 \t\n"
|
||||
"dmsubu $ac1, %4, %5\t\n"
|
||||
"mfhi %0, $ac1 \t\n"
|
||||
"mflo %1, $ac1 \t\n"
|
||||
: "=r"(acho), "=r"(aclo)
|
||||
: "r"(achi), "r"(acli), "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
if ((acho != resh) || (aclo != resl)) {
|
||||
printf("2 dmsubu error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,41 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rs, dsp;
|
||||
long long achi, acli;
|
||||
|
||||
long long rsdsp;
|
||||
long long acho, aclo;
|
||||
|
||||
long long res;
|
||||
long long reshi, reslo;
|
||||
|
||||
|
||||
rs = 0xaaaabbbbccccdddd;
|
||||
achi = 0x87654321;
|
||||
acli = 0x12345678;
|
||||
dsp = 0x22;
|
||||
|
||||
res = 0x62;
|
||||
reshi = 0x12345678;
|
||||
reslo = 0xffffffffccccdddd;
|
||||
|
||||
__asm
|
||||
("mthi %3, $ac1\n\t"
|
||||
"mtlo %4, $ac1\n\t"
|
||||
"wrdsp %5\n\t"
|
||||
"dmthlip %6, $ac1\n\t"
|
||||
"rddsp %0\n\t"
|
||||
"mfhi %1, $ac1\n\t"
|
||||
"mflo %2, $ac1\n\t"
|
||||
: "=r"(rsdsp), "=r"(acho), "=r"(aclo)
|
||||
: "r"(achi), "r"(acli), "r"(dsp), "r"(rs)
|
||||
);
|
||||
if ((rsdsp != res) || (acho != reshi) || (aclo != reslo)) {
|
||||
printf("dmthlip error\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,32 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rs, rt, dsp;
|
||||
long long ach = 0, acl = 0;
|
||||
long long resulth, resultl, resultdsp;
|
||||
|
||||
rs = 0x800000FF;
|
||||
rt = 0x80000002;
|
||||
resulth = 0x00;
|
||||
resultl = 0xFFFFFFFF800003FB;
|
||||
resultdsp = 0x01;
|
||||
__asm
|
||||
("mthi %0, $ac1\n\t"
|
||||
"mtlo %1, $ac1\n\t"
|
||||
"dpaq_s.w.ph $ac1, %3, %4\n\t"
|
||||
"mfhi %0, $ac1\n\t"
|
||||
"mflo %1, $ac1\n\t"
|
||||
"rddsp %2\n\t"
|
||||
: "+r"(ach), "+r"(acl), "=r"(dsp)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
dsp = dsp >> 17 & 0x01;
|
||||
if ((dsp != resultdsp) || (ach != resulth) || (acl != resultl)) {
|
||||
printf("dpaq_w.w.ph wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,57 +0,0 @@
|
|||
#include"io.h"
|
||||
int main(void)
|
||||
{
|
||||
long long rt, rs;
|
||||
long long achi, acli;
|
||||
long long acho, aclo;
|
||||
long long resh, resl;
|
||||
|
||||
achi = 0x1;
|
||||
acli = 0x1;
|
||||
rs = 0x0001000100010001;
|
||||
rt = 0x0002000200020002;
|
||||
resh = 0x1;
|
||||
resl = 0x11;
|
||||
|
||||
__asm
|
||||
("mthi %2, $ac1\t\n"
|
||||
"mtlo %3, $ac1\t\n"
|
||||
"dpaq_s.w.qh $ac1, %4, %5\t\n"
|
||||
"mfhi %0, $ac1\t\n"
|
||||
"mflo %1, $ac1\t\n"
|
||||
: "=r"(acho), "=r"(aclo)
|
||||
: "r"(achi), "r"(acli), "r"(rs), "r"(rt)
|
||||
);
|
||||
if ((acho != resh) || (aclo != resl)) {
|
||||
printf("1 dpaq_s.w.qh error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
achi = 0xffffffff;
|
||||
acli = 0xaaaaaaaa;
|
||||
|
||||
rs = 0x1111222233334444;
|
||||
rt = 0xffffeeeeddddcccc;
|
||||
|
||||
resh = 0x00;
|
||||
resl = 0xffffffffd27ad82e;
|
||||
|
||||
__asm
|
||||
("mthi %2, $ac1\t\n"
|
||||
"mtlo %3, $ac1\t\n"
|
||||
"dpaq_s.w.qh $ac1, %4, %5\t\n"
|
||||
"mfhi %0, $ac1\t\n"
|
||||
"mflo %1, $ac1\t\n"
|
||||
: "=r"(acho), "=r"(aclo)
|
||||
: "r"(achi), "r"(acli), "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
if ((acho != resh) || (aclo != resl)) {
|
||||
printf("2 dpaq_s.w.qh error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,88 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rs, rt;
|
||||
long long achi, acli;
|
||||
long long acho, aclo;
|
||||
long long dsp;
|
||||
long long resh, resl;
|
||||
long long resdsp;
|
||||
|
||||
rs = 0x0000000100000001;
|
||||
rt = 0x0000000200000002;
|
||||
achi = 0x1;
|
||||
acli = 0x1;
|
||||
resh = 0xffffffffffffffff;
|
||||
resl = 0x0;
|
||||
resdsp = 0x01;
|
||||
|
||||
__asm
|
||||
("mthi %3, $ac1\n\t"
|
||||
"mtlo %4, $ac1\n\t"
|
||||
"dpaq_sa.l.pw $ac1, %5, %6\n\t"
|
||||
"mfhi %0, $ac1\n\t"
|
||||
"mflo %1, $ac1\n\t"
|
||||
"rddsp %2\n\t"
|
||||
: "=r"(acho), "=r"(aclo), "=r"(dsp)
|
||||
: "r"(achi), "r"(acli), "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
if ((acho != resh) || (aclo != resl) || ((dsp >> (16 + 1)) != resdsp)) {
|
||||
printf("1 dpaq_sa_l_pw error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
rs = 0xaaaabbbbccccdddd;
|
||||
rt = 0x3333444455556666;
|
||||
achi = 0x88888888;
|
||||
acli = 0x66666666;
|
||||
|
||||
resh = 0xffffffff88888887;
|
||||
resl = 0xffffffff9e2661da;
|
||||
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"dpaq_sa.l.pw $ac1, %4, %5\n\t"
|
||||
"mfhi %0, $ac1\n\t"
|
||||
"mflo %1, $ac1\n\t"
|
||||
: "=r"(acho), "=r"(aclo)
|
||||
: "r"(achi), "r"(acli), "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
if ((acho != resh) || (aclo != resl)) {
|
||||
printf("2 dpaq_sa_l_pw error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
rs = 0x8000000080000000;
|
||||
rt = 0x8000000080000000;
|
||||
achi = 0x88888888;
|
||||
acli = 0x66666666;
|
||||
|
||||
resh = 0xffffffffffffffff;
|
||||
resl = 0x00;
|
||||
resdsp = 0x01;
|
||||
|
||||
__asm
|
||||
("mthi %3, $ac1\n\t"
|
||||
"mtlo %4, $ac1\n\t"
|
||||
"dpaq_sa.l.pw $ac1, %5, %6\n\t"
|
||||
"mfhi %0, $ac1\n\t"
|
||||
"mflo %1, $ac1\n\t"
|
||||
"rddsp %2\n\t"
|
||||
: "=r"(acho), "=r"(aclo), "=r"(dsp)
|
||||
: "r"(achi), "r"(acli), "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
if ((acho != resh) || (aclo != resl) || ((dsp >> (16 + 1)) != resdsp)) {
|
||||
printf("2 dpaq_sa_l_pw error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,82 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rs, rt, dsp;
|
||||
long long ach = 0, acl = 0;
|
||||
long long resulth, resultl, resultdsp;
|
||||
|
||||
rs = 0x80000000;
|
||||
rt = 0x80000000;
|
||||
resulth = 0x7FFFFFFF;
|
||||
resultl = 0xffffffffFFFFFFFF;
|
||||
resultdsp = 0x01;
|
||||
__asm
|
||||
("mthi %0, $ac1\n\t"
|
||||
"mtlo %0, $ac1\n\t"
|
||||
"dpaq_sa.l.w $ac1, %3, %4\n\t"
|
||||
"mfhi %0, $ac1\n\t"
|
||||
"mflo %1, $ac1\n\t"
|
||||
"rddsp %2\n\t"
|
||||
: "+r"(ach), "+r"(acl), "=r"(dsp)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
dsp = (dsp >> 17) & 0x01;
|
||||
if ((dsp != resultdsp) || (ach != resulth) || (acl != resultl)) {
|
||||
printf("dpaq_sa.l.w error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
ach = 0x12;
|
||||
acl = 0x48;
|
||||
rs = 0x80000000;
|
||||
rt = 0x80000000;
|
||||
|
||||
resulth = 0x7FFFFFFF;
|
||||
resultl = 0xffffffffFFFFFFFF;
|
||||
resultdsp = 0x01;
|
||||
__asm
|
||||
("mthi %0, $ac1\n\t"
|
||||
"mtlo %0, $ac1\n\t"
|
||||
"dpaq_sa.l.w $ac1, %3, %4\n\t"
|
||||
"mfhi %0, $ac1\n\t"
|
||||
"mflo %1, $ac1\n\t"
|
||||
"rddsp %2\n\t"
|
||||
: "+r"(ach), "+r"(acl), "=r"(dsp)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
dsp = (dsp >> 17) & 0x01;
|
||||
if ((dsp != resultdsp) || (ach != resulth) || (acl != resultl)) {
|
||||
printf("dpaq_sa.l.w error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
ach = 0x741532A0;
|
||||
acl = 0xfceabb08;
|
||||
rs = 0x80000000;
|
||||
rt = 0x80000000;
|
||||
|
||||
resulth = 0x7fffffff;
|
||||
resultl = 0xffffffffffffffff;
|
||||
resultdsp = 0x01;
|
||||
__asm
|
||||
("mthi %0, $ac1\n\t"
|
||||
"mtlo %0, $ac1\n\t"
|
||||
"dpaq_sa.l.w $ac1, %3, %4\n\t"
|
||||
"mfhi %0, $ac1\n\t"
|
||||
"mflo %1, $ac1\n\t"
|
||||
"rddsp %2\n\t"
|
||||
: "+r"(ach), "+r"(acl), "=r"(dsp)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
dsp = (dsp >> 17) & 0x01;
|
||||
if ((dsp != resultdsp) || (ach != resulth) || (acl != resultl)) {
|
||||
printf("dpaq_sa.l.w error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,59 +0,0 @@
|
|||
|
||||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rs, rt;
|
||||
long long achi, acli;
|
||||
long long acho, aclo;
|
||||
long long resh, resl;
|
||||
|
||||
rs = 0x0000000100000001;
|
||||
rt = 0x0000000200000002;
|
||||
achi = 0x1;
|
||||
acli = 0x1;
|
||||
resh = 0x1;
|
||||
resl = 0x3;
|
||||
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"dpau.h.obl $ac1, %4, %5\n\t"
|
||||
"mfhi %0, $ac1\n\t"
|
||||
"mflo %1, $ac1\n\t"
|
||||
: "=r"(acho), "=r"(aclo)
|
||||
: "r"(achi), "r"(acli), "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
if ((acho != resh) || (aclo != resl)) {
|
||||
printf("1 dpau.h.obl error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
rs = 0xaaaabbbbccccdddd;
|
||||
rt = 0x3333444455556666;
|
||||
achi = 0x88888888;
|
||||
acli = 0x66666666;
|
||||
|
||||
resh = 0xffffffff88888888;
|
||||
resl = 0x66670d7a;
|
||||
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"dpau.h.obl $ac1, %4, %5\n\t"
|
||||
"mfhi %0, $ac1\n\t"
|
||||
"mflo %1, $ac1\n\t"
|
||||
: "=r"(acho), "=r"(aclo)
|
||||
: "r"(achi), "r"(acli), "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
if ((acho != resh) || (aclo != resl)) {
|
||||
printf("1 dpau.h.obl error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,59 +0,0 @@
|
|||
|
||||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rs, rt;
|
||||
long long achi, acli;
|
||||
long long acho, aclo;
|
||||
long long resh, resl;
|
||||
|
||||
rs = 0x0000000100000001;
|
||||
rt = 0x0000000200000002;
|
||||
achi = 0x1;
|
||||
acli = 0x1;
|
||||
resh = 0x1;
|
||||
resl = 0x3;
|
||||
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"dpau.h.obr $ac1, %4, %5\n\t"
|
||||
"mfhi %0, $ac1\n\t"
|
||||
"mflo %1, $ac1\n\t"
|
||||
: "=r"(acho), "=r"(aclo)
|
||||
: "r"(achi), "r"(acli), "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
if ((acho != resh) || (aclo != resl)) {
|
||||
printf("1 dpau.h.obr error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
rs = 0xccccddddaaaabbbb;
|
||||
rt = 0x5555666633334444;
|
||||
achi = 0x88888888;
|
||||
acli = 0x66666666;
|
||||
|
||||
resh = 0xffffffff88888888;
|
||||
resl = 0x66670d7a;
|
||||
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"dpau.h.obr $ac1, %4, %5\n\t"
|
||||
"mfhi %0, $ac1\n\t"
|
||||
"mflo %1, $ac1\n\t"
|
||||
: "=r"(acho), "=r"(aclo)
|
||||
: "r"(achi), "r"(acli), "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
if ((acho != resh) || (aclo != resl)) {
|
||||
printf("1 dpau.h.obr error\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,29 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rs, rt;
|
||||
long long ach = 5, acl = 3;
|
||||
long long resulth, resultl;
|
||||
|
||||
rs = 0x800000FF;
|
||||
rt = 0x80000002;
|
||||
resulth = 0x05;
|
||||
resultl = 0x4003;
|
||||
__asm
|
||||
("mthi %0, $ac1\n\t"
|
||||
"mtlo %1, $ac1\n\t"
|
||||
"dpau.h.qbl $ac1, %2, %3\n\t"
|
||||
"mfhi %0, $ac1\n\t"
|
||||
"mflo %1, $ac1\n\t"
|
||||
: "+r"(ach), "+r"(acl)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
if ((ach != resulth) || (acl != resultl)) {
|
||||
printf("dpau.h.qbl wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,29 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rs, rt;
|
||||
long long ach = 5, acl = 3;
|
||||
long long resulth, resultl;
|
||||
|
||||
rs = 0x800000FF;
|
||||
rt = 0x80000002;
|
||||
resulth = 0x05;
|
||||
resultl = 0x0201;
|
||||
__asm
|
||||
("mthi %0, $ac1\n\t"
|
||||
"mtlo %1, $ac1\n\t"
|
||||
"dpau.h.qbr $ac1, %2, %3\n\t"
|
||||
"mfhi %0, $ac1\n\t"
|
||||
"mflo %1, $ac1\n\t"
|
||||
: "+r"(ach), "+r"(acl)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
if ((ach != resulth) || (acl != resultl)) {
|
||||
printf("dpau.h.qbr wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,51 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rs, rt;
|
||||
long long ach = 5, acl = 5;
|
||||
long long resulth, resultl;
|
||||
|
||||
rs = 0xBC0123AD;
|
||||
rt = 0x01643721;
|
||||
resulth = 0x04;
|
||||
resultl = 0xFFFFFFFFEE9794A3;
|
||||
__asm
|
||||
("mthi %0, $ac1\n\t"
|
||||
"mtlo %1, $ac1\n\t"
|
||||
"dpsq_s.w.ph $ac1, %2, %3\n\t"
|
||||
"mfhi %0, $ac1\n\t"
|
||||
"mflo %1, $ac1\n\t"
|
||||
: "+r"(ach), "+r"(acl)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
if ((ach != resulth) || (acl != resultl)) {
|
||||
printf("1 dpsq_s.w.ph wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
ach = 0x1424Ef1f;
|
||||
acl = 0x1035219A;
|
||||
rs = 0x800083AD;
|
||||
rt = 0x80003721;
|
||||
resulth = 0x1424ef1e;
|
||||
resultl = 0x577ed901;
|
||||
|
||||
__asm
|
||||
("mthi %0, $ac1\n\t"
|
||||
"mtlo %1, $ac1\n\t"
|
||||
"dpsq_s.w.ph $ac1, %2, %3\n\t"
|
||||
"mfhi %0, $ac1\n\t"
|
||||
"mflo %1, $ac1\n\t"
|
||||
: "+r"(ach), "+r"(acl)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
if ((ach != resulth) || (acl != resultl)) {
|
||||
printf("2 dpsq_s.w.ph wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,56 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rs, rt;
|
||||
long long achi, acli;
|
||||
long long acho, aclo;
|
||||
long long resh, resl;
|
||||
|
||||
rs = 0xffffeeeeddddcccc;
|
||||
rt = 0x9999888877776666;
|
||||
achi = 0x67576;
|
||||
acli = 0x98878;
|
||||
|
||||
resh = 0x67576;
|
||||
resl = 0x5b1682c4;
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"dpsq_s.w.qh $ac1, %4, %5\n\t"
|
||||
"mfhi %0, $ac1\n\t"
|
||||
"mflo %1, $ac1\n\t"
|
||||
: "=r"(acho), "=r"(aclo)
|
||||
: "r"(achi), "r"(acli), "r"(rs), "r"(rt)
|
||||
);
|
||||
if ((acho != resh) || (aclo != resl)) {
|
||||
printf("1 dpsq_s.w.qh wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
rs = 0x8000800080008000;
|
||||
rt = 0x8000800080008000;
|
||||
achi = 0x67576;
|
||||
acli = 0x98878;
|
||||
|
||||
resh = 0x67575;
|
||||
resl = 0x0009887c;
|
||||
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"dpsq_s.w.qh $ac1, %4, %5\n\t"
|
||||
"mfhi %0, $ac1\n\t"
|
||||
"mflo %1, $ac1\n\t"
|
||||
: "=r"(acho), "=r"(aclo)
|
||||
: "r"(achi), "r"(acli), "r"(rs), "r"(rt)
|
||||
);
|
||||
if ((acho != resh) || (aclo != resl)) {
|
||||
printf("2 dpsq_s.w.qh wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,76 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rs, rt, dsp;
|
||||
long long achi, acli;
|
||||
long long resh, resl, resdsp;
|
||||
|
||||
rs = 0x89789BC0123AD;
|
||||
rt = 0x5467591643721;
|
||||
|
||||
achi = 0x98765437;
|
||||
acli = 0x65489709;
|
||||
|
||||
resh = 0xffffffffffffffff;
|
||||
resl = 0x00;
|
||||
|
||||
resdsp = 0x01;
|
||||
|
||||
__asm
|
||||
("mthi %0, $ac1\n\t"
|
||||
"mtlo %1, $ac1\n\t"
|
||||
"dpsq_sa.l.pw $ac1, %3, %4\n\t"
|
||||
"mfhi %0, $ac1\n\t"
|
||||
"mflo %1, $ac1\n\t"
|
||||
"rddsp %2\n\t"
|
||||
: "+r"(achi), "+r"(acli), "=r"(dsp)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
dsp = (dsp >> 17) & 0x01;
|
||||
if ((dsp != resdsp) || (achi != resh) || (acli != resl)) {
|
||||
printf("1 dpsq_sa.l.pw wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* clear dspcontrol reg for next test use. */
|
||||
dsp = 0;
|
||||
__asm
|
||||
("wrdsp %0"
|
||||
:
|
||||
: "r"(dsp)
|
||||
);
|
||||
|
||||
rs = 0x8B78980000000;
|
||||
rt = 0x5867580000000;
|
||||
|
||||
achi = 0x98765437;
|
||||
acli = 0x65489709;
|
||||
|
||||
resh = 0xffffffff98765436;
|
||||
resl = 0x11d367d0;
|
||||
|
||||
resdsp = 0x01;
|
||||
|
||||
__asm
|
||||
("mthi %0, $ac1\n\t"
|
||||
"mtlo %1, $ac1\n\t"
|
||||
"dpsq_sa.l.pw $ac1, %3, %4\n\t"
|
||||
"mfhi %0, $ac1\n\t"
|
||||
"mflo %1, $ac1\n\t"
|
||||
"rddsp %2\n\t"
|
||||
: "+r"(achi), "+r"(acli), "=r"(dsp)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
dsp = (dsp >> 17) & 0x01;
|
||||
if ((dsp != resdsp) || (achi != resh) || (acli != resl)) {
|
||||
printf("2 dpsq_sa.l.pw wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,59 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rs, rt, dsp;
|
||||
long long ach = 5, acl = 5;
|
||||
long long resulth, resultl, resultdsp;
|
||||
|
||||
rs = 0xBC0123AD;
|
||||
rt = 0x01643721;
|
||||
|
||||
resulth = 0xfffffffffdf4cbe0;
|
||||
resultl = 0xFFFFFFFFd138776b;
|
||||
resultdsp = 0x00;
|
||||
__asm
|
||||
("mthi %0, $ac1\n\t"
|
||||
"mtlo %1, $ac1\n\t"
|
||||
"dpsq_sa.l.w $ac1, %3, %4\n\t"
|
||||
"mfhi %0, $ac1\n\t"
|
||||
"mflo %1, $ac1\n\t"
|
||||
"rddsp %2\n\t"
|
||||
: "+r"(ach), "+r"(acl), "=r"(dsp)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
dsp = (dsp >> 17) & 0x01;
|
||||
if ((dsp != resultdsp) || (ach != resulth) || (acl != resultl)) {
|
||||
printf("1 dpsq_sa.l.w wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
ach = 0x54321123;
|
||||
acl = 5;
|
||||
rs = 0x80000000;
|
||||
rt = 0x80000000;
|
||||
|
||||
resulth = 0xffffffffd4321123;
|
||||
resultl = 0x06;
|
||||
resultdsp = 0x01;
|
||||
|
||||
__asm
|
||||
("mthi %0, $ac1\n\t"
|
||||
"mtlo %1, $ac1\n\t"
|
||||
"dpsq_sa.l.w $ac1, %3, %4\n\t"
|
||||
"mfhi %0, $ac1\n\t"
|
||||
"mflo %1, $ac1\n\t"
|
||||
"rddsp %2\n\t"
|
||||
: "+r"(ach), "+r"(acl), "=r"(dsp)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
dsp = (dsp >> 17) & 0x01;
|
||||
if ((dsp != resultdsp) || (ach != resulth) || (acl != resultl)) {
|
||||
printf("2 dpsq_sa.l.w wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,32 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rs, rt;
|
||||
long long ach = 5, acl = 5;
|
||||
long long resulth, resultl;
|
||||
|
||||
rs = 0x88886666BC0123AD;
|
||||
rt = 0x9999888801643721;
|
||||
|
||||
resulth = 0x04;
|
||||
resultl = 0xFFFFFFFFFFFEF115;
|
||||
|
||||
__asm
|
||||
("mthi %0, $ac1\n\t"
|
||||
"mtlo %1, $ac1\n\t"
|
||||
"dpsu.h.obl $ac1, %2, %3\n\t"
|
||||
"mfhi %0, $ac1\n\t"
|
||||
"mflo %1, $ac1\n\t"
|
||||
: "+r"(ach), "+r"(acl)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
if ((ach != resulth) || (acl != resultl)) {
|
||||
printf("dpsu.h.obl wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,32 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rs, rt;
|
||||
long long ach = 5, acl = 5;
|
||||
long long resulth, resultl;
|
||||
|
||||
rs = 0x7878878888886666;
|
||||
rt = 0x9865454399998888;
|
||||
|
||||
resulth = 0x04;
|
||||
resultl = 0xFFFFFFFFFFFeF115;
|
||||
|
||||
__asm
|
||||
("mthi %0, $ac1\n\t"
|
||||
"mtlo %1, $ac1\n\t"
|
||||
"dpsu.h.obr $ac1, %2, %3\n\t"
|
||||
"mfhi %0, $ac1\n\t"
|
||||
"mflo %1, $ac1\n\t"
|
||||
: "+r"(ach), "+r"(acl)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
|
||||
if ((ach != resulth) || (acl != resultl)) {
|
||||
printf("dpsu.h.qbr wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,29 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rs, rt;
|
||||
long long ach = 5, acl = 5;
|
||||
long long resulth, resultl;
|
||||
|
||||
rs = 0xBC0123AD;
|
||||
rt = 0x01643721;
|
||||
resulth = 0x04;
|
||||
resultl = 0xFFFFFFFFFFFFFEE5;
|
||||
__asm
|
||||
("mthi %0, $ac1\n\t"
|
||||
"mtlo %1, $ac1\n\t"
|
||||
"dpsu.h.qbl $ac1, %2, %3\n\t"
|
||||
"mfhi %0, $ac1\n\t"
|
||||
"mflo %1, $ac1\n\t"
|
||||
: "+r"(ach), "+r"(acl)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
if ((ach != resulth) || (acl != resultl)) {
|
||||
printf("dpsu.h.qbl wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,29 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rs, rt;
|
||||
long long ach = 5, acl = 5;
|
||||
long long resulth, resultl;
|
||||
|
||||
rs = 0xBC0123AD;
|
||||
rt = 0x01643721;
|
||||
resulth = 0x04;
|
||||
resultl = 0xFFFFFFFFFFFFE233;
|
||||
__asm
|
||||
("mthi %0, $ac1\n\t"
|
||||
"mtlo %1, $ac1\n\t"
|
||||
"dpsu.h.qbr $ac1, %2, %3\n\t"
|
||||
"mfhi %0, $ac1\n\t"
|
||||
"mflo %1, $ac1\n\t"
|
||||
: "+r"(ach), "+r"(acl)
|
||||
: "r"(rs), "r"(rt)
|
||||
);
|
||||
if ((ach != resulth) || (acl != resultl)) {
|
||||
printf("dpsu.h.qbr wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,52 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long achi, acli;
|
||||
long long acho, aclo;
|
||||
long long reshi, reslo;
|
||||
|
||||
achi = 0x87654321;
|
||||
acli = 0x12345678;
|
||||
|
||||
reshi = 0xfffffffff8765432;
|
||||
reslo = 0x1234567;
|
||||
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"dshilo $ac1, 0x4\n\t"
|
||||
"mfhi %0, $ac1\n\t"
|
||||
"mflo %1, $ac1\n\t"
|
||||
: "=r"(acho), "=r"(aclo)
|
||||
: "r"(achi), "r"(acli)
|
||||
);
|
||||
|
||||
if ((acho != reshi) || (aclo != reslo)) {
|
||||
printf("1 dshilo error\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
achi = 0x87654321;
|
||||
acli = 0x12345678;
|
||||
|
||||
reshi = 0x1234567;
|
||||
reslo = 0x00;
|
||||
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"dshilo $ac1, -60\n\t"
|
||||
"mfhi %0, $ac1\n\t"
|
||||
"mflo %1, $ac1\n\t"
|
||||
: "=r"(acho), "=r"(aclo)
|
||||
: "r"(achi), "r"(acli)
|
||||
);
|
||||
|
||||
if ((acho != reshi) || (aclo != reslo)) {
|
||||
printf("2 dshilo error\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,54 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long achi, acli, rs;
|
||||
long long acho, aclo;
|
||||
long long reshi, reslo;
|
||||
|
||||
achi = 0x87654321;
|
||||
acli = 0x12345678;
|
||||
rs = 0x4;
|
||||
|
||||
reshi = 0xfffffffff8765432;
|
||||
reslo = 0x1234567;
|
||||
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"dshilov $ac1, %4\n\t"
|
||||
"mfhi %0, $ac1\n\t"
|
||||
"mflo %1, $ac1\n\t"
|
||||
: "=r"(acho), "=r"(aclo)
|
||||
: "r"(achi), "r"(acli), "r"(rs)
|
||||
);
|
||||
|
||||
if ((acho != reshi) || (aclo != reslo)) {
|
||||
printf("dshilov error\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
rs = 0x44;
|
||||
achi = 0x87654321;
|
||||
acli = 0x12345678;
|
||||
|
||||
reshi = 0x1234567;
|
||||
reslo = 0x00;
|
||||
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"dshilov $ac1, %4\n\t"
|
||||
"mfhi %0, $ac1\n\t"
|
||||
"mflo %1, $ac1\n\t"
|
||||
: "=r"(acho), "=r"(aclo)
|
||||
: "r"(achi), "r"(acli), "r"(rs)
|
||||
);
|
||||
|
||||
if ((acho != reshi) || (aclo != reslo)) {
|
||||
printf("dshilov error\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,50 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rt, ach, acl, dsp;
|
||||
long long result;
|
||||
|
||||
ach = 0x05;
|
||||
acl = 0xB4CB;
|
||||
dsp = 0x07;
|
||||
result = 0x000C;
|
||||
|
||||
__asm
|
||||
("wrdsp %1, 0x01\n\t"
|
||||
"mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"extp %0, $ac1, 0x03\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "+r"(dsp)
|
||||
: "r"(ach), "r"(acl)
|
||||
);
|
||||
dsp = (dsp >> 14) & 0x01;
|
||||
if ((dsp != 0) || (result != rt)) {
|
||||
printf("extp wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
ach = 0x05;
|
||||
acl = 0xB4CB;
|
||||
dsp = 0x01;
|
||||
|
||||
__asm
|
||||
("wrdsp %1, 0x01\n\t"
|
||||
"mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"extp %0, $ac1, 0x03\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "+r"(dsp)
|
||||
: "r"(ach), "r"(acl)
|
||||
);
|
||||
dsp = (dsp >> 14) & 0x01;
|
||||
if (dsp != 1) {
|
||||
printf("extp wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,51 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rt, ach, acl, dsp, pos, efi;
|
||||
long long result;
|
||||
|
||||
ach = 0x05;
|
||||
acl = 0xB4CB;
|
||||
dsp = 0x07;
|
||||
result = 0x000C;
|
||||
|
||||
__asm
|
||||
("wrdsp %1, 0x01\n\t"
|
||||
"mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"extpdp %0, $ac1, 0x03\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "+r"(dsp)
|
||||
: "r"(ach), "r"(acl)
|
||||
);
|
||||
pos = dsp & 0x3F;
|
||||
efi = (dsp >> 14) & 0x01;
|
||||
if ((pos != 3) || (efi != 0) || (result != rt)) {
|
||||
printf("extpdp wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
ach = 0x05;
|
||||
acl = 0xB4CB;
|
||||
dsp = 0x01;
|
||||
|
||||
__asm
|
||||
("wrdsp %1, 0x01\n\t"
|
||||
"mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"extpdp %0, $ac1, 0x03\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "+r"(dsp)
|
||||
: "r"(ach), "r"(acl)
|
||||
);
|
||||
efi = (dsp >> 14) & 0x01;
|
||||
if (efi != 1) {
|
||||
printf("extpdp wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,52 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rt, rs, ach, acl, dsp, pos, efi;
|
||||
long long result;
|
||||
|
||||
ach = 0x05;
|
||||
acl = 0xB4CB;
|
||||
dsp = 0x07;
|
||||
rs = 0x03;
|
||||
result = 0x000C;
|
||||
|
||||
__asm
|
||||
("wrdsp %1, 0x01\n\t"
|
||||
"mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"extpdpv %0, $ac1, %4\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "+r"(dsp)
|
||||
: "r"(ach), "r"(acl), "r"(rs)
|
||||
);
|
||||
pos = dsp & 0x3F;
|
||||
efi = (dsp >> 14) & 0x01;
|
||||
if ((pos != 3) || (efi != 0) || (result != rt)) {
|
||||
printf("extpdpv wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
ach = 0x05;
|
||||
acl = 0xB4CB;
|
||||
dsp = 0x01;
|
||||
|
||||
__asm
|
||||
("wrdsp %1, 0x01\n\t"
|
||||
"mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"extpdpv %0, $ac1, %4\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "+r"(dsp)
|
||||
: "r"(ach), "r"(acl), "r"(rs)
|
||||
);
|
||||
efi = (dsp >> 14) & 0x01;
|
||||
if (efi != 1) {
|
||||
printf("extpdpv wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,51 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rt, ac, ach, acl, dsp;
|
||||
long long result;
|
||||
|
||||
ach = 0x05;
|
||||
acl = 0xB4CB;
|
||||
dsp = 0x07;
|
||||
ac = 0x03;
|
||||
result = 0x000C;
|
||||
|
||||
__asm
|
||||
("wrdsp %1, 0x01\n\t"
|
||||
"mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"extpv %0, $ac1, %4\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "+r"(dsp)
|
||||
: "r"(ach), "r"(acl), "r"(ac)
|
||||
);
|
||||
dsp = (dsp >> 14) & 0x01;
|
||||
if ((dsp != 0) || (result != rt)) {
|
||||
printf("extpv wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
ach = 0x05;
|
||||
acl = 0xB4CB;
|
||||
dsp = 0x01;
|
||||
|
||||
__asm
|
||||
("wrdsp %1, 0x01\n\t"
|
||||
"mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"extpv %0, $ac1, %4\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "+r"(dsp)
|
||||
: "r"(ach), "r"(acl), "r"(ac)
|
||||
);
|
||||
dsp = (dsp >> 14) & 0x01;
|
||||
if (dsp != 1) {
|
||||
printf("extpv wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,53 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rt, ach, acl, dsp;
|
||||
long long result;
|
||||
|
||||
ach = 0x05;
|
||||
acl = 0xB4CB;
|
||||
result = 0xFFFFFFFFA0001699;
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"extr_r.w %0, $ac1, 0x03\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "=r"(dsp)
|
||||
: "r"(ach), "r"(acl)
|
||||
);
|
||||
dsp = (dsp >> 23) & 0x01;
|
||||
if ((dsp != 1) || (result != rt)) {
|
||||
printf("1 extr_r.w wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Clear dspcontrol */
|
||||
dsp = 0;
|
||||
__asm
|
||||
("wrdsp %0\n\t"
|
||||
:
|
||||
: "r"(dsp)
|
||||
);
|
||||
|
||||
ach = 0x01;
|
||||
acl = 0xB4CB;
|
||||
result = 0x10000B4D;
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"extr_r.w %0, $ac1, 0x04\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "=r"(dsp)
|
||||
: "r"(ach), "r"(acl)
|
||||
);
|
||||
dsp = (dsp >> 23) & 0x01;
|
||||
if ((dsp != 0) || (result != rt)) {
|
||||
printf("2 extr_r.w wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,53 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rt, ach, acl, dsp;
|
||||
long long result;
|
||||
|
||||
ach = 0x05;
|
||||
acl = 0xB4CB;
|
||||
result = 0x7FFFFFFF;
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"extr_rs.w %0, $ac1, 0x03\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "=r"(dsp)
|
||||
: "r"(ach), "r"(acl)
|
||||
);
|
||||
dsp = (dsp >> 23) & 0x01;
|
||||
if ((dsp != 1) || (result != rt)) {
|
||||
printf("1 extr_rs.w wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Clear dspcontrol */
|
||||
dsp = 0;
|
||||
__asm
|
||||
("wrdsp %0\n\t"
|
||||
:
|
||||
: "r"(dsp)
|
||||
);
|
||||
|
||||
ach = 0x01;
|
||||
acl = 0xB4CB;
|
||||
result = 0x10000B4D;
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"extr_rs.w %0, $ac1, 0x04\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "=r"(dsp)
|
||||
: "r"(ach), "r"(acl)
|
||||
);
|
||||
dsp = (dsp >> 23) & 0x01;
|
||||
if ((dsp != 0) || (result != rt)) {
|
||||
printf("2 extr_rs.w wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,71 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rt, ach, acl, dsp;
|
||||
long long result;
|
||||
|
||||
ach = 0x05;
|
||||
acl = 0xB4CB;
|
||||
result = 0x00007FFF;
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"extr_s.h %0, $ac1, 0x03\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "=r"(dsp)
|
||||
: "r"(ach), "r"(acl)
|
||||
);
|
||||
dsp = (dsp >> 23) & 0x01;
|
||||
if ((dsp != 1) || (result != rt)) {
|
||||
printf("extr_s.h wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
ach = 0xffffffff;
|
||||
acl = 0x12344321;
|
||||
result = 0xffffffffFFFF8000;
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"extr_s.h %0, $ac1, 0x08\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "=r"(dsp)
|
||||
: "r"(ach), "r"(acl)
|
||||
);
|
||||
dsp = (dsp >> 23) & 0x01;
|
||||
if ((dsp != 1) || (result != rt)) {
|
||||
printf("extr_s.h wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Clear dsp */
|
||||
dsp = 0;
|
||||
__asm
|
||||
("wrdsp %0\n\t"
|
||||
:
|
||||
: "r"(dsp)
|
||||
);
|
||||
|
||||
ach = 0x00;
|
||||
acl = 0x4321;
|
||||
result = 0x432;
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"extr_s.h %0, $ac1, 0x04\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "=r"(dsp)
|
||||
: "r"(ach), "r"(acl)
|
||||
);
|
||||
dsp = (dsp >> 23) & 0x01;
|
||||
if ((dsp != 0) || (result != rt)) {
|
||||
printf("extr_s.h wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,53 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rt, ach, acl, dsp;
|
||||
long long result;
|
||||
|
||||
ach = 0x05;
|
||||
acl = 0xB4CB;
|
||||
result = 0xFFFFFFFFA0001699;
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"extr.w %0, $ac1, 0x03\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "=r"(dsp)
|
||||
: "r"(ach), "r"(acl)
|
||||
);
|
||||
dsp = (dsp >> 23) & 0x01;
|
||||
if ((dsp != 1) || (result != rt)) {
|
||||
printf("extr.w wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Clear dspcontrol */
|
||||
dsp = 0;
|
||||
__asm
|
||||
("wrdsp %0\n\t"
|
||||
:
|
||||
: "r"(dsp)
|
||||
);
|
||||
|
||||
ach = 0x01;
|
||||
acl = 0xB4CB;
|
||||
result = 0x10000B4C;
|
||||
__asm
|
||||
("mthi %2, $ac1\n\t"
|
||||
"mtlo %3, $ac1\n\t"
|
||||
"extr.w %0, $ac1, 0x04\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "=r"(dsp)
|
||||
: "r"(ach), "r"(acl)
|
||||
);
|
||||
dsp = (dsp >> 23) & 0x01;
|
||||
if ((dsp != 0) || (result != rt)) {
|
||||
printf("extr.w wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,59 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rt, rs, ach, acl, dsp;
|
||||
long long result;
|
||||
|
||||
ach = 0x05;
|
||||
acl = 0xB4CB;
|
||||
dsp = 0x07;
|
||||
rs = 0x03;
|
||||
result = 0xFFFFFFFFA0001699;
|
||||
|
||||
__asm
|
||||
("wrdsp %1, 0x01\n\t"
|
||||
"mthi %3, $ac1\n\t"
|
||||
"mtlo %4, $ac1\n\t"
|
||||
"extrv_r.w %0, $ac1, %2\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "+r"(dsp)
|
||||
: "r"(rs), "r"(ach), "r"(acl)
|
||||
);
|
||||
dsp = (dsp >> 23) & 0x01;
|
||||
if ((dsp != 1) || (result != rt)) {
|
||||
printf("extrv_r.w wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Clear dspcontrol */
|
||||
dsp = 0;
|
||||
__asm
|
||||
("wrdsp %0\n\t"
|
||||
:
|
||||
: "r"(dsp)
|
||||
);
|
||||
|
||||
rs = 4;
|
||||
ach = 0x01;
|
||||
acl = 0xB4CB;
|
||||
result = 0x10000B4D;
|
||||
__asm
|
||||
("wrdsp %1, 0x01\n\t"
|
||||
"mthi %3, $ac1\n\t"
|
||||
"mtlo %4, $ac1\n\t"
|
||||
"extrv_r.w %0, $ac1, %2\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "+r"(dsp)
|
||||
: "r"(rs), "r"(ach), "r"(acl)
|
||||
);
|
||||
dsp = (dsp >> 23) & 0x01;
|
||||
if ((dsp != 0) || (result != rt)) {
|
||||
printf("extrv_r.w wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,59 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rt, rs, ach, acl, dsp;
|
||||
long long result;
|
||||
|
||||
ach = 0x05;
|
||||
acl = 0xB4CB;
|
||||
dsp = 0x07;
|
||||
rs = 0x03;
|
||||
result = 0x7FFFFFFF;
|
||||
|
||||
__asm
|
||||
("wrdsp %1, 0x01\n\t"
|
||||
"mthi %3, $ac1\n\t"
|
||||
"mtlo %4, $ac1\n\t"
|
||||
"extrv_rs.w %0, $ac1, %2\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "+r"(dsp)
|
||||
: "r"(rs), "r"(ach), "r"(acl)
|
||||
);
|
||||
dsp = (dsp >> 23) & 0x01;
|
||||
if ((dsp != 1) || (result != rt)) {
|
||||
printf("1 extrv_rs.w wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Clear dspcontrol */
|
||||
dsp = 0;
|
||||
__asm
|
||||
("wrdsp %0\n\t"
|
||||
:
|
||||
: "r"(dsp)
|
||||
);
|
||||
|
||||
rs = 4;
|
||||
ach = 0x01;
|
||||
acl = 0xB4CB;
|
||||
result = 0x10000B4D;
|
||||
__asm
|
||||
("wrdsp %1, 0x01\n\t"
|
||||
"mthi %3, $ac1\n\t"
|
||||
"mtlo %4, $ac1\n\t"
|
||||
"extrv_rs.w %0, $ac1, %2\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "+r"(dsp)
|
||||
: "r"(rs), "r"(ach), "r"(acl)
|
||||
);
|
||||
dsp = (dsp >> 23) & 0x01;
|
||||
if ((dsp != 0) || (result != rt)) {
|
||||
printf("2 extrv_rs.w wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,79 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rt, rs, ach, acl, dsp;
|
||||
long long result;
|
||||
|
||||
ach = 0x05;
|
||||
acl = 0xB4CB;
|
||||
dsp = 0x07;
|
||||
rs = 0x03;
|
||||
result = 0x00007FFF;
|
||||
|
||||
__asm
|
||||
("wrdsp %1, 0x01\n\t"
|
||||
"mthi %3, $ac1\n\t"
|
||||
"mtlo %4, $ac1\n\t"
|
||||
"extrv_s.h %0, $ac1, %2\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "+r"(dsp)
|
||||
: "r"(rs), "r"(ach), "r"(acl)
|
||||
);
|
||||
dsp = (dsp >> 23) & 0x01;
|
||||
if ((dsp != 1) || (result != rt)) {
|
||||
printf("extrv_s.h wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
rs = 0x08;
|
||||
ach = 0xffffffff;
|
||||
acl = 0x12344321;
|
||||
result = 0xffffffffFFFF8000;
|
||||
__asm
|
||||
("wrdsp %1, 0x01\n\t"
|
||||
"mthi %3, $ac1\n\t"
|
||||
"mtlo %4, $ac1\n\t"
|
||||
"extrv_s.h %0, $ac1, %2\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "+r"(dsp)
|
||||
: "r"(rs), "r"(ach), "r"(acl)
|
||||
);
|
||||
dsp = (dsp >> 23) & 0x01;
|
||||
if ((dsp != 1) || (result != rt)) {
|
||||
printf("extrv_s.h wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Clear dsp */
|
||||
dsp = 0;
|
||||
__asm
|
||||
("wrdsp %0\n\t"
|
||||
:
|
||||
: "r"(dsp)
|
||||
);
|
||||
|
||||
rs = 0x04;
|
||||
ach = 0x00;
|
||||
acl = 0x4321;
|
||||
result = 0x432;
|
||||
__asm
|
||||
("wrdsp %1, 0x01\n\t"
|
||||
"mthi %3, $ac1\n\t"
|
||||
"mtlo %4, $ac1\n\t"
|
||||
"extrv_s.h %0, $ac1, %2\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "+r"(dsp)
|
||||
: "r"(rs), "r"(ach), "r"(acl)
|
||||
);
|
||||
dsp = (dsp >> 23) & 0x01;
|
||||
if ((dsp != 0) || (result != rt)) {
|
||||
printf("extrv_s.h wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,59 +0,0 @@
|
|||
#include "io.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
long long rt, rs, ach, acl, dsp;
|
||||
long long result;
|
||||
|
||||
ach = 0x05;
|
||||
acl = 0xB4CB;
|
||||
dsp = 0x07;
|
||||
rs = 0x03;
|
||||
result = 0xFFFFFFFFA0001699;
|
||||
|
||||
__asm
|
||||
("wrdsp %1, 0x01\n\t"
|
||||
"mthi %3, $ac1\n\t"
|
||||
"mtlo %4, $ac1\n\t"
|
||||
"extrv.w %0, $ac1, %2\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "+r"(dsp)
|
||||
: "r"(rs), "r"(ach), "r"(acl)
|
||||
);
|
||||
dsp = (dsp >> 23) & 0x01;
|
||||
if ((dsp != 1) || (result != rt)) {
|
||||
printf("extrv.w wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Clear dspcontrol */
|
||||
dsp = 0;
|
||||
__asm
|
||||
("wrdsp %0\n\t"
|
||||
:
|
||||
: "r"(dsp)
|
||||
);
|
||||
|
||||
rs = 4;
|
||||
ach = 0x01;
|
||||
acl = 0xB4CB;
|
||||
result = 0x10000B4C;
|
||||
__asm
|
||||
("wrdsp %1, 0x01\n\t"
|
||||
"mthi %3, $ac1\n\t"
|
||||
"mtlo %4, $ac1\n\t"
|
||||
"extrv.w %0, $ac1, %2\n\t"
|
||||
"rddsp %1\n\t"
|
||||
: "=r"(rt), "+r"(dsp)
|
||||
: "r"(rs), "r"(ach), "r"(acl)
|
||||
);
|
||||
dsp = (dsp >> 23) & 0x01;
|
||||
if ((dsp != 0) || (result != rt)) {
|
||||
printf("extrv.w wrong\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue