Browse Source

Move old VM jump tests from EVM JIT to JSON file

cl-refactor
Paweł Bylica 10 years ago
parent
commit
2722632663
  1. 7
      evmjit/evmcc/test/jump/ackermann.ethel
  2. 1
      evmjit/evmcc/test/jump/ackermann.evm
  3. 1
      evmjit/evmcc/test/jump/badindirect1.evm
  4. 9
      evmjit/evmcc/test/jump/badindirect1.lll
  5. 1
      evmjit/evmcc/test/jump/badindirect2.evm
  6. 12
      evmjit/evmcc/test/jump/badindirect2.lll
  7. 1
      evmjit/evmcc/test/jump/badjump1.evm
  8. 6
      evmjit/evmcc/test/jump/badjump1.lll
  9. 1
      evmjit/evmcc/test/jump/badjump2.evm
  10. 9
      evmjit/evmcc/test/jump/badjump2.lll
  11. 5
      evmjit/evmcc/test/jump/call1.ethel
  12. 1
      evmjit/evmcc/test/jump/call1.evm
  13. 5
      evmjit/evmcc/test/jump/call2.ethel
  14. 1
      evmjit/evmcc/test/jump/call2.evm
  15. 5
      evmjit/evmcc/test/jump/fac.ethel
  16. 1
      evmjit/evmcc/test/jump/fac.evm
  17. 5
      evmjit/evmcc/test/jump/fac_tail.ethel
  18. 1
      evmjit/evmcc/test/jump/fac_tail.evm
  19. 6
      evmjit/evmcc/test/jump/fib1.ethel
  20. 1
      evmjit/evmcc/test/jump/fib1.evm
  21. 1
      evmjit/evmcc/test/jump/for1.evm
  22. 3
      evmjit/evmcc/test/jump/for1.lll
  23. 1
      evmjit/evmcc/test/jump/for2.evm
  24. 3
      evmjit/evmcc/test/jump/for2.lll
  25. 1
      evmjit/evmcc/test/jump/if1.ethel
  26. 1
      evmjit/evmcc/test/jump/if1.evm
  27. 1
      evmjit/evmcc/test/jump/if2.ethel
  28. 1
      evmjit/evmcc/test/jump/if2.evm
  29. 1
      evmjit/evmcc/test/jump/indirect1.evm
  30. 13
      evmjit/evmcc/test/jump/indirect1.lll
  31. 1
      evmjit/evmcc/test/jump/indirect2.evm
  32. 19
      evmjit/evmcc/test/jump/indirect2.lll
  33. 1
      evmjit/evmcc/test/jump/indirect3.evm
  34. 14
      evmjit/evmcc/test/jump/indirect3.lll
  35. 1
      evmjit/evmcc/test/jump/indirect4.evm
  36. 15
      evmjit/evmcc/test/jump/indirect4.lll
  37. 1
      evmjit/evmcc/test/jump/jump1.evm
  38. 11
      evmjit/evmcc/test/jump/jump1.lll
  39. 1
      evmjit/evmcc/test/jump/jump2.evm
  40. 10
      evmjit/evmcc/test/jump/jump2.lll
  41. 1
      evmjit/evmcc/test/jump/jump3.evm
  42. 10
      evmjit/evmcc/test/jump/jump3.lll
  43. 1
      evmjit/evmcc/test/jump/jump4.evm
  44. 17
      evmjit/evmcc/test/jump/jump4.lll
  45. 1
      evmjit/evmcc/test/jump/jump5.evm
  46. 16
      evmjit/evmcc/test/jump/jump5.lll
  47. 1
      evmjit/evmcc/test/jump/jump6.evm
  48. 32
      evmjit/evmcc/test/jump/jump6.lll
  49. 1
      evmjit/evmcc/test/jump/jumpi_at_the_end.evm
  50. 1
      evmjit/evmcc/test/jump/jumpi_at_the_end.lll
  51. 1
      evmjit/evmcc/test/jump/loop1.evm
  52. 27
      evmjit/evmcc/test/jump/loop1.lll
  53. 1
      evmjit/evmcc/test/jump/loop2.evm
  54. 28
      evmjit/evmcc/test/jump/loop2.lll
  55. 4
      evmjit/evmcc/test/jump/rec1.ethel
  56. 1
      evmjit/evmcc/test/jump/rec1.evm
  57. 10
      evmjit/evmcc/test/jump/when1.asm
  58. 1
      evmjit/evmcc/test/jump/when1.evm
  59. 2
      evmjit/evmcc/test/jump/when1.lll
  60. 296
      test/vmIOandFlowOperationsTestFiller.json

