OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /openrisc/tags/or1ksim/or1ksim-0.4.0/testsuite/or1ksim.tests
    from Rev 124 to Rev 135
    Reverse comparison

Rev 124 → Rev 135

/inst-set-test.exp
0,0 → 1,1645
# inst-set-test.exp. Tests of ORBIS32 instruction set
 
# Copyright (C) 2010 Embecosm Limited
 
# Contributor Jeremy Bennett <jeremy.bennett@embecosm.com>
 
# This file is part of OpenRISC 1000 Architectural Simulator.
 
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 3 of the License, or (at your option)
# any later version.
 
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
# more details.
 
# You should have received a copy of the GNU General Public License along
# with this program. If not, see <http:#www.gnu.org/licenses/>. */
 
# -----------------------------------------------------------------------------
# This code is commented throughout for use with Doxygen.
# -----------------------------------------------------------------------------
 
 
# Run the l.add, l.addc, l.addi and l.addic tests
run_or1ksim "add-test" \
[list "! ** OVE flag cleared **" \
"!l.add" \
" 0x00000001 + 0x00000002 = 0x00000003: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x00000001 + 0x00000002 + c = 0x00000003: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xffffffff + 0xfffffffe = 0xfffffffd: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x40000000 + 0x3fffffff = 0x7fffffff: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x40000000 + 0x40000000 = 0x80000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: TRUE" \
" - exception triggered: FALSE" \
" 0xc0000000 + 0xc0000000 = 0x80000000: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xbfffffff + 0xbfffffff = 0x7ffffffe: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: TRUE" \
" - exception triggered: FALSE" \
"! ** OVE flag set **" \
" RANGE exception" \
" 0x40000000 + 0x40000000 = 0x80000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: TRUE" \
" - exception triggered: TRUE" \
" 0xffffffff + 0xfffffffe = 0xfffffffd: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" RANGE exception" \
" 0xbfffffff + 0xbfffffff = 0x7ffffffe: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: TRUE" \
" - exception triggered: TRUE" \
"! ** OVE flag cleared **" \
"l.addc" \
" 0x00000001 + 0x00000002 = 0x00000003: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xffffffff + 0xfffffffe = 0xfffffffd: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x40000000 + 0x3fffffff = 0x7fffffff: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x40000000 + 0x3fffffff + c = 0x80000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: TRUE" \
" - exception triggered: FALSE" \
" 0x40000000 + 0x40000000 = 0x80000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: TRUE" \
" - exception triggered: FALSE" \
" 0xffffffff + 0x00000000 + c = 0x00000000: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x00000000 + 0xffffffff + c = 0x00000000: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xc0000000 + 0xc0000000 = 0x80000000: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xc0000000 + 0xbfffffff + c = 0x80000000: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xbfffffff + 0xbfffffff = 0x7ffffffe: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: TRUE" \
" - exception triggered: FALSE" \
"! ** OVE flag set **" \
" RANGE exception" \
" 0x40000000 + 0x40000000 = 0x80000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: TRUE" \
" - exception triggered: TRUE" \
" RANGE exception" \
" 0x40000000 + 0x3fffffff + c = 0x80000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: TRUE" \
" - exception triggered: TRUE" \
" 0xffffffff + 0xfffffffe = 0xfffffffd: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x00000000 + 0xffffffff + c = 0x00000000: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" RANGE exception" \
" 0xbfffffff + 0xbfffffff = 0x7ffffffe: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: TRUE" \
" - exception triggered: TRUE" \
"! ** OVE flag cleared **" \
"l.addi" \
" 0x00000001 + 0x00000002 = 0x00000003: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x00000001 + 0x00000002 + c = 0x00000003: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xffffffff + 0x0000fffe = 0xfffffffd: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x7fff8000 + 0x00007fff = 0x7fffffff: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x7fffc000 + 0x00004000 = 0x80000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: TRUE" \
" - exception triggered: FALSE" \
" 0x80008000 + 0x00008000 = 0x80000000: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x80007fff + 0x00008000 = 0x7fffffff: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: TRUE" \
" - exception triggered: FALSE" \
"! ** OVE flag set **" \
" RANGE exception" \
" 0x7fffc000 + 0x00004000 = 0x80000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: TRUE" \
" - exception triggered: TRUE" \
" 0xffffffff + 0x0000fffe = 0xfffffffd: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" RANGE exception" \
" 0x80007fff + 0x00008000 = 0x7fffffff: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: TRUE" \
" - exception triggered: TRUE" \
"! ** OVE flag cleared **" \
"l.addic" \
" 0x00000001 + 0x00000002 = 0x00000003: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xffffffff + 0x0000fffe = 0xfffffffd: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x7fff8000 + 0x00007fff = 0x7fffffff: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x7fff8000 + 0x00007fff + c = 0x80000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: TRUE" \
" - exception triggered: FALSE" \
" 0x7fffc000 + 0x00004000 = 0x80000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: TRUE" \
" - exception triggered: FALSE" \
" 0xffffffff + 0x00000000 + c = 0x00000000: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x00000000 + 0x0000ffff + c = 0x00000000: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x80008000 + 0x00008000 = 0x80000000: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x80007fff + 0x00008000 + c = 0x80000000: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x80007fff + 0x00008000 = 0x7fffffff: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: TRUE" \
" - exception triggered: FALSE" \
"! ** OVE flag set **" \
" RANGE exception" \
" 0x7fffc000 + 0x00004000 = 0x80000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: TRUE" \
" - exception triggered: TRUE" \
" RANGE exception" \
" 0x7fffc000 + 0x00003fff + c = 0x80000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: TRUE" \
" - exception triggered: TRUE" \
" 0xffffffff + 0x0000fffe = 0xfffffffd: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x00000000 + 0x0000ffff + c = 0x00000000: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" RANGE exception" \
" 0x80007fff + 0x00008000 = 0x7fffffff: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: TRUE" \
" - exception triggered: TRUE" \
"! ** OVE flag cleared **" \
"!Test completed" \
"!report(0xdeaddead);" \
"!exit(0)"] \
"inst-set-test.cfg" "inst-set-test/is-add-test"
 
# Run the l.and, and l.andi tests
run_or1ksim "and-test" \
[list "! ** OVE flag set **" \
"!l.and" \
" 0x00000000 & 0x00000000 = 0x00000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xffffffff & 0xffffffff = 0xffffffff: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xaaaaaaaa & 0x00000000 = 0x00000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xaaaaaaaa & 0xaaaaaaaa = 0xaaaaaaaa: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x55555555 & 0x00000000 = 0x00000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x55555555 & 0x55555555 = 0x55555555: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xaaaaaaaa & 0x55555555 = 0x00000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x4c70f07c & 0xb38f0f83 = 0x00000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x4c70f07c & 0xc4c70f07 = 0x44400004: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 & 0x38f0f83b = 0x30800803: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
"!l.andi" \
" 0x00000000 & 0x0000 = 0x00000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xffffffff & 0xffff = 0x0000ffff: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xaaaaaaaa & 0x0000 = 0x00000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xaaaaaaaa & 0xaaaa = 0x0000aaaa: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x55555555 & 0x0000 = 0x00000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x55555555 & 0x5555 = 0x00005555: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xaaaaaaaa & 0x5555 = 0x00000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x4c70f07c & 0x0f83 = 0x00000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x4c70f07c & 0x0f07 = 0x00000004: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 & 0xf83b = 0x00000803: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
"!Test completed" \
"!report(0xdeaddead);" \
"!exit(0)"] \
"inst-set-test.cfg" "inst-set-test/is-and-test"
 
# Run the l.div and l.divu test
run_or1ksim "div-test" \
[list "!l.div" \
" 0x0000000c / 0x00000003 = 0x00000004: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x0000000b / 0x00000003 = 0x00000003: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xfffffff4 / 0xfffffffd = 0x00000004: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xfffffff5 / 0xfffffffd = 0x00000003: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xfffffff4 / 0x00000003 = 0xfffffffc: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xfffffff5 / 0x00000003 = 0xfffffffd: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x0000000c / 0xfffffffd = 0xfffffffc: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x0000000b / 0xfffffffd = 0xfffffffd: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x0000000c / 0x00000000 = 0x00000000: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xfffffff4 / 0x00000000 = 0x00000000: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
"! ** OVE flag set **" \
" RANGE exception" \
" 0x0000000c / 0x00000000 = 0x00000000: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: TRUE" \
" RANGE exception" \
" 0xfffffff4 / 0x00000000 = 0x00000000: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: TRUE" \
"! ** OVE flag cleared **" \
"l.divu" \
" 0x0000000c / 0x00000003 = 0x00000004: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x0000000b / 0x00000003 = 0x00000003: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xfffffff4 / 0xfffffffd = 0x00000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xfffffff5 / 0xfffffffd = 0x00000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xfffffff4 / 0x00000003 = 0x55555551: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xfffffff5 / 0x00000003 = 0x55555551: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x0000000c / 0xfffffffd = 0x00000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x0000000b / 0xfffffffd = 0x00000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x0000000c / 0x00000000 = 0x00000000: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xfffffff4 / 0x00000000 = 0x00000000: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
"! ** OVE flag set **" \
" RANGE exception" \
" 0x0000000c / 0x00000000 = 0x00000000: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: TRUE" \
" RANGE exception" \
" 0xfffffff4 / 0x00000000 = 0x00000000: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: TRUE" \
"! ** OVE flag cleared **" \
"!Test completed" \
"!report(0xdeaddead);" \
"!exit(0)"] \
"inst-set-test.cfg" "inst-set-test/is-div-test"
 
# Run the l.ff1 and l.fl1 test
run_or1ksim "find-test" \
[list "!l.ff1" \
" ff1 (0x00000001) = 0x01: OK" \
" ff1 (0x80000000) = 0x20: OK" \
" ff1 (0x55555555) = 0x01: OK" \
" ff1 (0xaaaaaaaa) = 0x02: OK" \
" ff1 (0x00018000) = 0x10: OK" \
" ff1 (0xc0000000) = 0x1f: OK" \
" ff1 (0x00000000) = 0x00: OK" \
"!l.fl1" \
" fl1 (0x00000001) = 0x01: OK" \
" fl1 (0x80000000) = 0x20: OK" \
" fl1 (0x55555555) = 0x1f: OK" \
" fl1 (0xaaaaaaaa) = 0x20: OK" \
" fl1 (0x00018000) = 0x11: OK" \
" fl1 (0xc0000000) = 0x20: OK" \
" fl1 (0x00000000) = 0x00: OK" \
"!Test completed" \
"!report(0xdeaddead);" \
"!exit(0)"] \
"inst-set-test.cfg" "inst-set-test/is-find-test"
 
# Run the l.jalf and l.jr test
run_or1ksim "jump-test" \
[list "!l.jalr" \
" Jump to 0x000010dc using register 0x05 OK" \
" - exception triggered: FALSE" \
" ALIGNMENT exception" \
" Jump to 0x000012b9 using register 0x05 failed" \
" - exception triggered: TRUE" \
" ALIGNMENT exception" \
" Jump to 0x00001496 using register 0x05 failed" \
" - exception triggered: TRUE" \
" ALIGNMENT exception" \
" Jump to 0x00001673 using register 0x05 failed" \
" - exception triggered: TRUE" \
" ILLEGAL INSTRUCTION exception" \
" Jump to 0x0000184c using register 0x09 failed" \
" - exception triggered: TRUE" \
"!l.jr" \
" Jump to 0x00001a38 using register 0x05 OK" \
" - exception triggered: FALSE" \
" ALIGNMENT exception" \
" Jump to 0x00001c15 using register 0x05 failed" \
" - exception triggered: TRUE" \
" ALIGNMENT exception" \
" Jump to 0x00001df2 using register 0x05 failed" \
" - exception triggered: TRUE" \
" ALIGNMENT exception" \
" Jump to 0x00001fcf using register 0x05 failed" \
" - exception triggered: TRUE" \
" Jump to 0x000021a8 using register 0x09 OK" \
" - exception triggered: FALSE" \
"!Test completed" \
"!report(0xdeaddead);" \
"!exit(0)"] \
"inst-set-test.cfg" "inst-set-test/is-jump-test"
 
# Run the l.lws test
run_or1ksim "lws-test" \
[list "!l.lws" \
" l.lws r4,0(r5): r4=0xdeadbeef: OK" \
" l.lws r4,0(r5): r4=0x00000000: OK" \
" l.lws r4,0(r5): r4=0x7fffffff: OK" \
" l.lws r4,0(r5): r4=0x80000000: OK" \
" l.lws r4,0(r5): r4=0xffffffff: OK" \
" l.lws r4,0(r5): r4=0x00000000: OK" \
" l.lws r4,0(r5): r4=0x7fffffff: OK" \
" l.lws r4,0(r5): r4=0x80000000: OK" \
" l.lws r4,0(r5): r4=0xffffffff: OK" \
" l.lws r4,0(r5): r4=0xdeadbeef: OK" \
" l.lws r4,0(r5): r4=0x00000000: OK" \
" l.lws r4,0(r5): r4=0x7fffffff: OK" \
" l.lws r4,0(r5): r4=0x80000000: OK" \
"!Test completed" \
"!report(0xdeaddead);" \
"!exit(0)"] \
"inst-set-test.cfg" "inst-set-test/is-lws-test"
 
