|
|
|
D:\WorkProjects\MicroTESK\microtesk-mips64\src\main\arch\mips64\templates>D:\WorkProjects\MicroTESK\microtesk-mips64\build\target\bin\generate.bat mips64 load_store.rb --code-file-prefix generated_tests/load_store --code-file-extension s -v
|
|
|
|
D:\WorkProjects\MicroTESK\microtesk-mips64\src\main\arch\mips64\templates>java -ea -jar "D:\WorkProjects\MicroTESK\microtesk-mips64\build\target/lib/jars/microtesk.jar" -g mips64 load_store.rb --code-file-prefix generated_tests/load_store --code-file-extension s -v
|
|
Home: D:\WorkProjects\MicroTESK\microtesk-mips64\build\target
|
|
Current directory: D:\WorkProjects\MicroTESK\microtesk-mips64\src\main\arch\mips64\templates
|
|
Model name: mips64
|
|
Template file: load_store.rb
|
|
Loaded template Mips64BaseTemplate defined in D:/WorkProjects/MicroTESK/microtesk-mips64/src/main/arch/mips64/templates/mips64_base.rb
|
|
Loaded template LoadStoreTemplate defined in D:/WorkProjects/MicroTESK/microtesk-mips64/src/main/arch/mips64/templates/load_store.rb
|
|
Processing template LoadStoreTemplate defined in D:/WorkProjects/MicroTESK/microtesk-mips64/src/main/arch/mips64/templates/load_store.rb...
|
|
Instance number: 1
|
|
|
|
----------------------- Initializing Processing Elements -----------------------
|
|
|
|
The 'instantiate' operation is undefined.
|
|
Creating MMU model...
|
|
|
|
------------------------- Started Processing Template --------------------------
|
|
|
|
|
|
------------------ Started Processing Initialization Section -------------------
|
|
|
|
|
|
------------------------- Processing Exception Handler -------------------------
|
|
|
|
|
|
----------------- Printing exception handler to test_except.s ------------------
|
|
|
|
|
|
------------------- Ended Processing Initialization Section --------------------
|
|
|
|
|
|
------------------- Started Processing Finalization Section --------------------
|
|
|
|
|
|
-------------------- Ended Processing Finalization Section ---------------------
|
|
|
|
|
|
----------------------- Started Processing Main Section ------------------------
|
|
|
|
|
|
------------------------------- Allocating code --------------------------------
|
|
|
|
Section: .text [pa=0x0000000000000000, va=0xffffffff80000000]
|
|
|
|
Code allocator: directive: .org 0x200
|
|
0x0000000000000200 (PA): mfc0 $ra, $14, 0 (0x401F7000)
|
|
0x0000000000000204 (PA): addiu $ra, $ra, 4 (0x27FF0004)
|
|
0x0000000000000208 (PA): jr $ra (0x03E00008)
|
|
0x000000000000020c (PA): nop (0x00000000)
|
|
Code allocator: register the remaining block: [0xffffffff80000200..0xffffffff80000210) (5 calls)
|
|
|
|
|
|
------------------------------- Allocating code --------------------------------
|
|
|
|
Section: .text [pa=0x0000000000000000, va=0xffffffff80000000]
|
|
|
|
Code allocator: directive: .org 0x280
|
|
0x0000000000000280 (PA): mfc0 $ra, $14, 0 (0x401F7000)
|
|
0x0000000000000284 (PA): addiu $ra, $ra, 4 (0x27FF0004)
|
|
0x0000000000000288 (PA): jr $ra (0x03E00008)
|
|
0x000000000000028c (PA): nop (0x00000000)
|
|
Code allocator: register the remaining block: [0xffffffff80000280..0xffffffff80000290) (5 calls)
|
|
|
|
|
|
------------------------------- Allocating code --------------------------------
|
|
|
|
Section: .text [pa=0x0000000000000000, va=0xffffffff80000000]
|
|
|
|
Code allocator: directive: .org 0x380
|
|
0x0000000000000380 (PA): mfc0 $ra, $14, 0 (0x401F7000)
|
|
0x0000000000000384 (PA): addiu $ra, $ra, 4 (0x27FF0004)
|
|
0x0000000000000388 (PA): jr $ra (0x03E00008)
|
|
0x000000000000038c (PA): nop (0x00000000)
|
|
Code allocator: register the remaining block: [0xffffffff80000380..0xffffffff80000390) (5 calls)
|
|
|
|
|
|
------------------- Constructed Prologue (mips64_base.rb:85) -------------------
|
|
|
|
boot [pa=0x000000001fc00000, va=0xffffffffbfc00000]
|
|
.text
|
|
.set noreorder
|
|
.list
|
|
|
|
mfc0 $t0, $12, 0
|
|
lui $t2, 0x40
|
|
ori $t2, $t2, 0x4
|
|
lui $t1, 0x400
|
|
ori $t1, $t1, 0x80
|
|
nor $t2, $0, $t2
|
|
and $t0, $t0, $t2
|
|
or $t0, $t0, $t1
|
|
mtc0 $t0, $12, 0
|
|
|
|
mfc0 $t0, $16, 0
|
|
lui $t2, 0x20
|
|
ori $t2, $t2, 0x7
|
|
lui $t1, 0x0
|
|
ori $t1, $t1, 0x3
|
|
nor $t2, $0, $t2
|
|
and $t0, $t0, $t2
|
|
or $t0, $t0, $t1
|
|
mtc0 $t0, $16, 0
|
|
mtc0 $0, $11, 0
|
|
|
|
lui $t0, 0xbfc0
|
|
ori $t0, $t0, 0x0
|
|
lui $t1, 0x8000
|
|
ori $t1, $t1, 0x0
|
|
|
|
ld $t2, 512($t0)
|
|
sd $t2, 0($t1)
|
|
sd $t2, 128($t1)
|
|
sd $t2, 384($t1)
|
|
ld $t2, 520($t0)
|
|
sd $t2, 8($t1)
|
|
sd $t2, 136($t1)
|
|
sd $t2, 392($t1)
|
|
ld $t2, 528($t0)
|
|
sd $t2, 16($t1)
|
|
sd $t2, 144($t1)
|
|
sd $t2, 400($t1)
|
|
ld $t2, 536($t0)
|
|
sd $t2, 24($t1)
|
|
sd $t2, 152($t1)
|
|
sd $t2, 408($t1)
|
|
|
|
lui $t0, 0x8000
|
|
ori $t0, $t0, 0x2000
|
|
jr $t0
|
|
nop
|
|
.org 0x200
|
|
|
|
mthi $t0
|
|
mfc0 $t0, $14, 0
|
|
addiu $t0, $t0, 4
|
|
mtc0 $t0, $14, 0
|
|
mfhi $t0
|
|
ssnop
|
|
ssnop
|
|
eret
|
|
.org 0x280
|
|
|
|
mthi $t0
|
|
mfc0 $t0, $14, 0
|
|
addiu $t0, $t0, 4
|
|
mtc0 $t0, $14, 0
|
|
mfhi $t0
|
|
ssnop
|
|
ssnop
|
|
eret
|
|
.org 0x380
|
|
|
|
mthi $t0
|
|
mfc0 $t0, $14, 0
|
|
addiu $t0, $t0, 4
|
|
mtc0 $t0, $14, 0
|
|
mfhi $t0
|
|
ssnop
|
|
ssnop
|
|
eret
|
|
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
|
|
------------------------------- Allocating code --------------------------------
|
|
|
|
Section: boot [pa=0x000000001fc00000, va=0xffffffffbfc00000]
|
|
|
|
0x000000001fc00000 (PA): mfc0 $t0, $12, 0 (0x40086000)
|
|
0x000000001fc00004 (PA): lui $t2, 0x40 (0x3C0A0040)
|
|
0x000000001fc00008 (PA): ori $t2, $t2, 0x4 (0x354A0004)
|
|
0x000000001fc0000c (PA): lui $t1, 0x400 (0x3C090400)
|
|
0x000000001fc00010 (PA): ori $t1, $t1, 0x80 (0x35290080)
|
|
0x000000001fc00014 (PA): nor $t2, $0, $t2 (0x000A5027)
|
|
0x000000001fc00018 (PA): and $t0, $t0, $t2 (0x010A4024)
|
|
0x000000001fc0001c (PA): or $t0, $t0, $t1 (0x01094025)
|
|
0x000000001fc00020 (PA): mtc0 $t0, $12, 0 (0x40886000)
|
|
0x000000001fc00024 (PA): mfc0 $t0, $16, 0 (0x40088000)
|
|
0x000000001fc00028 (PA): lui $t2, 0x20 (0x3C0A0020)
|
|
0x000000001fc0002c (PA): ori $t2, $t2, 0x7 (0x354A0007)
|
|
0x000000001fc00030 (PA): lui $t1, 0x0 (0x3C090000)
|
|
0x000000001fc00034 (PA): ori $t1, $t1, 0x3 (0x35290003)
|
|
0x000000001fc00038 (PA): nor $t2, $0, $t2 (0x000A5027)
|
|
0x000000001fc0003c (PA): and $t0, $t0, $t2 (0x010A4024)
|
|
0x000000001fc00040 (PA): or $t0, $t0, $t1 (0x01094025)
|
|
0x000000001fc00044 (PA): mtc0 $t0, $16, 0 (0x40888000)
|
|
0x000000001fc00048 (PA): mtc0 $0, $11, 0 (0x40805800)
|
|
0x000000001fc0004c (PA): lui $t0, 0xbfc0 (0x3C08BFC0)
|
|
0x000000001fc00050 (PA): ori $t0, $t0, 0x0 (0x35080000)
|
|
0x000000001fc00054 (PA): lui $t1, 0x8000 (0x3C098000)
|
|
0x000000001fc00058 (PA): ori $t1, $t1, 0x0 (0x35290000)
|
|
0x000000001fc0005c (PA): ld $t2, 512($t0) (0xDD0A0200)
|
|
0x000000001fc00060 (PA): sd $t2, 0($t1) (0xFD2A0000)
|
|
0x000000001fc00064 (PA): sd $t2, 128($t1) (0xFD2A0080)
|
|
0x000000001fc00068 (PA): sd $t2, 384($t1) (0xFD2A0180)
|
|
0x000000001fc0006c (PA): ld $t2, 520($t0) (0xDD0A0208)
|
|
0x000000001fc00070 (PA): sd $t2, 8($t1) (0xFD2A0008)
|
|
0x000000001fc00074 (PA): sd $t2, 136($t1) (0xFD2A0088)
|
|
0x000000001fc00078 (PA): sd $t2, 392($t1) (0xFD2A0188)
|
|
0x000000001fc0007c (PA): ld $t2, 528($t0) (0xDD0A0210)
|
|
0x000000001fc00080 (PA): sd $t2, 16($t1) (0xFD2A0010)
|
|
0x000000001fc00084 (PA): sd $t2, 144($t1) (0xFD2A0090)
|
|
0x000000001fc00088 (PA): sd $t2, 400($t1) (0xFD2A0190)
|
|
0x000000001fc0008c (PA): ld $t2, 536($t0) (0xDD0A0218)
|
|
0x000000001fc00090 (PA): sd $t2, 24($t1) (0xFD2A0018)
|
|
0x000000001fc00094 (PA): sd $t2, 152($t1) (0xFD2A0098)
|
|
0x000000001fc00098 (PA): sd $t2, 408($t1) (0xFD2A0198)
|
|
0x000000001fc0009c (PA): lui $t0, 0x8000 (0x3C088000)
|
|
0x000000001fc000a0 (PA): ori $t0, $t0, 0x2000 (0x35082000)
|
|
0x000000001fc000a4 (PA): jr $t0 (0x01000008)
|
|
0x000000001fc000a8 (PA): nop (0x00000000)
|
|
Code allocator: directive: .org 0x200
|
|
Code allocator: register the block: [0xffffffffbfc00000..0xffffffffbfc000ac) (43 calls)
|
|
|
|
0x000000001fc00200 (PA): mthi $t0 (0x01000011)
|
|
0x000000001fc00204 (PA): mfc0 $t0, $14, 0 (0x40087000)
|
|
0x000000001fc00208 (PA): addiu $t0, $t0, 4 (0x25080004)
|
|
0x000000001fc0020c (PA): mtc0 $t0, $14, 0 (0x40887000)
|
|
0x000000001fc00210 (PA): mfhi $t0 (0x00004010)
|
|
0x000000001fc00214 (PA): ssnop (0x00000040)
|
|
0x000000001fc00218 (PA): ssnop (0x00000040)
|
|
0x000000001fc0021c (PA): eret (0x42000018)
|
|
Code allocator: directive: .org 0x280
|
|
Code allocator: register the block: [0xffffffffbfc00200..0xffffffffbfc00220) (8 calls)
|
|
|
|
0x000000001fc00280 (PA): mthi $t0 (0x01000011)
|
|
0x000000001fc00284 (PA): mfc0 $t0, $14, 0 (0x40087000)
|
|
0x000000001fc00288 (PA): addiu $t0, $t0, 4 (0x25080004)
|
|
0x000000001fc0028c (PA): mtc0 $t0, $14, 0 (0x40887000)
|
|
0x000000001fc00290 (PA): mfhi $t0 (0x00004010)
|
|
0x000000001fc00294 (PA): ssnop (0x00000040)
|
|
0x000000001fc00298 (PA): ssnop (0x00000040)
|
|
0x000000001fc0029c (PA): eret (0x42000018)
|
|
Code allocator: directive: .org 0x380
|
|
Code allocator: register the block: [0xffffffffbfc00280..0xffffffffbfc002a0) (8 calls)
|
|
|
|
0x000000001fc00380 (PA): mthi $t0 (0x01000011)
|
|
0x000000001fc00384 (PA): mfc0 $t0, $14, 0 (0x40087000)
|
|
0x000000001fc00388 (PA): addiu $t0, $t0, 4 (0x25080004)
|
|
0x000000001fc0038c (PA): mtc0 $t0, $14, 0 (0x40887000)
|
|
0x000000001fc00390 (PA): mfhi $t0 (0x00004010)
|
|
0x000000001fc00394 (PA): ssnop (0x00000040)
|
|
0x000000001fc00398 (PA): ssnop (0x00000040)
|
|
0x000000001fc0039c (PA): eret (0x42000018)
|
|
0x000000001fc003a0 (PA): nop (0x00000000)
|
|
0x000000001fc003a4 (PA): nop (0x00000000)
|
|
0x000000001fc003a8 (PA): nop (0x00000000)
|
|
0x000000001fc003ac (PA): nop (0x00000000)
|
|
Code allocator: register the remaining block: [0xffffffffbfc00380..0xffffffffbfc003b0) (12 calls)
|
|
|
|
|
|
------------------ Constructed Prologue (mips64_base.rb:544) -------------------
|
|
|
|
.text
|
|
.org 0x2000
|
|
__start:
|
|
.nolist
|
|
.set noreorder
|
|
|
|
#include "regdef_mips64.h"
|
|
#include "kernel_mips64.h"
|
|
|
|
.list
|
|
.text
|
|
.globl __start
|
|
|
|
|
|
j test
|
|
nop
|
|
test:
|
|
|
|
mfc0 $t8, $16, 0
|
|
lui $t9, 0xffff
|
|
ori $t9, $t9, 0xfffa
|
|
and $t8, $t8, $t9
|
|
mtc0 $t8, $16, 0
|
|
ssnop
|
|
ssnop
|
|
|
|
------------------------------- Allocating code --------------------------------
|
|
|
|
Section: .text [pa=0x0000000000000000, va=0xffffffff80000000]
|
|
|
|
Code allocator: directive: .org 0x2000
|
|
Code allocator: directive: __start:
|
|
0x0000000000002000 (PA): j test (0x08000000)
|
|
0x0000000000002004 (PA): nop (0x00000000)
|
|
Code allocator: directive: test:
|
|
0x0000000000002008 (PA): mfc0 $t8, $16, 0 (0x40188000)
|
|
0x000000000000200c (PA): lui $t9, 0xffff (0x3C19FFFF)
|
|
0x0000000000002010 (PA): ori $t9, $t9, 0xfffa (0x3739FFFA)
|
|
0x0000000000002014 (PA): and $t8, $t8, $t9 (0x0319C024)
|
|
0x0000000000002018 (PA): mtc0 $t8, $16, 0 (0x40988000)
|
|
0x000000000000201c (PA): ssnop (0x00000040)
|
|
0x0000000000002020 (PA): ssnop (0x00000040)
|
|
Code allocator: register the remaining block: [0xffffffff80002000..0xffffffff80002024) (9 calls)
|
|
|
|
Processing of block defined at load_store.rb:72 is postponed.
|
|
|
|
------------------------ Ended Processing Main Section -------------------------
|
|
|
|
|
|
------------- Running Execution from Prologue (mips64_base.rb:85) --------------
|
|
|
|
|
|
---------------------------------- Instance 0 ----------------------------------
|
|
|
|
Execution status: 0xffffffffbfc00000
|
|
|
|
boot start (EPC = 0x0)
|
|
0xffffffffbfc00000 mfc0 $t0, $12, 0
|
|
0xffffffffbfc00004 lui $t2, 0x40
|
|
0xffffffffbfc00008 ori $t2, $t2, 0x4
|
|
0xffffffffbfc0000c lui $t1, 0x400
|
|
0xffffffffbfc00010 ori $t1, $t1, 0x80
|
|
0xffffffffbfc00014 nor $t2, $0, $t2
|
|
0xffffffffbfc00018 and $t0, $t0, $t2
|
|
0xffffffffbfc0001c or $t0, $t0, $t1
|
|
0xffffffffbfc00020 mtc0 $t0, $12, 0
|
|
0xffffffffbfc00024 mfc0 $t0, $16, 0
|
|
0xffffffffbfc00028 lui $t2, 0x20
|
|
0xffffffffbfc0002c ori $t2, $t2, 0x7
|
|
0xffffffffbfc00030 lui $t1, 0x0
|
|
0xffffffffbfc00034 ori $t1, $t1, 0x3
|
|
0xffffffffbfc00038 nor $t2, $0, $t2
|
|
0xffffffffbfc0003c and $t0, $t0, $t2
|
|
0xffffffffbfc00040 or $t0, $t0, $t1
|
|
0xffffffffbfc00044 mtc0 $t0, $16, 0
|
|
0xffffffffbfc00048 mtc0 $0, $11, 0
|
|
0xffffffffbfc0004c lui $t0, 0xbfc0
|
|
0xffffffffbfc00050 ori $t0, $t0, 0x0
|
|
0xffffffffbfc00054 lui $t1, 0x8000
|
|
0xffffffffbfc00058 ori $t1, $t1, 0x0
|
|
0xffffffffbfc0005c ld $t2, 512($t0)
|
|
KSEG1: va=FFFFFFFFBFC00200, pa=1FC00200
|
|
0xffffffffbfc00060 sd $t2, 0($t1)
|
|
KSEG0: va=FFFFFFFF80000000, pa=0
|
|
isCached = 0x1
|
|
KSEG0: va=FFFFFFFF80000000, pa=0
|
|
isCached = 0x1
|
|
0xffffffffbfc00064 sd $t2, 128($t1)
|
|
KSEG0: va=FFFFFFFF80000080, pa=80
|
|
isCached = 0x1
|
|
KSEG0: va=FFFFFFFF80000080, pa=80
|
|
isCached = 0x1
|
|
0xffffffffbfc00068 sd $t2, 384($t1)
|
|
KSEG0: va=FFFFFFFF80000180, pa=180
|
|
isCached = 0x1
|
|
KSEG0: va=FFFFFFFF80000180, pa=180
|
|
isCached = 0x1
|
|
0xffffffffbfc0006c ld $t2, 520($t0)
|
|
KSEG1: va=FFFFFFFFBFC00208, pa=1FC00208
|
|
0xffffffffbfc00070 sd $t2, 8($t1)
|
|
KSEG0: va=FFFFFFFF80000008, pa=8
|
|
isCached = 0x1
|
|
KSEG0: va=FFFFFFFF80000008, pa=8
|
|
isCached = 0x1
|
|
0xffffffffbfc00074 sd $t2, 136($t1)
|
|
KSEG0: va=FFFFFFFF80000088, pa=88
|
|
isCached = 0x1
|
|
KSEG0: va=FFFFFFFF80000088, pa=88
|
|
isCached = 0x1
|
|
0xffffffffbfc00078 sd $t2, 392($t1)
|
|
KSEG0: va=FFFFFFFF80000188, pa=188
|
|
isCached = 0x1
|
|
KSEG0: va=FFFFFFFF80000188, pa=188
|
|
isCached = 0x1
|
|
0xffffffffbfc0007c ld $t2, 528($t0)
|
|
KSEG1: va=FFFFFFFFBFC00210, pa=1FC00210
|
|
0xffffffffbfc00080 sd $t2, 16($t1)
|
|
KSEG0: va=FFFFFFFF80000010, pa=10
|
|
isCached = 0x1
|
|
KSEG0: va=FFFFFFFF80000010, pa=10
|
|
isCached = 0x1
|
|
0xffffffffbfc00084 sd $t2, 144($t1)
|
|
KSEG0: va=FFFFFFFF80000090, pa=90
|
|
isCached = 0x1
|
|
KSEG0: va=FFFFFFFF80000090, pa=90
|
|
isCached = 0x1
|
|
0xffffffffbfc00088 sd $t2, 400($t1)
|
|
KSEG0: va=FFFFFFFF80000190, pa=190
|
|
isCached = 0x1
|
|
KSEG0: va=FFFFFFFF80000190, pa=190
|
|
isCached = 0x1
|
|
0xffffffffbfc0008c ld $t2, 536($t0)
|
|
KSEG1: va=FFFFFFFFBFC00218, pa=1FC00218
|
|
0xffffffffbfc00090 sd $t2, 24($t1)
|
|
KSEG0: va=FFFFFFFF80000018, pa=18
|
|
isCached = 0x1
|
|
KSEG0: va=FFFFFFFF80000018, pa=18
|
|
isCached = 0x1
|
|
0xffffffffbfc00094 sd $t2, 152($t1)
|
|
KSEG0: va=FFFFFFFF80000098, pa=98
|
|
isCached = 0x1
|
|
KSEG0: va=FFFFFFFF80000098, pa=98
|
|
isCached = 0x1
|
|
0xffffffffbfc00098 sd $t2, 408($t1)
|
|
KSEG0: va=FFFFFFFF80000198, pa=198
|
|
isCached = 0x1
|
|
KSEG0: va=FFFFFFFF80000198, pa=198
|
|
isCached = 0x1
|
|
0xffffffffbfc0009c lui $t0, 0x8000
|
|
0xffffffffbfc000a0 ori $t0, $t0, 0x2000
|
|
0xffffffffbfc000a4 jr $t0
|
|
0xffffffffbfc000a8 nop
|
|
Jump to 0xffffffff80002000
|
|
.org 0x2000
|
|
__start:
|
|
0xffffffff80002000 j test
|
|
0xffffffff80002004 nop
|
|
test:
|
|
0xffffffff80002008 mfc0 $t8, $16, 0
|
|
0xffffffff8000200c lui $t9, 0xffff
|
|
0xffffffff80002010 ori $t9, $t9, 0xfffa
|
|
0xffffffff80002014 and $t8, $t8, $t9
|
|
0xffffffff80002018 mtc0 $t8, $16, 0
|
|
0xffffffff8000201c ssnop
|
|
0xffffffff80002020 ssnop
|
|
|
|
------------------ Processing Abstract Sequence (Instance 0) -------------------
|
|
|
|
Memory engine configuration: classifier=BUFFER_ACCESS, preparator=true, iterator=RANDOM, recursion-limit=1, count=100
|
|
MemoryEngine.solve: [instruction call (root: ld, preparator: null, data: false, atomic: false, allocatorAction: null), instruction call (root: sd, preparator: null, data: false, atomic: false, allocatorAction: null)]
|
|
MemoryEngine.solve: globalConstraints=MemoryAccessConstraints [null, [], []]
|
|
MemoryEngine.solve: accessTypes=[LOAD[DWORD], LOAD[DWORD]]
|
|
MemoryEngine.solve: accessConstraints=[MemoryAccessConstraints [null, [], []], MemoryAccessConstraints [null, [], []]]
|
|
Number of trajectories is 18
|
|
Trajectories are [[DTLB, DTLB, JTLB, DTLB, L1, L1], [DTLB, DTLB, JTLB, DTLB, L1, L2, L2, L1], [DTLB, DTLB, JTLB, DTLB, L1, L2, MEM, L2, L1], [DTLB, DTLB, JTLB, DTLB, L1, MEM, L1], [DTLB, DTLB, JTLB, DTLB, MEM], [DTLB, DTLB, JTLB], [JTLB, JTLB, DTLB, L1, L1], [JTLB, JTLB, DTLB, L1, L2, L2, L1], [JTLB, JTLB, DTLB, L1, L2, MEM, L2, L1], [JTLB, JTLB, DTLB, L1, MEM, L1], [JTLB, JTLB, DTLB, MEM], [JTLB, JTLB], [DTLB, JTLB], [L1, L1], [L1, L2, L2, L1], [L1, L2, MEM, L2, L1], [L1, MEM, L1], [MEM]]
|
|
Creating memory access chooser: MemoryAccessConstraints [null, [], []]
|
|
Add iterator for the trajectory: [DTLB, DTLB, JTLB, DTLB, L1, L1]
|
|
Creating memory access chooser: MemoryAccessConstraints [null, [], []]
|
|
Add iterator for the trajectory: [DTLB, DTLB, JTLB, DTLB, L1, L2, L2, L1]
|
|
Creating memory access chooser: MemoryAccessConstraints [null, [], []]
|
|
Add iterator for the trajectory: [DTLB, DTLB, JTLB, DTLB, L1, L2, MEM, L2, L1]
|
|
Creating memory access chooser: MemoryAccessConstraints [null, [], []]
|
|
Add iterator for the trajectory: [DTLB, DTLB, JTLB, DTLB, L1, MEM, L1]
|
|
Creating memory access chooser: MemoryAccessConstraints [null, [], []]
|
|
Add iterator for the trajectory: [DTLB, DTLB, JTLB, DTLB, MEM]
|
|
Creating memory access chooser: MemoryAccessConstraints [null, [], []]
|
|
Add iterator for the trajectory: [DTLB, DTLB, JTLB]
|
|
Creating memory access chooser: MemoryAccessConstraints [null, [], []]
|
|
Add iterator for the trajectory: [JTLB, JTLB, DTLB, L1, L1]
|
|
Creating memory access chooser: MemoryAccessConstraints [null, [], []]
|
|
Add iterator for the trajectory: [JTLB, JTLB, DTLB, L1, L2, L2, L1]
|
|
Creating memory access chooser: MemoryAccessConstraints [null, [], []]
|
|
Add iterator for the trajectory: [JTLB, JTLB, DTLB, L1, L2, MEM, L2, L1]
|
|
Creating memory access chooser: MemoryAccessConstraints [null, [], []]
|
|
Add iterator for the trajectory: [JTLB, JTLB, DTLB, L1, MEM, L1]
|
|
Creating memory access chooser: MemoryAccessConstraints [null, [], []]
|
|
Add iterator for the trajectory: [JTLB, JTLB, DTLB, MEM]
|
|
Creating memory access chooser: MemoryAccessConstraints [null, [], []]
|
|
Add iterator for the trajectory: [JTLB, JTLB]
|
|
Creating memory access chooser: MemoryAccessConstraints [null, [], []]
|
|
Add iterator for the trajectory: [DTLB, JTLB]
|
|
Creating memory access chooser: MemoryAccessConstraints [null, [], []]
|
|
Add iterator for the trajectory: [L1, L1]
|
|
Creating memory access chooser: MemoryAccessConstraints [null, [], []]
|
|
Add iterator for the trajectory: [L1, L2, L2, L1]
|
|
Creating memory access chooser: MemoryAccessConstraints [null, [], []]
|
|
Add iterator for the trajectory: [L1, L2, MEM, L2, L1]
|
|
Creating memory access chooser: MemoryAccessConstraints [null, [], []]
|
|
Add iterator for the trajectory: [L1, MEM, L1]
|
|
Creating memory access chooser: MemoryAccessConstraints [null, [], []]
|
|
Add iterator for the trajectory: [MEM]
|
|
Classifying memory access paths: LOAD[DWORD] 18 classes
|
|
Classifying memory access paths: LOAD[DWORD] 18 classes
|
|
Searching for a memory access path: [DTLB, JTLB]
|
|
Constraint: VA:VA.value[64] in [120000, FFFFFFFF]
|
|
Checking feasibility of the memory access: MemoryAccessConstraints [null, [], []]
|
|
General constraints: []
|
|
Solving path constraints
|
|
Constraint: VA:VA.value[64] in [120000, FFFFFFFF]
|
|
Solving result: [Variable[name=VA.value(0), data=Data[type=(BIT_VECTOR 64), value=0000000000000000000000000000000000000000000100100000000000000000]], Variable[name=VA.value_DTLB_1(1), data=Data[type=(BIT_VECTOR 64), value=0000000000000000000000000000000000000000000100100000000000000000]], Variable[name=VA.value_JTLB_1(1), data=Data[type=(BIT_VECTOR 64), value=0000000000000000000000000000000000000000000100100000000000000000]], Variable[name=VA.value_DTLB_1, data=Data[type=(BIT_VECTOR 64), value=0000000000000000000000000000000000000000000100100000000000000000]], Variable[name=VA.value, data=Data[type=(BIT_VECTOR 64), value=0000000000000000000000000000000000000000000100100000000000000000]], Variable[name=VA.value_JTLB_1, data=Data[type=(BIT_VECTOR 64), value=0000000000000000000000000000000000000000000100100000000000000000]]]
|
|
Memory access path of length 7 for trajectory [DTLB, JTLB]
|
|
Success
|
|
Searching for a memory access path: [DTLB, JTLB]
|
|
No feasible memory access path has been found
|
|
Searching for a memory access path: [DTLB, DTLB, JTLB, DTLB, L1, L1]
|
|
Constraint: VA:VA.value[64] in [120000, FFFFFFFF]
|
|
********************************************************************************
|
|
ATTENTION! An unexpected error has occurred:
|
|
java.lang.ClassCastException: class ru.ispras.fortress.solver.constraint.Formulas cannot be cast to class ru.ispras.fortress.expression.Node (ru.ispras.fortress.solver.constraint.Formulas and ru.ispras.fortress.expression.Node are in unnamed module of loader 'app')
|
|
|
|
The program will be terminated. Please contact us at:
|
|
microtesk-support@ispras.ru
|
|
We are sorry for the inconvenience.
|
|
|
|
Exception stack:
|
|
|
|
java.lang.ClassCastException: class ru.ispras.fortress.solver.constraint.Formulas cannot be cast to class ru.ispras.fortress.expression.Node (ru.ispras.fortress.solver.constraint.Formulas and ru.ispras.fortress.expression.Node are in unnamed module of loader 'app')
|
|
at ru.ispras.microtesk.mmu.test.engine.memory.SymbolicExecutor.executeStatement(ru/ispras/microtesk/mmu/test/engine/memory/SymbolicExecutor.java:598)
|
|
at ru.ispras.microtesk.mmu.test.engine.memory.SymbolicExecutor.executeProgram(ru/ispras/microtesk/mmu/test/engine/memory/SymbolicExecutor.java:467)
|
|
at ru.ispras.microtesk.mmu.test.engine.memory.SymbolicExecutor.executeEntry(ru/ispras/microtesk/mmu/test/engine/memory/SymbolicExecutor.java:366)
|
|
at ru.ispras.microtesk.mmu.test.engine.memory.SymbolicExecutor.execute(ru/ispras/microtesk/mmu/test/engine/memory/SymbolicExecutor.java:100)
|
|
at ru.ispras.microtesk.mmu.test.engine.memory.MemoryEngineUtils.isFeasibleEntry(ru/ispras/microtesk/mmu/test/engine/memory/MemoryEngineUtils.java:180)
|
|
at ru.ispras.microtesk.mmu.test.engine.memory.AccessIterator.getNext(ru/ispras/microtesk/mmu/test/engine/memory/AccessIterator.java:524)
|
|
at ru.ispras.microtesk.mmu.test.engine.memory.AccessIterator.hasNext(ru/ispras/microtesk/mmu/test/engine/memory/AccessIterator.java:324)
|
|
at ru.ispras.microtesk.mmu.test.engine.memory.AccessChooser.get(ru/ispras/microtesk/mmu/test/engine/memory/AccessChooser.java:103)
|
|
at ru.ispras.microtesk.mmu.test.engine.memory.AccessesIteratorRandom.next(ru/ispras/microtesk/mmu/test/engine/memory/AccessesIteratorRandom.java:63)
|
|
at ru.ispras.microtesk.mmu.test.engine.memory.AccessesIteratorRandom.init(ru/ispras/microtesk/mmu/test/engine/memory/AccessesIteratorRandom.java:43)
|
|
at ru.ispras.microtesk.mmu.test.engine.memory.AccessesIterator.initAccesses(ru/ispras/microtesk/mmu/test/engine/memory/AccessesIterator.java:265)
|
|
at ru.ispras.microtesk.mmu.test.engine.memory.AccessesIterator.init(ru/ispras/microtesk/mmu/test/engine/memory/AccessesIterator.java:140)
|
|
at ru.ispras.microtesk.mmu.test.engine.memory.MemoryEngine$1.init(ru/ispras/microtesk/mmu/test/engine/memory/MemoryEngine.java:265)
|
|
at ru.ispras.microtesk.test.sequence.combinator.CombinatorBase.init(ru/ispras/microtesk/test/sequence/combinator/CombinatorBase.java:84)
|
|
at ru.ispras.microtesk.test.sequence.combinator.CombinatorDiagonal.init(ru/ispras/microtesk/test/sequence/combinator/CombinatorDiagonal.java:27)
|
|
at ru.ispras.microtesk.test.engine.SequenceMerger.init(ru/ispras/microtesk/test/engine/SequenceMerger.java:49)
|
|
at ru.ispras.microtesk.test.engine.AbstractSequenceIterator.init(ru/ispras/microtesk/test/engine/AbstractSequenceIterator.java:37)
|
|
at ru.ispras.microtesk.test.engine.AbstractSequenceTestDataIterator.init(ru/ispras/microtesk/test/engine/AbstractSequenceTestDataIterator.java:56)
|
|
at ru.ispras.microtesk.test.engine.SequenceConcretizer.init(ru/ispras/microtesk/test/engine/SequenceConcretizer.java:90)
|
|
at ru.ispras.microtesk.test.engine.SequenceProcessor$ConcreteSequenceIterator.newConcreteSequenceIterator(ru/ispras/microtesk/test/engine/SequenceProcessor.java:211)
|
|
at ru.ispras.microtesk.test.engine.SequenceProcessor$ConcreteSequenceIterator.init(ru/ispras/microtesk/test/engine/SequenceProcessor.java:162)
|
|
at ru.ispras.microtesk.test.TemplateProcessor.processPostponedBlock(ru/ispras/microtesk/test/TemplateProcessor.java:433)
|
|
at ru.ispras.microtesk.test.TemplateProcessor.processPostponedBlocks(ru/ispras/microtesk/test/TemplateProcessor.java:328)
|
|
at ru.ispras.microtesk.test.TemplateProcessor.finish(ru/ispras/microtesk/test/TemplateProcessor.java:212)
|
|
at ru.ispras.microtesk.test.template.Template.endMainSection(ru/ispras/microtesk/test/template/Template.java:224)
|
|
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
|
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(jdk/internal/reflect/NativeMethodAccessorImpl.java:62)
|
|
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(jdk/internal/reflect/DelegatingMethodAccessorImpl.java:43)
|
|
at java.lang.reflect.Method.invoke(java/lang/reflect/Method.java:566)
|
|
at RUBY.generate(D:/WorkProjects/MicroTESK/microtesk-mips64/build/target/lib/ruby/template.rb:1020)
|
|
at RUBY.main(D:\WorkProjects\MicroTESK\microtesk-mips64\build\target\lib\ruby\microtesk.rb:33)
|
|
at org.jruby.RubyHash.each(org/jruby/RubyHash.java:1342)
|
|
at RUBY.main(D:\WorkProjects\MicroTESK\microtesk-mips64\build\target\lib\ruby\microtesk.rb:29)
|
|
at RUBY.(root)(D:\WorkProjects\MicroTESK\microtesk-mips64\build\target\lib\ruby\microtesk.rb:52)
|
|
at ru.ispras.microtesk.RubyRunner.run(ru/ispras/microtesk/RubyRunner.java:68)
|
|
at ru.ispras.microtesk.ScriptRunner.run(ru/ispras/microtesk/ScriptRunner.java:43)
|
|
at ru.ispras.microtesk.test.TestEngine.generate(ru/ispras/microtesk/test/TestEngine.java:171)
|
|
at ru.ispras.microtesk.MicroTESK.generate(ru/ispras/microtesk/MicroTESK.java:372)
|
|
at ru.ispras.microtesk.MicroTESK.runTask(ru/ispras/microtesk/MicroTESK.java:144)
|
|
at ru.ispras.microtesk.MicroTESK.main(ru/ispras/microtesk/MicroTESK.java:85)
|
|
|
|
********************************************************************************
|