7
evmjit/evmcc/test/jump/ackermann.ethel

@ -1,7 +0,0 @@
let A m n =
if m == 0 then n+1
else if n == 0 then A (m-1) 1
else A (m-1) (A (m) (n-1))
return A 3 8

1
evmjit/evmcc/test/jump/ackermann.evm

@ -1 +0,0 @@
6009600360086012585d60005460206000f26000820e6047596000810e603859603460018303603084600185036012585d6012585d60445860436001830360016012585d604b5860018101905090509058

1
evmjit/evmcc/test/jump/badindirect1.evm

@ -1 +0,0 @@
601b602502585d

9
evmjit/evmcc/test/jump/badindirect1.lll

@ -1,9 +0,0 @@
;; Indirect jump out of code
(asm
27
37
MUL
JUMP
JUMPDEST
)

1
evmjit/evmcc/test/jump/badindirect2.evm

@ -1 +0,0 @@
60016003600302596000600058

12
evmjit/evmcc/test/jump/badindirect2.lll

@ -1,12 +0,0 @@
;; Indirect jump into data
(asm
1 ;; 0
3
3
MUL ;; 6
JUMPI ;; 7
0 ;; 8
0
JUMP
)

1
evmjit/evmcc/test/jump/badjump1.evm

@ -1 +0,0 @@
6103e758

6
evmjit/evmcc/test/jump/badjump1.lll

@ -1,6 +0,0 @@
;; Direct jump out of code.
(asm
999
JUMP
)

1
evmjit/evmcc/test/jump/badjump2.evm

@ -1 +0,0 @@
6004586000600058

9
evmjit/evmcc/test/jump/badjump2.lll

@ -1,9 +0,0 @@
;; Direct jump into data
(asm
4 ;; 0 0-3
JUMP ;; 2
0 ;; 3 3-4
0 ;; 5 4-7
JUMP ;; 6
)

5
evmjit/evmcc/test/jump/call1.ethel

@ -1,5 +0,0 @@
let f n = n + 1
return f 2

1
evmjit/evmcc/test/jump/call1.evm

@ -1 +0,0 @@
600760026010585d60005460206000f28060010190509058

5
evmjit/evmcc/test/jump/call2.ethel

@ -1,5 +0,0 @@
let f a b = a + b
return f 2 3

1
evmjit/evmcc/test/jump/call2.evm

@ -1 +0,0 @@
6009600260036012585d60005460206000f2818101905090509058

5
evmjit/evmcc/test/jump/fac.ethel

@ -1,5 +0,0 @@
let fac n =
if n == 0 then 1
else n * fac (n-1)
return fac 60

1
evmjit/evmcc/test/jump/fac.evm

@ -1 +0,0 @@
6007603c6010585d60005460206000f26000810e6026596020600182036010585d8102602858600190509058

5
evmjit/evmcc/test/jump/fac_tail.ethel

@ -1,5 +0,0 @@
let fac a n =
if n == 0 then a
else fac (a*n) (n-1)
return fac 1 60

1
evmjit/evmcc/test/jump/fac_tail.evm

@ -1 +0,0 @@
60096001603c6012585d60005460206000f26000810e6029596025818302600183036012585d602a5881905090509058

6
evmjit/evmcc/test/jump/fib1.ethel