# Run the l.mac test
run_or1ksim "mac-test" \
[list "!l.mac" \
" 0x00000000 00000000 + 0x00000002 * 0x00000003 = 0x00000000 00000006: OK" \
" 0x00000000 00000006 + 0x00000002 * 0x00000003 = 0x00000000 0000000c: OK" \
" 0x00000000 fffffffa + 0x00000002 * 0x00000003 = 0x00000001 00000000: OK" \
" 0x3fffffff fffffffa + 0x00000002 * 0x00000003 = 0x40000000 00000000: OK" \
" 0xffffffff fffffffa + 0x00000002 * 0x00000003 = 0x00000000 00000000: OK" \
" 0xffffffff 00000000 + 0x00000002 * 0x00000003 = 0xffffffff 00000006: OK" \
" 0x80000000 00000000 + 0x00000002 * 0x00000003 = 0x80000000 00000006: OK" \
"!" \
" 0x00000000 00000000 + 0x00008001 * 0x0000fffe = 0x00000000 7ffffffe: OK" \
" 0x00000000 00000002 + 0x00008001 * 0x0000fffe = 0x00000000 80000000: OK" \
" 0x00000000 80000002 + 0x00008001 * 0x0000fffe = 0x00000001 00000000: OK" \
" 0x7fffffff 80000001 + 0x00008001 * 0x0000fffe = 0x7fffffff ffffffff: OK" \
" 0xffffffff ffffffff + 0x00008001 * 0x0000fffe = 0x00000000 7ffffffd: OK" \
" 0xffffffff 80000002 + 0x00008001 * 0x0000fffe = 0x00000000 00000000: OK" \
" 0xfffffffe 80000002 + 0x00008001 * 0x0000fffe = 0xffffffff 00000000: OK" \
"!" \
" 0x00000000 00000000 + 0xfffffffe * 0xfffffffd = 0x00000000 00000006: OK" \
" 0x00000000 00000006 + 0xfffffffe * 0xfffffffd = 0x00000000 0000000c: OK" \
" 0xffffffff ffffffff + 0xfffffffe * 0xfffffffd = 0x00000000 00000005: OK" \
"!" \
" 0x00000000 00000000 + 0x00000002 * 0xfffffffd = 0xffffffff fffffffa: OK" \
" 0x00000000 0000000c + 0x00000002 * 0xfffffffd = 0x00000000 00000006: OK" \
" 0x00000001 00000005 + 0x00000002 * 0xfffffffd = 0x00000000 ffffffff: OK" \
" 0x7fffffff ffffffff + 0x00000002 * 0xfffffffd = 0x7fffffff fffffff9: OK" \
" 0xffffffff ffffffff + 0x00000002 * 0xfffffffd = 0xffffffff fffffff9: OK" \
" 0xffffffff 00000005 + 0x00000002 * 0xfffffffd = 0xfffffffe ffffffff: OK" \
" 0x80000000 00000006 + 0x00000002 * 0xfffffffd = 0x80000000 00000000: OK" \
"!" \
" 0x00000000 00000000 + 0x00008000 * 0xffff0000 = 0xffffffff 80000000: OK" \
" 0x00000000 00000006 + 0x00008000 * 0xffff0000 = 0xffffffff 80000006: OK" \
" 0x00000000 80000000 + 0x00008000 * 0xffff0000 = 0x00000000 00000000: OK" \
" 0x7fffffff ffffffff + 0x00008000 * 0xffff0000 = 0x7fffffff 7fffffff: OK" \
" 0xffffffff ffffffff + 0x00008000 * 0xffff0000 = 0xffffffff 7fffffff: OK" \
" 0xffffffff 7fffffff + 0x00008000 * 0xffff0000 = 0xfffffffe ffffffff: OK" \
" 0x80000000 80000000 + 0x00008000 * 0xffff0000 = 0x80000000 00000000: OK" \
"!" \
"l.maci" \
" 0x00000000 00000000 + 0x00000002 * 0x00000003 = 0x00000000 00000006: OK" \
" 0x00000000 00000006 + 0x00000002 * 0x00000003 = 0x00000000 0000000c: OK" \
" 0x00000000 fffffffa + 0x00000002 * 0x00000003 = 0x00000001 00000000: OK" \
" 0x3fffffff fffffffa + 0x00000002 * 0x00000003 = 0x40000000 00000000: OK" \
" 0xffffffff fffffffa + 0x00000002 * 0x00000003 = 0x00000000 00000000: OK" \
" 0xffffffff 00000000 + 0x00000002 * 0x00000003 = 0xffffffff 00000006: OK" \
" 0x80000000 00000000 + 0x00000002 * 0x00000003 = 0x80000000 00000006: OK" \
"!" \
" 0x00000000 00000000 + 0x00010002 * 0x00007fff = 0x00000000 7ffffffe: OK" \
" 0x00000000 00000002 + 0x00010002 * 0x00007fff = 0x00000000 80000000: OK" \
" 0x00000000 80000002 + 0x00010002 * 0x00007fff = 0x00000001 00000000: OK" \
" 0x7fffffff 80000001 + 0x00010002 * 0x00007fff = 0x7fffffff ffffffff: OK" \
" 0xffffffff ffffffff + 0x00010002 * 0x00007fff = 0x00000000 7ffffffd: OK" \
" 0xffffffff 80000002 + 0x00010002 * 0x00007fff = 0x00000000 00000000: OK" \
" 0xfffffffe 80000002 + 0x00010002 * 0x00007fff = 0xffffffff 00000000: OK" \
"!" \
" 0x00000000 00000000 + 0xfffffffe * 0x0000fffd = 0x00000000 00000006: OK" \
" 0x00000000 00000006 + 0xfffffffe * 0x0000fffd = 0x00000000 0000000c: OK" \
" 0xffffffff ffffffff + 0xfffffffe * 0x0000fffd = 0x00000000 00000005: OK" \
"!" \
" 0x00000000 00000000 + 0x00000002 * 0x0000fffd = 0xffffffff fffffffa: OK" \
" 0x00000000 0000000c + 0x00000002 * 0x0000fffd = 0x00000000 00000006: OK" \
" 0x00000001 00000005 + 0x00000002 * 0x0000fffd = 0x00000000 ffffffff: OK" \
" 0x7fffffff ffffffff + 0x00000002 * 0x0000fffd = 0x7fffffff fffffff9: OK" \
" 0xffffffff ffffffff + 0x00000002 * 0x0000fffd = 0xffffffff fffffff9: OK" \
" 0xffffffff 00000005 + 0x00000002 * 0x0000fffd = 0xfffffffe ffffffff: OK" \
" 0x80000000 00000006 + 0x00000002 * 0x0000fffd = 0x80000000 00000000: OK" \
"!" \
" 0x00000000 00000000 + 0x00010000 * 0x00008000 = 0xffffffff 80000000: OK" \
" 0x00000000 00000006 + 0x00010000 * 0x00008000 = 0xffffffff 80000006: OK" \
" 0x00000000 80000000 + 0x00010000 * 0x00008000 = 0x00000000 00000000: OK" \
" 0x7fffffff ffffffff + 0x00010000 * 0x00008000 = 0x7fffffff 7fffffff: OK" \
" 0xffffffff ffffffff + 0x00010000 * 0x00008000 = 0xffffffff 7fffffff: OK" \
" 0xffffffff 7fffffff + 0x00010000 * 0x00008000 = 0xfffffffe ffffffff: OK" \
" 0x80000000 80000000 + 0x00010000 * 0x00008000 = 0x80000000 00000000: OK" \
"!" \
"l.macrc" \
" 0x00000000 00000000 + 0x00000002 * 0x00000003 = 0x00000006: OK" \
" - MACHI cleared" \
" - MACLO cleared" \
" 0x00000000 00000006 + 0x00000002 * 0x00000003 = 0x0000000c: OK" \
" - MACHI cleared" \
" - MACLO cleared" \
" 0x00000000 fffffffa + 0x00000002 * 0x00000003 = 0x00000000: OK" \
" - MACHI cleared" \
" - MACLO cleared" \
" 0x3fffffff fffffffa + 0x00000002 * 0x00000003 = 0x00000000: OK" \
" - MACHI cleared" \
" - MACLO cleared" \
" 0xffffffff fffffffa + 0x00000002 * 0x00000003 = 0x00000000: OK" \
" - MACHI cleared" \
" - MACLO cleared" \
" 0xffffffff 00000000 + 0x00000002 * 0x00000003 = 0x00000006: OK" \
" - MACHI cleared" \
" - MACLO cleared" \
" 0x80000000 00000000 + 0x00000002 * 0x00000003 = 0x00000006: OK" \
" - MACHI cleared" \
" - MACLO cleared" \
"!" \
" 0x00000000 00000000 + 0x00008001 * 0x0000fffe = 0x7ffffffe: OK" \
" - MACHI cleared" \
" - MACLO cleared" \
" 0x00000000 00000002 + 0x00008001 * 0x0000fffe = 0x80000000: OK" \
" - MACHI cleared" \
" - MACLO cleared" \
" 0x00000000 80000002 + 0x00008001 * 0x0000fffe = 0x00000000: OK" \
" - MACHI cleared" \
" - MACLO cleared" \
" 0x7fffffff 80000001 + 0x00008001 * 0x0000fffe = 0xffffffff: OK" \
" - MACHI cleared" \
" - MACLO cleared" \
" 0xffffffff ffffffff + 0x00008001 * 0x0000fffe = 0x7ffffffd: OK" \
" - MACHI cleared" \
" - MACLO cleared" \
" 0xffffffff 80000002 + 0x00008001 * 0x0000fffe = 0x00000000: OK" \
" - MACHI cleared" \
" - MACLO cleared" \
" 0xfffffffe 80000002 + 0x00008001 * 0x0000fffe = 0x00000000: OK" \
" - MACHI cleared" \
" - MACLO cleared" \
"!" \
" 0x00000000 00000000 + 0xfffffffe * 0xfffffffd = 0x00000006: OK" \
" - MACHI cleared" \
" - MACLO cleared" \
" 0x00000000 00000006 + 0xfffffffe * 0xfffffffd = 0x0000000c: OK" \
" - MACHI cleared" \
" - MACLO cleared" \
" 0xffffffff ffffffff + 0xfffffffe * 0xfffffffd = 0x00000005: OK" \
" - MACHI cleared" \
" - MACLO cleared" \
"!" \
" 0x00000000 00000000 + 0x00000002 * 0xfffffffd = 0xfffffffa: OK" \
" - MACHI cleared" \
" - MACLO cleared" \
" 0x00000000 0000000c + 0x00000002 * 0xfffffffd = 0x00000006: OK" \
" - MACHI cleared" \
" - MACLO cleared" \
" 0x00000001 00000005 + 0x00000002 * 0xfffffffd = 0xffffffff: OK" \
" - MACHI cleared" \
" - MACLO cleared" \
" 0x7fffffff ffffffff + 0x00000002 * 0xfffffffd = 0xfffffff9: OK" \
" - MACHI cleared" \
" - MACLO cleared" \
" 0xffffffff ffffffff + 0x00000002 * 0xfffffffd = 0xfffffff9: OK" \
" - MACHI cleared" \
" - MACLO cleared" \
" 0xffffffff 00000005 + 0x00000002 * 0xfffffffd = 0xffffffff: OK" \
" - MACHI cleared" \
" - MACLO cleared" \
" 0x80000000 00000006 + 0x00000002 * 0xfffffffd = 0x00000000: OK" \
" - MACHI cleared" \
" - MACLO cleared" \
"!" \
" 0x00000000 00000000 + 0x00008000 * 0xffff0000 = 0x80000000: OK" \
" - MACHI cleared" \
" - MACLO cleared" \
" 0x00000000 00000006 + 0x00008000 * 0xffff0000 = 0x80000006: OK" \
" - MACHI cleared" \
" - MACLO cleared" \
" 0x00000000 80000000 + 0x00008000 * 0xffff0000 = 0x00000000: OK" \
" - MACHI cleared" \
" - MACLO cleared" \
" 0x7fffffff ffffffff + 0x00008000 * 0xffff0000 = 0x7fffffff: OK" \
" - MACHI cleared" \
" - MACLO cleared" \
" 0xffffffff ffffffff + 0x00008000 * 0xffff0000 = 0x7fffffff: OK" \
" - MACHI cleared" \
" - MACLO cleared" \
" 0xffffffff 7fffffff + 0x00008000 * 0xffff0000 = 0xffffffff: OK" \
" - MACHI cleared" \
" - MACLO cleared" \
" 0x80000000 80000000 + 0x00008000 * 0xffff0000 = 0x00000000: OK" \
" - MACHI cleared" \
" - MACLO cleared" \
"!" \
"l.msb" \
" 0x00000000 00000000 - 0x00000002 * 0x00000003 = 0xffffffff fffffffa: OK" \
" 0x00000000 0000000c - 0x00000002 * 0x00000003 = 0x00000000 00000006: OK" \
" 0x00000001 00000000 - 0x00000002 * 0x00000003 = 0x00000000 fffffffa: OK" \
" 0x40000000 00000000 - 0x00000002 * 0x00000003 = 0x3fffffff fffffffa: OK" \
" 0xffffffff fffffffa - 0x00000002 * 0x00000003 = 0xffffffff fffffff4: OK" \
" 0xffffffff 00000005 - 0x00000002 * 0x00000003 = 0xfffffffe ffffffff: OK" \
" 0x80000000 00000006 - 0x00000002 * 0x00000003 = 0x80000000 00000000: OK" \
"!" \
" 0x00000000 00000000 - 0x00008001 * 0x0000fffe = 0xffffffff 80000002: OK" \
" 0x00000000 00000002 - 0x00008001 * 0x0000fffe = 0xffffffff 80000004: OK" \
" 0x00000000 80000002 - 0x00008001 * 0x0000fffe = 0x00000000 00000004: OK" \
" 0x7fffffff 7ffffffd - 0x00008001 * 0x0000fffe = 0x7ffffffe ffffffff: OK" \
" 0xffffffff ffffffff - 0x00008001 * 0x0000fffe = 0xffffffff 80000001: OK" \
" 0xffffffff 80000002 - 0x00008001 * 0x0000fffe = 0xffffffff 00000004: OK" \
" 0xfffffffe 80000002 - 0x00008001 * 0x0000fffe = 0xfffffffe 00000004: OK" \
"!" \
" 0x00000000 00000006 - 0xfffffffe * 0xfffffffd = 0x00000000 00000000: OK" \
" 0x00000000 0000000c - 0xfffffffe * 0xfffffffd = 0x00000000 00000006: OK" \
" 0xffffffff ffffffff - 0xfffffffe * 0xfffffffd = 0xffffffff fffffff9: OK" \
"!" \
" 0x00000000 00000000 - 0x00000002 * 0xfffffffd = 0x00000000 00000006: OK" \
" 0x00000000 00000006 - 0x00000002 * 0xfffffffd = 0x00000000 0000000c: OK" \
" 0x00000000 ffffffff - 0x00000002 * 0xfffffffd = 0x00000001 00000005: OK" \
" 0x7fffffff fffffff9 - 0x00000002 * 0xfffffffd = 0x7fffffff ffffffff: OK" \
" 0xffffffff fffffff9 - 0x00000002 * 0xfffffffd = 0xffffffff ffffffff: OK" \
" 0xfffffffe ffffffff - 0x00000002 * 0xfffffffd = 0xffffffff 00000005: OK" \
" 0x80000000 00000000 - 0x00000002 * 0xfffffffd = 0x80000000 00000006: OK" \
"!" \
" 0x00000000 00000000 - 0x00008000 * 0xffff0000 = 0x00000000 80000000: OK" \
" 0x00000000 00000006 - 0x00008000 * 0xffff0000 = 0x00000000 80000006: OK" \
" 0x00000000 80000000 - 0x00008000 * 0xffff0000 = 0x00000001 00000000: OK" \
" 0x7fffffff 7fffffff - 0x00008000 * 0xffff0000 = 0x7fffffff ffffffff: OK" \
" 0xffffffff ffffffff - 0x00008000 * 0xffff0000 = 0x00000000 7fffffff: OK" \
" 0xfffffffe ffffffff - 0x00008000 * 0xffff0000 = 0xffffffff 7fffffff: OK" \
" 0x80000000 00000000 - 0x00008000 * 0xffff0000 = 0x80000000 80000000: OK" \
"!" \
"!Test completed" \
"!report(0xdeaddead);" \
"!exit(0)"] \
"inst-set-test.cfg" "inst-set-test/is-mac-test"
 
# Run the l.mul test
run_or1ksim "mul-test" \
[list "! ** OVE flag cleared **" \
"!l.mul" \
" 0x00000002 * 0x00000003 = 0x00000006: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x00008001 * 0x0000fffe = 0x7ffffffe: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x00008000 * 0x00010000 = 0x80000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: TRUE" \
" - exception triggered: FALSE" \
" 0x00010000 * 0x00010000 = 0x00000000: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: TRUE" \
" - exception triggered: FALSE" \
" 0xfffffffe * 0xfffffffd = 0x00000006: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xffff7fff * 0xffff0002 = 0x7ffffffe: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xffff7fff * 0xffff0000 = 0x80010000: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: TRUE" \
" - exception triggered: FALSE" \
" 0xffff0000 * 0xfffeffff = 0x00010000: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: TRUE" \
" - exception triggered: FALSE" \
" 0x00000002 * 0xfffffffd = 0xfffffffa: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xffff8000 * 0x00010000 = 0x80000000: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xffff7fff * 0x00010000 = 0x7fff0000: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: TRUE" \
" - exception triggered: FALSE" \
" 0x80000000 * 0x00000001 = 0x80000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
"! ** OVE flag set **" \
" RANGE exception" \
" 0x00008000 * 0x00010000 = 0x80000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: TRUE" \
" - exception triggered: TRUE" \
" 0x00000002 * 0xfffffffd = 0xfffffffa: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" RANGE exception" \
" 0xffff7fff * 0xffff0000 = 0x80010000: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: TRUE" \
" - exception triggered: TRUE" \
"! ** OVE flag cleared **" \
"l.muli" \
" 0x00000002 * 0x0003 = 0x00000006: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x00010002 * 0x7fff = 0x7ffffffe: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x00020000 * 0x4000 = 0x80000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: TRUE" \
" - exception triggered: FALSE" \
" 0x00040000 * 0x4000 = 0x00000000: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: TRUE" \
" - exception triggered: FALSE" \
" 0xfffffffe * 0xfffd = 0x00000006: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xfffefffe * 0x8001 = 0x7ffffffe: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xfffe0000 * 0xbfff = 0x80020000: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: TRUE" \
" - exception triggered: FALSE" \
" 0xfffdfffe * 0x8000 = 0x00010000: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: TRUE" \
" - exception triggered: FALSE" \
" 0x00000002 * 0xfffd = 0xfffffffa: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x00010000 * 0x8000 = 0x80000000: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xfffdfffc * 0x4000 = 0x7fff0000: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: TRUE" \
" - exception triggered: FALSE" \
" 0x80000000 * 0x0001 = 0x80000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
"! ** OVE flag set **" \
" RANGE exception" \
" 0x00020000 * 0x4000 = 0x80000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: TRUE" \
" - exception triggered: TRUE" \
" 0xfffffffe * 0xfffd = 0x00000006: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" RANGE exception" \
" 0xfffdfffe * 0x8000 = 0x00010000: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: TRUE" \
" - exception triggered: TRUE" \
"! ** OVE flag cleared **" \
"l.mulu" \
" 0x00000002 * 0x00000003 = 0x00000006: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x00008001 * 0x0000fffe = 0x7ffffffe: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x00008000 * 0x00010000 = 0x80000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x00010000 * 0x00010000 = 0x00000000: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xfffffffe * 0xfffffffd = 0x00000006: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xffff7fff * 0xffff0002 = 0x7ffffffe: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xffff7fff * 0xffff0000 = 0x80010000: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xffff0000 * 0xfffeffff = 0x00010000: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x00000002 * 0xfffffffd = 0xfffffffa: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xffff8000 * 0x00010000 = 0x80000000: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xffff7fff * 0x00010000 = 0x7fff0000: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x80000000 * 0x00000001 = 0x80000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
"! ** OVE flag set **" \
" 0x00008000 * 0x00010000 = 0x80000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x00000002 * 0xfffffffd = 0xfffffffa: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xffff7fff * 0xffff0000 = 0x80010000: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
"! ** OVE flag cleared **" \
"!Test completed" \
"!report(0xdeaddead);" \
"!exit(0)"] \
"inst-set-test.cfg" "inst-set-test/is-mul-test"
 
# Run the l.or, and l.ori tests
run_or1ksim "or-test" \
[list "! ** OVE flag set **" \
"!l.or" \
" 0x00000000 | 0x00000000 = 0x00000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xffffffff | 0xffffffff = 0xffffffff: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xaaaaaaaa | 0x00000000 = 0xaaaaaaaa: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xaaaaaaaa | 0xaaaaaaaa = 0xaaaaaaaa: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x55555555 | 0x00000000 = 0x55555555: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x55555555 | 0x55555555 = 0x55555555: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xaaaaaaaa | 0x55555555 = 0xffffffff: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x4c70f07c | 0xb38f0f83 = 0xffffffff: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x4c70f07c | 0xc4c70f07 = 0xccf7ff7f: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 | 0x38f0f83b = 0xbbffffbb: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
"!l.ori" \
" 0x00000000 | 0x0000 = 0x00000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xffffffff | 0xffff = 0xffffffff: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xaaaaaaaa | 0x0000 = 0xaaaaaaaa: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xaaaaaaaa | 0xaaaa = 0xaaaaaaaa: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x55555555 | 0x0000 = 0x55555555: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x55555555 | 0x5555 = 0x55555555: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xaaaaaaaa | 0x5555 = 0xaaaaffff: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x4c70f07c | 0x0f83 = 0x4c70ffff: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x4c70f07c | 0x0f07 = 0x4c70ff7f: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 | 0xf83b = 0xb38fffbb: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
"!Test completed" \
"!report(0xdeaddead);" \
"!exit(0)"] \
"inst-set-test.cfg" "inst-set-test/is-or-test"
 
# Run the l.ror test
run_or1ksim "ror-test" \
[list "!l.ror" \
" 0xb38f0f83 ROR 0x00000000 = 0xb38f0f83: OK" \
" - exception triggered: FALSE" \
" 0xb38f0f83 ROR 0x00000001 = 0xd9c787c1: OK" \
" - exception triggered: FALSE" \
" 0xb38f0f83 ROR 0x00000004 = 0x3b38f0f8: OK" \
" - exception triggered: FALSE" \
" 0xb38f0f83 ROR 0x00000010 = 0x0f83b38f: OK" \
" - exception triggered: FALSE" \
" 0xb38f0f83 ROR 0x0000001f = 0x671e1f07: OK" \
" - exception triggered: FALSE" \
" 0xb38f0f83 ROR 0x00000021 = 0xd9c787c1: OK" \
" - exception triggered: FALSE" \
" 0xb38f0f83 ROR 0x00002224 = 0x3b38f0f8: OK" \
" - exception triggered: FALSE" \
" 0xb38f0f83 ROR 0x00f789f0 = 0x0f83b38f: OK" \
" - exception triggered: FALSE" \
" 0xb38f0f83 ROR 0xffffffff = 0x671e1f07: OK" \
" - exception triggered: FALSE" \
"!l.rori" \
" 0xb38f0f83 RORI 0x00 = 0xb38f0f83: OK" \
" - exception triggered: FALSE" \
" 0xb38f0f83 RORI 0x01 = 0xd9c787c1: OK" \
" - exception triggered: FALSE" \
" 0xb38f0f83 RORI 0x04 = 0x3b38f0f8: OK" \
" - exception triggered: FALSE" \
" 0xb38f0f83 RORI 0x10 = 0x0f83b38f: OK" \
" - exception triggered: FALSE" \
" 0xb38f0f83 RORI 0x1f = 0x671e1f07: OK" \
" - exception triggered: FALSE" \
" 0xb38f0f83 RORI 0x21 = 0xd9c787c1: OK" \
" - exception triggered: FALSE" \
" 0xb38f0f83 RORI 0x24 = 0x3b38f0f8: OK" \
" - exception triggered: FALSE" \
" 0xb38f0f83 RORI 0x30 = 0x0f83b38f: OK" \
" - exception triggered: FALSE" \
" 0xb38f0f83 RORI 0x3f = 0x671e1f07: OK" \
" - exception triggered: FALSE" \
"!Test completed" \
"!report(0xdeaddead);" \
"!exit(0)"] \
"inst-set-test.cfg" "inst-set-test/is-ror-test"
 
# Run the l.mfspr and l.mtspr test
run_or1ksim "spr-test" \
[list "!l.mfspr" \
" l.mfspr 0x00000000 | 0x2801: OK" \
" - exception triggered: FALSE" \
" l.mfspr 0x00002801 | 0x0000: OK" \
" - exception triggered: FALSE" \
" l.mfspr 0x00002801 | 0x2801: OK" \
" - exception triggered: FALSE" \
" l.mfspr 0x00000801 | 0x2000: OK" \
" - exception triggered: FALSE" \
" l.mfspr 0x00002000 | 0x0801: OK" \
" - exception triggered: FALSE" \
" l.mfspr 0x00002801 | 0x0001: OK" \
" - exception triggered: FALSE" \
" l.mfspr 0x00000800 | 0x2801: OK" \
" - exception triggered: FALSE" \
"!l.mtspr" \
" l.mtspr 0x00000000 | 0x2801: OK" \
" - exception triggered: FALSE" \
" l.mtspr 0x00002801 | 0x0000: OK" \
" - exception triggered: FALSE" \
" l.mtspr 0x00002801 | 0x2801: OK" \
" - exception triggered: FALSE" \
" l.mtspr 0x00000801 | 0x2000: OK" \
" - exception triggered: FALSE" \
" l.mtspr 0x00002000 | 0x0801: OK" \
" - exception triggered: FALSE" \
" l.mtspr 0x00002801 | 0x0001: OK" \
" - exception triggered: FALSE" \
" l.mtspr 0x00000800 | 0x2801: OK" \
" - exception triggered: FALSE" \
"!Test completed" \
"!report(0xdeaddead);" \
"!exit(0)"] \
"inst-set-test.cfg" "inst-set-test/is-spr-test"
 
