소스 검색

tools: add check_xlcz.sh which is used to test xlcz and addibne generation

$ ./check_xlcz.sh application/baremetal/benchmark
app,corecfg,xlczcnt,addibnecnt
./coremark,n300_xxlcz,255,3
./coremark,n300f_xxlcz,255,3
./coremark,nx900_xxlcz,126,0
./coremark,nx900f_xxlcz,126,0
./dhrystone,n300_xxlcz,61,0
./dhrystone,n300f_xxlcz,61,0
./dhrystone,nx900_xxlcz,51,0
./dhrystone,nx900f_xxlcz,51,0
./whetstone,n300_xxlcz,35,0
./whetstone,n300f_xxlcz,35,0
./whetstone,nx900_xxlcz,35,0
./whetstone,nx900f_xxlcz,35,0
./coremark,n300_zca_zcb_zcmp_zcmt_xxlcz,255,3
./coremark,n300f_zca_zcb_zcf_zcmp_zcmt_xxlcz,255,3
./coremark,nx900_zca_zcb_zcmp_zcmt_xxlcz,126,0
./coremark,nx900f_zca_zcb_zcmp_zcmt_xxlcz,126,0
./dhrystone,n300_zca_zcb_zcmp_zcmt_xxlcz,61,0
./dhrystone,n300f_zca_zcb_zcf_zcmp_zcmt_xxlcz,61,0
./dhrystone,nx900_zca_zcb_zcmp_zcmt_xxlcz,51,0
./dhrystone,nx900f_zca_zcb_zcmp_zcmt_xxlcz,51,0
./whetstone,n300_zca_zcb_zcmp_zcmt_xxlcz,35,0
./whetstone,n300f_zca_zcb_zcf_zcmp_zcmt_xxlcz,35,0
./whetstone,nx900_zca_zcb_zcmp_zcmt_xxlcz,35,0
./whetstone,nx900f_zca_zcb_zcmp_zcmt_xxlcz,35,0
Generate totally 12 xl.addibne instructions

Signed-off-by: Huaqi Fang <578567190@qq.com>
Huaqi Fang 2 년 전
부모
커밋
8404213b0f
1개의 변경된 파일48개의 추가작업 그리고 0개의 파일을 삭제
  1. 48 0
      tools/scripts/misc/check_xlcz.sh

+ 48 - 0
tools/scripts/misc/check_xlcz.sh

@@ -0,0 +1,48 @@
+#!/bin/env bash
+
+APPDIR=${1:-application}
+
+SCRIPTDIR=$(dirname $(readlink -f $BASH_SOURCE))
+SCRIPTDIR=$(readlink -f $SCRIPTDIR)
+if [ "x$NSDK_ROOT" == "x"  ] ; then
+    NSDK_ROOT=$(readlink -f $SCRIPTDIR/../../..)
+fi
+
+pushd $NSDK_ROOT/$APPDIR > /dev/null
+
+totaladdibnecnt=0
+
+echo "app,corecfg,xlczcnt,addibnecnt"
+for ext in _xxlcz _zca_zcb_zcf_zcmp_zcmt_xxlcz ; do
+    for appdir in `find . -name Makefile | xargs dirname`; do
+        for core in n300 n300f nx900 nx900f ; do
+            archext=$ext
+            if [[ "$core" == *"x"* ]] || [[ ! "$core" == *"f"* ]] ; then
+                archext=${archext/_zcf/}
+            fi
+            pushd $appdir > /dev/null
+            make SILENT=1 clean > /dev/null
+            dasmfile=$(make SILENT=1 CORE=$core ARCH_EXT=$archext -j dasm 2>&1 | grep dasm | cut -d ">" -f2)
+            if [ "x$dasmfile" == "x" ] || [ ! -f $dasmfile ] ; then
+                echo "ERROR: Unable to build $appdir for CORE=$core ARCH_EXT=$archext"
+                exit 1
+            else
+                xlczinscnt=$(cat $dasmfile | grep -e "xl\." | wc -l)
+                addibnecnt=$(cat $dasmfile | grep -e "xl\.addibne" | wc -l)
+            fi
+            totaladdibnecnt=$(($addibnecnt+$totaladdibnecnt))
+            echo "$appdir,$core$archext,$xlczinscnt,$addibnecnt"
+            popd > /dev/null
+        done
+    done
+done
+
+popd > /dev/null
+
+if [[ $totaladdibnecnt > 0 ]] ; then
+    echo "Generate totally $totaladdibnecnt xl.addibne instructions"
+    exit 0
+fi
+
+echo "ERORR: No xl.addibne generated!"
+exit 1