source: trunk/IPs/systemC/processor/Morpheo/Script/instruction_flow_diff.sh

Last change on this file was 122, checked in by rosiere, 15 years ago

Modif for performance :
1) Load Store Unit : store send request to valid exeception
2) Commit_unit : retire can bypass store
3) Commit_unit : add stat to manage store instruction
4) Load Store Unit and Load Store Pointer Manager : add store_queue_ptr_read
5) Fix lot of bug

  • Property svn:executable set to *
  • Property svn:keywords set to Id
File size: 2.7 KB
Line 
1#!/bin/bash
2
3#-----------------------------------------------------------
4# $Id: instruction_flow_diff.sh 122 2009-06-03 08:15:51Z rosiere $
5#-----------------------------------------------------------
6
7#-----[ usage ]---------------------------------------------
8function usage ()
9{
10    echo "Usage     : ${0} file1 file2";
11    echo "Arguments : ";
12    echo " * file1 : instruction flow file 1 (original)";
13    echo " * file2 : instruction flow file 2";
14    exit;
15}
16
17#-----[ test_usage ]----------------------------------------
18function test_usage ()
19{
20    if test ${#} -ne 2; then
21        usage ${*};
22    fi;
23
24    if test ! -f ${1} -o ! -f ${2}; then
25        usage ${*};
26    fi;
27}
28
29#-----[ main ]----------------------------------------------
30function main ()
31{
32    test_usage ${*};
33
34    # Read symbol file and take function address and function name
35    local -a array1_address;
36    local -a array1_load_data;
37    local -i cpt1;
38    local -i cpt2;
39    local    address1;
40    local    address2;
41
42     # Read instruction flow file 1
43    cpt1=0;
44    while read line; do
45        if test $(echo "${line}" |grep -c "OK") -gt 0; then
46            # extract address
47            address1=$(echo ${line} | cut -d' ' -f2);
48            load_data1=$(echo ${line} | cut -d' ' -f7);
49         
50            array1_address[${cpt1}]=${address1};
51            array1_load_data[${cpt1}]=${load_data1};
52
53            cpt1=$((${cpt1}+1));
54        fi;
55    done < ${1};
56
57     # Read instruction flow file 2 and compare with flow 1
58    cpt1=0;
59    cpt2=1;
60    address1=${array1_address[${cpt1}]};
61    load_data1=${array1_load_data[${cpt1}]};
62
63    while read line; do
64        if test $(echo "${line}" |grep -c "OK") -gt 0; then
65
66            if test ${cpt1} -eq ${#array1_address[*]}; then
67                echo "file \"${1}\" is empty, not file \"${2}\".";
68                exit;
69            fi;
70
71            # extract address
72            address2=$(echo ${line} | cut -d' ' -f2);
73            load_data2=$(echo ${line} | cut -d' ' -f7);
74
75            # test address
76            if test "${address1}" != "${address2}"; then
77                echo "diff line ${cpt2} on address:";
78                echo "${line}";
79                exit;
80            fi;
81
82            if test "${load_data1}" != "${load_data2}"; then
83                echo "diff line ${cpt2} on load_data:";
84                echo "${line}";
85                exit;
86            fi;
87
88            cpt1=$((${cpt1}+1));
89            address1=${array1_address[${cpt1}]};
90            load_data1=${array1_load_data[${cpt1}]};
91
92        fi;
93        cpt2=$((${cpt2}+1));
94    done < ${2};
95
96    if test ${cpt1} -ne ${#array1_address[*]}; then
97        echo "file \"${2}\" is empty, not file \"${1}\".";
98        exit;
99    else
100        echo "no diff.";
101    fi;
102
103}
104
105#-----[ Corps ]---------------------------------------------
106main ${*};
Note: See TracBrowser for help on using the repository browser.