@ -1,6 +0,0 @@
let fib n =
if n < 3 then 1
else fib (n-1) + fib (n-2)
return fib 10

1
evmjit/evmcc/test/jump/fib1.evm

@ -1 +0,0 @@
6007600a6010585d60005460206000f26003810a602f596020600282036010585d602a600183036010585d01603158600190509058

1
evmjit/evmcc/test/jump/for1.evm

@ -1 +0,0 @@
600a60805460006080530b0f60255960a0536080530160a054600160805303608054600558

3
evmjit/evmcc/test/jump/for1.lll

@ -1,3 +0,0 @@
(for [i]:10 (> @i 0) [i](- @i 1)
[j](+ @i @j)
)

1
evmjit/evmcc/test/jump/for2.evm

@ -1 +0,0 @@
6000608054600a6080530a0f60255960a0536080530160a054600160805301608054600558

3
evmjit/evmcc/test/jump/for2.lll

@ -1,3 +0,0 @@
(for [i]:0 (< @i 10) [i](+ @i 1)
[j](+ @i @j)
)

1
evmjit/evmcc/test/jump/if1.ethel

@ -1 +0,0 @@
return if 0 then 1 else 2

1
evmjit/evmcc/test/jump/if1.evm

@ -1 +0,0 @@
60006300000010596002630000001258600160005460206000f2

1
evmjit/evmcc/test/jump/if2.ethel

@ -1 +0,0 @@
return if 1 then 1 else 2

1
evmjit/evmcc/test/jump/if2.evm

@ -1 +0,0 @@
60016300000010596002630000001258600160005460206000f2

1
evmjit/evmcc/test/jump/indirect1.evm

@ -1 +0,0 @@
600460030158005d6001600054

13
evmjit/evmcc/test/jump/indirect1.lll

@ -1,13 +0,0 @@
;; Indirect JUMP
(asm
4 ;; 0
3 ;; 2
ADD ;; 4
JUMP ;; 5
STOP ;; 6
JUMPDEST ;; 7
1
0
MSTORE
)

1
evmjit/evmcc/test/jump/indirect2.evm

@ -1 +0,0 @@
600860060158005d6001600054005d600260005400

19
evmjit/evmcc/test/jump/indirect2.lll

@ -1,19 +0,0 @@
;; Indirect JUMP
(asm
8 ;; 0
6 ;; 2
ADD ;; 4
JUMP ;; 5 --> 14
STOP ;; 6
JUMPDEST ;; 7
1 ;; 8
0 ;; 10
MSTORE ;; 12
STOP ;; 13
JUMPDEST ;; 14
2
0
MSTORE
STOP
)

1
evmjit/evmcc/test/jump/indirect3.evm

@ -1 +0,0 @@
6001600460050159005d6001600054

14
evmjit/evmcc/test/jump/indirect3.lll

@ -1,14 +0,0 @@
;; Indirect JUMP
(asm
1 ;; 0
4 ;; 2
5 ;; 4
ADD ;; 6
JUMPI ;; 7
STOP ;; 8
JUMPDEST ;; 9
1
0
MSTORE
)

1
evmjit/evmcc/test/jump/indirect4.evm

@ -1 +0,0 @@
60006007600501596001600054005d00

15
evmjit/evmcc/test/jump/indirect4.lll

@ -1,15 +0,0 @@
;; Indirect JUMP
(asm
0 ;; 0
7 ;; 2
5 ;; 4
ADD ;; 6
JUMPI ;; 7
1 ;; 8
0 ;; 9
MSTORE ;; 10
STOP ;; 11
JUMPDEST ;; 12
STOP
)

1
evmjit/evmcc/test/jump/jump1.evm

@ -1 +0,0 @@
600458006001600154

11
evmjit/evmcc/test/jump/jump1.lll

@ -1,11 +0,0 @@
;; Direct JUMP.
;; output: memory[1] == 1
(asm
4 ;; 0
JUMP ;; 2
STOP ;; 3
1 ;; 4
1 ;; 6
MSTORE ;; 8
)

