From: Bernhard Urban Date: Wed, 3 Nov 2010 22:24:00 +0000 (+0100) Subject: 3_test: prep for praes tomorrow X-Git-Tag: bootrom_v1~176 X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=calu.git;a=commitdiff_plain;h=dab9a1b7d8813bd8f6991bc9ef2fe1cb62d3dbe4 3_test: prep for praes tomorrow WIP --- diff --git a/3_test/.gitignore b/3_test/.gitignore new file mode 100644 index 0000000..79a3666 --- /dev/null +++ b/3_test/.gitignore @@ -0,0 +1 @@ +*.dthex diff --git a/3_test/exectest.sh b/3_test/exectest.sh new file mode 100755 index 0000000..8bb844b --- /dev/null +++ b/3_test/exectest.sh @@ -0,0 +1,40 @@ +#!/bin/bash -x + +ARG2=$2 + +cleantools() { + make -C ../3a_asm clean + make -C ../3b_sim clean + make -C ../3c_disasm clean + rm -f *.s.dthex +} + +buildtools() { + make -C ../3a_asm all + make -C ../3b_sim all +} + +runasm() { + if [ "$ARG2" == "" ]; then + echo "runasm: please provide a assembler file" + exit 1 + fi + ../3a_asm/dtas < $ARG2 > ${ARG2%.s}.dthex +} + +runsim() { + if [ "$ARG2" == "" ]; then + echo "runsim: please provide a dthex file" + exit 1 + fi + cd ../3b_sim; ./sim -f ../3_test/$ARG2 +} + +case $1 in + clean) cleantools;; + build) buildtools;; + asm) runasm;; + sim) runsim;; + *) echo "first argument must be clean|build|asm |sim " +esac + diff --git a/3_test/sum.s b/3_test/sum.s new file mode 100644 index 0000000..b005a05 --- /dev/null +++ b/3_test/sum.s @@ -0,0 +1,46 @@ +.text +main: + ldis r2, 0x100 + + ldis r0, 1 + stw r0, 0(r2) ;1 + + addi r0,r0,2 + stw r0, 4(r2) ;3 + + addi r0,r0,100 + stw r0, 8(r2) ;103 + + addi r0,r0,-53 + stw r0, 12(r2) ;50 + + addi r0,r0,-10 + stw r0, 16(r2) ;40 + + ;ldis r1, 5 + ldis r1, 0 + call sum + ;r0 sollte 1+3+103+50+40=197 sein + br dummynop + +sum: + ;r1 = len + ;r2 = arr + ;r3 = i + ;r0 = sum + ;r4 arr data + ldis r0, 0 + addi r3, r1, 0 + retzs- ; check len != 0 +loop: + ;load arr data + ldw r4, 0(r2) + ;sum += arr[i]; + add r0, r0, r4 + addi r2, r2, 4 + subi r3, r3, 1 + brnz+ loop + ret + +dummynop: + addi r0,r0,0 diff --git a/3a_asm/Makefile b/3a_asm/Makefile index 4b3da7e..89ef646 100644 --- a/3a_asm/Makefile +++ b/3a_asm/Makefile @@ -7,7 +7,7 @@ all: clean: -rm -Rf **/**.o **/**.hi dtas -TESTFILES := $(shell ls tst/*.s) $(shell ls ../2_isa/src/*.s) +TESTFILES := $(shell ls ../3_test/*.s) $(shell ls ../2_isa/src/*.s) test: all $(TESTFILES:.s=.out) %.out: %.s diff --git a/3c_disasm/instr/.gitignore b/3c_disasm/instr/.gitignore new file mode 100644 index 0000000..b3cb838 --- /dev/null +++ b/3c_disasm/instr/.gitignore @@ -0,0 +1 @@ +*.d.*