# Run the shift tests
run_or1ksim "shift-test" \
[list "! ** OVE flag set **" \
"!l.sll" \
" 0xb38f0f83 shifted by 0x00000000 = 0xb38f0f83: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0x00000001 = 0x671e1f06: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0x00000004 = 0x38f0f830: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0x00000010 = 0x0f830000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0x0000001f = 0x80000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0x00000021 = 0x671e1f06: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0x00002224 = 0x38f0f830: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0x00f789f0 = 0x0f830000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0xffffffff = 0x80000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
"!l.slli" \
" 0xb38f0f83 shifted by 0x0000 = 0xb38f0f83: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0x0001 = 0x671e1f06: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0x0004 = 0x38f0f830: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0x0010 = 0x0f830000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0x001f = 0x80000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0x0021 = 0x671e1f06: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0x0024 = 0x38f0f830: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0x0030 = 0x0f830000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0x003f = 0x80000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
"!l.sra" \
" 0xb38f0f83 shifted by 0x00000000 = 0xb38f0f83: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0x00000001 = 0xd9c787c1: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0x00000004 = 0xfb38f0f8: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0x00000010 = 0xffffb38f: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0x0000001f = 0xffffffff: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x4c70f07c shifted by 0x00000001 = 0x2638783e: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x4c70f07c shifted by 0x00000004 = 0x04c70f07: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x4c70f07c shifted by 0x00000010 = 0x00004c70: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x4c70f07c shifted by 0x0000001f = 0x00000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0x00000021 = 0xd9c787c1: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0x00002224 = 0xfb38f0f8: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0x00f789f0 = 0xffffb38f: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0xffffffff = 0xffffffff: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x4c70f07c shifted by 0x00000021 = 0x2638783e: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x4c70f07c shifted by 0x00002224 = 0x04c70f07: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x4c70f07c shifted by 0x00f789f0 = 0x00004c70: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x4c70f07c shifted by 0xffffffff = 0x00000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
"!l.srai" \
" 0xb38f0f83 shifted by 0x0000 = 0xb38f0f83: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0x0001 = 0xd9c787c1: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0x0004 = 0xfb38f0f8: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0x0010 = 0xffffb38f: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0x001f = 0xffffffff: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x4c70f07c shifted by 0x0001 = 0x2638783e: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x4c70f07c shifted by 0x0004 = 0x04c70f07: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x4c70f07c shifted by 0x0010 = 0x00004c70: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x4c70f07c shifted by 0x001f = 0x00000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0x0021 = 0xd9c787c1: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0x0024 = 0xfb38f0f8: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0x0030 = 0xffffb38f: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0x003f = 0xffffffff: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x4c70f07c shifted by 0x0021 = 0x2638783e: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x4c70f07c shifted by 0x0024 = 0x04c70f07: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x4c70f07c shifted by 0x0030 = 0x00004c70: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x4c70f07c shifted by 0x003f = 0x00000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
"!l.srl" \
" 0xb38f0f83 shifted by 0x00000000 = 0xb38f0f83: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0x00000001 = 0x59c787c1: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0x00000004 = 0x0b38f0f8: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0x00000010 = 0x0000b38f: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0x0000001f = 0x00000001: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x4c70f07c shifted by 0x00000001 = 0x2638783e: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x4c70f07c shifted by 0x00000004 = 0x04c70f07: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x4c70f07c shifted by 0x00000010 = 0x00004c70: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x4c70f07c shifted by 0x0000001f = 0x00000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0x00000021 = 0x59c787c1: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0x00002224 = 0x0b38f0f8: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0x00f789f0 = 0x0000b38f: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0xffffffff = 0x00000001: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x4c70f07c shifted by 0x00000021 = 0x2638783e: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x4c70f07c shifted by 0x00002224 = 0x04c70f07: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x4c70f07c shifted by 0x00f789f0 = 0x00004c70: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x4c70f07c shifted by 0xffffffff = 0x00000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
"!l.srli" \
" 0xb38f0f83 shifted by 0x0000 = 0xb38f0f83: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0x0001 = 0x59c787c1: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0x0004 = 0x0b38f0f8: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0x0010 = 0x0000b38f: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0x001f = 0x00000001: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x4c70f07c shifted by 0x0001 = 0x2638783e: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x4c70f07c shifted by 0x0004 = 0x04c70f07: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x4c70f07c shifted by 0x0010 = 0x00004c70: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x4c70f07c shifted by 0x001f = 0x00000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0x0021 = 0x59c787c1: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0x0024 = 0x0b38f0f8: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0x0030 = 0x0000b38f: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 shifted by 0x003f = 0x00000001: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x4c70f07c shifted by 0x0021 = 0x2638783e: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x4c70f07c shifted by 0x0024 = 0x04c70f07: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x4c70f07c shifted by 0x0030 = 0x00004c70: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x4c70f07c shifted by 0x003f = 0x00000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
"!Test completed" \
"!report(0xdeaddead);" \
"!exit(0)"] \
"inst-set-test.cfg" "inst-set-test/is-shift-test"
 