1
evmjit/evmcc/test/jump/jump2.evm

@ -1 +0,0 @@
6008586001600154

10
evmjit/evmcc/test/jump/jump2.lll

@ -1,10 +0,0 @@
;; Direct JUMP to the end of code.
;; output: memory should have size 0.
(asm
8 ;; 0
JUMP ;; 2
1 ;; 3
1 ;; 5
MSTORE ;; 7
)

1
evmjit/evmcc/test/jump/jump3.evm

@ -1 +0,0 @@
602a586001600154

10
evmjit/evmcc/test/jump/jump3.lll

@ -1,10 +0,0 @@
;; Direct JUMP past the end of code.
;; output: memory should have size 0.
(asm
42
JUMP
1
1
MSTORE
)

1
evmjit/evmcc/test/jump/jump4.evm

@ -1 +0,0 @@
600b6009580000600558005d6001600154

17
evmjit/evmcc/test/jump/jump4.lll

@ -1,17 +0,0 @@
;; Direct JUMP.
;; output: memory[1] = 1
(asm
11 ;; 0
9 ;; 2
JUMP ;; 4 --> 9
STOP ;; 5
STOP ;; 6
5 ;; 7
JUMP ;; 9 --> 11
STOP ;; 10
JUMPDEST
1 ;; 11
1
MSTORE
)

1
evmjit/evmcc/test/jump/jump5.evm

@ -1 +0,0 @@
6005600e585d600160015400600f5800

16
evmjit/evmcc/test/jump/jump5.lll

@ -1,16 +0,0 @@
;; Direct JUMP.
;; output: memory[1] = 1
(asm
5 ;; 0
14 ;; 2
JUMP ;; 4 --> 14
JUMPDEST ;; 5
1 ;; 6
1 ;; 8
MSTORE ;; 10
STOP ;; 11
15 ;; 12
JUMP ;; 14 --> 5
STOP ;; 15
)

1
evmjit/evmcc/test/jump/jump6.evm

@ -1 +0,0 @@
600358600f600d58006014600758005d6001600154005d600260025400

32
evmjit/evmcc/test/jump/jump6.lll

@ -1,32 +0,0 @@
;; Direct JUMP.
;; output: memory[1] = 1
;; 0, 2 --> 3 .. 7 --> 13 -*-> 15 .. 19
(asm
3 ;; 0
JUMP ;; 2
15 ;; 3 <- start
13 ;; 5
JUMP ;; 7 <- b
STOP ;; 8
20 ;; 9
7 ;; 11
JUMP ;; 13 <- a
STOP ;; 14
JUMPDEST ;; 15 <- c
1 ;; 16
1 ;; 18
MSTORE ;; 19
STOP ;; 20
JUMPDEST ;; 21 <- d
2 ;; 22
2 ;; 24
MSTORE ;; 26
STOP ;; 27
)

1
evmjit/evmcc/test/jump/jumpi_at_the_end.evm

@ -1 +0,0 @@
600a6000545d6000536001900380600054600659

1
evmjit/evmcc/test/jump/jumpi_at_the_end.lll

@ -1 +0,0 @@
(asm 10 0 MSTORE JUMPDEST 0 MLOAD 1 SWAP1 SUB DUP1 0 MSTORE 6 JUMPI)

1
evmjit/evmcc/test/jump/loop1.evm

@ -1 +0,0 @@
600a600181038060025960005460015460025400

27
evmjit/evmcc/test/jump/loop1.lll

@ -1,27 +0,0 @@
;; Produces 1 2 3 4 5 6 7 8 9 10 on the stack and exits
(asm
10
;; 2
1
DUP2
SUB
DUP1
2
JUMPI
;; stack = 1 2 3 4 5 6 7 8 9 10
0
MSTORE
1
MSTORE
2
MSTORE
;;3
;;MSTORE
STOP
)

1
evmjit/evmcc/test/jump/loop2.evm

@ -1 +0,0 @@
600a80600190038060025960005460015460025400

