tests: cris: add v17 ADDC test
Add a test for the newly implemented ADDC instruction in the v17 CRIS CPU. Acked-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Signed-off-by: Rabin Vincent <rabinv@axis.com> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
This commit is contained in:
parent
ceffd34e85
commit
4a58f35b79
@ -23,6 +23,7 @@ SYS = sys.o
|
|||||||
TESTCASES += check_abs.tst
|
TESTCASES += check_abs.tst
|
||||||
TESTCASES += check_addc.tst
|
TESTCASES += check_addc.tst
|
||||||
TESTCASES += check_addcm.tst
|
TESTCASES += check_addcm.tst
|
||||||
|
TESTCASES += check_addcv17.tst
|
||||||
TESTCASES += check_addo.tst
|
TESTCASES += check_addo.tst
|
||||||
TESTCASES += check_addoq.tst
|
TESTCASES += check_addoq.tst
|
||||||
TESTCASES += check_addi.tst
|
TESTCASES += check_addi.tst
|
||||||
@ -134,13 +135,27 @@ all: build
|
|||||||
%.ctst: %.o
|
%.ctst: %.o
|
||||||
$(CC) $(CFLAGS) $(LDLIBS) $< -o $@
|
$(CC) $(CFLAGS) $(LDLIBS) $< -o $@
|
||||||
|
|
||||||
|
|
||||||
|
sysv10.o: sys.c
|
||||||
|
$(CC) $(CFLAGS) -mcpu=v10 -c $< -o $@
|
||||||
|
|
||||||
|
crtv10.o: crt.s
|
||||||
|
$(AS) $(ASFLAGS) -mcpu=v10 -c $< -o $@
|
||||||
|
|
||||||
|
check_addcv17.tst: ASFLAGS += -mcpu=v10
|
||||||
|
check_addcv17.tst: CRT := crtv10.o
|
||||||
|
check_addcv17.tst: SYS := sysv10.o
|
||||||
|
check_addcv17.tst: crtv10.o sysv10.o
|
||||||
|
|
||||||
build: $(CRT) $(SYS) $(TESTCASES)
|
build: $(CRT) $(SYS) $(TESTCASES)
|
||||||
|
|
||||||
check: $(CRT) $(SYS) $(TESTCASES)
|
check: $(CRT) $(SYS) $(TESTCASES)
|
||||||
@echo -e "\nQEMU simulator."
|
@echo -e "\nQEMU simulator."
|
||||||
for case in $(TESTCASES); do \
|
for case in $(TESTCASES); do \
|
||||||
echo -n "$$case "; \
|
echo -n "$$case "; \
|
||||||
$(SIM) ./$$case; \
|
SIMARGS=; \
|
||||||
|
case $$case in *v17*) SIMARGS="-cpu crisv17";; esac; \
|
||||||
|
$(SIM) $$SIMARGS ./$$case; \
|
||||||
done
|
done
|
||||||
check-g: $(CRT) $(SYS) $(TESTCASES)
|
check-g: $(CRT) $(SYS) $(TESTCASES)
|
||||||
@echo -e "\nGDB simulator."
|
@echo -e "\nGDB simulator."
|
||||||
@ -150,4 +165,4 @@ check-g: $(CRT) $(SYS) $(TESTCASES)
|
|||||||
done
|
done
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
$(RM) -fr $(TESTCASES) $(CRT) $(SYS)
|
$(RM) -fr $(TESTCASES) *.o
|
||||||
|
65
tests/tcg/cris/check_addcv17.s
Normal file
65
tests/tcg/cris/check_addcv17.s
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
# mach: crisv17
|
||||||
|
|
||||||
|
.include "testutils.inc"
|
||||||
|
|
||||||
|
.macro addc Rs Rd inc=0
|
||||||
|
# Create the instruction manually since there is no assembler support yet
|
||||||
|
.word (\Rd << 12) | \Rs | (\inc << 10) | 0x09a0
|
||||||
|
.endm
|
||||||
|
|
||||||
|
start
|
||||||
|
|
||||||
|
.data
|
||||||
|
mem1:
|
||||||
|
.dword 0x0
|
||||||
|
mem2:
|
||||||
|
.dword 0x12345678
|
||||||
|
|
||||||
|
.text
|
||||||
|
move.d mem1,r4
|
||||||
|
clearf nzvc
|
||||||
|
addc 4 3
|
||||||
|
test_cc 0 1 0 0
|
||||||
|
checkr3 0
|
||||||
|
|
||||||
|
move.d mem1,r4
|
||||||
|
clearf nzvc
|
||||||
|
ax
|
||||||
|
addc 4 3
|
||||||
|
test_cc 0 0 0 0
|
||||||
|
checkr3 0
|
||||||
|
|
||||||
|
move.d mem1,r4
|
||||||
|
clearf nzvc
|
||||||
|
setf c
|
||||||
|
addc 4 3
|
||||||
|
test_cc 0 0 0 0
|
||||||
|
checkr3 1
|
||||||
|
|
||||||
|
move.d mem2,r4
|
||||||
|
moveq 2, r3
|
||||||
|
clearf nzvc
|
||||||
|
setf c
|
||||||
|
addc 4 3
|
||||||
|
test_cc 0 0 0 0
|
||||||
|
checkr3 1234567b
|
||||||
|
|
||||||
|
move.d mem2,r5
|
||||||
|
clearf nzvc
|
||||||
|
cmp.d r4,r5
|
||||||
|
test_cc 0 1 0 0
|
||||||
|
|
||||||
|
move.d mem2,r4
|
||||||
|
moveq 2, r3
|
||||||
|
clearf nzvc
|
||||||
|
addc 4 3 inc=1
|
||||||
|
test_cc 0 0 0 0
|
||||||
|
checkr3 1234567a
|
||||||
|
|
||||||
|
move.d mem2,r5
|
||||||
|
clearf nzvc
|
||||||
|
addq 4,r5
|
||||||
|
cmp.d r4,r5
|
||||||
|
test_cc 0 1 0 0
|
||||||
|
|
||||||
|
quit
|
Loading…
x
Reference in New Issue
Block a user