# Run the l.sub test
run_or1ksim "sub-test" \
[list "! ** OVE flag cleared **" \
"!l.sub" \
" 0x00000003 - 0x00000002 = 0x00000001: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x00000001 - 0x00000002 = 0xffffffff: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x00000003 - 0x00000002 = 0x00000001: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xfffffffd - 0xfffffffe = 0xffffffff: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xffffffff - 0xfffffffe = 0x00000001: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x7fffffff - 0x3fffffff = 0x40000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x40000000 - 0x40000000 = 0x00000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x3fffffff - 0x40000000 = 0xffffffff: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x40000000 - 0x3fffffff = 0x00000001: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x80000000 - 0x7fffffff = 0x00000001: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: TRUE" \
" - exception triggered: FALSE" \
" 0x7fffffff - 0x80000000 = 0xffffffff: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: TRUE" \
" - exception triggered: FALSE" \
"! ** OVE flag set **" \
" RANGE exception" \
" 0x80000000 - 0x7fffffff = 0x00000001: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: TRUE" \
" - exception triggered: TRUE" \
" 0x3fffffff - 0x40000000 = 0xffffffff: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" RANGE exception" \
" 0x7fffffff - 0x80000000 = 0xffffffff: OK" \
" - carry flag set: TRUE" \
" - overflow flag set: TRUE" \
" - exception triggered: TRUE" \
"! ** OVE flag cleared **" \
"!Test completed" \
"!report(0xdeaddead);" \
"!exit(0)"] \
"inst-set-test.cfg" "inst-set-test/is-sub-test"
 
# Run the l.xor test
run_or1ksim "xor-test" \
[list "! ** OVE flag set **" \
"!l.xor" \
" 0x00000000 ^ 0x00000000 = 0x00000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xffffffff ^ 0xffffffff = 0x00000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xaaaaaaaa ^ 0x00000000 = 0xaaaaaaaa: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xaaaaaaaa ^ 0xaaaaaaaa = 0x00000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x55555555 ^ 0x00000000 = 0x55555555: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x55555555 ^ 0x55555555 = 0x00000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xaaaaaaaa ^ 0x55555555 = 0xffffffff: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x4c70f07c ^ 0xb38f0f83 = 0xffffffff: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x4c70f07c ^ 0xc4c70f07 = 0x88b7ff7b: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 ^ 0x38f0f83b = 0x8b7ff7b8: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
"!l.xori" \
" 0x00000000 ^ 0x0000 = 0x00000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xffffffff ^ 0xffff = 0x00000000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xaaaaaaaa ^ 0x0000 = 0xaaaaaaaa: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xaaaaaaaa ^ 0xaaaa = 0x55550000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x55555555 ^ 0x0000 = 0x55555555: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x55555555 ^ 0x5555 = 0x55550000: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xaaaaaaaa ^ 0x5555 = 0xaaaaffff: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x4c70f07c ^ 0x0f83 = 0x4c70ffff: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0x4c70f07c ^ 0x0f07 = 0x4c70ff7b: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
" 0xb38f0f83 ^ 0xf83b = 0x4c70f7b8: OK" \
" - carry flag set: FALSE" \
" - overflow flag set: FALSE" \
" - exception triggered: FALSE" \
"!Test completed" \
"!report(0xdeaddead);" \
"!exit(0)"] \
"inst-set-test.cfg" "inst-set-test/is-xor-test"
/Makefile.in
0,0 → 1,435
# Makefile.in generated by automake 1.11.1 from Makefile.am.
# @configure_input@
 
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
 
@SET_MAKE@
 
# Makefile.am for or1ksim testsuite DejaGNU tests
 
# Copyright (C) Marko Mlinar, 2001
# Copyright (C) Embecosm Limited, 2010
 
# Contributor Jeremy Bennett <jeremy.bennett@embecosm.com>
 
# To add new test, edit between marked areas only
 
# This file is part of OpenRISC 1000 Architectural Simulator.
 
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 3 of the License, or (at your option)
# any later version.
 
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
# more details.
 
# You should have received a copy of the GNU General Public License along
# with this program. If not, see <http:#www.gnu.org/licenses/>. */
 
# -----------------------------------------------------------------------------
# This code is commented throughout for use with Doxygen.
# -----------------------------------------------------------------------------
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
target_triplet = @target@
subdir = testsuite/or1ksim.tests
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AR = @AR@
ARFLAGS = @ARFLAGS@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BUILD_DIR = @BUILD_DIR@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
CCASFLAGS = @CCASFLAGS@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CPU_ARCH = @CPU_ARCH@
CYGPATH_W = @CYGPATH_W@
DEBUGFLAGS = @DEBUGFLAGS@
DEFS = @DEFS@
DEJAGNU = @DEJAGNU@
DEPDIR = @DEPDIR@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
GREP = @GREP@
INCLUDES = @INCLUDES@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LN_S = @LN_S@
LOCAL_CFLAGS = @LOCAL_CFLAGS@
LOCAL_DEFS = @LOCAL_DEFS@
LOCAL_LDFLAGS = @LOCAL_LDFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
POW_LIB = @POW_LIB@
RANLIB = @RANLIB@
RUNTESTDEFAULTFLAGS = @RUNTESTDEFAULTFLAGS@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
SUMVERSION = @SUMVERSION@
TERMCAP_LIB = @TERMCAP_LIB@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
subdirs = @subdirs@
sysconfdir = @sysconfdir@
target = @target@
target_alias = @target_alias@
target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
 
# Just distribute this stuff
EXTRA_DIST = acv-gpio.cfg \
acv-uart.cfg \
basic.exp \
cache.exp \
cbasic.exp \
cfg.exp \
default.cfg \
dhry.exp \
dmatest.exp \
eth0.rx \
eth.cfg \
eth.exp \
except-test.exp \
exit.exp \
ext.exp \
fbtest.exp \
flag.exp \
fp.cfg \
fp.exp \
functest.exp \
int-test.exp \
inst-set-test.cfg \
inst-set-test.exp \
kbdtest.cfg \
kbdtest.exp \
kbdtest.rx \
local-global.exp \
mem-test.exp \
mmu.cfg \
mmu.exp \
mul.exp \
mycompress.exp \
tick.exp
 
all: all-am
 
.SUFFIXES:
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
&& { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu testsuite/or1ksim.tests/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu testsuite/or1ksim.tests/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
 
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
$(top_srcdir)/configure: $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
 
mostlyclean-libtool:
-rm -f *.lo
 
clean-libtool:
-rm -rf .libs _libs
tags: TAGS
TAGS:
 
ctags: CTAGS
CTAGS:
 
 
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
check-am: all-am
check: check-am
all-am: Makefile
installdirs:
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
 
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
 
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
 
clean-generic:
 
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
 
clean-am: clean-generic clean-libtool mostlyclean-am
 
distclean: distclean-am
-rm -f Makefile
distclean-am: clean-am distclean-generic
 
dvi: dvi-am
 
dvi-am:
 
html: html-am
 
html-am:
 
info: info-am
 
info-am:
 
install-data-am:
 
install-dvi: install-dvi-am
 
install-dvi-am:
 
install-exec-am:
 
install-html: install-html-am
 
install-html-am:
 
install-info: install-info-am
 
install-info-am:
 
install-man:
 
install-pdf: install-pdf-am
 
install-pdf-am:
 
install-ps: install-ps-am
 
install-ps-am:
 
installcheck-am:
 
maintainer-clean: maintainer-clean-am
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
 
mostlyclean: mostlyclean-am
 
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
 
pdf: pdf-am
 
pdf-am:
 
ps: ps-am
 
ps-am:
 
uninstall-am:
 
.MAKE: install-am install-strip
 
.PHONY: all all-am check check-am clean clean-generic clean-libtool \
distclean distclean-generic distclean-libtool distdir dvi \
dvi-am html html-am info info-am install install-am \
install-data install-data-am install-dvi install-dvi-am \
install-exec install-exec-am install-html install-html-am \
install-info install-info-am install-man install-pdf \
install-pdf-am install-ps install-ps-am install-strip \
installcheck installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-generic \
mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
 
 
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
/mul.exp
0,0 → 1,37
# cbasic.exp. Test of multiplication using DejaGNU under automake
 
# Copyright (C) 2010 Embecosm Limited
 
# Contributor Jeremy Bennett <jeremy.bennett@embecosm.com>
 
# This file is part of OpenRISC 1000 Architectural Simulator.
 
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 3 of the License, or (at your option)
# any later version.
 
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
# more details.
 
# You should have received a copy of the GNU General Public License along
# with this program. If not, see <http:#www.gnu.org/licenses/>. */
 
# -----------------------------------------------------------------------------
# This code is commented throughout for use with Doxygen.
# -----------------------------------------------------------------------------
 
 
# Run the multiplication test
run_or1ksim "mul" \
[list "00000000" \
"cac28a17" \
"a6312f33, expected a6312f33" \
"059b8f08, expected 059b8f08" \
"00000000, expected 00000000" \
"!report(0xdeaddead);" \
"!Test succesful." \
"!exit(0)"] \
"" "mul/mul"
/inst-set-test.cfg
0,0 → 1,103
/* inst-set.cfg -- Or1ksim instruction set configuration script file
 
Copyright (C) 2001, Marko Mlinar <markom@opencores.org>
Copyright (C) 2010 Embecosm Limited
 
Contributor Marko Mlinar <markom@opencores.org>
Contributor Jeremy Bennett <jeremy.bennett@embecosm.com>
 
This file is part of OpenRISC 1000 Architectural Simulator.
 
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the Free
Software Foundation; either version 3 of the License, or (at your option)
any later version.
 
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
more details.
 
You should have received a copy of the GNU General Public License along
with this program. If not, see <http: www.gnu.org/licenses/>. */
 
/* This configuration file is particularly intended for intruction set tests
which have a single block of RAM and make no use of the memory controller
or flash memory. */
 
section memory
type = unknown /* Fastest */
name = "RAM"
baseaddr = 0x00000000
size = 0x00200000
delayr = 2
delayw = 4
end
 
section immu
enabled = 0
end
 
section dmmu
enabled = 0
end
 
section ic
enabled = 0
end
 
section dc
enabled = 0
end
 
section cpu
ver = 0x12
rev = 0x0001
superscalar = 0
hazards = 0
dependstats = 0
end
 
section bpb
enabled = 0
end
 
section debug
/* enabled = 1
rsp_enabled = 1
rsp_port = 51000*/
end
 
section sim
debug = 0
profile = 0
prof_fn = "sim.profile"
exe_log = 0
exe_log_type = software
exe_log_fn = "executed.log"
end
 
section mc
enabled = 0
end
 
section dma
enabled = 0
end
 
section ethernet
enabled = 0
end
 
section VAPI
enabled = 0
end
 
section fb
enabled = 0
end
 
section kbd
enabled = 0
end
/Makefile.am
0,0 → 1,63
# Makefile.am for or1ksim testsuite DejaGNU tests
 
# Copyright (C) Marko Mlinar, 2001
# Copyright (C) Embecosm Limited, 2010
 
# Contributor Jeremy Bennett <jeremy.bennett@embecosm.com>
 
# To add new test, edit between marked areas only
 
# This file is part of OpenRISC 1000 Architectural Simulator.
 
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 3 of the License, or (at your option)
# any later version.
 
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
# more details.
 
# You should have received a copy of the GNU General Public License along
# with this program. If not, see <http:#www.gnu.org/licenses/>. */
 
# -----------------------------------------------------------------------------
# This code is commented throughout for use with Doxygen.
# -----------------------------------------------------------------------------
 
 
# Just distribute this stuff
EXTRA_DIST = acv-gpio.cfg \
acv-uart.cfg \
basic.exp \
cache.exp \
cbasic.exp \
cfg.exp \
default.cfg \
dhry.exp \
dmatest.exp \
eth0.rx \
eth.cfg \
eth.exp \
except-test.exp \
exit.exp \
ext.exp \
fbtest.exp \
flag.exp \
fp.cfg \
fp.exp \
functest.exp \
int-test.exp \
inst-set-test.cfg \
inst-set-test.exp \
kbdtest.cfg \
kbdtest.exp \
kbdtest.rx \
local-global.exp \
mem-test.exp \
mmu.cfg \
mmu.exp \
mul.exp \
mycompress.exp \
tick.exp
Makefile.am Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: cbasic.exp =================================================================== --- cbasic.exp (nonexistent) +++ cbasic.exp (revision 135) @@ -0,0 +1,50 @@ +# cbasic.exp. Test of C program functionality using DejaGNU under automake + +# Copyright (C) 2010 Embecosm Limited + +# Contributor Jeremy Bennett + +# This file is part of OpenRISC 1000 Architectural Simulator. + +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 3 of the License, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. + +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . */ + +# ----------------------------------------------------------------------------- +# This code is commented throughout for use with Doxygen. +# ----------------------------------------------------------------------------- + + +# Run the basic C functionality test. +run_or1ksim "cbasic" \ + [list "report(0xffffffda);" \ + "report(0xffffffc5);" \ + "report(0x00006805);" \ + "report(0xffff97f9);" \ + "report(0xffff97f9);" \ + "report(0x7a55957c);" \ + "report(0x81e5e000);" \ + "report(0x00000074);" \ + "report(0x00000074);" \ + "report(0x00000074);" \ + "report(0x00000001);" \ + "report(0x00000d7c);" \ + "report(0x00000074);" \ + "report(0x00000074);" \ + "report(0x00000074);" \ + "report(0xffffffff);" \ + "report(0x00000d7a);" \ + "report(0x00000d7a);" \ + "RESULT: 0xdeaddead" \ + "!report(0xdeaddead);" \ + "!exit(0)"] \ + "" "cbasic/cbasic" Index: tick.exp =================================================================== --- tick.exp (nonexistent) +++ tick.exp (revision 135) @@ -0,0 +1,50 @@ +# tick.exp. Tick timer test using DejaGNU under automake + +# Copyright (C) 2010 Embecosm Limited + +# Contributor Jeremy Bennett + +# This file is part of OpenRISC 1000 Architectural Simulator. + +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 3 of the License, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. + +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . */ + +# ----------------------------------------------------------------------------- +# This code is commented throughout for use with Doxygen. +# ----------------------------------------------------------------------------- + + +# Run the tick timer test +run_or1ksim "tick" \ + [list "Test succeeded Tick timer not counting while disabled" \ + "Test succeeded Tick timer kept counting during continuous mode" \ + "Test succeeded Tick timer continued counting after restart" \ + "Test succeeded Tick timer counter stops when disabled" \ + "Test succeeded Timer stopped after match" \ + "Test succeeded Timer still indicating one-shot mode after match" \ + "Test succeeded One-shot timer stopped" \ + "Test succeeded No more interrupts after one-shot timer" \ + "Test succeeded IP flag not set after one-shot timer" \ + "Test succeeded Perptual timer kept counting" \ + "Test succeeded No more interrupts during perpetual timer count" \ + "Test succeeded IP flag not set during perpetual timer count" \ + "Test succeeded No interrupt when tick timer disabled" \ + "Test succeeded TTCR reset while counting" \ + "Test succeeded Timer started counting from high value" \ + "Test succeeded Auto-restart wrapped round" \ + "Test succeeded Continuous mode wrapped round" \ + "Test succeeded Spurious interrupts handled with matching period" \ + "Test succeeded Spurious interrupts handled after TTCR and TTMR" \ + "!report(0xdeaddead);" \ + "!exit(0)"] \ + "" "tick/tick" Index: mem-test.exp =================================================================== --- mem-test.exp (nonexistent) +++ mem-test.exp (revision 135) @@ -0,0 +1,46 @@ +# mem-test.exp. Simple memory test using DejaGNU under automake + +# Copyright (C) 2010 Embecosm Limited + +# Contributor Jeremy Bennett + +# This file is part of OpenRISC 1000 Architectural Simulator. + +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 3 of the License, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. + +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . */ + +# ----------------------------------------------------------------------------- +# This code is commented throughout for use with Doxygen. +# ----------------------------------------------------------------------------- + + +# Run the simple memory test. +run_or1ksim "mem-test" \ + [list "report(0x12345678);" \ + "report(0x00001234);" \ + "report(0x00005678);" \ + "report(0x00000012);" \ + "report(0x00000034);" \ + "report(0x00000056);" \ + "report(0x00000078);" \ + "report(0xdeaddead);" \ + "report(0x5678dead);" \ + "report(0x56781234);" \ + "report(0xdd781234);" \ + "report(0xddcc1234);" \ + "report(0xddccbb34);" \ + "report(0xddccbbaa);" \ + "report(0xda25e544);" \ + "report(0xdeaddead);" \ + "!exit(0)"] \ + "" "mem-test/mem-test" Index: functest.exp =================================================================== --- functest.exp (nonexistent) +++ functest.exp (revision 135) @@ -0,0 +1,42 @@ +# functest.exp. Function parameter test using DejaGNU under automake + +# Copyright (C) 2010 Embecosm Limited + +# Contributor Jeremy Bennett + +# This file is part of OpenRISC 1000 Architectural Simulator. + +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 3 of the License, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. + +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . */ + +# ----------------------------------------------------------------------------- +# This code is commented throughout for use with Doxygen. +# ----------------------------------------------------------------------------- + + +# Run the Function parameter test. +run_or1ksim "functest" \ + [list "0" \ + "2" \ + "4" \ + "6" \ + "8" \ + "10" \ + "12" \ + "14" \ + "16" \ + "18" \ + "report(0x00000014);" \ + "!report(0xdeaddead);" \ + "!exit(0)"] \ + "" "functest/functest" Index: kbdtest.exp =================================================================== --- kbdtest.exp (nonexistent) +++ kbdtest.exp (revision 135) @@ -0,0 +1,59 @@ +# kbdtest.exp. Keyboard test using DejaGNU under automake + +# Copyright (C) 2010 Embecosm Limited + +# Contributor Jeremy Bennett + +# This file is part of OpenRISC 1000 Architectural Simulator. + +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 3 of the License, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. + +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . */ + +# ----------------------------------------------------------------------------- +# This code is commented throughout for use with Doxygen. +# ----------------------------------------------------------------------------- + + +# Run the keyboard test. Note the need for double quoting of "backslash" +# characters. +run_or1ksim "kbdtest" \ + [list "!Reading from keyboard." \ + "Enabling interrupts." \ + "Received 'T'" \ + "Received 'e'" \ + "Received '3'" \ + "Received '+'" \ + "Received '='" \ + "Received '-'" \ + "Received '<'" \ + "Received '/'" \ + "Received '.'" \ + "Received '\\'" \ + "Received '|'" \ + "Received '\"'" \ + "Received '\''" \ + "Received '`'" \ + "Received '}'" \ + "Received ']'" \ + "Received: TAB" \ + "Received: SPACE" \ + "Received '!'" \ + "Received '%'" \ + "Received '^'" \ + "Received '&'" \ + "Received ')'" \ + "Received '*'" \ + "Received: ENTER" \ + "!report(0xdeaddead);" \ + "!exit(0)"] \ + "kbdtest.cfg" "kbdtest/kbdtest" Index: ext.exp =================================================================== --- ext.exp (nonexistent) +++ ext.exp (revision 135) @@ -0,0 +1,135 @@ +# ext.exp. l.ext{b,h}{s,z} instruction test using DejaGNU under automake + +# Copyright (C) 2010 Embecosm Limited + +# Contributor Jeremy Bennett + +# This file is part of OpenRISC 1000 Architectural Simulator. + +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 3 of the License, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. + +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . */ + +# ----------------------------------------------------------------------------- +# This code is commented throughout for use with Doxygen. +# ----------------------------------------------------------------------------- + + +# Run the l.ext test +run_or1ksim "ext" \ + [list "report(0x0000007f);" \ + "report(0x0000007f);" \ + "report(0x00000053);" \ + "report(0x00000053);" \ + "report(0x0000ff53);" \ + "report(0x00000053);" \ + "report(0x00001234);" \ + "report(0x00000034);" \ + "report(0x000000ff);" \ + "report(0xffffffff);" \ + "report(0x00000080);" \ + "report(0xffffff80);" \ + "report(0x0000ff80);" \ + "report(0xffffff80);" \ + "report(0x00007f80);" \ + "report(0xffffff80);" \ + "report(0x00007fff);" \ + "report(0xffffffff);" \ + "report(0x0000007f);" \ + "report(0x0000007f);" \ + "report(0x00000053);" \ + "report(0x00000053);" \ + "report(0x0000ff53);" \ + "report(0x00000053);" \ + "report(0x00001234);" \ + "report(0x00000034);" \ + "report(0x000000ff);" \ + "report(0x000000ff);" \ + "report(0x00000080);" \ + "report(0x00000080);" \ + "report(0x0000ff80);" \ + "report(0x00000080);" \ + "report(0x00007f80);" \ + "report(0x00000080);" \ + "report(0x00007fff);" \ + "report(0x000000ff);" \ + "report(0x00007fff);" \ + "report(0x00007fff);" \ + "report(0x00005233);" \ + "report(0x00005233);" \ + "report(0xffff2f53);" \ + "report(0x00002f53);" \ + "report(0x12345678);" \ + "report(0x00005678);" \ + "report(0x0000ffff);" \ + "report(0xffffffff);" \ + "report(0x00008000);" \ + "report(0xffff8000);" \ + "report(0x0000ff80);" \ + "report(0xffffff80);" \ + "report(0x80008000);" \ + "report(0xffff8000);" \ + "report(0x7fffffff);" \ + "report(0xffffffff);" \ + "report(0x00007fff);" \ + "report(0x00007fff);" \ + "report(0x00005233);" \ + "report(0x00005233);" \ + "report(0xffff2f53);" \ + "report(0x00002f53);" \ + "report(0x12345678);" \ + "report(0x00005678);" \ + "report(0x0000ffff);" \ + "report(0x0000ffff);" \ + "report(0x00008000);" \ + "report(0x00008000);" \ + "report(0x0000ff80);" \ + "report(0x0000ff80);" \ + "report(0x80008000);" \ + "report(0x00008000);" \ + "report(0x7fffffff);" \ + "report(0x0000ffff);" \ + "report(0xffffffff);" \ + "report(0xffffffff);" \ + "report(0x7fffffff);" \ + "report(0x7fffffff);" \ + "report(0x7fff7fff);" \ + "report(0x7fff7fff);" \ + "report(0xffff7f7f);" \ + "report(0xffff7f7f);" \ + "report(0xffffff7f);" \ + "report(0xffffff7f);" \ + "report(0xffff7fff);" \ + "report(0xffff7fff);" \ + "report(0x7fff7f7f);" \ + "report(0x7fff7f7f);" \ + "report(0x12345678);" \ + "report(0x12345678);" \ + "report(0xffffffff);" \ + "report(0xffffffff);" \ + "report(0x7fffffff);" \ + "report(0x7fffffff);" \ + "report(0x7fff7fff);" \ + "report(0x7fff7fff);" \ + "report(0xffff7f7f);" \ + "report(0xffff7f7f);" \ + "report(0xffffff7f);" \ + "report(0xffffff7f);" \ + "report(0xffff7fff);" \ + "report(0xffff7fff);" \ + "report(0x7fff7f7f);" \ + "report(0x7fff7f7f);" \ + "report(0x12345678);" \ + "report(0x12345678);" \ + "!report(0xdeaddead);" \ + "!exit(0)"] \ + "" "ext/ext" Index: mycompress.exp =================================================================== --- mycompress.exp (nonexistent) +++ mycompress.exp (revision 135) @@ -0,0 +1,1037 @@ +# mycompress.exp. Test of C program functionality using DejaGNU under automake + +# Copyright (C) 2010 Embecosm Limited + +# Contributor Jeremy Bennett + +# This file is part of OpenRISC 1000 Architectural Simulator. + +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 3 of the License, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. + +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . */ + +# ----------------------------------------------------------------------------- +# This code is commented throughout for use with Doxygen. +# ----------------------------------------------------------------------------- + + +# Run the basic C functionality test. +run_or1ksim "mycompress" \ + [list "!main: bytes_out 3... hsize 5003" \ + "!main: hshift 4..." \ + "!main: bytes_out 3..." \ + "!main: hsize_reg 5003..." \ + "!main: before compress 1..." \ + "!main: compressing 1..." \ + "!main: compressing 2..." \ + "!main: compressing 3..." \ + "!main: compressing 4..." \ + "!main: compressing 5..." \ + "!main: compressing 6..." \ + "!main: compressing 7..." \ + "!main: compressing 8..." \ + "!main: compressing 9..." \ + "!main: compressing 10..." \ + "!main: compressing 11..." \ + "!main: compressing 12..." \ + "!main: compressing 13..." \ + "!main: compressing 14..." \ + "!main: compressing 15..." \ + "!main: compressing 16..." \ + "!main: compressing 17..." \ + "!main: compressing 18..." \ + "!main: compressing 19..." \ + "!main: compressing 20..." \ + "!main: compressing 21..." \ + "!main: compressing 22..." \ + "!main: compressing 23..." \ + "!main: compressing 24..." \ + "!main: compressing 25..." \ + "!main: compressing 26..." \ + "!main: compressing 27..." \ + "!main: compressing 28..." \ + "!main: compressing 29..." \ + "!main: compressing 30..." \ + "!main: compressing 31..." \ + "!main: compressing 32..." \ + "!main: compressing 33..." \ + "!main: compressing 34..." \ + "!main: compressing 35..." \ + "!main: compressing 36..." \ + "!main: compressing 37..." \ + "!main: compressing 38..." \ + "!main: compressing 39..." \ + "!main: compressing 40..." \ + "!main: compressing 41..." \ + "!main: compressing 42..." \ + "!main: compressing 43..." \ + "!main: compressing 44..." \ + "!main: compressing 45..." \ + "!main: compressing 46..." \ + "!main: compressing 47..." \ + "!main: compressing 48..." \ + "!main: compressing 49..." \ + "!main: compressing 50..." \ + "!main: compressing 51..." \ + "!main: compressing 52..." \ + "!main: compressing 53..." \ + "!main: compressing 54..." \ + "!main: compressing 55..." \ + "!main: compressing 56..." \ + "!main: compressing 57..." \ + "!main: compressing 58..." \ + "!main: compressing 59..." \ + "!main: compressing 60..." \ + "!main: compressing 61..." \ + "!main: compressing 62..." \ + "!main: compressing 63..." \ + "!main: compressing 64..." \ + "!main: compressing 65..." \ + "!main: compressing 66..." \ + "!main: compressing 67..." \ + "!main: compressing 68..." \ + "!main: compressing 69..." \ + "!main: compressing 70..." \ + "!main: compressing 71..." \ + "!main: compressing 72..." \ + "!main: compressing 73..." \ + "!main: compressing 74..." \ + "!main: compressing 75..." \ + "!main: compressing 76..." \ + "!main: compressing 77..." \ + "!main: compressing 78..." \ + "!main: compressing 79..." \ + "!main: compressing 80..." \ + "!main: compressing 81..." \ + "!main: compressing 82..." \ + "!main: compressing 83..." \ + "!main: compressing 84..." \ + "!main: compressing 85..." \ + "!main: compressing 86..." \ + "!main: compressing 87..." \ + "!main: compressing 88..." \ + "!main: compressing 89..." \ + "!main: compressing 90..." \ + "!main: compressing 91..." \ + "!main: compressing 92..." \ + "!main: compressing 93..." \ + "!main: compressing 94..." \ + "!main: compressing 95..." \ + "!main: compressing 96..." \ + "!main: compressing 97..." \ + "!main: compressing 98..." \ + "!main: compressing 99..." \ + "!main: compressing 100..." \ + "!main: compressing 101..." \ + "!main: compressing 102..." \ + "!main: compressing 103..." \ + "!main: compressing 104..." \ + "!main: compressing 105..." \ + "!main: compressing 106..." \ + "!main: compressing 107..." \ + "!main: compressing 108..." \ + "!main: compressing 109..." \ + "!main: compressing 110..." \ + "!main: compressing 111..." \ + "!main: compressing 112..." \ + "!main: compressing 113..." \ + "!main: compressing 114..." \ + "!main: compressing 115..." \ + "!main: compressing 116..." \ + "!main: compressing 117..." \ + "!main: compressing 118..." \ + "!main: compressing 119..." \ + "!main: compressing 120..." \ + "!main: compressing 121..." \ + "!main: compressing 122..." \ + "!main: compressing 123..." \ + "!main: compressing 124..." \ + "!main: compressing 125..." \ + "!main: compressing 126..." \ + "!main: compressing 127..." \ + "!main: compressing 128..." \ + "!main: compressing 129..." \ + "!main: compressing 130..." \ + "!main: compressing 131..." \ + "!main: compressing 132..." \ + "!main: compressing 133..." \ + "!main: compressing 134..." \ + "!main: compressing 135..." \ + "!main: compressing 136..." \ + "!main: compressing 137..." \ + "!main: compressing 138..." \ + "!main: compressing 139..." \ + "!main: compressing 140..." \ + "!main: compressing 141..." \ + "!main: compressing 142..." \ + "!main: compressing 143..." \ + "!main: compressing 144..." \ + "!main: compressing 145..." \ + "!main: compressing 146..." \ + "!main: compressing 147..." \ + "!main: compressing 148..." \ + "!main: compressing 149..." \ + "!main: compressing 150..." \ + "!main: compressing 151..." \ + "!main: compressing 152..." \ + "!main: compressing 153..." \ + "!main: compressing 154..." \ + "!main: compressing 155..." \ + "!main: compressing 156..." \ + "!main: compressing 157..." \ + "!main: compressing 158..." \ + "!main: compressing 159..." \ + "!main: compressing 160..." \ + "!main: compressing 161..." \ + "!main: compressing 162..." \ + "!main: compressing 163..." \ + "!main: compressing 164..." \ + "!main: compressing 165..." \ + "!main: compressing 166..." \ + "!main: compressing 167..." \ + "!main: compressing 168..." \ + "!main: compressing 169..." \ + "!main: compressing 170..." \ + "!main: compressing 171..." \ + "!main: compressing 172..." \ + "!main: compressing 173..." \ + "!main: compressing 174..." \ + "!main: compressing 175..." \ + "!main: compressing 176..." \ + "!main: compressing 177..." \ + "!main: compressing 178..." \ + "!main: compressing 179..." \ + "!main: compressing 180..." \ + "!main: compressing 181..." \ + "!main: compressing 182..." \ + "!main: compressing 183..." \ + "!main: compressing 184..." \ + "!main: compressing 185..." \ + "!main: compressing 186..." \ + "!main: compressing 187..." \ + "!main: compressing 188..." \ + "!main: compressing 189..." \ + "!main: compressing 190..." \ + "!main: compressing 191..." \ + "!main: compressing 192..." \ + "!main: compressing 193..." \ + "!main: compressing 194..." \ + "!main: compressing 195..." \ + "!main: compressing 196..." \ + "!main: compressing 197..." \ + "!main: compressing 198..." \ + "!main: compressing 199..." \ + "!main: compressing 200..." \ + "!main: compressing 201..." \ + "!main: compressing 202..." \ + "!main: compressing 203..." \ + "!main: compressing 204..." \ + "!main: compressing 205..." \ + "!main: compressing 206..." \ + "!main: compressing 207..." \ + "!main: compressing 208..." \ + "!main: compressing 209..." \ + "!main: compressing 210..." \ + "!main: compressing 211..." \ + "!main: compressing 212..." \ + "!main: compressing 213..." \ + "!main: compressing 214..." \ + "!main: compressing 215..." \ + "!main: compressing 216..." \ + "!main: compressing 217..." \ + "!main: compressing 218..." \ + "!main: compressing 219..." \ + "!main: compressing 220..." \ + "!main: compressing 221..." \ + "!main: compressing 222..." \ + "!main: compressing 223..." \ + "!main: compressing 224..." \ + "!main: compressing 225..." \ + "!main: compressing 226..." \ + "!main: compressing 227..." \ + "!main: compressing 228..." \ + "!main: compressing 229..." \ + "!main: compressing 230..." \ + "!main: compressing 231..." \ + "!main: compressing 232..." \ + "!main: compressing 233..." \ + "!main: compressing 234..." \ + "!main: compressing 235..." \ + "!main: compressing 236..." \ + "!main: compressing 237..." \ + "!main: compressing 238..." \ + "!main: compressing 239..." \ + "!main: compressing 240..." \ + "!main: compressing 241..." \ + "!main: compressing 242..." \ + "!main: compressing 243..." \ + "!main: compressing 244..." \ + "!main: compressing 245..." \ + "!main: compressing 246..." \ + "!main: compressing 247..." \ + "!main: compressing 248..." \ + "!main: compressing 249..." \ + "!main: compressing 250..." \ + "!main: compressing 251..." \ + "!main: compressing 252..." \ + "!main: compressing 253..." \ + "!main: compressing 254..." \ + "!main: compressing 255..." \ + "!main: compressing 256..." \ + "!main: compressing 257..." \ + "!main: compressing 258..." \ + "!main: compressing 259..." \ + "!main: compressing 260..." \ + "!main: compressing 261..." \ + "!main: compressing 262..." \ + "!main: compressing 263..." \ + "!main: compressing 264..." \ + "!main: compressing 265..." \ + "!main: compressing 266..." \ + "!main: compressing 267..." \ + "!main: compressing 268..." \ + "!main: compressing 269..." \ + "!main: compressing 270..." \ + "!main: compressing 271..." \ + "!main: compressing 272..." \ + "!main: compressing 273..." \ + "!main: compressing 274..." \ + "!main: compressing 275..." \ + "!main: compressing 276..." \ + "!main: compressing 277..." \ + "!main: compressing 278..." \ + "!main: compressing 279..." \ + "!main: compressing 280..." \ + "!main: compressing 281..." \ + "!main: compressing 282..." \ + "!main: compressing 283..." \ + "!main: compressing 284..." \ + "!main: compressing 285..." \ + "!main: compressing 286..." \ + "!main: compressing 287..." \ + "!main: compressing 288..." \ + "!main: compressing 289..." \ + "!main: compressing 290..." \ + "!main: compressing 291..." \ + "!main: compressing 292..." \ + "!main: compressing 293..." \ + "!main: compressing 294..." \ + "!main: compressing 295..." \ + "!main: compressing 296..." \ + "!main: compressing 297..." \ + "!main: compressing 298..." \ + "!main: compressing 299..." \ + "!main: compressing 300..." \ + "!main: compressing 301..." \ + "!main: compressing 302..." \ + "!main: compressing 303..." \ + "!main: compressing 304..." \ + "!main: compressing 305..." \ + "!main: compressing 306..." \ + "!main: compressing 307..." \ + "!main: compressing 308..." \ + "!main: compressing 309..." \ + "!main: compressing 310..." \ + "!main: compressing 311..." \ + "!main: compressing 312..." \ + "!main: compressing 313..." \ + "!main: compressing 314..." \ + "!main: compressing 315..." \ + "!main: compressing 316..." \ + "!main: compressing 317..." \ + "!main: compressing 318..." \ + "!main: compressing 319..." \ + "!main: compressing 320..." \ + "!main: compressing 321..." \ + "!main: compressing 322..." \ + "!main: compressing 323..." \ + "!main: compressing 324..." \ + "!main: compressing 325..." \ + "!main: compressing 326..." \ + "!main: compressing 327..." \ + "!main: compressing 328..." \ + "!main: compressing 329..." \ + "!main: compressing 330..." \ + "!main: compressing 331..." \ + "!main: compressing 332..." \ + "!main: compressing 333..." \ + "!main: compressing 334..." \ + "!main: compressing 335..." \ + "!main: compressing 336..." \ + "!main: compressing 337..." \ + "!main: compressing 338..." \ + "!main: compressing 339..." \ + "!main: compressing 340..." \ + "!main: compressing 341..." \ + "!main: compressing 342..." \ + "!main: compressing 343..." \ + "!main: compressing 344..." \ + "!main: compressing 345..." \ + "!main: compressing 346..." \ + "!main: compressing 347..." \ + "!main: compressing 348..." \ + "!main: compressing 349..." \ + "!main: compressing 350..." \ + "!main: compressing 351..." \ + "!main: compressing 352..." \ + "!main: compressing 353..." \ + "!main: compressing 354..." \ + "!main: compressing 355..." \ + "!main: compressing 356..." \ + "!main: compressing 357..." \ + "!main: compressing 358..." \ + "!main: compressing 359..." \ + "!main: compressing 360..." \ + "!main: compressing 361..." \ + "!main: compressing 362..." \ + "!main: compressing 363..." \ + "!main: compressing 364..." \ + "!main: compressing 365..." \ + "!main: compressing 366..." \ + "!main: compressing 367..." \ + "!main: compressing 368..." \ + "!main: compressing 369..." \ + "!main: compressing 370..." \ + "!main: compressing 371..." \ + "!main: compressing 372..." \ + "!main: compressing 373..." \ + "!main: compressing 374..." \ + "!main: compressing 375..." \ + "!main: compressing 376..." \ + "!main: compressing 377..." \ + "!main: compressing 378..." \ + "!main: compressing 379..." \ + "!main: compressing 380..." \ + "!main: compressing 381..." \ + "!main: compressing 382..." \ + "!main: compressing 383..." \ + "!main: compressing 384..." \ + "!main: compressing 385..." \ + "!main: compressing 386..." \ + "!main: compressing 387..." \ + "!main: compressing 388..." \ + "!main: compressing 389..." \ + "!main: compressing 390..." \ + "!main: compressing 391..." \ + "!main: compressing 392..." \ + "!main: compressing 393..." \ + "!main: compressing 394..." \ + "!main: compressing 395..." \ + "!main: compressing 396..." \ + "!main: compressing 397..." \ + "!main: compressing 398..." \ + "!main: compressing 399..." \ + "!main: compressing 400..." \ + "!main: compressing 401..." \ + "!main: compressing 402..." \ + "!main: compressing 403..." \ + "!main: compressing 404..." \ + "!main: compressing 405..." \ + "!main: compressing 406..." \ + "!main: compressing 407..." \ + "!main: compressing 408..." \ + "!main: compressing 409..." \ + "!main: compressing 410..." \ + "!main: compressing 411..." \ + "!main: compressing 412..." \ + "!main: compressing 413..." \ + "!main: compressing 414..." \ + "!main: compressing 415..." \ + "!main: compressing 416..." \ + "!main: compressing 417..." \ + "!main: compressing 418..." \ + "!main: compressing 419..." \ + "!main: compressing 420..." \ + "!main: compressing 421..." \ + "!main: compressing 422..." \ + "!main: compressing 423..." \ + "!main: compressing 424..." \ + "!main: compressing 425..." \ + "!main: compressing 426..." \ + "!main: compressing 427..." \ + "!main: compressing 428..." \ + "!main: compressing 429..." \ + "!main: compressing 430..." \ + "!main: compressing 431..." \ + "!main: compressing 432..." \ + "!main: compressing 433..." \ + "!main: compressing 434..." \ + "!main: compressing 435..." \ + "!main: compressing 436..." \ + "!main: compressing 437..." \ + "!main: compressing 438..." \ + "!main: compressing 439..." \ + "!main: compressing 440..." \ + "!main: compressing 441..." \ + "!main: compressing 442..." \ + "!main: compressing 443..." \ + "!main: compressing 444..." \ + "!main: compressing 445..." \ + "!main: compressing 446..." \ + "!main: compressing 447..." \ + "!main: compressing 448..." \ + "!main: compressing 449..." \ + "!main: compressing 450..." \ + "!main: compressing 451..." \ + "!main: compressing 452..." \ + "!main: compressing 453..." \ + "!main: compressing 454..." \ + "!main: compressing 455..." \ + "!main: compressing 456..." \ + "!main: compressing 457..." \ + "!main: compressing 458..." \ + "!main: compressing 459..." \ + "!main: compressing 460..." \ + "!main: compressing 461..." \ + "!main: compressing 462..." \ + "!main: compressing 463..." \ + "!main: compressing 464..." \ + "!main: compressing 465..." \ + "!main: compressing 466..." \ + "!main: compressing 467..." \ + "!main: compressing 468..." \ + "!main: compressing 469..." \ + "!main: compressing 470..." \ + "!main: compressing 471..." \ + "!main: compressing 472..." \ + "!main: compressing 473..." \ + "!main: compressing 474..." \ + "!main: compressing 475..." \ + "!main: compressing 476..." \ + "!main: compressing 477..." \ + "!main: compressing 478..." \ + "!main: compressing 479..." \ + "!main: compressing 480..." \ + "!main: compressing 481..." \ + "!main: compressing 482..." \ + "!main: compressing 483..." \ + "!main: compressing 484..." \ + "!main: compressing 485..." \ + "!main: compressing 486..." \ + "!main: compressing 487..." \ + "!main: compressing 488..." \ + "!main: compressing 489..." \ + "!main: compressing 490..." \ + "!main: compressing 491..." \ + "!main: compressing 492..." \ + "!main: compressing 493..." \ + "!main: compressing 494..." \ + "!main: compressing 495..." \ + "!main: compressing 496..." \ + "!main: compressing 497..." \ + "!main: compressing 498..." \ + "!main: compressing 499..." \ + "!main: compressing 500..." \ + "!main: compressing 501..." \ + "!main: compressing 502..." \ + "!main: compressing 503..." \ + "!main: compressing 504..." \ + "!main: compressing 505..." \ + "!main: compressing 506..." \ + "!main: compressing 507..." \ + "!main: compressing 508..." \ + "!main: compressing 509..." \ + "!main: compressing 510..." \ + "!main: compressing 511..." \ + "!main: compressing 512..." \ + "!main: compressing 513..." \ + "!main: compressing 514..." \ + "!main: compressing 515..." \ + "!main: compressing 516..." \ + "!main: compressing 517..." \ + "!main: compressing 518..." \ + "!main: compressing 519..." \ + "!main: compressing 520..." \ + "!main: compressing 521..." \ + "!main: compressing 522..." \ + "!main: compressing 523..." \ + "!main: compressing 524..." \ + "!main: compressing 525..." \ + "!main: compressing 526..." \ + "!main: compressing 527..." \ + "!main: compressing 528..." \ + "!main: compressing 529..." \ + "!main: compressing 530..." \ + "!main: compressing 531..." \ + "!main: compressing 532..." \ + "!main: compressing 533..." \ + "!main: compressing 534..." \ + "!main: compressing 535..." \ + "!main: compressing 536..." \ + "!main: compressing 537..." \ + "!main: compressing 538..." \ + "!main: compressing 539..." \ + "!main: compressing 540..." \ + "!main: compressing 541..." \ + "!main: compressing 542..." \ + "!main: compressing 543..." \ + "!main: compressing 544..." \ + "!main: compressing 545..." \ + "!main: compressing 546..." \ + "!main: compressing 547..." \ + "!main: compressing 548..." \ + "!main: compressing 549..." \ + "!main: compressing 550..." \ + "!main: compressing 551..." \ + "!main: compressing 552..." \ + "!main: compressing 553..." \ + "!main: compressing 554..." \ + "!main: compressing 555..." \ + "!main: compressing 556..." \ + "!main: compressing 557..." \ + "!main: compressing 558..." \ + "!main: compressing 559..." \ + "!main: compressing 560..." \ + "!main: compressing 561..." \ + "!main: compressing 562..." \ + "!main: compressing 563..." \ + "!main: compressing 564..." \ + "!main: compressing 565..." \ + "!main: compressing 566..." \ + "!main: compressing 567..." \ + "!main: compressing 568..." \ + "!main: compressing 569..." \ + "!main: compressing 570..." \ + "!main: compressing 571..." \ + "!main: compressing 572..." \ + "!main: compressing 573..." \ + "!main: compressing 574..." \ + "!main: compressing 575..." \ + "!main: compressing 576..." \ + "!main: compressing 577..." \ + "!main: compressing 578..." \ + "!main: compressing 579..." \ + "!main: compressing 580..." \ + "!main: compressing 581..." \ + "!main: compressing 582..." \ + "!main: compressing 583..." \ + "!main: compressing 584..." \ + "!main: compressing 585..." \ + "!main: compressing 586..." \ + "!main: compressing 587..." \ + "!main: compressing 588..." \ + "!main: compressing 589..." \ + "!main: compressing 590..." \ + "!main: compressing 591..." \ + "!main: compressing 592..." \ + "!main: compressing 593..." \ + "!main: compressing 594..." \ + "!main: compressing 595..." \ + "!main: compressing 596..." \ + "!main: compressing 597..." \ + "!main: compressing 598..." \ + "!main: compressing 599..." \ + "!main: compressing 600..." \ + "!main: compressing 601..." \ + "!main: compressing 602..." \ + "!main: compressing 603..." \ + "!main: compressing 604..." \ + "!main: compressing 605..." \ + "!main: compressing 606..." \ + "!main: compressing 607..." \ + "!main: compressing 608..." \ + "!main: compressing 609..." \ + "!main: compressing 610..." \ + "!main: compressing 611..." \ + "!main: compressing 612..." \ + "!main: compressing 613..." \ + "!main: compressing 614..." \ + "!main: compressing 615..." \ + "!main: compressing 616..." \ + "!main: compressing 617..." \ + "!main: compressing 618..." \ + "!main: compressing 619..." \ + "!main: compressing 620..." \ + "!main: compressing 621..." \ + "!main: compressing 622..." \ + "!main: compressing 623..." \ + "!main: compressing 624..." \ + "!main: compressing 625..." \ + "!main: compressing 626..." \ + "!main: compressing 627..." \ + "!main: compressing 628..." \ + "!main: compressing 629..." \ + "!main: compressing 630..." \ + "!main: compressing 631..." \ + "!main: compressing 632..." \ + "!main: compressing 633..." \ + "!main: compressing 634..." \ + "!main: compressing 635..." \ + "!main: compressing 636..." \ + "!main: compressing 637..." \ + "!main: compressing 638..." \ + "!main: compressing 639..." \ + "!main: compressing 640..." \ + "!main: compressing 641..." \ + "!main: compressing 642..." \ + "!main: compressing 643..." \ + "!main: compressing 644..." \ + "!main: compressing 645..." \ + "!main: compressing 646..." \ + "!main: compressing 647..." \ + "!main: compressing 648..." \ + "!main: compressing 649..." \ + "!main: compressing 650..." \ + "!main: compressing 651..." \ + "!main: compressing 652..." \ + "!main: compressing 653..." \ + "!main: compressing 654..." \ + "!main: compressing 655..." \ + "!main: compressing 656..." \ + "!main: compressing 657..." \ + "!main: compressing 658..." \ + "!main: compressing 659..." \ + "!main: compressing 660..." \ + "!main: compressing 661..." \ + "!main: compressing 662..." \ + "!main: compressing 663..." \ + "!main: compressing 664..." \ + "!main: compressing 665..." \ + "!main: compressing 666..." \ + "!main: compressing 667..." \ + "!main: compressing 668..." \ + "!main: compressing 669..." \ + "!main: compressing 670..." \ + "!main: compressing 671..." \ + "!main: compressing 672..." \ + "!main: compressing 673..." \ + "!main: compressing 674..." \ + "!main: compressing 675..." \ + "!main: compressing 676..." \ + "!main: compressing 677..." \ + "!main: compressing 678..." \ + "!main: compressing 679..." \ + "!main: compressing 680..." \ + "!main: compressing 681..." \ + "!main: compressing 682..." \ + "!main: compressing 683..." \ + "!main: compressing 684..." \ + "!main: compressing 685..." \ + "!main: compressing 686..." \ + "!main: compressing 687..." \ + "!main: compressing 688..." \ + "!main: compressing 689..." \ + "!main: compressing 690..." \ + "!main: compressing 691..." \ + "!main: compressing 692..." \ + "!main: compressing 693..." \ + "!main: compressing 694..." \ + "!main: compressing 695..." \ + "!main: compressing 696..." \ + "!main: compressing 697..." \ + "!main: compressing 698..." \ + "!main: compressing 699..." \ + "!main: compressing 700..." \ + "!main: compressing 701..." \ + "!main: compressing 702..." \ + "!main: compressing 703..." \ + "!main: compressing 704..." \ + "!main: compressing 705..." \ + "!main: compressing 706..." \ + "!main: compressing 707..." \ + "!main: compressing 708..." \ + "!main: compressing 709..." \ + "!main: compressing 710..." \ + "!main: compressing 711..." \ + "!main: compressing 712..." \ + "!main: compressing 713..." \ + "!main: compressing 714..." \ + "!main: compressing 715..." \ + "!main: compressing 716..." \ + "!main: compressing 717..." \ + "!main: compressing 718..." \ + "!main: compressing 719..." \ + "!main: compressing 720..." \ + "!main: compressing 721..." \ + "!main: compressing 722..." \ + "!main: compressing 723..." \ + "!main: compressing 724..." \ + "!main: compressing 725..." \ + "!main: compressing 726..." \ + "!main: compressing 727..." \ + "!main: compressing 728..." \ + "!main: compressing 729..." \ + "!main: compressing 730..." \ + "!main: compressing 731..." \ + "!main: compressing 732..." \ + "!main: compressing 733..." \ + "!main: compressing 734..." \ + "!main: compressing 735..." \ + "!main: compressing 736..." \ + "!main: compressing 737..." \ + "!main: compressing 738..." \ + "!main: compressing 739..." \ + "!main: compressing 740..." \ + "!main: compressing 741..." \ + "!main: compressing 742..." \ + "!main: compressing 743..." \ + "!main: compressing 744..." \ + "!main: compressing 745..." \ + "!main: compressing 746..." \ + "!main: compressing 747..." \ + "!main: compressing 748..." \ + "!main: compressing 749..." \ + "!main: compressing 750..." \ + "!main: compressing 751..." \ + "!main: compressing 752..." \ + "!main: compressing 753..." \ + "!main: compressing 754..." \ + "!main: compressing 755..." \ + "!main: compressing 756..." \ + "!main: compressing 757..." \ + "!main: compressing 758..." \ + "!main: compressing 759..." \ + "!main: compressing 760..." \ + "!main: compressing 761..." \ + "!main: compressing 762..." \ + "!main: compressing 763..." \ + "!main: compressing 764..." \ + "!main: compressing 765..." \ + "!main: compressing 766..." \ + "!main: compressing 767..." \ + "!main: compressing 768..." \ + "!main: compressing 769..." \ + "!main: compressing 770..." \ + "!main: compressing 771..." \ + "!main: compressing 772..." \ + "!main: compressing 773..." \ + "!main: compressing 774..." \ + "!main: compressing 775..." \ + "!main: compressing 776..." \ + "!main: compressing 777..." \ + "!main: compressing 778..." \ + "!main: compressing 779..." \ + "!main: compressing 780..." \ + "!main: compressing 781..." \ + "!main: compressing 782..." \ + "!main: compressing 783..." \ + "!main: compressing 784..." \ + "!main: compressing 785..." \ + "!main: compressing 786..." \ + "!main: compressing 787..." \ + "!main: compressing 788..." \ + "!main: compressing 789..." \ + "!main: compressing 790..." \ + "!main: compressing 791..." \ + "!main: compressing 792..." \ + "!main: compressing 793..." \ + "!main: compressing 794..." \ + "!main: compressing 795..." \ + "!main: compressing 796..." \ + "!main: compressing 797..." \ + "!main: compressing 798..." \ + "!main: compressing 799..." \ + "!main: compressing 800..." \ + "!main: compressing 801..." \ + "!main: compressing 802..." \ + "!main: compressing 803..." \ + "!main: compressing 804..." \ + "!main: compressing 805..." \ + "!main: compressing 806..." \ + "!main: compressing 807..." \ + "!main: compressing 808..." \ + "!main: compressing 809..." \ + "!main: compressing 810..." \ + "!main: compressing 811..." \ + "!main: compressing 812..." \ + "!main: compressing 813..." \ + "!main: compressing 814..." \ + "!main: compressing 815..." \ + "!main: compressing 816..." \ + "!main: compressing 817..." \ + "!main: compressing 818..." \ + "!main: compressing 819..." \ + "!main: compressing 820..." \ + "!main: compressing 821..." \ + "!main: compressing 822..." \ + "!main: compressing 823..." \ + "!main: compressing 824..." \ + "!main: compressing 825..." \ + "!main: compressing 826..." \ + "!main: compressing 827..." \ + "!main: compressing 828..." \ + "!main: compressing 829..." \ + "!main: compressing 830..." \ + "!main: compressing 831..." \ + "!main: compressing 832..." \ + "!main: compressing 833..." \ + "!main: compressing 834..." \ + "!main: compressing 835..." \ + "!main: compressing 836..." \ + "!main: compressing 837..." \ + "!main: compressing 838..." \ + "!main: compressing 839..." \ + "!main: compressing 840..." \ + "!main: compressing 841..." \ + "!main: compressing 842..." \ + "!main: compressing 843..." \ + "!main: compressing 844..." \ + "!main: compressing 845..." \ + "!main: compressing 846..." \ + "!main: compressing 847..." \ + "!main: compressing 848..." \ + "!main: compressing 849..." \ + "!main: compressing 850..." \ + "!main: compressing 851..." \ + "!main: compressing 852..." \ + "!main: compressing 853..." \ + "!main: compressing 854..." \ + "!main: compressing 855..." \ + "!main: compressing 856..." \ + "!main: compressing 857..." \ + "!main: compressing 858..." \ + "!main: compressing 859..." \ + "!main: compressing 860..." \ + "!main: compressing 861..." \ + "!main: compressing 862..." \ + "!main: compressing 863..." \ + "!main: compressing 864..." \ + "!main: compressing 865..." \ + "!main: compressing 866..." \ + "!main: compressing 867..." \ + "!main: compressing 868..." \ + "!main: compressing 869..." \ + "!main: compressing 870..." \ + "!main: compressing 871..." \ + "!main: compressing 872..." \ + "!main: compressing 873..." \ + "!main: compressing 874..." \ + "!main: compressing 875..." \ + "!main: compressing 876..." \ + "!main: compressing 877..." \ + "!main: compressing 878..." \ + "!main: compressing 879..." \ + "!main: compressing 880..." \ + "!main: compressing 881..." \ + "!main: compressing 882..." \ + "!main: compressing 883..." \ + "!main: compressing 884..." \ + "!main: compressing 885..." \ + "!main: compressing 886..." \ + "!main: compressing 887..." \ + "!main: compressing 888..." \ + "!main: compressing 889..." \ + "!main: compressing 890..." \ + "!main: compressing 891..." \ + "!main: compressing 892..." \ + "!main: compressing 893..." \ + "!main: compressing 894..." \ + "!main: compressing 895..." \ + "!main: compressing 896..." \ + "!main: compressing 897..." \ + "!main: compressing 898..." \ + "!main: compressing 899..." \ + "!main: compressing 900..." \ + "!main: compressing 901..." \ + "!main: compressing 902..." \ + "!main: compressing 903..." \ + "!main: compressing 904..." \ + "!main: compressing 905..." \ + "!main: compressing 906..." \ + "!main: compressing 907..." \ + "!main: compressing 908..." \ + "!main: compressing 909..." \ + "!main: compressing 910..." \ + "!main: compressing 911..." \ + "!main: compressing 912..." \ + "!main: compressing 913..." \ + "!main: compressing 914..." \ + "!main: compressing 915..." \ + "!main: compressing 916..." \ + "!main: compressing 917..." \ + "!main: compressing 918..." \ + "!main: compressing 919..." \ + "!main: compressing 920..." \ + "!main: compressing 921..." \ + "!main: compressing 922..." \ + "!main: compressing 923..." \ + "!main: compressing 924..." \ + "!main: compressing 925..." \ + "!main: compressing 926..." \ + "!main: compressing 927..." \ + "!main: compressing 928..." \ + "!main: compressing 929..." \ + "!main: compressing 930..." \ + "!main: compressing 931..." \ + "!main: compressing 932..." \ + "!main: compressing 933..." \ + "!main: compressing 934..." \ + "!main: compressing 935..." \ + "!main: compressing 936..." \ + "!main: compressing 937..." \ + "!main: compressing 938..." \ + "!main: compressing 939..." \ + "!main: compressing 940..." \ + "!main: compressing 941..." \ + "!main: compressing 942..." \ + "!main: compressing 943..." \ + "!main: compressing 944..." \ + "!main: compressing 945..." \ + "!main: compressing 946..." \ + "!main: compressing 947..." \ + "!main: compressing 948..." \ + "!main: compressing 949..." \ + "!main: compressing 950..." \ + "!main: compressing 951..." \ + "!main: compressing 952..." \ + "!main: compressing 953..." \ + "!main: compressing 954..." \ + "!main: compressing 955..." \ + "!main: compressing 956..." \ + "!main: compressing 957..." \ + "!main: compressing 958..." \ + "!main: compressing 959..." \ + "!main: compressing 960..." \ + "!main: compressing 961..." \ + "!main: compressing 962..." \ + "!main: compressing 963..." \ + "!main: compressing 964..." \ + "!main: compressing 965..." \ + "!main: compressing 966..." \ + "!main: compressing 967..." \ + "!main: compressing 968..." \ + "!main: compressing 969..." \ + "!main: compressing 970..." \ + "!main: compressing 971..." \ + "!main: compressing 972..." \ + "!main: compressing 973..." \ + "!main: compressing 974..." \ + "!main: compressing 975..." \ + "!main: compressing 976..." \ + "!main: compressing 977..." \ + "!main: compressing 978..." \ + "!main: compressing 979..." \ + "!main: compressing 980..." \ + "!main: compressing 981..." \ + "!main: compressing 982..." \ + "!main: compressing 983..." \ + "!main: compressing 984..." \ + "!main: compressing 985..." \ + "!main: compressing 986..." \ + "!main: compressing 987..." \ + "!main: compressing 988..." \ + "!main: compressing 989..." \ + "!main: compressing 990..." \ + "!main: compressing 991..." \ + "!main: compressing 992..." \ + "!main: compressing 993..." \ + "!main: compressing 994..." \ + "!main: compressing 995..." \ + "!main: compressing 996..." \ + "!main: compressing 997..." \ + "!main: compressing 998..." \ + "!main: compressing 999..." \ + "!main: output..." \ + "!main: end..." \ + "report(0xdeaddead);" \ + "!exit(0)"] \ + "" "mycompress/mycompress" Index: cache.exp =================================================================== --- cache.exp (nonexistent) +++ cache.exp (revision 135) @@ -0,0 +1,35 @@ +# Cache CPU test using DejaGNU under automake + +# Copyright (C) 2010 Embecosm Limited + +# Contributor Jeremy Bennett + +# This file is part of OpenRISC 1000 Architectural Simulator. + +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 3 of the License, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. + +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . */ + +# ----------------------------------------------------------------------------- +# This code is commented throughout for use with Doxygen. +# ----------------------------------------------------------------------------- + + +# Run the cache test +run_or1ksim "cache" \ + [list "report(0xdeaddead);" \ + "report(0xdeaddead);" \ + "report(0xdeaddead);" \ + "report(0xdeaddead);" \ + "report(0xdeaddead);" \ + "!exit(0)"] \ + "" "cache/cache" Index: fp.exp =================================================================== --- fp.exp (nonexistent) +++ fp.exp (revision 135) @@ -0,0 +1,384 @@ +# fp.exp. Floating point tests using DejaGNU under automake + +# Copyright (C) 2010 Embecosm Limited + +# Contributor Jeremy Bennett + +# This file is part of OpenRISC 1000 Architectural Simulator. + +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 3 of the License, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. + +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . */ + +# ----------------------------------------------------------------------------- +# This code is commented throughout for use with Doxygen. +# ----------------------------------------------------------------------------- + + +# Run the Frame buffer test +run_or1ksim "fp" \ + [list "!lf.add.s" \ + " 1.0 + 0.0 = 1.0: OK" \ + " 1.0 + -0.0 = 1.0: OK" \ + " 1.0 + 1.0 = 2.0: OK" \ + " 2.0 + 1.0 = 3.0: OK" \ + " 1.5 + 1.5 = 3.0: OK" \ + " 2.0 + -1.0 = 1.0: OK" \ + " 1.0 + -2.0 = -1.0: OK" \ + " 1.0 + -1.0 = +0.0: OK" \ + " 1.0 + +inf = +inf: OK" \ + " 1.0 + -inf = -inf: OK" \ + " +inf + +inf = +inf: OK" \ + " +inf + -inf = -NaN: OK" \ + " -inf + -inf = -inf: OK" \ + " 1.0 + +NaN = +NaN: OK" \ + " 1.0 + -NaN = -NaN: OK" \ + " +NaN + +NaN = +NaN: OK" \ + " +NaN + -NaN = +NaN: OK" \ + " -NaN + -NaN = -NaN: OK" \ + " 1.0 + +sNaN = +qNaN: OK" \ + " 1.0 + -sNaN = -qNaN: OK" \ + " 1.0 * 2^127 + 1.0 * 2^127 = +inf: OK" \ + " -1.0 * 2^127 + -1.0 * 2^127 = -inf: OK" \ + "!lf.cust1.s" \ + " l.cust1: OK" \ + "!lf.div.s" \ + " 1.0 / 1.0 = 1.0: OK" \ + " 2.0 / 1.0 = 2.0: OK" \ + " 3.0 / 2.0 = 1.5: OK" \ + " +0.0 / 1.0 = +0.0: OK" \ + " -0.0 / 1.0 = -0.0: OK" \ + " -3.0 / 2.0 = -1.5: OK" \ + " 3.0 / -2.0 = -1.5: OK" \ + " -3.0 / -2.0 = -1.5: OK" \ + " 1.0 / +0.0 = +inf: OK" \ + " 1.0 / -0.0 = +inf: OK" \ + " -1.0 / +0.0 = -inf: OK" \ + " -1.0 / -0.0 = -inf: OK" \ + " 1.0 / +inf = +0.0: OK" \ + " 1.0 / -inf = -0.0: OK" \ + " -1.0 / +inf = -0.0: OK" \ + " -1.0 / -inf = +0.0: OK" \ + " +inf / 1.0 = +inf: OK" \ + " -inf / 1.0 = -inf: OK" \ + " +inf / -1.0 = -inf: OK" \ + " -inf / -1.0 = +inf: OK" \ + " +inf / +inf = -NaN: OK" \ + " +inf / -inf = -NaN: OK" \ + " -inf / +inf = -NaN: OK" \ + " -inf / -inf = -NaN: OK" \ + " 1.0 / +NaN = +NaN: OK" \ + " 1.0 / -NaN = -NaN: OK" \ + " -1.0 / +NaN = +NaN: OK" \ + " -1.0 / -NaN = 1NaN: OK" \ + " +NaN / 1.0 = +NaN: OK" \ + " -NaN / 1.0 = -NaN: OK" \ + " +NaN / -1.0 = +NaN: OK" \ + " -NaN / -1.0 = -NaN: OK" \ + " +NaN / +NaN = +NaN: OK" \ + " +NaN / -NaN = +NaN: OK" \ + " -NaN / +NaN = -NaN: OK" \ + " -NaN / -NaN = -NaN: OK" \ + " 1.0 * 2^127 / 1.0 * 2^-129 = +inf: OK" \ + " -1.0 * 2^127 / 1.0 * 2^-129 = -inf: OK" \ + " 1.0 * 2^127 / -1.0 * 2^-129 = -inf: OK" \ + " -1.0 * 2^127 / -1.0 * 2^-129 = +inf: OK" \ + " 1.0 * 2^-129 / 1.0 * 2^127 = +0.0: OK" \ + " -1.0 * 2^-129 / 1.0 * 2^127 = -0.0: OK" \ + " 1.0 * 2^-129 / -1.0 * 2^127 = -0.0: OK" \ + " -1.0 * 2^-129 / -1.0 * 2^127 = +0.0: OK" \ + "!lf.ftoi.s" \ + " (int) 1.0 = 1: OK" \ + " (int) -1.0 = -1: OK" \ + " (int) +0.0 = 0: OK" \ + " (int) -0.0 = 0: OK" \ + " (int) 1.5 = 1: OK" \ + " (int) -1.5 = -1: OK" \ + " (int) 1.0 * 2^126 = -2^31: OK" \ + " (int) -1.0 * 2^126 = -2^31: OK" \ + " (int) 1.0 * 2^-129 = 0: OK" \ + " (int) -1.0 * 2^-129 = 0: OK" \ + " (int) +inf = -2^31: OK" \ + " (int) -inf = -2^31: OK" \ + " (int) +NaN = -2^31: OK" \ + " (int) -NaN = -2^31: OK" \ + "!lf.itof.s" \ + " (float) 1.0 = 1: OK" \ + " (float) -1.0 = -1: OK" \ + " (float) +0.0 = 0: OK" \ + " (float) -0.0 = 0: OK" \ + "!lf.madd.s" \ + " 1.0 + 1.0 * 1.0 = 2.0: OK" \ + " 0.5 + 1.0 * 1.0 = 1.5: OK" \ + " 1.0 + 0.5 * 2.0 = 2.0: OK" \ + " 1.0 + -1.0 * 2.0 = -1.0: OK" \ + " -2.0 + 2.0 * 0.5 = -1.0: OK" \ + " -0.5 + -0.5 * 3.0 = -2.0: OK" \ + " +0.0 + +0.0 * +0.0 = +0.0: OK" \ + " -0.0 + +0.0 * -0.0 = +0.0: OK" \ + " -0.0 + -0.0 * -0.0 = +0.0: OK" \ + " -1.0 + 1.0 * 1.0 = +0.0: OK" \ + " +inf + 1.0 * 1.0 = +inf: OK" \ + " 1.0 + 1.0 * +inf = +inf: OK" \ + " +inf + 1.0 * +inf = +inf: OK" \ + " -inf + 1.0 * 1.0 = -inf: OK" \ + " +NaN + 1.0 * 1.0 = +NaN: OK" \ + " 1.0 + 1.0 * +NaN = +NaN: OK" \ + " +NaN + 1.0 * +NaN = +NaN: OK" \ + " -NaN + 1.0 * 1.0 = -NaN: OK" \ + " 1.0 * 2^127 + 1.0 * 2^127 * 1.0 = +inf: OK" \ + " 1.0 * 2^127 + 1.0 * 2^127 * 1.0 * 2^-129 = +inf: OK" \ + "!lf.mul.s" \ + " 1.0 * 1.0 = 1.0: OK" \ + " 3.0 * 1.0 = 3.0: OK" \ + " 1.5 * 2.0 = 3.0: OK" \ + " -1.0 * 2.0 = -2.0: OK" \ + " -1.0 * -2.0 = +2.0: OK" \ + " +0.0 * 2.0 = +0.0: OK" \ + " +0.0 * 2.0 = +0.0: OK" \ + " +inf * -2.0 = -inf: OK" \ + " +NaN * 2.0 = +NaN: OK" \ + " 1.0 * 2^127 * 1.0 * 2^127 = +inf: OK" \ + " -1.0 * 2^127 * 1.0 * 2^127 = -inf: OK" \ + " 1.0 * 2^127 * -1.0 * 2^127 = -inf: OK" \ + " -1.0 * 2^127 * -1.0 * 2^127 = +inf: OK" \ + "!lf.rem.s" \ + " 1.0 % 1.0 = +0.0: OK" \ + " 1.0 % 2.0 = 1.0: OK" \ + " 1.5 % 2.0 = 1.5: OK" \ + " 2.0 % 1.5 = 0.5: OK" \ + " 3.0 % 1.5 = +0.0: OK" \ + " -3.0 % 2.0 = -1.0: OK" \ + " -3.0 % 2.0 = -1.0: OK" \ + " 3.0 % -2.0 = 1.0: OK" \ + " -3.0 % -2.0 = -1.0: OK" \ + " +0.0 % 2.0 = +0.0: OK" \ + " -0.0 % 2.0 = -0.0: OK" \ + " 2.0 % +0.0 = -NaN: OK" \ + " -2.0 % +0.0 = -NaN: OK" \ + " 2.0 % -0.0 = -NaN: OK" \ + " 2.0 % +inf = 2.0: OK" \ + " +inf % 2.0 = -NaN: OK" \ + " 2.0 % +NaN = +NaN: OK" \ + " +NaN % 2.0 = +NaN: OK" \ + " 1.0 * 2^127 % 1.0 * 2^-129 = +0.0: OK" \ + " 1.0 * 2^-129 % 1.0 * 2^127 = +0.0: OK" \ + "!lf.sfeq.s" \ + " 1.0 == 1.0: TRUE" \ + " 1.0 == 2.0: FALSE" \ + " 1.5 == 1.5: TRUE" \ + " 1.5 == 0.5: FALSE" \ + " -1.5 == -1.5: TRUE" \ + " 1.5 == -1.5: FALSE" \ + " +0.0 == +0.0: TRUE" \ + " -0.0 == -0.0: TRUE" \ + " +0.0 == -0.0: TRUE" \ + " 1.0 == +inf: FALSE" \ + " +inf == +inf: TRUE" \ + " -inf == -inf: TRUE" \ + " +inf == -inf: FALSE" \ + " 1.0 == +NaN: FALSE" \ + " +NaN == +NaN: FALSE" \ + " -NaN == -NaN: FALSE" \ + " +NaN == -NaN: FALSE" \ + " 1.0 * 2^-129 == 1.0 * 2^-129: TRUE" \ + " 1.0 * 2^-129 == 1.0 * 2^-128: FALSE" \ + " 1.0 * 2^126 == 1.0 * 2^-128: FALSE" \ + "!lf.sfge.s" \ + " 1.0 >= 1.0: TRUE" \ + " 2.0 >= 1.0: TRUE" \ + " 1.0 >= 2.0: FALSE" \ + " 1.5 >= 1.5: TRUE" \ + " 1.5 >= 0.5: TRUE" \ + " 0.5 >= 1.5: FALSE" \ + " -1.5 >= -1.5: TRUE" \ + " -1.5 >= -0.5: FALSE" \ + " -0.5 >= -1.5: TRUE" \ + " 1.5 >= -1.5: TRUE" \ + " -1.5 >= 1.5: FALSE" \ + " +0.0 >= +0.0: TRUE" \ + " -0.0 >= -0.0: TRUE" \ + " +0.0 >= -0.0: TRUE" \ + " -0.0 >= +0.0: TRUE" \ + " 1.0 >= +inf: FALSE" \ + " +inf >= 1.0: TRUE" \ + " 1.0 >= -inf: TRUE" \ + " -inf >= 1.0: FALSE" \ + " +inf >= +inf: TRUE" \ + " -inf >= -inf: TRUE" \ + " +inf >= -inf: TRUE" \ + " -inf >= +inf: FALSE" \ + " 1.0 >= +NaN: FALSE" \ + " +NaN >= +NaN: FALSE" \ + " -NaN >= -NaN: FALSE" \ + " +NaN >= -NaN: FALSE" \ + " -NaN >= +NaN: FALSE" \ + " 1.0 * 2^-129 >= 1.0 * 2^-129: TRUE" \ + " 1.0 * 2^-129 >= 1.0 * 2^-128: FALSE" \ + " 1.0 * 2^-128 >= 1.0 * 2^-129: TRUE" \ + " 1.0 * 2^126 >= 1.0 * 2^-128: TRUE" \ + " 1.0 * 2^-128 >= 1.0 * 2^126: FALSE" \ + "!lf.sfgt.s" \ + " 1.0 > 1.0: FALSE" \ + " 2.0 > 1.0: TRUE" \ + " 1.0 > 2.0: FALSE" \ + " 1.5 > 1.5: FALSE" \ + " 1.5 > 0.5: TRUE" \ + " 0.5 > 1.5: FALSE" \ + " -1.5 > -1.5: FALSE" \ + " -1.5 > -0.5: FALSE" \ + " -0.5 > -1.5: TRUE" \ + " 1.5 > -1.5: TRUE" \ + " -1.5 > 1.5: FALSE" \ + " +0.0 > +0.0: FALSE" \ + " -0.0 > -0.0: FALSE" \ + " +0.0 > -0.0: FALSE" \ + " -0.0 > +0.0: FALSE" \ + " 1.0 > +inf: FALSE" \ + " +inf > 1.0: TRUE" \ + " 1.0 > -inf: TRUE" \ + " -inf > 1.0: FALSE" \ + " +inf > +inf: FALSE" \ + " -inf > -inf: FALSE" \ + " +inf > -inf: TRUE" \ + " -inf > +inf: FALSE" \ + " 1.0 > +NaN: FALSE" \ + " +NaN > +NaN: FALSE" \ + " -NaN > -NaN: FALSE" \ + " +NaN > -NaN: FALSE" \ + " -NaN > +NaN: FALSE" \ + " 1.0 * 2^-129 > 1.0 * 2^-129: FALSE" \ + " 1.0 * 2^-129 > 1.0 * 2^-128: FALSE" \ + " 1.0 * 2^-128 > 1.0 * 2^-129: TRUE" \ + " 1.0 * 2^126 > 1.0 * 2^-128: TRUE" \ + " 1.0 * 2^-128 > 1.0 * 2^126: FALSE" \ + "!lf.sfle.s" \ + " 1.0 <= 1.0: TRUE" \ + " 2.0 <= 1.0: FALSE" \ + " 1.0 <= 2.0: TRUE" \ + " 1.5 <= 1.5: TRUE" \ + " 1.5 <= 0.5: FALSE" \ + " 0.5 <= 1.5: TRUE" \ + " -1.5 <= -1.5: TRUE" \ + " -1.5 <= -0.5: TRUE" \ + " -0.5 <= -1.5: FALSE" \ + " 1.5 <= -1.5: FALSE" \ + " -1.5 <= 1.5: TRUE" \ + " +0.0 <= +0.0: TRUE" \ + " -0.0 <= -0.0: TRUE" \ + " +0.0 <= -0.0: TRUE" \ + " -0.0 <= +0.0: TRUE" \ + " 1.0 <= +inf: TRUE" \ + " +inf <= 1.0: FALSE" \ + " 1.0 <= -inf: FALSE" \ + " -inf <= 1.0: TRUE" \ + " +inf <= +inf: TRUE" \ + " -inf <= -inf: TRUE" \ + " +inf <= -inf: FALSE" \ + " -inf <= +inf: TRUE" \ + " 1.0 <= +NaN: FALSE" \ + " +NaN <= +NaN: FALSE" \ + " -NaN <= -NaN: FALSE" \ + " +NaN <= -NaN: FALSE" \ + " -NaN <= +NaN: FALSE" \ + " 1.0 * 2^-129 <= 1.0 * 2^-129: TRUE" \ + " 1.0 * 2^-129 <= 1.0 * 2^-128: TRUE" \ + " 1.0 * 2^-128 <= 1.0 * 2^-129: FALSE" \ + " 1.0 * 2^126 <= 1.0 * 2^-128: FALSE" \ + " 1.0 * 2^-128 <= 1.0 * 2^126: TRUE" \ + "!lf.sflt.s" \ + " 1.0 < 1.0: FALSE" \ + " 2.0 < 1.0: FALSE" \ + " 1.0 < 2.0: TRUE" \ + " 1.5 < 1.5: FALSE" \ + " 1.5 < 0.5: FALSE" \ + " 0.5 < 1.5: TRUE" \ + " -1.5 < -1.5: FALSE" \ + " -1.5 < -0.5: TRUE" \ + " -0.5 < -1.5: FALSE" \ + " 1.5 < -1.5: FALSE" \ + " -1.5 < 1.5: TRUE" \ + " +0.0 < +0.0: FALSE" \ + " -0.0 < -0.0: FALSE" \ + " +0.0 < -0.0: FALSE" \ + " -0.0 < +0.0: FALSE" \ + " 1.0 < +inf: TRUE" \ + " +inf < 1.0: FALSE" \ + " 1.0 < -inf: FALSE" \ + " -inf < 1.0: TRUE" \ + " +inf < +inf: FALSE" \ + " -inf < -inf: FALSE" \ + " +inf < -inf: FALSE" \ + " -inf < +inf: TRUE" \ + " 1.0 < +NaN: FALSE" \ + " +NaN < +NaN: FALSE" \ + " -NaN < -NaN: FALSE" \ + " +NaN < -NaN: FALSE" \ + " -NaN < +NaN: FALSE" \ + " 1.0 * 2^-129 < 1.0 * 2^-129: FALSE" \ + " 1.0 * 2^-129 < 1.0 * 2^-128: TRUE" \ + " 1.0 * 2^-128 < 1.0 * 2^-129: FALSE" \ + " 1.0 * 2^126 < 1.0 * 2^-128: FALSE" \ + " 1.0 * 2^-128 < 1.0 * 2^126: TRUE" \ + "!lf.sfne.s" \ + " 1.0 != 1.0: FALSE" \ + " 1.0 != 2.0: TRUE" \ + " 1.5 != 1.5: FALSE" \ + " 1.5 != 0.5: TRUE" \ + " -1.5 != -1.5: FALSE" \ + " 1.5 != -1.5: TRUE" \ + " +0.0 != +0.0: FALSE" \ + " -0.0 != -0.0: FALSE" \ + " +0.0 != -0.0: FALSE" \ + " 1.0 != +inf: TRUE" \ + " +inf != +inf: FALSE" \ + " -inf != -inf: FALSE" \ + " +inf != -inf: TRUE" \ + " 1.0 != +NaN: TRUE" \ + " +NaN != +NaN: TRUE" \ + " -NaN != -NaN: TRUE" \ + " +NaN != -NaN: TRUE" \ + " 1.0 * 2^-129 != 1.0 * 2^-129: FALSE" \ + " 1.0 * 2^-129 != 1.0 * 2^-128: TRUE" \ + " 1.0 * 2^126 != 1.0 * 2^-128: TRUE" \ + "!lf.sub.s" \ + " 1.0 - 0.0 = 1.0: OK" \ + " 1.0 - -0.0 = 1.0: OK" \ + " 1.0 - 1.0 = +0.0: OK" \ + " 2.0 - 1.0 = 1.0: OK" \ + " 1.5 - 1.5 = +0.0: OK" \ + " 1.5 - 0.5 = 1.0: OK" \ + " 1.5 - 1.5 = 0.5: OK" \ + " 2.0 - -1.0 = 3.0: OK" \ + " 1.0 - -2.0 = 3.0: OK" \ + " 1.0 - -1.0 = 2.0: OK" \ + " -1.0 - 2.0 = -3.0: OK" \ + " 1.0 - 2.0 = -1.0: OK" \ + " -1.0 - -1.0 = 0.0: OK" \ + " 1.0 - +inf = -inf: OK" \ + " 1.0 - -inf = +inf: OK" \ + " +inf - +inf = -NaN: OK" \ + " +inf - -inf = +inf: OK" \ + " -inf - -inf = -NaN: OK" \ + " 1.0 - +NaN = +NaN: OK" \ + " 1.0 - -NaN = -NaN: OK" \ + " +NaN - +NaN = +NaN: OK" \ + " +NaN - -NaN = +NaN: OK" \ + " -NaN - -NaN = -NaN: OK" \ + " 1.0 - +sNaN = +qNaN: OK" \ + " 1.0 - -sNaN = -qNaN: OK" \ + " -1.0 * 2^127 - 1.0 * 2^127 = +inf: OK" \ + " 1.0 * 2^127 - -1.0 * 2^127 = -inf: OK" \ + "!Test completed" \ + "!report(0xdeaddead);" \ + "!exit(0)"] \ + "fp.cfg" "fp/fp" Index: fbtest.exp =================================================================== --- fbtest.exp (nonexistent) +++ fbtest.exp (revision 135) @@ -0,0 +1,37 @@ +# fbtest.exp. Frame buffer test using DejaGNU under automake + +# Copyright (C) 2010 Embecosm Limited + +# Contributor Jeremy Bennett + +# This file is part of OpenRISC 1000 Architectural Simulator. + +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 3 of the License, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. + +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . */ + +# ----------------------------------------------------------------------------- +# This code is commented throughout for use with Doxygen. +# ----------------------------------------------------------------------------- + + +# This takes time. Timeout 30 seconds is more suitable than the default +set old_timeout $timeout +set timeout 30 + +# Run the Frame buffer test +run_or1ksim "fbtest" \ + [list "report(0xdeaddead);" \ + "!exit(0)"] \ + "" "fbtest/fbtest" + +set timeout $old_timeout Index: local-global.exp =================================================================== --- local-global.exp (nonexistent) +++ local-global.exp (revision 135) @@ -0,0 +1,31 @@ +# local-global.exp. Test of local and global vars using DejaGNU under automake + +# Copyright (C) 2010 Embecosm Limited + +# Contributor Jeremy Bennett + +# This file is part of OpenRISC 1000 Architectural Simulator. + +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 3 of the License, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. + +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . */ + +# ----------------------------------------------------------------------------- +# This code is commented throughout for use with Doxygen. +# ----------------------------------------------------------------------------- + + +# Run the local and global test. +run_or1ksim "local-global" \ + [list "report(0xdeaddead);" \ + "!exit(0)"] \ + "" "local-global/local-global" Index: mmu.exp =================================================================== --- mmu.exp (nonexistent) +++ mmu.exp (revision 135) @@ -0,0 +1,141 @@ +# MMU test using DejaGNU under automake + +# Copyright (C) 2010 Embecosm Limited + +# Contributor Jeremy Bennett + +# This file is part of OpenRISC 1000 Architectural Simulator. + +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 3 of the License, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. + +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . */ + +# ----------------------------------------------------------------------------- +# This code is commented throughout for use with Doxygen. +# ----------------------------------------------------------------------------- + + +# Run the Ethernet test +run_or1ksim "mmu" \ + [list "ea = 0017bffc set = 61 way = 0" \ + "tlbtr = 0017b3c0 dtlb_val = 000003c0" \ + "ea = 0017e000 set = 63 way = 0" \ + "tlbtr = 0017e3c0 dtlb_val = 000003c0" \ + "ea = 0027bffc set = 61 way = 0" \ + "tlbtr = 0017b3c0 dtlb_val = 000003c0" \ + "ea = 0027e000 set = 63 way = 0" \ + "tlbtr = 0017e3c0 dtlb_val = 000003c0" \ + "ea = 0047bffc set = 61 way = 0" \ + "tlbtr = 0017b3c0 dtlb_val = 000003c0" \ + "ea = 0047e000 set = 63 way = 0" \ + "tlbtr = 0017e3c0 dtlb_val = 000003c0" \ + "ea = 0087bffc set = 61 way = 0" \ + "tlbtr = 0017b3c0 dtlb_val = 000003c0" \ + "ea = 0087e000 set = 63 way = 0" \ + "tlbtr = 0017e3c0 dtlb_val = 000003c0" \ + "ea = 0107bffc set = 61 way = 0" \ + "tlbtr = 0017b3c0 dtlb_val = 000003c0" \ + "ea = 0107e000 set = 63 way = 0" \ + "tlbtr = 0017e3c0 dtlb_val = 000003c0" \ + "ea = 0207bffc set = 61 way = 0" \ + "tlbtr = 0017b3c0 dtlb_val = 000003c0" \ + "ea = 0207e000 set = 63 way = 0" \ + "tlbtr = 0017e3c0 dtlb_val = 000003c0" \ + "ea = 0407bffc set = 61 way = 0" \ + "tlbtr = 0017b3c0 dtlb_val = 000003c0" \ + "ea = 0407e000 set = 63 way = 0" \ + "tlbtr = 0017e3c0 dtlb_val = 000003c0" \ + "ea = 0807bffc set = 61 way = 0" \ + "tlbtr = 0017b3c0 dtlb_val = 000003c0" \ + "ea = 0807e000 set = 63 way = 0" \ + "tlbtr = 0017e3c0 dtlb_val = 000003c0" \ + "ea = 1007bffc set = 61 way = 0" \ + "tlbtr = 0017b3c0 dtlb_val = 000003c0" \ + "ea = 1007e000 set = 63 way = 0" \ + "tlbtr = 0017e3c0 dtlb_val = 000003c0" \ + "ea = 2007bffc set = 61 way = 0" \ + "tlbtr = 0017b3c0 dtlb_val = 000003c0" \ + "ea = 2007e000 set = 63 way = 0" \ + "tlbtr = 0017e3c0 dtlb_val = 000003c0" \ + "ea = 4007bffc set = 61 way = 0" \ + "tlbtr = 0017b3c0 dtlb_val = 000003c0" \ + "ea = 4007e000 set = 63 way = 0" \ + "tlbtr = 0017e3c0 dtlb_val = 000003c0" \ + "ea = 8007bffc set = 61 way = 0" \ + "tlbtr = 0017b3c0 dtlb_val = 000003c0" \ + "ea = 8007e000 set = 63 way = 0" \ + "tlbtr = 0017e3c0 dtlb_val = 000003c0" \ + "ea = 0027c000 set = 62 way = 0" \ + "tlbtr = 0017c3c0 dtlb_val = 000003c0" \ + "ea = 0027c000 set = 62 way = 0" \ + "tlbtr = 0017c3c0 dtlb_val = 000003c0" \ + "ea = 0017c000 set = 62 way = 0" \ + "ea = 0017c000 set = 62 way = 0" \ + "ea = 0017c000 set = 62 way = 0" \ + "ea = 0017c000 set = 62 way = 0" \ + "ea = 0017bff8 set = 61 way = 0" \ + "ta = 0017bff8" \ + "ea = 0017e000 set = 63 way = 0" \ + "ta = 0017e000" \ + "ea = 0027bff8 set = 61 way = 0" \ + "ta = 0017bff8" \ + "ea = 0027e000 set = 63 way = 0" \ + "ta = 0017e000" \ + "ea = 0047bff8 set = 61 way = 0" \ + "ta = 0017bff8" \ + "ea = 0047e000 set = 63 way = 0" \ + "ta = 0017e000" \ + "ea = 0087bff8 set = 61 way = 0" \ + "ta = 0017bff8" \ + "ea = 0087e000 set = 63 way = 0" \ + "ta = 0017e000" \ + "ea = 0107bff8 set = 61 way = 0" \ + "ta = 0017bff8" \ + "ea = 0107e000 set = 63 way = 0" \ + "ta = 0017e000" \ + "ea = 0207bff8 set = 61 way = 0" \ + "ta = 0017bff8" \ + "ea = 0207e000 set = 63 way = 0" \ + "ta = 0017e000" \ + "ea = 0407bff8 set = 61 way = 0" \ + "ta = 0017bff8" \ + "ea = 0407e000 set = 63 way = 0" \ + "ta = 0017e000" \ + "ea = 0807bff8 set = 61 way = 0" \ + "ta = 0017bff8" \ + "ea = 0807e000 set = 63 way = 0" \ + "ta = 0017e000" \ + "ea = 1007bff8 set = 61 way = 0" \ + "ta = 0017bff8" \ + "ea = 1007e000 set = 63 way = 0" \ + "ta = 0017e000" \ + "ea = 2007bff8 set = 61 way = 0" \ + "ta = 0017bff8" \ + "ea = 2007e000 set = 63 way = 0" \ + "ta = 0017e000" \ + "ea = 4007bff8 set = 61 way = 0" \ + "ta = 0017bff8" \ + "ea = 4007e000 set = 63 way = 0" \ + "ta = 0017e000" \ + "ea = 8007bff8 set = 61 way = 0" \ + "ta = 0017bff8" \ + "ea = 8007e000 set = 63 way = 0" \ + "ta = 0017e000" \ + "ea = 0027e000 set = 63 way = 0" \ + "ta = 0017e000" \ + "ea = 0027e000 set = 63 way = 0" \ + "ta = 0017e000" \ + "ea = 0017c000 set = 62 way = 0" \ + "ea = 0017c000 set = 62 way = 0" \ + "!report(0xdeaddead);" \ + "!exit(0)"] \ + "mmu.cfg" "mmu/mmu" Index: cfg.exp =================================================================== --- cfg.exp (nonexistent) +++ cfg.exp (revision 135) @@ -0,0 +1,43 @@ +# CPU configuration test using DejaGNU under automake + +# Copyright (C) 2010 Embecosm Limited + +# Contributor Jeremy Bennett + +# This file is part of OpenRISC 1000 Architectural Simulator. + +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 3 of the License, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. + +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . */ + +# ----------------------------------------------------------------------------- +# This code is commented throughout for use with Doxygen. +# ----------------------------------------------------------------------------- + + +# Run the CPU configuration test +run_or1ksim "cfg" \ + [list "report(0x12000001);" \ + "report(0x0000041f);" \ + "report(0x00000000);" \ + "report(0x00000005);" \ + "report(0x00000020);" \ + "report(0x00000018);" \ + "report(0x00000018);" \ + "report(0x00000040);" \ + "report(0x00000040);" \ + "report(0x0000000f);" \ + "report(0x00000000);" \ + "report(0xf0acfad0);" \ + "!report(0xdeaddead);" \ + "!exit(0)"] \ + "" "cfg/cfg" Index: dmatest.exp =================================================================== --- dmatest.exp (nonexistent) +++ dmatest.exp (revision 135) @@ -0,0 +1,39 @@ +# DMA test using DejaGNU under automake + +# Copyright (C) 2010 Embecosm Limited + +# Contributor Jeremy Bennett + +# This file is part of OpenRISC 1000 Architectural Simulator. + +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 3 of the License, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. + +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . */ + +# ----------------------------------------------------------------------------- +# This code is commented throughout for use with Doxygen. +# ----------------------------------------------------------------------------- + + +# Run the DMA test +run_or1ksim "dmatest" \ + [list "!Starting DMA test" \ + "! Simple DMA: report(0x00000001);" \ + "Passed" \ + "! Chunks DMA: report(0x00000006);" \ + "Passed" \ + "! List DMA: report(0x0000000a);" \ + "Passed" \ + "!Ending DMA test" \ + "!report(0xdeaddead);" \ + "!exit(0)"] \ + "" "dmatest/dmatest" Index: except-test.exp =================================================================== --- except-test.exp (nonexistent) +++ except-test.exp (revision 135) @@ -0,0 +1,44 @@ +# except-test.exp. Exception test using DejaGNU under automake + +# Copyright (C) 2010 Embecosm Limited + +# Contributor Jeremy Bennett + +# This file is part of OpenRISC 1000 Architectural Simulator. + +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 3 of the License, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. + +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . */ + +# ----------------------------------------------------------------------------- +# This code is commented throughout for use with Doxygen. +# ----------------------------------------------------------------------------- + + +# Run the Exception test +run_or1ksim "except-test" \ + [list "except_test" \ + "dtlb_test" \ + "buserr_test" \ + "!EXCEPTION: read out of memory (32-bit access to 0400e000)" \ + "!EXCEPTION: read out of memory (32-bit access to 04000000)" \ + "!EXCEPTION: read out of memory (32-bit access to 04006000)" \ + "!EXCEPTION: read out of memory (32-bit access to 04004000)" \ + "illegal_insn_test" \ + "align_test" \ + "trap_test" \ + "except_priority_test" \ + "!EXCEPTION: read out of memory (32-bit access to 0400c000)" \ + "!EXCEPTION: read out of memory (32-bit access to 04004000)" \ + "!report(0xdeaddead);" \ + "!exit(0)"] \ + "" "except-test/except-test" Index: dhry.exp =================================================================== --- dhry.exp (nonexistent) +++ dhry.exp (revision 135) @@ -0,0 +1,37 @@ +# dhry.exp. Dhrystone test using DejaGNU under automake + +# Copyright (C) 2010 Embecosm Limited + +# Contributor Jeremy Bennett + +# This file is part of OpenRISC 1000 Architectural Simulator. + +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 3 of the License, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. + +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . */ + +# ----------------------------------------------------------------------------- +# This code is commented throughout for use with Doxygen. +# ----------------------------------------------------------------------------- + + +# Run the Dhrystone test. Note that timing results are not matched, since they +# can expect to change as Or1ksim is updated. +run_or1ksim "dhry" \ + [list "!Execution starts, 20 runs through Dhrystone" \ + "!Begin Time = " \ + "!End Time = " \ + "!Microseconds for one run through Dhrystone:" \ + "!Dhrystones per Second: " \ + "report(0xdeaddead);" \ + "!exit(0)"] \ + "" "dhry/dhry" Index: int-test.exp =================================================================== --- int-test.exp (nonexistent) +++ int-test.exp (revision 135) @@ -0,0 +1,118 @@ +# int-test.exp. Interrupt test using DejaGNU under automake + +# Copyright (C) 2010 Embecosm Limited + +# Contributor Jeremy Bennett + +# This file is part of OpenRISC 1000 Architectural Simulator. + +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 3 of the License, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. + +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . */ + +# ----------------------------------------------------------------------------- +# This code is commented throughout for use with Doxygen. +# ----------------------------------------------------------------------------- + + +# Run the Interrupt test. Note this is not a test of the Programmable +# Interrupt Controller. +run_or1ksim "int-test" \ + [list "report(0x00000628);" \ + "report(0x00000000);" \ + "report(0x00000628);" \ + "report(0x00000000);" \ + "report(0x00000628);" \ + "report(0x00000000);" \ + "report(0x00000628);" \ + "report(0x00000000);" \ + "report(0x00000628);" \ + "report(0x00000000);" \ + "report(0x00000628);" \ + "report(0x00000000);" \ + "report(0x0000062c);" \ + "report(0x00000004);" \ + "report(0x0000062c);" \ + "report(0x00000004);" \ + "report(0x00000630);" \ + "report(0x00000008);" \ + "report(0x00000630);" \ + "report(0x00000008);" \ + "report(0x00000630);" \ + "report(0x00000008);" \ + "report(0x00000630);" \ + "report(0x00000008);" \ + "report(0x00000630);" \ + "report(0x00000008);" \ + "report(0x00000630);" \ + "report(0x00000008);" \ + "report(0x00000634);" \ + "report(0x0000000c);" \ + "report(0x00000634);" \ + "report(0x0000000c);" \ + "report(0x00000638);" \ + "report(0x00000010);" \ + "report(0x00000638);" \ + "report(0x00000010);" \ + "report(0x00000638);" \ + "report(0x00000010);" \ + "report(0x00000638);" \ + "report(0x00000010);" \ + "report(0x0000063c);" \ + "report(0x00000014);" \ + "report(0x0000063c);" \ + "report(0x00000014);" \ + "report(0x00000640);" \ + "report(0x00000018);" \ + "report(0x00000640);" \ + "report(0x00000018);" \ + "report(0x00000640);" \ + "report(0x00000018);" \ + "report(0x00000640);" \ + "report(0x00000018);" \ + "report(0x0000064c);" \ + "report(0x00000024);" \ + "report(0x00008203);" \ + "report(0x0000064c);" \ + "report(0x00000024);" \ + "report(0x00008203);" \ + "report(0x0000064c);" \ + "report(0x00000024);" \ + "report(0x00008203);" \ + "report(0x0000064c);" \ + "report(0x00000024);" \ + "report(0x00008203);" \ + "report(0x00000650);" \ + "report(0x00000028);" \ + "report(0x00008003);" \ + "report(0x00000650);" \ + "report(0x00000028);" \ + "report(0x00008003);" \ + "report(0x00000650);" \ + "report(0x00000028);" \ + "report(0x00008003);" \ + "report(0x00000650);" \ + "report(0x00000028);" \ + "report(0x00008003);" \ + "report(0x00000658);" \ + "report(0x00000030);" \ + "report(0x00000658);" \ + "report(0x00000030);" \ + "report(0x0000065c);" \ + "report(0x00000034);" \ + "report(0x0000065c);" \ + "report(0x00000034);" \ + "report(0x00000660);" \ + "report(0x00000038);" \ + "!report(0xdeaddead);" \ + "!exit(0)"] \ + "" "int-test/int-test" Index: fp.cfg =================================================================== --- fp.cfg (nonexistent) +++ fp.cfg (revision 135) @@ -0,0 +1,150 @@ +/* fp.cfg -- Or1ksim configuration script file when using FP instructions. + + Copyright (C) 2001, Marko Mlinar + Copyright (C) 2010 Embecosm Limited + + Contributor Marko Mlinar + Contributor Jeremy Bennett + + This file is part of OpenRISC 1000 Architectural Simulator. + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program. If not, see . */ + +section memory + /*random_seed = 12345 + type = random*/ + pattern = 0x00 + type = unknown /* Fastest */ + + name = "FLASH" + ce = 0 + mc = 0 + baseaddr = 0xf0000000 + size = 0x00200000 + delayr = 10 + delayw = -1 +end + +section memory + /*random_seed = 12345 + type = random*/ + pattern = 0x00 + type = unknown /* Fastest */ + + name = "RAM" + ce = 1 + mc = 0 + baseaddr = 0x00000000 + size = 0x00200000 + delayr = 2 + delayw = 4 +end + +section immu + enabled = 1 + nsets = 64 + nways = 1 + ustates = 2 + pagesize = 8192 +end + +section dmmu + enabled = 1 + nsets = 64 + nways = 1 + ustates = 2 + pagesize = 8192 +end + +section ic + enabled = 1 + nsets = 256 + nways = 1 + ustates = 2 + blocksize = 16 +end + +section dc + enabled = 1 + nsets = 256 + nways = 1 + ustates = 2 + blocksize = 16 +end + +section cpu + ver = 0x12 + rev = 0x0001 + /* upr = */ + superscalar = 0 + hazards = 0 + dependstats = 0 + hardfloat = 1 +end + +section bpb + enabled = 0 + btic = 0 +end + +section debug +/* enabled = 1 + rsp_enabled = 1 + rsp_port = 51000 */ +end + +section sim + debug = 0 + profile = 0 + prof_fn = "sim.profile" + + exe_log = 0 + exe_log_type = software + exe_log_fn = "executed.log" +end + +section mc + enabled = 1 + baseaddr = 0x93000000 + POC = 0x00000008 /* Power on configuration register */ + index = 0 +end + +section dma + baseaddr = 0xB8000000 + irq = 4 +end + +section ethernet + enabled = 0 + baseaddr = 0x92000000 + irq = 4 + rtx_type = 0 +end + +section VAPI + enabled = 0 + server_port = 9998 +end + +section fb + enabled = 1 + baseaddr = 0x97000000 + refresh_rate = 10000 + filename = "primary" +end + +section kbd + enabled = 0 +end Index: exit.exp =================================================================== --- exit.exp (nonexistent) +++ exit.exp (revision 135) @@ -0,0 +1,31 @@ +# exit.exp. Test of program exit using DejaGNU under automake + +# Copyright (C) 2010 Embecosm Limited + +# Contributor Jeremy Bennett + +# This file is part of OpenRISC 1000 Architectural Simulator. + +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 3 of the License, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. + +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . */ + +# ----------------------------------------------------------------------------- +# This code is commented throughout for use with Doxygen. +# ----------------------------------------------------------------------------- + + +# Run the exit test. +run_or1ksim "exit" \ + [list "report(0xdeaddead);" \ + "!exit(0)"] \ + "" "exit/exit" Index: flag.exp =================================================================== --- flag.exp (nonexistent) +++ flag.exp (revision 135) @@ -0,0 +1,31 @@ +# flag.exp. SR flags test using DejaGNU under automake + +# Copyright (C) 2010 Embecosm Limited + +# Contributor Jeremy Bennett + +# This file is part of OpenRISC 1000 Architectural Simulator. + +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 3 of the License, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. + +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . */ + +# ----------------------------------------------------------------------------- +# This code is commented throughout for use with Doxygen. +# ----------------------------------------------------------------------------- + + +# Run the Interrupt controller test +run_or1ksim "flag" \ + [list "report(0xdeaddead);" \ + "!exit(0)"] \ + "" "flag/flag" Index: eth.exp =================================================================== --- eth.exp (nonexistent) +++ eth.exp (revision 135) @@ -0,0 +1,45 @@ +# eth.exp. Ethernet test using DejaGNU under automake + +# Copyright (C) 2010 Embecosm Limited + +# Contributor Jeremy Bennett + +# This file is part of OpenRISC 1000 Architectural Simulator. + +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 3 of the License, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. + +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . */ + +# ----------------------------------------------------------------------------- +# This code is commented throughout for use with Doxygen. +# ----------------------------------------------------------------------------- + + +# Run the Ethernet test +run_or1ksim "eth" \ + [list "!Starting Ethernet test" \ + "enable ints" \ + "set mask flags TX" \ + "Init" \ + "Set BD" \ + "Set Flags" \ + "Int" \ + "Transmit Frame." \ + "seting mask flag RX" \ + "Set BD" \ + "SetFlags" \ + "Int" \ + "Receive Frame" \ + "!Ending Ethernet test" \ + "!report(0xdeaddead);" \ + "!exit(0)"] \ + "eth.cfg" "eth/eth" Index: basic.exp =================================================================== --- basic.exp (nonexistent) +++ basic.exp (revision 135) @@ -0,0 +1,38 @@ +# Basic CPU test using DejaGNU under automake + +# Copyright (C) 2010 Embecosm Limited + +# Contributor Jeremy Bennett + +# This file is part of OpenRISC 1000 Architectural Simulator. + +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 3 of the License, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. + +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . */ + +# ----------------------------------------------------------------------------- +# This code is commented throughout for use with Doxygen. +# ----------------------------------------------------------------------------- + + +# Run the basic test +run_or1ksim "basic" \ + [list "report(0xffff0012);" \ + "report(0x12352af7);" \ + "report(0x7ffffffe);" \ + "report(0xffffa5a7);" \ + "report(0x000fffff);" \ + "report(0x00002800);" \ + "report(0x00000009);" \ + "report(0xdeaddead);" \ + "!exit(0)"] \ + "" "basic/basic" Index: acv-uart.cfg =================================================================== --- acv-uart.cfg (nonexistent) +++ acv-uart.cfg (revision 135) @@ -0,0 +1,65 @@ +section memory + /*random_seed = 12345 + type = random*/ + pattern = 0x00 + type = unknown /* Fastest */ + + name = "FLASH" + ce = 0 + baseaddr = 0xf0000000 + size = 0x00200000 + delayr = 1 + delayw = -1 +end + +section memory + /*random_seed = 12345 + type = random*/ + pattern = 0x00 + type = unknown /* Fastest */ + + name = "RAM" + ce = 1 + baseaddr = 0x00000000 + size = 0x00200000 + delayr = 1 + delayw = 1 +end + +section mc + enabled = 1 + baseaddr = 0x93000000 + POC = 0x00000008 /* Power on configuration register */ +end + +section cpu + ver = 0x12 + rev = 0x0001 + /* upr = */ + superscalar = 0 + hazards = 0 + dependstats = 0 +end + +section sim + debug = 4 + verbose = 1 + exe_log = 1 + exe_log_fn = "executed.log" +end + +section uart + baseaddr = 0x9c000000 + jitter = -1 /* async behaviour */ + 16550 = 1 + irq = 19 + vapi_id = 0x100 +end + +section VAPI + enabled = 1 + log_enabled = 1 + hide_device_id = 1 + vapi_log_fn = "vapi.log" + server_port = 9100 +end Index: default.cfg =================================================================== --- default.cfg (nonexistent) +++ default.cfg (revision 135) @@ -0,0 +1,149 @@ +/* default.cfg -- Or1ksim default configuration script file + + Copyright (C) 2001, Marko Mlinar + Copyright (C) 2010 Embecosm Limited + + Contributor Marko Mlinar + Contributor Jeremy Bennett + + This file is part of OpenRISC 1000 Architectural Simulator. + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program. If not, see . */ + +section memory + /*random_seed = 12345 + type = random*/ + pattern = 0x00 + type = unknown /* Fastest */ + + name = "FLASH" + ce = 0 + mc = 0 + baseaddr = 0xf0000000 + size = 0x00200000 + delayr = 10 + delayw = -1 +end + +section memory + /*random_seed = 12345 + type = random*/ + pattern = 0x00 + type = unknown /* Fastest */ + + name = "RAM" + ce = 1 + mc = 0 + baseaddr = 0x00000000 + size = 0x00200000 + delayr = 2 + delayw = 4 +end + +section immu + enabled = 1 + nsets = 64 + nways = 1 + ustates = 2 + pagesize = 8192 +end + +section dmmu + enabled = 1 + nsets = 64 + nways = 1 + ustates = 2 + pagesize = 8192 +end + +section ic + enabled = 1 + nsets = 256 + nways = 1 + ustates = 2 + blocksize = 16 +end + +section dc + enabled = 1 + nsets = 256 + nways = 1 + ustates = 2 + blocksize = 16 +end + +section cpu + ver = 0x12 + rev = 0x0001 + /* upr = */ + superscalar = 0 + hazards = 0 + dependstats = 0 +end + +section bpb + enabled = 0 + btic = 0 +end + +section debug +/* enabled = 1 + rsp_enabled = 1 + rsp_port = 51000*/ +end + +section sim + debug = 0 + profile = 0 + prof_fn = "sim.profile" + + exe_log = 0 + exe_log_type = software + exe_log_fn = "executed.log" +end + +section mc + enabled = 1 + baseaddr = 0x93000000 + POC = 0x00000008 /* Power on configuration register */ + index = 0 +end + +section dma + baseaddr = 0xB8000000 + irq = 4 +end + +section ethernet + enabled = 0 + baseaddr = 0x92000000 + irq = 4 + rtx_type = 0 +end + +section VAPI + enabled = 0 + server_port = 9998 +end + +section fb + enabled = 1 + baseaddr = 0x97000000 + refresh_rate = 10000 + filename = "primary" +end + +section kbd + enabled = 0 +end Index: kbdtest.rx =================================================================== --- kbdtest.rx (nonexistent) +++ kbdtest.rx (revision 135) @@ -0,0 +1,2 @@ +Te3+=-
eth0.rx Property changes : Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Index: mmu.cfg =================================================================== --- mmu.cfg (nonexistent) +++ mmu.cfg (revision 135) @@ -0,0 +1,102 @@ +/* mmu.cfg -- Or1ksim configuration script file for MMU test + + Copyright (C) 2001, Marko Mlinar + Copyright (C) 2010 Embecosm Limited + + Contributor Marko Mlinar + Contributor Jeremy Bennett + + This file is part of OpenRISC 1000 Architectural Simulator. + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program. If not, see . */ + +section memory + /*random_seed = 12345 + type = random*/ + pattern = 0x00 + type = unknown /* Fastest */ + + name = "RAM" + ce = 1 + baseaddr = 0x00000000 + size = 0x00200000 + delayr = 1 + delayw = 2 +end + +section memory + /*random_seed = 12345 + type = random*/ + pattern = 0x00 + type = unknown /* Fastest */ + + name = "FLASH" + ce = 0 + baseaddr = 0xf0000000 + size = 0x00200000 + delayr = 10 + delayw = -1 +end + +section immu + enabled = 1 + nsets = 64 + nways = 1 + ustates = 2 + pagesize = 8192 +end + +section dmmu + enabled = 1 + nsets = 64 + nways = 1 + ustates = 2 + pagesize = 8192 +end + +section ic + enabled = 1 + nsets = 256 + nways = 1 + ustates = 2 + blocksize = 16 +end + +section dc + enabled = 1 + nsets = 256 + nways = 1 + ustates = 2 + blocksize = 16 +end + +section sim + /* verbose = 1 */ + debug = 0 + profile = 0 + prof_fn = "sim.profile" + + history = 1 + /* iprompt = 0 */ + exe_log = 0 + exe_log_fn = "executed.log" +end + +section mc + enabled = 1 + baseaddr = 0x93000000 + POC = 0x00000008 /* Power on configuration register */ +end + + Index: kbdtest.cfg =================================================================== --- kbdtest.cfg (nonexistent) +++ kbdtest.cfg (revision 135) @@ -0,0 +1,152 @@ +/* default.cfg -- Or1ksim default configuration script file + + Copyright (C) 2001, Marko Mlinar + Copyright (C) 2010 Embecosm Limited + + Contributor Marko Mlinar + Contributor Jeremy Bennett + + This file is part of OpenRISC 1000 Architectural Simulator. + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program. If not, see . */ + +section memory + /*random_seed = 12345 + type = random*/ + pattern = 0x00 + type = unknown /* Fastest */ + + name = "FLASH" + ce = 0 + mc = 0 + baseaddr = 0xf0000000 + size = 0x00200000 + delayr = 10 + delayw = -1 +end + +section memory + /*random_seed = 12345 + type = random*/ + pattern = 0x00 + type = unknown /* Fastest */ + + name = "RAM" + ce = 1 + mc = 0 + baseaddr = 0x00000000 + size = 0x00200000 + delayr = 2 + delayw = 4 +end + +section immu + enabled = 1 + nsets = 64 + nways = 1 + ustates = 2 + pagesize = 8192 +end + +section dmmu + enabled = 1 + nsets = 64 + nways = 1 + ustates = 2 + pagesize = 8192 +end + +section ic + enabled = 1 + nsets = 256 + nways = 1 + ustates = 2 + blocksize = 16 +end + +section dc + enabled = 1 + nsets = 256 + nways = 1 + ustates = 2 + blocksize = 16 +end + +section cpu + ver = 0x12 + rev = 0x0001 + /* upr = */ + superscalar = 0 + hazards = 0 + dependstats = 0 +end + +section bpb + enabled = 0 + btic = 0 +end + +section debug + /*enabled = 0 + gdb_enabled = 0*/ + server_port = 9999 +end + +section sim + debug = 0 + profile = 0 + prof_fn = "sim.profile" + + exe_log = 0 + exe_log_type = software + exe_log_fn = "executed.log" +end + +section mc + enabled = 1 + baseaddr = 0x93000000 + POC = 0x00000008 /* Power on configuration register */ + index = 0 +end + +section dma + baseaddr = 0xB8000000 + irq = 4 +end + +section ethernet + enabled = 0 + baseaddr = 0x92000000 + irq = 4 + rtx_type = 0 +end + +section VAPI + enabled = 0 + server_port = 9998 +end + +section fb + enabled = 1 + baseaddr = 0x97000000 + refresh_rate = 10000 + filename = "primary" +end + +section kbd + enabled = 1 + irq = 5 + baseaddr = 0x94000000 + rxfile = "./kbdtest.rx" +end Index: acv-gpio.cfg =================================================================== --- acv-gpio.cfg (nonexistent) +++ acv-gpio.cfg (revision 135) @@ -0,0 +1,63 @@ +section memory + /*random_seed = 12345 + type = random*/ + pattern = 0x00 + type = unknown /* Fastest */ + + name = "RAM" + ce = 1 + baseaddr = 0x00000000 + size = 0x00200000 + delayr = 1 + delayw = 1 +end + +section memory + /*random_seed = 12345 + type = random*/ + pattern = 0x00 + type = unknown /* Fastest */ + + name = "FLASH" + ce = 0 + baseaddr = 0xf0000000 + size = 0x00200000 + delayr = 1 + delayw = -1 +end + +section mc + enabled = 1 + baseaddr = 0x93000000 + POC = 0x00000008 /* Power on configuration register */ +end + +section cpu + ver = 0x12 + rev = 0x0001 + /* upr = */ + superscalar = 0 + hazards = 0 + dependstats = 0 +end + +section sim + debug = 3 + verbose = 1 + exe_log = 1 + exe_log_fn = "executed.log" +end + +section gpio + baseaddr = 0xB0000000 + irq = 23 + base_vapi_id = 0x0200 /* GPIO uses 8 VAPI IDs */ +end + +section VAPI + enabled = 1 + log_enabled = 1 + hide_device_id = 1 + vapi_log_fn = "vapi.log" + server_port = 9100 +end Index: eth.cfg =================================================================== --- eth.cfg (nonexistent) +++ eth.cfg (revision 135) @@ -0,0 +1,153 @@ +/* eth.cfg -- Or1ksim configuration script file for Ethernet test + + Copyright (C) 2001, Marko Mlinar + Copyright (C) 2010 Embecosm Limited + + Contributor Marko Mlinar + Contributor Jeremy Bennett + + This file is part of OpenRISC 1000 Architectural Simulator. + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program. If not, see . */ + +section memory + /*random_seed = 12345 + type = random*/ + pattern = 0x00 + type = unknown /* Fastest */ + + name = "FLASH" + ce = 0 + mc = 0 + baseaddr = 0xf0000000 + size = 0x00200000 + delayr = 10 + delayw = -1 +end + +section memory + /*random_seed = 12345 + type = random*/ + pattern = 0x00 + type = unknown /* Fastest */ + + name = "RAM" + ce = 1 + mc = 0 + baseaddr = 0x00000000 + size = 0x00200000 + delayr = 2 + delayw = 4 +end + +section immu + enabled = 1 + nsets = 64 + nways = 1 + ustates = 2 + pagesize = 8192 +end + +section dmmu + enabled = 1 + nsets = 64 + nways = 1 + ustates = 2 + pagesize = 8192 +end + +section ic + enabled = 1 + nsets = 256 + nways = 1 + ustates = 2 + blocksize = 16 +end + +section dc + enabled = 1 + nsets = 256 + nways = 1 + ustates = 2 + blocksize = 16 +end + +section cpu + ver = 0x12 + rev = 0x0001 + /* upr = */ + superscalar = 0 + hazards = 0 + dependstats = 0 +end + +section bpb + enabled = 0 + btic = 0 +end + +section debug + /*enabled = 0 + gdb_enabled = 0*/ + server_port = 9999 +end + +section sim + debug = 0 + profile = 0 + prof_fn = "sim.profile" + + exe_log = 0 + exe_log_type = software + exe_log_fn = "executed.log" +end + +section mc + enabled = 1 + baseaddr = 0x93000000 + POC = 0x00000008 /* Power on configuration register */ + index = 0 +end + +section dma + baseaddr = 0xB8000000 + irq = 4 +end + +section ethernet + baseaddr = 0x92000000 + irq = 4 + rtx_type = 0 + rxfile = "eth0.rx" + txfile = "eth0.tx" + sockif = "eth0" +end + +section VAPI + enabled = 0 + server_port = 9998 +end + +section fb + enabled = 1 + baseaddr = 0x97000000 + refresh_rate = 10000 + filename = "primary" +end + +section kbd + enabled = 0 + irq = 5 + baseaddr = 0x94000000 +end

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.