28
evmjit/evmcc/test/jump/loop2.lll

@ -1,28 +0,0 @@
;; Produces 1 2 3 4 5 6 7 8 9 10 on the stack and exits
(asm
10
;; 2
DUP1
1
SWAP1
SUB
DUP1
2
JUMPI
;; stack = 1 2 3 4 5 6 7 8 9 10
0
MSTORE
1
MSTORE
2
MSTORE
;;3
;;MSTORE
STOP
)

4
evmjit/evmcc/test/jump/rec1.ethel

@ -1,4 +0,0 @@
let f n =
if n == 0 then 2 else f (n-1)
return f 10

1
evmjit/evmcc/test/jump/rec1.evm

@ -1 +0,0 @@
6007600a6010585d60005460206000f26000810e6024596020600182036010585d602658600290509058

10
evmjit/evmcc/test/jump/when1.asm

@ -1,10 +0,0 @@
.code:
PUSH 1
NOT
PUSH [tag0]
JUMPI
PUSH 13
PUSH 128
MSTORE
tag0:

1
evmjit/evmcc/test/jump/when1.evm

@ -1 +0,0 @@
60010f600b59600d608054

2
evmjit/evmcc/test/jump/when1.lll

@ -1,2 +0,0 @@
(when (> 1 0) [i] 13)

296
test/vmIOandFlowOperationsTestFiller.json

