File tree Expand file tree Collapse file tree 13 files changed +547
-0
lines changed Expand file tree Collapse file tree 13 files changed +547
-0
lines changed Original file line number Diff line number Diff line change 1+ #! /usr/bin/env bash
2+
3+ set -e -x
4+
5+ CONFIG=" $1 "
6+ RESULT=" $2 "
7+ BOOTCODE=" $3 "
8+ TRIPLE=" $4 "
9+ ARCH=" $5 "
10+ ABI=" $6 "
11+
12+ CONFIGDIR=$( dirname " $CONFIG " )
13+
14+ base=$( basename " $CONFIG " .yaml)
15+ elf=" $base " .elf
16+ ./llvm-snippy " $CONFIG " -o " $elf " --seed 1 -mtriple=" $TRIPLE " -march=" $ARCH " -riscv-disable-misaligned-access
17+ riscv64-linux-gnu-gcc -O0 -march=" $ARCH " -mabi=" $ABI " -T " $elf " .ld -T " $CONFIGDIR " /linker-entry.ld " $elf " " $BOOTCODE " -nostdlib -static -o " $RESULT "
18+
Original file line number Diff line number Diff line change 1+ #! /usr/bin/env bash
2+
3+ set -e -x
4+
5+ WORKDIR=" $1 "
6+ CONFIGDIR=" $2 "
7+ RESULTDIR=" $WORKDIR " /snippy-tests
8+
9+ mkdir -p " $WORKDIR "
10+ mkdir -p " $RESULTDIR "
11+
12+ generate_script=` git rev-parse --show-toplevel` /ci-tests/generate-snippy-test.sh
13+
14+ " $generate_script " " $CONFIGDIR " /basic.yaml " $RESULTDIR " /basic64.elf \
15+ " $CONFIGDIR " /boot-code.s riscv64-unknown-elf rv64i_zicsr lp64
16+
17+ " $generate_script " " $CONFIGDIR " /basic.yaml " $RESULTDIR " /basic32.elf \
18+ " $CONFIGDIR " /boot-code.s riscv32-unknown-elf rv32i_zicsr ilp32
19+
20+ " $generate_script " " $CONFIGDIR " /compressed.yaml " $RESULTDIR " /compressed64.elf \
21+ " $CONFIGDIR " /boot-code.s riscv64-unknown-elf rv64ic_zicsr lp64
22+
23+ " $generate_script " " $CONFIGDIR " /compressed.yaml " $RESULTDIR " /compressed32.elf \
24+ " $CONFIGDIR " /boot-code.s riscv32-unknown-elf rv32ic_zicsr ilp32
25+
26+ " $generate_script " " $CONFIGDIR " /double-fp.yaml " $RESULTDIR " /double64.elf \
27+ " $CONFIGDIR " /boot-code-f.s riscv64-unknown-elf rv64ifd_zicsr lp64d
28+
29+ " $generate_script " " $CONFIGDIR " /double-fp.yaml " $RESULTDIR " /double32.elf \
30+ " $CONFIGDIR " /boot-code-f.s riscv32-unknown-elf rv32ifd_zicsr ilp32d
31+
32+ " $generate_script " " $CONFIGDIR " /single-fp.yaml " $RESULTDIR " /float64.elf \
33+ " $CONFIGDIR " /boot-code-f.s riscv64-unknown-elf rv64if_zicsr lp64f
34+
35+ " $generate_script " " $CONFIGDIR " /single-fp.yaml " $RESULTDIR " /float32.elf \
36+ " $CONFIGDIR " /boot-code-f.s riscv32-unknown-elf rv32if_zicsr ilp32f
37+
Original file line number Diff line number Diff line change 1+ #! /usr/bin/env bash
2+
3+ set -x
4+
5+ TESTDIR=" $1 "
6+ SPIKE_PATH=" $2 "
7+
8+ error=0
9+ for testfile in " $TESTDIR " /* ; do
10+ bitness=$( basename " $testfile " .elf | grep -o " [0-9]\+" )
11+ if ! timeout --foreground 5s " $SPIKE_PATH " -l --log-commits --isa rv" $bitness " ifdc_zicsr " $testfile "
12+ then
13+ echo " TIMEOUT: $testfile "
14+ error=1
15+ else
16+ echo " SUCCESS: $testfile "
17+ fi
18+ done
19+ exit $error
Original file line number Diff line number Diff line change 1+ options :
2+ mattr : +a
3+ num-instrs : 1000
4+ entry-point : SNIPPY_ENTRY
5+ model-plugin : None
6+
7+ sections :
8+ - name : 0
9+ VMA : 0x80000000
10+ SIZE : 0x10000
11+ LMA : 0x80000000
12+ ACCESS : r
13+ - name : 1
14+ VMA : 0x80020000
15+ SIZE : 0x20000
16+ LMA : 0x80020000
17+ ACCESS : rx
18+ - name : 2
19+ VMA : 0x80040000
20+ SIZE : 0x10000
21+ LMA : 0x80040000
22+ ACCESS : rw
23+ - name : stack
24+ VMA : 0x80050000
25+ SIZE : 0x10000
26+ LMA : 0x80050000
27+ ACCESS : rw
28+
29+ histogram :
30+ - ["AMOADD_[WD].*", 1.0]
31+ - ["AMOAND_[WD].*", 1.0]
32+ - ["AMOMAXU_[WD].*", 1.0]
33+ - ["AMOMAX_[WD].*", 1.0]
34+ - ["AMOMINU_[WD].*", 1.0]
35+ - ["AMOMIN_[WD].*", 1.0]
36+ - ["AMOOR_[WD].*", 1.0]
37+ - ["AMOSWAP_[WD].*", 1.0]
38+ - ["AMOXOR_[WD].*", 1.0]
39+ - ["ADD", 1.0]
40+ - ["ADDI", 1.0]
41+ - ["AND", 1.0]
42+ - ["ANDI", 1.0]
43+ - ["AUIPC", 1.0]
44+ - ["BEQ", 3.0]
45+ - ["BGE", 3.0]
46+ - ["BGEU", 3.0]
47+ - ["BLT", 3.0]
48+ - ["BLTU", 3.0]
49+ - ["BNE", 3.0]
50+ - ["L[BHWD][U]?", 1.0]
51+ - ["S[BHWD]", 1.0]
52+ - ["LUI", 1.0]
53+ - ["OR", 1.0]
54+ - ["ORI", 1.0]
55+ - ["SLL", 1.0]
56+ - ["SLLI", 1.0]
57+ - ["SLT", 1.0]
58+ - ["SLTI", 1.0]
59+ - ["SLTIU", 1.0]
60+ - ["SLTU", 1.0]
61+ - ["SRA", 1.0]
62+ - ["SRAI", 1.0]
63+ - ["SRL", 1.0]
64+ - ["SRLI", 1.0]
65+ - ["SUB", 1.0]
66+ - ["XOR", 1.0]
67+ - ["XORI", 1.0]
Original file line number Diff line number Diff line change 1+ options :
2+ num-instrs : 1000
3+ entry-point : SNIPPY_ENTRY
4+ model-plugin : None
5+
6+ sections :
7+ - name : 0
8+ VMA : 0x80000000
9+ SIZE : 0x10000
10+ LMA : 0x80000000
11+ ACCESS : r
12+ - name : 1
13+ VMA : 0x80020000
14+ SIZE : 0x20000
15+ LMA : 0x80020000
16+ ACCESS : rx
17+ - name : 2
18+ VMA : 0x80040000
19+ SIZE : 0x10000
20+ LMA : 0x80040000
21+ ACCESS : rw
22+ - name : stack
23+ VMA : 0x80050000
24+ SIZE : 0x10000
25+ LMA : 0x80050000
26+ ACCESS : rw
27+
28+ histogram :
29+ - ["ADD", 1.0]
30+ - ["ADDI", 1.0]
31+ - ["AND", 1.0]
32+ - ["ANDI", 1.0]
33+ - ["AUIPC", 1.0]
34+ - ["BEQ", 3.0]
35+ - ["BGE", 3.0]
36+ - ["BGEU", 3.0]
37+ - ["BLT", 3.0]
38+ - ["BLTU", 3.0]
39+ - ["BNE", 3.0]
40+ - ["L[BHWD][U]?", 1.0]
41+ - ["S[BHWD]", 1.0]
42+ - ["LUI", 1.0]
43+ - ["OR", 1.0]
44+ - ["ORI", 1.0]
45+ - ["SLL", 1.0]
46+ - ["SLLI", 1.0]
47+ - ["SLT", 1.0]
48+ - ["SLTI", 1.0]
49+ - ["SLTIU", 1.0]
50+ - ["SLTU", 1.0]
51+ - ["SRA", 1.0]
52+ - ["SRAI", 1.0]
53+ - ["SRL", 1.0]
54+ - ["SRLI", 1.0]
55+ - ["SUB", 1.0]
56+ - ["XOR", 1.0]
57+ - ["XORI", 1.0]
Original file line number Diff line number Diff line change 1+ .option norvc
2+
3+ .global _entry
4+ .global fromhost
5+ .global tohost
6+
7+ .text
8+ _entry:
9+ la t0, exception_handler
10+ csrw mtvec, t0
11+ csrr t1, mstatus
12+ # Setting bit number 13 (mstatus.FS)
13+ li t3, 1
14+ slli t3, t3, 13
15+ or t1, t1, t3
16+ csrw mstatus, t1
17+ la t0, SNIPPY_ENTRY
18+ jalr t0
19+
20+ exception_handler:
21+ csrr x10, mcause
22+ # In case of breakpoint (Interrupt = 0, Exception code = 3) we finalize.
23+ # Otherwise it's not the expected behavior and we go into an infinite loop.
24+ li x11, 3
25+ beq x10, x11, exit
26+ j infinite_loop
27+
28+ exit:
29+ li ra, 1
30+ la sp, tohost
31+ sw ra, 0 (sp)
32+
33+ infinite_loop:
34+ j infinite_loop
35+
36+ .balign 64
37+ tohost:
38+ .8byte 0x0
39+ .balign 64
40+ fromhost:
41+ .8byte 0x0
Original file line number Diff line number Diff line change 1+ .option norvc
2+ .global _entry
3+ .global fromhost
4+ .global tohost
5+ .text
6+ _entry:
7+ la t0, exception_handler
8+ csrw mtvec, t0
9+ la t0, SNIPPY_ENTRY
10+ jalr t0
11+ j exit
12+ exception_handler:
13+ csrr x10, mcause
14+ # In case of breakpoint (Interrupt = 0, Exception code = 3) we finalize.
15+ # Otherwise it's not the expected behavior and we go into an infinite loop.
16+ li x11, 3
17+ beq x10, x11, exit
18+ j infinite_loop
19+ exit:
20+ li ra, 1
21+ la sp, tohost
22+ sw ra, 0 (sp)
23+ infinite_loop:
24+ j infinite_loop
25+ .balign 64
26+ tohost:
27+ .8byte 0x0
28+ fromhost:
29+ .8byte 0x0
30+
Original file line number Diff line number Diff line change 1+ options :
2+ mattr : +c
3+ num-instrs : 1000
4+ entry-point : SNIPPY_ENTRY
5+ model-plugin : None
6+
7+ sections :
8+ - name : 0
9+ VMA : 0x80000000
10+ SIZE : 0x10000
11+ LMA : 0x80000000
12+ ACCESS : r
13+ - name : 1
14+ VMA : 0x80020000
15+ SIZE : 0x20000
16+ LMA : 0x80020000
17+ ACCESS : rx
18+ - name : 2
19+ VMA : 0x80040000
20+ SIZE : 0x10000
21+ LMA : 0x80040000
22+ ACCESS : rw
23+ - name : stack
24+ VMA : 0x80050000
25+ SIZE : 0x10000
26+ LMA : 0x80050000
27+ ACCESS : rw
28+
29+ histogram :
30+ - ["C_ADD.*", 1.0]
31+ - ["C_AND", 1.0]
32+ - ["C_ANDI", 1.0]
33+ - ["C_BEQZ", 5.0]
34+ - ["C_BNEZ", 5.0]
35+ - ["C_L[WD]", 1.0]
36+ - ["C_S[WD]", 1.0]
37+ - ["C_LI", 1.0]
38+ - ["C_LUI", 1.0]
39+ - ["C_MV", 1.0]
40+ - ["C_OR", 1.0]
41+ - ["C_SLLI", 1.0]
42+ - ["C_SRAI", 1.0]
43+ - ["C_SRLI", 1.0]
44+ - ["C_SUB[W]?", 1.0]
45+ - ["C_XOR", 1.0]
46+ - ["ADD", 1.0]
47+ - ["ADDI", 1.0]
48+ - ["AND", 1.0]
49+ - ["ANDI", 1.0]
50+ - ["AUIPC", 1.0]
51+ - ["BEQ", 3.0]
52+ - ["BGE", 3.0]
53+ - ["BGEU", 3.0]
54+ - ["BLT", 3.0]
55+ - ["BLTU", 3.0]
56+ - ["BNE", 3.0]
57+ - ["L[BHWD][U]?", 1.0]
58+ - ["S[BHWD]", 1.0]
59+ - ["LUI", 1.0]
60+ - ["OR", 1.0]
61+ - ["ORI", 1.0]
62+ - ["SB", 1.0]
63+ - ["SH", 1.0]
64+ - ["SLL", 1.0]
65+ - ["SLLI", 1.0]
66+ - ["SLT", 1.0]
67+ - ["SLTI", 1.0]
68+ - ["SLTIU", 1.0]
69+ - ["SLTU", 1.0]
70+ - ["SRA", 1.0]
71+ - ["SRAI", 1.0]
72+ - ["SRL", 1.0]
73+ - ["SRLI", 1.0]
74+ - ["SUB", 1.0]
75+ - ["XOR", 1.0]
76+ - ["XORI", 1.0]
You can’t perform that action at this time.
0 commit comments