@ -3033,7 +3033,7 @@
} }
}, },
"byte1": { "memory1": {
"env" : { "env" : {
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6",
"currentNumber" : "0", "currentNumber" : "0",
@ -3046,7 +3046,7 @@
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
"balance" : "1000000000000000000", "balance" : "1000000000000000000",
"nonce" : "0", "nonce" : "0",
"code" : "(asm 0x112233445566778899001122334455667788990011223344556677889900aabb 0 BYTE 0x112233445566778899001122334455667788990011223344556677889900aabb 1 BYTE 0x112233445566778899001122334455667788990011223344556677889900aabb 2 BYTE 0x112233445566778899001122334455667788990011223344556677889900aabb 3 BYTE 0x112233445566778899001122334455667788990011223344556677889900aabb 4 BYTE 0x112233445566778899001122334455667788990011223344556677889900aabb 5 BYTE 0x112233445566778899001122334455667788990011223344556677889900aabb 6 BYTE 0x112233445566778899001122334455667788990011223344556677889900aabb 7 BYTE 0x112233445566778899001122334455667788990011223344556677889900aabb 8 BYTE 0x112233445566778899001122334455667788990011223344556677889900aabb 9 BYTE 0x112233445566778899001122334455667788990011223344556677889900aabb 10 BYTE 0x112233445566778899001122334455667788990011223344556677889900aabb 11 BYTE 0x112233445566778899001122334455667788990011223344556677889900aabb 12 BYTE 0x112233445566778899001122334455667788990011223344556677889900aabb 13 BYTE 0x112233445566778899001122334455667788990011223344556677889900aabb 14 BYTE 0x112233445566778899001122334455667788990011223344556677889900aabb 15 BYTE 0x112233445566778899001122334455667788990011223344556677889900aabb 16 BYTE 0x112233445566778899001122334455667788990011223344556677889900aabb 17 BYTE 0x112233445566778899001122334455667788990011223344556677889900aabb 18 BYTE 0x112233445566778899001122334455667788990011223344556677889900aabb 19 BYTE 0x112233445566778899001122334455667788990011223344556677889900aabb 20 BYTE 0x112233445566778899001122334455667788990011223344556677889900aabb 21 BYTE 0x112233445566778899001122334455667788990011223344556677889900aabb 22 BYTE 0x112233445566778899001122334455667788990011223344556677889900aabb 23 BYTE 0x112233445566778899001122334455667788990011223344556677889900aabb 24 BYTE 0x112233445566778899001122334455667788990011223344556677889900aabb 25 BYTE 0x112233445566778899001122334455667788990011223344556677889900aabb 26 BYTE 0x112233445566778899001122334455667788990011223344556677889900aabb 27 BYTE 0x112233445566778899001122334455667788990011223344556677889900aabb 28 BYTE 0x112233445566778899001122334455667788990011223344556677889900aabb 29 BYTE 0x112233445566778899001122334455667788990011223344556677889900aabb 30 BYTE 0x112233445566778899001122334455667788990011223344556677889900aabb 31 BYTE 0x112233445566778899001122334455667788990011223344556677889900aabb 32 BYTE 0x112233445566778899001122334455667788990011223344556677889900aabb 2014 BYTE 0 0 SSTORE)", "code" : "(asm 2 0 MSTORE8 3 1 MSTORE8 0 MLOAD 1 MLOAD ADD 2 MSTORE 64 0 RETURN)",
"storage": {} "storage": {}
} }
}, },
@ -3061,7 +3061,7 @@
} }
}, },
"memory1": { "return1": {
"env" : { "env" : {
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6",
"currentNumber" : "0", "currentNumber" : "0",
@ -3074,7 +3074,7 @@
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
"balance" : "1000000000000000000", "balance" : "1000000000000000000",
"nonce" : "0", "nonce" : "0",
"code" : "(asm 2 0 MSTORE8 3 1 MSTORE8 0 MLOAD 1 MLOAD ADD 2 MSTORE 64 0 RETURN)", "code" : "(asm 1 1000000 RETURN)",
"storage": {} "storage": {}
} }
}, },
@ -3089,7 +3089,7 @@
} }
}, },
"return1": { "return2": {
"env" : { "env" : {
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6",
"currentNumber" : "0", "currentNumber" : "0",
@ -3102,7 +3102,7 @@
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
"balance" : "1000000000000000000", "balance" : "1000000000000000000",
"nonce" : "0", "nonce" : "0",
"code" : "(asm 1 1000000 RETURN)", "code" : "{ [i] 1 ( if (> @i 0) { (return 39) [i] 2 } (return 1) ) }",
"storage": {} "storage": {}
} }
}, },
@ -3117,7 +3117,7 @@
} }
}, },
"return2": { "stackjump1": {
"env" : { "env" : {
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6",
"currentNumber" : "0", "currentNumber" : "0",
@ -3130,7 +3130,7 @@
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
"balance" : "1000000000000000000", "balance" : "1000000000000000000",
"nonce" : "0", "nonce" : "0",
"code" : "{ [i] 1 ( if (> @i 0) { (return 39) [i] 2 } (return 1) ) }", "code" : "(asm 0x4 0x6 0x9 0x14 JUMP JUMPDEST 0xa SUB 0x0 MSTORE MSIZE 0x0 RETURN JUMPDEST 0x0 MSTORE ADD 0x9 JUMP)",
"storage": {} "storage": {}
} }
}, },
@ -3145,7 +3145,7 @@
} }
}, },
"stackjump1": { "kv1": {
"env" : { "env" : {
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6",
"currentNumber" : "0", "currentNumber" : "0",
@ -3158,7 +3158,7 @@
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
"balance" : "1000000000000000000", "balance" : "1000000000000000000",
"nonce" : "0", "nonce" : "0",
"code" : "(asm 0x4 0x6 0x9 0x14 JUMP JUMPDEST 0xa SUB 0x0 MSTORE MSIZE 0x0 RETURN JUMPDEST 0x0 MSTORE ADD 0x9 JUMP)", "code" : "{ [[69]] (caller) (return 0 (lll (when (= (caller) @@69) (for {} (< @i (calldatasize)) [i](+ @i 64) [[ (calldataload @i) ]] (calldataload (+ @i 32)) ) ) 0))}",
"storage": {} "storage": {}
} }
}, },
@ -3173,7 +3173,36 @@
} }
}, },
"kv1": { "jumpi_at_the_end" : {
"env" : {
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
"currentDifficulty" : "256",
"currentGasLimit" : "10000000",
"currentNumber" : "0",
"currentTimestamp" : "1",
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
"exec" : {
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
"caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
"code" : "(asm 10 0 MSTORE JUMPDEST 0 MLOAD 1 SWAP1 SUB DUP1 0 MSTORE 6 JUMPI)",
"data" : "0x",
"gas" : "1000",
"gasPrice" : "100000000000000",
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
"value" : "1000000000000000000"
},
"pre" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
"balance" : "1000000000000000000",
"code" : "(asm 10 0 MSTORE JUMPDEST 0 MLOAD 1 SWAP1 SUB DUP1 0 MSTORE 5 JUMPI)",
"nonce" : "0",
"storage" : {}
}
}
},
"bad_indirect_jump1": {
"env" : { "env" : {
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6",
"currentNumber" : "0", "currentNumber" : "0",
@ -3186,7 +3215,7 @@
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
"balance" : "1000000000000000000", "balance" : "1000000000000000000",
"nonce" : "0", "nonce" : "0",
"code" : "{ [[69]] (caller) (return 0 (lll (when (= (caller) @@69) (for {} (< @i (calldatasize)) [i](+ @i 64) [[ (calldataload @i) ]] (calldataload (+ @i 32)) ) ) 0))}", "code" : "(asm 27 37 MUL JUMP JUMPDEST)",
"storage": {} "storage": {}
} }
}, },
@ -3201,32 +3230,255 @@
} }
}, },
"jumpi_at_the_end" : { "bad_indirect_jump2": {
"env" : { "env" : {
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6",
"currentNumber" : "0",
"currentGasLimit" : "1000000",
"currentDifficulty" : "256", "currentDifficulty" : "256",
"currentGasLimit" : "10000000", "currentTimestamp" : "1",
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba"
},
"pre" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
"balance" : "1000000000000000000",
"nonce" : "0",
"code" : "(asm 1 3 3 MUL JUMPI 0 0 JUMP)",
"storage": {}
}
},
"exec" : {
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
"caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
"value" : "1000000000000000000",
"data" : "",
"gasPrice" : "100000000000000",
"gas" : "10000"
}
},
"for_loop1": {
"env" : {
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6",
"currentNumber" : "0", "currentNumber" : "0",
"currentGasLimit" : "1000000",
"currentDifficulty" : "256",
"currentTimestamp" : "1", "currentTimestamp" : "1",
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba"
},
"pre" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
"balance" : "1000000000000000000",
"nonce" : "0",
"code" : "(for [i]:10 (> @i 0) [i](- @i 1) [j](+ @i @j))",
"storage": {}
}
}, },
"exec" : { "exec" : {
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
"caller" : "cd1722f3947def4cf144679da39c4c32bdc35681", "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
"code" : "(asm 10 0 MSTORE JUMPDEST 0 MLOAD 1 SWAP1 SUB DUP1 0 MSTORE 6 JUMPI)", "value" : "1000000000000000000",
"data" : "0x", "data" : "",
"gas" : "1000",
"gasPrice" : "100000000000000", "gasPrice" : "100000000000000",
"gas" : "10000"
}
},
"for_loop2": {
"env" : {
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6",
"currentNumber" : "0",
"currentGasLimit" : "1000000",
"currentDifficulty" : "256",
"currentTimestamp" : "1",
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba"
},
"pre" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
"balance" : "1000000000000000000",
"nonce" : "0",
"code" : "(for [i]:0 (< @i 10) [i](+ @i 1) [j](+ @i @j))",
"storage": {}
}
},
"exec" : {
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681", "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
"value" : "1000000000000000000" "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
"value" : "1000000000000000000",
"data" : "",
"gasPrice" : "100000000000000",
"gas" : "10000"
}
},
"indirect_jump1": {
"env" : {
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6",
"currentNumber" : "0",
"currentGasLimit" : "1000000",
"currentDifficulty" : "256",
"currentTimestamp" : "1",
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba"
}, },
"pre" : { "pre" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
"balance" : "1000000000000000000", "balance" : "1000000000000000000",
"code" : "(asm 10 0 MSTORE JUMPDEST 0 MLOAD 1 SWAP1 SUB DUP1 0 MSTORE 5 JUMPI)",
"nonce" : "0", "nonce" : "0",
"storage" : {} "code" : "(asm 4 3 ADD JUMP STOP JUMPDEST 1 0 MSTORE MSIZE 0 RETURN)",
"storage": {}
}
},
"exec" : {
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
"caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
"value" : "1000000000000000000",
"data" : "",
"gasPrice" : "100000000000000",
"gas" : "10000"
}
},
"indirect_jump2": {
"env" : {
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6",
"currentNumber" : "0",
"currentGasLimit" : "1000000",
"currentDifficulty" : "256",
"currentTimestamp" : "1",
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba"
},
"pre" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
"balance" : "1000000000000000000",
"nonce" : "0",
"code" : "(asm 8 6 ADD JUMP STOP JUMPDEST 1 0 MSTORE STOP JUMPDEST 2 0 MSTORE MSIZE 0 RETURN)",
"storage": {}
}
},
"exec" : {
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
"caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
"value" : "1000000000000000000",
"data" : "",
"gasPrice" : "100000000000000",
"gas" : "10000"
}
},
"indirect_jump3": {
"env" : {
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6",
"currentNumber" : "0",
"currentGasLimit" : "1000000",
"currentDifficulty" : "256",
"currentTimestamp" : "1",
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba"
},
"pre" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
"balance" : "1000000000000000000",
"nonce" : "0",
"code" : "(asm 1 4 5 ADD JUMPI STOP JUMPDEST 1 0 MSTORE MSIZE 0 RETURN)",
"storage": {}
}
},
"exec" : {
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
"caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
"value" : "1000000000000000000",
"data" : "",
"gasPrice" : "100000000000000",
"gas" : "10000"
}
},
"indirect_jump4": {
"env" : {
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6",
"currentNumber" : "0",
"currentGasLimit" : "1000000",
"currentDifficulty" : "256",
"currentTimestamp" : "1",
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba"
},
"pre" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
"balance" : "1000000000000000000",
"nonce" : "0",
"code" : "(asm 0 7 5 ADD JUMPI 1 0 MSTORE STOP JUMPDEST)",
"storage": {}
}
},
"exec" : {
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
"caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
"value" : "1000000000000000000",
"data" : "",
"gasPrice" : "100000000000000",
"gas" : "10000"
} }
},
"stack_loop": {
"env" : {
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6",
"currentNumber" : "0",
"currentGasLimit" : "1000000",
"currentDifficulty" : "256",
"currentTimestamp" : "1",
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba"
},
"pre" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
"balance" : "1000000000000000000",
"nonce" : "0",
"code" : "(asm 10 JUMPDEST 1 DUP2 SUB DUP1 2 JUMPI 0 MSTORE8 1 MSTORE8 2 MSTORE8 3 MSTORE8 4 MSTORE8 5 MSTORE8 6 MSTORE8 7 MSTORE8 8 MSTORE8 9 MSTORE8 MSIZE 0 RETURN)",
"storage": {}
}
},
"exec" : {
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
"caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
"value" : "1000000000000000000",
"data" : "",
"gasPrice" : "100000000000000",
"gas" : "10000"
}
},
"when": {
"env" : {
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6",
"currentNumber" : "0",
"currentGasLimit" : "1000000",
"currentDifficulty" : "256",
"currentTimestamp" : "1",
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba"
},
"pre" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
"balance" : "1000000000000000000",
"nonce" : "0",
"code" : "(when (> 1 0) [i] 13)",
"storage": {}
}
},
"exec" : {
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
"caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
"value" : "1000000000000000000",
"data" : "",
"gasPrice" : "100000000000000",
"gas" : "10000"
} }
} }
} }

Loading…
Cancel
Save