diff --git a/pvm/LICENSE b/pvm/LICENSE new file mode 100644 index 00000000..035bf154 --- /dev/null +++ b/pvm/LICENSE @@ -0,0 +1,26 @@ +The `programs/riscv_*` test files are licensed under the following terms: + +Copyright (c) 2012-2015, The Regents of the University of California (Regents). +All Rights Reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. Neither the name of the Regents nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +IN NO EVENT SHALL REGENTS BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, +SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING +OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF REGENTS HAS +BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +REGENTS SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE SOFTWARE AND ACCOMPANYING DOCUMENTATION, IF ANY, PROVIDED +HEREUNDER IS PROVIDED "AS IS". REGENTS HAS NO OBLIGATION TO PROVIDE +MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. diff --git a/pvm/README.md b/pvm/README.md new file mode 100644 index 00000000..0959268e --- /dev/null +++ b/pvm/README.md @@ -0,0 +1,78 @@ +# PVM Test Vectors, version 0.4 + +## How to use this + +The [`programs`](./programs) directory contains `.json` files, each containing a single test. + +These are meant to test the PVM function Ψ from the Graypaper's Appendix A (equation 203 from v0.2.1 of the paper). + +See [schema.asn](./schema.asn) for a human-readable schema of what each of the fields mean. + +See [schema.json](./schema.json) for a JSON Schema. + +See [TESTCASES.md](./TESTCASES.md) for a human-readable index of all of the test cases. + +## TODO + + * 100% instruction coverage + * Tests for abnormal skip values for each instruction type + * Tests involving host calls + * Tests for invalid/malformed program blobs + * More gas metering tests; proper gas cost model (current one is a placeholder) + +## Changelog + +### v0.4 + + * The tests now target 64-bit PVM, in alignment with GP 0.5.4. + * The `trap` exit status is now called `panic` to align with the GP. + * Added new exit status: `page-fault`; tests which previously panicked when accessing unpaged memory now generate page faults. + * Added 106 new tests from the [RISC-V test suite](https://github.com/riscv-software-src/riscv-tests) transpiled into PVM. + +### v0.3 + + * Removed tests which were testing gas behavior that is not yet described in the GP: + - `inst_load_u8_trap` + - `inst_store_u8_trap_inaccessible` + - `inst_store_u8_trap_read_only` + +### v0.2 + + * Bitmask paddings are now filled with zeros, in alignment with the GP. + * Disassemblies now end with an `invalid` instruction to signify places where + the execution traps when going out of bounds. This is a purely cosmetic change + to the reference disassemblies and doesn't affect the test vectors themselves. + * The `inst_rem_signed` test was changed to make the output value non-zero. + (The behavior is unchanged; the instruction still works the same as before.) + * Set the initial value of the output register to a non-zero for the following tests: + (The behavior is unchanged; the instructions still work the same as before.) + - `inst_rem_signed_with_overflow` + - `inst_set_greater_than_signed_imm_0` + - `inst_set_greater_than_unsigned_imm_0`, + - `inst_set_less_than_signed_0` + - `inst_set_less_than_signed_imm_0` + - `inst_set_less_than_unsigned_0`, + - `inst_set_less_than_unsigned_imm_0` + * Add new tests: + - `inst_load_i16` + - `inst_load_i8` + - `inst_load_imm_and_jump` + - `inst_load_indirect_i16_with_offset` + - `inst_load_indirect_i16_without_offset` + - `inst_load_indirect_i8_with_offset` + - `inst_load_indirect_i8_without_offset` + - `inst_load_indirect_u16_with_offset` + - `inst_load_indirect_u16_without_offset` + - `inst_load_indirect_u32_with_offset` + - `inst_load_indirect_u32_without_offset` + - `inst_load_indirect_u8_with_offset` + - `inst_load_indirect_u8_without_offset` + - `inst_load_u16` + - `inst_load_u32` + - `inst_store_imm_u16` + - `inst_store_imm_u32` + - `inst_store_imm_u8` + +### v0.1 + + * Initial test vectors. diff --git a/pvm/TESTCASES.md b/pvm/TESTCASES.md new file mode 100644 index 00000000..82639acb --- /dev/null +++ b/pvm/TESTCASES.md @@ -0,0 +1,35959 @@ +# Testcases + +This file contains a human-readable index of all of the testcases, +along with their disassemblies and other relevant information. + + +## gas_basic_consume_all + +``` + : @0 + 0: 64 00 r0 = r0 + 2: invalid +``` + +Program should end with: panic + +Final value of the program counter: 2 + +Gas consumed: 2 -> 0 + + +## inst_add_32 + +Initial non-zero registers: + * r7 = 0x1 + * r8 = 0x2 + +``` + : @0 + 0: be 87 09 i32 r9 = r7 + r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x3 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_add_32_with_overflow + +Initial non-zero registers: + * r7 = 0xffffffffffffffff + * r8 = 0x2 + +``` + : @0 + 0: be 87 09 i32 r9 = r7 + r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x1 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_add_32_with_truncation + +Initial non-zero registers: + * r7 = 0x3333333311111111 + * r8 = 0x3333333311111111 + +``` + : @0 + 0: be 87 09 i32 r9 = r7 + r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x22222222 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_add_32_with_truncation_and_sign_extension + +Initial non-zero registers: + * r7 = 0x3333333322222222 + * r8 = 0x3333333366666666 + +``` + : @0 + 0: be 87 09 i32 r9 = r7 + r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0xffffffff88888888 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_add_64 + +Initial non-zero registers: + * r7 = 0x1 + * r8 = 0x2 + +``` + : @0 + 0: c8 87 09 r9 = r7 + r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x3 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_add_64_with_overflow + +Initial non-zero registers: + * r7 = 0xffffffffffffffff + * r8 = 0x2 + +``` + : @0 + 0: c8 87 09 r9 = r7 + r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x1 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_add_imm_32 + +Initial non-zero registers: + * r7 = 0x1 + +``` + : @0 + 0: 83 79 02 i32 r9 = r7 + 0x2 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x3 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_add_imm_32_with_truncation + +Initial non-zero registers: + * r7 = 0x3333333311111111 + +``` + : @0 + 0: 83 79 11 11 11 11 i32 r9 = r7 + 0x11111111 + 6: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x22222222 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 6 + +Gas consumed: 10000 -> 9998 + + +## inst_add_imm_32_with_truncation_and_sign_extension + +Initial non-zero registers: + * r7 = 0x3333333322222222 + +``` + : @0 + 0: 83 79 66 66 66 66 i32 r9 = r7 + 0x66666666 + 6: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0xffffffff88888888 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 6 + +Gas consumed: 10000 -> 9998 + + +## inst_add_imm_64 + +Initial non-zero registers: + * r7 = 0x1111111111111111 + +``` + : @0 + 0: 95 79 02 r9 = r7 + 0x2 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x1111111111111113 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_and + +Initial non-zero registers: + * r7 = 0x5 + * r8 = 0x3 + +``` + : @0 + 0: d2 87 09 r9 = r7 & r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x1 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_and_imm + +Initial non-zero registers: + * r7 = 0x5 + +``` + : @0 + 0: 84 79 03 r9 = r7 & 0x3 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x1 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_branch_eq_imm_nok + +``` + : @0 + 0: 33 07 d2 04 r7 = 0x4d2 + 4: 51 27 d3 04 06 jump 10 if r7 == 1235 + : @1 + 9: 00 trap + : @2 + 10: 14 07 ef be ad de 00 00 00 00 r7 = 0xdeadbeef + 20: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0x4d2 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 9 + +Gas consumed: 10000 -> 9997 + + +## inst_branch_eq_imm_ok + +``` + : @0 + 0: 33 07 d2 04 r7 = 0x4d2 + 4: 51 27 d2 04 06 jump 10 if r7 == 1234 + : @1 + 9: 00 trap + : @2 + 10: 14 07 ef be ad de 00 00 00 00 r7 = 0xdeadbeef + 20: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0xdeadbeef (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 20 + +Gas consumed: 10000 -> 9996 + + +## inst_branch_eq_nok + +``` + : @0 + 0: 33 07 d2 04 r7 = 0x4d2 + 4: 33 08 d3 04 r8 = 0x4d3 + 8: aa 87 04 jump 12 if r7 == r8 + : @1 + 11: 00 trap + : @2 + 12: 14 07 ef be ad de 00 00 00 00 r7 = 0xdeadbeef + 22: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0x4d2 (initially was 0x0) + * r8 = 0x4d3 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9996 + + +## inst_branch_eq_ok + +``` + : @0 + 0: 33 07 d2 04 r7 = 0x4d2 + 4: 33 08 d2 04 r8 = 0x4d2 + 8: aa 87 04 jump 12 if r7 == r8 + : @1 + 11: 00 trap + : @2 + 12: 14 07 ef be ad de 00 00 00 00 r7 = 0xdeadbeef + 22: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0xdeadbeef (initially was 0x0) + * r8 = 0x4d2 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 22 + +Gas consumed: 10000 -> 9995 + + +## inst_branch_greater_or_equal_signed_imm_nok + +``` + : @0 + 0: 33 07 f6 r7 = 0xfffffffffffffff6 + 3: 59 17 0a 05 jump 8 if r7 >=s 10 + : @1 + 7: 00 trap + : @2 + 8: 14 07 ef be ad de 00 00 00 00 r7 = 0xdeadbeef + 18: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0xfffffffffffffff6 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 7 + +Gas consumed: 10000 -> 9997 + + +## inst_branch_greater_or_equal_signed_imm_ok + +``` + : @0 + 0: 33 07 0a r7 = 0xa + 3: 59 17 f6 05 jump 8 if r7 >=s 4294967286 + : @1 + 7: 00 trap + : @2 + 8: 14 07 ef be ad de 00 00 00 00 r7 = 0xdeadbeef + 18: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0xdeadbeef (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 18 + +Gas consumed: 10000 -> 9996 + + +## inst_branch_greater_or_equal_signed_nok + +``` + : @0 + 0: 33 07 f6 r7 = 0xfffffffffffffff6 + 3: 33 08 0a r8 = 0xa + 6: af 87 04 jump 10 if r7 >=s r8 + : @1 + 9: 00 trap + : @2 + 10: 14 07 ef be ad de 00 00 00 00 r7 = 0xdeadbeef + 20: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0xfffffffffffffff6 (initially was 0x0) + * r8 = 0xa (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 9 + +Gas consumed: 10000 -> 9996 + + +## inst_branch_greater_or_equal_signed_ok + +``` + : @0 + 0: 33 07 0a r7 = 0xa + 3: 33 08 f6 r8 = 0xfffffffffffffff6 + 6: af 87 04 jump 10 if r7 >=s r8 + : @1 + 9: 00 trap + : @2 + 10: 14 07 ef be ad de 00 00 00 00 r7 = 0xdeadbeef + 20: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0xdeadbeef (initially was 0x0) + * r8 = 0xfffffffffffffff6 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 20 + +Gas consumed: 10000 -> 9995 + + +## inst_branch_greater_or_equal_unsigned_imm_nok + +``` + : @0 + 0: 33 07 0a r7 = 0xa + 3: 55 17 f6 05 jump 8 if r7 >=u 4294967286 + : @1 + 7: 00 trap + : @2 + 8: 14 07 ef be ad de 00 00 00 00 r7 = 0xdeadbeef + 18: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0xa (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 7 + +Gas consumed: 10000 -> 9997 + + +## inst_branch_greater_or_equal_unsigned_imm_ok + +``` + : @0 + 0: 33 07 f6 r7 = 0xfffffffffffffff6 + 3: 55 17 0a 05 jump 8 if r7 >=u 10 + : @1 + 7: 00 trap + : @2 + 8: 14 07 ef be ad de 00 00 00 00 r7 = 0xdeadbeef + 18: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0xdeadbeef (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 18 + +Gas consumed: 10000 -> 9996 + + +## inst_branch_greater_or_equal_unsigned_nok + +``` + : @0 + 0: 33 07 0a r7 = 0xa + 3: 33 08 f6 r8 = 0xfffffffffffffff6 + 6: ae 87 04 jump 10 if r7 >=u r8 + : @1 + 9: 00 trap + : @2 + 10: 14 07 ef be ad de 00 00 00 00 r7 = 0xdeadbeef + 20: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0xa (initially was 0x0) + * r8 = 0xfffffffffffffff6 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 9 + +Gas consumed: 10000 -> 9996 + + +## inst_branch_greater_or_equal_unsigned_ok + +``` + : @0 + 0: 33 07 f6 r7 = 0xfffffffffffffff6 + 3: 33 08 0a r8 = 0xa + 6: ae 87 04 jump 10 if r7 >=u r8 + : @1 + 9: 00 trap + : @2 + 10: 14 07 ef be ad de 00 00 00 00 r7 = 0xdeadbeef + 20: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0xdeadbeef (initially was 0x0) + * r8 = 0xa (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 20 + +Gas consumed: 10000 -> 9995 + + +## inst_branch_greater_signed_imm_nok + +``` + : @0 + 0: 33 07 f6 r7 = 0xfffffffffffffff6 + 3: 5a 17 0a 05 jump 8 if r7 >s 10 + : @1 + 7: 00 trap + : @2 + 8: 14 07 ef be ad de 00 00 00 00 r7 = 0xdeadbeef + 18: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0xfffffffffffffff6 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 7 + +Gas consumed: 10000 -> 9997 + + +## inst_branch_greater_signed_imm_ok + +``` + : @0 + 0: 33 07 0a r7 = 0xa + 3: 5a 17 f6 05 jump 8 if r7 >s 4294967286 + : @1 + 7: 00 trap + : @2 + 8: 14 07 ef be ad de 00 00 00 00 r7 = 0xdeadbeef + 18: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0xdeadbeef (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 18 + +Gas consumed: 10000 -> 9996 + + +## inst_branch_greater_unsigned_imm_nok + +``` + : @0 + 0: 33 07 0a r7 = 0xa + 3: 56 17 f6 05 jump 8 if r7 >u 4294967286 + : @1 + 7: 00 trap + : @2 + 8: 14 07 ef be ad de 00 00 00 00 r7 = 0xdeadbeef + 18: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0xa (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 7 + +Gas consumed: 10000 -> 9997 + + +## inst_branch_greater_unsigned_imm_ok + +``` + : @0 + 0: 33 07 f6 r7 = 0xfffffffffffffff6 + 3: 56 17 0a 05 jump 8 if r7 >u 10 + : @1 + 7: 00 trap + : @2 + 8: 14 07 ef be ad de 00 00 00 00 r7 = 0xdeadbeef + 18: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0xdeadbeef (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 18 + +Gas consumed: 10000 -> 9996 + + +## inst_branch_less_or_equal_signed_imm_nok + +``` + : @0 + 0: 33 07 0a r7 = 0xa + 3: 58 17 f6 05 jump 8 if r7 <=s 4294967286 + : @1 + 7: 00 trap + : @2 + 8: 14 07 ef be ad de 00 00 00 00 r7 = 0xdeadbeef + 18: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0xa (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 7 + +Gas consumed: 10000 -> 9997 + + +## inst_branch_less_or_equal_signed_imm_ok + +``` + : @0 + 0: 33 07 f6 r7 = 0xfffffffffffffff6 + 3: 58 17 0a 05 jump 8 if r7 <=s 10 + : @1 + 7: 00 trap + : @2 + 8: 14 07 ef be ad de 00 00 00 00 r7 = 0xdeadbeef + 18: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0xdeadbeef (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 18 + +Gas consumed: 10000 -> 9996 + + +## inst_branch_less_or_equal_unsigned_imm_nok + +``` + : @0 + 0: 33 07 f6 r7 = 0xfffffffffffffff6 + 3: 54 17 0a 05 jump 8 if r7 <=u 10 + : @1 + 7: 00 trap + : @2 + 8: 14 07 ef be ad de 00 00 00 00 r7 = 0xdeadbeef + 18: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0xfffffffffffffff6 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 7 + +Gas consumed: 10000 -> 9997 + + +## inst_branch_less_or_equal_unsigned_imm_ok + +``` + : @0 + 0: 33 07 0a r7 = 0xa + 3: 54 17 f6 05 jump 8 if r7 <=u 4294967286 + : @1 + 7: 00 trap + : @2 + 8: 14 07 ef be ad de 00 00 00 00 r7 = 0xdeadbeef + 18: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0xdeadbeef (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 18 + +Gas consumed: 10000 -> 9996 + + +## inst_branch_less_signed_imm_nok + +``` + : @0 + 0: 33 07 0a r7 = 0xa + 3: 57 17 f5 05 jump 8 if r7 9997 + + +## inst_branch_less_signed_imm_ok + +``` + : @0 + 0: 33 07 f6 r7 = 0xfffffffffffffff6 + 3: 57 17 0a 05 jump 8 if r7 9996 + + +## inst_branch_less_signed_nok + +``` + : @0 + 0: 33 07 0a r7 = 0xa + 3: 33 08 f6 r8 = 0xfffffffffffffff6 + 6: ad 87 04 jump 10 if r7 9996 + + +## inst_branch_less_signed_ok + +``` + : @0 + 0: 33 07 f6 r7 = 0xfffffffffffffff6 + 3: 33 08 0a r8 = 0xa + 6: ad 87 04 jump 10 if r7 9995 + + +## inst_branch_less_unsigned_imm_nok + +``` + : @0 + 0: 33 07 f6 r7 = 0xfffffffffffffff6 + 3: 53 17 0a 05 jump 8 if r7 9997 + + +## inst_branch_less_unsigned_imm_ok + +``` + : @0 + 0: 33 07 0a r7 = 0xa + 3: 53 17 f6 05 jump 8 if r7 9996 + + +## inst_branch_less_unsigned_nok + +``` + : @0 + 0: 33 07 f6 r7 = 0xfffffffffffffff6 + 3: 33 08 0a r8 = 0xa + 6: ac 87 04 jump 10 if r7 9996 + + +## inst_branch_less_unsigned_ok + +``` + : @0 + 0: 33 07 0a r7 = 0xa + 3: 33 08 f6 r8 = 0xfffffffffffffff6 + 6: ac 87 04 jump 10 if r7 9995 + + +## inst_branch_not_eq_imm_nok + +``` + : @0 + 0: 33 07 d2 04 r7 = 0x4d2 + 4: 52 27 d2 04 06 jump 10 if r7 != 1234 + : @1 + 9: 00 trap + : @2 + 10: 14 07 ef be ad de 00 00 00 00 r7 = 0xdeadbeef + 20: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0x4d2 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 9 + +Gas consumed: 10000 -> 9997 + + +## inst_branch_not_eq_imm_ok + +``` + : @0 + 0: 33 07 d2 04 r7 = 0x4d2 + 4: 52 27 d3 04 06 jump 10 if r7 != 1235 + : @1 + 9: 00 trap + : @2 + 10: 14 07 ef be ad de 00 00 00 00 r7 = 0xdeadbeef + 20: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0xdeadbeef (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 20 + +Gas consumed: 10000 -> 9996 + + +## inst_branch_not_eq_nok + +``` + : @0 + 0: 33 07 d2 04 r7 = 0x4d2 + 4: 33 08 d2 04 r8 = 0x4d2 + 8: ab 87 04 jump 12 if r7 != r8 + : @1 + 11: 00 trap + : @2 + 12: 14 07 ef be ad de 00 00 00 00 r7 = 0xdeadbeef + 22: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0x4d2 (initially was 0x0) + * r8 = 0x4d2 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9996 + + +## inst_branch_not_eq_ok + +``` + : @0 + 0: 33 07 d2 04 r7 = 0x4d2 + 4: 33 08 d3 04 r8 = 0x4d3 + 8: ab 87 04 jump 12 if r7 != r8 + : @1 + 11: 00 trap + : @2 + 12: 14 07 ef be ad de 00 00 00 00 r7 = 0xdeadbeef + 22: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0xdeadbeef (initially was 0x0) + * r8 = 0x4d3 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 22 + +Gas consumed: 10000 -> 9995 + + +## inst_cmov_if_zero_imm_nok + +Initial non-zero registers: + * r10 = 0x1 + +``` + : @0 + 0: 93 a7 64 r7 = 0x64 if r10 == 0 + 3: invalid +``` + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_cmov_if_zero_imm_ok + +``` + : @0 + 0: 93 a7 64 r7 = 0x64 if r10 == 0 + 3: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0x64 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_cmov_if_zero_nok + +Initial non-zero registers: + * r8 = 0x64 + * r10 = 0x1 + +``` + : @0 + 0: da a8 07 r7 = r8 if r10 == 0 + 3: invalid +``` + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_cmov_if_zero_ok + +Initial non-zero registers: + * r8 = 0x64 + +``` + : @0 + 0: da a8 07 r7 = r8 if r10 == 0 + 3: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0x64 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_div_signed_32 + +Initial non-zero registers: + * r7 = 0x80000010 + * r8 = 0x7 + +``` + : @0 + 0: c2 87 09 i32 r9 = r7 /s r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0xffffffffedb6db70 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_div_signed_32_by_zero + +Initial non-zero registers: + * r7 = 0x80000010 + +``` + : @0 + 0: c2 87 09 i32 r9 = r7 /s r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0xffffffffffffffff (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_div_signed_32_with_overflow + +Initial non-zero registers: + * r7 = 0x80000000 + * r8 = 0xffffffff + +``` + : @0 + 0: c2 87 09 i32 r9 = r7 /s r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0xffffffff80000000 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_div_signed_64 + +Initial non-zero registers: + * r7 = 0x8000000000000010 + * r8 = 0x7 + +``` + : @0 + 0: cc 87 09 r9 = r7 /s r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0xedb6db6db6db6dba (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_div_signed_64_by_zero + +Initial non-zero registers: + * r7 = 0x80000010 + +``` + : @0 + 0: cc 87 09 r9 = r7 /s r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0xffffffffffffffff (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_div_signed_64_with_overflow + +Initial non-zero registers: + * r7 = 0x8000000000000000 + * r8 = 0xffffffffffffffff + +``` + : @0 + 0: cc 87 09 r9 = r7 /s r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x8000000000000000 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_div_unsigned_32 + +Initial non-zero registers: + * r7 = 0x80000010 + * r8 = 0x7 + +``` + : @0 + 0: c1 87 09 i32 r9 = r7 /u r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x12492494 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_div_unsigned_32_by_zero + +Initial non-zero registers: + * r7 = 0x80000010 + +``` + : @0 + 0: c1 87 09 i32 r9 = r7 /u r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0xffffffffffffffff (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_div_unsigned_32_with_overflow + +Initial non-zero registers: + * r7 = 0x80000000 + * r8 = 0xffffffff + * r9 = 0x1234 + +``` + : @0 + 0: c1 87 09 i32 r9 = r7 /u r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x0 (initially was 0x1234) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_div_unsigned_64 + +Initial non-zero registers: + * r7 = 0x8000000000000010 + * r8 = 0x7 + +``` + : @0 + 0: cb 87 09 r9 = r7 /u r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x124924924924924b (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_div_unsigned_64_by_zero + +Initial non-zero registers: + * r7 = 0x8000000000000010 + +``` + : @0 + 0: cb 87 09 r9 = r7 /u r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0xffffffffffffffff (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_div_unsigned_64_with_overflow + +Initial non-zero registers: + * r7 = 0x8000000000000000 + * r8 = 0xffffffffffffffff + * r9 = 0x1234 + +``` + : @0 + 0: cb 87 09 r9 = r7 /u r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x0 (initially was 0x1234) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_fallthrough + +``` + : @0 + 0: 01 fallthrough + : @1 + 1: invalid +``` + +Program should end with: panic + +Final value of the program counter: 1 + +Gas consumed: 10000 -> 9998 + + +## inst_jump + +``` + : @0 + 0: 33 07 d2 04 r7 = 0x4d2 + 4: 28 03 jump 7 + : @1 + 6: 00 trap + : @2 + 7: 14 07 ef be ad de 00 00 00 00 r7 = 0xdeadbeef + 17: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0xdeadbeef (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 17 + +Gas consumed: 10000 -> 9996 + + +## inst_jump_indirect_invalid_djump_to_zero_nok + +``` + : @0 + 0: 32 07 jump [r7 + 0] +``` + +Program should end with: panic + +Final value of the program counter: 0 + +Gas consumed: 10000 -> 9999 + + +## inst_jump_indirect_misaligned_djump_with_offset_nok + +``` + : @0 + 0: 33 07 02 r7 = 0x2 + 3: 32 07 01 jump [r7 + 0x1] + : @1 + 6: 00 trap + : @2 [@dyn 1] + 7: 14 08 ef be ad de 00 00 00 00 r8 = 0xdeadbeef + 17: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0x2 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_jump_indirect_misaligned_djump_without_offset_nok + +``` + : @0 + 0: 33 07 02 r7 = 0x2 + 3: 95 77 01 r7 = r7 + 0x1 + 6: 32 07 jump [r7 + 0] + : @1 + 8: 00 trap + : @2 [@dyn 1] + 9: 14 08 ef be ad de 00 00 00 00 r8 = 0xdeadbeef + 19: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0x3 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 6 + +Gas consumed: 10000 -> 9997 + + +## inst_jump_indirect_with_offset_ok + +``` + : @0 + 0: 33 07 02 r7 = 0x2 + 3: 95 77 9c r7 = r7 + 0xffffffffffffff9c + 6: 32 07 64 jump [r7 + 0x64] + : @1 + 9: 00 trap + : @2 [@dyn 1] + 10: 14 08 ef be ad de 00 00 00 00 r8 = 0xdeadbeef + 20: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0xffffffffffffff9e (initially was 0x0) + * r8 = 0xdeadbeef (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 20 + +Gas consumed: 10000 -> 9995 + + +## inst_jump_indirect_without_offset_ok + +``` + : @0 + 0: 33 07 02 r7 = 0x2 + 3: 32 07 jump [r7 + 0] + : @1 + 5: 00 trap + : @2 [@dyn 1] + 6: 14 08 ef be ad de 00 00 00 00 r8 = 0xdeadbeef + 16: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0x2 (initially was 0x0) + * r8 = 0xdeadbeef (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 16 + +Gas consumed: 10000 -> 9996 + + +## inst_load_i16 + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x20000-0x20002 (0x2 bytes) = [0x81, 0x82] + +Initial non-zero registers: + * r7 = 0xdeadbeef + +``` + : @0 + 0: 37 07 00 00 02 r7 = i16 [0x20000] + 5: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0xffffffffffff8281 (initially was 0xdeadbeef) + +The memory contents after execution should be unchanged. + +Program should end with: panic + +Final value of the program counter: 5 + +Gas consumed: 10000 -> 9998 + + +## inst_load_i32 + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x20000-0x20004 (0x4 bytes) = [0x81, 0x82, 0x83, 0x84] + +Initial non-zero registers: + * r7 = 0xdeadbeef + +``` + : @0 + 0: 39 07 00 00 02 r7 = i32 [0x20000] + 5: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0xffffffff84838281 (initially was 0xdeadbeef) + +The memory contents after execution should be unchanged. + +Program should end with: panic + +Final value of the program counter: 5 + +Gas consumed: 10000 -> 9998 + + +## inst_load_i8 + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x20000-0x20001 (0x1 bytes) = [0x81] + +Initial non-zero registers: + * r7 = 0xdeadbeef + +``` + : @0 + 0: 35 07 00 00 02 r7 = i8 [0x20000] + 5: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0xffffffffffffff81 (initially was 0xdeadbeef) + +The memory contents after execution should be unchanged. + +Program should end with: panic + +Final value of the program counter: 5 + +Gas consumed: 10000 -> 9998 + + +## inst_load_imm + +``` + : @0 + 0: 14 07 ef be ad de 00 00 00 00 r7 = 0xdeadbeef + 10: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0xdeadbeef (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 10 + +Gas consumed: 10000 -> 9998 + + +## inst_load_imm_64 + +``` + : @0 + 0: 14 07 ef be ad de ef be ad de r7 = 0xdeadbeefdeadbeef + 10: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0xdeadbeefdeadbeef (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 10 + +Gas consumed: 10000 -> 9998 + + +## inst_load_imm_and_jump + +``` + : @0 + 0: 50 27 d2 04 06 r7 = 1234, jump 6 + : @1 + 5: 00 trap + : @2 + 6: 14 08 ef be ad de 00 00 00 00 r8 = 0xdeadbeef + 16: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0x4d2 (initially was 0x0) + * r8 = 0xdeadbeef (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 16 + +Gas consumed: 10000 -> 9997 + + +## inst_load_imm_and_jump_indirect_different_regs_with_offset_ok + +``` + : @0 + 0: 33 07 02 r7 = 0x2 + 3: 95 77 9c r7 = r7 + 0xffffffffffffff9c + 6: b4 78 02 d2 04 64 r8 = 1234, jump [r7 + 0x64] + : @1 + 12: 00 trap + : @2 [@dyn 1] + 13: 14 09 ef be ad de 00 00 00 00 r9 = 0xdeadbeef + 23: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0xffffffffffffff9e (initially was 0x0) + * r8 = 0x4d2 (initially was 0x0) + * r9 = 0xdeadbeef (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 23 + +Gas consumed: 10000 -> 9995 + + +## inst_load_imm_and_jump_indirect_different_regs_without_offset_ok + +``` + : @0 + 0: 33 07 02 r7 = 0x2 + 3: b4 78 02 d2 04 r8 = 1234, jump [r7 + 0] + : @1 + 8: 00 trap + : @2 [@dyn 1] + 9: 14 09 ef be ad de 00 00 00 00 r9 = 0xdeadbeef + 19: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0x2 (initially was 0x0) + * r8 = 0x4d2 (initially was 0x0) + * r9 = 0xdeadbeef (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 19 + +Gas consumed: 10000 -> 9996 + + +## inst_load_imm_and_jump_indirect_invalid_djump_to_zero_different_regs_without_offset_nok + +``` + : @0 + 0: b4 78 02 d2 04 r8 = 1234, jump [r7 + 0] + : @1 + 5: 00 trap + : @2 + 6: 14 09 ef be ad de 00 00 00 00 r9 = 0xdeadbeef + 16: invalid +``` + +Registers after execution (only changed registers): + * r8 = 0x4d2 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 0 + +Gas consumed: 10000 -> 9999 + + +## inst_load_imm_and_jump_indirect_invalid_djump_to_zero_same_regs_without_offset_nok + +``` + : @0 + 0: b4 77 02 d2 04 tmp = r7, r7 = 1234, jump [tmp + 0] + : @1 + 5: 00 trap + : @2 + 6: 14 09 ef be ad de 00 00 00 00 r9 = 0xdeadbeef + 16: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0x4d2 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 0 + +Gas consumed: 10000 -> 9999 + + +## inst_load_imm_and_jump_indirect_misaligned_djump_different_regs_with_offset_nok + +``` + : @0 + 0: 33 07 02 r7 = 0x2 + 3: b4 78 02 d2 04 01 r8 = 1234, jump [r7 + 0x1] + : @1 + 9: 00 trap + : @2 [@dyn 1] + 10: 14 09 ef be ad de 00 00 00 00 r9 = 0xdeadbeef + 20: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0x2 (initially was 0x0) + * r8 = 0x4d2 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_load_imm_and_jump_indirect_misaligned_djump_different_regs_without_offset_nok + +``` + : @0 + 0: 33 07 02 r7 = 0x2 + 3: 95 77 01 r7 = r7 + 0x1 + 6: b4 78 02 d2 04 r8 = 1234, jump [r7 + 0] + : @1 + 11: 00 trap + : @2 [@dyn 1] + 12: 14 09 ef be ad de 00 00 00 00 r9 = 0xdeadbeef + 22: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0x3 (initially was 0x0) + * r8 = 0x4d2 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 6 + +Gas consumed: 10000 -> 9997 + + +## inst_load_imm_and_jump_indirect_misaligned_djump_same_regs_with_offset_nok + +``` + : @0 + 0: 33 07 02 r7 = 0x2 + 3: b4 77 02 d2 04 01 tmp = r7, r7 = 1234, jump [tmp + 0x1] + : @1 + 9: 00 trap + : @2 [@dyn 1] + 10: 14 09 ef be ad de 00 00 00 00 r9 = 0xdeadbeef + 20: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0x4d2 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_load_imm_and_jump_indirect_misaligned_djump_same_regs_without_offset_nok + +``` + : @0 + 0: 33 07 02 r7 = 0x2 + 3: 95 77 01 r7 = r7 + 0x1 + 6: b4 77 02 d2 04 tmp = r7, r7 = 1234, jump [tmp + 0] + : @1 + 11: 00 trap + : @2 [@dyn 1] + 12: 14 09 ef be ad de 00 00 00 00 r9 = 0xdeadbeef + 22: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0x4d2 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 6 + +Gas consumed: 10000 -> 9997 + + +## inst_load_imm_and_jump_indirect_same_regs_with_offset_ok + +``` + : @0 + 0: 33 07 02 r7 = 0x2 + 3: 95 77 9c r7 = r7 + 0xffffffffffffff9c + 6: b4 77 02 d2 04 64 tmp = r7, r7 = 1234, jump [tmp + 0x64] + : @1 + 12: 00 trap + : @2 [@dyn 1] + 13: 14 09 ef be ad de 00 00 00 00 r9 = 0xdeadbeef + 23: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0x4d2 (initially was 0x0) + * r9 = 0xdeadbeef (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 23 + +Gas consumed: 10000 -> 9995 + + +## inst_load_imm_and_jump_indirect_same_regs_without_offset_ok + +``` + : @0 + 0: 33 07 02 r7 = 0x2 + 3: b4 77 02 d2 04 tmp = r7, r7 = 1234, jump [tmp + 0] + : @1 + 8: 00 trap + : @2 [@dyn 1] + 9: 14 09 ef be ad de 00 00 00 00 r9 = 0xdeadbeef + 19: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0x4d2 (initially was 0x0) + * r9 = 0xdeadbeef (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 19 + +Gas consumed: 10000 -> 9996 + + +## inst_load_indirect_i16_with_offset + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x20000-0x20004 (0x4 bytes) = [0x81, 0x82, 0x83, 0x84] + +Initial non-zero registers: + * r7 = 0x20000 + +``` + : @0 + 0: 7f 78 01 r8 = i16 [r7 + 0x1] + 3: invalid +``` + +Registers after execution (only changed registers): + * r8 = 0xffffffffffff8382 (initially was 0x0) + +The memory contents after execution should be unchanged. + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_load_indirect_i16_without_offset + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x20000-0x20004 (0x4 bytes) = [0x81, 0x82, 0x83, 0x84] + +Initial non-zero registers: + * r7 = 0x20000 + +``` + : @0 + 0: 7f 78 r8 = i16 [r7 + 0] + 2: invalid +``` + +Registers after execution (only changed registers): + * r8 = 0xffffffffffff8281 (initially was 0x0) + +The memory contents after execution should be unchanged. + +Program should end with: panic + +Final value of the program counter: 2 + +Gas consumed: 10000 -> 9998 + + +## inst_load_indirect_i32_with_offset + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x20000-0x20005 (0x5 bytes) = [0x81, 0x82, 0x83, 0x84, 0x85] + +Initial non-zero registers: + * r7 = 0x20000 + +``` + : @0 + 0: 81 78 01 r8 = i32 [r7 + 0x1] + 3: invalid +``` + +Registers after execution (only changed registers): + * r8 = 0xffffffff85848382 (initially was 0x0) + +The memory contents after execution should be unchanged. + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_load_indirect_i32_without_offset + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x20000-0x20005 (0x5 bytes) = [0x81, 0x82, 0x83, 0x84, 0x85] + +Initial non-zero registers: + * r7 = 0x20000 + +``` + : @0 + 0: 81 78 r8 = i32 [r7 + 0] + 2: invalid +``` + +Registers after execution (only changed registers): + * r8 = 0xffffffff84838281 (initially was 0x0) + +The memory contents after execution should be unchanged. + +Program should end with: panic + +Final value of the program counter: 2 + +Gas consumed: 10000 -> 9998 + + +## inst_load_indirect_i8_with_offset + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x20000-0x20004 (0x4 bytes) = [0x81, 0x82, 0x83, 0x84] + +Initial non-zero registers: + * r7 = 0x20000 + +``` + : @0 + 0: 7d 78 01 r8 = i8 [r7 + 0x1] + 3: invalid +``` + +Registers after execution (only changed registers): + * r8 = 0xffffffffffffff82 (initially was 0x0) + +The memory contents after execution should be unchanged. + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_load_indirect_i8_without_offset + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x20000-0x20004 (0x4 bytes) = [0x81, 0x82, 0x83, 0x84] + +Initial non-zero registers: + * r7 = 0x20000 + +``` + : @0 + 0: 7d 78 r8 = i8 [r7 + 0] + 2: invalid +``` + +Registers after execution (only changed registers): + * r8 = 0xffffffffffffff81 (initially was 0x0) + +The memory contents after execution should be unchanged. + +Program should end with: panic + +Final value of the program counter: 2 + +Gas consumed: 10000 -> 9998 + + +## inst_load_indirect_u16_with_offset + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x20000-0x20004 (0x4 bytes) = [0x81, 0x82, 0x83, 0x84] + +Initial non-zero registers: + * r7 = 0x20000 + +``` + : @0 + 0: 7e 78 01 r8 = u16 [r7 + 0x1] + 3: invalid +``` + +Registers after execution (only changed registers): + * r8 = 0x8382 (initially was 0x0) + +The memory contents after execution should be unchanged. + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_load_indirect_u16_without_offset + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x20000-0x20004 (0x4 bytes) = [0x81, 0x82, 0x83, 0x84] + +Initial non-zero registers: + * r7 = 0x20000 + +``` + : @0 + 0: 7e 78 r8 = u16 [r7 + 0] + 2: invalid +``` + +Registers after execution (only changed registers): + * r8 = 0x8281 (initially was 0x0) + +The memory contents after execution should be unchanged. + +Program should end with: panic + +Final value of the program counter: 2 + +Gas consumed: 10000 -> 9998 + + +## inst_load_indirect_u32_with_offset + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x20000-0x20005 (0x5 bytes) = [0x11, 0x22, 0x33, 0x44, 0x55] + +Initial non-zero registers: + * r7 = 0x20000 + +``` + : @0 + 0: 80 78 01 r8 = u32 [r7 + 0x1] + 3: invalid +``` + +Registers after execution (only changed registers): + * r8 = 0x55443322 (initially was 0x0) + +The memory contents after execution should be unchanged. + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_load_indirect_u32_without_offset + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x20000-0x20005 (0x5 bytes) = [0x11, 0x22, 0x33, 0x44, 0x55] + +Initial non-zero registers: + * r7 = 0x20000 + +``` + : @0 + 0: 80 78 r8 = u32 [r7 + 0] + 2: invalid +``` + +Registers after execution (only changed registers): + * r8 = 0x44332211 (initially was 0x0) + +The memory contents after execution should be unchanged. + +Program should end with: panic + +Final value of the program counter: 2 + +Gas consumed: 10000 -> 9998 + + +## inst_load_indirect_u64_with_offset + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x20000-0x20009 (0x9 bytes) = [0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89] + +Initial non-zero registers: + * r7 = 0x20000 + +``` + : @0 + 0: 82 78 01 r8 = u64 [r7 + 0x1] + 3: invalid +``` + +Registers after execution (only changed registers): + * r8 = 0x8988878685848382 (initially was 0x0) + +The memory contents after execution should be unchanged. + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_load_indirect_u64_without_offset + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x20000-0x20009 (0x9 bytes) = [0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89] + +Initial non-zero registers: + * r7 = 0x20000 + +``` + : @0 + 0: 82 78 r8 = u64 [r7 + 0] + 2: invalid +``` + +Registers after execution (only changed registers): + * r8 = 0x8887868584838281 (initially was 0x0) + +The memory contents after execution should be unchanged. + +Program should end with: panic + +Final value of the program counter: 2 + +Gas consumed: 10000 -> 9998 + + +## inst_load_indirect_u8_with_offset + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x20000-0x20004 (0x4 bytes) = [0x81, 0x82, 0x83, 0x84] + +Initial non-zero registers: + * r7 = 0x20000 + +``` + : @0 + 0: 7c 78 01 r8 = u8 [r7 + 0x1] + 3: invalid +``` + +Registers after execution (only changed registers): + * r8 = 0x82 (initially was 0x0) + +The memory contents after execution should be unchanged. + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_load_indirect_u8_without_offset + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x20000-0x20004 (0x4 bytes) = [0x81, 0x82, 0x83, 0x84] + +Initial non-zero registers: + * r7 = 0x20000 + +``` + : @0 + 0: 7c 78 r8 = u8 [r7 + 0] + 2: invalid +``` + +Registers after execution (only changed registers): + * r8 = 0x81 (initially was 0x0) + +The memory contents after execution should be unchanged. + +Program should end with: panic + +Final value of the program counter: 2 + +Gas consumed: 10000 -> 9998 + + +## inst_load_u16 + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x20000-0x20004 (0x4 bytes) = [0x12, 0x34, 0x56, 0x78] + +Initial non-zero registers: + * r7 = 0xdeadbeef + +``` + : @0 + 0: 36 07 00 00 02 r7 = u16 [0x20000] + 5: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0x3412 (initially was 0xdeadbeef) + +The memory contents after execution should be unchanged. + +Program should end with: panic + +Final value of the program counter: 5 + +Gas consumed: 10000 -> 9998 + + +## inst_load_u32 + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x20000-0x20004 (0x4 bytes) = [0x12, 0x34, 0x56, 0x78] + +Initial non-zero registers: + * r7 = 0xdeadbeef + +``` + : @0 + 0: 38 07 00 00 02 r7 = u32 [0x20000] + 5: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0x78563412 (initially was 0xdeadbeef) + +The memory contents after execution should be unchanged. + +Program should end with: panic + +Final value of the program counter: 5 + +Gas consumed: 10000 -> 9998 + + +## inst_load_u64 + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x20000-0x20008 (0x8 bytes) = [0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88] + +Initial non-zero registers: + * r7 = 0xdeadbeef + +``` + : @0 + 0: 3a 07 00 00 02 r7 = u64 [0x20000] + 5: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0x8887868584838281 (initially was 0xdeadbeef) + +The memory contents after execution should be unchanged. + +Program should end with: panic + +Final value of the program counter: 5 + +Gas consumed: 10000 -> 9998 + + +## inst_load_u8 + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x20000-0x20004 (0x4 bytes) = [0x12, 0x34, 0x56, 0x78] + +Initial non-zero registers: + * r7 = 0xdeadbeef + +``` + : @0 + 0: 34 07 00 00 02 r7 = u8 [0x20000] + 5: invalid +``` + +Registers after execution (only changed registers): + * r7 = 0x12 (initially was 0xdeadbeef) + +The memory contents after execution should be unchanged. + +Program should end with: panic + +Final value of the program counter: 5 + +Gas consumed: 10000 -> 9998 + + +## inst_move_reg + +Initial non-zero registers: + * r7 = 0x1 + +``` + : @0 + 0: 64 79 r9 = r7 + 2: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x1 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 2 + +Gas consumed: 10000 -> 9998 + + +## inst_mul_32 + +Initial non-zero registers: + * r7 = 0x3 + * r8 = 0x7 + +``` + : @0 + 0: c0 87 09 i32 r9 = r7 * r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x15 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_mul_64 + +Initial non-zero registers: + * r7 = 0x3 + * r8 = 0x7 + +``` + : @0 + 0: ca 87 09 r9 = r7 * r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x15 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_mul_imm_32 + +Initial non-zero registers: + * r7 = 0x3 + +``` + : @0 + 0: 87 79 07 i32 r9 = r7 * 0x7 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x15 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_mul_imm_64 + +Initial non-zero registers: + * r7 = 0x3 + +``` + : @0 + 0: 96 79 07 r9 = r7 * 0x7 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x15 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_negate_and_add_imm_32 + +Initial non-zero registers: + * r8 = 0x2 + +``` + : @0 + 0: 8d 89 01 i32 r9 = 0x1 - r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0xffffffffffffffff (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_negate_and_add_imm_64 + +Initial non-zero registers: + * r8 = 0x2 + +``` + : @0 + 0: 9a 89 01 r9 = 0x1 - r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0xffffffffffffffff (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_or + +Initial non-zero registers: + * r7 = 0x5 + * r8 = 0x3 + +``` + : @0 + 0: d4 87 09 r9 = r7 | r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x7 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_or_imm + +Initial non-zero registers: + * r7 = 0x5 + +``` + : @0 + 0: 86 79 03 r9 = r7 | 0x3 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x7 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_rem_signed_32 + +Initial non-zero registers: + * r7 = 0x80000011 + * r8 = 0x7 + +``` + : @0 + 0: c4 87 09 i32 r9 = r7 %s r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0xfffffffffffffffa (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_rem_signed_32_by_zero + +Initial non-zero registers: + * r7 = 0x80000010 + +``` + : @0 + 0: c4 87 09 i32 r9 = r7 %s r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0xffffffff80000010 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_rem_signed_32_with_overflow + +Initial non-zero registers: + * r7 = 0x80000000 + * r8 = 0xffffffff + * r9 = 0xdeadbeef + +``` + : @0 + 0: c4 87 09 i32 r9 = r7 %s r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x0 (initially was 0xdeadbeef) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_rem_signed_64 + +Initial non-zero registers: + * r7 = 0x8000000000000011 + * r8 = 0x7 + +``` + : @0 + 0: ce 87 09 r9 = r7 %s r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0xfffffffffffffffb (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_rem_signed_64_by_zero + +Initial non-zero registers: + * r7 = 0x80000010 + +``` + : @0 + 0: ce 87 09 r9 = r7 %s r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x80000010 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_rem_signed_64_with_overflow + +Initial non-zero registers: + * r7 = 0x8000000000000000 + * r8 = 0xffffffffffffffff + * r9 = 0xdeadbeef + +``` + : @0 + 0: ce 87 09 r9 = r7 %s r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x0 (initially was 0xdeadbeef) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_rem_unsigned_32 + +Initial non-zero registers: + * r7 = 0x80000010 + * r8 = 0x7 + +``` + : @0 + 0: c3 87 09 i32 r9 = r7 %u r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x4 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_rem_unsigned_32_by_zero + +Initial non-zero registers: + * r7 = 0x80000010 + +``` + : @0 + 0: c3 87 09 i32 r9 = r7 %u r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0xffffffff80000010 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_rem_unsigned_64 + +Initial non-zero registers: + * r7 = 0x8000000000000010 + * r8 = 0x7 + +``` + : @0 + 0: cd 87 09 r9 = r7 %u r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x3 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_rem_unsigned_64_by_zero + +Initial non-zero registers: + * r7 = 0x8000000000000010 + +``` + : @0 + 0: cd 87 09 r9 = r7 %u r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x8000000000000010 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_ret_halt + +Initial non-zero registers: + * r0 = 0xffff0000 + +``` + : @0 + 0: 32 00 jump [r0 + 0] +``` + +Program should end with: halt + +Final value of the program counter: 0 + +Gas consumed: 10000 -> 9999 + + +## inst_ret_invalid + +``` + : @0 + 0: 32 00 jump [r0 + 0] +``` + +Program should end with: panic + +Final value of the program counter: 0 + +Gas consumed: 10000 -> 9999 + + +## inst_set_greater_than_signed_imm_0 + +Initial non-zero registers: + * r7 = 0xfffffffffffffff6 + * r9 = 0xdeadbeef + +``` + : @0 + 0: 8f 79 0a r9 = r7 >s 0xa + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x0 (initially was 0xdeadbeef) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_set_greater_than_signed_imm_1 + +Initial non-zero registers: + * r7 = 0xa + +``` + : @0 + 0: 8f 79 f6 r9 = r7 >s 0xfffffffffffffff6 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x1 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_set_greater_than_unsigned_imm_0 + +Initial non-zero registers: + * r7 = 0xa + * r9 = 0xdeadbeef + +``` + : @0 + 0: 8e 79 f6 r9 = r7 >u 0xfffffffffffffff6 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x0 (initially was 0xdeadbeef) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_set_greater_than_unsigned_imm_1 + +Initial non-zero registers: + * r7 = 0xfffffffffffffff6 + +``` + : @0 + 0: 8e 79 0a r9 = r7 >u 0xa + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x1 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_set_less_than_signed_0 + +Initial non-zero registers: + * r7 = 0xa + * r8 = 0xfffffffffffffff6 + * r9 = 0xdeadbeef + +``` + : @0 + 0: d9 87 09 r9 = r7 9998 + + +## inst_set_less_than_signed_1 + +Initial non-zero registers: + * r7 = 0xfffffffffffffff6 + * r8 = 0xa + +``` + : @0 + 0: d9 87 09 r9 = r7 9998 + + +## inst_set_less_than_signed_imm_0 + +Initial non-zero registers: + * r7 = 0xa + * r9 = 0xdeadbeef + +``` + : @0 + 0: 89 79 f6 r9 = r7 9998 + + +## inst_set_less_than_signed_imm_1 + +Initial non-zero registers: + * r7 = 0xfffffffffffffff6 + +``` + : @0 + 0: 89 79 0a r9 = r7 9998 + + +## inst_set_less_than_unsigned_0 + +Initial non-zero registers: + * r7 = 0xfffffffffffffff6 + * r8 = 0xa + * r9 = 0xdeadbeef + +``` + : @0 + 0: d8 87 09 r9 = r7 9998 + + +## inst_set_less_than_unsigned_1 + +Initial non-zero registers: + * r7 = 0xa + * r8 = 0xfffffffffffffff6 + +``` + : @0 + 0: d8 87 09 r9 = r7 9998 + + +## inst_set_less_than_unsigned_imm_0 + +Initial non-zero registers: + * r7 = 0xfffffffffffffff6 + * r9 = 0xdeadbeef + +``` + : @0 + 0: 88 79 0a r9 = r7 9998 + + +## inst_set_less_than_unsigned_imm_1 + +Initial non-zero registers: + * r7 = 0xa + +``` + : @0 + 0: 88 79 f6 r9 = r7 9998 + + +## inst_shift_arithmetic_right_32 + +Initial non-zero registers: + * r7 = 0x80000075 + * r8 = 0x3 + +``` + : @0 + 0: c7 87 09 i32 r9 = r7 >>a r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0xfffffffff000000e (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_shift_arithmetic_right_32_with_overflow + +Initial non-zero registers: + * r7 = 0x80000075 + * r8 = 0x21 + +``` + : @0 + 0: c7 87 09 i32 r9 = r7 >>a r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0xffffffffc000003a (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_shift_arithmetic_right_64 + +Initial non-zero registers: + * r7 = 0x8000000000000075 + * r8 = 0x3 + +``` + : @0 + 0: d1 87 09 r9 = r7 >>a r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0xf00000000000000e (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_shift_arithmetic_right_64_with_overflow + +Initial non-zero registers: + * r7 = 0x8000000000000075 + * r8 = 0x41 + +``` + : @0 + 0: d1 87 09 r9 = r7 >>a r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0xc00000000000003a (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_shift_arithmetic_right_imm_32 + +Initial non-zero registers: + * r7 = 0x80000075 + +``` + : @0 + 0: 8c 79 03 i32 r9 = r7 >>a 0x3 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0xfffffffff000000e (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_shift_arithmetic_right_imm_64 + +Initial non-zero registers: + * r7 = 0xffffffff80000075 + +``` + : @0 + 0: 99 79 03 r9 = r7 >>a 0x3 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0xfffffffff000000e (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_shift_arithmetic_right_imm_alt_32 + +Initial non-zero registers: + * r8 = 0x3 + +``` + : @0 + 0: 92 89 01 00 ff i32 r9 = 0xffffffffffff0001 >>a r8 + 5: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0xffffffffffffe000 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 5 + +Gas consumed: 10000 -> 9998 + + +## inst_shift_arithmetic_right_imm_alt_64 + +Initial non-zero registers: + * r8 = 0x3 + +``` + : @0 + 0: 9d 89 01 00 ff r9 = 0xffffffffffff0001 >>a r8 + 5: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0xffffffffffffe000 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 5 + +Gas consumed: 10000 -> 9998 + + +## inst_shift_logical_left_32 + +Initial non-zero registers: + * r7 = 0x80000075 + * r8 = 0x3 + +``` + : @0 + 0: c5 87 09 i32 r9 = r7 << r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x3a8 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_shift_logical_left_32_with_overflow + +Initial non-zero registers: + * r7 = 0x80000075 + * r8 = 0x21 + +``` + : @0 + 0: c5 87 09 i32 r9 = r7 << r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0xea (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_shift_logical_left_64 + +Initial non-zero registers: + * r7 = 0x8000000000000075 + * r8 = 0x3 + +``` + : @0 + 0: cf 87 09 r9 = r7 << r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x3a8 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_shift_logical_left_64_with_overflow + +Initial non-zero registers: + * r7 = 0x8000000000000075 + * r8 = 0x41 + +``` + : @0 + 0: cf 87 09 r9 = r7 << r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0xea (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_shift_logical_left_imm_32 + +Initial non-zero registers: + * r7 = 0x80000075 + +``` + : @0 + 0: 8a 79 03 i32 r9 = r7 << 0x3 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x3a8 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_shift_logical_left_imm_64 + +Initial non-zero registers: + * r7 = 0x8000000000000075 + +``` + : @0 + 0: 97 79 03 r9 = r7 << 0x3 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x3a8 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_shift_logical_left_imm_alt_32 + +Initial non-zero registers: + * r8 = 0x3 + +``` + : @0 + 0: 90 89 01 00 ff i32 r9 = 0xffffffffffff0001 << r8 + 5: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0xfffffffffff80008 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 5 + +Gas consumed: 10000 -> 9998 + + +## inst_shift_logical_left_imm_alt_64 + +Initial non-zero registers: + * r8 = 0x3 + +``` + : @0 + 0: 9b 89 01 00 ff r9 = 0xffffffffffff0001 << r8 + 5: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0xfffffffffff80008 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 5 + +Gas consumed: 10000 -> 9998 + + +## inst_shift_logical_right_32 + +Initial non-zero registers: + * r7 = 0x80000075 + * r8 = 0x3 + +``` + : @0 + 0: c6 87 09 i32 r9 = r7 >> r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x1000000e (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_shift_logical_right_32_with_overflow + +Initial non-zero registers: + * r7 = 0x80000075 + * r8 = 0x21 + +``` + : @0 + 0: c6 87 09 i32 r9 = r7 >> r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x4000003a (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_shift_logical_right_64 + +Initial non-zero registers: + * r7 = 0x8000000000000075 + * r8 = 0x3 + +``` + : @0 + 0: d0 87 09 r9 = r7 >> r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x100000000000000e (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_shift_logical_right_64_with_overflow + +Initial non-zero registers: + * r7 = 0x8000000000000075 + * r8 = 0x41 + +``` + : @0 + 0: d0 87 09 r9 = r7 >> r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x400000000000003a (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_shift_logical_right_imm_32 + +Initial non-zero registers: + * r7 = 0x80000075 + +``` + : @0 + 0: 8b 79 03 i32 r9 = r7 >> 0x3 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x1000000e (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_shift_logical_right_imm_64 + +Initial non-zero registers: + * r7 = 0x8000000000000075 + +``` + : @0 + 0: 98 79 03 r9 = r7 >> 0x3 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x100000000000000e (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_shift_logical_right_imm_alt_32 + +Initial non-zero registers: + * r8 = 0x3 + +``` + : @0 + 0: 91 89 01 00 ff i32 r9 = 0xffffffffffff0001 >> r8 + 5: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x1fffe000 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 5 + +Gas consumed: 10000 -> 9998 + + +## inst_shift_logical_right_imm_alt_64 + +Initial non-zero registers: + * r8 = 0x3 + +``` + : @0 + 0: 9c 89 01 00 ff r9 = 0xffffffffffff0001 >> r8 + 5: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x1fffffffffffe000 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 5 + +Gas consumed: 10000 -> 9998 + + +## inst_store_imm_indirect_u16_with_offset_nok + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero registers: + * r7 = 0x20ffe + +``` + : @0 + 0: 47 17 01 34 12 u16 [r7 + 1] = 0x1234 + 5: invalid +``` + +Program should end with: page-fault (page address = 0x21000) + +Final value of the program counter: 0 + +Gas consumed: 10000 -> 9998 + + +## inst_store_imm_indirect_u16_with_offset_ok + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero registers: + * r7 = 0x20efe + +``` + : @0 + 0: 47 27 00 01 34 12 u16 [r7 + 256] = 0x1234 + 6: invalid +``` + +Final non-zero memory chunks: + * 0x20ffe-0x21000 (0x2 bytes) = [0x34, 0x12] + +Program should end with: panic + +Final value of the program counter: 6 + +Gas consumed: 10000 -> 9998 + + +## inst_store_imm_indirect_u16_without_offset_ok + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero registers: + * r7 = 0x20ffe + +``` + : @0 + 0: 47 07 34 12 u16 [r7 + 0] = 0x1234 + 4: invalid +``` + +Final non-zero memory chunks: + * 0x20ffe-0x21000 (0x2 bytes) = [0x34, 0x12] + +Program should end with: panic + +Final value of the program counter: 4 + +Gas consumed: 10000 -> 9998 + + +## inst_store_imm_indirect_u32_with_offset_nok + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero registers: + * r7 = 0x20ffc + +``` + : @0 + 0: 48 17 01 78 56 34 12 u32 [r7 + 1] = 0x12345678 + 7: invalid +``` + +Program should end with: page-fault (page address = 0x21000) + +Final value of the program counter: 0 + +Gas consumed: 10000 -> 9998 + + +## inst_store_imm_indirect_u32_with_offset_ok + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero registers: + * r7 = 0x20efc + +``` + : @0 + 0: 48 27 00 01 78 56 34 12 u32 [r7 + 256] = 0x12345678 + 8: invalid +``` + +Final non-zero memory chunks: + * 0x20ffc-0x21000 (0x4 bytes) = [0x78, 0x56, 0x34, 0x12] + +Program should end with: panic + +Final value of the program counter: 8 + +Gas consumed: 10000 -> 9998 + + +## inst_store_imm_indirect_u32_without_offset_ok + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero registers: + * r7 = 0x20ffc + +``` + : @0 + 0: 48 07 78 56 34 12 u32 [r7 + 0] = 0x12345678 + 6: invalid +``` + +Final non-zero memory chunks: + * 0x20ffc-0x21000 (0x4 bytes) = [0x78, 0x56, 0x34, 0x12] + +Program should end with: panic + +Final value of the program counter: 6 + +Gas consumed: 10000 -> 9998 + + +## inst_store_imm_indirect_u64_with_offset_nok + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero registers: + * r7 = 0x20ff8 + +``` + : @0 + 0: 49 17 01 aa 99 88 77 u64 [r7 + 1] = 0x778899aa + 7: invalid +``` + +Program should end with: page-fault (page address = 0x21000) + +Final value of the program counter: 0 + +Gas consumed: 10000 -> 9998 + + +## inst_store_imm_indirect_u64_with_offset_ok + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero registers: + * r7 = 0x20ef8 + +``` + : @0 + 0: 49 27 00 01 aa 99 88 77 u64 [r7 + 256] = 0x778899aa + 8: invalid +``` + +Final non-zero memory chunks: + * 0x20ff8-0x20ffc (0x4 bytes) = [0xaa, 0x99, 0x88, 0x77] + +Program should end with: panic + +Final value of the program counter: 8 + +Gas consumed: 10000 -> 9998 + + +## inst_store_imm_indirect_u64_without_offset_ok + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero registers: + * r7 = 0x20ff8 + +``` + : @0 + 0: 49 07 aa 99 88 77 u64 [r7 + 0] = 0x778899aa + 6: invalid +``` + +Final non-zero memory chunks: + * 0x20ff8-0x20ffc (0x4 bytes) = [0xaa, 0x99, 0x88, 0x77] + +Program should end with: panic + +Final value of the program counter: 6 + +Gas consumed: 10000 -> 9998 + + +## inst_store_imm_indirect_u8_with_offset_nok + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero registers: + * r7 = 0x20fff + +``` + : @0 + 0: 46 17 01 12 u8 [r7 + 1] = 0x12 + 4: invalid +``` + +Program should end with: page-fault (page address = 0x21000) + +Final value of the program counter: 0 + +Gas consumed: 10000 -> 9998 + + +## inst_store_imm_indirect_u8_with_offset_ok + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero registers: + * r7 = 0x20eff + +``` + : @0 + 0: 46 27 00 01 12 u8 [r7 + 256] = 0x12 + 5: invalid +``` + +Final non-zero memory chunks: + * 0x20fff-0x21000 (0x1 bytes) = [0x12] + +Program should end with: panic + +Final value of the program counter: 5 + +Gas consumed: 10000 -> 9998 + + +## inst_store_imm_indirect_u8_without_offset_ok + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero registers: + * r7 = 0x20fff + +``` + : @0 + 0: 46 07 12 u8 [r7 + 0] = 0x12 + 3: invalid +``` + +Final non-zero memory chunks: + * 0x20fff-0x21000 (0x1 bytes) = [0x12] + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_store_imm_u16 + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +``` + : @0 + 0: 1f 03 00 00 02 34 12 u16 [0x20000] = 0x1234 + 7: invalid +``` + +Final non-zero memory chunks: + * 0x20000-0x20002 (0x2 bytes) = [0x34, 0x12] + +Program should end with: panic + +Final value of the program counter: 7 + +Gas consumed: 10000 -> 9998 + + +## inst_store_imm_u32 + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +``` + : @0 + 0: 20 03 00 00 02 78 56 34 12 u32 [0x20000] = 0x12345678 + 9: invalid +``` + +Final non-zero memory chunks: + * 0x20000-0x20004 (0x4 bytes) = [0x78, 0x56, 0x34, 0x12] + +Program should end with: panic + +Final value of the program counter: 9 + +Gas consumed: 10000 -> 9998 + + +## inst_store_imm_u64 + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +``` + : @0 + 0: 21 03 00 00 02 78 56 34 12 u64 [0x20000] = 0x12345678 + 9: invalid +``` + +Final non-zero memory chunks: + * 0x20000-0x20004 (0x4 bytes) = [0x78, 0x56, 0x34, 0x12] + +Program should end with: panic + +Final value of the program counter: 9 + +Gas consumed: 10000 -> 9998 + + +## inst_store_imm_u8 + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +``` + : @0 + 0: 1e 03 00 00 02 12 u8 [0x20000] = 0x12 + 6: invalid +``` + +Final non-zero memory chunks: + * 0x20000-0x20001 (0x1 bytes) = [0x12] + +Program should end with: panic + +Final value of the program counter: 6 + +Gas consumed: 10000 -> 9998 + + +## inst_store_imm_u8_trap_inaccessible + +``` + : @0 + 0: 1e 03 00 00 02 12 u8 [0x20000] = 0x12 + 6: invalid +``` + +Program should end with: page-fault (page address = 0x20000) + +Final value of the program counter: 0 + +Gas consumed: 10000 -> 9998 + + +## inst_store_indirect_u16_with_offset_nok + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero registers: + * r7 = 0x20000 + * r8 = 0x12345678 + +``` + : @0 + 0: 79 78 01 10 u16 [r7 + 0x1001] = r8 + 4: invalid +``` + +Program should end with: page-fault (page address = 0x21000) + +Final value of the program counter: 0 + +Gas consumed: 10000 -> 9998 + + +## inst_store_indirect_u16_with_offset_ok + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero registers: + * r7 = 0x20000 + * r8 = 0x12345678 + +``` + : @0 + 0: 79 78 0a u16 [r7 + 0xa] = r8 + 3: invalid +``` + +Final non-zero memory chunks: + * 0x2000a-0x2000c (0x2 bytes) = [0x78, 0x56] + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_store_indirect_u16_without_offset_ok + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero registers: + * r7 = 0x20000 + * r8 = 0x12345678 + +``` + : @0 + 0: 79 78 u16 [r7 + 0] = r8 + 2: invalid +``` + +Final non-zero memory chunks: + * 0x20000-0x20002 (0x2 bytes) = [0x78, 0x56] + +Program should end with: panic + +Final value of the program counter: 2 + +Gas consumed: 10000 -> 9998 + + +## inst_store_indirect_u32_with_offset_nok + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero registers: + * r7 = 0x20000 + * r8 = 0x12345678 + +``` + : @0 + 0: 7a 78 01 10 u32 [r7 + 0x1001] = r8 + 4: invalid +``` + +Program should end with: page-fault (page address = 0x21000) + +Final value of the program counter: 0 + +Gas consumed: 10000 -> 9998 + + +## inst_store_indirect_u32_with_offset_ok + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero registers: + * r7 = 0x20000 + * r8 = 0x12345678 + +``` + : @0 + 0: 7a 78 0a u32 [r7 + 0xa] = r8 + 3: invalid +``` + +Final non-zero memory chunks: + * 0x2000a-0x2000e (0x4 bytes) = [0x78, 0x56, 0x34, 0x12] + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_store_indirect_u32_without_offset_ok + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero registers: + * r7 = 0x20000 + * r8 = 0x12345678 + +``` + : @0 + 0: 7a 78 u32 [r7 + 0] = r8 + 2: invalid +``` + +Final non-zero memory chunks: + * 0x20000-0x20004 (0x4 bytes) = [0x78, 0x56, 0x34, 0x12] + +Program should end with: panic + +Final value of the program counter: 2 + +Gas consumed: 10000 -> 9998 + + +## inst_store_indirect_u64_with_offset_nok + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero registers: + * r7 = 0x20000 + * r8 = 0x8182838485868788 + +``` + : @0 + 0: 7b 78 01 10 u64 [r7 + 0x1001] = r8 + 4: invalid +``` + +Program should end with: page-fault (page address = 0x21000) + +Final value of the program counter: 0 + +Gas consumed: 10000 -> 9998 + + +## inst_store_indirect_u64_with_offset_ok + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero registers: + * r7 = 0x20000 + * r8 = 0x8182838485868788 + +``` + : @0 + 0: 7b 78 0a u64 [r7 + 0xa] = r8 + 3: invalid +``` + +Final non-zero memory chunks: + * 0x2000a-0x20012 (0x8 bytes) = [0x88, 0x87, 0x86, 0x85, 0x84, 0x83, 0x82, 0x81] + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_store_indirect_u64_without_offset_ok + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero registers: + * r7 = 0x20000 + * r8 = 0x8182838485868788 + +``` + : @0 + 0: 7b 78 u64 [r7 + 0] = r8 + 2: invalid +``` + +Final non-zero memory chunks: + * 0x20000-0x20008 (0x8 bytes) = [0x88, 0x87, 0x86, 0x85, 0x84, 0x83, 0x82, 0x81] + +Program should end with: panic + +Final value of the program counter: 2 + +Gas consumed: 10000 -> 9998 + + +## inst_store_indirect_u8_with_offset_nok + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero registers: + * r7 = 0x20000 + * r8 = 0x12345678 + +``` + : @0 + 0: 78 78 01 10 u8 [r7 + 0x1001] = a1 + 4: invalid +``` + +Program should end with: page-fault (page address = 0x21000) + +Final value of the program counter: 0 + +Gas consumed: 10000 -> 9998 + + +## inst_store_indirect_u8_with_offset_ok + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero registers: + * r7 = 0x20000 + * r8 = 0x12345678 + +``` + : @0 + 0: 78 78 0a u8 [r7 + 0xa] = a1 + 3: invalid +``` + +Final non-zero memory chunks: + * 0x2000a-0x2000b (0x1 bytes) = [0x78] + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_store_indirect_u8_without_offset_ok + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero registers: + * r7 = 0x20000 + * r8 = 0x12345678 + +``` + : @0 + 0: 78 78 u8 [r7 + 0] = a1 + 2: invalid +``` + +Final non-zero memory chunks: + * 0x20000-0x20001 (0x1 bytes) = [0x78] + +Program should end with: panic + +Final value of the program counter: 2 + +Gas consumed: 10000 -> 9998 + + +## inst_store_u16 + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero registers: + * r7 = 0x12345678 + +``` + : @0 + 0: 3c 07 00 00 02 u16 [0x20000] = r7 + 5: invalid +``` + +Final non-zero memory chunks: + * 0x20000-0x20002 (0x2 bytes) = [0x78, 0x56] + +Program should end with: panic + +Final value of the program counter: 5 + +Gas consumed: 10000 -> 9998 + + +## inst_store_u32 + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero registers: + * r7 = 0x12345678 + +``` + : @0 + 0: 3d 07 00 00 02 u32 [0x20000] = r7 + 5: invalid +``` + +Final non-zero memory chunks: + * 0x20000-0x20004 (0x4 bytes) = [0x78, 0x56, 0x34, 0x12] + +Program should end with: panic + +Final value of the program counter: 5 + +Gas consumed: 10000 -> 9998 + + +## inst_store_u64 + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero registers: + * r7 = 0x8182838485868788 + +``` + : @0 + 0: 3e 07 00 00 02 u64 [0x20000] = r7 + 5: invalid +``` + +Final non-zero memory chunks: + * 0x20000-0x20008 (0x8 bytes) = [0x88, 0x87, 0x86, 0x85, 0x84, 0x83, 0x82, 0x81] + +Program should end with: panic + +Final value of the program counter: 5 + +Gas consumed: 10000 -> 9998 + + +## inst_store_u8 + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +Initial non-zero registers: + * r7 = 0x12345678 + +``` + : @0 + 0: 3b 07 00 00 02 u8 [0x20000] = r7 + 5: invalid +``` + +Final non-zero memory chunks: + * 0x20000-0x20001 (0x1 bytes) = [0x78] + +Program should end with: panic + +Final value of the program counter: 5 + +Gas consumed: 10000 -> 9998 + + +## inst_sub_32 + +Initial non-zero registers: + * r7 = 0x2 + * r8 = 0x1 + +``` + : @0 + 0: bf 87 09 i32 r9 = r7 - r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x1 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_sub_32_with_overflow + +Initial non-zero registers: + * r7 = 0x2 + * r8 = 0x4 + +``` + : @0 + 0: bf 87 09 i32 r9 = r7 - r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0xfffffffffffffffe (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_sub_64 + +Initial non-zero registers: + * r7 = 0x2 + * r8 = 0x1 + +``` + : @0 + 0: c9 87 09 r9 = r7 - r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x1 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_sub_64_with_overflow + +Initial non-zero registers: + * r7 = 0x2 + * r8 = 0x4 + +``` + : @0 + 0: c9 87 09 r9 = r7 - r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0xfffffffffffffffe (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_sub_imm_32 + +Initial non-zero registers: + * r7 = 0x2 + +``` + : @0 + 0: 83 79 ff i32 r9 = r7 + 0xffffffffffffffff + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x1 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_sub_imm_64 + +Initial non-zero registers: + * r7 = 0x2 + +``` + : @0 + 0: 95 79 ff r9 = r7 + 0xffffffffffffffff + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x1 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_trap + +``` + : @0 + 0: 00 trap +``` + +Program should end with: panic + +Final value of the program counter: 0 + +Gas consumed: 10000 -> 9999 + + +## inst_xor + +Initial non-zero registers: + * r7 = 0x5 + * r8 = 0x3 + +``` + : @0 + 0: d3 87 09 r9 = r7 ^ r8 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x6 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## inst_xor_imm + +Initial non-zero registers: + * r7 = 0x5 + +``` + : @0 + 0: 85 79 03 r9 = r7 ^ 0x3 + 3: invalid +``` + +Registers after execution (only changed registers): + * r9 = 0x6 (initially was 0x0) + +Program should end with: panic + +Final value of the program counter: 3 + +Gas consumed: 10000 -> 9998 + + +## riscv_rv64ua_amoadd_d + +Initial page map: + * RO: 0x10000-0x11000 (0x1000 bytes) + * RW: 0x30000-0x31000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x10000-0x10001 (0x1 bytes) = [0x08] + * 0x10002-0x10003 (0x1 bytes) = [0x03] + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 07 00 00 00 80 r7 = 0xffffffff80000000 + 22: 33 08 00 f8 r8 = 0xfffffffffffff800 + 26: 3a 0a 00 00 01 r10 = u64 [0x10000] + 31: 7b a7 u64 [r10 + 0] = r7 + 33: 82 ab r11 = u64 [r10 + 0] + 35: 3e 02 00 00 03 u64 [0x30000] = r2 + 40: c8 8b 02 r2 = r11 + r8 + 43: 7b a2 u64 [r10 + 0] = r2 + 45: 3a 02 00 00 03 r2 = u64 [0x30000] + 50: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 56: ab 4b 4c jump 132 if r11 != r4 + : @2 + 59: 33 05 03 r5 = 0x3 + 62: 82 ac r12 = u64 [r10 + 0] + 64: 33 04 ff r4 = 0xffffffffffffffff + 67: 97 44 1f r4 = r4 << 0x1f + 70: 95 44 00 f8 r4 = r4 + 0xfffffffffffff800 + 74: ab 4c 3a jump 132 if r12 != r4 + : @3 + 77: 33 05 04 r5 = 0x4 + 80: 82 ab r11 = u64 [r10 + 0] + 82: 3e 02 00 00 03 u64 [0x30000] = r2 + 87: c8 8b 02 r2 = r11 + r8 + 90: 7b a2 u64 [r10 + 0] = r2 + 92: 3a 02 00 00 03 r2 = u64 [0x30000] + 97: 33 04 ff r4 = 0xffffffffffffffff + 100: 97 44 1f r4 = r4 << 0x1f + 103: 95 44 00 f8 r4 = r4 + 0xfffffffffffff800 + 107: ab 4b 19 jump 132 if r11 != r4 + : @4 + 110: 33 05 05 r5 = 0x5 + 113: 82 ac r12 = u64 [r10 + 0] + 115: 33 04 00 00 f8 r4 = 0xfffffffffff80000 + 120: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 123: 97 44 0c r4 = r4 << 0xc + 126: ab 4c 06 jump 132 if r12 != r4 + : @5 + 129: 52 05 04 jump 133 if r5 != 0 + : @6 + 132: 00 trap + : @7 + 133: 28 7b ff jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r4 = 0xffffffff7ffff000 (initially was 0x0) + * r5 = 0x5 (initially was 0x0) + * r7 = 0xffffffff80000000 (initially was 0x0) + * r8 = 0xfffffffffffff800 (initially was 0x0) + * r10 = 0x30008 (initially was 0x0) + * r11 = 0xffffffff7ffff800 (initially was 0x0) + * r12 = 0xffffffff7ffff000 (initially was 0x0) + +Final non-zero memory chunks: + * 0x10000-0x10001 (0x1 bytes) = [0x08] + * 0x10002-0x10003 (0x1 bytes) = [0x03] + * 0x30009-0x30010 (0x7 bytes) = [0xf0, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff] + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9960 + + +## riscv_rv64ua_amoadd_w + +Initial page map: + * RO: 0x10000-0x11000 (0x1000 bytes) + * RW: 0x30000-0x31000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x10000-0x10001 (0x1 bytes) = [0x08] + * 0x10002-0x10003 (0x1 bytes) = [0x03] + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 07 00 00 00 80 r7 = 0xffffffff80000000 + 22: 33 08 00 f8 r8 = 0xfffffffffffff800 + 26: 3a 0a 00 00 01 r10 = u64 [0x10000] + 31: 7a a7 u32 [r10 + 0] = r7 + 33: 3e 04 00 00 03 u64 [0x30000] = r4 + 38: 97 84 20 r4 = r8 << 0x20 + 41: 99 44 20 r4 = r4 >>a 0x20 + 44: 81 ab r11 = i32 [r10 + 0] + 46: be 4b 04 i32 r4 = r11 + r4 + 49: 7a a4 u32 [r10 + 0] = r4 + 51: 3a 04 00 00 03 r4 = u64 [0x30000] + 56: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 62: ab 4b 51 jump 143 if r11 != r4 + : @2 + 65: 33 05 03 r5 = 0x3 + 68: 81 ac r12 = i32 [r10 + 0] + 70: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 76: 83 44 00 f8 i32 r4 = r4 + 0xfffffffffffff800 + 80: ab 4c 3f jump 143 if r12 != r4 + : @3 + 83: 33 05 04 r5 = 0x4 + 86: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 92: 3e 04 00 00 03 u64 [0x30000] = r4 + 97: 97 84 20 r4 = r8 << 0x20 + 100: 99 44 20 r4 = r4 >>a 0x20 + 103: 81 ab r11 = i32 [r10 + 0] + 105: be 4b 04 i32 r4 = r11 + r4 + 108: 7a a4 u32 [r10 + 0] = r4 + 110: 3a 04 00 00 03 r4 = u64 [0x30000] + 115: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 121: 83 44 00 f8 i32 r4 = r4 + 0xfffffffffffff800 + 125: ab 4b 12 jump 143 if r11 != r4 + : @4 + 128: 33 05 05 r5 = 0x5 + 131: 81 ac r12 = i32 [r10 + 0] + 133: 33 04 00 f8 r4 = 0xfffffffffffff800 + 137: ab 4c 06 jump 143 if r12 != r4 + : @5 + 140: 52 05 04 jump 144 if r5 != 0 + : @6 + 143: 00 trap + : @7 + 144: 28 70 ff jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r4 = 0xfffffffffffff800 (initially was 0x0) + * r5 = 0x5 (initially was 0x0) + * r7 = 0xffffffff80000000 (initially was 0x0) + * r8 = 0xffffffff80000000 (initially was 0x0) + * r10 = 0x30008 (initially was 0x0) + * r11 = 0x7ffff800 (initially was 0x0) + * r12 = 0xfffffffffffff800 (initially was 0x0) + +Final non-zero memory chunks: + * 0x10000-0x10001 (0x1 bytes) = [0x08] + * 0x10002-0x10003 (0x1 bytes) = [0x03] + * 0x30001-0x30004 (0x3 bytes) = [0xf8, 0xff, 0x7f] + * 0x30009-0x3000c (0x3 bytes) = [0xf8, 0xff, 0xff] + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9959 + + +## riscv_rv64ua_amoand_d + +Initial page map: + * RO: 0x10000-0x11000 (0x1000 bytes) + * RW: 0x30000-0x31000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x10000-0x10001 (0x1 bytes) = [0x08] + * 0x10002-0x10003 (0x1 bytes) = [0x03] + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 07 00 00 00 80 r7 = 0xffffffff80000000 + 22: 33 08 00 f8 r8 = 0xfffffffffffff800 + 26: 3a 0a 00 00 01 r10 = u64 [0x10000] + 31: 7b a7 u64 [r10 + 0] = r7 + 33: 82 ab r11 = u64 [r10 + 0] + 35: 3e 02 00 00 03 u64 [0x30000] = r2 + 40: d2 8b 02 r2 = r11 & r8 + 43: 7b a2 u64 [r10 + 0] = r2 + 45: 3a 02 00 00 03 r2 = u64 [0x30000] + 50: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 56: ab 4b 45 jump 125 if r11 != r4 + : @2 + 59: 33 05 03 r5 = 0x3 + 62: 82 ac r12 = u64 [r10 + 0] + 64: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 70: ab 4c 37 jump 125 if r12 != r4 + : @3 + 73: 33 05 04 r5 = 0x4 + 76: 33 08 01 r8 = 0x1 + 79: 97 88 1f r8 = r8 << 0x1f + 82: 82 ab r11 = u64 [r10 + 0] + 84: 3e 02 00 00 03 u64 [0x30000] = r2 + 89: d2 8b 02 r2 = r11 & r8 + 92: 7b a2 u64 [r10 + 0] = r2 + 94: 3a 02 00 00 03 r2 = u64 [0x30000] + 99: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 105: ab 4b 14 jump 125 if r11 != r4 + : @4 + 108: 33 05 05 r5 = 0x5 + 111: 82 ac r12 = u64 [r10 + 0] + 113: 33 04 01 r4 = 0x1 + 116: 97 44 1f r4 = r4 << 0x1f + 119: ab 4c 06 jump 125 if r12 != r4 + : @5 + 122: 52 05 04 jump 126 if r5 != 0 + : @6 + 125: 00 trap + : @7 + 126: 28 82 jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r4 = 0x80000000 (initially was 0x0) + * r5 = 0x5 (initially was 0x0) + * r7 = 0xffffffff80000000 (initially was 0x0) + * r8 = 0x80000000 (initially was 0x0) + * r10 = 0x30008 (initially was 0x0) + * r11 = 0xffffffff80000000 (initially was 0x0) + * r12 = 0x80000000 (initially was 0x0) + +Final non-zero memory chunks: + * 0x10000-0x10001 (0x1 bytes) = [0x08] + * 0x10002-0x10003 (0x1 bytes) = [0x03] + * 0x3000b-0x3000c (0x1 bytes) = [0x80] + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9963 + + +## riscv_rv64ua_amoand_w + +Initial page map: + * RO: 0x10000-0x11000 (0x1000 bytes) + * RW: 0x30000-0x31000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x10000-0x10001 (0x1 bytes) = [0x08] + * 0x10002-0x10003 (0x1 bytes) = [0x03] + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 07 00 00 00 80 r7 = 0xffffffff80000000 + 22: 33 08 00 f8 r8 = 0xfffffffffffff800 + 26: 3a 0a 00 00 01 r10 = u64 [0x10000] + 31: 7a a7 u32 [r10 + 0] = r7 + 33: 3e 04 00 00 03 u64 [0x30000] = r4 + 38: 97 84 20 r4 = r8 << 0x20 + 41: 99 44 20 r4 = r4 >>a 0x20 + 44: 81 ab r11 = i32 [r10 + 0] + 46: d2 4b 04 r4 = r11 & r4 + 49: 7a a4 u32 [r10 + 0] = r4 + 51: 3a 04 00 00 03 r4 = u64 [0x30000] + 56: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 62: ab 4b 4b jump 137 if r11 != r4 + : @2 + 65: 33 05 03 r5 = 0x3 + 68: 81 ac r12 = i32 [r10 + 0] + 70: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 76: ab 4c 3d jump 137 if r12 != r4 + : @3 + 79: 33 05 04 r5 = 0x4 + 82: 33 08 01 r8 = 0x1 + 85: 97 88 1f r8 = r8 << 0x1f + 88: 3e 04 00 00 03 u64 [0x30000] = r4 + 93: 97 84 20 r4 = r8 << 0x20 + 96: 99 44 20 r4 = r4 >>a 0x20 + 99: 81 ab r11 = i32 [r10 + 0] + 101: d2 4b 04 r4 = r11 & r4 + 104: 7a a4 u32 [r10 + 0] = r4 + 106: 3a 04 00 00 03 r4 = u64 [0x30000] + 111: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 117: ab 4b 14 jump 137 if r11 != r4 + : @4 + 120: 33 05 05 r5 = 0x5 + 123: 81 ac r12 = i32 [r10 + 0] + 125: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 131: ab 4c 06 jump 137 if r12 != r4 + : @5 + 134: 52 05 04 jump 138 if r5 != 0 + : @6 + 137: 00 trap + : @7 + 138: 28 76 ff jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r4 = 0xffffffff80000000 (initially was 0x0) + * r5 = 0x5 (initially was 0x0) + * r7 = 0xffffffff80000000 (initially was 0x0) + * r8 = 0x80000000 (initially was 0x0) + * r10 = 0x30008 (initially was 0x0) + * r11 = 0xffffffff80000000 (initially was 0x0) + * r12 = 0xffffffff80000000 (initially was 0x0) + +Final non-zero memory chunks: + * 0x10000-0x10001 (0x1 bytes) = [0x08] + * 0x10002-0x10003 (0x1 bytes) = [0x03] + * 0x30003-0x30008 (0x5 bytes) = [0x80, 0xff, 0xff, 0xff, 0xff] + * 0x3000b-0x3000c (0x1 bytes) = [0x80] + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9960 + + +## riscv_rv64ua_amomax_d + +Initial page map: + * RO: 0x10000-0x11000 (0x1000 bytes) + * RW: 0x30000-0x31000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x10000-0x10001 (0x1 bytes) = [0x10] + * 0x10002-0x10003 (0x1 bytes) = [0x03] + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 07 00 00 00 80 r7 = 0xffffffff80000000 + 22: 33 08 00 f8 r8 = 0xfffffffffffff800 + 26: 3a 0a 00 00 01 r10 = u64 [0x10000] + 31: 7b a7 u64 [r10 + 0] = r7 + 33: 82 ab r11 = u64 [r10 + 0] + 35: 3e 02 00 00 03 u64 [0x30000] = r2 + 40: 3e 03 08 00 03 u64 [0x30008] = r3 + 45: d9 b8 02 r2 = r8 9956 + + +## riscv_rv64ua_amomax_w + +Initial page map: + * RO: 0x10000-0x11000 (0x1000 bytes) + * RW: 0x30000-0x31000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x10000-0x10001 (0x1 bytes) = [0x18] + * 0x10002-0x10003 (0x1 bytes) = [0x03] + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 07 00 00 00 80 r7 = 0xffffffff80000000 + 22: 33 08 00 f8 r8 = 0xfffffffffffff800 + 26: 3a 0a 00 00 01 r10 = u64 [0x10000] + 31: 7a a7 u32 [r10 + 0] = r7 + 33: 3e 02 00 00 03 u64 [0x30000] = r2 + 38: 3e 03 08 00 03 u64 [0x30008] = r3 + 43: 3e 04 10 00 03 u64 [0x30010] = r4 + 48: 97 82 20 r2 = r8 << 0x20 + 51: 99 24 20 r4 = r2 >>a 0x20 + 54: 81 ab r11 = i32 [r10 + 0] + 56: d9 b4 02 r2 = r4 >a 0x20 + 133: 81 ab r11 = i32 [r10 + 0] + 135: d9 b4 02 r2 = r4 >a 0x20 + 216: 81 ab r11 = i32 [r10 + 0] + 218: d9 b4 02 r2 = r4 9923 + + +## riscv_rv64ua_amomaxu_d + +Initial page map: + * RO: 0x10000-0x11000 (0x1000 bytes) + * RW: 0x30000-0x31000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x10000-0x10001 (0x1 bytes) = [0x10] + * 0x10002-0x10003 (0x1 bytes) = [0x03] + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 07 00 00 00 80 r7 = 0xffffffff80000000 + 22: 33 08 00 f8 r8 = 0xfffffffffffff800 + 26: 3a 0a 00 00 01 r10 = u64 [0x10000] + 31: 7b a7 u64 [r10 + 0] = r7 + 33: 82 ab r11 = u64 [r10 + 0] + 35: 3e 02 00 00 03 u64 [0x30000] = r2 + 40: 3e 03 08 00 03 u64 [0x30008] = r3 + 45: d8 b8 02 r2 = r8 9956 + + +## riscv_rv64ua_amomaxu_w + +Initial page map: + * RO: 0x10000-0x11000 (0x1000 bytes) + * RW: 0x30000-0x31000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x10000-0x10001 (0x1 bytes) = [0x18] + * 0x10002-0x10003 (0x1 bytes) = [0x03] + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 07 00 00 00 80 r7 = 0xffffffff80000000 + 22: 33 08 00 f8 r8 = 0xfffffffffffff800 + 26: 3a 0a 00 00 01 r10 = u64 [0x10000] + 31: 7a a7 u32 [r10 + 0] = r7 + 33: 3e 02 00 00 03 u64 [0x30000] = r2 + 38: 3e 03 08 00 03 u64 [0x30008] = r3 + 43: 3e 04 10 00 03 u64 [0x30010] = r4 + 48: 97 82 20 r2 = r8 << 0x20 + 51: 99 24 20 r4 = r2 >>a 0x20 + 54: 81 ab r11 = i32 [r10 + 0] + 56: d8 b4 02 r2 = r4 >a 0x20 + 133: 81 ab r11 = i32 [r10 + 0] + 135: d8 b4 02 r2 = r4 >a 0x20 + 216: 81 ab r11 = i32 [r10 + 0] + 218: d8 b4 02 r2 = r4 9923 + + +## riscv_rv64ua_amomin_d + +Initial page map: + * RO: 0x10000-0x11000 (0x1000 bytes) + * RW: 0x30000-0x31000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x10000-0x10001 (0x1 bytes) = [0x10] + * 0x10002-0x10003 (0x1 bytes) = [0x03] + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 07 00 00 00 80 r7 = 0xffffffff80000000 + 22: 33 08 00 f8 r8 = 0xfffffffffffff800 + 26: 3a 0a 00 00 01 r10 = u64 [0x10000] + 31: 7b a7 u64 [r10 + 0] = r7 + 33: 82 ab r11 = u64 [r10 + 0] + 35: 3e 02 00 00 03 u64 [0x30000] = r2 + 40: 3e 03 08 00 03 u64 [0x30008] = r3 + 45: d9 8b 02 r2 = r11 9956 + + +## riscv_rv64ua_amomin_w + +Initial page map: + * RO: 0x10000-0x11000 (0x1000 bytes) + * RW: 0x30000-0x31000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x10000-0x10001 (0x1 bytes) = [0x18] + * 0x10002-0x10003 (0x1 bytes) = [0x03] + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 07 00 00 00 80 r7 = 0xffffffff80000000 + 22: 33 08 00 f8 r8 = 0xfffffffffffff800 + 26: 3a 0a 00 00 01 r10 = u64 [0x10000] + 31: 7a a7 u32 [r10 + 0] = r7 + 33: 3e 02 00 00 03 u64 [0x30000] = r2 + 38: 3e 03 08 00 03 u64 [0x30008] = r3 + 43: 3e 04 10 00 03 u64 [0x30010] = r4 + 48: 97 82 20 r2 = r8 << 0x20 + 51: 99 24 20 r4 = r2 >>a 0x20 + 54: 81 ab r11 = i32 [r10 + 0] + 56: d9 4b 02 r2 = r11 >a 0x20 + 135: 81 ab r11 = i32 [r10 + 0] + 137: d9 4b 02 r2 = r11 >a 0x20 + 218: 81 ab r11 = i32 [r10 + 0] + 220: d9 4b 02 r2 = r11 9923 + + +## riscv_rv64ua_amominu_d + +Initial page map: + * RO: 0x10000-0x11000 (0x1000 bytes) + * RW: 0x30000-0x31000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x10000-0x10001 (0x1 bytes) = [0x10] + * 0x10002-0x10003 (0x1 bytes) = [0x03] + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 07 00 00 00 80 r7 = 0xffffffff80000000 + 22: 33 08 00 f8 r8 = 0xfffffffffffff800 + 26: 3a 0a 00 00 01 r10 = u64 [0x10000] + 31: 7b a7 u64 [r10 + 0] = r7 + 33: 82 ab r11 = u64 [r10 + 0] + 35: 3e 02 00 00 03 u64 [0x30000] = r2 + 40: 3e 03 08 00 03 u64 [0x30008] = r3 + 45: d8 8b 02 r2 = r11 9956 + + +## riscv_rv64ua_amominu_w + +Initial page map: + * RO: 0x10000-0x11000 (0x1000 bytes) + * RW: 0x30000-0x31000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x10000-0x10001 (0x1 bytes) = [0x18] + * 0x10002-0x10003 (0x1 bytes) = [0x03] + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 07 00 00 00 80 r7 = 0xffffffff80000000 + 22: 33 08 00 f8 r8 = 0xfffffffffffff800 + 26: 3a 0a 00 00 01 r10 = u64 [0x10000] + 31: 7a a7 u32 [r10 + 0] = r7 + 33: 3e 02 00 00 03 u64 [0x30000] = r2 + 38: 3e 03 08 00 03 u64 [0x30008] = r3 + 43: 3e 04 10 00 03 u64 [0x30010] = r4 + 48: 97 82 20 r2 = r8 << 0x20 + 51: 99 24 20 r4 = r2 >>a 0x20 + 54: 81 ab r11 = i32 [r10 + 0] + 56: d8 4b 02 r2 = r11 >a 0x20 + 135: 81 ab r11 = i32 [r10 + 0] + 137: d8 4b 02 r2 = r11 >a 0x20 + 217: 81 ab r11 = i32 [r10 + 0] + 219: d8 4b 02 r2 = r11 9923 + + +## riscv_rv64ua_amoor_d + +Initial page map: + * RO: 0x10000-0x11000 (0x1000 bytes) + * RW: 0x30000-0x31000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x10000-0x10001 (0x1 bytes) = [0x08] + * 0x10002-0x10003 (0x1 bytes) = [0x03] + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 07 00 00 00 80 r7 = 0xffffffff80000000 + 22: 33 08 00 f8 r8 = 0xfffffffffffff800 + 26: 3a 0a 00 00 01 r10 = u64 [0x10000] + 31: 7b a7 u64 [r10 + 0] = r7 + 33: 82 ab r11 = u64 [r10 + 0] + 35: 3e 02 00 00 03 u64 [0x30000] = r2 + 40: d4 8b 02 r2 = r11 | r8 + 43: 7b a2 u64 [r10 + 0] = r2 + 45: 3a 02 00 00 03 r2 = u64 [0x30000] + 50: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 56: ab 4b 3c jump 116 if r11 != r4 + : @2 + 59: 33 05 03 r5 = 0x3 + 62: 82 ac r12 = u64 [r10 + 0] + 64: 33 04 00 f8 r4 = 0xfffffffffffff800 + 68: ab 4c 30 jump 116 if r12 != r4 + : @3 + 71: 33 05 04 r5 = 0x4 + 74: 33 08 01 r8 = 0x1 + 77: 82 ab r11 = u64 [r10 + 0] + 79: 3e 02 00 00 03 u64 [0x30000] = r2 + 84: d4 8b 02 r2 = r11 | r8 + 87: 7b a2 u64 [r10 + 0] = r2 + 89: 3a 02 00 00 03 r2 = u64 [0x30000] + 94: 33 04 00 f8 r4 = 0xfffffffffffff800 + 98: ab 4b 12 jump 116 if r11 != r4 + : @4 + 101: 33 05 05 r5 = 0x5 + 104: 82 ac r12 = u64 [r10 + 0] + 106: 33 04 01 f8 r4 = 0xfffffffffffff801 + 110: ab 4c 06 jump 116 if r12 != r4 + : @5 + 113: 52 05 04 jump 117 if r5 != 0 + : @6 + 116: 00 trap + : @7 + 117: 28 8b jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r4 = 0xfffffffffffff801 (initially was 0x0) + * r5 = 0x5 (initially was 0x0) + * r7 = 0xffffffff80000000 (initially was 0x0) + * r8 = 0x1 (initially was 0x0) + * r10 = 0x30008 (initially was 0x0) + * r11 = 0xfffffffffffff800 (initially was 0x0) + * r12 = 0xfffffffffffff801 (initially was 0x0) + +Final non-zero memory chunks: + * 0x10000-0x10001 (0x1 bytes) = [0x08] + * 0x10002-0x10003 (0x1 bytes) = [0x03] + * 0x30008-0x30010 (0x8 bytes) = [0x01, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff] + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9965 + + +## riscv_rv64ua_amoor_w + +Initial page map: + * RO: 0x10000-0x11000 (0x1000 bytes) + * RW: 0x30000-0x31000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x10000-0x10001 (0x1 bytes) = [0x08] + * 0x10002-0x10003 (0x1 bytes) = [0x03] + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 07 00 00 00 80 r7 = 0xffffffff80000000 + 22: 33 08 00 f8 r8 = 0xfffffffffffff800 + 26: 3a 0a 00 00 01 r10 = u64 [0x10000] + 31: 7a a7 u32 [r10 + 0] = r7 + 33: 3e 04 00 00 03 u64 [0x30000] = r4 + 38: 97 84 20 r4 = r8 << 0x20 + 41: 99 44 20 r4 = r4 >>a 0x20 + 44: 81 ab r11 = i32 [r10 + 0] + 46: d4 4b 04 r4 = r11 | r4 + 49: 7a a4 u32 [r10 + 0] = r4 + 51: 3a 04 00 00 03 r4 = u64 [0x30000] + 56: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 62: ab 4b 42 jump 128 if r11 != r4 + : @2 + 65: 33 05 03 r5 = 0x3 + 68: 81 ac r12 = i32 [r10 + 0] + 70: 33 04 00 f8 r4 = 0xfffffffffffff800 + 74: ab 4c 36 jump 128 if r12 != r4 + : @3 + 77: 33 05 04 r5 = 0x4 + 80: 33 08 01 r8 = 0x1 + 83: 3e 04 00 00 03 u64 [0x30000] = r4 + 88: 97 84 20 r4 = r8 << 0x20 + 91: 99 44 20 r4 = r4 >>a 0x20 + 94: 81 ab r11 = i32 [r10 + 0] + 96: d4 4b 04 r4 = r11 | r4 + 99: 7a a4 u32 [r10 + 0] = r4 + 101: 3a 04 00 00 03 r4 = u64 [0x30000] + 106: 33 04 00 f8 r4 = 0xfffffffffffff800 + 110: ab 4b 12 jump 128 if r11 != r4 + : @4 + 113: 33 05 05 r5 = 0x5 + 116: 81 ac r12 = i32 [r10 + 0] + 118: 33 04 01 f8 r4 = 0xfffffffffffff801 + 122: ab 4c 06 jump 128 if r12 != r4 + : @5 + 125: 52 05 04 jump 129 if r5 != 0 + : @6 + 128: 00 trap + : @7 + 129: 28 7f ff jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r4 = 0xfffffffffffff801 (initially was 0x0) + * r5 = 0x5 (initially was 0x0) + * r7 = 0xffffffff80000000 (initially was 0x0) + * r8 = 0x1 (initially was 0x0) + * r10 = 0x30008 (initially was 0x0) + * r11 = 0xfffffffffffff800 (initially was 0x0) + * r12 = 0xfffffffffffff801 (initially was 0x0) + +Final non-zero memory chunks: + * 0x10000-0x10001 (0x1 bytes) = [0x08] + * 0x10002-0x10003 (0x1 bytes) = [0x03] + * 0x30001-0x3000c (0xb bytes) = [0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0xf8, 0xff, 0xff] + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9961 + + +## riscv_rv64ua_amoswap_d + +Initial page map: + * RO: 0x10000-0x11000 (0x1000 bytes) + * RW: 0x30000-0x31000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x10000-0x10001 (0x1 bytes) = [0x08] + * 0x10002-0x10003 (0x1 bytes) = [0x03] + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 07 00 00 00 80 r7 = 0xffffffff80000000 + 22: 33 08 00 f8 r8 = 0xfffffffffffff800 + 26: 3a 0a 00 00 01 r10 = u64 [0x10000] + 31: 7b a7 u64 [r10 + 0] = r7 + 33: 82 ab r11 = u64 [r10 + 0] + 35: 3e 02 00 00 03 u64 [0x30000] = r2 + 40: 95 82 r2 = r8 + 0 + 42: 7b a2 u64 [r10 + 0] = r2 + 44: 3a 02 00 00 03 r2 = u64 [0x30000] + 49: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 55: ab 4b 40 jump 119 if r11 != r4 + : @2 + 58: 33 05 03 r5 = 0x3 + 61: 82 ac r12 = u64 [r10 + 0] + 63: 33 04 00 f8 r4 = 0xfffffffffffff800 + 67: ab 4c 34 jump 119 if r12 != r4 + : @3 + 70: 33 05 04 r5 = 0x4 + 73: 33 08 01 r8 = 0x1 + 76: 97 88 1f r8 = r8 << 0x1f + 79: 82 ab r11 = u64 [r10 + 0] + 81: 3e 02 00 00 03 u64 [0x30000] = r2 + 86: 95 82 r2 = r8 + 0 + 88: 7b a2 u64 [r10 + 0] = r2 + 90: 3a 02 00 00 03 r2 = u64 [0x30000] + 95: 33 04 00 f8 r4 = 0xfffffffffffff800 + 99: ab 4b 14 jump 119 if r11 != r4 + : @4 + 102: 33 05 05 r5 = 0x5 + 105: 82 ac r12 = u64 [r10 + 0] + 107: 33 04 01 r4 = 0x1 + 110: 97 44 1f r4 = r4 << 0x1f + 113: ab 4c 06 jump 119 if r12 != r4 + : @5 + 116: 52 05 04 jump 120 if r5 != 0 + : @6 + 119: 00 trap + : @7 + 120: 28 88 jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r4 = 0x80000000 (initially was 0x0) + * r5 = 0x5 (initially was 0x0) + * r7 = 0xffffffff80000000 (initially was 0x0) + * r8 = 0x80000000 (initially was 0x0) + * r10 = 0x30008 (initially was 0x0) + * r11 = 0xfffffffffffff800 (initially was 0x0) + * r12 = 0x80000000 (initially was 0x0) + +Final non-zero memory chunks: + * 0x10000-0x10001 (0x1 bytes) = [0x08] + * 0x10002-0x10003 (0x1 bytes) = [0x03] + * 0x3000b-0x3000c (0x1 bytes) = [0x80] + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9963 + + +## riscv_rv64ua_amoswap_w + +Initial page map: + * RO: 0x10000-0x11000 (0x1000 bytes) + * RW: 0x30000-0x31000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x10000-0x10001 (0x1 bytes) = [0x08] + * 0x10002-0x10003 (0x1 bytes) = [0x03] + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 07 00 00 00 80 r7 = 0xffffffff80000000 + 22: 33 08 00 f8 r8 = 0xfffffffffffff800 + 26: 3a 0a 00 00 01 r10 = u64 [0x10000] + 31: 7a a7 u32 [r10 + 0] = r7 + 33: 3e 04 00 00 03 u64 [0x30000] = r4 + 38: 97 84 20 r4 = r8 << 0x20 + 41: 99 44 20 r4 = r4 >>a 0x20 + 44: 81 ab r11 = i32 [r10 + 0] + 46: 83 44 i32 r4 = r4 + 0 + 48: 7a a4 u32 [r10 + 0] = r4 + 50: 3a 04 00 00 03 r4 = u64 [0x30000] + 55: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 61: ab 4b 46 jump 131 if r11 != r4 + : @2 + 64: 33 05 03 r5 = 0x3 + 67: 81 ac r12 = i32 [r10 + 0] + 69: 33 04 00 f8 r4 = 0xfffffffffffff800 + 73: ab 4c 3a jump 131 if r12 != r4 + : @3 + 76: 33 05 04 r5 = 0x4 + 79: 33 08 01 r8 = 0x1 + 82: 97 88 1f r8 = r8 << 0x1f + 85: 3e 04 00 00 03 u64 [0x30000] = r4 + 90: 97 84 20 r4 = r8 << 0x20 + 93: 99 44 20 r4 = r4 >>a 0x20 + 96: 81 ab r11 = i32 [r10 + 0] + 98: 83 44 i32 r4 = r4 + 0 + 100: 7a a4 u32 [r10 + 0] = r4 + 102: 3a 04 00 00 03 r4 = u64 [0x30000] + 107: 33 04 00 f8 r4 = 0xfffffffffffff800 + 111: ab 4b 14 jump 131 if r11 != r4 + : @4 + 114: 33 05 05 r5 = 0x5 + 117: 81 ac r12 = i32 [r10 + 0] + 119: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 125: ab 4c 06 jump 131 if r12 != r4 + : @5 + 128: 52 05 04 jump 132 if r5 != 0 + : @6 + 131: 00 trap + : @7 + 132: 28 7c ff jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r4 = 0xffffffff80000000 (initially was 0x0) + * r5 = 0x5 (initially was 0x0) + * r7 = 0xffffffff80000000 (initially was 0x0) + * r8 = 0x80000000 (initially was 0x0) + * r10 = 0x30008 (initially was 0x0) + * r11 = 0xfffffffffffff800 (initially was 0x0) + * r12 = 0xffffffff80000000 (initially was 0x0) + +Final non-zero memory chunks: + * 0x10000-0x10001 (0x1 bytes) = [0x08] + * 0x10002-0x10003 (0x1 bytes) = [0x03] + * 0x30001-0x30008 (0x7 bytes) = [0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff] + * 0x3000b-0x3000c (0x1 bytes) = [0x80] + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9960 + + +## riscv_rv64ua_amoxor_d + +Initial page map: + * RO: 0x10000-0x11000 (0x1000 bytes) + * RW: 0x30000-0x31000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x10000-0x10001 (0x1 bytes) = [0x08] + * 0x10002-0x10003 (0x1 bytes) = [0x03] + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 07 00 00 00 80 r7 = 0xffffffff80000000 + 22: 33 08 00 f8 r8 = 0xfffffffffffff800 + 26: 3a 0a 00 00 01 r10 = u64 [0x10000] + 31: 7b a7 u64 [r10 + 0] = r7 + 33: 82 ab r11 = u64 [r10 + 0] + 35: 3e 02 00 00 03 u64 [0x30000] = r2 + 40: d3 8b 02 r2 = r11 ^ r8 + 43: 7b a2 u64 [r10 + 0] = r2 + 45: 3a 02 00 00 03 r2 = u64 [0x30000] + 50: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 56: ab 4b 4e jump 134 if r11 != r4 + : @2 + 59: 33 05 03 r5 = 0x3 + 62: 82 ac r12 = u64 [r10 + 0] + 64: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 70: 83 44 00 f8 i32 r4 = r4 + 0xfffffffffffff800 + 74: ab 4c 3c jump 134 if r12 != r4 + : @3 + 77: 33 05 04 r5 = 0x4 + 80: 33 08 01 r8 = 0x1 + 83: 82 ab r11 = u64 [r10 + 0] + 85: 3e 02 00 00 03 u64 [0x30000] = r2 + 90: d3 8b 02 r2 = r11 ^ r8 + 93: 7b a2 u64 [r10 + 0] = r2 + 95: 3a 02 00 00 03 r2 = u64 [0x30000] + 100: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 106: 83 44 00 f8 i32 r4 = r4 + 0xfffffffffffff800 + 110: ab 4b 18 jump 134 if r11 != r4 + : @4 + 113: 33 05 05 r5 = 0x5 + 116: 82 ac r12 = u64 [r10 + 0] + 118: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 124: 83 44 01 f8 i32 r4 = r4 + 0xfffffffffffff801 + 128: ab 4c 06 jump 134 if r12 != r4 + : @5 + 131: 52 05 04 jump 135 if r5 != 0 + : @6 + 134: 00 trap + : @7 + 135: 28 79 ff jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r4 = 0x7ffff801 (initially was 0x0) + * r5 = 0x5 (initially was 0x0) + * r7 = 0xffffffff80000000 (initially was 0x0) + * r8 = 0x1 (initially was 0x0) + * r10 = 0x30008 (initially was 0x0) + * r11 = 0x7ffff800 (initially was 0x0) + * r12 = 0x7ffff801 (initially was 0x0) + +Final non-zero memory chunks: + * 0x10000-0x10001 (0x1 bytes) = [0x08] + * 0x10002-0x10003 (0x1 bytes) = [0x03] + * 0x30008-0x3000c (0x4 bytes) = [0x01, 0xf8, 0xff, 0x7f] + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9962 + + +## riscv_rv64ua_amoxor_w + +Initial page map: + * RO: 0x10000-0x11000 (0x1000 bytes) + * RW: 0x30000-0x31000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x10000-0x10001 (0x1 bytes) = [0x08] + * 0x10002-0x10003 (0x1 bytes) = [0x03] + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 07 00 00 00 80 r7 = 0xffffffff80000000 + 22: 33 08 00 f8 r8 = 0xfffffffffffff800 + 26: 3a 0a 00 00 01 r10 = u64 [0x10000] + 31: 7a a7 u32 [r10 + 0] = r7 + 33: 3e 04 00 00 03 u64 [0x30000] = r4 + 38: 97 84 20 r4 = r8 << 0x20 + 41: 99 44 20 r4 = r4 >>a 0x20 + 44: 81 ab r11 = i32 [r10 + 0] + 46: d3 4b 04 r4 = r11 ^ r4 + 49: 7a a4 u32 [r10 + 0] = r4 + 51: 3a 04 00 00 03 r4 = u64 [0x30000] + 56: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 62: ab 4b 5a jump 152 if r11 != r4 + : @2 + 65: 33 05 03 r5 = 0x3 + 68: 81 ac r12 = i32 [r10 + 0] + 70: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 76: 83 44 00 f8 i32 r4 = r4 + 0xfffffffffffff800 + 80: ab 4c 48 jump 152 if r12 != r4 + : @3 + 83: 33 05 04 r5 = 0x4 + 86: 33 08 03 r8 = 0x3 + 89: 97 88 1e r8 = r8 << 0x1e + 92: 95 88 01 r8 = r8 + 0x1 + 95: 3e 04 00 00 03 u64 [0x30000] = r4 + 100: 97 84 20 r4 = r8 << 0x20 + 103: 99 44 20 r4 = r4 >>a 0x20 + 106: 81 ab r11 = i32 [r10 + 0] + 108: d3 4b 04 r4 = r11 ^ r4 + 111: 7a a4 u32 [r10 + 0] = r4 + 113: 3a 04 00 00 03 r4 = u64 [0x30000] + 118: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 124: 83 44 00 f8 i32 r4 = r4 + 0xfffffffffffff800 + 128: ab 4b 18 jump 152 if r11 != r4 + : @4 + 131: 33 05 05 r5 = 0x5 + 134: 81 ac r12 = i32 [r10 + 0] + 136: 33 04 00 00 00 c0 r4 = 0xffffffffc0000000 + 142: 83 44 01 f8 i32 r4 = r4 + 0xfffffffffffff801 + 146: ab 4c 06 jump 152 if r12 != r4 + : @5 + 149: 52 05 04 jump 153 if r5 != 0 + : @6 + 152: 00 trap + : @7 + 153: 28 67 ff jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r4 = 0xffffffffbffff801 (initially was 0x0) + * r5 = 0x5 (initially was 0x0) + * r7 = 0xffffffff80000000 (initially was 0x0) + * r8 = 0xc0000001 (initially was 0x0) + * r10 = 0x30008 (initially was 0x0) + * r11 = 0x7ffff800 (initially was 0x0) + * r12 = 0xffffffffbffff801 (initially was 0x0) + +Final non-zero memory chunks: + * 0x10000-0x10001 (0x1 bytes) = [0x08] + * 0x10002-0x10003 (0x1 bytes) = [0x03] + * 0x30001-0x30004 (0x3 bytes) = [0xf8, 0xff, 0x7f] + * 0x30008-0x3000c (0x4 bytes) = [0x01, 0xf8, 0xff, 0xbf] + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9956 + + +## riscv_rv64uc_rvc + +Initial page map: + * RO: 0x10000-0x11000 (0x1000 bytes) + * RW: 0x30000-0x32000 (0x2000 bytes) + +Initial non-zero memory chunks: + * 0x10002-0x10003 (0x1 bytes) = [0x03] + * 0x10008-0x10009 (0x1 bytes) = [0x02] + * 0x10010-0x10011 (0x1 bytes) = [0x06] + * 0x30000-0x30010 (0x10 bytes) = [0x10, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe, 0x10, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe] + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 0b 02 r11 = 0x2 + 16: 33 08 9a 02 r8 = 0x29a + 20: 33 0b 02 r11 = 0x2 + 23: 01 fallthrough + : @2 + 24: 95 88 01 r8 = r8 + 0x1 + 27: 33 04 9b 02 r4 = 0x29b + 31: ab 48 98 02 jump 695 if r8 != r4 + : @3 + 35: 33 01 00 10 r1 = 0x1000 + 39: 83 11 34 02 i32 r1 = r1 + 0x234 + 43: 33 0b 03 r11 = 0x3 + 46: 95 17 fc 03 r7 = r1 + 0x3fc + 50: 33 04 00 10 r4 = 0x1000 + 54: 83 44 30 06 i32 r4 = r4 + 0x630 + 58: ab 47 7d 02 jump 695 if r7 != r4 + : @4 + 62: 33 0b 04 r11 = 0x4 + 65: 95 11 f0 01 r1 = r1 + 0x1f0 + 69: 33 04 00 10 r4 = 0x1000 + 73: 83 44 24 04 i32 r4 = r4 + 0x424 + 77: ab 41 6a 02 jump 695 if r1 != r4 + : @5 + 81: 33 0b 05 r11 = 0x5 + 84: 95 11 00 fe r1 = r1 + 0xfffffffffffffe00 + 88: 33 04 00 10 r4 = 0x1000 + 92: 83 44 24 02 i32 r4 = r4 + 0x224 + 96: ab 41 57 02 jump 695 if r1 != r4 + : @6 + 100: 3a 08 00 00 01 r8 = u64 [0x10000] + 105: 33 0b 06 r11 = 0x6 + 108: 81 87 04 r7 = i32 [r8 + 0x4] + 111: 95 77 01 r7 = r7 + 0x1 + 114: 7a 87 04 u32 [r8 + 0x4] = r7 + 117: 81 89 04 r9 = i32 [r8 + 0x4] + 120: 33 04 00 c0 dc fe r4 = 0xfffffffffedcc000 + 126: 83 44 99 fa i32 r4 = r4 + 0xfffffffffffffa99 + 130: ab 49 35 02 jump 695 if r9 != r4 + : @7 + 134: 33 0b 07 r11 = 0x7 + 137: 82 87 r7 = u64 [r8 + 0] + 139: 95 77 01 r7 = r7 + 0x1 + 142: 7b 87 u64 [r8 + 0] = r7 + 144: 82 89 r9 = u64 [r8 + 0] + 146: 33 04 00 e0 f6 r4 = 0xfffffffffff6e000 + 151: 83 44 d5 05 i32 r4 = r4 + 0x5d5 + 155: 97 44 0c r4 = r4 << 0xc + 158: 95 44 bb fc r4 = r4 + 0xfffffffffffffcbb + 162: 97 44 0d r4 = r4 << 0xd + 165: 95 44 43 05 r4 = r4 + 0x543 + 169: 97 44 0c r4 = r4 << 0xc + 172: 95 44 11 02 r4 = r4 + 0x211 + 176: ab 49 07 02 jump 695 if r9 != r4 + : @8 + 180: 33 0b 08 r11 = 0x8 + 183: 33 07 01 r7 = 0x1 + 186: 95 77 f0 r7 = r7 + 0xfffffffffffffff0 + 189: 33 04 f1 r4 = 0xfffffffffffffff1 + 192: ab 47 f7 01 jump 695 if r7 != r4 + : @9 + 196: 33 0b 09 r11 = 0x9 + 199: 33 0c 01 r12 = 0x1 + 202: 33 0c f0 r12 = 0xfffffffffffffff0 + 205: 33 04 f0 r4 = 0xfffffffffffffff0 + 208: ab 4c e7 01 jump 695 if r12 != r4 + : @10 + 212: 33 0b 0a r11 = 0xa + 215: 82 87 r7 = u64 [r8 + 0] + 217: 83 77 ff i32 r7 = r7 + 0xffffffffffffffff + 220: 33 04 00 30 54 76 r4 = 0x76543000 + 226: 83 44 10 02 i32 r4 = r4 + 0x210 + 230: ab 47 d1 01 jump 695 if r7 != r4 + : @11 + 234: 33 0b 0b r11 = 0xb + 237: 33 05 00 10 fe r5 = 0xfffffffffffe1000 + 242: 99 55 0c r5 = r5 >>a 0xc + 245: 33 04 e1 r4 = 0xffffffffffffffe1 + 248: ab 45 bf 01 jump 695 if r5 != r4 + : @12 + 252: 33 0b 0c r11 = 0xc + 255: 33 05 00 10 fe r5 = 0xfffffffffffe1000 + 260: 98 55 0c r5 = r5 >> 0xc + 263: 33 04 01 r4 = 0x1 + 266: 97 44 34 r4 = r4 << 0x34 + 269: 95 44 e1 r4 = r4 + 0xffffffffffffffe1 + 272: ab 45 a7 01 jump 695 if r5 != r4 + : @13 + 276: 33 0b 0e r11 = 0xe + 279: 33 05 fe r5 = 0xfffffffffffffffe + 282: 84 55 ef r5 = r5 & 0xffffffffffffffef + 285: 33 04 ee r4 = 0xffffffffffffffee + 288: ab 45 97 01 jump 695 if r5 != r4 + : @14 + 292: 33 0b 0f r11 = 0xf + 295: 33 06 14 r6 = 0x14 + 298: 33 07 06 r7 = 0x6 + 301: c9 76 06 r6 = r6 - r7 + 304: 33 04 0e r4 = 0xe + 307: ab 46 84 01 jump 695 if r6 != r4 + : @15 + 311: 33 0b 10 r11 = 0x10 + 314: 33 06 14 r6 = 0x14 + 317: 33 07 06 r7 = 0x6 + 320: d3 76 06 r6 = r6 ^ r7 + 323: 33 04 12 r4 = 0x12 + 326: ab 46 71 01 jump 695 if r6 != r4 + : @16 + 330: 33 0b 11 r11 = 0x11 + 333: 33 06 14 r6 = 0x14 + 336: 33 07 06 r7 = 0x6 + 339: d4 76 06 r6 = r6 | r7 + 342: 33 04 16 r4 = 0x16 + 345: ab 46 5e 01 jump 695 if r6 != r4 + : @17 + 349: 33 0b 12 r11 = 0x12 + 352: 33 06 14 r6 = 0x14 + 355: 33 07 06 r7 = 0x6 + 358: d2 76 06 r6 = r6 & r7 + 361: 33 04 04 r4 = 0x4 + 364: ab 46 4b 01 jump 695 if r6 != r4 + : @18 + 368: 33 0b 13 r11 = 0x13 + 371: 33 06 00 00 00 80 r6 = 0xffffffff80000000 + 377: 83 66 ff i32 r6 = r6 + 0xffffffffffffffff + 380: 33 07 ff r7 = 0xffffffffffffffff + 383: bf 76 06 i32 r6 = r6 - r7 + 386: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 392: ab 46 2f 01 jump 695 if r6 != r4 + : @19 + 396: 33 0b 14 r11 = 0x14 + 399: 33 06 00 00 00 80 r6 = 0xffffffff80000000 + 405: 83 66 ff i32 r6 = r6 + 0xffffffffffffffff + 408: 33 07 01 r7 = 0x1 + 411: be 76 06 i32 r6 = r6 + r7 + 414: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 420: ab 46 13 01 jump 695 if r6 != r4 + : @20 + 424: 33 0b 15 r11 = 0x15 + 427: 33 05 00 10 r5 = 0x1000 + 431: 83 55 34 02 i32 r5 = r5 + 0x234 + 435: 97 55 04 r5 = r5 << 0x4 + 438: 33 04 00 20 01 r4 = 0x12000 + 443: 83 44 40 03 i32 r4 = r4 + 0x340 + 447: ab 45 f8 00 jump 695 if r5 != r4 + : @21 + 451: 33 0b 1e r11 = 0x1e + 454: 33 00 r0 = 0 + 456: 01 fallthrough + : @22 + 457: 33 04 r4 = 0 + 459: ab 40 ec 00 jump 695 if r0 != r4 + : @23 + 463: 33 0b 1f r11 = 0x1f + 466: 33 07 r7 = 0 + 468: 51 07 05 jump 473 if r7 == 0 + : @24 + 471: 28 04 jump 475 + : @25 + 473: 28 05 jump 478 + : @26 + 475: 28 dc 00 jump 695 + : @27 + 478: 33 04 r4 = 0 + 480: 52 04 d7 00 jump 695 if r4 != 0 + : @28 + 484: 33 0b 20 r11 = 0x20 + 487: 33 07 01 r7 = 0x1 + 490: 52 07 05 jump 495 if r7 != 0 + : @29 + 493: 28 04 jump 497 + : @30 + 495: 28 05 jump 500 + : @31 + 497: 28 c6 00 jump 695 + : @32 + 500: 33 04 r4 = 0 + 502: 52 04 c1 00 jump 695 if r4 != 0 + : @33 + 506: 33 0b 21 r11 = 0x21 + 509: 33 07 01 r7 = 0x1 + 512: 51 07 05 jump 517 if r7 == 0 + : @34 + 515: 28 05 jump 520 + : @35 + 517: 28 b2 00 jump 695 + : @36 + 520: 33 04 r4 = 0 + 522: 52 04 ad 00 jump 695 if r4 != 0 + : @37 + 526: 33 0b 22 r11 = 0x22 + 529: 33 07 r7 = 0 + 531: 52 07 05 jump 536 if r7 != 0 + : @38 + 534: 28 05 jump 539 + : @39 + 536: 28 9f 00 jump 695 + : @40 + 539: 33 04 r4 = 0 + 541: 52 04 9a 00 jump 695 if r4 != 0 + : @41 + 545: 33 0b 23 r11 = 0x23 + 548: 3a 02 08 00 01 r2 = u64 [0x10008] + 553: 33 00 r0 = 0 + 555: 32 02 jump [r2 + 0] + : @42 [@dyn 1] + 557: 33 04 r4 = 0 + 559: ab 40 88 00 jump 695 if r0 != r4 + : @43 + 563: 33 0b 24 r11 = 0x24 + 566: 3a 02 10 00 01 r2 = u64 [0x10010] + 571: 33 00 r0 = 0 + 573: b4 20 01 04 r0 = 4, jump [r2 + 0] + : @44 [@dyn 2] + 577: 28 04 jump 581 + : @45 [@dyn 3] + 579: 28 04 jump 583 + : @46 + 581: 28 72 jump 695 + : @47 + 583: c9 20 00 r0 = r0 - r2 + 586: 33 04 fe r4 = 0xfffffffffffffffe + 589: ab 40 6a jump 695 if r0 != r4 + : @48 + 592: 3a 01 00 00 01 r1 = u64 [0x10000] + 597: 33 0b 28 r11 = 0x28 + 600: 81 17 0c r7 = i32 [r1 + 0xc] + 603: 95 77 01 r7 = r7 + 0x1 + 606: 7a 17 0c u32 [r1 + 0xc] = r7 + 609: 81 19 0c r9 = i32 [r1 + 0xc] + 612: 33 04 00 c0 dc fe r4 = 0xfffffffffedcc000 + 618: 83 44 99 fa i32 r4 = r4 + 0xfffffffffffffa99 + 622: ab 49 49 jump 695 if r9 != r4 + : @49 + 625: 33 0b 29 r11 = 0x29 + 628: 82 17 08 r7 = u64 [r1 + 0x8] + 631: 95 77 01 r7 = r7 + 0x1 + 634: 7b 17 08 u64 [r1 + 0x8] = r7 + 637: 82 19 08 r9 = u64 [r1 + 0x8] + 640: 33 04 00 e0 f6 r4 = 0xfffffffffff6e000 + 645: 83 44 d5 05 i32 r4 = r4 + 0x5d5 + 649: 97 44 0c r4 = r4 << 0xc + 652: 95 44 bb fc r4 = r4 + 0xfffffffffffffcbb + 656: 97 44 0d r4 = r4 << 0xd + 659: 95 44 43 05 r4 = r4 + 0x543 + 663: 97 44 0c r4 = r4 << 0xc + 666: 95 44 11 02 r4 = r4 + 0x211 + 670: ab 49 19 jump 695 if r9 != r4 + : @50 + 673: 33 0b 2a r11 = 0x2a + 676: 33 07 23 01 r7 = 0x123 + 680: 95 72 r2 = r7 + 0 + 682: c8 72 02 r2 = r2 + r7 + 685: 33 04 46 02 r4 = 0x246 + 689: ab 42 06 jump 695 if r2 != r4 + : @51 + 692: 52 0b 04 jump 696 if r11 != 0 + : @52 + 695: 00 trap + : @53 + 696: 28 48 fd jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r1 = 0x30000 (initially was 0x0) + * r2 = 0x246 (initially was 0x0) + * r4 = 0x246 (initially was 0x0) + * r5 = 0x12340 (initially was 0x0) + * r6 = 0xffffffff80000000 (initially was 0x0) + * r7 = 0x123 (initially was 0x0) + * r8 = 0x30000 (initially was 0x0) + * r9 = 0xfedcba9976543211 (initially was 0x0) + * r11 = 0x2a (initially was 0x0) + * r12 = 0xfffffffffffffff0 (initially was 0x0) + +Final non-zero memory chunks: + * 0x10002-0x10003 (0x1 bytes) = [0x03] + * 0x10008-0x10009 (0x1 bytes) = [0x02] + * 0x10010-0x10011 (0x1 bytes) = [0x06] + * 0x30000-0x30010 (0x10 bytes) = [0x11, 0x32, 0x54, 0x76, 0x99, 0xba, 0xdc, 0xfe, 0x11, 0x32, 0x54, 0x76, 0x99, 0xba, 0xdc, 0xfe] + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9797 + + +## riscv_rv64ui_add + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 08 r8 = 0 + 18: 33 09 r9 = 0 + 20: c8 98 0b r11 = r8 + r9 + 23: 33 04 r4 = 0 + 25: ab 4b ad 03 jump 966 if r11 != r4 + : @2 + 29: 33 05 03 r5 = 0x3 + 32: 33 08 01 r8 = 0x1 + 35: 33 09 01 r9 = 0x1 + 38: c8 98 0b r11 = r8 + r9 + 41: 33 04 02 r4 = 0x2 + 44: ab 4b 9a 03 jump 966 if r11 != r4 + : @3 + 48: 33 05 04 r5 = 0x4 + 51: 33 08 03 r8 = 0x3 + 54: 33 09 07 r9 = 0x7 + 57: c8 98 0b r11 = r8 + r9 + 60: 33 04 0a r4 = 0xa + 63: ab 4b 87 03 jump 966 if r11 != r4 + : @4 + 67: 33 05 05 r5 = 0x5 + 70: 33 08 r8 = 0 + 72: 33 09 00 80 r9 = 0xffffffffffff8000 + 76: c8 98 0b r11 = r8 + r9 + 79: 33 04 00 80 r4 = 0xffffffffffff8000 + 83: ab 4b 73 03 jump 966 if r11 != r4 + : @5 + 87: 33 05 06 r5 = 0x6 + 90: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 96: 33 09 r9 = 0 + 98: c8 98 0b r11 = r8 + r9 + 101: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 107: ab 4b 5b 03 jump 966 if r11 != r4 + : @6 + 111: 33 05 07 r5 = 0x7 + 114: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 120: 33 09 00 80 r9 = 0xffffffffffff8000 + 124: c8 98 0b r11 = r8 + r9 + 127: 33 04 00 00 ff r4 = 0xffffffffffff0000 + 132: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 135: 97 44 0f r4 = r4 << 0xf + 138: ab 4b 3c 03 jump 966 if r11 != r4 + : @7 + 142: 33 05 08 r5 = 0x8 + 145: 33 08 r8 = 0 + 147: 33 09 00 80 00 r9 = 0x8000 + 152: 83 99 ff i32 r9 = r9 + 0xffffffffffffffff + 155: c8 98 0b r11 = r8 + r9 + 158: 33 04 00 80 00 r4 = 0x8000 + 163: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 166: ab 4b 20 03 jump 966 if r11 != r4 + : @8 + 170: 33 05 09 r5 = 0x9 + 173: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 179: 83 88 ff i32 r8 = r8 + 0xffffffffffffffff + 182: 33 09 r9 = 0 + 184: c8 98 0b r11 = r8 + r9 + 187: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 193: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 196: ab 4b 02 03 jump 966 if r11 != r4 + : @9 + 200: 33 05 0a r5 = 0xa + 203: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 209: 83 88 ff i32 r8 = r8 + 0xffffffffffffffff + 212: 33 09 00 80 00 r9 = 0x8000 + 217: 83 99 ff i32 r9 = r9 + 0xffffffffffffffff + 220: c8 98 0b r11 = r8 + r9 + 223: 33 04 00 00 01 r4 = 0x10000 + 228: 83 44 01 i32 r4 = r4 + 0x1 + 231: 97 44 0f r4 = r4 << 0xf + 234: 95 44 fe r4 = r4 + 0xfffffffffffffffe + 237: ab 4b d9 02 jump 966 if r11 != r4 + : @10 + 241: 33 05 0b r5 = 0xb + 244: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 250: 33 09 00 80 00 r9 = 0x8000 + 255: 83 99 ff i32 r9 = r9 + 0xffffffffffffffff + 258: c8 98 0b r11 = r8 + r9 + 261: 33 04 00 80 00 80 r4 = 0xffffffff80008000 + 267: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 270: ab 4b b8 02 jump 966 if r11 != r4 + : @11 + 274: 33 05 0c r5 = 0xc + 277: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 283: 83 88 ff i32 r8 = r8 + 0xffffffffffffffff + 286: 33 09 00 80 r9 = 0xffffffffffff8000 + 290: c8 98 0b r11 = r8 + r9 + 293: 33 04 00 80 ff 7f r4 = 0x7fff8000 + 299: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 302: ab 4b 98 02 jump 966 if r11 != r4 + : @12 + 306: 33 05 0d r5 = 0xd + 309: 33 08 r8 = 0 + 311: 33 09 ff r9 = 0xffffffffffffffff + 314: c8 98 0b r11 = r8 + r9 + 317: 33 04 ff r4 = 0xffffffffffffffff + 320: ab 4b 86 02 jump 966 if r11 != r4 + : @13 + 324: 33 05 0e r5 = 0xe + 327: 33 08 ff r8 = 0xffffffffffffffff + 330: 33 09 01 r9 = 0x1 + 333: c8 98 0b r11 = r8 + r9 + 336: 33 04 r4 = 0 + 338: ab 4b 74 02 jump 966 if r11 != r4 + : @14 + 342: 33 05 0f r5 = 0xf + 345: 33 08 ff r8 = 0xffffffffffffffff + 348: 33 09 ff r9 = 0xffffffffffffffff + 351: c8 98 0b r11 = r8 + r9 + 354: 33 04 fe r4 = 0xfffffffffffffffe + 357: ab 4b 61 02 jump 966 if r11 != r4 + : @15 + 361: 33 05 10 r5 = 0x10 + 364: 33 08 01 r8 = 0x1 + 367: 33 09 00 00 00 80 r9 = 0xffffffff80000000 + 373: 83 99 ff i32 r9 = r9 + 0xffffffffffffffff + 376: c8 98 0b r11 = r8 + r9 + 379: 33 04 01 r4 = 0x1 + 382: 97 44 1f r4 = r4 << 0x1f + 385: ab 4b 45 02 jump 966 if r11 != r4 + : @16 + 389: 33 05 11 r5 = 0x11 + 392: 33 08 0d r8 = 0xd + 395: 33 09 0b r9 = 0xb + 398: c8 98 08 r8 = r8 + r9 + 401: 33 04 18 r4 = 0x18 + 404: ab 48 32 02 jump 966 if r8 != r4 + : @17 + 408: 33 05 12 r5 = 0x12 + 411: 33 08 0e r8 = 0xe + 414: 33 09 0b r9 = 0xb + 417: c8 98 09 r9 = r8 + r9 + 420: 33 04 19 r4 = 0x19 + 423: ab 49 1f 02 jump 966 if r9 != r4 + : @18 + 427: 33 05 13 r5 = 0x13 + 430: 33 08 0d r8 = 0xd + 433: c8 88 08 r8 = r8 + r8 + 436: 33 04 1a r4 = 0x1a + 439: ab 48 0f 02 jump 966 if r8 != r4 + : @19 + 443: 33 05 14 r5 = 0x14 + 446: 33 0a r10 = 0 + 448: 01 fallthrough + : @20 + 449: 33 00 0d r0 = 0xd + 452: 33 01 0b r1 = 0xb + 455: c8 10 0b r11 = r0 + r1 + 458: 64 b3 r3 = r11 + 460: 95 aa 01 r10 = r10 + 0x1 + 463: 33 02 02 r2 = 0x2 + 466: ab 2a ef jump 449 if r10 != r2 + : @21 + 469: 33 04 18 r4 = 0x18 + 472: ab 43 ee 01 jump 966 if r3 != r4 + : @22 + 476: 33 05 15 r5 = 0x15 + 479: 33 0a r10 = 0 + 481: 01 fallthrough + : @23 + 482: 33 00 0e r0 = 0xe + 485: 33 01 0b r1 = 0xb + 488: c8 10 0b r11 = r0 + r1 + 491: 64 b3 r3 = r11 + 493: 95 aa 01 r10 = r10 + 0x1 + 496: 33 02 02 r2 = 0x2 + 499: ab 2a ef jump 482 if r10 != r2 + : @24 + 502: 33 04 19 r4 = 0x19 + 505: ab 43 cd 01 jump 966 if r3 != r4 + : @25 + 509: 33 05 16 r5 = 0x16 + 512: 33 0a r10 = 0 + 514: 01 fallthrough + : @26 + 515: 33 00 0f r0 = 0xf + 518: 33 01 0b r1 = 0xb + 521: c8 10 0b r11 = r0 + r1 + 524: 64 b3 r3 = r11 + 526: 95 aa 01 r10 = r10 + 0x1 + 529: 33 02 02 r2 = 0x2 + 532: ab 2a ef jump 515 if r10 != r2 + : @27 + 535: 33 04 1a r4 = 0x1a + 538: ab 43 ac 01 jump 966 if r3 != r4 + : @28 + 542: 33 05 17 r5 = 0x17 + 545: 33 0a r10 = 0 + 547: 01 fallthrough + : @29 + 548: 33 00 0d r0 = 0xd + 551: 33 01 0b r1 = 0xb + 554: c8 10 0b r11 = r0 + r1 + 557: 95 aa 01 r10 = r10 + 0x1 + 560: 33 02 02 r2 = 0x2 + 563: ab 2a f1 jump 548 if r10 != r2 + : @30 + 566: 33 04 18 r4 = 0x18 + 569: ab 4b 8d 01 jump 966 if r11 != r4 + : @31 + 573: 33 05 18 r5 = 0x18 + 576: 33 0a r10 = 0 + 578: 01 fallthrough + : @32 + 579: 33 00 0e r0 = 0xe + 582: 33 01 0b r1 = 0xb + 585: c8 10 0b r11 = r0 + r1 + 588: 95 aa 01 r10 = r10 + 0x1 + 591: 33 02 02 r2 = 0x2 + 594: ab 2a f1 jump 579 if r10 != r2 + : @33 + 597: 33 04 19 r4 = 0x19 + 600: ab 4b 6e 01 jump 966 if r11 != r4 + : @34 + 604: 33 05 19 r5 = 0x19 + 607: 33 0a r10 = 0 + 609: 01 fallthrough + : @35 + 610: 33 00 0f r0 = 0xf + 613: 33 01 0b r1 = 0xb + 616: c8 10 0b r11 = r0 + r1 + 619: 95 aa 01 r10 = r10 + 0x1 + 622: 33 02 02 r2 = 0x2 + 625: ab 2a f1 jump 610 if r10 != r2 + : @36 + 628: 33 04 1a r4 = 0x1a + 631: ab 4b 4f 01 jump 966 if r11 != r4 + : @37 + 635: 33 05 1a r5 = 0x1a + 638: 33 0a r10 = 0 + 640: 01 fallthrough + : @38 + 641: 33 00 0d r0 = 0xd + 644: 33 01 0b r1 = 0xb + 647: c8 10 0b r11 = r0 + r1 + 650: 95 aa 01 r10 = r10 + 0x1 + 653: 33 02 02 r2 = 0x2 + 656: ab 2a f1 jump 641 if r10 != r2 + : @39 + 659: 33 04 18 r4 = 0x18 + 662: ab 4b 30 01 jump 966 if r11 != r4 + : @40 + 666: 33 05 1b r5 = 0x1b + 669: 33 0a r10 = 0 + 671: 01 fallthrough + : @41 + 672: 33 00 0e r0 = 0xe + 675: 33 01 0b r1 = 0xb + 678: c8 10 0b r11 = r0 + r1 + 681: 95 aa 01 r10 = r10 + 0x1 + 684: 33 02 02 r2 = 0x2 + 687: ab 2a f1 jump 672 if r10 != r2 + : @42 + 690: 33 04 19 r4 = 0x19 + 693: ab 4b 11 01 jump 966 if r11 != r4 + : @43 + 697: 33 05 1c r5 = 0x1c + 700: 33 0a r10 = 0 + 702: 01 fallthrough + : @44 + 703: 33 00 0f r0 = 0xf + 706: 33 01 0b r1 = 0xb + 709: c8 10 0b r11 = r0 + r1 + 712: 95 aa 01 r10 = r10 + 0x1 + 715: 33 02 02 r2 = 0x2 + 718: ab 2a f1 jump 703 if r10 != r2 + : @45 + 721: 33 04 1a r4 = 0x1a + 724: ab 4b f2 00 jump 966 if r11 != r4 + : @46 + 728: 33 05 1d r5 = 0x1d + 731: 33 0a r10 = 0 + 733: 01 fallthrough + : @47 + 734: 33 01 0b r1 = 0xb + 737: 33 00 0d r0 = 0xd + 740: c8 10 0b r11 = r0 + r1 + 743: 95 aa 01 r10 = r10 + 0x1 + 746: 33 02 02 r2 = 0x2 + 749: ab 2a f1 jump 734 if r10 != r2 + : @48 + 752: 33 04 18 r4 = 0x18 + 755: ab 4b d3 00 jump 966 if r11 != r4 + : @49 + 759: 33 05 1e r5 = 0x1e + 762: 33 0a r10 = 0 + 764: 01 fallthrough + : @50 + 765: 33 01 0b r1 = 0xb + 768: 33 00 0e r0 = 0xe + 771: c8 10 0b r11 = r0 + r1 + 774: 95 aa 01 r10 = r10 + 0x1 + 777: 33 02 02 r2 = 0x2 + 780: ab 2a f1 jump 765 if r10 != r2 + : @51 + 783: 33 04 19 r4 = 0x19 + 786: ab 4b b4 00 jump 966 if r11 != r4 + : @52 + 790: 33 05 1f r5 = 0x1f + 793: 33 0a r10 = 0 + 795: 01 fallthrough + : @53 + 796: 33 01 0b r1 = 0xb + 799: 33 00 0f r0 = 0xf + 802: c8 10 0b r11 = r0 + r1 + 805: 95 aa 01 r10 = r10 + 0x1 + 808: 33 02 02 r2 = 0x2 + 811: ab 2a f1 jump 796 if r10 != r2 + : @54 + 814: 33 04 1a r4 = 0x1a + 817: ab 4b 95 00 jump 966 if r11 != r4 + : @55 + 821: 33 05 20 r5 = 0x20 + 824: 33 0a r10 = 0 + 826: 01 fallthrough + : @56 + 827: 33 01 0b r1 = 0xb + 830: 33 00 0d r0 = 0xd + 833: c8 10 0b r11 = r0 + r1 + 836: 95 aa 01 r10 = r10 + 0x1 + 839: 33 02 02 r2 = 0x2 + 842: ab 2a f1 jump 827 if r10 != r2 + : @57 + 845: 33 04 18 r4 = 0x18 + 848: ab 4b 76 jump 966 if r11 != r4 + : @58 + 851: 33 05 21 r5 = 0x21 + 854: 33 0a r10 = 0 + 856: 01 fallthrough + : @59 + 857: 33 01 0b r1 = 0xb + 860: 33 00 0e r0 = 0xe + 863: c8 10 0b r11 = r0 + r1 + 866: 95 aa 01 r10 = r10 + 0x1 + 869: 33 02 02 r2 = 0x2 + 872: ab 2a f1 jump 857 if r10 != r2 + : @60 + 875: 33 04 19 r4 = 0x19 + 878: ab 4b 58 jump 966 if r11 != r4 + : @61 + 881: 33 05 22 r5 = 0x22 + 884: 33 0a r10 = 0 + 886: 01 fallthrough + : @62 + 887: 33 01 0b r1 = 0xb + 890: 33 00 0f r0 = 0xf + 893: c8 10 0b r11 = r0 + r1 + 896: 95 aa 01 r10 = r10 + 0x1 + 899: 33 02 02 r2 = 0x2 + 902: ab 2a f1 jump 887 if r10 != r2 + : @63 + 905: 33 04 1a r4 = 0x1a + 908: ab 4b 3a jump 966 if r11 != r4 + : @64 + 911: 33 05 23 r5 = 0x23 + 914: 33 00 0f r0 = 0xf + 917: 95 01 r1 = r0 + 0 + 919: 33 04 0f r4 = 0xf + 922: ab 41 2c jump 966 if r1 != r4 + : @65 + 925: 33 05 24 r5 = 0x24 + 928: 33 00 20 r0 = 0x20 + 931: 95 01 r1 = r0 + 0 + 933: 33 04 20 r4 = 0x20 + 936: ab 41 1e jump 966 if r1 != r4 + : @66 + 939: 33 05 25 r5 = 0x25 + 942: 33 00 r0 = 0 + 944: 33 04 r4 = 0 + 946: ab 40 14 jump 966 if r0 != r4 + : @67 + 949: 33 05 26 r5 = 0x26 + 952: 33 00 10 r0 = 0x10 + 955: 33 01 1e r1 = 0x1e + 958: 33 04 r4 = 0 + 960: 52 04 06 jump 966 if r4 != 0 + : @68 + 963: 52 05 04 jump 967 if r5 != 0 + : @69 + 966: 00 trap + : @70 + 967: 28 39 fc jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r1 = 0x1e (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0x1a (initially was 0x0) + * r5 = 0x26 (initially was 0x0) + * r8 = 0x1a (initially was 0x0) + * r9 = 0x19 (initially was 0x0) + * r10 = 0x2 (initially was 0x0) + * r11 = 0x1a (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9590 + + +## riscv_rv64ui_addi + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 0a r10 = 0 + 18: 64 ab r11 = r10 + 20: 33 04 r4 = 0 + 22: ab 4b 03 02 jump 537 if r11 != r4 + : @2 + 26: 33 05 03 r5 = 0x3 + 29: 33 0a 01 r10 = 0x1 + 32: 95 ab 01 r11 = r10 + 0x1 + 35: 33 04 02 r4 = 0x2 + 38: ab 4b f3 01 jump 537 if r11 != r4 + : @3 + 42: 33 05 04 r5 = 0x4 + 45: 33 0a 03 r10 = 0x3 + 48: 95 ab 07 r11 = r10 + 0x7 + 51: 33 04 0a r4 = 0xa + 54: ab 4b e3 01 jump 537 if r11 != r4 + : @4 + 58: 33 05 05 r5 = 0x5 + 61: 33 0a r10 = 0 + 63: 95 ab 00 f8 r11 = r10 + 0xfffffffffffff800 + 67: 33 04 00 f8 r4 = 0xfffffffffffff800 + 71: ab 4b d2 01 jump 537 if r11 != r4 + : @5 + 75: 33 05 06 r5 = 0x6 + 78: 33 0a 00 00 00 80 r10 = 0xffffffff80000000 + 84: 64 ab r11 = r10 + 86: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 92: ab 4b bd 01 jump 537 if r11 != r4 + : @6 + 96: 33 05 07 r5 = 0x7 + 99: 33 0a 00 00 00 80 r10 = 0xffffffff80000000 + 105: 95 ab 00 f8 r11 = r10 + 0xfffffffffffff800 + 109: 33 04 ff r4 = 0xffffffffffffffff + 112: 97 44 1f r4 = r4 << 0x1f + 115: 95 44 00 f8 r4 = r4 + 0xfffffffffffff800 + 119: ab 4b a2 01 jump 537 if r11 != r4 + : @7 + 123: 33 05 08 r5 = 0x8 + 126: 33 0a r10 = 0 + 128: 95 ab ff 07 r11 = r10 + 0x7ff + 132: 33 04 ff 07 r4 = 0x7ff + 136: ab 4b 91 01 jump 537 if r11 != r4 + : @8 + 140: 33 05 09 r5 = 0x9 + 143: 33 0a 00 00 00 80 r10 = 0xffffffff80000000 + 149: 83 aa ff i32 r10 = r10 + 0xffffffffffffffff + 152: 64 ab r11 = r10 + 154: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 160: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 163: ab 4b 76 01 jump 537 if r11 != r4 + : @9 + 167: 33 05 0a r5 = 0xa + 170: 33 0a 00 00 00 80 r10 = 0xffffffff80000000 + 176: 83 aa ff i32 r10 = r10 + 0xffffffffffffffff + 179: 95 ab ff 07 r11 = r10 + 0x7ff + 183: 33 04 01 r4 = 0x1 + 186: 97 44 1f r4 = r4 << 0x1f + 189: 95 44 fe 07 r4 = r4 + 0x7fe + 193: ab 4b 58 01 jump 537 if r11 != r4 + : @10 + 197: 33 05 0b r5 = 0xb + 200: 33 0a 00 00 00 80 r10 = 0xffffffff80000000 + 206: 95 ab ff 07 r11 = r10 + 0x7ff + 210: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 216: 83 44 ff 07 i32 r4 = r4 + 0x7ff + 220: ab 4b 3d 01 jump 537 if r11 != r4 + : @11 + 224: 33 05 0c r5 = 0xc + 227: 33 0a 00 00 00 80 r10 = 0xffffffff80000000 + 233: 83 aa ff i32 r10 = r10 + 0xffffffffffffffff + 236: 95 ab 00 f8 r11 = r10 + 0xfffffffffffff800 + 240: 33 04 00 f0 ff 7f r4 = 0x7ffff000 + 246: 83 44 ff 07 i32 r4 = r4 + 0x7ff + 250: ab 4b 1f 01 jump 537 if r11 != r4 + : @12 + 254: 33 05 0d r5 = 0xd + 257: 33 0a r10 = 0 + 259: 95 ab ff r11 = r10 + 0xffffffffffffffff + 262: 33 04 ff r4 = 0xffffffffffffffff + 265: ab 4b 10 01 jump 537 if r11 != r4 + : @13 + 269: 33 05 0e r5 = 0xe + 272: 33 0a ff r10 = 0xffffffffffffffff + 275: 95 ab 01 r11 = r10 + 0x1 + 278: 33 04 r4 = 0 + 280: ab 4b 01 01 jump 537 if r11 != r4 + : @14 + 284: 33 05 0f r5 = 0xf + 287: 33 0a ff r10 = 0xffffffffffffffff + 290: 95 ab ff r11 = r10 + 0xffffffffffffffff + 293: 33 04 fe r4 = 0xfffffffffffffffe + 296: ab 4b f1 00 jump 537 if r11 != r4 + : @15 + 300: 33 05 10 r5 = 0x10 + 303: 33 0a 00 00 00 80 r10 = 0xffffffff80000000 + 309: 83 aa ff i32 r10 = r10 + 0xffffffffffffffff + 312: 95 ab 01 r11 = r10 + 0x1 + 315: 33 04 01 r4 = 0x1 + 318: 97 44 1f r4 = r4 << 0x1f + 321: ab 4b d8 00 jump 537 if r11 != r4 + : @16 + 325: 33 05 11 r5 = 0x11 + 328: 33 08 0d r8 = 0xd + 331: 95 88 0b r8 = r8 + 0xb + 334: 33 04 18 r4 = 0x18 + 337: ab 48 c8 00 jump 537 if r8 != r4 + : @17 + 341: 33 05 12 r5 = 0x12 + 344: 33 09 r9 = 0 + 346: 01 fallthrough + : @18 + 347: 33 00 0d r0 = 0xd + 350: 95 0b 0b r11 = r0 + 0xb + 353: 64 b3 r3 = r11 + 355: 95 99 01 r9 = r9 + 0x1 + 358: 33 02 02 r2 = 0x2 + 361: ab 29 f2 jump 347 if r9 != r2 + : @19 + 364: 33 04 18 r4 = 0x18 + 367: ab 43 aa 00 jump 537 if r3 != r4 + : @20 + 371: 33 05 13 r5 = 0x13 + 374: 33 09 r9 = 0 + 376: 01 fallthrough + : @21 + 377: 33 00 0d r0 = 0xd + 380: 95 0b 0a r11 = r0 + 0xa + 383: 64 b3 r3 = r11 + 385: 95 99 01 r9 = r9 + 0x1 + 388: 33 02 02 r2 = 0x2 + 391: ab 29 f2 jump 377 if r9 != r2 + : @22 + 394: 33 04 17 r4 = 0x17 + 397: ab 43 8c 00 jump 537 if r3 != r4 + : @23 + 401: 33 05 14 r5 = 0x14 + 404: 33 09 r9 = 0 + 406: 01 fallthrough + : @24 + 407: 33 00 0d r0 = 0xd + 410: 95 0b 09 r11 = r0 + 0x9 + 413: 64 b3 r3 = r11 + 415: 95 99 01 r9 = r9 + 0x1 + 418: 33 02 02 r2 = 0x2 + 421: ab 29 f2 jump 407 if r9 != r2 + : @25 + 424: 33 04 16 r4 = 0x16 + 427: ab 43 6e jump 537 if r3 != r4 + : @26 + 430: 33 05 15 r5 = 0x15 + 433: 33 09 r9 = 0 + 435: 01 fallthrough + : @27 + 436: 33 00 0d r0 = 0xd + 439: 95 0b 0b r11 = r0 + 0xb + 442: 95 99 01 r9 = r9 + 0x1 + 445: 33 02 02 r2 = 0x2 + 448: ab 29 f4 jump 436 if r9 != r2 + : @28 + 451: 33 04 18 r4 = 0x18 + 454: ab 4b 53 jump 537 if r11 != r4 + : @29 + 457: 33 05 16 r5 = 0x16 + 460: 33 09 r9 = 0 + 462: 01 fallthrough + : @30 + 463: 33 00 0d r0 = 0xd + 466: 95 0b 0a r11 = r0 + 0xa + 469: 95 99 01 r9 = r9 + 0x1 + 472: 33 02 02 r2 = 0x2 + 475: ab 29 f4 jump 463 if r9 != r2 + : @31 + 478: 33 04 17 r4 = 0x17 + 481: ab 4b 38 jump 537 if r11 != r4 + : @32 + 484: 33 05 17 r5 = 0x17 + 487: 33 09 r9 = 0 + 489: 01 fallthrough + : @33 + 490: 33 00 0d r0 = 0xd + 493: 95 0b 09 r11 = r0 + 0x9 + 496: 95 99 01 r9 = r9 + 0x1 + 499: 33 02 02 r2 = 0x2 + 502: ab 29 f4 jump 490 if r9 != r2 + : @34 + 505: 33 04 16 r4 = 0x16 + 508: ab 4b 1d jump 537 if r11 != r4 + : @35 + 511: 33 05 18 r5 = 0x18 + 514: 33 00 20 r0 = 0x20 + 517: 33 04 20 r4 = 0x20 + 520: ab 40 11 jump 537 if r0 != r4 + : @36 + 523: 33 05 19 r5 = 0x19 + 526: 33 00 21 r0 = 0x21 + 529: 33 04 r4 = 0 + 531: 52 04 06 jump 537 if r4 != 0 + : @37 + 534: 52 05 04 jump 538 if r5 != 0 + : @38 + 537: 00 trap + : @39 + 538: 28 e6 fd jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0x16 (initially was 0x0) + * r5 = 0x19 (initially was 0x0) + * r8 = 0x18 (initially was 0x0) + * r9 = 0x2 (initially was 0x0) + * r10 = 0x7fffffff (initially was 0x0) + * r11 = 0x16 (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9798 + + +## riscv_rv64ui_addiw + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 0a r10 = 0 + 18: 83 ab i32 r11 = r10 + 0 + 20: 33 04 r4 = 0 + 22: ab 4b 03 02 jump 537 if r11 != r4 + : @2 + 26: 33 05 03 r5 = 0x3 + 29: 33 0a 01 r10 = 0x1 + 32: 83 ab 01 i32 r11 = r10 + 0x1 + 35: 33 04 02 r4 = 0x2 + 38: ab 4b f3 01 jump 537 if r11 != r4 + : @3 + 42: 33 05 04 r5 = 0x4 + 45: 33 0a 03 r10 = 0x3 + 48: 83 ab 07 i32 r11 = r10 + 0x7 + 51: 33 04 0a r4 = 0xa + 54: ab 4b e3 01 jump 537 if r11 != r4 + : @4 + 58: 33 05 05 r5 = 0x5 + 61: 33 0a r10 = 0 + 63: 83 ab 00 f8 i32 r11 = r10 + 0xfffffffffffff800 + 67: 33 04 00 f8 r4 = 0xfffffffffffff800 + 71: ab 4b d2 01 jump 537 if r11 != r4 + : @5 + 75: 33 05 06 r5 = 0x6 + 78: 33 0a 00 00 00 80 r10 = 0xffffffff80000000 + 84: 83 ab i32 r11 = r10 + 0 + 86: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 92: ab 4b bd 01 jump 537 if r11 != r4 + : @6 + 96: 33 05 07 r5 = 0x7 + 99: 33 0a 00 00 00 80 r10 = 0xffffffff80000000 + 105: 83 ab 00 f8 i32 r11 = r10 + 0xfffffffffffff800 + 109: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 115: 83 44 00 f8 i32 r4 = r4 + 0xfffffffffffff800 + 119: ab 4b a2 01 jump 537 if r11 != r4 + : @7 + 123: 33 05 08 r5 = 0x8 + 126: 33 0a r10 = 0 + 128: 83 ab ff 07 i32 r11 = r10 + 0x7ff + 132: 33 04 ff 07 r4 = 0x7ff + 136: ab 4b 91 01 jump 537 if r11 != r4 + : @8 + 140: 33 05 09 r5 = 0x9 + 143: 33 0a 00 00 00 80 r10 = 0xffffffff80000000 + 149: 83 aa ff i32 r10 = r10 + 0xffffffffffffffff + 152: 83 ab i32 r11 = r10 + 0 + 154: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 160: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 163: ab 4b 76 01 jump 537 if r11 != r4 + : @9 + 167: 33 05 0a r5 = 0xa + 170: 33 0a 00 00 00 80 r10 = 0xffffffff80000000 + 176: 83 aa ff i32 r10 = r10 + 0xffffffffffffffff + 179: 83 ab ff 07 i32 r11 = r10 + 0x7ff + 183: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 189: 83 44 fe 07 i32 r4 = r4 + 0x7fe + 193: ab 4b 58 01 jump 537 if r11 != r4 + : @10 + 197: 33 05 0b r5 = 0xb + 200: 33 0a 00 00 00 80 r10 = 0xffffffff80000000 + 206: 83 ab ff 07 i32 r11 = r10 + 0x7ff + 210: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 216: 83 44 ff 07 i32 r4 = r4 + 0x7ff + 220: ab 4b 3d 01 jump 537 if r11 != r4 + : @11 + 224: 33 05 0c r5 = 0xc + 227: 33 0a 00 00 00 80 r10 = 0xffffffff80000000 + 233: 83 aa ff i32 r10 = r10 + 0xffffffffffffffff + 236: 83 ab 00 f8 i32 r11 = r10 + 0xfffffffffffff800 + 240: 33 04 00 f0 ff 7f r4 = 0x7ffff000 + 246: 83 44 ff 07 i32 r4 = r4 + 0x7ff + 250: ab 4b 1f 01 jump 537 if r11 != r4 + : @12 + 254: 33 05 0d r5 = 0xd + 257: 33 0a r10 = 0 + 259: 83 ab ff i32 r11 = r10 + 0xffffffffffffffff + 262: 33 04 ff r4 = 0xffffffffffffffff + 265: ab 4b 10 01 jump 537 if r11 != r4 + : @13 + 269: 33 05 0e r5 = 0xe + 272: 33 0a ff r10 = 0xffffffffffffffff + 275: 83 ab 01 i32 r11 = r10 + 0x1 + 278: 33 04 r4 = 0 + 280: ab 4b 01 01 jump 537 if r11 != r4 + : @14 + 284: 33 05 0f r5 = 0xf + 287: 33 0a ff r10 = 0xffffffffffffffff + 290: 83 ab ff i32 r11 = r10 + 0xffffffffffffffff + 293: 33 04 fe r4 = 0xfffffffffffffffe + 296: ab 4b f1 00 jump 537 if r11 != r4 + : @15 + 300: 33 05 10 r5 = 0x10 + 303: 33 0a 00 00 00 80 r10 = 0xffffffff80000000 + 309: 83 aa ff i32 r10 = r10 + 0xffffffffffffffff + 312: 83 ab 01 i32 r11 = r10 + 0x1 + 315: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 321: ab 4b d8 00 jump 537 if r11 != r4 + : @16 + 325: 33 05 11 r5 = 0x11 + 328: 33 08 0d r8 = 0xd + 331: 83 88 0b i32 r8 = r8 + 0xb + 334: 33 04 18 r4 = 0x18 + 337: ab 48 c8 00 jump 537 if r8 != r4 + : @17 + 341: 33 05 12 r5 = 0x12 + 344: 33 09 r9 = 0 + 346: 01 fallthrough + : @18 + 347: 33 00 0d r0 = 0xd + 350: 83 0b 0b i32 r11 = r0 + 0xb + 353: 64 b3 r3 = r11 + 355: 95 99 01 r9 = r9 + 0x1 + 358: 33 02 02 r2 = 0x2 + 361: ab 29 f2 jump 347 if r9 != r2 + : @19 + 364: 33 04 18 r4 = 0x18 + 367: ab 43 aa 00 jump 537 if r3 != r4 + : @20 + 371: 33 05 13 r5 = 0x13 + 374: 33 09 r9 = 0 + 376: 01 fallthrough + : @21 + 377: 33 00 0d r0 = 0xd + 380: 83 0b 0a i32 r11 = r0 + 0xa + 383: 64 b3 r3 = r11 + 385: 95 99 01 r9 = r9 + 0x1 + 388: 33 02 02 r2 = 0x2 + 391: ab 29 f2 jump 377 if r9 != r2 + : @22 + 394: 33 04 17 r4 = 0x17 + 397: ab 43 8c 00 jump 537 if r3 != r4 + : @23 + 401: 33 05 14 r5 = 0x14 + 404: 33 09 r9 = 0 + 406: 01 fallthrough + : @24 + 407: 33 00 0d r0 = 0xd + 410: 83 0b 09 i32 r11 = r0 + 0x9 + 413: 64 b3 r3 = r11 + 415: 95 99 01 r9 = r9 + 0x1 + 418: 33 02 02 r2 = 0x2 + 421: ab 29 f2 jump 407 if r9 != r2 + : @25 + 424: 33 04 16 r4 = 0x16 + 427: ab 43 6e jump 537 if r3 != r4 + : @26 + 430: 33 05 15 r5 = 0x15 + 433: 33 09 r9 = 0 + 435: 01 fallthrough + : @27 + 436: 33 00 0d r0 = 0xd + 439: 83 0b 0b i32 r11 = r0 + 0xb + 442: 95 99 01 r9 = r9 + 0x1 + 445: 33 02 02 r2 = 0x2 + 448: ab 29 f4 jump 436 if r9 != r2 + : @28 + 451: 33 04 18 r4 = 0x18 + 454: ab 4b 53 jump 537 if r11 != r4 + : @29 + 457: 33 05 16 r5 = 0x16 + 460: 33 09 r9 = 0 + 462: 01 fallthrough + : @30 + 463: 33 00 0d r0 = 0xd + 466: 83 0b 0a i32 r11 = r0 + 0xa + 469: 95 99 01 r9 = r9 + 0x1 + 472: 33 02 02 r2 = 0x2 + 475: ab 29 f4 jump 463 if r9 != r2 + : @31 + 478: 33 04 17 r4 = 0x17 + 481: ab 4b 38 jump 537 if r11 != r4 + : @32 + 484: 33 05 17 r5 = 0x17 + 487: 33 09 r9 = 0 + 489: 01 fallthrough + : @33 + 490: 33 00 0d r0 = 0xd + 493: 83 0b 09 i32 r11 = r0 + 0x9 + 496: 95 99 01 r9 = r9 + 0x1 + 499: 33 02 02 r2 = 0x2 + 502: ab 29 f4 jump 490 if r9 != r2 + : @34 + 505: 33 04 16 r4 = 0x16 + 508: ab 4b 1d jump 537 if r11 != r4 + : @35 + 511: 33 05 18 r5 = 0x18 + 514: 33 00 20 r0 = 0x20 + 517: 33 04 20 r4 = 0x20 + 520: ab 40 11 jump 537 if r0 != r4 + : @36 + 523: 33 05 19 r5 = 0x19 + 526: 33 00 21 r0 = 0x21 + 529: 33 04 r4 = 0 + 531: 52 04 06 jump 537 if r4 != 0 + : @37 + 534: 52 05 04 jump 538 if r5 != 0 + : @38 + 537: 00 trap + : @39 + 538: 28 e6 fd jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0x16 (initially was 0x0) + * r5 = 0x19 (initially was 0x0) + * r8 = 0x18 (initially was 0x0) + * r9 = 0x2 (initially was 0x0) + * r10 = 0x7fffffff (initially was 0x0) + * r11 = 0x16 (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9801 + + +## riscv_rv64ui_addw + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 08 r8 = 0 + 18: 33 09 r9 = 0 + 20: be 98 0b i32 r11 = r8 + r9 + 23: 33 04 r4 = 0 + 25: ab 4b a3 03 jump 956 if r11 != r4 + : @2 + 29: 33 05 03 r5 = 0x3 + 32: 33 08 01 r8 = 0x1 + 35: 33 09 01 r9 = 0x1 + 38: be 98 0b i32 r11 = r8 + r9 + 41: 33 04 02 r4 = 0x2 + 44: ab 4b 90 03 jump 956 if r11 != r4 + : @3 + 48: 33 05 04 r5 = 0x4 + 51: 33 08 03 r8 = 0x3 + 54: 33 09 07 r9 = 0x7 + 57: be 98 0b i32 r11 = r8 + r9 + 60: 33 04 0a r4 = 0xa + 63: ab 4b 7d 03 jump 956 if r11 != r4 + : @4 + 67: 33 05 05 r5 = 0x5 + 70: 33 08 r8 = 0 + 72: 33 09 00 80 r9 = 0xffffffffffff8000 + 76: be 98 0b i32 r11 = r8 + r9 + 79: 33 04 00 80 r4 = 0xffffffffffff8000 + 83: ab 4b 69 03 jump 956 if r11 != r4 + : @5 + 87: 33 05 06 r5 = 0x6 + 90: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 96: 33 09 r9 = 0 + 98: be 98 0b i32 r11 = r8 + r9 + 101: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 107: ab 4b 51 03 jump 956 if r11 != r4 + : @6 + 111: 33 05 07 r5 = 0x7 + 114: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 120: 33 09 00 80 r9 = 0xffffffffffff8000 + 124: be 98 0b i32 r11 = r8 + r9 + 127: 33 04 00 80 ff 7f r4 = 0x7fff8000 + 133: ab 4b 37 03 jump 956 if r11 != r4 + : @7 + 137: 33 05 08 r5 = 0x8 + 140: 33 08 r8 = 0 + 142: 33 09 00 80 00 r9 = 0x8000 + 147: 83 99 ff i32 r9 = r9 + 0xffffffffffffffff + 150: be 98 0b i32 r11 = r8 + r9 + 153: 33 04 00 80 00 r4 = 0x8000 + 158: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 161: ab 4b 1b 03 jump 956 if r11 != r4 + : @8 + 165: 33 05 09 r5 = 0x9 + 168: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 174: 83 88 ff i32 r8 = r8 + 0xffffffffffffffff + 177: 33 09 r9 = 0 + 179: be 98 0b i32 r11 = r8 + r9 + 182: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 188: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 191: ab 4b fd 02 jump 956 if r11 != r4 + : @9 + 195: 33 05 0a r5 = 0xa + 198: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 204: 83 88 ff i32 r8 = r8 + 0xffffffffffffffff + 207: 33 09 00 80 00 r9 = 0x8000 + 212: 83 99 ff i32 r9 = r9 + 0xffffffffffffffff + 215: be 98 0b i32 r11 = r8 + r9 + 218: 33 04 00 80 00 80 r4 = 0xffffffff80008000 + 224: 83 44 fe i32 r4 = r4 + 0xfffffffffffffffe + 227: ab 4b d9 02 jump 956 if r11 != r4 + : @10 + 231: 33 05 0b r5 = 0xb + 234: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 240: 33 09 00 80 00 r9 = 0x8000 + 245: 83 99 ff i32 r9 = r9 + 0xffffffffffffffff + 248: be 98 0b i32 r11 = r8 + r9 + 251: 33 04 00 80 00 80 r4 = 0xffffffff80008000 + 257: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 260: ab 4b b8 02 jump 956 if r11 != r4 + : @11 + 264: 33 05 0c r5 = 0xc + 267: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 273: 83 88 ff i32 r8 = r8 + 0xffffffffffffffff + 276: 33 09 00 80 r9 = 0xffffffffffff8000 + 280: be 98 0b i32 r11 = r8 + r9 + 283: 33 04 00 80 ff 7f r4 = 0x7fff8000 + 289: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 292: ab 4b 98 02 jump 956 if r11 != r4 + : @12 + 296: 33 05 0d r5 = 0xd + 299: 33 08 r8 = 0 + 301: 33 09 ff r9 = 0xffffffffffffffff + 304: be 98 0b i32 r11 = r8 + r9 + 307: 33 04 ff r4 = 0xffffffffffffffff + 310: ab 4b 86 02 jump 956 if r11 != r4 + : @13 + 314: 33 05 0e r5 = 0xe + 317: 33 08 ff r8 = 0xffffffffffffffff + 320: 33 09 01 r9 = 0x1 + 323: be 98 0b i32 r11 = r8 + r9 + 326: 33 04 r4 = 0 + 328: ab 4b 74 02 jump 956 if r11 != r4 + : @14 + 332: 33 05 0f r5 = 0xf + 335: 33 08 ff r8 = 0xffffffffffffffff + 338: 33 09 ff r9 = 0xffffffffffffffff + 341: be 98 0b i32 r11 = r8 + r9 + 344: 33 04 fe r4 = 0xfffffffffffffffe + 347: ab 4b 61 02 jump 956 if r11 != r4 + : @15 + 351: 33 05 10 r5 = 0x10 + 354: 33 08 01 r8 = 0x1 + 357: 33 09 00 00 00 80 r9 = 0xffffffff80000000 + 363: 83 99 ff i32 r9 = r9 + 0xffffffffffffffff + 366: be 98 0b i32 r11 = r8 + r9 + 369: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 375: ab 4b 45 02 jump 956 if r11 != r4 + : @16 + 379: 33 05 11 r5 = 0x11 + 382: 33 08 0d r8 = 0xd + 385: 33 09 0b r9 = 0xb + 388: be 98 08 i32 r8 = r8 + r9 + 391: 33 04 18 r4 = 0x18 + 394: ab 48 32 02 jump 956 if r8 != r4 + : @17 + 398: 33 05 12 r5 = 0x12 + 401: 33 08 0e r8 = 0xe + 404: 33 09 0b r9 = 0xb + 407: be 98 09 i32 r9 = r8 + r9 + 410: 33 04 19 r4 = 0x19 + 413: ab 49 1f 02 jump 956 if r9 != r4 + : @18 + 417: 33 05 13 r5 = 0x13 + 420: 33 08 0d r8 = 0xd + 423: be 88 08 i32 r8 = r8 + r8 + 426: 33 04 1a r4 = 0x1a + 429: ab 48 0f 02 jump 956 if r8 != r4 + : @19 + 433: 33 05 14 r5 = 0x14 + 436: 33 0a r10 = 0 + 438: 01 fallthrough + : @20 + 439: 33 00 0d r0 = 0xd + 442: 33 01 0b r1 = 0xb + 445: be 10 0b i32 r11 = r0 + r1 + 448: 64 b3 r3 = r11 + 450: 95 aa 01 r10 = r10 + 0x1 + 453: 33 02 02 r2 = 0x2 + 456: ab 2a ef jump 439 if r10 != r2 + : @21 + 459: 33 04 18 r4 = 0x18 + 462: ab 43 ee 01 jump 956 if r3 != r4 + : @22 + 466: 33 05 15 r5 = 0x15 + 469: 33 0a r10 = 0 + 471: 01 fallthrough + : @23 + 472: 33 00 0e r0 = 0xe + 475: 33 01 0b r1 = 0xb + 478: be 10 0b i32 r11 = r0 + r1 + 481: 64 b3 r3 = r11 + 483: 95 aa 01 r10 = r10 + 0x1 + 486: 33 02 02 r2 = 0x2 + 489: ab 2a ef jump 472 if r10 != r2 + : @24 + 492: 33 04 19 r4 = 0x19 + 495: ab 43 cd 01 jump 956 if r3 != r4 + : @25 + 499: 33 05 16 r5 = 0x16 + 502: 33 0a r10 = 0 + 504: 01 fallthrough + : @26 + 505: 33 00 0f r0 = 0xf + 508: 33 01 0b r1 = 0xb + 511: be 10 0b i32 r11 = r0 + r1 + 514: 64 b3 r3 = r11 + 516: 95 aa 01 r10 = r10 + 0x1 + 519: 33 02 02 r2 = 0x2 + 522: ab 2a ef jump 505 if r10 != r2 + : @27 + 525: 33 04 1a r4 = 0x1a + 528: ab 43 ac 01 jump 956 if r3 != r4 + : @28 + 532: 33 05 17 r5 = 0x17 + 535: 33 0a r10 = 0 + 537: 01 fallthrough + : @29 + 538: 33 00 0d r0 = 0xd + 541: 33 01 0b r1 = 0xb + 544: be 10 0b i32 r11 = r0 + r1 + 547: 95 aa 01 r10 = r10 + 0x1 + 550: 33 02 02 r2 = 0x2 + 553: ab 2a f1 jump 538 if r10 != r2 + : @30 + 556: 33 04 18 r4 = 0x18 + 559: ab 4b 8d 01 jump 956 if r11 != r4 + : @31 + 563: 33 05 18 r5 = 0x18 + 566: 33 0a r10 = 0 + 568: 01 fallthrough + : @32 + 569: 33 00 0e r0 = 0xe + 572: 33 01 0b r1 = 0xb + 575: be 10 0b i32 r11 = r0 + r1 + 578: 95 aa 01 r10 = r10 + 0x1 + 581: 33 02 02 r2 = 0x2 + 584: ab 2a f1 jump 569 if r10 != r2 + : @33 + 587: 33 04 19 r4 = 0x19 + 590: ab 4b 6e 01 jump 956 if r11 != r4 + : @34 + 594: 33 05 19 r5 = 0x19 + 597: 33 0a r10 = 0 + 599: 01 fallthrough + : @35 + 600: 33 00 0f r0 = 0xf + 603: 33 01 0b r1 = 0xb + 606: be 10 0b i32 r11 = r0 + r1 + 609: 95 aa 01 r10 = r10 + 0x1 + 612: 33 02 02 r2 = 0x2 + 615: ab 2a f1 jump 600 if r10 != r2 + : @36 + 618: 33 04 1a r4 = 0x1a + 621: ab 4b 4f 01 jump 956 if r11 != r4 + : @37 + 625: 33 05 1a r5 = 0x1a + 628: 33 0a r10 = 0 + 630: 01 fallthrough + : @38 + 631: 33 00 0d r0 = 0xd + 634: 33 01 0b r1 = 0xb + 637: be 10 0b i32 r11 = r0 + r1 + 640: 95 aa 01 r10 = r10 + 0x1 + 643: 33 02 02 r2 = 0x2 + 646: ab 2a f1 jump 631 if r10 != r2 + : @39 + 649: 33 04 18 r4 = 0x18 + 652: ab 4b 30 01 jump 956 if r11 != r4 + : @40 + 656: 33 05 1b r5 = 0x1b + 659: 33 0a r10 = 0 + 661: 01 fallthrough + : @41 + 662: 33 00 0e r0 = 0xe + 665: 33 01 0b r1 = 0xb + 668: be 10 0b i32 r11 = r0 + r1 + 671: 95 aa 01 r10 = r10 + 0x1 + 674: 33 02 02 r2 = 0x2 + 677: ab 2a f1 jump 662 if r10 != r2 + : @42 + 680: 33 04 19 r4 = 0x19 + 683: ab 4b 11 01 jump 956 if r11 != r4 + : @43 + 687: 33 05 1c r5 = 0x1c + 690: 33 0a r10 = 0 + 692: 01 fallthrough + : @44 + 693: 33 00 0f r0 = 0xf + 696: 33 01 0b r1 = 0xb + 699: be 10 0b i32 r11 = r0 + r1 + 702: 95 aa 01 r10 = r10 + 0x1 + 705: 33 02 02 r2 = 0x2 + 708: ab 2a f1 jump 693 if r10 != r2 + : @45 + 711: 33 04 1a r4 = 0x1a + 714: ab 4b f2 00 jump 956 if r11 != r4 + : @46 + 718: 33 05 1d r5 = 0x1d + 721: 33 0a r10 = 0 + 723: 01 fallthrough + : @47 + 724: 33 01 0b r1 = 0xb + 727: 33 00 0d r0 = 0xd + 730: be 10 0b i32 r11 = r0 + r1 + 733: 95 aa 01 r10 = r10 + 0x1 + 736: 33 02 02 r2 = 0x2 + 739: ab 2a f1 jump 724 if r10 != r2 + : @48 + 742: 33 04 18 r4 = 0x18 + 745: ab 4b d3 00 jump 956 if r11 != r4 + : @49 + 749: 33 05 1e r5 = 0x1e + 752: 33 0a r10 = 0 + 754: 01 fallthrough + : @50 + 755: 33 01 0b r1 = 0xb + 758: 33 00 0e r0 = 0xe + 761: be 10 0b i32 r11 = r0 + r1 + 764: 95 aa 01 r10 = r10 + 0x1 + 767: 33 02 02 r2 = 0x2 + 770: ab 2a f1 jump 755 if r10 != r2 + : @51 + 773: 33 04 19 r4 = 0x19 + 776: ab 4b b4 00 jump 956 if r11 != r4 + : @52 + 780: 33 05 1f r5 = 0x1f + 783: 33 0a r10 = 0 + 785: 01 fallthrough + : @53 + 786: 33 01 0b r1 = 0xb + 789: 33 00 0f r0 = 0xf + 792: be 10 0b i32 r11 = r0 + r1 + 795: 95 aa 01 r10 = r10 + 0x1 + 798: 33 02 02 r2 = 0x2 + 801: ab 2a f1 jump 786 if r10 != r2 + : @54 + 804: 33 04 1a r4 = 0x1a + 807: ab 4b 95 00 jump 956 if r11 != r4 + : @55 + 811: 33 05 20 r5 = 0x20 + 814: 33 0a r10 = 0 + 816: 01 fallthrough + : @56 + 817: 33 01 0b r1 = 0xb + 820: 33 00 0d r0 = 0xd + 823: be 10 0b i32 r11 = r0 + r1 + 826: 95 aa 01 r10 = r10 + 0x1 + 829: 33 02 02 r2 = 0x2 + 832: ab 2a f1 jump 817 if r10 != r2 + : @57 + 835: 33 04 18 r4 = 0x18 + 838: ab 4b 76 jump 956 if r11 != r4 + : @58 + 841: 33 05 21 r5 = 0x21 + 844: 33 0a r10 = 0 + 846: 01 fallthrough + : @59 + 847: 33 01 0b r1 = 0xb + 850: 33 00 0e r0 = 0xe + 853: be 10 0b i32 r11 = r0 + r1 + 856: 95 aa 01 r10 = r10 + 0x1 + 859: 33 02 02 r2 = 0x2 + 862: ab 2a f1 jump 847 if r10 != r2 + : @60 + 865: 33 04 19 r4 = 0x19 + 868: ab 4b 58 jump 956 if r11 != r4 + : @61 + 871: 33 05 22 r5 = 0x22 + 874: 33 0a r10 = 0 + 876: 01 fallthrough + : @62 + 877: 33 01 0b r1 = 0xb + 880: 33 00 0f r0 = 0xf + 883: be 10 0b i32 r11 = r0 + r1 + 886: 95 aa 01 r10 = r10 + 0x1 + 889: 33 02 02 r2 = 0x2 + 892: ab 2a f1 jump 877 if r10 != r2 + : @63 + 895: 33 04 1a r4 = 0x1a + 898: ab 4b 3a jump 956 if r11 != r4 + : @64 + 901: 33 05 23 r5 = 0x23 + 904: 33 00 0f r0 = 0xf + 907: 83 01 i32 r1 = r0 + 0 + 909: 33 04 0f r4 = 0xf + 912: ab 41 2c jump 956 if r1 != r4 + : @65 + 915: 33 05 24 r5 = 0x24 + 918: 33 00 20 r0 = 0x20 + 921: 83 01 i32 r1 = r0 + 0 + 923: 33 04 20 r4 = 0x20 + 926: ab 41 1e jump 956 if r1 != r4 + : @66 + 929: 33 05 25 r5 = 0x25 + 932: 33 00 r0 = 0 + 934: 33 04 r4 = 0 + 936: ab 40 14 jump 956 if r0 != r4 + : @67 + 939: 33 05 26 r5 = 0x26 + 942: 33 00 10 r0 = 0x10 + 945: 33 01 1e r1 = 0x1e + 948: 33 04 r4 = 0 + 950: 52 04 06 jump 956 if r4 != 0 + : @68 + 953: 52 05 04 jump 957 if r5 != 0 + : @69 + 956: 00 trap + : @70 + 957: 28 43 fc jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r1 = 0x1e (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0x1a (initially was 0x0) + * r5 = 0x26 (initially was 0x0) + * r8 = 0x1a (initially was 0x0) + * r9 = 0x19 (initially was 0x0) + * r10 = 0x2 (initially was 0x0) + * r11 = 0x1a (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9595 + + +## riscv_rv64ui_and + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 08 00 00 01 r8 = 0x10000 + 21: 83 88 01 ff i32 r8 = r8 + 0xffffffffffffff01 + 25: 97 88 10 r8 = r8 << 0x10 + 28: 95 88 00 ff r8 = r8 + 0xffffffffffffff00 + 32: 33 09 00 10 0f 0f r9 = 0xf0f1000 + 38: 83 99 0f ff i32 r9 = r9 + 0xffffffffffffff0f + 42: d2 98 0b r11 = r8 & r9 + 45: 33 04 00 10 00 0f r4 = 0xf001000 + 51: 83 44 00 ff i32 r4 = r4 + 0xffffffffffffff00 + 55: ab 4b a5 04 jump 1244 if r11 != r4 + : @2 + 59: 33 05 03 r5 = 0x3 + 62: 33 08 00 10 f0 0f r8 = 0xff01000 + 68: 83 88 f0 i32 r8 = r8 + 0xfffffffffffffff0 + 71: 33 09 00 10 0f r9 = 0xf1000 + 76: 83 99 0f ff i32 r9 = r9 + 0xffffffffffffff0f + 80: 97 99 0c r9 = r9 << 0xc + 83: 95 99 f0 00 r9 = r9 + 0xf0 + 87: d2 98 0b r11 = r8 & r9 + 90: 33 04 00 00 f0 00 r4 = 0xf00000 + 96: 83 44 f0 00 i32 r4 = r4 + 0xf0 + 100: ab 4b 78 04 jump 1244 if r11 != r4 + : @3 + 104: 33 05 04 r5 = 0x4 + 107: 33 08 00 00 ff 00 r8 = 0xff0000 + 113: 83 88 ff 00 i32 r8 = r8 + 0xff + 117: 33 09 00 10 0f 0f r9 = 0xf0f1000 + 123: 83 99 0f ff i32 r9 = r9 + 0xffffffffffffff0f + 127: d2 98 0b r11 = r8 & r9 + 130: 33 04 00 00 0f r4 = 0xf0000 + 135: 83 44 0f i32 r4 = r4 + 0xf + 138: ab 4b 52 04 jump 1244 if r11 != r4 + : @4 + 142: 33 05 05 r5 = 0x5 + 145: 33 08 00 00 0f r8 = 0xf0000 + 150: 83 88 ff 00 i32 r8 = r8 + 0xff + 154: 97 88 0c r8 = r8 << 0xc + 157: 95 88 0f r8 = r8 + 0xf + 160: 33 09 00 10 0f r9 = 0xf1000 + 165: 83 99 0f ff i32 r9 = r9 + 0xffffffffffffff0f + 169: 97 99 0c r9 = r9 << 0xc + 172: 95 99 f0 00 r9 = r9 + 0xf0 + 176: d2 98 0b r11 = r8 & r9 + 179: 33 04 00 00 0f r4 = 0xf0000 + 184: 83 44 0f i32 r4 = r4 + 0xf + 187: 97 44 0c r4 = r4 << 0xc + 190: ab 4b 1e 04 jump 1244 if r11 != r4 + : @5 + 194: 33 05 06 r5 = 0x6 + 197: 33 08 00 00 01 r8 = 0x10000 + 202: 83 88 01 ff i32 r8 = r8 + 0xffffffffffffff01 + 206: 97 88 10 r8 = r8 << 0x10 + 209: 95 88 00 ff r8 = r8 + 0xffffffffffffff00 + 213: 33 09 00 10 0f 0f r9 = 0xf0f1000 + 219: 83 99 0f ff i32 r9 = r9 + 0xffffffffffffff0f + 223: d2 98 08 r8 = r8 & r9 + 226: 33 04 00 10 00 0f r4 = 0xf001000 + 232: 83 44 00 ff i32 r4 = r4 + 0xffffffffffffff00 + 236: ab 48 f0 03 jump 1244 if r8 != r4 + : @6 + 240: 33 05 07 r5 = 0x7 + 243: 33 08 00 10 f0 0f r8 = 0xff01000 + 249: 83 88 f0 i32 r8 = r8 + 0xfffffffffffffff0 + 252: 33 09 00 10 0f r9 = 0xf1000 + 257: 83 99 0f ff i32 r9 = r9 + 0xffffffffffffff0f + 261: 97 99 0c r9 = r9 << 0xc + 264: 95 99 f0 00 r9 = r9 + 0xf0 + 268: d2 98 09 r9 = r8 & r9 + 271: 33 04 00 00 f0 00 r4 = 0xf00000 + 277: 83 44 f0 00 i32 r4 = r4 + 0xf0 + 281: ab 49 c3 03 jump 1244 if r9 != r4 + : @7 + 285: 33 05 08 r5 = 0x8 + 288: 33 08 00 00 01 r8 = 0x10000 + 293: 83 88 01 ff i32 r8 = r8 + 0xffffffffffffff01 + 297: 97 88 10 r8 = r8 << 0x10 + 300: 95 88 00 ff r8 = r8 + 0xffffffffffffff00 + 304: d2 88 08 r8 = r8 & r8 + 307: 33 04 00 00 01 r4 = 0x10000 + 312: 83 44 01 ff i32 r4 = r4 + 0xffffffffffffff01 + 316: 97 44 10 r4 = r4 << 0x10 + 319: 95 44 00 ff r4 = r4 + 0xffffffffffffff00 + 323: ab 48 99 03 jump 1244 if r8 != r4 + : @8 + 327: 33 05 09 r5 = 0x9 + 330: 33 0a r10 = 0 + 332: 01 fallthrough + : @9 + 333: 33 00 00 00 01 r0 = 0x10000 + 338: 83 00 01 ff i32 r0 = r0 + 0xffffffffffffff01 + 342: 97 00 10 r0 = r0 << 0x10 + 345: 95 00 00 ff r0 = r0 + 0xffffffffffffff00 + 349: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 355: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 359: d2 10 0b r11 = r0 & r1 + 362: 64 b3 r3 = r11 + 364: 95 aa 01 r10 = r10 + 0x1 + 367: 33 02 02 r2 = 0x2 + 370: ab 2a db jump 333 if r10 != r2 + : @10 + 373: 33 04 00 10 00 0f r4 = 0xf001000 + 379: 83 44 00 ff i32 r4 = r4 + 0xffffffffffffff00 + 383: ab 43 5d 03 jump 1244 if r3 != r4 + : @11 + 387: 33 05 0a r5 = 0xa + 390: 33 0a r10 = 0 + 392: 01 fallthrough + : @12 + 393: 33 00 00 10 f0 0f r0 = 0xff01000 + 399: 83 00 f0 i32 r0 = r0 + 0xfffffffffffffff0 + 402: 33 01 00 10 0f r1 = 0xf1000 + 407: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 411: 97 11 0c r1 = r1 << 0xc + 414: 95 11 f0 00 r1 = r1 + 0xf0 + 418: d2 10 0b r11 = r0 & r1 + 421: 64 b3 r3 = r11 + 423: 95 aa 01 r10 = r10 + 0x1 + 426: 33 02 02 r2 = 0x2 + 429: ab 2a dc jump 393 if r10 != r2 + : @13 + 432: 33 04 00 00 f0 00 r4 = 0xf00000 + 438: 83 44 f0 00 i32 r4 = r4 + 0xf0 + 442: ab 43 22 03 jump 1244 if r3 != r4 + : @14 + 446: 33 05 0b r5 = 0xb + 449: 33 0a r10 = 0 + 451: 01 fallthrough + : @15 + 452: 33 00 00 00 ff 00 r0 = 0xff0000 + 458: 83 00 ff 00 i32 r0 = r0 + 0xff + 462: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 468: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 472: d2 10 0b r11 = r0 & r1 + 475: 64 b3 r3 = r11 + 477: 95 aa 01 r10 = r10 + 0x1 + 480: 33 02 02 r2 = 0x2 + 483: ab 2a e1 jump 452 if r10 != r2 + : @16 + 486: 33 04 00 00 0f r4 = 0xf0000 + 491: 83 44 0f i32 r4 = r4 + 0xf + 494: ab 43 ee 02 jump 1244 if r3 != r4 + : @17 + 498: 33 05 0c r5 = 0xc + 501: 33 0a r10 = 0 + 503: 01 fallthrough + : @18 + 504: 33 00 00 00 01 r0 = 0x10000 + 509: 83 00 01 ff i32 r0 = r0 + 0xffffffffffffff01 + 513: 97 00 10 r0 = r0 << 0x10 + 516: 95 00 00 ff r0 = r0 + 0xffffffffffffff00 + 520: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 526: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 530: d2 10 0b r11 = r0 & r1 + 533: 95 aa 01 r10 = r10 + 0x1 + 536: 33 02 02 r2 = 0x2 + 539: ab 2a dd jump 504 if r10 != r2 + : @19 + 542: 33 04 00 10 00 0f r4 = 0xf001000 + 548: 83 44 00 ff i32 r4 = r4 + 0xffffffffffffff00 + 552: ab 4b b4 02 jump 1244 if r11 != r4 + : @20 + 556: 33 05 0d r5 = 0xd + 559: 33 0a r10 = 0 + 561: 01 fallthrough + : @21 + 562: 33 00 00 10 f0 0f r0 = 0xff01000 + 568: 83 00 f0 i32 r0 = r0 + 0xfffffffffffffff0 + 571: 33 01 00 10 0f r1 = 0xf1000 + 576: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 580: 97 11 0c r1 = r1 << 0xc + 583: 95 11 f0 00 r1 = r1 + 0xf0 + 587: d2 10 0b r11 = r0 & r1 + 590: 95 aa 01 r10 = r10 + 0x1 + 593: 33 02 02 r2 = 0x2 + 596: ab 2a de jump 562 if r10 != r2 + : @22 + 599: 33 04 00 00 f0 00 r4 = 0xf00000 + 605: 83 44 f0 00 i32 r4 = r4 + 0xf0 + 609: ab 4b 7b 02 jump 1244 if r11 != r4 + : @23 + 613: 33 05 0e r5 = 0xe + 616: 33 0a r10 = 0 + 618: 01 fallthrough + : @24 + 619: 33 00 00 00 ff 00 r0 = 0xff0000 + 625: 83 00 ff 00 i32 r0 = r0 + 0xff + 629: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 635: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 639: d2 10 0b r11 = r0 & r1 + 642: 95 aa 01 r10 = r10 + 0x1 + 645: 33 02 02 r2 = 0x2 + 648: ab 2a e3 jump 619 if r10 != r2 + : @25 + 651: 33 04 00 00 0f r4 = 0xf0000 + 656: 83 44 0f i32 r4 = r4 + 0xf + 659: ab 4b 49 02 jump 1244 if r11 != r4 + : @26 + 663: 33 05 0f r5 = 0xf + 666: 33 0a r10 = 0 + 668: 01 fallthrough + : @27 + 669: 33 00 00 00 01 r0 = 0x10000 + 674: 83 00 01 ff i32 r0 = r0 + 0xffffffffffffff01 + 678: 97 00 10 r0 = r0 << 0x10 + 681: 95 00 00 ff r0 = r0 + 0xffffffffffffff00 + 685: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 691: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 695: d2 10 0b r11 = r0 & r1 + 698: 95 aa 01 r10 = r10 + 0x1 + 701: 33 02 02 r2 = 0x2 + 704: ab 2a dd jump 669 if r10 != r2 + : @28 + 707: 33 04 00 10 00 0f r4 = 0xf001000 + 713: 83 44 00 ff i32 r4 = r4 + 0xffffffffffffff00 + 717: ab 4b 0f 02 jump 1244 if r11 != r4 + : @29 + 721: 33 05 10 r5 = 0x10 + 724: 33 0a r10 = 0 + 726: 01 fallthrough + : @30 + 727: 33 00 00 10 f0 0f r0 = 0xff01000 + 733: 83 00 f0 i32 r0 = r0 + 0xfffffffffffffff0 + 736: 33 01 00 10 0f r1 = 0xf1000 + 741: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 745: 97 11 0c r1 = r1 << 0xc + 748: 95 11 f0 00 r1 = r1 + 0xf0 + 752: d2 10 0b r11 = r0 & r1 + 755: 95 aa 01 r10 = r10 + 0x1 + 758: 33 02 02 r2 = 0x2 + 761: ab 2a de jump 727 if r10 != r2 + : @31 + 764: 33 04 00 00 f0 00 r4 = 0xf00000 + 770: 83 44 f0 00 i32 r4 = r4 + 0xf0 + 774: ab 4b d6 01 jump 1244 if r11 != r4 + : @32 + 778: 33 05 11 r5 = 0x11 + 781: 33 0a r10 = 0 + 783: 01 fallthrough + : @33 + 784: 33 00 00 00 ff 00 r0 = 0xff0000 + 790: 83 00 ff 00 i32 r0 = r0 + 0xff + 794: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 800: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 804: d2 10 0b r11 = r0 & r1 + 807: 95 aa 01 r10 = r10 + 0x1 + 810: 33 02 02 r2 = 0x2 + 813: ab 2a e3 jump 784 if r10 != r2 + : @34 + 816: 33 04 00 00 0f r4 = 0xf0000 + 821: 83 44 0f i32 r4 = r4 + 0xf + 824: ab 4b a4 01 jump 1244 if r11 != r4 + : @35 + 828: 33 05 12 r5 = 0x12 + 831: 33 0a r10 = 0 + 833: 01 fallthrough + : @36 + 834: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 840: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 844: 33 00 00 00 01 r0 = 0x10000 + 849: 83 00 01 ff i32 r0 = r0 + 0xffffffffffffff01 + 853: 97 00 10 r0 = r0 << 0x10 + 856: 95 00 00 ff r0 = r0 + 0xffffffffffffff00 + 860: d2 10 0b r11 = r0 & r1 + 863: 95 aa 01 r10 = r10 + 0x1 + 866: 33 02 02 r2 = 0x2 + 869: ab 2a dd jump 834 if r10 != r2 + : @37 + 872: 33 04 00 10 00 0f r4 = 0xf001000 + 878: 83 44 00 ff i32 r4 = r4 + 0xffffffffffffff00 + 882: ab 4b 6a 01 jump 1244 if r11 != r4 + : @38 + 886: 33 05 13 r5 = 0x13 + 889: 33 0a r10 = 0 + 891: 01 fallthrough + : @39 + 892: 33 01 00 10 0f r1 = 0xf1000 + 897: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 901: 97 11 0c r1 = r1 << 0xc + 904: 95 11 f0 00 r1 = r1 + 0xf0 + 908: 33 00 00 10 f0 0f r0 = 0xff01000 + 914: 83 00 f0 i32 r0 = r0 + 0xfffffffffffffff0 + 917: d2 10 0b r11 = r0 & r1 + 920: 95 aa 01 r10 = r10 + 0x1 + 923: 33 02 02 r2 = 0x2 + 926: ab 2a de jump 892 if r10 != r2 + : @40 + 929: 33 04 00 00 f0 00 r4 = 0xf00000 + 935: 83 44 f0 00 i32 r4 = r4 + 0xf0 + 939: ab 4b 31 01 jump 1244 if r11 != r4 + : @41 + 943: 33 05 14 r5 = 0x14 + 946: 33 0a r10 = 0 + 948: 01 fallthrough + : @42 + 949: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 955: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 959: 33 00 00 00 ff 00 r0 = 0xff0000 + 965: 83 00 ff 00 i32 r0 = r0 + 0xff + 969: d2 10 0b r11 = r0 & r1 + 972: 95 aa 01 r10 = r10 + 0x1 + 975: 33 02 02 r2 = 0x2 + 978: ab 2a e3 jump 949 if r10 != r2 + : @43 + 981: 33 04 00 00 0f r4 = 0xf0000 + 986: 83 44 0f i32 r4 = r4 + 0xf + 989: ab 4b ff 00 jump 1244 if r11 != r4 + : @44 + 993: 33 05 15 r5 = 0x15 + 996: 33 0a r10 = 0 + 998: 01 fallthrough + : @45 + 999: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 1005: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 1009: 33 00 00 00 01 r0 = 0x10000 + 1014: 83 00 01 ff i32 r0 = r0 + 0xffffffffffffff01 + 1018: 97 00 10 r0 = r0 << 0x10 + 1021: 95 00 00 ff r0 = r0 + 0xffffffffffffff00 + 1025: d2 10 0b r11 = r0 & r1 + 1028: 95 aa 01 r10 = r10 + 0x1 + 1031: 33 02 02 r2 = 0x2 + 1034: ab 2a dd jump 999 if r10 != r2 + : @46 + 1037: 33 04 00 10 00 0f r4 = 0xf001000 + 1043: 83 44 00 ff i32 r4 = r4 + 0xffffffffffffff00 + 1047: ab 4b c5 00 jump 1244 if r11 != r4 + : @47 + 1051: 33 05 16 r5 = 0x16 + 1054: 33 0a r10 = 0 + 1056: 01 fallthrough + : @48 + 1057: 33 01 00 10 0f r1 = 0xf1000 + 1062: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 1066: 97 11 0c r1 = r1 << 0xc + 1069: 95 11 f0 00 r1 = r1 + 0xf0 + 1073: 33 00 00 10 f0 0f r0 = 0xff01000 + 1079: 83 00 f0 i32 r0 = r0 + 0xfffffffffffffff0 + 1082: d2 10 0b r11 = r0 & r1 + 1085: 95 aa 01 r10 = r10 + 0x1 + 1088: 33 02 02 r2 = 0x2 + 1091: ab 2a de jump 1057 if r10 != r2 + : @49 + 1094: 33 04 00 00 f0 00 r4 = 0xf00000 + 1100: 83 44 f0 00 i32 r4 = r4 + 0xf0 + 1104: ab 4b 8c 00 jump 1244 if r11 != r4 + : @50 + 1108: 33 05 17 r5 = 0x17 + 1111: 33 0a r10 = 0 + 1113: 01 fallthrough + : @51 + 1114: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 1120: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 1124: 33 00 00 00 ff 00 r0 = 0xff0000 + 1130: 83 00 ff 00 i32 r0 = r0 + 0xff + 1134: d2 10 0b r11 = r0 & r1 + 1137: 95 aa 01 r10 = r10 + 0x1 + 1140: 33 02 02 r2 = 0x2 + 1143: ab 2a e3 jump 1114 if r10 != r2 + : @52 + 1146: 33 04 00 00 0f r4 = 0xf0000 + 1151: 83 44 0f i32 r4 = r4 + 0xf + 1154: ab 4b 5a jump 1244 if r11 != r4 + : @53 + 1157: 33 05 18 r5 = 0x18 + 1160: 33 00 00 00 01 r0 = 0x10000 + 1165: 83 00 01 ff i32 r0 = r0 + 0xffffffffffffff01 + 1169: 97 00 10 r0 = r0 << 0x10 + 1172: 95 00 00 ff r0 = r0 + 0xffffffffffffff00 + 1176: 84 01 r1 = r0 & 0 + 1178: 33 04 r4 = 0 + 1180: ab 41 40 jump 1244 if r1 != r4 + : @54 + 1183: 33 05 19 r5 = 0x19 + 1186: 33 00 00 00 ff 00 r0 = 0xff0000 + 1192: 83 00 ff 00 i32 r0 = r0 + 0xff + 1196: 84 01 r1 = r0 & 0 + 1198: 33 04 r4 = 0 + 1200: ab 41 2c jump 1244 if r1 != r4 + : @55 + 1203: 33 05 1a r5 = 0x1a + 1206: 33 00 r0 = 0 + 1208: 33 04 r4 = 0 + 1210: ab 40 22 jump 1244 if r0 != r4 + : @56 + 1213: 33 05 1b r5 = 0x1b + 1216: 33 00 00 10 11 11 r0 = 0x11111000 + 1222: 83 00 11 01 i32 r0 = r0 + 0x111 + 1226: 33 01 00 20 22 22 r1 = 0x22222000 + 1232: 83 11 22 02 i32 r1 = r1 + 0x222 + 1236: 33 04 r4 = 0 + 1238: 52 04 06 jump 1244 if r4 != 0 + : @57 + 1241: 52 05 04 jump 1245 if r5 != 0 + : @58 + 1244: 00 trap + : @59 + 1245: 28 23 fb jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r1 = 0x22222222 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0xf000f (initially was 0x0) + * r5 = 0x1b (initially was 0x0) + * r8 = 0xff00ff00 (initially was 0x0) + * r9 = 0xf000f0 (initially was 0x0) + * r10 = 0x2 (initially was 0x0) + * r11 = 0xf000f (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9515 + + +## riscv_rv64ui_andi + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 0a 00 00 01 r10 = 0x10000 + 21: 83 aa 01 ff i32 r10 = r10 + 0xffffffffffffff01 + 25: 97 aa 10 r10 = r10 << 0x10 + 28: 95 aa 00 ff r10 = r10 + 0xffffffffffffff00 + 32: 84 ab 0f ff r11 = r10 & 0xffffffffffffff0f + 36: 33 04 00 00 01 r4 = 0x10000 + 41: 83 44 01 ff i32 r4 = r4 + 0xffffffffffffff01 + 45: 97 44 10 r4 = r4 << 0x10 + 48: 95 44 00 ff r4 = r4 + 0xffffffffffffff00 + 52: ab 4b 7f 01 jump 435 if r11 != r4 + : @2 + 56: 33 05 03 r5 = 0x3 + 59: 33 0a 00 10 f0 0f r10 = 0xff01000 + 65: 83 aa f0 i32 r10 = r10 + 0xfffffffffffffff0 + 68: 84 ab f0 00 r11 = r10 & 0xf0 + 72: 33 04 f0 00 r4 = 0xf0 + 76: ab 4b 67 01 jump 435 if r11 != r4 + : @3 + 80: 33 05 04 r5 = 0x4 + 83: 33 0a 00 00 ff 00 r10 = 0xff0000 + 89: 83 aa ff 00 i32 r10 = r10 + 0xff + 93: 84 ab 0f 07 r11 = r10 & 0x70f + 97: 33 04 0f r4 = 0xf + 100: ab 4b 4f 01 jump 435 if r11 != r4 + : @4 + 104: 33 05 05 r5 = 0x5 + 107: 33 0a 00 00 0f r10 = 0xf0000 + 112: 83 aa ff 00 i32 r10 = r10 + 0xff + 116: 97 aa 0c r10 = r10 << 0xc + 119: 95 aa 0f r10 = r10 + 0xf + 122: 84 ab f0 00 r11 = r10 & 0xf0 + 126: 33 04 r4 = 0 + 128: ab 4b 33 01 jump 435 if r11 != r4 + : @5 + 132: 33 05 06 r5 = 0x6 + 135: 33 08 00 00 01 r8 = 0x10000 + 140: 83 88 01 ff i32 r8 = r8 + 0xffffffffffffff01 + 144: 97 88 10 r8 = r8 << 0x10 + 147: 95 88 00 ff r8 = r8 + 0xffffffffffffff00 + 151: 84 88 f0 00 r8 = r8 & 0xf0 + 155: 33 04 r4 = 0 + 157: ab 48 16 01 jump 435 if r8 != r4 + : @6 + 161: 33 05 07 r5 = 0x7 + 164: 33 09 r9 = 0 + 166: 01 fallthrough + : @7 + 167: 33 00 00 10 f0 0f r0 = 0xff01000 + 173: 83 00 f0 i32 r0 = r0 + 0xfffffffffffffff0 + 176: 84 0b 0f 07 r11 = r0 & 0x70f + 180: 64 b3 r3 = r11 + 182: 95 99 01 r9 = r9 + 0x1 + 185: 33 02 02 r2 = 0x2 + 188: ab 29 eb jump 167 if r9 != r2 + : @8 + 191: 33 04 00 07 r4 = 0x700 + 195: ab 43 f0 00 jump 435 if r3 != r4 + : @9 + 199: 33 05 08 r5 = 0x8 + 202: 33 09 r9 = 0 + 204: 01 fallthrough + : @10 + 205: 33 00 00 00 ff 00 r0 = 0xff0000 + 211: 83 00 ff 00 i32 r0 = r0 + 0xff + 215: 84 0b f0 00 r11 = r0 & 0xf0 + 219: 64 b3 r3 = r11 + 221: 95 99 01 r9 = r9 + 0x1 + 224: 33 02 02 r2 = 0x2 + 227: ab 29 ea jump 205 if r9 != r2 + : @11 + 230: 33 04 f0 00 r4 = 0xf0 + 234: ab 43 c9 00 jump 435 if r3 != r4 + : @12 + 238: 33 05 09 r5 = 0x9 + 241: 33 09 r9 = 0 + 243: 01 fallthrough + : @13 + 244: 33 00 00 00 0f r0 = 0xf0000 + 249: 83 00 ff 00 i32 r0 = r0 + 0xff + 253: 97 00 0c r0 = r0 << 0xc + 256: 95 00 0f r0 = r0 + 0xf + 259: 84 0b 0f ff r11 = r0 & 0xffffffffffffff0f + 263: 64 b3 r3 = r11 + 265: 95 99 01 r9 = r9 + 0x1 + 268: 33 02 02 r2 = 0x2 + 271: ab 29 e5 jump 244 if r9 != r2 + : @14 + 274: 33 04 00 00 0f r4 = 0xf0000 + 279: 83 44 ff 00 i32 r4 = r4 + 0xff + 283: 97 44 0c r4 = r4 << 0xc + 286: 95 44 0f r4 = r4 + 0xf + 289: ab 43 92 00 jump 435 if r3 != r4 + : @15 + 293: 33 05 0a r5 = 0xa + 296: 33 09 r9 = 0 + 298: 01 fallthrough + : @16 + 299: 33 00 00 10 f0 0f r0 = 0xff01000 + 305: 83 00 f0 i32 r0 = r0 + 0xfffffffffffffff0 + 308: 84 0b 0f 07 r11 = r0 & 0x70f + 312: 95 99 01 r9 = r9 + 0x1 + 315: 33 02 02 r2 = 0x2 + 318: ab 29 ed jump 299 if r9 != r2 + : @17 + 321: 33 04 00 07 r4 = 0x700 + 325: ab 4b 6e jump 435 if r11 != r4 + : @18 + 328: 33 05 0b r5 = 0xb + 331: 33 09 r9 = 0 + 333: 01 fallthrough + : @19 + 334: 33 00 00 00 ff 00 r0 = 0xff0000 + 340: 83 00 ff 00 i32 r0 = r0 + 0xff + 344: 84 0b f0 00 r11 = r0 & 0xf0 + 348: 95 99 01 r9 = r9 + 0x1 + 351: 33 02 02 r2 = 0x2 + 354: ab 29 ec jump 334 if r9 != r2 + : @20 + 357: 33 04 f0 00 r4 = 0xf0 + 361: ab 4b 4a jump 435 if r11 != r4 + : @21 + 364: 33 05 0c r5 = 0xc + 367: 33 09 r9 = 0 + 369: 01 fallthrough + : @22 + 370: 33 00 00 00 0f r0 = 0xf0000 + 375: 83 00 ff 00 i32 r0 = r0 + 0xff + 379: 97 00 0c r0 = r0 << 0xc + 382: 95 00 0f r0 = r0 + 0xf + 385: 84 0b 0f 07 r11 = r0 & 0x70f + 389: 95 99 01 r9 = r9 + 0x1 + 392: 33 02 02 r2 = 0x2 + 395: ab 29 e7 jump 370 if r9 != r2 + : @23 + 398: 33 04 0f r4 = 0xf + 401: ab 4b 22 jump 435 if r11 != r4 + : @24 + 404: 33 05 0d r5 = 0xd + 407: 33 00 r0 = 0 + 409: 33 04 r4 = 0 + 411: ab 40 18 jump 435 if r0 != r4 + : @25 + 414: 33 05 0e r5 = 0xe + 417: 33 00 00 00 ff 00 r0 = 0xff0000 + 423: 83 00 ff 00 i32 r0 = r0 + 0xff + 427: 33 04 r4 = 0 + 429: 52 04 06 jump 435 if r4 != 0 + : @26 + 432: 52 05 04 jump 436 if r5 != 0 + : @27 + 435: 00 trap + : @28 + 436: 28 4c fe jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0xf00ff00f (initially was 0x0) + * r5 = 0xe (initially was 0x0) + * r9 = 0x2 (initially was 0x0) + * r10 = 0xf00ff00f (initially was 0x0) + * r11 = 0xf (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9827 + + +## riscv_rv64ui_beq + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 00 r0 = 0 + 18: 33 01 r1 = 0 + 20: aa 10 0a jump 30 if r0 == r1 + : @2 + 23: 52 05 d8 01 jump 495 if r5 != 0 + : @3 + 27: 52 05 0a jump 37 if r5 != 0 + : @4 + 30: aa 10 fd jump 27 if r0 == r1 + : @5 + 33: 52 05 ce 01 jump 495 if r5 != 0 + : @6 + 37: 33 05 03 r5 = 0x3 + 40: 33 00 01 r0 = 0x1 + 43: 33 01 01 r1 = 0x1 + 46: aa 10 0a jump 56 if r0 == r1 + : @7 + 49: 52 05 be 01 jump 495 if r5 != 0 + : @8 + 53: 52 05 0a jump 63 if r5 != 0 + : @9 + 56: aa 10 fd jump 53 if r0 == r1 + : @10 + 59: 52 05 b4 01 jump 495 if r5 != 0 + : @11 + 63: 33 05 04 r5 = 0x4 + 66: 33 00 ff r0 = 0xffffffffffffffff + 69: 33 01 ff r1 = 0xffffffffffffffff + 72: aa 10 0a jump 82 if r0 == r1 + : @12 + 75: 52 05 a4 01 jump 495 if r5 != 0 + : @13 + 79: 52 05 0a jump 89 if r5 != 0 + : @14 + 82: aa 10 fd jump 79 if r0 == r1 + : @15 + 85: 52 05 9a 01 jump 495 if r5 != 0 + : @16 + 89: 33 05 05 r5 = 0x5 + 92: 33 00 r0 = 0 + 94: 33 01 01 r1 = 0x1 + 97: aa 10 06 jump 103 if r0 == r1 + : @17 + 100: 52 05 07 jump 107 if r5 != 0 + : @18 + 103: 52 05 88 01 jump 495 if r5 != 0 + : @19 + 107: aa 10 fc jump 103 if r0 == r1 + : @20 + 110: 33 05 06 r5 = 0x6 + 113: 33 00 01 r0 = 0x1 + 116: 33 01 r1 = 0 + 118: aa 10 06 jump 124 if r0 == r1 + : @21 + 121: 52 05 07 jump 128 if r5 != 0 + : @22 + 124: 52 05 73 01 jump 495 if r5 != 0 + : @23 + 128: aa 10 fc jump 124 if r0 == r1 + : @24 + 131: 33 05 07 r5 = 0x7 + 134: 33 00 ff r0 = 0xffffffffffffffff + 137: 33 01 01 r1 = 0x1 + 140: aa 10 06 jump 146 if r0 == r1 + : @25 + 143: 52 05 07 jump 150 if r5 != 0 + : @26 + 146: 52 05 5d 01 jump 495 if r5 != 0 + : @27 + 150: aa 10 fc jump 146 if r0 == r1 + : @28 + 153: 33 05 08 r5 = 0x8 + 156: 33 00 01 r0 = 0x1 + 159: 33 01 ff r1 = 0xffffffffffffffff + 162: aa 10 06 jump 168 if r0 == r1 + : @29 + 165: 52 05 07 jump 172 if r5 != 0 + : @30 + 168: 52 05 47 01 jump 495 if r5 != 0 + : @31 + 172: aa 10 fc jump 168 if r0 == r1 + : @32 + 175: 33 05 09 r5 = 0x9 + 178: 33 0b r11 = 0 + 180: 01 fallthrough + : @33 + 181: 33 00 r0 = 0 + 183: 33 01 ff r1 = 0xffffffffffffffff + 186: aa 10 35 01 jump 495 if r0 == r1 + : @34 + 190: 95 bb 01 r11 = r11 + 0x1 + 193: 33 02 02 r2 = 0x2 + 196: ab 2b f1 jump 181 if r11 != r2 + : @35 + 199: 33 05 0a r5 = 0xa + 202: 33 0b r11 = 0 + 204: 01 fallthrough + : @36 + 205: 33 00 r0 = 0 + 207: 33 01 ff r1 = 0xffffffffffffffff + 210: aa 10 1d 01 jump 495 if r0 == r1 + : @37 + 214: 95 bb 01 r11 = r11 + 0x1 + 217: 33 02 02 r2 = 0x2 + 220: ab 2b f1 jump 205 if r11 != r2 + : @38 + 223: 33 05 0b r5 = 0xb + 226: 33 0b r11 = 0 + 228: 01 fallthrough + : @39 + 229: 33 00 r0 = 0 + 231: 33 01 ff r1 = 0xffffffffffffffff + 234: aa 10 05 01 jump 495 if r0 == r1 + : @40 + 238: 95 bb 01 r11 = r11 + 0x1 + 241: 33 02 02 r2 = 0x2 + 244: ab 2b f1 jump 229 if r11 != r2 + : @41 + 247: 33 05 0c r5 = 0xc + 250: 33 0b r11 = 0 + 252: 01 fallthrough + : @42 + 253: 33 00 r0 = 0 + 255: 33 01 ff r1 = 0xffffffffffffffff + 258: aa 10 ed 00 jump 495 if r0 == r1 + : @43 + 262: 95 bb 01 r11 = r11 + 0x1 + 265: 33 02 02 r2 = 0x2 + 268: ab 2b f1 jump 253 if r11 != r2 + : @44 + 271: 33 05 0d r5 = 0xd + 274: 33 0b r11 = 0 + 276: 01 fallthrough + : @45 + 277: 33 00 r0 = 0 + 279: 33 01 ff r1 = 0xffffffffffffffff + 282: aa 10 d5 00 jump 495 if r0 == r1 + : @46 + 286: 95 bb 01 r11 = r11 + 0x1 + 289: 33 02 02 r2 = 0x2 + 292: ab 2b f1 jump 277 if r11 != r2 + : @47 + 295: 33 05 0e r5 = 0xe + 298: 33 0b r11 = 0 + 300: 01 fallthrough + : @48 + 301: 33 00 r0 = 0 + 303: 33 01 ff r1 = 0xffffffffffffffff + 306: aa 10 bd 00 jump 495 if r0 == r1 + : @49 + 310: 95 bb 01 r11 = r11 + 0x1 + 313: 33 02 02 r2 = 0x2 + 316: ab 2b f1 jump 301 if r11 != r2 + : @50 + 319: 33 05 0f r5 = 0xf + 322: 33 0b r11 = 0 + 324: 01 fallthrough + : @51 + 325: 33 00 r0 = 0 + 327: 33 01 ff r1 = 0xffffffffffffffff + 330: aa 10 a5 00 jump 495 if r0 == r1 + : @52 + 334: 95 bb 01 r11 = r11 + 0x1 + 337: 33 02 02 r2 = 0x2 + 340: ab 2b f1 jump 325 if r11 != r2 + : @53 + 343: 33 05 10 r5 = 0x10 + 346: 33 0b r11 = 0 + 348: 01 fallthrough + : @54 + 349: 33 00 r0 = 0 + 351: 33 01 ff r1 = 0xffffffffffffffff + 354: aa 10 8d 00 jump 495 if r0 == r1 + : @55 + 358: 95 bb 01 r11 = r11 + 0x1 + 361: 33 02 02 r2 = 0x2 + 364: ab 2b f1 jump 349 if r11 != r2 + : @56 + 367: 33 05 11 r5 = 0x11 + 370: 33 0b r11 = 0 + 372: 01 fallthrough + : @57 + 373: 33 00 r0 = 0 + 375: 33 01 ff r1 = 0xffffffffffffffff + 378: aa 10 75 jump 495 if r0 == r1 + : @58 + 381: 95 bb 01 r11 = r11 + 0x1 + 384: 33 02 02 r2 = 0x2 + 387: ab 2b f2 jump 373 if r11 != r2 + : @59 + 390: 33 05 12 r5 = 0x12 + 393: 33 0b r11 = 0 + 395: 01 fallthrough + : @60 + 396: 33 00 r0 = 0 + 398: 33 01 ff r1 = 0xffffffffffffffff + 401: aa 10 5e jump 495 if r0 == r1 + : @61 + 404: 95 bb 01 r11 = r11 + 0x1 + 407: 33 02 02 r2 = 0x2 + 410: ab 2b f2 jump 396 if r11 != r2 + : @62 + 413: 33 05 13 r5 = 0x13 + 416: 33 0b r11 = 0 + 418: 01 fallthrough + : @63 + 419: 33 00 r0 = 0 + 421: 33 01 ff r1 = 0xffffffffffffffff + 424: aa 10 47 jump 495 if r0 == r1 + : @64 + 427: 95 bb 01 r11 = r11 + 0x1 + 430: 33 02 02 r2 = 0x2 + 433: ab 2b f2 jump 419 if r11 != r2 + : @65 + 436: 33 05 14 r5 = 0x14 + 439: 33 0b r11 = 0 + 441: 01 fallthrough + : @66 + 442: 33 00 r0 = 0 + 444: 33 01 ff r1 = 0xffffffffffffffff + 447: aa 10 30 jump 495 if r0 == r1 + : @67 + 450: 95 bb 01 r11 = r11 + 0x1 + 453: 33 02 02 r2 = 0x2 + 456: ab 2b f2 jump 442 if r11 != r2 + : @68 + 459: 33 05 15 r5 = 0x15 + 462: 33 00 01 r0 = 0x1 + 465: 28 0f jump 480 + : @69 + 467: 95 00 01 r0 = r0 + 0x1 + 470: 95 00 01 r0 = r0 + 0x1 + 473: 95 00 01 r0 = r0 + 0x1 + 476: 95 00 01 r0 = r0 + 0x1 + 479: 01 fallthrough + : @70 + 480: 95 00 01 r0 = r0 + 0x1 + 483: 95 00 01 r0 = r0 + 0x1 + 486: 33 04 03 r4 = 0x3 + 489: ab 40 06 jump 495 if r0 != r4 + : @71 + 492: 52 05 04 jump 496 if r5 != 0 + : @72 + 495: 00 trap + : @73 + 496: 28 10 fe jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r1 = 0xffffffffffffffff (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r4 = 0x3 (initially was 0x0) + * r5 = 0x15 (initially was 0x0) + * r11 = 0x2 (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9765 + + +## riscv_rv64ui_bge + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 00 r0 = 0 + 18: 33 01 r1 = 0 + 20: af 10 0a jump 30 if r0 >=s r1 + : @2 + 23: 52 05 27 02 jump 574 if r5 != 0 + : @3 + 27: 52 05 0a jump 37 if r5 != 0 + : @4 + 30: af 10 fd jump 27 if r0 >=s r1 + : @5 + 33: 52 05 1d 02 jump 574 if r5 != 0 + : @6 + 37: 33 05 03 r5 = 0x3 + 40: 33 00 01 r0 = 0x1 + 43: 33 01 01 r1 = 0x1 + 46: af 10 0a jump 56 if r0 >=s r1 + : @7 + 49: 52 05 0d 02 jump 574 if r5 != 0 + : @8 + 53: 52 05 0a jump 63 if r5 != 0 + : @9 + 56: af 10 fd jump 53 if r0 >=s r1 + : @10 + 59: 52 05 03 02 jump 574 if r5 != 0 + : @11 + 63: 33 05 04 r5 = 0x4 + 66: 33 00 ff r0 = 0xffffffffffffffff + 69: 33 01 ff r1 = 0xffffffffffffffff + 72: af 10 0a jump 82 if r0 >=s r1 + : @12 + 75: 52 05 f3 01 jump 574 if r5 != 0 + : @13 + 79: 52 05 0a jump 89 if r5 != 0 + : @14 + 82: af 10 fd jump 79 if r0 >=s r1 + : @15 + 85: 52 05 e9 01 jump 574 if r5 != 0 + : @16 + 89: 33 05 05 r5 = 0x5 + 92: 33 00 01 r0 = 0x1 + 95: 33 01 r1 = 0 + 97: af 10 0a jump 107 if r0 >=s r1 + : @17 + 100: 52 05 da 01 jump 574 if r5 != 0 + : @18 + 104: 52 05 0a jump 114 if r5 != 0 + : @19 + 107: af 10 fd jump 104 if r0 >=s r1 + : @20 + 110: 52 05 d0 01 jump 574 if r5 != 0 + : @21 + 114: 33 05 06 r5 = 0x6 + 117: 33 00 01 r0 = 0x1 + 120: 33 01 ff r1 = 0xffffffffffffffff + 123: af 10 0a jump 133 if r0 >=s r1 + : @22 + 126: 52 05 c0 01 jump 574 if r5 != 0 + : @23 + 130: 52 05 0a jump 140 if r5 != 0 + : @24 + 133: af 10 fd jump 130 if r0 >=s r1 + : @25 + 136: 52 05 b6 01 jump 574 if r5 != 0 + : @26 + 140: 33 05 07 r5 = 0x7 + 143: 33 00 ff r0 = 0xffffffffffffffff + 146: 33 01 fe r1 = 0xfffffffffffffffe + 149: af 10 0a jump 159 if r0 >=s r1 + : @27 + 152: 52 05 a6 01 jump 574 if r5 != 0 + : @28 + 156: 52 05 0a jump 166 if r5 != 0 + : @29 + 159: af 10 fd jump 156 if r0 >=s r1 + : @30 + 162: 52 05 9c 01 jump 574 if r5 != 0 + : @31 + 166: 33 05 08 r5 = 0x8 + 169: 33 00 r0 = 0 + 171: 33 01 01 r1 = 0x1 + 174: af 10 06 jump 180 if r0 >=s r1 + : @32 + 177: 52 05 07 jump 184 if r5 != 0 + : @33 + 180: 52 05 8a 01 jump 574 if r5 != 0 + : @34 + 184: af 10 fc jump 180 if r0 >=s r1 + : @35 + 187: 33 05 09 r5 = 0x9 + 190: 33 00 ff r0 = 0xffffffffffffffff + 193: 33 01 01 r1 = 0x1 + 196: af 10 06 jump 202 if r0 >=s r1 + : @36 + 199: 52 05 07 jump 206 if r5 != 0 + : @37 + 202: 52 05 74 01 jump 574 if r5 != 0 + : @38 + 206: af 10 fc jump 202 if r0 >=s r1 + : @39 + 209: 33 05 0a r5 = 0xa + 212: 33 00 fe r0 = 0xfffffffffffffffe + 215: 33 01 ff r1 = 0xffffffffffffffff + 218: af 10 06 jump 224 if r0 >=s r1 + : @40 + 221: 52 05 07 jump 228 if r5 != 0 + : @41 + 224: 52 05 5e 01 jump 574 if r5 != 0 + : @42 + 228: af 10 fc jump 224 if r0 >=s r1 + : @43 + 231: 33 05 0b r5 = 0xb + 234: 33 00 fe r0 = 0xfffffffffffffffe + 237: 33 01 01 r1 = 0x1 + 240: af 10 06 jump 246 if r0 >=s r1 + : @44 + 243: 52 05 07 jump 250 if r5 != 0 + : @45 + 246: 52 05 48 01 jump 574 if r5 != 0 + : @46 + 250: af 10 fc jump 246 if r0 >=s r1 + : @47 + 253: 33 05 0c r5 = 0xc + 256: 33 0b r11 = 0 + 258: 01 fallthrough + : @48 + 259: 33 00 ff r0 = 0xffffffffffffffff + 262: 33 01 r1 = 0 + 264: af 10 36 01 jump 574 if r0 >=s r1 + : @49 + 268: 95 bb 01 r11 = r11 + 0x1 + 271: 33 02 02 r2 = 0x2 + 274: ab 2b f1 jump 259 if r11 != r2 + : @50 + 277: 33 05 0d r5 = 0xd + 280: 33 0b r11 = 0 + 282: 01 fallthrough + : @51 + 283: 33 00 ff r0 = 0xffffffffffffffff + 286: 33 01 r1 = 0 + 288: af 10 1e 01 jump 574 if r0 >=s r1 + : @52 + 292: 95 bb 01 r11 = r11 + 0x1 + 295: 33 02 02 r2 = 0x2 + 298: ab 2b f1 jump 283 if r11 != r2 + : @53 + 301: 33 05 0e r5 = 0xe + 304: 33 0b r11 = 0 + 306: 01 fallthrough + : @54 + 307: 33 00 ff r0 = 0xffffffffffffffff + 310: 33 01 r1 = 0 + 312: af 10 06 01 jump 574 if r0 >=s r1 + : @55 + 316: 95 bb 01 r11 = r11 + 0x1 + 319: 33 02 02 r2 = 0x2 + 322: ab 2b f1 jump 307 if r11 != r2 + : @56 + 325: 33 05 0f r5 = 0xf + 328: 33 0b r11 = 0 + 330: 01 fallthrough + : @57 + 331: 33 00 ff r0 = 0xffffffffffffffff + 334: 33 01 r1 = 0 + 336: af 10 ee 00 jump 574 if r0 >=s r1 + : @58 + 340: 95 bb 01 r11 = r11 + 0x1 + 343: 33 02 02 r2 = 0x2 + 346: ab 2b f1 jump 331 if r11 != r2 + : @59 + 349: 33 05 10 r5 = 0x10 + 352: 33 0b r11 = 0 + 354: 01 fallthrough + : @60 + 355: 33 00 ff r0 = 0xffffffffffffffff + 358: 33 01 r1 = 0 + 360: af 10 d6 00 jump 574 if r0 >=s r1 + : @61 + 364: 95 bb 01 r11 = r11 + 0x1 + 367: 33 02 02 r2 = 0x2 + 370: ab 2b f1 jump 355 if r11 != r2 + : @62 + 373: 33 05 11 r5 = 0x11 + 376: 33 0b r11 = 0 + 378: 01 fallthrough + : @63 + 379: 33 00 ff r0 = 0xffffffffffffffff + 382: 33 01 r1 = 0 + 384: af 10 be 00 jump 574 if r0 >=s r1 + : @64 + 388: 95 bb 01 r11 = r11 + 0x1 + 391: 33 02 02 r2 = 0x2 + 394: ab 2b f1 jump 379 if r11 != r2 + : @65 + 397: 33 05 12 r5 = 0x12 + 400: 33 0b r11 = 0 + 402: 01 fallthrough + : @66 + 403: 33 00 ff r0 = 0xffffffffffffffff + 406: 33 01 r1 = 0 + 408: af 10 a6 00 jump 574 if r0 >=s r1 + : @67 + 412: 95 bb 01 r11 = r11 + 0x1 + 415: 33 02 02 r2 = 0x2 + 418: ab 2b f1 jump 403 if r11 != r2 + : @68 + 421: 33 05 13 r5 = 0x13 + 424: 33 0b r11 = 0 + 426: 01 fallthrough + : @69 + 427: 33 00 ff r0 = 0xffffffffffffffff + 430: 33 01 r1 = 0 + 432: af 10 8e 00 jump 574 if r0 >=s r1 + : @70 + 436: 95 bb 01 r11 = r11 + 0x1 + 439: 33 02 02 r2 = 0x2 + 442: ab 2b f1 jump 427 if r11 != r2 + : @71 + 445: 33 05 14 r5 = 0x14 + 448: 33 0b r11 = 0 + 450: 01 fallthrough + : @72 + 451: 33 00 ff r0 = 0xffffffffffffffff + 454: 33 01 r1 = 0 + 456: af 10 76 jump 574 if r0 >=s r1 + : @73 + 459: 95 bb 01 r11 = r11 + 0x1 + 462: 33 02 02 r2 = 0x2 + 465: ab 2b f2 jump 451 if r11 != r2 + : @74 + 468: 33 05 15 r5 = 0x15 + 471: 33 0b r11 = 0 + 473: 01 fallthrough + : @75 + 474: 33 00 ff r0 = 0xffffffffffffffff + 477: 33 01 r1 = 0 + 479: af 10 5f jump 574 if r0 >=s r1 + : @76 + 482: 95 bb 01 r11 = r11 + 0x1 + 485: 33 02 02 r2 = 0x2 + 488: ab 2b f2 jump 474 if r11 != r2 + : @77 + 491: 33 05 16 r5 = 0x16 + 494: 33 0b r11 = 0 + 496: 01 fallthrough + : @78 + 497: 33 00 ff r0 = 0xffffffffffffffff + 500: 33 01 r1 = 0 + 502: af 10 48 jump 574 if r0 >=s r1 + : @79 + 505: 95 bb 01 r11 = r11 + 0x1 + 508: 33 02 02 r2 = 0x2 + 511: ab 2b f2 jump 497 if r11 != r2 + : @80 + 514: 33 05 17 r5 = 0x17 + 517: 33 0b r11 = 0 + 519: 01 fallthrough + : @81 + 520: 33 00 ff r0 = 0xffffffffffffffff + 523: 33 01 r1 = 0 + 525: af 10 31 jump 574 if r0 >=s r1 + : @82 + 528: 95 bb 01 r11 = r11 + 0x1 + 531: 33 02 02 r2 = 0x2 + 534: ab 2b f2 jump 520 if r11 != r2 + : @83 + 537: 33 05 18 r5 = 0x18 + 540: 33 00 01 r0 = 0x1 + 543: 59 00 10 jump 559 if r0 >=s 0 + : @84 + 546: 95 00 01 r0 = r0 + 0x1 + 549: 95 00 01 r0 = r0 + 0x1 + 552: 95 00 01 r0 = r0 + 0x1 + 555: 95 00 01 r0 = r0 + 0x1 + 558: 01 fallthrough + : @85 + 559: 95 00 01 r0 = r0 + 0x1 + 562: 95 00 01 r0 = r0 + 0x1 + 565: 33 04 03 r4 = 0x3 + 568: ab 40 06 jump 574 if r0 != r4 + : @86 + 571: 52 05 04 jump 575 if r5 != 0 + : @87 + 574: 00 trap + : @88 + 575: 28 c1 fd jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r4 = 0x3 (initially was 0x0) + * r5 = 0x18 (initially was 0x0) + * r11 = 0x2 (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9747 + + +## riscv_rv64ui_bgeu + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 00 r0 = 0 + 18: 33 01 r1 = 0 + 20: ae 10 0a jump 30 if r0 >=u r1 + : @2 + 23: 52 05 d7 02 jump 750 if r5 != 0 + : @3 + 27: 52 05 0a jump 37 if r5 != 0 + : @4 + 30: ae 10 fd jump 27 if r0 >=u r1 + : @5 + 33: 52 05 cd 02 jump 750 if r5 != 0 + : @6 + 37: 33 05 03 r5 = 0x3 + 40: 33 00 01 r0 = 0x1 + 43: 33 01 01 r1 = 0x1 + 46: ae 10 0a jump 56 if r0 >=u r1 + : @7 + 49: 52 05 bd 02 jump 750 if r5 != 0 + : @8 + 53: 52 05 0a jump 63 if r5 != 0 + : @9 + 56: ae 10 fd jump 53 if r0 >=u r1 + : @10 + 59: 52 05 b3 02 jump 750 if r5 != 0 + : @11 + 63: 33 05 04 r5 = 0x4 + 66: 33 00 01 r0 = 0x1 + 69: 97 00 20 r0 = r0 << 0x20 + 72: 95 00 ff r0 = r0 + 0xffffffffffffffff + 75: 33 01 01 r1 = 0x1 + 78: 97 11 20 r1 = r1 << 0x20 + 81: 95 11 ff r1 = r1 + 0xffffffffffffffff + 84: ae 10 0a jump 94 if r0 >=u r1 + : @12 + 87: 52 05 97 02 jump 750 if r5 != 0 + : @13 + 91: 52 05 0a jump 101 if r5 != 0 + : @14 + 94: ae 10 fd jump 91 if r0 >=u r1 + : @15 + 97: 52 05 8d 02 jump 750 if r5 != 0 + : @16 + 101: 33 05 05 r5 = 0x5 + 104: 33 00 01 r0 = 0x1 + 107: 33 01 r1 = 0 + 109: ae 10 0a jump 119 if r0 >=u r1 + : @17 + 112: 52 05 7e 02 jump 750 if r5 != 0 + : @18 + 116: 52 05 0a jump 126 if r5 != 0 + : @19 + 119: ae 10 fd jump 116 if r0 >=u r1 + : @20 + 122: 52 05 74 02 jump 750 if r5 != 0 + : @21 + 126: 33 05 06 r5 = 0x6 + 129: 33 00 01 r0 = 0x1 + 132: 97 00 20 r0 = r0 << 0x20 + 135: 95 00 ff r0 = r0 + 0xffffffffffffffff + 138: 33 01 01 r1 = 0x1 + 141: 97 11 20 r1 = r1 << 0x20 + 144: 95 11 fe r1 = r1 + 0xfffffffffffffffe + 147: ae 10 0a jump 157 if r0 >=u r1 + : @22 + 150: 52 05 58 02 jump 750 if r5 != 0 + : @23 + 154: 52 05 0a jump 164 if r5 != 0 + : @24 + 157: ae 10 fd jump 154 if r0 >=u r1 + : @25 + 160: 52 05 4e 02 jump 750 if r5 != 0 + : @26 + 164: 33 05 07 r5 = 0x7 + 167: 33 00 01 r0 = 0x1 + 170: 97 00 20 r0 = r0 << 0x20 + 173: 95 00 ff r0 = r0 + 0xffffffffffffffff + 176: 33 01 r1 = 0 + 178: ae 10 0a jump 188 if r0 >=u r1 + : @27 + 181: 52 05 39 02 jump 750 if r5 != 0 + : @28 + 185: 52 05 0a jump 195 if r5 != 0 + : @29 + 188: ae 10 fd jump 185 if r0 >=u r1 + : @30 + 191: 52 05 2f 02 jump 750 if r5 != 0 + : @31 + 195: 33 05 08 r5 = 0x8 + 198: 33 00 r0 = 0 + 200: 33 01 01 r1 = 0x1 + 203: ae 10 06 jump 209 if r0 >=u r1 + : @32 + 206: 52 05 07 jump 213 if r5 != 0 + : @33 + 209: 52 05 1d 02 jump 750 if r5 != 0 + : @34 + 213: ae 10 fc jump 209 if r0 >=u r1 + : @35 + 216: 33 05 09 r5 = 0x9 + 219: 33 00 01 r0 = 0x1 + 222: 97 00 20 r0 = r0 << 0x20 + 225: 95 00 fe r0 = r0 + 0xfffffffffffffffe + 228: 33 01 01 r1 = 0x1 + 231: 97 11 20 r1 = r1 << 0x20 + 234: 95 11 ff r1 = r1 + 0xffffffffffffffff + 237: ae 10 06 jump 243 if r0 >=u r1 + : @36 + 240: 52 05 07 jump 247 if r5 != 0 + : @37 + 243: 52 05 fb 01 jump 750 if r5 != 0 + : @38 + 247: ae 10 fc jump 243 if r0 >=u r1 + : @39 + 250: 33 05 0a r5 = 0xa + 253: 33 00 r0 = 0 + 255: 33 01 01 r1 = 0x1 + 258: 97 11 20 r1 = r1 << 0x20 + 261: 95 11 ff r1 = r1 + 0xffffffffffffffff + 264: ae 10 06 jump 270 if r0 >=u r1 + : @40 + 267: 52 05 07 jump 274 if r5 != 0 + : @41 + 270: 52 05 e0 01 jump 750 if r5 != 0 + : @42 + 274: ae 10 fc jump 270 if r0 >=u r1 + : @43 + 277: 33 05 0b r5 = 0xb + 280: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 286: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 289: 33 01 01 r1 = 0x1 + 292: 97 11 1f r1 = r1 << 0x1f + 295: ae 10 06 jump 301 if r0 >=u r1 + : @44 + 298: 52 05 07 jump 305 if r5 != 0 + : @45 + 301: 52 05 c1 01 jump 750 if r5 != 0 + : @46 + 305: ae 10 fc jump 301 if r0 >=u r1 + : @47 + 308: 33 05 0c r5 = 0xc + 311: 33 0b r11 = 0 + 313: 01 fallthrough + : @48 + 314: 33 00 0f r0 = 0xf + 317: 97 00 1c r0 = r0 << 0x1c + 320: 95 00 ff r0 = r0 + 0xffffffffffffffff + 323: 33 01 0f r1 = 0xf + 326: 97 11 1c r1 = r1 << 0x1c + 329: ae 10 a5 01 jump 750 if r0 >=u r1 + : @49 + 333: 95 bb 01 r11 = r11 + 0x1 + 336: 33 02 02 r2 = 0x2 + 339: ab 2b e7 jump 314 if r11 != r2 + : @50 + 342: 33 05 0d r5 = 0xd + 345: 33 0b r11 = 0 + 347: 01 fallthrough + : @51 + 348: 33 00 0f r0 = 0xf + 351: 97 00 1c r0 = r0 << 0x1c + 354: 95 00 ff r0 = r0 + 0xffffffffffffffff + 357: 33 01 0f r1 = 0xf + 360: 97 11 1c r1 = r1 << 0x1c + 363: ae 10 83 01 jump 750 if r0 >=u r1 + : @52 + 367: 95 bb 01 r11 = r11 + 0x1 + 370: 33 02 02 r2 = 0x2 + 373: ab 2b e7 jump 348 if r11 != r2 + : @53 + 376: 33 05 0e r5 = 0xe + 379: 33 0b r11 = 0 + 381: 01 fallthrough + : @54 + 382: 33 00 0f r0 = 0xf + 385: 97 00 1c r0 = r0 << 0x1c + 388: 95 00 ff r0 = r0 + 0xffffffffffffffff + 391: 33 01 0f r1 = 0xf + 394: 97 11 1c r1 = r1 << 0x1c + 397: ae 10 61 01 jump 750 if r0 >=u r1 + : @55 + 401: 95 bb 01 r11 = r11 + 0x1 + 404: 33 02 02 r2 = 0x2 + 407: ab 2b e7 jump 382 if r11 != r2 + : @56 + 410: 33 05 0f r5 = 0xf + 413: 33 0b r11 = 0 + 415: 01 fallthrough + : @57 + 416: 33 00 0f r0 = 0xf + 419: 97 00 1c r0 = r0 << 0x1c + 422: 95 00 ff r0 = r0 + 0xffffffffffffffff + 425: 33 01 0f r1 = 0xf + 428: 97 11 1c r1 = r1 << 0x1c + 431: ae 10 3f 01 jump 750 if r0 >=u r1 + : @58 + 435: 95 bb 01 r11 = r11 + 0x1 + 438: 33 02 02 r2 = 0x2 + 441: ab 2b e7 jump 416 if r11 != r2 + : @59 + 444: 33 05 10 r5 = 0x10 + 447: 33 0b r11 = 0 + 449: 01 fallthrough + : @60 + 450: 33 00 0f r0 = 0xf + 453: 97 00 1c r0 = r0 << 0x1c + 456: 95 00 ff r0 = r0 + 0xffffffffffffffff + 459: 33 01 0f r1 = 0xf + 462: 97 11 1c r1 = r1 << 0x1c + 465: ae 10 1d 01 jump 750 if r0 >=u r1 + : @61 + 469: 95 bb 01 r11 = r11 + 0x1 + 472: 33 02 02 r2 = 0x2 + 475: ab 2b e7 jump 450 if r11 != r2 + : @62 + 478: 33 05 11 r5 = 0x11 + 481: 33 0b r11 = 0 + 483: 01 fallthrough + : @63 + 484: 33 00 0f r0 = 0xf + 487: 97 00 1c r0 = r0 << 0x1c + 490: 95 00 ff r0 = r0 + 0xffffffffffffffff + 493: 33 01 0f r1 = 0xf + 496: 97 11 1c r1 = r1 << 0x1c + 499: ae 10 fb 00 jump 750 if r0 >=u r1 + : @64 + 503: 95 bb 01 r11 = r11 + 0x1 + 506: 33 02 02 r2 = 0x2 + 509: ab 2b e7 jump 484 if r11 != r2 + : @65 + 512: 33 05 12 r5 = 0x12 + 515: 33 0b r11 = 0 + 517: 01 fallthrough + : @66 + 518: 33 00 0f r0 = 0xf + 521: 97 00 1c r0 = r0 << 0x1c + 524: 95 00 ff r0 = r0 + 0xffffffffffffffff + 527: 33 01 0f r1 = 0xf + 530: 97 11 1c r1 = r1 << 0x1c + 533: ae 10 d9 00 jump 750 if r0 >=u r1 + : @67 + 537: 95 bb 01 r11 = r11 + 0x1 + 540: 33 02 02 r2 = 0x2 + 543: ab 2b e7 jump 518 if r11 != r2 + : @68 + 546: 33 05 13 r5 = 0x13 + 549: 33 0b r11 = 0 + 551: 01 fallthrough + : @69 + 552: 33 00 0f r0 = 0xf + 555: 97 00 1c r0 = r0 << 0x1c + 558: 95 00 ff r0 = r0 + 0xffffffffffffffff + 561: 33 01 0f r1 = 0xf + 564: 97 11 1c r1 = r1 << 0x1c + 567: ae 10 b7 00 jump 750 if r0 >=u r1 + : @70 + 571: 95 bb 01 r11 = r11 + 0x1 + 574: 33 02 02 r2 = 0x2 + 577: ab 2b e7 jump 552 if r11 != r2 + : @71 + 580: 33 05 14 r5 = 0x14 + 583: 33 0b r11 = 0 + 585: 01 fallthrough + : @72 + 586: 33 00 0f r0 = 0xf + 589: 97 00 1c r0 = r0 << 0x1c + 592: 95 00 ff r0 = r0 + 0xffffffffffffffff + 595: 33 01 0f r1 = 0xf + 598: 97 11 1c r1 = r1 << 0x1c + 601: ae 10 95 00 jump 750 if r0 >=u r1 + : @73 + 605: 95 bb 01 r11 = r11 + 0x1 + 608: 33 02 02 r2 = 0x2 + 611: ab 2b e7 jump 586 if r11 != r2 + : @74 + 614: 33 05 15 r5 = 0x15 + 617: 33 0b r11 = 0 + 619: 01 fallthrough + : @75 + 620: 33 00 0f r0 = 0xf + 623: 97 00 1c r0 = r0 << 0x1c + 626: 95 00 ff r0 = r0 + 0xffffffffffffffff + 629: 33 01 0f r1 = 0xf + 632: 97 11 1c r1 = r1 << 0x1c + 635: ae 10 73 jump 750 if r0 >=u r1 + : @76 + 638: 95 bb 01 r11 = r11 + 0x1 + 641: 33 02 02 r2 = 0x2 + 644: ab 2b e8 jump 620 if r11 != r2 + : @77 + 647: 33 05 16 r5 = 0x16 + 650: 33 0b r11 = 0 + 652: 01 fallthrough + : @78 + 653: 33 00 0f r0 = 0xf + 656: 97 00 1c r0 = r0 << 0x1c + 659: 95 00 ff r0 = r0 + 0xffffffffffffffff + 662: 33 01 0f r1 = 0xf + 665: 97 11 1c r1 = r1 << 0x1c + 668: ae 10 52 jump 750 if r0 >=u r1 + : @79 + 671: 95 bb 01 r11 = r11 + 0x1 + 674: 33 02 02 r2 = 0x2 + 677: ab 2b e8 jump 653 if r11 != r2 + : @80 + 680: 33 05 17 r5 = 0x17 + 683: 33 0b r11 = 0 + 685: 01 fallthrough + : @81 + 686: 33 00 0f r0 = 0xf + 689: 97 00 1c r0 = r0 << 0x1c + 692: 95 00 ff r0 = r0 + 0xffffffffffffffff + 695: 33 01 0f r1 = 0xf + 698: 97 11 1c r1 = r1 << 0x1c + 701: ae 10 31 jump 750 if r0 >=u r1 + : @82 + 704: 95 bb 01 r11 = r11 + 0x1 + 707: 33 02 02 r2 = 0x2 + 710: ab 2b e8 jump 686 if r11 != r2 + : @83 + 713: 33 05 18 r5 = 0x18 + 716: 33 00 01 r0 = 0x1 + 719: 55 00 10 jump 735 if r0 >=u 0 + : @84 + 722: 95 00 01 r0 = r0 + 0x1 + 725: 95 00 01 r0 = r0 + 0x1 + 728: 95 00 01 r0 = r0 + 0x1 + 731: 95 00 01 r0 = r0 + 0x1 + 734: 01 fallthrough + : @85 + 735: 95 00 01 r0 = r0 + 0x1 + 738: 95 00 01 r0 = r0 + 0x1 + 741: 33 04 03 r4 = 0x3 + 744: ab 40 06 jump 750 if r0 != r4 + : @86 + 747: 52 05 04 jump 751 if r5 != 0 + : @87 + 750: 00 trap + : @88 + 751: 28 11 fd jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r1 = 0xf0000000 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r4 = 0x3 (initially was 0x0) + * r5 = 0x18 (initially was 0x0) + * r11 = 0x2 (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9657 + + +## riscv_rv64ui_blt + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 00 r0 = 0 + 18: 33 01 01 r1 = 0x1 + 21: ad 10 0a jump 31 if r0 s 0 + : @69 + 470: 95 00 01 r0 = r0 + 0x1 + 473: 95 00 01 r0 = r0 + 0x1 + 476: 95 00 01 r0 = r0 + 0x1 + 479: 95 00 01 r0 = r0 + 0x1 + 482: 01 fallthrough + : @70 + 483: 95 00 01 r0 = r0 + 0x1 + 486: 95 00 01 r0 = r0 + 0x1 + 489: 33 04 03 r4 = 0x3 + 492: ab 40 06 jump 498 if r0 != r4 + : @71 + 495: 52 05 04 jump 499 if r5 != 0 + : @72 + 498: 00 trap + : @73 + 499: 28 0d fe jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r1 = 0xffffffffffffffff (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r4 = 0x3 (initially was 0x0) + * r5 = 0x15 (initially was 0x0) + * r11 = 0x2 (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9765 + + +## riscv_rv64ui_bltu + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 00 r0 = 0 + 18: 33 01 01 r1 = 0x1 + 21: ac 10 0a jump 31 if r0 u 0 + : @69 + 634: 95 00 01 r0 = r0 + 0x1 + 637: 95 00 01 r0 = r0 + 0x1 + 640: 95 00 01 r0 = r0 + 0x1 + 643: 95 00 01 r0 = r0 + 0x1 + 646: 01 fallthrough + : @70 + 647: 95 00 01 r0 = r0 + 0x1 + 650: 95 00 01 r0 = r0 + 0x1 + 653: 33 04 03 r4 = 0x3 + 656: ab 40 06 jump 662 if r0 != r4 + : @71 + 659: 52 05 04 jump 663 if r5 != 0 + : @72 + 662: 00 trap + : @73 + 663: 28 69 fd jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r1 = 0xefffffff (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r4 = 0x3 (initially was 0x0) + * r5 = 0x15 (initially was 0x0) + * r11 = 0x2 (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9679 + + +## riscv_rv64ui_bne + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 00 r0 = 0 + 18: 33 01 01 r1 = 0x1 + 21: ab 10 0a jump 31 if r0 != r1 + : @2 + 24: 52 05 d0 01 jump 488 if r5 != 0 + : @3 + 28: 52 05 0a jump 38 if r5 != 0 + : @4 + 31: ab 10 fd jump 28 if r0 != r1 + : @5 + 34: 52 05 c6 01 jump 488 if r5 != 0 + : @6 + 38: 33 05 03 r5 = 0x3 + 41: 33 00 01 r0 = 0x1 + 44: 33 01 r1 = 0 + 46: ab 10 0a jump 56 if r0 != r1 + : @7 + 49: 52 05 b7 01 jump 488 if r5 != 0 + : @8 + 53: 52 05 0a jump 63 if r5 != 0 + : @9 + 56: ab 10 fd jump 53 if r0 != r1 + : @10 + 59: 52 05 ad 01 jump 488 if r5 != 0 + : @11 + 63: 33 05 04 r5 = 0x4 + 66: 33 00 ff r0 = 0xffffffffffffffff + 69: 33 01 01 r1 = 0x1 + 72: ab 10 0a jump 82 if r0 != r1 + : @12 + 75: 52 05 9d 01 jump 488 if r5 != 0 + : @13 + 79: 52 05 0a jump 89 if r5 != 0 + : @14 + 82: ab 10 fd jump 79 if r0 != r1 + : @15 + 85: 52 05 93 01 jump 488 if r5 != 0 + : @16 + 89: 33 05 05 r5 = 0x5 + 92: 33 00 01 r0 = 0x1 + 95: 33 01 ff r1 = 0xffffffffffffffff + 98: ab 10 0a jump 108 if r0 != r1 + : @17 + 101: 52 05 83 01 jump 488 if r5 != 0 + : @18 + 105: 52 05 0a jump 115 if r5 != 0 + : @19 + 108: ab 10 fd jump 105 if r0 != r1 + : @20 + 111: 52 05 79 01 jump 488 if r5 != 0 + : @21 + 115: 33 05 06 r5 = 0x6 + 118: 33 00 r0 = 0 + 120: 33 01 r1 = 0 + 122: ab 10 06 jump 128 if r0 != r1 + : @22 + 125: 52 05 07 jump 132 if r5 != 0 + : @23 + 128: 52 05 68 01 jump 488 if r5 != 0 + : @24 + 132: ab 10 fc jump 128 if r0 != r1 + : @25 + 135: 33 05 07 r5 = 0x7 + 138: 33 00 01 r0 = 0x1 + 141: 33 01 01 r1 = 0x1 + 144: ab 10 06 jump 150 if r0 != r1 + : @26 + 147: 52 05 07 jump 154 if r5 != 0 + : @27 + 150: 52 05 52 01 jump 488 if r5 != 0 + : @28 + 154: ab 10 fc jump 150 if r0 != r1 + : @29 + 157: 33 05 08 r5 = 0x8 + 160: 33 00 ff r0 = 0xffffffffffffffff + 163: 33 01 ff r1 = 0xffffffffffffffff + 166: ab 10 06 jump 172 if r0 != r1 + : @30 + 169: 52 05 07 jump 176 if r5 != 0 + : @31 + 172: 52 05 3c 01 jump 488 if r5 != 0 + : @32 + 176: ab 10 fc jump 172 if r0 != r1 + : @33 + 179: 33 05 09 r5 = 0x9 + 182: 33 0b r11 = 0 + 184: 01 fallthrough + : @34 + 185: 33 00 r0 = 0 + 187: 33 01 r1 = 0 + 189: ab 10 2b 01 jump 488 if r0 != r1 + : @35 + 193: 95 bb 01 r11 = r11 + 0x1 + 196: 33 02 02 r2 = 0x2 + 199: ab 2b f2 jump 185 if r11 != r2 + : @36 + 202: 33 05 0a r5 = 0xa + 205: 33 0b r11 = 0 + 207: 01 fallthrough + : @37 + 208: 33 00 r0 = 0 + 210: 33 01 r1 = 0 + 212: ab 10 14 01 jump 488 if r0 != r1 + : @38 + 216: 95 bb 01 r11 = r11 + 0x1 + 219: 33 02 02 r2 = 0x2 + 222: ab 2b f2 jump 208 if r11 != r2 + : @39 + 225: 33 05 0b r5 = 0xb + 228: 33 0b r11 = 0 + 230: 01 fallthrough + : @40 + 231: 33 00 r0 = 0 + 233: 33 01 r1 = 0 + 235: ab 10 fd 00 jump 488 if r0 != r1 + : @41 + 239: 95 bb 01 r11 = r11 + 0x1 + 242: 33 02 02 r2 = 0x2 + 245: ab 2b f2 jump 231 if r11 != r2 + : @42 + 248: 33 05 0c r5 = 0xc + 251: 33 0b r11 = 0 + 253: 01 fallthrough + : @43 + 254: 33 00 r0 = 0 + 256: 33 01 r1 = 0 + 258: ab 10 e6 00 jump 488 if r0 != r1 + : @44 + 262: 95 bb 01 r11 = r11 + 0x1 + 265: 33 02 02 r2 = 0x2 + 268: ab 2b f2 jump 254 if r11 != r2 + : @45 + 271: 33 05 0d r5 = 0xd + 274: 33 0b r11 = 0 + 276: 01 fallthrough + : @46 + 277: 33 00 r0 = 0 + 279: 33 01 r1 = 0 + 281: ab 10 cf 00 jump 488 if r0 != r1 + : @47 + 285: 95 bb 01 r11 = r11 + 0x1 + 288: 33 02 02 r2 = 0x2 + 291: ab 2b f2 jump 277 if r11 != r2 + : @48 + 294: 33 05 0e r5 = 0xe + 297: 33 0b r11 = 0 + 299: 01 fallthrough + : @49 + 300: 33 00 r0 = 0 + 302: 33 01 r1 = 0 + 304: ab 10 b8 00 jump 488 if r0 != r1 + : @50 + 308: 95 bb 01 r11 = r11 + 0x1 + 311: 33 02 02 r2 = 0x2 + 314: ab 2b f2 jump 300 if r11 != r2 + : @51 + 317: 33 05 0f r5 = 0xf + 320: 33 0b r11 = 0 + 322: 01 fallthrough + : @52 + 323: 33 00 r0 = 0 + 325: 33 01 r1 = 0 + 327: ab 10 a1 00 jump 488 if r0 != r1 + : @53 + 331: 95 bb 01 r11 = r11 + 0x1 + 334: 33 02 02 r2 = 0x2 + 337: ab 2b f2 jump 323 if r11 != r2 + : @54 + 340: 33 05 10 r5 = 0x10 + 343: 33 0b r11 = 0 + 345: 01 fallthrough + : @55 + 346: 33 00 r0 = 0 + 348: 33 01 r1 = 0 + 350: ab 10 8a 00 jump 488 if r0 != r1 + : @56 + 354: 95 bb 01 r11 = r11 + 0x1 + 357: 33 02 02 r2 = 0x2 + 360: ab 2b f2 jump 346 if r11 != r2 + : @57 + 363: 33 05 11 r5 = 0x11 + 366: 33 0b r11 = 0 + 368: 01 fallthrough + : @58 + 369: 33 00 r0 = 0 + 371: 33 01 r1 = 0 + 373: ab 10 73 jump 488 if r0 != r1 + : @59 + 376: 95 bb 01 r11 = r11 + 0x1 + 379: 33 02 02 r2 = 0x2 + 382: ab 2b f3 jump 369 if r11 != r2 + : @60 + 385: 33 05 12 r5 = 0x12 + 388: 33 0b r11 = 0 + 390: 01 fallthrough + : @61 + 391: 33 00 r0 = 0 + 393: 33 01 r1 = 0 + 395: ab 10 5d jump 488 if r0 != r1 + : @62 + 398: 95 bb 01 r11 = r11 + 0x1 + 401: 33 02 02 r2 = 0x2 + 404: ab 2b f3 jump 391 if r11 != r2 + : @63 + 407: 33 05 13 r5 = 0x13 + 410: 33 0b r11 = 0 + 412: 01 fallthrough + : @64 + 413: 33 00 r0 = 0 + 415: 33 01 r1 = 0 + 417: ab 10 47 jump 488 if r0 != r1 + : @65 + 420: 95 bb 01 r11 = r11 + 0x1 + 423: 33 02 02 r2 = 0x2 + 426: ab 2b f3 jump 413 if r11 != r2 + : @66 + 429: 33 05 14 r5 = 0x14 + 432: 33 0b r11 = 0 + 434: 01 fallthrough + : @67 + 435: 33 00 r0 = 0 + 437: 33 01 r1 = 0 + 439: ab 10 31 jump 488 if r0 != r1 + : @68 + 442: 95 bb 01 r11 = r11 + 0x1 + 445: 33 02 02 r2 = 0x2 + 448: ab 2b f3 jump 435 if r11 != r2 + : @69 + 451: 33 05 15 r5 = 0x15 + 454: 33 00 01 r0 = 0x1 + 457: 52 00 10 jump 473 if r0 != 0 + : @70 + 460: 95 00 01 r0 = r0 + 0x1 + 463: 95 00 01 r0 = r0 + 0x1 + 466: 95 00 01 r0 = r0 + 0x1 + 469: 95 00 01 r0 = r0 + 0x1 + 472: 01 fallthrough + : @71 + 473: 95 00 01 r0 = r0 + 0x1 + 476: 95 00 01 r0 = r0 + 0x1 + 479: 33 04 03 r4 = 0x3 + 482: ab 40 06 jump 488 if r0 != r4 + : @72 + 485: 52 05 04 jump 489 if r5 != 0 + : @73 + 488: 00 trap + : @74 + 489: 28 17 fe jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r4 = 0x3 (initially was 0x0) + * r5 = 0x15 (initially was 0x0) + * r11 = 0x2 (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9765 + + +## riscv_rv64ui_jal + +Initial page map: + * RO: 0x10000-0x11000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x10000-0x10001 (0x1 bytes) = [0x02] + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 00 r0 = 0 + 18: 50 1b 02 06 r11 = 2, jump 24 + : @2 [@dyn 1] + 22: 28 20 jump 54 + : @3 + 24: 3a 01 00 00 01 r1 = u64 [0x10000] + 29: ab b1 19 jump 54 if r1 != r11 + : @4 + 32: 33 05 03 r5 = 0x3 + 35: 33 00 01 r0 = 0x1 + 38: 01 fallthrough + : @5 + 39: 95 00 01 r0 = r0 + 0x1 + 42: 95 00 01 r0 = r0 + 0x1 + 45: 33 04 03 r4 = 0x3 + 48: ab 40 06 jump 54 if r0 != r4 + : @6 + 51: 52 05 04 jump 55 if r5 != 0 + : @7 + 54: 00 trap + : @8 + 55: 28 c9 jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r1 = 0x2 (initially was 0x0) + * r4 = 0x3 (initially was 0x0) + * r5 = 0x3 (initially was 0x0) + * r11 = 0x2 (initially was 0x0) + +The memory contents after execution should be unchanged. + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9982 + + +## riscv_rv64ui_jalr + +Initial page map: + * RO: 0x10000-0x11000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x10000-0x10001 (0x1 bytes) = [0x04] + * 0x10008-0x10009 (0x1 bytes) = [0x02] + * 0x10010-0x10011 (0x1 bytes) = [0x08] + * 0x10018-0x10019 (0x1 bytes) = [0x06] + * 0x10020-0x10021 (0x1 bytes) = [0x0c] + * 0x10028-0x10029 (0x1 bytes) = [0x10] + * 0x10030-0x10031 (0x1 bytes) = [0x14] + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 02 r2 = 0 + 18: 3a 03 00 00 01 r3 = u64 [0x10000] + 23: b4 32 01 02 r2 = 2, jump [r3 + 0] + : @2 [@dyn 1] + 27: 28 74 jump 143 + : @3 [@dyn 2] + 29: 3a 03 08 00 01 r3 = u64 [0x10008] + 34: ab 32 6d jump 143 if r2 != r3 + : @4 + 37: 33 05 03 r5 = 0x3 + 40: 3a 02 10 00 01 r2 = u64 [0x10010] + 45: b4 22 01 06 tmp = r2, r2 = 6, jump [tmp + 0] + : @5 [@dyn 3] + 49: 28 5e jump 143 + : @6 [@dyn 4] + 51: 3a 03 18 00 01 r3 = u64 [0x10018] + 56: ab 32 57 jump 143 if r2 != r3 + : @7 + 59: 33 05 04 r5 = 0x4 + 62: 33 0b r11 = 0 + 64: 01 fallthrough + : @8 + 65: 3a 03 20 00 01 r3 = u64 [0x10020] + 70: b4 3a 01 0a r10 = 10, jump [r3 + 0] + : @9 [@dyn 5] + 74: 52 05 45 jump 143 if r5 != 0 + : @10 [@dyn 6] + 77: 95 bb 01 r11 = r11 + 0x1 + 80: 33 02 02 r2 = 0x2 + 83: ab 2b ee jump 65 if r11 != r2 + : @11 + 86: 33 05 05 r5 = 0x5 + 89: 33 0b r11 = 0 + 91: 01 fallthrough + : @12 + 92: 3a 03 28 00 01 r3 = u64 [0x10028] + 97: b4 3a 01 0e r10 = 14, jump [r3 + 0] + : @13 [@dyn 7] + 101: 52 05 2a jump 143 if r5 != 0 + : @14 [@dyn 8] + 104: 95 bb 01 r11 = r11 + 0x1 + 107: 33 02 02 r2 = 0x2 + 110: ab 2b ee jump 92 if r11 != r2 + : @15 + 113: 33 05 06 r5 = 0x6 + 116: 33 0b r11 = 0 + 118: 01 fallthrough + : @16 + 119: 3a 03 30 00 01 r3 = u64 [0x10030] + 124: b4 3a 01 12 r10 = 18, jump [r3 + 0] + : @17 [@dyn 9] + 128: 52 05 0f jump 143 if r5 != 0 + : @18 [@dyn 10] + 131: 95 bb 01 r11 = r11 + 0x1 + 134: 33 02 02 r2 = 0x2 + 137: ab 2b ee jump 119 if r11 != r2 + : @19 + 140: 52 05 04 jump 144 if r5 != 0 + : @20 + 143: 00 trap + : @21 + 144: 28 70 ff jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0x14 (initially was 0x0) + * r5 = 0x6 (initially was 0x0) + * r10 = 0x12 (initially was 0x0) + * r11 = 0x2 (initially was 0x0) + +The memory contents after execution should be unchanged. + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9944 + + +## riscv_rv64ui_lb + +Initial page map: + * RO: 0x10000-0x11000 (0x1000 bytes) + * RW: 0x30000-0x31000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x10002-0x10003 (0x1 bytes) = [0x03] + * 0x10008-0x10009 (0x1 bytes) = [0x03] + * 0x1000a-0x1000b (0x1 bytes) = [0x03] + * 0x10010-0x10011 (0x1 bytes) = [0x01] + * 0x10012-0x10013 (0x1 bytes) = [0x03] + * 0x10018-0x10019 (0x1 bytes) = [0x02] + * 0x1001a-0x1001b (0x1 bytes) = [0x03] + * 0x30000-0x30001 (0x1 bytes) = [0xff] + * 0x30002-0x30004 (0x2 bytes) = [0xf0, 0x0f] + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 0c ff r12 = 0xffffffffffffffff + 19: 3a 01 00 00 01 r1 = u64 [0x10000] + 24: 7d 1b r11 = i8 [r1 + 0] + 26: 33 04 ff r4 = 0xffffffffffffffff + 29: ab 4b 99 01 jump 438 if r11 != r4 + : @2 + 33: 33 05 03 r5 = 0x3 + 36: 33 0c r12 = 0 + 38: 3a 01 00 00 01 r1 = u64 [0x10000] + 43: 7d 1b 01 r11 = i8 [r1 + 0x1] + 46: 33 04 r4 = 0 + 48: ab 4b 86 01 jump 438 if r11 != r4 + : @3 + 52: 33 05 04 r5 = 0x4 + 55: 33 0c f0 r12 = 0xfffffffffffffff0 + 58: 3a 01 00 00 01 r1 = u64 [0x10000] + 63: 7d 1b 02 r11 = i8 [r1 + 0x2] + 66: 33 04 f0 r4 = 0xfffffffffffffff0 + 69: ab 4b 71 01 jump 438 if r11 != r4 + : @4 + 73: 33 05 05 r5 = 0x5 + 76: 33 0c 0f r12 = 0xf + 79: 3a 01 00 00 01 r1 = u64 [0x10000] + 84: 7d 1b 03 r11 = i8 [r1 + 0x3] + 87: 33 04 0f r4 = 0xf + 90: ab 4b 5c 01 jump 438 if r11 != r4 + : @5 + 94: 33 05 06 r5 = 0x6 + 97: 33 0c ff r12 = 0xffffffffffffffff + 100: 3a 01 08 00 01 r1 = u64 [0x10008] + 105: 7d 1b fd r11 = i8 [r1 + 0xfffffffffffffffd] + 108: 33 04 ff r4 = 0xffffffffffffffff + 111: ab 4b 47 01 jump 438 if r11 != r4 + : @6 + 115: 33 05 07 r5 = 0x7 + 118: 33 0c r12 = 0 + 120: 3a 01 08 00 01 r1 = u64 [0x10008] + 125: 7d 1b fe r11 = i8 [r1 + 0xfffffffffffffffe] + 128: 33 04 r4 = 0 + 130: ab 4b 34 01 jump 438 if r11 != r4 + : @7 + 134: 33 05 08 r5 = 0x8 + 137: 33 0c f0 r12 = 0xfffffffffffffff0 + 140: 3a 01 08 00 01 r1 = u64 [0x10008] + 145: 7d 1b ff r11 = i8 [r1 + 0xffffffffffffffff] + 148: 33 04 f0 r4 = 0xfffffffffffffff0 + 151: ab 4b 1f 01 jump 438 if r11 != r4 + : @8 + 155: 33 05 09 r5 = 0x9 + 158: 33 0c 0f r12 = 0xf + 161: 3a 01 08 00 01 r1 = u64 [0x10008] + 166: 7d 1b r11 = i8 [r1 + 0] + 168: 33 04 0f r4 = 0xf + 171: ab 4b 0b 01 jump 438 if r11 != r4 + : @9 + 175: 33 05 0a r5 = 0xa + 178: 3a 00 00 00 01 r0 = u64 [0x10000] + 183: 95 00 e0 r0 = r0 + 0xffffffffffffffe0 + 186: 7d 02 20 r2 = i8 [r0 + 0x20] + 189: 33 04 ff r4 = 0xffffffffffffffff + 192: ab 42 f6 00 jump 438 if r2 != r4 + : @10 + 196: 33 05 0b r5 = 0xb + 199: 3a 00 00 00 01 r0 = u64 [0x10000] + 204: 95 00 fa r0 = r0 + 0xfffffffffffffffa + 207: 7d 02 07 r2 = i8 [r0 + 0x7] + 210: 33 04 r4 = 0 + 212: ab 42 e2 00 jump 438 if r2 != r4 + : @11 + 216: 33 05 0c r5 = 0xc + 219: 33 08 r8 = 0 + 221: 01 fallthrough + : @12 + 222: 3a 0a 10 00 01 r10 = u64 [0x10010] + 227: 7d ab 01 r11 = i8 [r10 + 0x1] + 230: 64 b3 r3 = r11 + 232: 33 04 f0 r4 = 0xfffffffffffffff0 + 235: ab 43 cb 00 jump 438 if r3 != r4 + : @13 + 239: 95 88 01 r8 = r8 + 0x1 + 242: 33 02 02 r2 = 0x2 + 245: ab 28 e9 jump 222 if r8 != r2 + : @14 + 248: 33 05 0d r5 = 0xd + 251: 33 08 r8 = 0 + 253: 01 fallthrough + : @15 + 254: 3a 0a 18 00 01 r10 = u64 [0x10018] + 259: 7d ab 01 r11 = i8 [r10 + 0x1] + 262: 64 b3 r3 = r11 + 264: 33 04 0f r4 = 0xf + 267: ab 43 ab 00 jump 438 if r3 != r4 + : @16 + 271: 95 88 01 r8 = r8 + 0x1 + 274: 33 02 02 r2 = 0x2 + 277: ab 28 e9 jump 254 if r8 != r2 + : @17 + 280: 33 05 0e r5 = 0xe + 283: 33 08 r8 = 0 + 285: 01 fallthrough + : @18 + 286: 3a 0a 00 00 01 r10 = u64 [0x10000] + 291: 7d ab 01 r11 = i8 [r10 + 0x1] + 294: 64 b3 r3 = r11 + 296: 33 04 r4 = 0 + 298: ab 43 8c 00 jump 438 if r3 != r4 + : @19 + 302: 95 88 01 r8 = r8 + 0x1 + 305: 33 02 02 r2 = 0x2 + 308: ab 28 ea jump 286 if r8 != r2 + : @20 + 311: 33 05 0f r5 = 0xf + 314: 33 08 r8 = 0 + 316: 01 fallthrough + : @21 + 317: 3a 0a 10 00 01 r10 = u64 [0x10010] + 322: 7d ab 01 r11 = i8 [r10 + 0x1] + 325: 33 04 f0 r4 = 0xfffffffffffffff0 + 328: ab 4b 6e jump 438 if r11 != r4 + : @22 + 331: 95 88 01 r8 = r8 + 0x1 + 334: 33 02 02 r2 = 0x2 + 337: ab 28 ec jump 317 if r8 != r2 + : @23 + 340: 33 05 10 r5 = 0x10 + 343: 33 08 r8 = 0 + 345: 01 fallthrough + : @24 + 346: 3a 0a 18 00 01 r10 = u64 [0x10018] + 351: 7d ab 01 r11 = i8 [r10 + 0x1] + 354: 33 04 0f r4 = 0xf + 357: ab 4b 51 jump 438 if r11 != r4 + : @25 + 360: 95 88 01 r8 = r8 + 0x1 + 363: 33 02 02 r2 = 0x2 + 366: ab 28 ec jump 346 if r8 != r2 + : @26 + 369: 33 05 11 r5 = 0x11 + 372: 33 08 r8 = 0 + 374: 01 fallthrough + : @27 + 375: 3a 0a 00 00 01 r10 = u64 [0x10000] + 380: 7d ab 01 r11 = i8 [r10 + 0x1] + 383: 33 04 r4 = 0 + 385: ab 4b 35 jump 438 if r11 != r4 + : @28 + 388: 95 88 01 r8 = r8 + 0x1 + 391: 33 02 02 r2 = 0x2 + 394: ab 28 ed jump 375 if r8 != r2 + : @29 + 397: 33 05 12 r5 = 0x12 + 400: 3a 02 00 00 01 r2 = u64 [0x10000] + 405: 7d 21 r1 = i8 [r2 + 0] + 407: 33 01 02 r1 = 0x2 + 410: 33 04 02 r4 = 0x2 + 413: ab 41 19 jump 438 if r1 != r4 + : @30 + 416: 33 05 13 r5 = 0x13 + 419: 3a 02 00 00 01 r2 = u64 [0x10000] + 424: 7d 21 r1 = i8 [r2 + 0] + 426: 33 01 02 r1 = 0x2 + 429: 33 04 02 r4 = 0x2 + 432: ab 41 06 jump 438 if r1 != r4 + : @31 + 435: 52 05 04 jump 439 if r5 != 0 + : @32 + 438: 00 trap + : @33 + 439: 28 49 fe jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r1 = 0x2 (initially was 0x0) + * r2 = 0x30000 (initially was 0x0) + * r4 = 0x2 (initially was 0x0) + * r5 = 0x13 (initially was 0x0) + * r8 = 0x2 (initially was 0x0) + * r10 = 0x30000 (initially was 0x0) + * r12 = 0xf (initially was 0x0) + +The memory contents after execution should be unchanged. + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9814 + + +## riscv_rv64ui_lbu + +Initial page map: + * RO: 0x10000-0x11000 (0x1000 bytes) + * RW: 0x30000-0x31000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x10002-0x10003 (0x1 bytes) = [0x03] + * 0x10008-0x10009 (0x1 bytes) = [0x03] + * 0x1000a-0x1000b (0x1 bytes) = [0x03] + * 0x10010-0x10011 (0x1 bytes) = [0x01] + * 0x10012-0x10013 (0x1 bytes) = [0x03] + * 0x10018-0x10019 (0x1 bytes) = [0x02] + * 0x1001a-0x1001b (0x1 bytes) = [0x03] + * 0x30000-0x30001 (0x1 bytes) = [0xff] + * 0x30002-0x30004 (0x2 bytes) = [0xf0, 0x0f] + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 0c ff 00 r12 = 0xff + 20: 3a 01 00 00 01 r1 = u64 [0x10000] + 25: 7c 1b r11 = u8 [r1 + 0] + 27: 33 04 ff 00 r4 = 0xff + 31: ab 4b a2 01 jump 449 if r11 != r4 + : @2 + 35: 33 05 03 r5 = 0x3 + 38: 33 0c r12 = 0 + 40: 3a 01 00 00 01 r1 = u64 [0x10000] + 45: 7c 1b 01 r11 = u8 [r1 + 0x1] + 48: 33 04 r4 = 0 + 50: ab 4b 8f 01 jump 449 if r11 != r4 + : @3 + 54: 33 05 04 r5 = 0x4 + 57: 33 0c f0 00 r12 = 0xf0 + 61: 3a 01 00 00 01 r1 = u64 [0x10000] + 66: 7c 1b 02 r11 = u8 [r1 + 0x2] + 69: 33 04 f0 00 r4 = 0xf0 + 73: ab 4b 78 01 jump 449 if r11 != r4 + : @4 + 77: 33 05 05 r5 = 0x5 + 80: 33 0c 0f r12 = 0xf + 83: 3a 01 00 00 01 r1 = u64 [0x10000] + 88: 7c 1b 03 r11 = u8 [r1 + 0x3] + 91: 33 04 0f r4 = 0xf + 94: ab 4b 63 01 jump 449 if r11 != r4 + : @5 + 98: 33 05 06 r5 = 0x6 + 101: 33 0c ff 00 r12 = 0xff + 105: 3a 01 08 00 01 r1 = u64 [0x10008] + 110: 7c 1b fd r11 = u8 [r1 + 0xfffffffffffffffd] + 113: 33 04 ff 00 r4 = 0xff + 117: ab 4b 4c 01 jump 449 if r11 != r4 + : @6 + 121: 33 05 07 r5 = 0x7 + 124: 33 0c r12 = 0 + 126: 3a 01 08 00 01 r1 = u64 [0x10008] + 131: 7c 1b fe r11 = u8 [r1 + 0xfffffffffffffffe] + 134: 33 04 r4 = 0 + 136: ab 4b 39 01 jump 449 if r11 != r4 + : @7 + 140: 33 05 08 r5 = 0x8 + 143: 33 0c f0 00 r12 = 0xf0 + 147: 3a 01 08 00 01 r1 = u64 [0x10008] + 152: 7c 1b ff r11 = u8 [r1 + 0xffffffffffffffff] + 155: 33 04 f0 00 r4 = 0xf0 + 159: ab 4b 22 01 jump 449 if r11 != r4 + : @8 + 163: 33 05 09 r5 = 0x9 + 166: 33 0c 0f r12 = 0xf + 169: 3a 01 08 00 01 r1 = u64 [0x10008] + 174: 7c 1b r11 = u8 [r1 + 0] + 176: 33 04 0f r4 = 0xf + 179: ab 4b 0e 01 jump 449 if r11 != r4 + : @9 + 183: 33 05 0a r5 = 0xa + 186: 3a 00 00 00 01 r0 = u64 [0x10000] + 191: 95 00 e0 r0 = r0 + 0xffffffffffffffe0 + 194: 7c 02 20 r2 = u8 [r0 + 0x20] + 197: 33 04 ff 00 r4 = 0xff + 201: ab 42 f8 00 jump 449 if r2 != r4 + : @10 + 205: 33 05 0b r5 = 0xb + 208: 3a 00 00 00 01 r0 = u64 [0x10000] + 213: 95 00 fa r0 = r0 + 0xfffffffffffffffa + 216: 7c 02 07 r2 = u8 [r0 + 0x7] + 219: 33 04 r4 = 0 + 221: ab 42 e4 00 jump 449 if r2 != r4 + : @11 + 225: 33 05 0c r5 = 0xc + 228: 33 08 r8 = 0 + 230: 01 fallthrough + : @12 + 231: 3a 0a 10 00 01 r10 = u64 [0x10010] + 236: 7c ab 01 r11 = u8 [r10 + 0x1] + 239: 64 b3 r3 = r11 + 241: 33 04 f0 00 r4 = 0xf0 + 245: ab 43 cc 00 jump 449 if r3 != r4 + : @13 + 249: 95 88 01 r8 = r8 + 0x1 + 252: 33 02 02 r2 = 0x2 + 255: ab 28 e8 jump 231 if r8 != r2 + : @14 + 258: 33 05 0d r5 = 0xd + 261: 33 08 r8 = 0 + 263: 01 fallthrough + : @15 + 264: 3a 0a 18 00 01 r10 = u64 [0x10018] + 269: 7c ab 01 r11 = u8 [r10 + 0x1] + 272: 64 b3 r3 = r11 + 274: 33 04 0f r4 = 0xf + 277: ab 43 ac 00 jump 449 if r3 != r4 + : @16 + 281: 95 88 01 r8 = r8 + 0x1 + 284: 33 02 02 r2 = 0x2 + 287: ab 28 e9 jump 264 if r8 != r2 + : @17 + 290: 33 05 0e r5 = 0xe + 293: 33 08 r8 = 0 + 295: 01 fallthrough + : @18 + 296: 3a 0a 00 00 01 r10 = u64 [0x10000] + 301: 7c ab 01 r11 = u8 [r10 + 0x1] + 304: 64 b3 r3 = r11 + 306: 33 04 r4 = 0 + 308: ab 43 8d 00 jump 449 if r3 != r4 + : @19 + 312: 95 88 01 r8 = r8 + 0x1 + 315: 33 02 02 r2 = 0x2 + 318: ab 28 ea jump 296 if r8 != r2 + : @20 + 321: 33 05 0f r5 = 0xf + 324: 33 08 r8 = 0 + 326: 01 fallthrough + : @21 + 327: 3a 0a 10 00 01 r10 = u64 [0x10010] + 332: 7c ab 01 r11 = u8 [r10 + 0x1] + 335: 33 04 f0 00 r4 = 0xf0 + 339: ab 4b 6e jump 449 if r11 != r4 + : @22 + 342: 95 88 01 r8 = r8 + 0x1 + 345: 33 02 02 r2 = 0x2 + 348: ab 28 eb jump 327 if r8 != r2 + : @23 + 351: 33 05 10 r5 = 0x10 + 354: 33 08 r8 = 0 + 356: 01 fallthrough + : @24 + 357: 3a 0a 18 00 01 r10 = u64 [0x10018] + 362: 7c ab 01 r11 = u8 [r10 + 0x1] + 365: 33 04 0f r4 = 0xf + 368: ab 4b 51 jump 449 if r11 != r4 + : @25 + 371: 95 88 01 r8 = r8 + 0x1 + 374: 33 02 02 r2 = 0x2 + 377: ab 28 ec jump 357 if r8 != r2 + : @26 + 380: 33 05 11 r5 = 0x11 + 383: 33 08 r8 = 0 + 385: 01 fallthrough + : @27 + 386: 3a 0a 00 00 01 r10 = u64 [0x10000] + 391: 7c ab 01 r11 = u8 [r10 + 0x1] + 394: 33 04 r4 = 0 + 396: ab 4b 35 jump 449 if r11 != r4 + : @28 + 399: 95 88 01 r8 = r8 + 0x1 + 402: 33 02 02 r2 = 0x2 + 405: ab 28 ed jump 386 if r8 != r2 + : @29 + 408: 33 05 12 r5 = 0x12 + 411: 3a 02 00 00 01 r2 = u64 [0x10000] + 416: 7c 21 r1 = u8 [r2 + 0] + 418: 33 01 02 r1 = 0x2 + 421: 33 04 02 r4 = 0x2 + 424: ab 41 19 jump 449 if r1 != r4 + : @30 + 427: 33 05 13 r5 = 0x13 + 430: 3a 02 00 00 01 r2 = u64 [0x10000] + 435: 7c 21 r1 = u8 [r2 + 0] + 437: 33 01 02 r1 = 0x2 + 440: 33 04 02 r4 = 0x2 + 443: ab 41 06 jump 449 if r1 != r4 + : @31 + 446: 52 05 04 jump 450 if r5 != 0 + : @32 + 449: 00 trap + : @33 + 450: 28 3e fe jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r1 = 0x2 (initially was 0x0) + * r2 = 0x30000 (initially was 0x0) + * r4 = 0x2 (initially was 0x0) + * r5 = 0x13 (initially was 0x0) + * r8 = 0x2 (initially was 0x0) + * r10 = 0x30000 (initially was 0x0) + * r12 = 0xf (initially was 0x0) + +The memory contents after execution should be unchanged. + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9814 + + +## riscv_rv64ui_ld + +Initial page map: + * RO: 0x10000-0x11000 (0x1000 bytes) + * RW: 0x30000-0x31000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x10002-0x10003 (0x1 bytes) = [0x03] + * 0x10008-0x10009 (0x1 bytes) = [0x18] + * 0x1000a-0x1000b (0x1 bytes) = [0x03] + * 0x10010-0x10011 (0x1 bytes) = [0x08] + * 0x10012-0x10013 (0x1 bytes) = [0x03] + * 0x10018-0x10019 (0x1 bytes) = [0x10] + * 0x1001a-0x1001b (0x1 bytes) = [0x03] + * 0x30000-0x30001 (0x1 bytes) = [0xff] + * 0x30002-0x30003 (0x1 bytes) = [0xff] + * 0x30004-0x30005 (0x1 bytes) = [0xff] + * 0x30006-0x30007 (0x1 bytes) = [0xff] + * 0x30009-0x3000a (0x1 bytes) = [0xff] + * 0x3000b-0x3000c (0x1 bytes) = [0xff] + * 0x3000d-0x3000e (0x1 bytes) = [0xff] + * 0x3000f-0x30020 (0x11 bytes) = [0xff, 0xf0, 0x0f, 0xf0, 0x0f, 0xf0, 0x0f, 0xf0, 0x0f, 0x0f, 0xf0, 0x0f, 0xf0, 0x0f, 0xf0, 0x0f, 0xf0] + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 0c 00 00 ff 00 r12 = 0xff0000 + 22: 83 cc ff 00 i32 r12 = r12 + 0xff + 26: 97 cc 10 r12 = r12 << 0x10 + 29: 95 cc ff 00 r12 = r12 + 0xff + 33: 97 cc 10 r12 = r12 << 0x10 + 36: 95 cc ff 00 r12 = r12 + 0xff + 40: 3a 01 00 00 01 r1 = u64 [0x10000] + 45: 82 1b r11 = u64 [r1 + 0] + 47: 33 04 00 00 ff 00 r4 = 0xff0000 + 53: 83 44 ff 00 i32 r4 = r4 + 0xff + 57: 97 44 10 r4 = r4 << 0x10 + 60: 95 44 ff 00 r4 = r4 + 0xff + 64: 97 44 10 r4 = r4 << 0x10 + 67: 95 44 ff 00 r4 = r4 + 0xff + 71: ab 4b ab 03 jump 1010 if r11 != r4 + : @2 + 75: 33 05 03 r5 = 0x3 + 78: 33 0c 00 00 01 ff r12 = 0xffffffffff010000 + 84: 83 cc 01 ff i32 r12 = r12 + 0xffffffffffffff01 + 88: 97 cc 10 r12 = r12 << 0x10 + 91: 95 cc 01 ff r12 = r12 + 0xffffffffffffff01 + 95: 97 cc 10 r12 = r12 << 0x10 + 98: 95 cc 00 ff r12 = r12 + 0xffffffffffffff00 + 102: 3a 01 00 00 01 r1 = u64 [0x10000] + 107: 82 1b 08 r11 = u64 [r1 + 0x8] + 110: 33 04 00 00 01 ff r4 = 0xffffffffff010000 + 116: 83 44 01 ff i32 r4 = r4 + 0xffffffffffffff01 + 120: 97 44 10 r4 = r4 << 0x10 + 123: 95 44 01 ff r4 = r4 + 0xffffffffffffff01 + 127: 97 44 10 r4 = r4 << 0x10 + 130: 95 44 00 ff r4 = r4 + 0xffffffffffffff00 + 134: ab 4b 6c 03 jump 1010 if r11 != r4 + : @3 + 138: 33 05 04 r5 = 0x4 + 141: 33 0c 00 00 01 r12 = 0x10000 + 146: 83 cc 01 ff i32 r12 = r12 + 0xffffffffffffff01 + 150: 97 cc 10 r12 = r12 << 0x10 + 153: 95 cc 01 ff r12 = r12 + 0xffffffffffffff01 + 157: 97 cc 10 r12 = r12 << 0x10 + 160: 95 cc 01 ff r12 = r12 + 0xffffffffffffff01 + 164: 97 cc 0c r12 = r12 << 0xc + 167: 95 cc f0 r12 = r12 + 0xfffffffffffffff0 + 170: 3a 01 00 00 01 r1 = u64 [0x10000] + 175: 82 1b 10 r11 = u64 [r1 + 0x10] + 178: 33 04 00 00 01 r4 = 0x10000 + 183: 83 44 01 ff i32 r4 = r4 + 0xffffffffffffff01 + 187: 97 44 10 r4 = r4 << 0x10 + 190: 95 44 01 ff r4 = r4 + 0xffffffffffffff01 + 194: 97 44 10 r4 = r4 << 0x10 + 197: 95 44 01 ff r4 = r4 + 0xffffffffffffff01 + 201: 97 44 0c r4 = r4 << 0xc + 204: 95 44 f0 r4 = r4 + 0xfffffffffffffff0 + 207: ab 4b 23 03 jump 1010 if r11 != r4 + : @4 + 211: 33 05 05 r5 = 0x5 + 214: 33 0c 00 00 ff r12 = 0xffffffffffff0000 + 219: 83 cc ff 00 i32 r12 = r12 + 0xff + 223: 97 cc 10 r12 = r12 << 0x10 + 226: 95 cc ff 00 r12 = r12 + 0xff + 230: 97 cc 10 r12 = r12 << 0x10 + 233: 95 cc ff 00 r12 = r12 + 0xff + 237: 97 cc 0c r12 = r12 << 0xc + 240: 95 cc 0f r12 = r12 + 0xf + 243: 3a 01 00 00 01 r1 = u64 [0x10000] + 248: 82 1b 18 r11 = u64 [r1 + 0x18] + 251: 33 04 00 00 ff r4 = 0xffffffffffff0000 + 256: 83 44 ff 00 i32 r4 = r4 + 0xff + 260: 97 44 10 r4 = r4 << 0x10 + 263: 95 44 ff 00 r4 = r4 + 0xff + 267: 97 44 10 r4 = r4 << 0x10 + 270: 95 44 ff 00 r4 = r4 + 0xff + 274: 97 44 0c r4 = r4 << 0xc + 277: 95 44 0f r4 = r4 + 0xf + 280: ab 4b da 02 jump 1010 if r11 != r4 + : @5 + 284: 33 05 06 r5 = 0x6 + 287: 33 0c 00 00 ff 00 r12 = 0xff0000 + 293: 83 cc ff 00 i32 r12 = r12 + 0xff + 297: 97 cc 10 r12 = r12 << 0x10 + 300: 95 cc ff 00 r12 = r12 + 0xff + 304: 97 cc 10 r12 = r12 << 0x10 + 307: 95 cc ff 00 r12 = r12 + 0xff + 311: 3a 01 08 00 01 r1 = u64 [0x10008] + 316: 82 1b e8 r11 = u64 [r1 + 0xffffffffffffffe8] + 319: 33 04 00 00 ff 00 r4 = 0xff0000 + 325: 83 44 ff 00 i32 r4 = r4 + 0xff + 329: 97 44 10 r4 = r4 << 0x10 + 332: 95 44 ff 00 r4 = r4 + 0xff + 336: 97 44 10 r4 = r4 << 0x10 + 339: 95 44 ff 00 r4 = r4 + 0xff + 343: ab 4b 9b 02 jump 1010 if r11 != r4 + : @6 + 347: 33 05 07 r5 = 0x7 + 350: 33 0c 00 00 01 ff r12 = 0xffffffffff010000 + 356: 83 cc 01 ff i32 r12 = r12 + 0xffffffffffffff01 + 360: 97 cc 10 r12 = r12 << 0x10 + 363: 95 cc 01 ff r12 = r12 + 0xffffffffffffff01 + 367: 97 cc 10 r12 = r12 << 0x10 + 370: 95 cc 00 ff r12 = r12 + 0xffffffffffffff00 + 374: 3a 01 08 00 01 r1 = u64 [0x10008] + 379: 82 1b f0 r11 = u64 [r1 + 0xfffffffffffffff0] + 382: 33 04 00 00 01 ff r4 = 0xffffffffff010000 + 388: 83 44 01 ff i32 r4 = r4 + 0xffffffffffffff01 + 392: 97 44 10 r4 = r4 << 0x10 + 395: 95 44 01 ff r4 = r4 + 0xffffffffffffff01 + 399: 97 44 10 r4 = r4 << 0x10 + 402: 95 44 00 ff r4 = r4 + 0xffffffffffffff00 + 406: ab 4b 5c 02 jump 1010 if r11 != r4 + : @7 + 410: 33 05 08 r5 = 0x8 + 413: 33 0c 00 00 01 r12 = 0x10000 + 418: 83 cc 01 ff i32 r12 = r12 + 0xffffffffffffff01 + 422: 97 cc 10 r12 = r12 << 0x10 + 425: 95 cc 01 ff r12 = r12 + 0xffffffffffffff01 + 429: 97 cc 10 r12 = r12 << 0x10 + 432: 95 cc 01 ff r12 = r12 + 0xffffffffffffff01 + 436: 97 cc 0c r12 = r12 << 0xc + 439: 95 cc f0 r12 = r12 + 0xfffffffffffffff0 + 442: 3a 01 08 00 01 r1 = u64 [0x10008] + 447: 82 1b f8 r11 = u64 [r1 + 0xfffffffffffffff8] + 450: 33 04 00 00 01 r4 = 0x10000 + 455: 83 44 01 ff i32 r4 = r4 + 0xffffffffffffff01 + 459: 97 44 10 r4 = r4 << 0x10 + 462: 95 44 01 ff r4 = r4 + 0xffffffffffffff01 + 466: 97 44 10 r4 = r4 << 0x10 + 469: 95 44 01 ff r4 = r4 + 0xffffffffffffff01 + 473: 97 44 0c r4 = r4 << 0xc + 476: 95 44 f0 r4 = r4 + 0xfffffffffffffff0 + 479: ab 4b 13 02 jump 1010 if r11 != r4 + : @8 + 483: 33 05 09 r5 = 0x9 + 486: 33 0c 00 00 ff r12 = 0xffffffffffff0000 + 491: 83 cc ff 00 i32 r12 = r12 + 0xff + 495: 97 cc 10 r12 = r12 << 0x10 + 498: 95 cc ff 00 r12 = r12 + 0xff + 502: 97 cc 10 r12 = r12 << 0x10 + 505: 95 cc ff 00 r12 = r12 + 0xff + 509: 97 cc 0c r12 = r12 << 0xc + 512: 95 cc 0f r12 = r12 + 0xf + 515: 3a 01 08 00 01 r1 = u64 [0x10008] + 520: 82 1b r11 = u64 [r1 + 0] + 522: 33 04 00 00 ff r4 = 0xffffffffffff0000 + 527: 83 44 ff 00 i32 r4 = r4 + 0xff + 531: 97 44 10 r4 = r4 << 0x10 + 534: 95 44 ff 00 r4 = r4 + 0xff + 538: 97 44 10 r4 = r4 << 0x10 + 541: 95 44 ff 00 r4 = r4 + 0xff + 545: 97 44 0c r4 = r4 << 0xc + 548: 95 44 0f r4 = r4 + 0xf + 551: ab 4b cb 01 jump 1010 if r11 != r4 + : @9 + 555: 33 05 0a r5 = 0xa + 558: 3a 00 00 00 01 r0 = u64 [0x10000] + 563: 95 00 e0 r0 = r0 + 0xffffffffffffffe0 + 566: 82 02 20 r2 = u64 [r0 + 0x20] + 569: 33 04 00 00 ff 00 r4 = 0xff0000 + 575: 83 44 ff 00 i32 r4 = r4 + 0xff + 579: 97 44 10 r4 = r4 << 0x10 + 582: 95 44 ff 00 r4 = r4 + 0xff + 586: 97 44 10 r4 = r4 << 0x10 + 589: 95 44 ff 00 r4 = r4 + 0xff + 593: ab 42 a1 01 jump 1010 if r2 != r4 + : @10 + 597: 33 05 0b r5 = 0xb + 600: 3a 00 00 00 01 r0 = u64 [0x10000] + 605: 95 00 fd r0 = r0 + 0xfffffffffffffffd + 608: 82 02 0b r2 = u64 [r0 + 0xb] + 611: 33 04 00 00 01 ff r4 = 0xffffffffff010000 + 617: 83 44 01 ff i32 r4 = r4 + 0xffffffffffffff01 + 621: 97 44 10 r4 = r4 << 0x10 + 624: 95 44 01 ff r4 = r4 + 0xffffffffffffff01 + 628: 97 44 10 r4 = r4 << 0x10 + 631: 95 44 00 ff r4 = r4 + 0xffffffffffffff00 + 635: ab 42 77 01 jump 1010 if r2 != r4 + : @11 + 639: 33 05 0c r5 = 0xc + 642: 33 08 r8 = 0 + 644: 01 fallthrough + : @12 + 645: 3a 0a 10 00 01 r10 = u64 [0x10010] + 650: 82 ab 08 r11 = u64 [r10 + 0x8] + 653: 64 b3 r3 = r11 + 655: 33 04 00 00 01 r4 = 0x10000 + 660: 83 44 01 ff i32 r4 = r4 + 0xffffffffffffff01 + 664: 97 44 10 r4 = r4 << 0x10 + 667: 95 44 01 ff r4 = r4 + 0xffffffffffffff01 + 671: 97 44 10 r4 = r4 << 0x10 + 674: 95 44 01 ff r4 = r4 + 0xffffffffffffff01 + 678: 97 44 0c r4 = r4 << 0xc + 681: 95 44 f0 r4 = r4 + 0xfffffffffffffff0 + 684: ab 43 46 01 jump 1010 if r3 != r4 + : @13 + 688: 95 88 01 r8 = r8 + 0x1 + 691: 33 02 02 r2 = 0x2 + 694: ab 28 cf jump 645 if r8 != r2 + : @14 + 697: 33 05 0d r5 = 0xd + 700: 33 08 r8 = 0 + 702: 01 fallthrough + : @15 + 703: 3a 0a 18 00 01 r10 = u64 [0x10018] + 708: 82 ab 08 r11 = u64 [r10 + 0x8] + 711: 64 b3 r3 = r11 + 713: 33 04 00 00 ff r4 = 0xffffffffffff0000 + 718: 83 44 ff 00 i32 r4 = r4 + 0xff + 722: 97 44 10 r4 = r4 << 0x10 + 725: 95 44 ff 00 r4 = r4 + 0xff + 729: 97 44 10 r4 = r4 << 0x10 + 732: 95 44 ff 00 r4 = r4 + 0xff + 736: 97 44 0c r4 = r4 << 0xc + 739: 95 44 0f r4 = r4 + 0xf + 742: ab 43 0c 01 jump 1010 if r3 != r4 + : @16 + 746: 95 88 01 r8 = r8 + 0x1 + 749: 33 02 02 r2 = 0x2 + 752: ab 28 cf jump 703 if r8 != r2 + : @17 + 755: 33 05 0e r5 = 0xe + 758: 33 08 r8 = 0 + 760: 01 fallthrough + : @18 + 761: 3a 0a 00 00 01 r10 = u64 [0x10000] + 766: 82 ab 08 r11 = u64 [r10 + 0x8] + 769: 64 b3 r3 = r11 + 771: 33 04 00 00 01 ff r4 = 0xffffffffff010000 + 777: 83 44 01 ff i32 r4 = r4 + 0xffffffffffffff01 + 781: 97 44 10 r4 = r4 << 0x10 + 784: 95 44 01 ff r4 = r4 + 0xffffffffffffff01 + 788: 97 44 10 r4 = r4 << 0x10 + 791: 95 44 00 ff r4 = r4 + 0xffffffffffffff00 + 795: ab 43 d7 00 jump 1010 if r3 != r4 + : @19 + 799: 95 88 01 r8 = r8 + 0x1 + 802: 33 02 02 r2 = 0x2 + 805: ab 28 d4 jump 761 if r8 != r2 + : @20 + 808: 33 05 0f r5 = 0xf + 811: 33 08 r8 = 0 + 813: 01 fallthrough + : @21 + 814: 3a 0a 10 00 01 r10 = u64 [0x10010] + 819: 82 ab 08 r11 = u64 [r10 + 0x8] + 822: 33 04 00 00 01 r4 = 0x10000 + 827: 83 44 01 ff i32 r4 = r4 + 0xffffffffffffff01 + 831: 97 44 10 r4 = r4 << 0x10 + 834: 95 44 01 ff r4 = r4 + 0xffffffffffffff01 + 838: 97 44 10 r4 = r4 << 0x10 + 841: 95 44 01 ff r4 = r4 + 0xffffffffffffff01 + 845: 97 44 0c r4 = r4 << 0xc + 848: 95 44 f0 r4 = r4 + 0xfffffffffffffff0 + 851: ab 4b 9f 00 jump 1010 if r11 != r4 + : @22 + 855: 95 88 01 r8 = r8 + 0x1 + 858: 33 02 02 r2 = 0x2 + 861: ab 28 d1 jump 814 if r8 != r2 + : @23 + 864: 33 05 10 r5 = 0x10 + 867: 33 08 r8 = 0 + 869: 01 fallthrough + : @24 + 870: 3a 0a 18 00 01 r10 = u64 [0x10018] + 875: 82 ab 08 r11 = u64 [r10 + 0x8] + 878: 33 04 00 00 ff r4 = 0xffffffffffff0000 + 883: 83 44 ff 00 i32 r4 = r4 + 0xff + 887: 97 44 10 r4 = r4 << 0x10 + 890: 95 44 ff 00 r4 = r4 + 0xff + 894: 97 44 10 r4 = r4 << 0x10 + 897: 95 44 ff 00 r4 = r4 + 0xff + 901: 97 44 0c r4 = r4 << 0xc + 904: 95 44 0f r4 = r4 + 0xf + 907: ab 4b 67 jump 1010 if r11 != r4 + : @25 + 910: 95 88 01 r8 = r8 + 0x1 + 913: 33 02 02 r2 = 0x2 + 916: ab 28 d2 jump 870 if r8 != r2 + : @26 + 919: 33 05 11 r5 = 0x11 + 922: 33 08 r8 = 0 + 924: 01 fallthrough + : @27 + 925: 3a 0a 00 00 01 r10 = u64 [0x10000] + 930: 82 ab 08 r11 = u64 [r10 + 0x8] + 933: 33 04 00 00 01 ff r4 = 0xffffffffff010000 + 939: 83 44 01 ff i32 r4 = r4 + 0xffffffffffffff01 + 943: 97 44 10 r4 = r4 << 0x10 + 946: 95 44 01 ff r4 = r4 + 0xffffffffffffff01 + 950: 97 44 10 r4 = r4 << 0x10 + 953: 95 44 00 ff r4 = r4 + 0xffffffffffffff00 + 957: ab 4b 35 jump 1010 if r11 != r4 + : @28 + 960: 95 88 01 r8 = r8 + 0x1 + 963: 33 02 02 r2 = 0x2 + 966: ab 28 d7 jump 925 if r8 != r2 + : @29 + 969: 33 05 12 r5 = 0x12 + 972: 3a 02 00 00 01 r2 = u64 [0x10000] + 977: 82 21 r1 = u64 [r2 + 0] + 979: 33 01 02 r1 = 0x2 + 982: 33 04 02 r4 = 0x2 + 985: ab 41 19 jump 1010 if r1 != r4 + : @30 + 988: 33 05 13 r5 = 0x13 + 991: 3a 02 00 00 01 r2 = u64 [0x10000] + 996: 82 21 r1 = u64 [r2 + 0] + 998: 33 01 02 r1 = 0x2 + 1001: 33 04 02 r4 = 0x2 + 1004: ab 41 06 jump 1010 if r1 != r4 + : @31 + 1007: 52 05 04 jump 1011 if r5 != 0 + : @32 + 1010: 00 trap + : @33 + 1011: 28 0d fc jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r1 = 0x2 (initially was 0x0) + * r2 = 0x30000 (initially was 0x0) + * r3 = 0xff00ff00ff00ff00 (initially was 0x0) + * r4 = 0x2 (initially was 0x0) + * r5 = 0x13 (initially was 0x0) + * r8 = 0x2 (initially was 0x0) + * r10 = 0x30000 (initially was 0x0) + * r11 = 0xff00ff00ff00ff00 (initially was 0x0) + * r12 = 0xf00ff00ff00ff00f (initially was 0x0) + +The memory contents after execution should be unchanged. + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9632 + + +## riscv_rv64ui_lh + +Initial page map: + * RO: 0x10000-0x11000 (0x1000 bytes) + * RW: 0x30000-0x31000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x10002-0x10003 (0x1 bytes) = [0x03] + * 0x10008-0x10009 (0x1 bytes) = [0x06] + * 0x1000a-0x1000b (0x1 bytes) = [0x03] + * 0x10010-0x10011 (0x1 bytes) = [0x02] + * 0x10012-0x10013 (0x1 bytes) = [0x03] + * 0x10018-0x10019 (0x1 bytes) = [0x04] + * 0x1001a-0x1001b (0x1 bytes) = [0x03] + * 0x30000-0x30001 (0x1 bytes) = [0xff] + * 0x30003-0x30008 (0x5 bytes) = [0xff, 0xf0, 0x0f, 0x0f, 0xf0] + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 0c ff 00 r12 = 0xff + 20: 3a 01 00 00 01 r1 = u64 [0x10000] + 25: 7f 1b r11 = i16 [r1 + 0] + 27: 33 04 ff 00 r4 = 0xff + 31: ab 4b da 01 jump 505 if r11 != r4 + : @2 + 35: 33 05 03 r5 = 0x3 + 38: 33 0c 00 ff r12 = 0xffffffffffffff00 + 42: 3a 01 00 00 01 r1 = u64 [0x10000] + 47: 7f 1b 02 r11 = i16 [r1 + 0x2] + 50: 33 04 00 ff r4 = 0xffffffffffffff00 + 54: ab 4b c3 01 jump 505 if r11 != r4 + : @3 + 58: 33 05 04 r5 = 0x4 + 61: 33 0c 00 10 r12 = 0x1000 + 65: 83 cc f0 i32 r12 = r12 + 0xfffffffffffffff0 + 68: 3a 01 00 00 01 r1 = u64 [0x10000] + 73: 7f 1b 04 r11 = i16 [r1 + 0x4] + 76: 33 04 00 10 r4 = 0x1000 + 80: 83 44 f0 i32 r4 = r4 + 0xfffffffffffffff0 + 83: ab 4b a6 01 jump 505 if r11 != r4 + : @4 + 87: 33 05 05 r5 = 0x5 + 90: 33 0c 00 f0 r12 = 0xfffffffffffff000 + 94: 83 cc 0f i32 r12 = r12 + 0xf + 97: 3a 01 00 00 01 r1 = u64 [0x10000] + 102: 7f 1b 06 r11 = i16 [r1 + 0x6] + 105: 33 04 00 f0 r4 = 0xfffffffffffff000 + 109: 83 44 0f i32 r4 = r4 + 0xf + 112: ab 4b 89 01 jump 505 if r11 != r4 + : @5 + 116: 33 05 06 r5 = 0x6 + 119: 33 0c ff 00 r12 = 0xff + 123: 3a 01 08 00 01 r1 = u64 [0x10008] + 128: 7f 1b fa r11 = i16 [r1 + 0xfffffffffffffffa] + 131: 33 04 ff 00 r4 = 0xff + 135: ab 4b 72 01 jump 505 if r11 != r4 + : @6 + 139: 33 05 07 r5 = 0x7 + 142: 33 0c 00 ff r12 = 0xffffffffffffff00 + 146: 3a 01 08 00 01 r1 = u64 [0x10008] + 151: 7f 1b fc r11 = i16 [r1 + 0xfffffffffffffffc] + 154: 33 04 00 ff r4 = 0xffffffffffffff00 + 158: ab 4b 5b 01 jump 505 if r11 != r4 + : @7 + 162: 33 05 08 r5 = 0x8 + 165: 33 0c 00 10 r12 = 0x1000 + 169: 83 cc f0 i32 r12 = r12 + 0xfffffffffffffff0 + 172: 3a 01 08 00 01 r1 = u64 [0x10008] + 177: 7f 1b fe r11 = i16 [r1 + 0xfffffffffffffffe] + 180: 33 04 00 10 r4 = 0x1000 + 184: 83 44 f0 i32 r4 = r4 + 0xfffffffffffffff0 + 187: ab 4b 3e 01 jump 505 if r11 != r4 + : @8 + 191: 33 05 09 r5 = 0x9 + 194: 33 0c 00 f0 r12 = 0xfffffffffffff000 + 198: 83 cc 0f i32 r12 = r12 + 0xf + 201: 3a 01 08 00 01 r1 = u64 [0x10008] + 206: 7f 1b r11 = i16 [r1 + 0] + 208: 33 04 00 f0 r4 = 0xfffffffffffff000 + 212: 83 44 0f i32 r4 = r4 + 0xf + 215: ab 4b 22 01 jump 505 if r11 != r4 + : @9 + 219: 33 05 0a r5 = 0xa + 222: 3a 00 00 00 01 r0 = u64 [0x10000] + 227: 95 00 e0 r0 = r0 + 0xffffffffffffffe0 + 230: 7f 02 20 r2 = i16 [r0 + 0x20] + 233: 33 04 ff 00 r4 = 0xff + 237: ab 42 0c 01 jump 505 if r2 != r4 + : @10 + 241: 33 05 0b r5 = 0xb + 244: 3a 00 00 00 01 r0 = u64 [0x10000] + 249: 95 00 fb r0 = r0 + 0xfffffffffffffffb + 252: 7f 02 07 r2 = i16 [r0 + 0x7] + 255: 33 04 00 ff r4 = 0xffffffffffffff00 + 259: ab 42 f6 00 jump 505 if r2 != r4 + : @11 + 263: 33 05 0c r5 = 0xc + 266: 33 08 r8 = 0 + 268: 01 fallthrough + : @12 + 269: 3a 0a 10 00 01 r10 = u64 [0x10010] + 274: 7f ab 02 r11 = i16 [r10 + 0x2] + 277: 64 b3 r3 = r11 + 279: 33 04 00 10 r4 = 0x1000 + 283: 83 44 f0 i32 r4 = r4 + 0xfffffffffffffff0 + 286: ab 43 db 00 jump 505 if r3 != r4 + : @13 + 290: 95 88 01 r8 = r8 + 0x1 + 293: 33 02 02 r2 = 0x2 + 296: ab 28 e5 jump 269 if r8 != r2 + : @14 + 299: 33 05 0d r5 = 0xd + 302: 33 08 r8 = 0 + 304: 01 fallthrough + : @15 + 305: 3a 0a 18 00 01 r10 = u64 [0x10018] + 310: 7f ab 02 r11 = i16 [r10 + 0x2] + 313: 64 b3 r3 = r11 + 315: 33 04 00 f0 r4 = 0xfffffffffffff000 + 319: 83 44 0f i32 r4 = r4 + 0xf + 322: ab 43 b7 00 jump 505 if r3 != r4 + : @16 + 326: 95 88 01 r8 = r8 + 0x1 + 329: 33 02 02 r2 = 0x2 + 332: ab 28 e5 jump 305 if r8 != r2 + : @17 + 335: 33 05 0e r5 = 0xe + 338: 33 08 r8 = 0 + 340: 01 fallthrough + : @18 + 341: 3a 0a 00 00 01 r10 = u64 [0x10000] + 346: 7f ab 02 r11 = i16 [r10 + 0x2] + 349: 64 b3 r3 = r11 + 351: 33 04 00 ff r4 = 0xffffffffffffff00 + 355: ab 43 96 00 jump 505 if r3 != r4 + : @19 + 359: 95 88 01 r8 = r8 + 0x1 + 362: 33 02 02 r2 = 0x2 + 365: ab 28 e8 jump 341 if r8 != r2 + : @20 + 368: 33 05 0f r5 = 0xf + 371: 33 08 r8 = 0 + 373: 01 fallthrough + : @21 + 374: 3a 0a 10 00 01 r10 = u64 [0x10010] + 379: 7f ab 02 r11 = i16 [r10 + 0x2] + 382: 33 04 00 10 r4 = 0x1000 + 386: 83 44 f0 i32 r4 = r4 + 0xfffffffffffffff0 + 389: ab 4b 74 jump 505 if r11 != r4 + : @22 + 392: 95 88 01 r8 = r8 + 0x1 + 395: 33 02 02 r2 = 0x2 + 398: ab 28 e8 jump 374 if r8 != r2 + : @23 + 401: 33 05 10 r5 = 0x10 + 404: 33 08 r8 = 0 + 406: 01 fallthrough + : @24 + 407: 3a 0a 18 00 01 r10 = u64 [0x10018] + 412: 7f ab 02 r11 = i16 [r10 + 0x2] + 415: 33 04 00 f0 r4 = 0xfffffffffffff000 + 419: 83 44 0f i32 r4 = r4 + 0xf + 422: ab 4b 53 jump 505 if r11 != r4 + : @25 + 425: 95 88 01 r8 = r8 + 0x1 + 428: 33 02 02 r2 = 0x2 + 431: ab 28 e8 jump 407 if r8 != r2 + : @26 + 434: 33 05 11 r5 = 0x11 + 437: 33 08 r8 = 0 + 439: 01 fallthrough + : @27 + 440: 3a 0a 00 00 01 r10 = u64 [0x10000] + 445: 7f ab 02 r11 = i16 [r10 + 0x2] + 448: 33 04 00 ff r4 = 0xffffffffffffff00 + 452: ab 4b 35 jump 505 if r11 != r4 + : @28 + 455: 95 88 01 r8 = r8 + 0x1 + 458: 33 02 02 r2 = 0x2 + 461: ab 28 eb jump 440 if r8 != r2 + : @29 + 464: 33 05 12 r5 = 0x12 + 467: 3a 02 00 00 01 r2 = u64 [0x10000] + 472: 7f 21 r1 = i16 [r2 + 0] + 474: 33 01 02 r1 = 0x2 + 477: 33 04 02 r4 = 0x2 + 480: ab 41 19 jump 505 if r1 != r4 + : @30 + 483: 33 05 13 r5 = 0x13 + 486: 3a 02 00 00 01 r2 = u64 [0x10000] + 491: 7f 21 r1 = i16 [r2 + 0] + 493: 33 01 02 r1 = 0x2 + 496: 33 04 02 r4 = 0x2 + 499: ab 41 06 jump 505 if r1 != r4 + : @31 + 502: 52 05 04 jump 506 if r5 != 0 + : @32 + 505: 00 trap + : @33 + 506: 28 06 fe jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r1 = 0x2 (initially was 0x0) + * r2 = 0x30000 (initially was 0x0) + * r3 = 0xffffffffffffff00 (initially was 0x0) + * r4 = 0x2 (initially was 0x0) + * r5 = 0x13 (initially was 0x0) + * r8 = 0x2 (initially was 0x0) + * r10 = 0x30000 (initially was 0x0) + * r11 = 0xffffffffffffff00 (initially was 0x0) + * r12 = 0xfffffffffffff00f (initially was 0x0) + +The memory contents after execution should be unchanged. + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9798 + + +## riscv_rv64ui_lhu + +Initial page map: + * RO: 0x10000-0x11000 (0x1000 bytes) + * RW: 0x30000-0x31000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x10002-0x10003 (0x1 bytes) = [0x03] + * 0x10008-0x10009 (0x1 bytes) = [0x06] + * 0x1000a-0x1000b (0x1 bytes) = [0x03] + * 0x10010-0x10011 (0x1 bytes) = [0x02] + * 0x10012-0x10013 (0x1 bytes) = [0x03] + * 0x10018-0x10019 (0x1 bytes) = [0x04] + * 0x1001a-0x1001b (0x1 bytes) = [0x03] + * 0x30000-0x30001 (0x1 bytes) = [0xff] + * 0x30003-0x30008 (0x5 bytes) = [0xff, 0xf0, 0x0f, 0x0f, 0xf0] + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 0c ff 00 r12 = 0xff + 20: 3a 01 00 00 01 r1 = u64 [0x10000] + 25: 7e 1b r11 = u16 [r1 + 0] + 27: 33 04 ff 00 r4 = 0xff + 31: ab 4b 03 02 jump 546 if r11 != r4 + : @2 + 35: 33 05 03 r5 = 0x3 + 38: 33 0c 00 00 01 r12 = 0x10000 + 43: 83 cc 00 ff i32 r12 = r12 + 0xffffffffffffff00 + 47: 3a 01 00 00 01 r1 = u64 [0x10000] + 52: 7e 1b 02 r11 = u16 [r1 + 0x2] + 55: 33 04 00 00 01 r4 = 0x10000 + 60: 83 44 00 ff i32 r4 = r4 + 0xffffffffffffff00 + 64: ab 4b e2 01 jump 546 if r11 != r4 + : @3 + 68: 33 05 04 r5 = 0x4 + 71: 33 0c 00 10 r12 = 0x1000 + 75: 83 cc f0 i32 r12 = r12 + 0xfffffffffffffff0 + 78: 3a 01 00 00 01 r1 = u64 [0x10000] + 83: 7e 1b 04 r11 = u16 [r1 + 0x4] + 86: 33 04 00 10 r4 = 0x1000 + 90: 83 44 f0 i32 r4 = r4 + 0xfffffffffffffff0 + 93: ab 4b c5 01 jump 546 if r11 != r4 + : @4 + 97: 33 05 05 r5 = 0x5 + 100: 33 0c 00 f0 00 r12 = 0xf000 + 105: 83 cc 0f i32 r12 = r12 + 0xf + 108: 3a 01 00 00 01 r1 = u64 [0x10000] + 113: 7e 1b 06 r11 = u16 [r1 + 0x6] + 116: 33 04 00 f0 00 r4 = 0xf000 + 121: 83 44 0f i32 r4 = r4 + 0xf + 124: ab 4b a6 01 jump 546 if r11 != r4 + : @5 + 128: 33 05 06 r5 = 0x6 + 131: 33 0c ff 00 r12 = 0xff + 135: 3a 01 08 00 01 r1 = u64 [0x10008] + 140: 7e 1b fa r11 = u16 [r1 + 0xfffffffffffffffa] + 143: 33 04 ff 00 r4 = 0xff + 147: ab 4b 8f 01 jump 546 if r11 != r4 + : @6 + 151: 33 05 07 r5 = 0x7 + 154: 33 0c 00 00 01 r12 = 0x10000 + 159: 83 cc 00 ff i32 r12 = r12 + 0xffffffffffffff00 + 163: 3a 01 08 00 01 r1 = u64 [0x10008] + 168: 7e 1b fc r11 = u16 [r1 + 0xfffffffffffffffc] + 171: 33 04 00 00 01 r4 = 0x10000 + 176: 83 44 00 ff i32 r4 = r4 + 0xffffffffffffff00 + 180: ab 4b 6e 01 jump 546 if r11 != r4 + : @7 + 184: 33 05 08 r5 = 0x8 + 187: 33 0c 00 10 r12 = 0x1000 + 191: 83 cc f0 i32 r12 = r12 + 0xfffffffffffffff0 + 194: 3a 01 08 00 01 r1 = u64 [0x10008] + 199: 7e 1b fe r11 = u16 [r1 + 0xfffffffffffffffe] + 202: 33 04 00 10 r4 = 0x1000 + 206: 83 44 f0 i32 r4 = r4 + 0xfffffffffffffff0 + 209: ab 4b 51 01 jump 546 if r11 != r4 + : @8 + 213: 33 05 09 r5 = 0x9 + 216: 33 0c 00 f0 00 r12 = 0xf000 + 221: 83 cc 0f i32 r12 = r12 + 0xf + 224: 3a 01 08 00 01 r1 = u64 [0x10008] + 229: 7e 1b r11 = u16 [r1 + 0] + 231: 33 04 00 f0 00 r4 = 0xf000 + 236: 83 44 0f i32 r4 = r4 + 0xf + 239: ab 4b 33 01 jump 546 if r11 != r4 + : @9 + 243: 33 05 0a r5 = 0xa + 246: 3a 00 00 00 01 r0 = u64 [0x10000] + 251: 95 00 e0 r0 = r0 + 0xffffffffffffffe0 + 254: 7e 02 20 r2 = u16 [r0 + 0x20] + 257: 33 04 ff 00 r4 = 0xff + 261: ab 42 1d 01 jump 546 if r2 != r4 + : @10 + 265: 33 05 0b r5 = 0xb + 268: 3a 00 00 00 01 r0 = u64 [0x10000] + 273: 95 00 fb r0 = r0 + 0xfffffffffffffffb + 276: 7e 02 07 r2 = u16 [r0 + 0x7] + 279: 33 04 00 00 01 r4 = 0x10000 + 284: 83 44 00 ff i32 r4 = r4 + 0xffffffffffffff00 + 288: ab 42 02 01 jump 546 if r2 != r4 + : @11 + 292: 33 05 0c r5 = 0xc + 295: 33 08 r8 = 0 + 297: 01 fallthrough + : @12 + 298: 3a 0a 10 00 01 r10 = u64 [0x10010] + 303: 7e ab 02 r11 = u16 [r10 + 0x2] + 306: 64 b3 r3 = r11 + 308: 33 04 00 10 r4 = 0x1000 + 312: 83 44 f0 i32 r4 = r4 + 0xfffffffffffffff0 + 315: ab 43 e7 00 jump 546 if r3 != r4 + : @13 + 319: 95 88 01 r8 = r8 + 0x1 + 322: 33 02 02 r2 = 0x2 + 325: ab 28 e5 jump 298 if r8 != r2 + : @14 + 328: 33 05 0d r5 = 0xd + 331: 33 08 r8 = 0 + 333: 01 fallthrough + : @15 + 334: 3a 0a 18 00 01 r10 = u64 [0x10018] + 339: 7e ab 02 r11 = u16 [r10 + 0x2] + 342: 64 b3 r3 = r11 + 344: 33 04 00 f0 00 r4 = 0xf000 + 349: 83 44 0f i32 r4 = r4 + 0xf + 352: ab 43 c2 00 jump 546 if r3 != r4 + : @16 + 356: 95 88 01 r8 = r8 + 0x1 + 359: 33 02 02 r2 = 0x2 + 362: ab 28 e4 jump 334 if r8 != r2 + : @17 + 365: 33 05 0e r5 = 0xe + 368: 33 08 r8 = 0 + 370: 01 fallthrough + : @18 + 371: 3a 0a 00 00 01 r10 = u64 [0x10000] + 376: 7e ab 02 r11 = u16 [r10 + 0x2] + 379: 64 b3 r3 = r11 + 381: 33 04 00 00 01 r4 = 0x10000 + 386: 83 44 00 ff i32 r4 = r4 + 0xffffffffffffff00 + 390: ab 43 9c 00 jump 546 if r3 != r4 + : @19 + 394: 95 88 01 r8 = r8 + 0x1 + 397: 33 02 02 r2 = 0x2 + 400: ab 28 e3 jump 371 if r8 != r2 + : @20 + 403: 33 05 0f r5 = 0xf + 406: 33 08 r8 = 0 + 408: 01 fallthrough + : @21 + 409: 3a 0a 10 00 01 r10 = u64 [0x10010] + 414: 7e ab 02 r11 = u16 [r10 + 0x2] + 417: 33 04 00 10 r4 = 0x1000 + 421: 83 44 f0 i32 r4 = r4 + 0xfffffffffffffff0 + 424: ab 4b 7a jump 546 if r11 != r4 + : @22 + 427: 95 88 01 r8 = r8 + 0x1 + 430: 33 02 02 r2 = 0x2 + 433: ab 28 e8 jump 409 if r8 != r2 + : @23 + 436: 33 05 10 r5 = 0x10 + 439: 33 08 r8 = 0 + 441: 01 fallthrough + : @24 + 442: 3a 0a 18 00 01 r10 = u64 [0x10018] + 447: 7e ab 02 r11 = u16 [r10 + 0x2] + 450: 33 04 00 f0 00 r4 = 0xf000 + 455: 83 44 0f i32 r4 = r4 + 0xf + 458: ab 4b 58 jump 546 if r11 != r4 + : @25 + 461: 95 88 01 r8 = r8 + 0x1 + 464: 33 02 02 r2 = 0x2 + 467: ab 28 e7 jump 442 if r8 != r2 + : @26 + 470: 33 05 11 r5 = 0x11 + 473: 33 08 r8 = 0 + 475: 01 fallthrough + : @27 + 476: 3a 0a 00 00 01 r10 = u64 [0x10000] + 481: 7e ab 02 r11 = u16 [r10 + 0x2] + 484: 33 04 00 00 01 r4 = 0x10000 + 489: 83 44 00 ff i32 r4 = r4 + 0xffffffffffffff00 + 493: ab 4b 35 jump 546 if r11 != r4 + : @28 + 496: 95 88 01 r8 = r8 + 0x1 + 499: 33 02 02 r2 = 0x2 + 502: ab 28 e6 jump 476 if r8 != r2 + : @29 + 505: 33 05 12 r5 = 0x12 + 508: 3a 02 00 00 01 r2 = u64 [0x10000] + 513: 7e 21 r1 = u16 [r2 + 0] + 515: 33 01 02 r1 = 0x2 + 518: 33 04 02 r4 = 0x2 + 521: ab 41 19 jump 546 if r1 != r4 + : @30 + 524: 33 05 13 r5 = 0x13 + 527: 3a 02 00 00 01 r2 = u64 [0x10000] + 532: 7e 21 r1 = u16 [r2 + 0] + 534: 33 01 02 r1 = 0x2 + 537: 33 04 02 r4 = 0x2 + 540: ab 41 06 jump 546 if r1 != r4 + : @31 + 543: 52 05 04 jump 547 if r5 != 0 + : @32 + 546: 00 trap + : @33 + 547: 28 dd fd jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r1 = 0x2 (initially was 0x0) + * r2 = 0x30000 (initially was 0x0) + * r3 = 0xff00 (initially was 0x0) + * r4 = 0x2 (initially was 0x0) + * r5 = 0x13 (initially was 0x0) + * r8 = 0x2 (initially was 0x0) + * r10 = 0x30000 (initially was 0x0) + * r11 = 0xff00 (initially was 0x0) + * r12 = 0xf00f (initially was 0x0) + +The memory contents after execution should be unchanged. + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9789 + + +## riscv_rv64ui_lui + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 00 r0 = 0 + 18: 33 04 r4 = 0 + 20: ab 40 45 jump 89 if r0 != r4 + : @2 + 23: 33 05 03 r5 = 0x3 + 26: 33 00 00 f0 r0 = 0xfffffffffffff000 + 30: 99 00 01 r0 = r0 >>a 0x1 + 33: 33 04 00 f8 r4 = 0xfffffffffffff800 + 37: ab 40 34 jump 89 if r0 != r4 + : @3 + 40: 33 05 04 r5 = 0x4 + 43: 33 00 00 f0 ff 7f r0 = 0x7ffff000 + 49: 99 00 14 r0 = r0 >>a 0x14 + 52: 33 04 ff 07 r4 = 0x7ff + 56: ab 40 21 jump 89 if r0 != r4 + : @4 + 59: 33 05 05 r5 = 0x5 + 62: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 68: 99 00 14 r0 = r0 >>a 0x14 + 71: 33 04 00 f8 r4 = 0xfffffffffffff800 + 75: ab 40 0e jump 89 if r0 != r4 + : @5 + 78: 33 05 06 r5 = 0x6 + 81: 33 04 r4 = 0 + 83: 52 04 06 jump 89 if r4 != 0 + : @6 + 86: 52 05 04 jump 90 if r5 != 0 + : @7 + 89: 00 trap + : @8 + 90: 28 a6 jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r5 = 0x6 (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9972 + + +## riscv_rv64ui_lw + +Initial page map: + * RO: 0x10000-0x11000 (0x1000 bytes) + * RW: 0x30000-0x31000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x10002-0x10003 (0x1 bytes) = [0x03] + * 0x10008-0x10009 (0x1 bytes) = [0x0c] + * 0x1000a-0x1000b (0x1 bytes) = [0x03] + * 0x10010-0x10011 (0x1 bytes) = [0x04] + * 0x10012-0x10013 (0x1 bytes) = [0x03] + * 0x10018-0x10019 (0x1 bytes) = [0x08] + * 0x1001a-0x1001b (0x1 bytes) = [0x03] + * 0x30000-0x30001 (0x1 bytes) = [0xff] + * 0x30002-0x30003 (0x1 bytes) = [0xff] + * 0x30005-0x30006 (0x1 bytes) = [0xff] + * 0x30007-0x30010 (0x9 bytes) = [0xff, 0xf0, 0x0f, 0xf0, 0x0f, 0x0f, 0xf0, 0x0f, 0xf0] + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 0c 00 00 ff 00 r12 = 0xff0000 + 22: 83 cc ff 00 i32 r12 = r12 + 0xff + 26: 3a 01 00 00 01 r1 = u64 [0x10000] + 31: 81 1b r11 = i32 [r1 + 0] + 33: 33 04 00 00 ff 00 r4 = 0xff0000 + 39: 83 44 ff 00 i32 r4 = r4 + 0xff + 43: ab 4b 2e 02 jump 601 if r11 != r4 + : @2 + 47: 33 05 03 r5 = 0x3 + 50: 33 0c 00 00 01 ff r12 = 0xffffffffff010000 + 56: 83 cc 00 ff i32 r12 = r12 + 0xffffffffffffff00 + 60: 3a 01 00 00 01 r1 = u64 [0x10000] + 65: 81 1b 04 r11 = i32 [r1 + 0x4] + 68: 33 04 00 00 01 ff r4 = 0xffffffffff010000 + 74: 83 44 00 ff i32 r4 = r4 + 0xffffffffffffff00 + 78: ab 4b 0b 02 jump 601 if r11 != r4 + : @3 + 82: 33 05 04 r5 = 0x4 + 85: 33 0c 00 10 f0 0f r12 = 0xff01000 + 91: 83 cc f0 i32 r12 = r12 + 0xfffffffffffffff0 + 94: 3a 01 00 00 01 r1 = u64 [0x10000] + 99: 81 1b 08 r11 = i32 [r1 + 0x8] + 102: 33 04 00 10 f0 0f r4 = 0xff01000 + 108: 83 44 f0 i32 r4 = r4 + 0xfffffffffffffff0 + 111: ab 4b ea 01 jump 601 if r11 != r4 + : @4 + 115: 33 05 05 r5 = 0x5 + 118: 33 0c 00 f0 0f f0 r12 = 0xfffffffff00ff000 + 124: 83 cc 0f i32 r12 = r12 + 0xf + 127: 3a 01 00 00 01 r1 = u64 [0x10000] + 132: 81 1b 0c r11 = i32 [r1 + 0xc] + 135: 33 04 00 f0 0f f0 r4 = 0xfffffffff00ff000 + 141: 83 44 0f i32 r4 = r4 + 0xf + 144: ab 4b c9 01 jump 601 if r11 != r4 + : @5 + 148: 33 05 06 r5 = 0x6 + 151: 33 0c 00 00 ff 00 r12 = 0xff0000 + 157: 83 cc ff 00 i32 r12 = r12 + 0xff + 161: 3a 01 08 00 01 r1 = u64 [0x10008] + 166: 81 1b f4 r11 = i32 [r1 + 0xfffffffffffffff4] + 169: 33 04 00 00 ff 00 r4 = 0xff0000 + 175: 83 44 ff 00 i32 r4 = r4 + 0xff + 179: ab 4b a6 01 jump 601 if r11 != r4 + : @6 + 183: 33 05 07 r5 = 0x7 + 186: 33 0c 00 00 01 ff r12 = 0xffffffffff010000 + 192: 83 cc 00 ff i32 r12 = r12 + 0xffffffffffffff00 + 196: 3a 01 08 00 01 r1 = u64 [0x10008] + 201: 81 1b f8 r11 = i32 [r1 + 0xfffffffffffffff8] + 204: 33 04 00 00 01 ff r4 = 0xffffffffff010000 + 210: 83 44 00 ff i32 r4 = r4 + 0xffffffffffffff00 + 214: ab 4b 83 01 jump 601 if r11 != r4 + : @7 + 218: 33 05 08 r5 = 0x8 + 221: 33 0c 00 10 f0 0f r12 = 0xff01000 + 227: 83 cc f0 i32 r12 = r12 + 0xfffffffffffffff0 + 230: 3a 01 08 00 01 r1 = u64 [0x10008] + 235: 81 1b fc r11 = i32 [r1 + 0xfffffffffffffffc] + 238: 33 04 00 10 f0 0f r4 = 0xff01000 + 244: 83 44 f0 i32 r4 = r4 + 0xfffffffffffffff0 + 247: ab 4b 62 01 jump 601 if r11 != r4 + : @8 + 251: 33 05 09 r5 = 0x9 + 254: 33 0c 00 f0 0f f0 r12 = 0xfffffffff00ff000 + 260: 83 cc 0f i32 r12 = r12 + 0xf + 263: 3a 01 08 00 01 r1 = u64 [0x10008] + 268: 81 1b r11 = i32 [r1 + 0] + 270: 33 04 00 f0 0f f0 r4 = 0xfffffffff00ff000 + 276: 83 44 0f i32 r4 = r4 + 0xf + 279: ab 4b 42 01 jump 601 if r11 != r4 + : @9 + 283: 33 05 0a r5 = 0xa + 286: 3a 00 00 00 01 r0 = u64 [0x10000] + 291: 95 00 e0 r0 = r0 + 0xffffffffffffffe0 + 294: 81 02 20 r2 = i32 [r0 + 0x20] + 297: 33 04 00 00 ff 00 r4 = 0xff0000 + 303: 83 44 ff 00 i32 r4 = r4 + 0xff + 307: ab 42 26 01 jump 601 if r2 != r4 + : @10 + 311: 33 05 0b r5 = 0xb + 314: 3a 00 00 00 01 r0 = u64 [0x10000] + 319: 95 00 fd r0 = r0 + 0xfffffffffffffffd + 322: 81 02 07 r2 = i32 [r0 + 0x7] + 325: 33 04 00 00 01 ff r4 = 0xffffffffff010000 + 331: 83 44 00 ff i32 r4 = r4 + 0xffffffffffffff00 + 335: ab 42 0a 01 jump 601 if r2 != r4 + : @11 + 339: 33 05 0c r5 = 0xc + 342: 33 08 r8 = 0 + 344: 01 fallthrough + : @12 + 345: 3a 0a 10 00 01 r10 = u64 [0x10010] + 350: 81 ab 04 r11 = i32 [r10 + 0x4] + 353: 64 b3 r3 = r11 + 355: 33 04 00 10 f0 0f r4 = 0xff01000 + 361: 83 44 f0 i32 r4 = r4 + 0xfffffffffffffff0 + 364: ab 43 ed 00 jump 601 if r3 != r4 + : @13 + 368: 95 88 01 r8 = r8 + 0x1 + 371: 33 02 02 r2 = 0x2 + 374: ab 28 e3 jump 345 if r8 != r2 + : @14 + 377: 33 05 0d r5 = 0xd + 380: 33 08 r8 = 0 + 382: 01 fallthrough + : @15 + 383: 3a 0a 18 00 01 r10 = u64 [0x10018] + 388: 81 ab 04 r11 = i32 [r10 + 0x4] + 391: 64 b3 r3 = r11 + 393: 33 04 00 f0 0f f0 r4 = 0xfffffffff00ff000 + 399: 83 44 0f i32 r4 = r4 + 0xf + 402: ab 43 c7 00 jump 601 if r3 != r4 + : @16 + 406: 95 88 01 r8 = r8 + 0x1 + 409: 33 02 02 r2 = 0x2 + 412: ab 28 e3 jump 383 if r8 != r2 + : @17 + 415: 33 05 0e r5 = 0xe + 418: 33 08 r8 = 0 + 420: 01 fallthrough + : @18 + 421: 3a 0a 00 00 01 r10 = u64 [0x10000] + 426: 81 ab 04 r11 = i32 [r10 + 0x4] + 429: 64 b3 r3 = r11 + 431: 33 04 00 00 01 ff r4 = 0xffffffffff010000 + 437: 83 44 00 ff i32 r4 = r4 + 0xffffffffffffff00 + 441: ab 43 a0 00 jump 601 if r3 != r4 + : @19 + 445: 95 88 01 r8 = r8 + 0x1 + 448: 33 02 02 r2 = 0x2 + 451: ab 28 e2 jump 421 if r8 != r2 + : @20 + 454: 33 05 0f r5 = 0xf + 457: 33 08 r8 = 0 + 459: 01 fallthrough + : @21 + 460: 3a 0a 10 00 01 r10 = u64 [0x10010] + 465: 81 ab 04 r11 = i32 [r10 + 0x4] + 468: 33 04 00 10 f0 0f r4 = 0xff01000 + 474: 83 44 f0 i32 r4 = r4 + 0xfffffffffffffff0 + 477: ab 4b 7c jump 601 if r11 != r4 + : @22 + 480: 95 88 01 r8 = r8 + 0x1 + 483: 33 02 02 r2 = 0x2 + 486: ab 28 e6 jump 460 if r8 != r2 + : @23 + 489: 33 05 10 r5 = 0x10 + 492: 33 08 r8 = 0 + 494: 01 fallthrough + : @24 + 495: 3a 0a 18 00 01 r10 = u64 [0x10018] + 500: 81 ab 04 r11 = i32 [r10 + 0x4] + 503: 33 04 00 f0 0f f0 r4 = 0xfffffffff00ff000 + 509: 83 44 0f i32 r4 = r4 + 0xf + 512: ab 4b 59 jump 601 if r11 != r4 + : @25 + 515: 95 88 01 r8 = r8 + 0x1 + 518: 33 02 02 r2 = 0x2 + 521: ab 28 e6 jump 495 if r8 != r2 + : @26 + 524: 33 05 11 r5 = 0x11 + 527: 33 08 r8 = 0 + 529: 01 fallthrough + : @27 + 530: 3a 0a 00 00 01 r10 = u64 [0x10000] + 535: 81 ab 04 r11 = i32 [r10 + 0x4] + 538: 33 04 00 00 01 ff r4 = 0xffffffffff010000 + 544: 83 44 00 ff i32 r4 = r4 + 0xffffffffffffff00 + 548: ab 4b 35 jump 601 if r11 != r4 + : @28 + 551: 95 88 01 r8 = r8 + 0x1 + 554: 33 02 02 r2 = 0x2 + 557: ab 28 e5 jump 530 if r8 != r2 + : @29 + 560: 33 05 12 r5 = 0x12 + 563: 3a 02 00 00 01 r2 = u64 [0x10000] + 568: 81 21 r1 = i32 [r2 + 0] + 570: 33 01 02 r1 = 0x2 + 573: 33 04 02 r4 = 0x2 + 576: ab 41 19 jump 601 if r1 != r4 + : @30 + 579: 33 05 13 r5 = 0x13 + 582: 3a 02 00 00 01 r2 = u64 [0x10000] + 587: 81 21 r1 = i32 [r2 + 0] + 589: 33 01 02 r1 = 0x2 + 592: 33 04 02 r4 = 0x2 + 595: ab 41 06 jump 601 if r1 != r4 + : @31 + 598: 52 05 04 jump 602 if r5 != 0 + : @32 + 601: 00 trap + : @33 + 602: 28 a6 fd jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r1 = 0x2 (initially was 0x0) + * r2 = 0x30000 (initially was 0x0) + * r3 = 0xffffffffff00ff00 (initially was 0x0) + * r4 = 0x2 (initially was 0x0) + * r5 = 0x13 (initially was 0x0) + * r8 = 0x2 (initially was 0x0) + * r10 = 0x30000 (initially was 0x0) + * r11 = 0xffffffffff00ff00 (initially was 0x0) + * r12 = 0xfffffffff00ff00f (initially was 0x0) + +The memory contents after execution should be unchanged. + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9784 + + +## riscv_rv64ui_lwu + +Initial page map: + * RO: 0x10000-0x11000 (0x1000 bytes) + * RW: 0x30000-0x31000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x10002-0x10003 (0x1 bytes) = [0x03] + * 0x10008-0x10009 (0x1 bytes) = [0x0c] + * 0x1000a-0x1000b (0x1 bytes) = [0x03] + * 0x10010-0x10011 (0x1 bytes) = [0x04] + * 0x10012-0x10013 (0x1 bytes) = [0x03] + * 0x10018-0x10019 (0x1 bytes) = [0x08] + * 0x1001a-0x1001b (0x1 bytes) = [0x03] + * 0x30000-0x30001 (0x1 bytes) = [0xff] + * 0x30002-0x30003 (0x1 bytes) = [0xff] + * 0x30005-0x30006 (0x1 bytes) = [0xff] + * 0x30007-0x30010 (0x9 bytes) = [0xff, 0xf0, 0x0f, 0xf0, 0x0f, 0x0f, 0xf0, 0x0f, 0xf0] + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 0c 00 00 ff 00 r12 = 0xff0000 + 22: 83 cc ff 00 i32 r12 = r12 + 0xff + 26: 3a 01 00 00 01 r1 = u64 [0x10000] + 31: 80 1b r11 = u32 [r1 + 0] + 33: 33 04 00 00 ff 00 r4 = 0xff0000 + 39: 83 44 ff 00 i32 r4 = r4 + 0xff + 43: ab 4b 7d 02 jump 680 if r11 != r4 + : @2 + 47: 33 05 03 r5 = 0x3 + 50: 33 0c 00 00 01 r12 = 0x10000 + 55: 83 cc 01 ff i32 r12 = r12 + 0xffffffffffffff01 + 59: 97 cc 10 r12 = r12 << 0x10 + 62: 95 cc 00 ff r12 = r12 + 0xffffffffffffff00 + 66: 3a 01 00 00 01 r1 = u64 [0x10000] + 71: 80 1b 04 r11 = u32 [r1 + 0x4] + 74: 33 04 00 00 01 r4 = 0x10000 + 79: 83 44 01 ff i32 r4 = r4 + 0xffffffffffffff01 + 83: 97 44 10 r4 = r4 << 0x10 + 86: 95 44 00 ff r4 = r4 + 0xffffffffffffff00 + 90: ab 4b 4e 02 jump 680 if r11 != r4 + : @3 + 94: 33 05 04 r5 = 0x4 + 97: 33 0c 00 10 f0 0f r12 = 0xff01000 + 103: 83 cc f0 i32 r12 = r12 + 0xfffffffffffffff0 + 106: 3a 01 00 00 01 r1 = u64 [0x10000] + 111: 80 1b 08 r11 = u32 [r1 + 0x8] + 114: 33 04 00 10 f0 0f r4 = 0xff01000 + 120: 83 44 f0 i32 r4 = r4 + 0xfffffffffffffff0 + 123: ab 4b 2d 02 jump 680 if r11 != r4 + : @4 + 127: 33 05 05 r5 = 0x5 + 130: 33 0c 00 00 0f r12 = 0xf0000 + 135: 83 cc ff 00 i32 r12 = r12 + 0xff + 139: 97 cc 0c r12 = r12 << 0xc + 142: 95 cc 0f r12 = r12 + 0xf + 145: 3a 01 00 00 01 r1 = u64 [0x10000] + 150: 80 1b 0c r11 = u32 [r1 + 0xc] + 153: 33 04 00 00 0f r4 = 0xf0000 + 158: 83 44 ff 00 i32 r4 = r4 + 0xff + 162: 97 44 0c r4 = r4 << 0xc + 165: 95 44 0f r4 = r4 + 0xf + 168: ab 4b 00 02 jump 680 if r11 != r4 + : @5 + 172: 33 05 06 r5 = 0x6 + 175: 33 0c 00 00 ff 00 r12 = 0xff0000 + 181: 83 cc ff 00 i32 r12 = r12 + 0xff + 185: 3a 01 08 00 01 r1 = u64 [0x10008] + 190: 80 1b f4 r11 = u32 [r1 + 0xfffffffffffffff4] + 193: 33 04 00 00 ff 00 r4 = 0xff0000 + 199: 83 44 ff 00 i32 r4 = r4 + 0xff + 203: ab 4b dd 01 jump 680 if r11 != r4 + : @6 + 207: 33 05 07 r5 = 0x7 + 210: 33 0c 00 00 01 r12 = 0x10000 + 215: 83 cc 01 ff i32 r12 = r12 + 0xffffffffffffff01 + 219: 97 cc 10 r12 = r12 << 0x10 + 222: 95 cc 00 ff r12 = r12 + 0xffffffffffffff00 + 226: 3a 01 08 00 01 r1 = u64 [0x10008] + 231: 80 1b f8 r11 = u32 [r1 + 0xfffffffffffffff8] + 234: 33 04 00 00 01 r4 = 0x10000 + 239: 83 44 01 ff i32 r4 = r4 + 0xffffffffffffff01 + 243: 97 44 10 r4 = r4 << 0x10 + 246: 95 44 00 ff r4 = r4 + 0xffffffffffffff00 + 250: ab 4b ae 01 jump 680 if r11 != r4 + : @7 + 254: 33 05 08 r5 = 0x8 + 257: 33 0c 00 10 f0 0f r12 = 0xff01000 + 263: 83 cc f0 i32 r12 = r12 + 0xfffffffffffffff0 + 266: 3a 01 08 00 01 r1 = u64 [0x10008] + 271: 80 1b fc r11 = u32 [r1 + 0xfffffffffffffffc] + 274: 33 04 00 10 f0 0f r4 = 0xff01000 + 280: 83 44 f0 i32 r4 = r4 + 0xfffffffffffffff0 + 283: ab 4b 8d 01 jump 680 if r11 != r4 + : @8 + 287: 33 05 09 r5 = 0x9 + 290: 33 0c 00 00 0f r12 = 0xf0000 + 295: 83 cc ff 00 i32 r12 = r12 + 0xff + 299: 97 cc 0c r12 = r12 << 0xc + 302: 95 cc 0f r12 = r12 + 0xf + 305: 3a 01 08 00 01 r1 = u64 [0x10008] + 310: 80 1b r11 = u32 [r1 + 0] + 312: 33 04 00 00 0f r4 = 0xf0000 + 317: 83 44 ff 00 i32 r4 = r4 + 0xff + 321: 97 44 0c r4 = r4 << 0xc + 324: 95 44 0f r4 = r4 + 0xf + 327: ab 4b 61 01 jump 680 if r11 != r4 + : @9 + 331: 33 05 0a r5 = 0xa + 334: 3a 00 00 00 01 r0 = u64 [0x10000] + 339: 95 00 e0 r0 = r0 + 0xffffffffffffffe0 + 342: 80 02 20 r2 = u32 [r0 + 0x20] + 345: 33 04 00 00 ff 00 r4 = 0xff0000 + 351: 83 44 ff 00 i32 r4 = r4 + 0xff + 355: ab 42 45 01 jump 680 if r2 != r4 + : @10 + 359: 33 05 0b r5 = 0xb + 362: 3a 00 00 00 01 r0 = u64 [0x10000] + 367: 95 00 fd r0 = r0 + 0xfffffffffffffffd + 370: 80 02 07 r2 = u32 [r0 + 0x7] + 373: 33 04 00 00 01 r4 = 0x10000 + 378: 83 44 01 ff i32 r4 = r4 + 0xffffffffffffff01 + 382: 97 44 10 r4 = r4 << 0x10 + 385: 95 44 00 ff r4 = r4 + 0xffffffffffffff00 + 389: ab 42 23 01 jump 680 if r2 != r4 + : @11 + 393: 33 05 0c r5 = 0xc + 396: 33 08 r8 = 0 + 398: 01 fallthrough + : @12 + 399: 3a 0a 10 00 01 r10 = u64 [0x10010] + 404: 80 ab 04 r11 = u32 [r10 + 0x4] + 407: 64 b3 r3 = r11 + 409: 33 04 00 10 f0 0f r4 = 0xff01000 + 415: 83 44 f0 i32 r4 = r4 + 0xfffffffffffffff0 + 418: ab 43 06 01 jump 680 if r3 != r4 + : @13 + 422: 95 88 01 r8 = r8 + 0x1 + 425: 33 02 02 r2 = 0x2 + 428: ab 28 e3 jump 399 if r8 != r2 + : @14 + 431: 33 05 0d r5 = 0xd + 434: 33 08 r8 = 0 + 436: 01 fallthrough + : @15 + 437: 3a 0a 18 00 01 r10 = u64 [0x10018] + 442: 80 ab 04 r11 = u32 [r10 + 0x4] + 445: 64 b3 r3 = r11 + 447: 33 04 00 00 0f r4 = 0xf0000 + 452: 83 44 ff 00 i32 r4 = r4 + 0xff + 456: 97 44 0c r4 = r4 << 0xc + 459: 95 44 0f r4 = r4 + 0xf + 462: ab 43 da 00 jump 680 if r3 != r4 + : @16 + 466: 95 88 01 r8 = r8 + 0x1 + 469: 33 02 02 r2 = 0x2 + 472: ab 28 dd jump 437 if r8 != r2 + : @17 + 475: 33 05 0e r5 = 0xe + 478: 33 08 r8 = 0 + 480: 01 fallthrough + : @18 + 481: 3a 0a 00 00 01 r10 = u64 [0x10000] + 486: 80 ab 04 r11 = u32 [r10 + 0x4] + 489: 64 b3 r3 = r11 + 491: 33 04 00 00 01 r4 = 0x10000 + 496: 83 44 01 ff i32 r4 = r4 + 0xffffffffffffff01 + 500: 97 44 10 r4 = r4 << 0x10 + 503: 95 44 00 ff r4 = r4 + 0xffffffffffffff00 + 507: ab 43 ad 00 jump 680 if r3 != r4 + : @19 + 511: 95 88 01 r8 = r8 + 0x1 + 514: 33 02 02 r2 = 0x2 + 517: ab 28 dc jump 481 if r8 != r2 + : @20 + 520: 33 05 0f r5 = 0xf + 523: 33 08 r8 = 0 + 525: 01 fallthrough + : @21 + 526: 3a 0a 10 00 01 r10 = u64 [0x10010] + 531: 80 ab 04 r11 = u32 [r10 + 0x4] + 534: 33 04 00 10 f0 0f r4 = 0xff01000 + 540: 83 44 f0 i32 r4 = r4 + 0xfffffffffffffff0 + 543: ab 4b 89 00 jump 680 if r11 != r4 + : @22 + 547: 95 88 01 r8 = r8 + 0x1 + 550: 33 02 02 r2 = 0x2 + 553: ab 28 e5 jump 526 if r8 != r2 + : @23 + 556: 33 05 10 r5 = 0x10 + 559: 33 08 r8 = 0 + 561: 01 fallthrough + : @24 + 562: 3a 0a 18 00 01 r10 = u64 [0x10018] + 567: 80 ab 04 r11 = u32 [r10 + 0x4] + 570: 33 04 00 00 0f r4 = 0xf0000 + 575: 83 44 ff 00 i32 r4 = r4 + 0xff + 579: 97 44 0c r4 = r4 << 0xc + 582: 95 44 0f r4 = r4 + 0xf + 585: ab 4b 5f jump 680 if r11 != r4 + : @25 + 588: 95 88 01 r8 = r8 + 0x1 + 591: 33 02 02 r2 = 0x2 + 594: ab 28 e0 jump 562 if r8 != r2 + : @26 + 597: 33 05 11 r5 = 0x11 + 600: 33 08 r8 = 0 + 602: 01 fallthrough + : @27 + 603: 3a 0a 00 00 01 r10 = u64 [0x10000] + 608: 80 ab 04 r11 = u32 [r10 + 0x4] + 611: 33 04 00 00 01 r4 = 0x10000 + 616: 83 44 01 ff i32 r4 = r4 + 0xffffffffffffff01 + 620: 97 44 10 r4 = r4 << 0x10 + 623: 95 44 00 ff r4 = r4 + 0xffffffffffffff00 + 627: ab 4b 35 jump 680 if r11 != r4 + : @28 + 630: 95 88 01 r8 = r8 + 0x1 + 633: 33 02 02 r2 = 0x2 + 636: ab 28 df jump 603 if r8 != r2 + : @29 + 639: 33 05 12 r5 = 0x12 + 642: 3a 02 00 00 01 r2 = u64 [0x10000] + 647: 80 21 r1 = u32 [r2 + 0] + 649: 33 01 02 r1 = 0x2 + 652: 33 04 02 r4 = 0x2 + 655: ab 41 19 jump 680 if r1 != r4 + : @30 + 658: 33 05 13 r5 = 0x13 + 661: 3a 02 00 00 01 r2 = u64 [0x10000] + 666: 80 21 r1 = u32 [r2 + 0] + 668: 33 01 02 r1 = 0x2 + 671: 33 04 02 r4 = 0x2 + 674: ab 41 06 jump 680 if r1 != r4 + : @31 + 677: 52 05 04 jump 681 if r5 != 0 + : @32 + 680: 00 trap + : @33 + 681: 28 57 fd jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r1 = 0x2 (initially was 0x0) + * r2 = 0x30000 (initially was 0x0) + * r3 = 0xff00ff00 (initially was 0x0) + * r4 = 0x2 (initially was 0x0) + * r5 = 0x13 (initially was 0x0) + * r8 = 0x2 (initially was 0x0) + * r10 = 0x30000 (initially was 0x0) + * r11 = 0xff00ff00 (initially was 0x0) + * r12 = 0xf00ff00f (initially was 0x0) + +The memory contents after execution should be unchanged. + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9750 + + +## riscv_rv64ui_ma_data + +Initial page map: + * RO: 0x10000-0x11000 (0x1000 bytes) + * RW: 0x30000-0x31000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x10002-0x10003 (0x1 bytes) = [0x03] + * 0x30001-0x3017f (0x17e bytes) = [0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50] + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 3a 05 00 00 01 r5 = u64 [0x10000] + 18: 33 0c 01 r12 = 0x1 + 21: 33 03 01 02 r3 = 0x201 + 25: 7f 54 01 r4 = i16 [r5 + 0x1] + 28: aa 43 06 jump 34 if r3 == r4 + : @2 + 31: 28 e6 19 jump 6661 + : @3 + 34: 33 0c 02 r12 = 0x2 + 37: 33 03 01 02 r3 = 0x201 + 41: 7e 54 01 r4 = u16 [r5 + 0x1] + 44: aa 43 06 jump 50 if r3 == r4 + : @4 + 47: 28 d6 19 jump 6661 + : @5 + 50: 33 0c 03 r12 = 0x3 + 53: 33 03 00 00 03 04 r3 = 0x4030000 + 59: 83 33 01 02 i32 r3 = r3 + 0x201 + 63: 81 54 01 r4 = i32 [r5 + 0x1] + 66: aa 43 06 jump 72 if r3 == r4 + : @6 + 69: 28 c0 19 jump 6661 + : @7 + 72: 33 0c 04 r12 = 0x4 + 75: 33 03 00 00 04 05 r3 = 0x5040000 + 81: 83 33 02 03 i32 r3 = r3 + 0x302 + 85: 81 54 02 r4 = i32 [r5 + 0x2] + 88: aa 43 06 jump 94 if r3 == r4 + : @8 + 91: 28 aa 19 jump 6661 + : @9 + 94: 33 0c 05 r12 = 0x5 + 97: 33 03 00 00 05 06 r3 = 0x6050000 + 103: 83 33 03 04 i32 r3 = r3 + 0x403 + 107: 81 54 03 r4 = i32 [r5 + 0x3] + 110: aa 43 06 jump 116 if r3 == r4 + : @10 + 113: 28 94 19 jump 6661 + : @11 + 116: 33 0c 06 r12 = 0x6 + 119: 33 03 00 00 03 04 r3 = 0x4030000 + 125: 83 33 01 02 i32 r3 = r3 + 0x201 + 129: 80 54 01 r4 = u32 [r5 + 0x1] + 132: aa 43 06 jump 138 if r3 == r4 + : @12 + 135: 28 7e 19 jump 6661 + : @13 + 138: 33 0c 07 r12 = 0x7 + 141: 33 03 00 00 04 05 r3 = 0x5040000 + 147: 83 33 02 03 i32 r3 = r3 + 0x302 + 151: 80 54 02 r4 = u32 [r5 + 0x2] + 154: aa 43 06 jump 160 if r3 == r4 + : @14 + 157: 28 68 19 jump 6661 + : @15 + 160: 33 0c 08 r12 = 0x8 + 163: 33 03 00 00 05 06 r3 = 0x6050000 + 169: 83 33 03 04 i32 r3 = r3 + 0x403 + 173: 80 54 03 r4 = u32 [r5 + 0x3] + 176: aa 43 06 jump 182 if r3 == r4 + : @16 + 179: 28 52 19 jump 6661 + : @17 + 182: 33 0c 09 r12 = 0x9 + 185: 33 03 00 00 07 08 r3 = 0x8070000 + 191: 83 33 05 06 i32 r3 = r3 + 0x605 + 195: 97 33 10 r3 = r3 << 0x10 + 198: 95 33 03 04 r3 = r3 + 0x403 + 202: 97 33 10 r3 = r3 << 0x10 + 205: 95 33 01 02 r3 = r3 + 0x201 + 209: 82 54 01 r4 = u64 [r5 + 0x1] + 212: aa 43 06 jump 218 if r3 == r4 + : @18 + 215: 28 2e 19 jump 6661 + : @19 + 218: 33 0c 0a r12 = 0xa + 221: 33 03 00 00 84 04 r3 = 0x4840000 + 227: 83 33 83 03 i32 r3 = r3 + 0x383 + 231: 97 33 0f r3 = r3 << 0xf + 234: 95 33 41 01 r3 = r3 + 0x141 + 238: 97 33 12 r3 = r3 << 0x12 + 241: 95 33 02 03 r3 = r3 + 0x302 + 245: 82 54 02 r4 = u64 [r5 + 0x2] + 248: aa 43 06 jump 254 if r3 == r4 + : @20 + 251: 28 0a 19 jump 6661 + : @21 + 254: 33 0c 0b r12 = 0xb + 257: 33 03 00 10 09 0a r3 = 0xa091000 + 263: 83 33 07 f8 i32 r3 = r3 + 0xfffffffffffff807 + 267: 97 33 10 r3 = r3 << 0x10 + 270: 95 33 05 06 r3 = r3 + 0x605 + 274: 97 33 10 r3 = r3 << 0x10 + 277: 95 33 03 04 r3 = r3 + 0x403 + 281: 82 54 03 r4 = u64 [r5 + 0x3] + 284: aa 43 06 jump 290 if r3 == r4 + : @22 + 287: 28 e6 18 jump 6661 + : @23 + 290: 33 0c 0c r12 = 0xc + 293: 33 03 00 40 61 01 r3 = 0x1614000 + 299: 83 33 21 01 i32 r3 = r3 + 0x121 + 303: 97 33 12 r3 = r3 << 0x12 + 306: 95 33 83 03 r3 = r3 + 0x383 + 310: 97 33 11 r3 = r3 << 0x11 + 313: 95 33 04 05 r3 = r3 + 0x504 + 317: 82 54 04 r4 = u64 [r5 + 0x4] + 320: aa 43 06 jump 326 if r3 == r4 + : @24 + 323: 28 c2 18 jump 6661 + : @25 + 326: 33 0c 0d r12 = 0xd + 329: 33 03 00 00 06 r3 = 0x60000 + 334: 83 33 85 05 i32 r3 = r3 + 0x585 + 338: 97 33 0d r3 = r3 << 0xd + 341: 95 33 91 00 r3 = r3 + 0x91 + 345: 97 33 0c r3 = r3 << 0xc + 348: 95 33 07 f8 r3 = r3 + 0xfffffffffffff807 + 352: 97 33 10 r3 = r3 << 0x10 + 355: 95 33 05 06 r3 = r3 + 0x605 + 359: 82 54 05 r4 = u64 [r5 + 0x5] + 362: aa 43 06 jump 368 if r3 == r4 + : @26 + 365: 28 98 18 jump 6661 + : @27 + 368: 33 0c 0e r12 = 0xe + 371: 33 03 00 00 86 06 r3 = 0x6860000 + 377: 83 33 85 05 i32 r3 = r3 + 0x585 + 381: 97 33 0e r3 = r3 << 0xe + 384: 95 33 21 01 r3 = r3 + 0x121 + 388: 97 33 13 r3 = r3 << 0x13 + 391: 95 33 06 07 r3 = r3 + 0x706 + 395: 82 54 06 r4 = u64 [r5 + 0x6] + 398: aa 43 06 jump 404 if r3 == r4 + : @28 + 401: 28 74 18 jump 6661 + : @29 + 404: 33 0c 0f r12 = 0xf + 407: 33 03 00 80 03 r3 = 0x38000 + 412: 83 33 43 03 i32 r3 = r3 + 0x343 + 416: 97 33 11 r3 = r3 << 0x11 + 419: 95 33 85 05 r3 = r3 + 0x585 + 423: 97 33 0d r3 = r3 << 0xd + 426: 95 33 91 00 r3 = r3 + 0x91 + 430: 97 33 0c r3 = r3 << 0xc + 433: 95 33 07 f8 r3 = r3 + 0xfffffffffffff807 + 437: 82 54 07 r4 = u64 [r5 + 0x7] + 440: aa 43 06 jump 446 if r3 == r4 + : @30 + 443: 28 4a 18 jump 6661 + : @31 + 446: 33 0c 10 r12 = 0x10 + 449: 33 03 00 20 r3 = 0x2000 + 453: 83 33 1f i32 r3 = r3 + 0x1f + 456: 7f 54 1f r4 = i16 [r5 + 0x1f] + 459: aa 43 06 jump 465 if r3 == r4 + : @32 + 462: 28 37 18 jump 6661 + : @33 + 465: 33 0c 11 r12 = 0x11 + 468: 33 03 00 20 r3 = 0x2000 + 472: 83 33 1f i32 r3 = r3 + 0x1f + 475: 7e 54 1f r4 = u16 [r5 + 0x1f] + 478: aa 43 06 jump 484 if r3 == r4 + : @34 + 481: 28 24 18 jump 6661 + : @35 + 484: 33 0c 12 r12 = 0x12 + 487: 33 03 00 20 1f 20 r3 = 0x201f2000 + 493: 83 33 1d fe i32 r3 = r3 + 0xfffffffffffffe1d + 497: 81 54 1d r4 = i32 [r5 + 0x1d] + 500: aa 43 06 jump 506 if r3 == r4 + : @36 + 503: 28 0e 18 jump 6661 + : @37 + 506: 33 0c 13 r12 = 0x13 + 509: 33 03 00 20 20 21 r3 = 0x21202000 + 515: 83 33 1e ff i32 r3 = r3 + 0xffffffffffffff1e + 519: 81 54 1e r4 = i32 [r5 + 0x1e] + 522: aa 43 06 jump 528 if r3 == r4 + : @38 + 525: 28 f8 17 jump 6661 + : @39 + 528: 33 0c 14 r12 = 0x14 + 531: 33 03 00 20 21 22 r3 = 0x22212000 + 537: 83 33 1f i32 r3 = r3 + 0x1f + 540: 81 54 1f r4 = i32 [r5 + 0x1f] + 543: aa 43 06 jump 549 if r3 == r4 + : @40 + 546: 28 e3 17 jump 6661 + : @41 + 549: 33 0c 15 r12 = 0x15 + 552: 33 03 00 20 1f 20 r3 = 0x201f2000 + 558: 83 33 1d fe i32 r3 = r3 + 0xfffffffffffffe1d + 562: 80 54 1d r4 = u32 [r5 + 0x1d] + 565: aa 43 06 jump 571 if r3 == r4 + : @42 + 568: 28 cd 17 jump 6661 + : @43 + 571: 33 0c 16 r12 = 0x16 + 574: 33 03 00 20 20 21 r3 = 0x21202000 + 580: 83 33 1e ff i32 r3 = r3 + 0xffffffffffffff1e + 584: 80 54 1e r4 = u32 [r5 + 0x1e] + 587: aa 43 06 jump 593 if r3 == r4 + : @44 + 590: 28 b7 17 jump 6661 + : @45 + 593: 33 0c 17 r12 = 0x17 + 596: 33 03 00 20 21 22 r3 = 0x22212000 + 602: 83 33 1f i32 r3 = r3 + 0x1f + 605: 80 54 1f r4 = u32 [r5 + 0x1f] + 608: aa 43 06 jump 614 if r3 == r4 + : @46 + 611: 28 a2 17 jump 6661 + : @47 + 614: 33 0c 18 r12 = 0x18 + 617: 33 03 00 10 10 r3 = 0x101000 + 622: 83 33 8f i32 r3 = r3 + 0xffffffffffffff8f + 625: 97 33 0f r3 = r3 << 0xf + 628: 95 33 47 07 r3 = r3 + 0x747 + 632: 97 33 0d r3 = r3 << 0xd + 635: 95 33 d9 00 r3 = r3 + 0xd9 + 639: 97 33 0d r3 = r3 << 0xd + 642: 95 33 19 fa r3 = r3 + 0xfffffffffffffa19 + 646: 82 54 19 r4 = u64 [r5 + 0x19] + 649: aa 43 06 jump 655 if r3 == r4 + : @48 + 652: 28 79 17 jump 6661 + : @49 + 655: 33 0c 19 r12 = 0x19 + 658: 33 03 00 00 09 01 r3 = 0x1090000 + 664: 83 33 f9 00 i32 r3 = r3 + 0xf9 + 668: 97 33 0c r3 = r3 << 0xc + 671: 95 33 0f ff r3 = r3 + 0xffffffffffffff0f + 675: 97 33 0c r3 = r3 << 0xc + 678: 95 33 e1 f8 r3 = r3 + 0xfffffffffffff8e1 + 682: 97 33 0d r3 = r3 << 0xd + 685: 95 33 1a fb r3 = r3 + 0xfffffffffffffb1a + 689: 82 54 1a r4 = u64 [r5 + 0x1a] + 692: aa 43 06 jump 698 if r3 == r4 + : @50 + 695: 28 4e 17 jump 6661 + : @51 + 698: 33 0c 1a r12 = 0x1a + 701: 33 03 00 10 11 01 r3 = 0x1111000 + 707: 83 33 01 f9 i32 r3 = r3 + 0xfffffffffffff901 + 711: 97 33 0c r3 = r3 << 0xc + 714: 95 33 8f r3 = r3 + 0xffffffffffffff8f + 717: 97 33 0c r3 = r3 << 0xc + 720: 95 33 e9 00 r3 = r3 + 0xe9 + 724: 97 33 0d r3 = r3 << 0xd + 727: 95 33 1b fc r3 = r3 + 0xfffffffffffffc1b + 731: 82 54 1b r4 = u64 [r5 + 0x1b] + 734: aa 43 06 jump 740 if r3 == r4 + : @52 + 737: 28 24 17 jump 6661 + : @53 + 740: 33 0c 1b r12 = 0x1b + 743: 33 03 00 90 11 r3 = 0x119000 + 748: 83 33 11 01 i32 r3 = r3 + 0x111 + 752: 97 33 0c r3 = r3 << 0xc + 755: 95 33 01 f9 r3 = r3 + 0xfffffffffffff901 + 759: 97 33 10 r3 = r3 << 0x10 + 762: 95 33 f1 f8 r3 = r3 + 0xfffffffffffff8f1 + 766: 97 33 0d r3 = r3 << 0xd + 769: 95 33 1c fd r3 = r3 + 0xfffffffffffffd1c + 773: 82 54 1c r4 = u64 [r5 + 0x1c] + 776: aa 43 06 jump 782 if r3 == r4 + : @54 + 779: 28 fa 16 jump 6661 + : @55 + 782: 33 0c 1c r12 = 0x1c + 785: 33 03 00 10 12 r3 = 0x121000 + 790: 83 33 91 01 i32 r3 = r3 + 0x191 + 794: 97 33 0c r3 = r3 << 0xc + 797: 95 33 09 01 r3 = r3 + 0x109 + 801: 97 33 10 r3 = r3 << 0x10 + 804: 95 33 f9 00 r3 = r3 + 0xf9 + 808: 97 33 0d r3 = r3 << 0xd + 811: 95 33 1d fe r3 = r3 + 0xfffffffffffffe1d + 815: 82 54 1d r4 = u64 [r5 + 0x1d] + 818: aa 43 06 jump 824 if r3 == r4 + : @56 + 821: 28 d0 16 jump 6661 + : @57 + 824: 33 0c 1d r12 = 0x1d + 827: 33 03 00 20 29 01 r3 = 0x1292000 + 833: 83 33 19 01 i32 r3 = r3 + 0x119 + 837: 97 33 0c r3 = r3 << 0xc + 840: 95 33 11 01 r3 = r3 + 0x111 + 844: 97 33 0c r3 = r3 << 0xc + 847: 95 33 01 f9 r3 = r3 + 0xfffffffffffff901 + 851: 97 33 0d r3 = r3 << 0xd + 854: 95 33 1e ff r3 = r3 + 0xffffffffffffff1e + 858: 82 54 1e r4 = u64 [r5 + 0x1e] + 861: aa 43 06 jump 867 if r3 == r4 + : @58 + 864: 28 a5 16 jump 6661 + : @59 + 867: 33 0c 1e r12 = 0x1e + 870: 33 03 00 30 31 01 r3 = 0x1313000 + 876: 83 33 21 f9 i32 r3 = r3 + 0xfffffffffffff921 + 880: 97 33 0c r3 = r3 << 0xc + 883: 95 33 91 01 r3 = r3 + 0x191 + 887: 97 33 0c r3 = r3 << 0xc + 890: 95 33 09 01 r3 = r3 + 0x109 + 894: 97 33 0d r3 = r3 << 0xd + 897: 95 33 1f r3 = r3 + 0x1f + 900: 82 54 1f r4 = u64 [r5 + 0x1f] + 903: aa 43 06 jump 909 if r3 == r4 + : @60 + 906: 28 7b 16 jump 6661 + : @61 + 909: 33 0c 1f r12 = 0x1f + 912: 33 03 00 40 r3 = 0x4000 + 916: 83 33 3f i32 r3 = r3 + 0x3f + 919: 7f 54 3f r4 = i16 [r5 + 0x3f] + 922: aa 43 06 jump 928 if r3 == r4 + : @62 + 925: 28 68 16 jump 6661 + : @63 + 928: 33 0c 20 r12 = 0x20 + 931: 33 03 00 40 r3 = 0x4000 + 935: 83 33 3f i32 r3 = r3 + 0x3f + 938: 7e 54 3f r4 = u16 [r5 + 0x3f] + 941: aa 43 06 jump 947 if r3 == r4 + : @64 + 944: 28 55 16 jump 6661 + : @65 + 947: 33 0c 21 r12 = 0x21 + 950: 33 03 00 40 3f 40 r3 = 0x403f4000 + 956: 83 33 3d fe i32 r3 = r3 + 0xfffffffffffffe3d + 960: 81 54 3d r4 = i32 [r5 + 0x3d] + 963: aa 43 06 jump 969 if r3 == r4 + : @66 + 966: 28 3f 16 jump 6661 + : @67 + 969: 33 0c 22 r12 = 0x22 + 972: 33 03 00 40 40 41 r3 = 0x41404000 + 978: 83 33 3e ff i32 r3 = r3 + 0xffffffffffffff3e + 982: 81 54 3e r4 = i32 [r5 + 0x3e] + 985: aa 43 06 jump 991 if r3 == r4 + : @68 + 988: 28 29 16 jump 6661 + : @69 + 991: 33 0c 23 r12 = 0x23 + 994: 33 03 00 40 41 42 r3 = 0x42414000 + 1000: 83 33 3f i32 r3 = r3 + 0x3f + 1003: 81 54 3f r4 = i32 [r5 + 0x3f] + 1006: aa 43 06 jump 1012 if r3 == r4 + : @70 + 1009: 28 14 16 jump 6661 + : @71 + 1012: 33 0c 24 r12 = 0x24 + 1015: 33 03 00 40 3f 40 r3 = 0x403f4000 + 1021: 83 33 3d fe i32 r3 = r3 + 0xfffffffffffffe3d + 1025: 80 54 3d r4 = u32 [r5 + 0x3d] + 1028: aa 43 06 jump 1034 if r3 == r4 + : @72 + 1031: 28 fe 15 jump 6661 + : @73 + 1034: 33 0c 25 r12 = 0x25 + 1037: 33 03 00 40 40 41 r3 = 0x41404000 + 1043: 83 33 3e ff i32 r3 = r3 + 0xffffffffffffff3e + 1047: 80 54 3e r4 = u32 [r5 + 0x3e] + 1050: aa 43 06 jump 1056 if r3 == r4 + : @74 + 1053: 28 e8 15 jump 6661 + : @75 + 1056: 33 0c 26 r12 = 0x26 + 1059: 33 03 00 40 41 42 r3 = 0x42414000 + 1065: 83 33 3f i32 r3 = r3 + 0x3f + 1068: 80 54 3f r4 = u32 [r5 + 0x3f] + 1071: aa 43 06 jump 1077 if r3 == r4 + : @76 + 1074: 28 d3 15 jump 6661 + : @77 + 1077: 33 0c 27 r12 = 0x27 + 1080: 33 03 00 00 01 01 r3 = 0x1010000 + 1086: 83 33 f9 fc i32 r3 = r3 + 0xfffffffffffffcf9 + 1090: 97 33 0c r3 = r3 << 0xc + 1093: 95 33 4f ff r3 = r3 + 0xffffffffffffff4f + 1097: 97 33 0c r3 = r3 << 0xc + 1100: 95 33 ed 00 r3 = r3 + 0xed + 1104: 97 33 0e r3 = r3 << 0xe + 1107: 95 33 39 fa r3 = r3 + 0xfffffffffffffa39 + 1111: 82 54 39 r4 = u64 [r5 + 0x39] + 1114: aa 43 06 jump 1120 if r3 == r4 + : @78 + 1117: 28 a8 15 jump 6661 + : @79 + 1120: 33 0c 28 r12 = 0x28 + 1123: 33 03 00 00 05 01 r3 = 0x1050000 + 1129: 83 33 fd 00 i32 r3 = r3 + 0xfd + 1133: 97 33 0c r3 = r3 << 0xc + 1136: 95 33 8f r3 = r3 + 0xffffffffffffff8f + 1139: 97 33 0c r3 = r3 << 0xc + 1142: 95 33 f1 04 r3 = r3 + 0x4f1 + 1146: 97 33 0e r3 = r3 << 0xe + 1149: 95 33 3a fb r3 = r3 + 0xfffffffffffffb3a + 1153: 82 54 3a r4 = u64 [r5 + 0x3a] + 1156: aa 43 06 jump 1162 if r3 == r4 + : @80 + 1159: 28 7e 15 jump 6661 + : @81 + 1162: 33 0c 29 r12 = 0x29 + 1165: 33 03 00 10 01 r3 = 0x11000 + 1170: 83 33 05 f9 i32 r3 = r3 + 0xfffffffffffff905 + 1174: 97 33 10 r3 = r3 << 0x10 + 1177: 95 33 fd 00 r3 = r3 + 0xfd + 1181: 97 33 10 r3 = r3 << 0x10 + 1184: 95 33 f5 f8 r3 = r3 + 0xfffffffffffff8f5 + 1188: 97 33 0e r3 = r3 << 0xe + 1191: 95 33 3b fc r3 = r3 + 0xfffffffffffffc3b + 1195: 82 54 3b r4 = u64 [r5 + 0x3b] + 1198: aa 43 06 jump 1204 if r3 == r4 + : @82 + 1201: 28 54 15 jump 6661 + : @83 + 1204: 33 0c 2a r12 = 0x2a + 1207: 33 03 00 10 01 r3 = 0x11000 + 1212: 83 33 09 fd i32 r3 = r3 + 0xfffffffffffffd09 + 1216: 97 33 10 r3 = r3 << 0x10 + 1219: 95 33 01 05 r3 = r3 + 0x501 + 1223: 97 33 10 r3 = r3 << 0x10 + 1226: 95 33 f9 fc r3 = r3 + 0xfffffffffffffcf9 + 1230: 97 33 0e r3 = r3 << 0xe + 1233: 95 33 3c fd r3 = r3 + 0xfffffffffffffd3c + 1237: 82 54 3c r4 = u64 [r5 + 0x3c] + 1240: aa 43 06 jump 1246 if r3 == r4 + : @84 + 1243: 28 2a 15 jump 6661 + : @85 + 1246: 33 0c 2b r12 = 0x2b + 1249: 33 03 00 10 11 r3 = 0x111000 + 1254: 83 33 d1 00 i32 r3 = r3 + 0xd1 + 1258: 97 33 0c r3 = r3 << 0xc + 1261: 95 33 05 f9 r3 = r3 + 0xfffffffffffff905 + 1265: 97 33 10 r3 = r3 << 0x10 + 1268: 95 33 fd 00 r3 = r3 + 0xfd + 1272: 97 33 0e r3 = r3 << 0xe + 1275: 95 33 3d fe r3 = r3 + 0xfffffffffffffe3d + 1279: 82 54 3d r4 = u64 [r5 + 0x3d] + 1282: aa 43 06 jump 1288 if r3 == r4 + : @86 + 1285: 28 00 15 jump 6661 + : @87 + 1288: 33 0c 2c r12 = 0x2c + 1291: 33 03 00 50 11 r3 = 0x115000 + 1296: 83 33 11 01 i32 r3 = r3 + 0x111 + 1300: 97 33 0c r3 = r3 << 0xc + 1303: 95 33 09 fd r3 = r3 + 0xfffffffffffffd09 + 1307: 97 33 10 r3 = r3 << 0x10 + 1310: 95 33 01 05 r3 = r3 + 0x501 + 1314: 97 33 0e r3 = r3 << 0xe + 1317: 95 33 3e ff r3 = r3 + 0xffffffffffffff3e + 1321: 82 54 3e r4 = u64 [r5 + 0x3e] + 1324: aa 43 06 jump 1330 if r3 == r4 + : @88 + 1327: 28 d6 14 jump 6661 + : @89 + 1330: 33 0c 2d r12 = 0x2d + 1333: 33 03 00 10 19 01 r3 = 0x1191000 + 1339: 83 33 11 05 i32 r3 = r3 + 0x511 + 1343: 97 33 0c r3 = r3 << 0xc + 1346: 95 33 d1 00 r3 = r3 + 0xd1 + 1350: 97 33 0c r3 = r3 << 0xc + 1353: 95 33 05 f9 r3 = r3 + 0xfffffffffffff905 + 1357: 97 33 0e r3 = r3 << 0xe + 1360: 95 33 3f r3 = r3 + 0x3f + 1363: 82 54 3f r4 = u64 [r5 + 0x3f] + 1366: aa 43 06 jump 1372 if r3 == r4 + : @90 + 1369: 28 ac 14 jump 6661 + : @91 + 1372: 33 0c 2e r12 = 0x2e + 1375: 33 03 00 80 r3 = 0xffffffffffff8000 + 1379: 83 33 80 01 i32 r3 = r3 + 0x180 + 1383: 79 53 01 u16 [r5 + 0x1] = r3 + 1386: 7f 54 01 r4 = i16 [r5 + 0x1] + 1389: aa 43 06 jump 1395 if r3 == r4 + : @92 + 1392: 28 95 14 jump 6661 + : @93 + 1395: 33 0c 2f r12 = 0x2f + 1398: 33 03 00 80 00 r3 = 0x8000 + 1403: 83 33 82 03 i32 r3 = r3 + 0x382 + 1407: 79 53 01 u16 [r5 + 0x1] = r3 + 1410: 7e 54 01 r4 = u16 [r5 + 0x1] + 1413: aa 43 06 jump 1419 if r3 == r4 + : @94 + 1416: 28 7d 14 jump 6661 + : @95 + 1419: 33 0c 30 r12 = 0x30 + 1422: 33 03 00 80 86 87 r3 = 0xffffffff87868000 + 1428: 83 33 84 05 i32 r3 = r3 + 0x584 + 1432: 7a 53 01 u32 [r5 + 0x1] = r3 + 1435: 81 54 01 r4 = i32 [r5 + 0x1] + 1438: aa 43 06 jump 1444 if r3 == r4 + : @96 + 1441: 28 64 14 jump 6661 + : @97 + 1444: 33 0c 31 r12 = 0x31 + 1447: 33 03 00 90 8a 8b r3 = 0xffffffff8b8a9000 + 1453: 83 33 88 f9 i32 r3 = r3 + 0xfffffffffffff988 + 1457: 7a 53 02 u32 [r5 + 0x2] = r3 + 1460: 81 54 02 r4 = i32 [r5 + 0x2] + 1463: aa 43 06 jump 1469 if r3 == r4 + : @98 + 1466: 28 4b 14 jump 6661 + : @99 + 1469: 33 0c 32 r12 = 0x32 + 1472: 33 03 00 90 8e 8f r3 = 0xffffffff8f8e9000 + 1478: 83 33 8c fd i32 r3 = r3 + 0xfffffffffffffd8c + 1482: 7a 53 03 u32 [r5 + 0x3] = r3 + 1485: 81 54 03 r4 = i32 [r5 + 0x3] + 1488: aa 43 06 jump 1494 if r3 == r4 + : @100 + 1491: 28 32 14 jump 6661 + : @101 + 1494: 33 0c 33 r12 = 0x33 + 1497: 33 03 00 40 09 r3 = 0x94000 + 1502: 83 33 29 f9 i32 r3 = r3 + 0xfffffffffffff929 + 1506: 97 33 0c r3 = r3 << 0xc + 1509: 95 33 90 01 r3 = r3 + 0x190 + 1513: 7a 53 01 u32 [r5 + 0x1] = r3 + 1516: 80 54 01 r4 = u32 [r5 + 0x1] + 1519: aa 43 06 jump 1525 if r3 == r4 + : @102 + 1522: 28 13 14 jump 6661 + : @103 + 1525: 33 0c 34 r12 = 0x34 + 1528: 33 03 00 80 09 r3 = 0x98000 + 1533: 83 33 69 f9 i32 r3 = r3 + 0xfffffffffffff969 + 1537: 97 33 0c r3 = r3 << 0xc + 1540: 95 33 94 05 r3 = r3 + 0x594 + 1544: 7a 53 02 u32 [r5 + 0x2] = r3 + 1547: 80 54 02 r4 = u32 [r5 + 0x2] + 1550: aa 43 06 jump 1556 if r3 == r4 + : @104 + 1553: 28 f4 13 jump 6661 + : @105 + 1556: 33 0c 35 r12 = 0x35 + 1559: 33 03 00 e0 04 r3 = 0x4e000 + 1564: 83 33 d5 fc i32 r3 = r3 + 0xfffffffffffffcd5 + 1568: 97 33 0d r3 = r3 << 0xd + 1571: 95 33 98 f9 r3 = r3 + 0xfffffffffffff998 + 1575: 7a 53 03 u32 [r5 + 0x3] = r3 + 1578: 80 54 03 r4 = u32 [r5 + 0x3] + 1581: aa 43 06 jump 1587 if r3 == r4 + : @106 + 1584: 28 d5 13 jump 6661 + : @107 + 1587: 33 0c 36 r12 = 0x36 + 1590: 33 03 00 d0 d1 r3 = 0xffffffffffd1d000 + 1595: 83 33 51 01 i32 r3 = r3 + 0x151 + 1599: 97 33 0c r3 = r3 << 0xc + 1602: 95 33 05 fd r3 = r3 + 0xfffffffffffffd05 + 1606: 97 33 10 r3 = r3 << 0x10 + 1609: 95 33 f5 fc r3 = r3 + 0xfffffffffffffcf5 + 1613: 97 33 0d r3 = r3 << 0xd + 1616: 95 33 9c fd r3 = r3 + 0xfffffffffffffd9c + 1620: 7b 53 01 u64 [r5 + 0x1] = r3 + 1623: 82 54 01 r4 = u64 [r5 + 0x1] + 1626: aa 43 06 jump 1632 if r3 == r4 + : @108 + 1629: 28 a8 13 jump 6661 + : @109 + 1632: 33 0c 37 r12 = 0x37 + 1635: 33 03 00 50 57 ff r3 = 0xffffffffff575000 + 1641: 83 33 53 05 i32 r3 = r3 + 0x553 + 1645: 97 33 0c r3 = r3 << 0xc + 1648: 95 33 15 05 r3 = r3 + 0x515 + 1652: 97 33 0e r3 = r3 << 0xe + 1655: 95 33 35 fd r3 = r3 + 0xfffffffffffffd35 + 1659: 97 33 0d r3 = r3 << 0xd + 1662: 95 33 a4 05 r3 = r3 + 0x5a4 + 1666: 7b 53 02 u64 [r5 + 0x2] = r3 + 1669: 82 54 02 r4 = u64 [r5 + 0x2] + 1672: aa 43 06 jump 1678 if r3 == r4 + : @110 + 1675: 28 7a 13 jump 6661 + : @111 + 1678: 33 0c 38 r12 = 0x38 + 1681: 33 03 00 e0 d9 r3 = 0xffffffffffd9e000 + 1686: 83 33 59 f9 i32 r3 = r3 + 0xfffffffffffff959 + 1690: 97 33 0d r3 = r3 << 0xd + 1693: 95 33 0b fb r3 = r3 + 0xfffffffffffffb0b + 1697: 97 33 10 r3 = r3 << 0x10 + 1700: 95 33 eb fa r3 = r3 + 0xfffffffffffffaeb + 1704: 97 33 0c r3 = r3 << 0xc + 1707: 95 33 ac fd r3 = r3 + 0xfffffffffffffdac + 1711: 7b 53 03 u64 [r5 + 0x3] = r3 + 1714: 82 54 03 r4 = u64 [r5 + 0x3] + 1717: aa 43 06 jump 1723 if r3 == r4 + : @112 + 1720: 28 4d 13 jump 6661 + : @113 + 1723: 33 0c 39 r12 = 0x39 + 1726: 33 03 00 70 77 ff r3 = 0xffffffffff777000 + 1732: 83 33 73 05 i32 r3 = r3 + 0x573 + 1736: 97 33 0c r3 = r3 << 0xc + 1739: 95 33 17 07 r3 = r3 + 0x717 + 1743: 97 33 0f r3 = r3 << 0xf + 1746: 95 33 6b fb r3 = r3 + 0xfffffffffffffb6b + 1750: 97 33 0c r3 = r3 << 0xc + 1753: 95 33 b4 05 r3 = r3 + 0x5b4 + 1757: 7b 53 04 u64 [r5 + 0x4] = r3 + 1760: 82 54 04 r4 = u64 [r5 + 0x4] + 1763: aa 43 06 jump 1769 if r3 == r4 + : @114 + 1766: 28 1f 13 jump 6661 + : @115 + 1769: 33 0c 3a r12 = 0x3a + 1772: 33 03 00 10 ff r3 = 0xffffffffffff1000 + 1777: 83 33 0b ff i32 r3 = r3 + 0xffffffffffffff0b + 1781: 97 33 10 r3 = r3 << 0x10 + 1784: 95 33 03 07 r3 = r3 + 0x703 + 1788: 97 33 10 r3 = r3 << 0x10 + 1791: 95 33 fb fe r3 = r3 + 0xfffffffffffffefb + 1795: 97 33 0e r3 = r3 << 0xe + 1798: 95 33 bc fd r3 = r3 + 0xfffffffffffffdbc + 1802: 7b 53 05 u64 [r5 + 0x5] = r3 + 1805: 82 54 05 r4 = u64 [r5 + 0x5] + 1808: aa 43 06 jump 1814 if r3 == r4 + : @116 + 1811: 28 f2 12 jump 6661 + : @117 + 1814: 33 0c 3b r12 = 0x3b + 1817: 33 03 00 e0 e5 r3 = 0xffffffffffe5e000 + 1822: 83 33 65 05 i32 r3 = r3 + 0x565 + 1826: 97 33 0e r3 = r3 << 0xe + 1829: 95 33 19 f9 r3 = r3 + 0xfffffffffffff919 + 1833: 97 33 0d r3 = r3 << 0xd + 1836: 95 33 1b ff r3 = r3 + 0xffffffffffffff1b + 1840: 97 33 0e r3 = r3 << 0xe + 1843: 95 33 c4 05 r3 = r3 + 0x5c4 + 1847: 7b 53 06 u64 [r5 + 0x6] = r3 + 1850: 82 54 06 r4 = u64 [r5 + 0x6] + 1853: aa 43 06 jump 1859 if r3 == r4 + : @118 + 1856: 28 c5 12 jump 6661 + : @119 + 1859: 33 0c 3c r12 = 0x3c + 1862: 33 03 00 f0 e9 r3 = 0xffffffffffe9f000 + 1867: 83 33 69 f9 i32 r3 = r3 + 0xfffffffffffff969 + 1871: 97 33 0d r3 = r3 << 0xd + 1874: 95 33 0d fd r3 = r3 + 0xfffffffffffffd0d + 1878: 97 33 10 r3 = r3 << 0x10 + 1881: 95 33 ed fc r3 = r3 + 0xfffffffffffffced + 1885: 97 33 0c r3 = r3 << 0xc + 1888: 95 33 cc fd r3 = r3 + 0xfffffffffffffdcc + 1892: 7b 53 07 u64 [r5 + 0x7] = r3 + 1895: 82 54 07 r4 = u64 [r5 + 0x7] + 1898: aa 43 06 jump 1904 if r3 == r4 + : @120 + 1901: 28 98 12 jump 6661 + : @121 + 1904: 33 0c 3d r12 = 0x3d + 1907: 33 03 00 d0 r3 = 0xffffffffffffd000 + 1911: 83 33 d4 05 i32 r3 = r3 + 0x5d4 + 1915: 79 53 1f u16 [r5 + 0x1f] = r3 + 1918: 7f 54 1f r4 = i16 [r5 + 0x1f] + 1921: aa 43 06 jump 1927 if r3 == r4 + : @122 + 1924: 28 81 12 jump 6661 + : @123 + 1927: 33 0c 3e r12 = 0x3e + 1930: 33 03 00 d0 00 r3 = 0xd000 + 1935: 83 33 d6 07 i32 r3 = r3 + 0x7d6 + 1939: 79 53 1f u16 [r5 + 0x1f] = r3 + 1942: 7e 54 1f r4 = u16 [r5 + 0x1f] + 1945: aa 43 06 jump 1951 if r3 == r4 + : @124 + 1948: 28 69 12 jump 6661 + : @125 + 1951: 33 0c 3f r12 = 0x3f + 1954: 33 03 00 e0 da db r3 = 0xffffffffdbdae000 + 1960: 83 33 d8 f9 i32 r3 = r3 + 0xfffffffffffff9d8 + 1964: 7a 53 1d u32 [r5 + 0x1d] = r3 + 1967: 81 54 1d r4 = i32 [r5 + 0x1d] + 1970: aa 43 06 jump 1976 if r3 == r4 + : @126 + 1973: 28 50 12 jump 6661 + : @127 + 1976: 33 0c 40 r12 = 0x40 + 1979: 33 03 00 e0 de df r3 = 0xffffffffdfdee000 + 1985: 83 33 dc fd i32 r3 = r3 + 0xfffffffffffffddc + 1989: 7a 53 1e u32 [r5 + 0x1e] = r3 + 1992: 81 54 1e r4 = i32 [r5 + 0x1e] + 1995: aa 43 06 jump 2001 if r3 == r4 + : @128 + 1998: 28 37 12 jump 6661 + : @129 + 2001: 33 0c 41 r12 = 0x41 + 2004: 33 03 00 e0 e2 e3 r3 = 0xffffffffe3e2e000 + 2010: 83 33 e0 01 i32 r3 = r3 + 0x1e0 + 2014: 7a 53 1f u32 [r5 + 0x1f] = r3 + 2017: 81 54 1f r4 = i32 [r5 + 0x1f] + 2020: aa 43 06 jump 2026 if r3 == r4 + : @130 + 2023: 28 1e 12 jump 6661 + : @131 + 2026: 33 0c 42 r12 = 0x42 + 2029: 33 03 00 40 07 r3 = 0x74000 + 2034: 83 33 37 ff i32 r3 = r3 + 0xffffffffffffff37 + 2038: 97 33 0d r3 = r3 << 0xd + 2041: 95 33 e4 05 r3 = r3 + 0x5e4 + 2045: 7a 53 1d u32 [r5 + 0x1d] = r3 + 2048: 80 54 1d r4 = u32 [r5 + 0x1d] + 2051: aa 43 06 jump 2057 if r3 == r4 + : @132 + 2054: 28 ff 11 jump 6661 + : @133 + 2057: 33 0c 43 r12 = 0x43 + 2060: 33 03 00 c0 0e r3 = 0xec000 + 2065: 83 33 af fe i32 r3 = r3 + 0xfffffffffffffeaf + 2069: 97 33 0c r3 = r3 << 0xc + 2072: 95 33 e8 f9 r3 = r3 + 0xfffffffffffff9e8 + 2076: 7a 53 1e u32 [r5 + 0x1e] = r3 + 2079: 80 54 1e r4 = u32 [r5 + 0x1e] + 2082: aa 43 06 jump 2088 if r3 == r4 + : @134 + 2085: 28 e0 11 jump 6661 + : @135 + 2088: 33 0c 44 r12 = 0x44 + 2091: 33 03 00 00 0f r3 = 0xf0000 + 2096: 83 33 ef fe i32 r3 = r3 + 0xfffffffffffffeef + 2100: 97 33 0c r3 = r3 << 0xc + 2103: 95 33 ec fd r3 = r3 + 0xfffffffffffffdec + 2107: 7a 53 1f u32 [r5 + 0x1f] = r3 + 2110: 80 54 1f r4 = u32 [r5 + 0x1f] + 2113: aa 43 06 jump 2119 if r3 == r4 + : @136 + 2116: 28 c1 11 jump 6661 + : @137 + 2119: 33 0c 45 r12 = 0x45 + 2122: 33 03 00 00 fc r3 = 0xfffffffffffc0000 + 2127: 83 33 7b fb i32 r3 = r3 + 0xfffffffffffffb7b + 2131: 97 33 0f r3 = r3 << 0xf + 2134: 95 33 3d fd r3 = r3 + 0xfffffffffffffd3d + 2138: 97 33 0e r3 = r3 << 0xe + 2141: 95 33 2f ff r3 = r3 + 0xffffffffffffff2f + 2145: 97 33 0c r3 = r3 << 0xc + 2148: 95 33 f0 01 r3 = r3 + 0x1f0 + 2152: 7b 53 19 u64 [r5 + 0x19] = r3 + 2155: 82 54 19 r4 = u64 [r5 + 0x19] + 2158: aa 43 06 jump 2164 if r3 == r4 + : @138 + 2161: 28 94 11 jump 6661 + : @139 + 2164: 33 0c 46 r12 = 0x46 + 2167: 33 03 00 00 ff r3 = 0xffffffffffff0000 + 2172: 83 33 fd fd i32 r3 = r3 + 0xfffffffffffffdfd + 2176: 97 33 10 r3 = r3 << 0x10 + 2179: 95 33 fb fb r3 = r3 + 0xfffffffffffffbfb + 2183: 97 33 10 r3 = r3 << 0x10 + 2186: 95 33 f8 f9 r3 = r3 + 0xfffffffffffff9f8 + 2190: 7b 53 1a u64 [r5 + 0x1a] = r3 + 2193: 82 54 1a r4 = u64 [r5 + 0x1a] + 2196: aa 43 06 jump 2202 if r3 == r4 + : @140 + 2199: 28 6e 11 jump 6661 + : @141 + 2202: 33 0c 47 r12 = 0x47 + 2205: 33 03 00 80 c1 01 r3 = 0x1c18000 + 2211: 83 33 41 01 i32 r3 = r3 + 0x141 + 2215: 97 33 11 r3 = r3 << 0x11 + 2218: 95 33 81 01 r3 = r3 + 0x181 + 2222: 97 33 11 r3 = r3 << 0x11 + 2225: 95 33 00 01 r3 = r3 + 0x100 + 2229: 7b 53 1b u64 [r5 + 0x1b] = r3 + 2232: 82 54 1b r4 = u64 [r5 + 0x1b] + 2235: aa 43 06 jump 2241 if r3 == r4 + : @142 + 2238: 28 47 11 jump 6661 + : @143 + 2241: 33 0c 48 r12 = 0x48 + 2244: 33 03 00 e0 f0 00 r3 = 0xf0e000 + 2250: 83 33 d1 00 i32 r3 = r3 + 0xd1 + 2254: 97 33 0c r3 = r3 << 0xc + 2257: 95 33 0b fc r3 = r3 + 0xfffffffffffffc0b + 2261: 97 33 0c r3 = r3 << 0xc + 2264: 95 33 a1 00 r3 = r3 + 0xa1 + 2268: 97 33 0c r3 = r3 << 0xc + 2271: 95 33 08 f9 r3 = r3 + 0xfffffffffffff908 + 2275: 7b 53 1c u64 [r5 + 0x1c] = r3 + 2278: 82 54 1c r4 = u64 [r5 + 0x1c] + 2281: aa 43 06 jump 2287 if r3 == r4 + : @144 + 2284: 28 19 11 jump 6661 + : @145 + 2287: 33 0c 49 r12 = 0x49 + 2290: 33 03 00 60 71 01 r3 = 0x1716000 + 2296: 83 33 51 01 i32 r3 = r3 + 0x151 + 2300: 97 33 0c r3 = r3 << 0xc + 2303: 95 33 13 04 r3 = r3 + 0x413 + 2307: 97 33 0c r3 = r3 << 0xc + 2310: 95 33 21 01 r3 = r3 + 0x121 + 2314: 97 33 0c r3 = r3 << 0xc + 2317: 95 33 10 01 r3 = r3 + 0x110 + 2321: 7b 53 1d u64 [r5 + 0x1d] = r3 + 2324: 82 54 1d r4 = u64 [r5 + 0x1d] + 2327: aa 43 06 jump 2333 if r3 == r4 + : @146 + 2330: 28 eb 10 jump 6661 + : @147 + 2333: 33 0c 4a r12 = 0x4a + 2336: 33 03 00 20 1f r3 = 0x1f2000 + 2341: 83 33 1d fe i32 r3 = r3 + 0xfffffffffffffe1d + 2345: 97 33 0e r3 = r3 << 0xe + 2348: 95 33 07 07 r3 = r3 + 0x707 + 2352: 97 33 0d r3 = r3 << 0xd + 2355: 95 33 d1 f8 r3 = r3 + 0xfffffffffffff8d1 + 2359: 97 33 0d r3 = r3 << 0xd + 2362: 95 33 18 f9 r3 = r3 + 0xfffffffffffff918 + 2366: 7b 53 1e u64 [r5 + 0x1e] = r3 + 2369: 82 54 1e r4 = u64 [r5 + 0x1e] + 2372: aa 43 06 jump 2378 if r3 == r4 + : @148 + 2375: 28 be 10 jump 6661 + : @149 + 2378: 33 0c 4b r12 = 0x4b + 2381: 33 03 00 a0 9c 00 r3 = 0x9ca000 + 2387: 83 33 95 f8 i32 r3 = r3 + 0xfffffffffffff895 + 2391: 97 33 0c r3 = r3 << 0xc + 2394: 95 33 09 f9 r3 = r3 + 0xfffffffffffff909 + 2398: 97 33 0d r3 = r3 << 0xd + 2401: 95 33 11 f9 r3 = r3 + 0xfffffffffffff911 + 2405: 97 33 0d r3 = r3 << 0xd + 2408: 95 33 20 01 r3 = r3 + 0x120 + 2412: 7b 53 1f u64 [r5 + 0x1f] = r3 + 2415: 82 54 1f r4 = u64 [r5 + 0x1f] + 2418: aa 43 06 jump 2424 if r3 == r4 + : @150 + 2421: 28 90 10 jump 6661 + : @151 + 2424: 33 0c 4c r12 = 0x4c + 2427: 33 03 00 30 r3 = 0x3000 + 2431: 83 33 34 05 i32 r3 = r3 + 0x534 + 2435: 79 53 3f u16 [r5 + 0x3f] = r3 + 2438: 7f 54 3f r4 = i16 [r5 + 0x3f] + 2441: aa 43 06 jump 2447 if r3 == r4 + : @152 + 2444: 28 79 10 jump 6661 + : @153 + 2447: 33 0c 4d r12 = 0x4d + 2450: 33 03 00 30 r3 = 0x3000 + 2454: 83 33 36 07 i32 r3 = r3 + 0x736 + 2458: 79 53 3f u16 [r5 + 0x3f] = r3 + 2461: 7e 54 3f r4 = u16 [r5 + 0x3f] + 2464: aa 43 06 jump 2470 if r3 == r4 + : @154 + 2467: 28 62 10 jump 6661 + : @155 + 2470: 33 0c 4e r12 = 0x4e + 2473: 33 03 00 40 3a 3b r3 = 0x3b3a4000 + 2479: 83 33 38 f9 i32 r3 = r3 + 0xfffffffffffff938 + 2483: 7a 53 3d u32 [r5 + 0x3d] = r3 + 2486: 81 54 3d r4 = i32 [r5 + 0x3d] + 2489: aa 43 06 jump 2495 if r3 == r4 + : @156 + 2492: 28 49 10 jump 6661 + : @157 + 2495: 33 0c 4f r12 = 0x4f + 2498: 33 03 00 40 3e 3f r3 = 0x3f3e4000 + 2504: 83 33 3c fd i32 r3 = r3 + 0xfffffffffffffd3c + 2508: 7a 53 3e u32 [r5 + 0x3e] = r3 + 2511: 81 54 3e r4 = i32 [r5 + 0x3e] + 2514: aa 43 06 jump 2520 if r3 == r4 + : @158 + 2517: 28 30 10 jump 6661 + : @159 + 2520: 33 0c 50 r12 = 0x50 + 2523: 33 03 00 40 42 43 r3 = 0x43424000 + 2529: 83 33 40 01 i32 r3 = r3 + 0x140 + 2533: 7a 53 3f u32 [r5 + 0x3f] = r3 + 2536: 81 54 3f r4 = i32 [r5 + 0x3f] + 2539: aa 43 06 jump 2545 if r3 == r4 + : @160 + 2542: 28 17 10 jump 6661 + : @161 + 2545: 33 0c 51 r12 = 0x51 + 2548: 33 03 00 40 46 47 r3 = 0x47464000 + 2554: 83 33 44 05 i32 r3 = r3 + 0x544 + 2558: 7a 53 3d u32 [r5 + 0x3d] = r3 + 2561: 80 54 3d r4 = u32 [r5 + 0x3d] + 2564: aa 43 06 jump 2570 if r3 == r4 + : @162 + 2567: 28 fe 0f jump 6661 + : @163 + 2570: 33 0c 52 r12 = 0x52 + 2573: 33 03 00 50 4a 4b r3 = 0x4b4a5000 + 2579: 83 33 48 f9 i32 r3 = r3 + 0xfffffffffffff948 + 2583: 7a 53 3e u32 [r5 + 0x3e] = r3 + 2586: 80 54 3e r4 = u32 [r5 + 0x3e] + 2589: aa 43 06 jump 2595 if r3 == r4 + : @164 + 2592: 28 e5 0f jump 6661 + : @165 + 2595: 33 0c 53 r12 = 0x53 + 2598: 33 03 00 50 4e 4f r3 = 0x4f4e5000 + 2604: 83 33 4c fd i32 r3 = r3 + 0xfffffffffffffd4c + 2608: 7a 53 3f u32 [r5 + 0x3f] = r3 + 2611: 80 54 3f r4 = u32 [r5 + 0x3f] + 2614: aa 43 06 jump 2620 if r3 == r4 + : @166 + 2617: 28 cc 0f jump 6661 + : @167 + 2620: 33 0c 54 r12 = 0x54 + 2623: 33 03 00 60 75 05 r3 = 0x5756000 + 2629: 83 33 55 05 i32 r3 = r3 + 0x555 + 2633: 97 33 0c r3 = r3 << 0xc + 2636: 95 33 53 04 r3 = r3 + 0x453 + 2640: 97 33 0c r3 = r3 << 0xc + 2643: 95 33 25 05 r3 = r3 + 0x525 + 2647: 97 33 0c r3 = r3 << 0xc + 2650: 95 33 50 01 r3 = r3 + 0x150 + 2654: 7b 53 39 u64 [r5 + 0x39] = r3 + 2657: 82 54 39 r4 = u64 [r5 + 0x39] + 2660: aa 43 06 jump 2666 if r3 == r4 + : @168 + 2663: 28 9e 0f jump 6661 + : @169 + 2666: 33 0c 55 r12 = 0x55 + 2669: 33 03 00 80 7d 01 r3 = 0x17d8000 + 2675: 83 33 75 f9 i32 r3 = r3 + 0xfffffffffffff975 + 2679: 97 33 0c r3 = r3 << 0xc + 2682: 95 33 17 07 r3 = r3 + 0x717 + 2686: 97 33 0d r3 = r3 << 0xd + 2689: 95 33 d3 fa r3 = r3 + 0xfffffffffffffad3 + 2693: 97 33 0d r3 = r3 << 0xd + 2696: 95 33 58 f9 r3 = r3 + 0xfffffffffffff958 + 2700: 7b 53 3a u64 [r5 + 0x3a] = r3 + 2703: 82 54 3a r4 = u64 [r5 + 0x3a] + 2706: aa 43 06 jump 2712 if r3 == r4 + : @170 + 2709: 28 70 0f jump 6661 + : @171 + 2712: 33 0c 56 r12 = 0x56 + 2715: 33 03 00 d0 ce 00 r3 = 0xced000 + 2721: 83 33 cb fc i32 r3 = r3 + 0xfffffffffffffccb + 2725: 97 33 0d r3 = r3 << 0xd + 2728: 95 33 19 f9 r3 = r3 + 0xfffffffffffff919 + 2732: 97 33 0d r3 = r3 << 0xd + 2735: 95 33 13 fb r3 = r3 + 0xfffffffffffffb13 + 2739: 97 33 0d r3 = r3 << 0xd + 2742: 95 33 60 01 r3 = r3 + 0x160 + 2746: 7b 53 3b u64 [r5 + 0x3b] = r3 + 2749: 82 54 3b r4 = u64 [r5 + 0x3b] + 2752: aa 43 06 jump 2758 if r3 == r4 + : @172 + 2755: 28 42 0f jump 6661 + : @173 + 2758: 33 0c 57 r12 = 0x57 + 2761: 33 03 00 e0 f6 06 r3 = 0x6f6e000 + 2767: 83 33 d7 06 i32 r3 = r3 + 0x6d7 + 2771: 97 33 0c r3 = r3 << 0xc + 2774: 95 33 6b fc r3 = r3 + 0xfffffffffffffc6b + 2778: 97 33 0c r3 = r3 << 0xc + 2781: 95 33 a7 06 r3 = r3 + 0x6a7 + 2785: 97 33 0c r3 = r3 << 0xc + 2788: 95 33 68 f9 r3 = r3 + 0xfffffffffffff968 + 2792: 7b 53 3c u64 [r5 + 0x3c] = r3 + 2795: 82 54 3c r4 = u64 [r5 + 0x3c] + 2798: aa 43 06 jump 2804 if r3 == r4 + : @174 + 2801: 28 14 0f jump 6661 + : @175 + 2804: 33 0c 58 r12 = 0x58 + 2807: 33 03 00 60 77 07 r3 = 0x7776000 + 2813: 83 33 57 07 i32 r3 = r3 + 0x757 + 2817: 97 33 0c r3 = r3 << 0xc + 2820: 95 33 73 04 r3 = r3 + 0x473 + 2824: 97 33 0c r3 = r3 << 0xc + 2827: 95 33 27 07 r3 = r3 + 0x727 + 2831: 97 33 0c r3 = r3 << 0xc + 2834: 95 33 70 01 r3 = r3 + 0x170 + 2838: 7b 53 3d u64 [r5 + 0x3d] = r3 + 2841: 82 54 3d r4 = u64 [r5 + 0x3d] + 2844: ab 43 e9 0e jump 6661 if r3 != r4 + : @176 + 2848: 33 0c 59 r12 = 0x59 + 2851: 33 03 00 00 ff 00 r3 = 0xff0000 + 2857: 83 33 fb fc i32 r3 = r3 + 0xfffffffffffffcfb + 2861: 97 33 0c r3 = r3 << 0xc + 2864: 95 33 8f r3 = r3 + 0xffffffffffffff8f + 2867: 97 33 0c r3 = r3 << 0xc + 2870: 95 33 f5 06 r3 = r3 + 0x6f5 + 2874: 97 33 0f r3 = r3 << 0xf + 2877: 95 33 78 f9 r3 = r3 + 0xfffffffffffff978 + 2881: 7b 53 3e u64 [r5 + 0x3e] = r3 + 2884: 82 54 3e r4 = u64 [r5 + 0x3e] + 2887: ab 43 be 0e jump 6661 if r3 != r4 + : @177 + 2891: 33 0c 5a r12 = 0x5a + 2894: 33 03 00 f0 f0 r3 = 0xfffffffffff0f000 + 2899: 83 33 d1 00 i32 r3 = r3 + 0xd1 + 2903: 97 33 0c r3 = r3 << 0xc + 2906: 95 33 09 fb r3 = r3 + 0xfffffffffffffb09 + 2910: 97 33 10 r3 = r3 << 0x10 + 2913: 95 33 05 07 r3 = r3 + 0x705 + 2917: 97 33 0f r3 = r3 << 0xf + 2920: 95 33 80 01 r3 = r3 + 0x180 + 2924: 7b 53 3f u64 [r5 + 0x3f] = r3 + 2927: 82 54 3f r4 = u64 [r5 + 0x3f] + 2930: ab 43 93 0e jump 6661 if r3 != r4 + : @178 + 2934: 33 0c 5b r12 = 0x5b + 2937: 33 03 00 a0 00 r3 = 0xa000 + 2942: 83 33 98 f9 i32 r3 = r3 + 0xfffffffffffff998 + 2946: 33 04 98 r4 = 0xffffffffffffff98 + 2949: 79 53 01 u16 [r5 + 0x1] = r3 + 2952: 7d 5a 01 r10 = i8 [r5 + 0x1] + 2955: ab a4 7a 0e jump 6661 if r4 != r10 + : @179 + 2959: 33 0c 5c r12 = 0x5c + 2962: 33 03 00 a0 00 r3 = 0xa000 + 2967: 83 33 9a fb i32 r3 = r3 + 0xfffffffffffffb9a + 2971: 33 04 9b r4 = 0xffffffffffffff9b + 2974: 79 53 01 u16 [r5 + 0x1] = r3 + 2977: 7d 5a 02 r10 = i8 [r5 + 0x2] + 2980: ab a4 61 0e jump 6661 if r4 != r10 + : @180 + 2984: 33 0c 5d r12 = 0x5d + 2987: 33 03 00 a0 00 r3 = 0xa000 + 2992: 83 33 9c fd i32 r3 = r3 + 0xfffffffffffffd9c + 2996: 33 04 9c 00 r4 = 0x9c + 3000: 79 53 01 u16 [r5 + 0x1] = r3 + 3003: 7c 5a 01 r10 = u8 [r5 + 0x1] + 3006: ab a4 47 0e jump 6661 if r4 != r10 + : @181 + 3010: 33 0c 5e r12 = 0x5e + 3013: 33 03 00 a0 00 r3 = 0xa000 + 3018: 83 33 9e i32 r3 = r3 + 0xffffffffffffff9e + 3021: 33 04 9f 00 r4 = 0x9f + 3025: 79 53 01 u16 [r5 + 0x1] = r3 + 3028: 7c 5a 02 r10 = u8 [r5 + 0x2] + 3031: ab a4 2e 0e jump 6661 if r4 != r10 + : @182 + 3035: 33 0c 5f r12 = 0x5f + 3038: 33 03 00 20 05 r3 = 0x52000 + 3043: 83 33 15 fd i32 r3 = r3 + 0xfffffffffffffd15 + 3047: 97 33 0d r3 = r3 << 0xd + 3050: 95 33 a0 01 r3 = r3 + 0x1a0 + 3054: 33 04 a0 r4 = 0xffffffffffffffa0 + 3057: 7a 53 01 u32 [r5 + 0x1] = r3 + 3060: 7d 5a 01 r10 = i8 [r5 + 0x1] + 3063: ab a4 0e 0e jump 6661 if r4 != r10 + : @183 + 3067: 33 0c 60 r12 = 0x60 + 3070: 33 03 00 40 05 r3 = 0x54000 + 3075: 83 33 35 fd i32 r3 = r3 + 0xfffffffffffffd35 + 3079: 97 33 0d r3 = r3 << 0xd + 3082: 95 33 a4 05 r3 = r3 + 0x5a4 + 3086: 33 04 a5 00 r4 = 0xa5 + 3090: 7a 53 02 u32 [r5 + 0x2] = r3 + 3093: 7c 5a 03 r10 = u8 [r5 + 0x3] + 3096: ab a4 ed 0d jump 6661 if r4 != r10 + : @184 + 3100: 33 0c 61 r12 = 0x61 + 3103: 33 03 00 c0 0a r3 = 0xac000 + 3108: 83 33 ab fa i32 r3 = r3 + 0xfffffffffffffaab + 3112: 97 33 0c r3 = r3 << 0xc + 3115: 95 33 a8 f9 r3 = r3 + 0xfffffffffffff9a8 + 3119: 33 04 00 b0 r4 = 0xffffffffffffb000 + 3123: 83 44 a9 fa i32 r4 = r4 + 0xfffffffffffffaa9 + 3127: 7a 53 03 u32 [r5 + 0x3] = r3 + 3130: 7f 5a 04 r10 = i16 [r5 + 0x4] + 3133: ab a4 c8 0d jump 6661 if r4 != r10 + : @185 + 3137: 33 0c 62 r12 = 0x62 + 3140: 33 03 00 00 0b r3 = 0xb0000 + 3145: 83 33 eb fa i32 r3 = r3 + 0xfffffffffffffaeb + 3149: 97 33 0c r3 = r3 << 0xc + 3152: 95 33 ac fd r3 = r3 + 0xfffffffffffffdac + 3156: 33 04 00 b0 00 r4 = 0xb000 + 3161: 83 44 ae i32 r4 = r4 + 0xffffffffffffffae + 3164: 7a 53 03 u32 [r5 + 0x3] = r3 + 3167: 7e 5a 05 r10 = u16 [r5 + 0x5] + 3170: ab a4 a3 0d jump 6661 if r4 != r10 + : @186 + 3174: 33 0c 63 r12 = 0x63 + 3177: 33 03 00 e0 de fe r3 = 0xfffffffffedee000 + 3183: 83 33 d7 fa i32 r3 = r3 + 0xfffffffffffffad7 + 3187: 97 33 0c r3 = r3 << 0xc + 3190: 95 33 2d fd r3 = r3 + 0xfffffffffffffd2d + 3194: 97 33 0e r3 = r3 << 0xe + 3197: 95 33 2b fb r3 = r3 + 0xfffffffffffffb2b + 3201: 97 33 0c r3 = r3 << 0xc + 3204: 95 33 b0 01 r3 = r3 + 0x1b0 + 3208: 33 04 b6 r4 = 0xffffffffffffffb6 + 3211: 7b 53 01 u64 [r5 + 0x1] = r3 + 3214: 7d 5a 07 r10 = i8 [r5 + 0x7] + 3217: ab a4 74 0d jump 6661 if r4 != r10 + : @187 + 3221: 33 0c 64 r12 = 0x64 + 3224: 33 03 00 00 ff fe r3 = 0xfffffffffeff0000 + 3230: 83 33 f7 fa i32 r3 = r3 + 0xfffffffffffffaf7 + 3234: 97 33 0c r3 = r3 << 0xc + 3237: 95 33 2f ff r3 = r3 + 0xffffffffffffff2f + 3241: 97 33 0c r3 = r3 << 0xc + 3244: 95 33 eb fe r3 = r3 + 0xfffffffffffffeeb + 3248: 97 33 0e r3 = r3 << 0xe + 3251: 95 33 b8 f9 r3 = r3 + 0xfffffffffffff9b8 + 3255: 33 04 b9 00 r4 = 0xb9 + 3259: 7b 53 02 u64 [r5 + 0x2] = r3 + 3262: 7c 5a 03 r10 = u8 [r5 + 0x3] + 3265: ab a4 44 0d jump 6661 if r4 != r10 + : @188 + 3269: 33 0c 65 r12 = 0x65 + 3272: 33 03 00 20 1f ff r3 = 0xffffffffff1f2000 + 3278: 83 33 17 fb i32 r3 = r3 + 0xfffffffffffffb17 + 3282: 97 33 0c r3 = r3 << 0xc + 3285: 95 33 31 01 r3 = r3 + 0x131 + 3289: 97 33 0c r3 = r3 << 0xc + 3292: 95 33 0b ff r3 = r3 + 0xffffffffffffff0b + 3296: 97 33 0e r3 = r3 << 0xe + 3299: 95 33 c0 01 r3 = r3 + 0x1c0 + 3303: 33 04 00 c0 r4 = 0xffffffffffffc000 + 3307: 83 44 c6 07 i32 r4 = r4 + 0x7c6 + 3311: 7b 53 03 u64 [r5 + 0x3] = r3 + 3314: 7f 5a 09 r10 = i16 [r5 + 0x9] + 3317: ab a4 10 0d jump 6661 if r4 != r10 + : @189 + 3321: 33 0c 66 r12 = 0x66 + 3324: 33 03 00 40 3f ff r3 = 0xffffffffff3f4000 + 3330: 83 33 37 fb i32 r3 = r3 + 0xfffffffffffffb37 + 3334: 97 33 0c r3 = r3 << 0xc + 3337: 95 33 33 03 r3 = r3 + 0x333 + 3341: 97 33 0e r3 = r3 << 0xe + 3344: 95 33 ad fc r3 = r3 + 0xfffffffffffffcad + 3348: 97 33 0c r3 = r3 << 0xc + 3351: 95 33 c8 f9 r3 = r3 + 0xfffffffffffff9c8 + 3355: 33 04 00 d0 00 r4 = 0xd000 + 3360: 83 44 c9 fa i32 r4 = r4 + 0xfffffffffffffac9 + 3364: 7b 53 04 u64 [r5 + 0x4] = r3 + 3367: 7e 5a 05 r10 = u16 [r5 + 0x5] + 3370: ab a4 db 0c jump 6661 if r4 != r10 + : @190 + 3374: 33 0c 67 r12 = 0x67 + 3377: 33 03 00 60 5f ff r3 = 0xffffffffff5f6000 + 3383: 83 33 57 fb i32 r3 = r3 + 0xfffffffffffffb57 + 3387: 97 33 0c r3 = r3 << 0xc + 3390: 95 33 35 05 r3 = r3 + 0x535 + 3394: 97 33 0e r3 = r3 << 0xe + 3397: 95 33 2d fd r3 = r3 + 0xfffffffffffffd2d + 3401: 97 33 0c r3 = r3 << 0xc + 3404: 95 33 d0 01 r3 = r3 + 0x1d0 + 3408: 33 04 00 d0 d6 d7 r4 = 0xffffffffd7d6d000 + 3414: 83 44 d4 05 i32 r4 = r4 + 0x5d4 + 3418: 7b 53 05 u64 [r5 + 0x5] = r3 + 3421: 81 5a 09 r10 = i32 [r5 + 0x9] + 3424: ab a4 a5 0c jump 6661 if r4 != r10 + : @191 + 3428: 33 0c 68 r12 = 0x68 + 3431: 33 03 00 80 7f ff r3 = 0xffffffffff7f8000 + 3437: 83 33 77 fb i32 r3 = r3 + 0xfffffffffffffb77 + 3441: 97 33 0c r3 = r3 << 0xc + 3444: 95 33 37 07 r3 = r3 + 0x737 + 3448: 97 33 0d r3 = r3 << 0xd + 3451: 95 33 d7 fe r3 = r3 + 0xfffffffffffffed7 + 3455: 97 33 0d r3 = r3 << 0xd + 3458: 95 33 d8 f9 r3 = r3 + 0xfffffffffffff9d8 + 3462: 33 04 00 e0 dc dd r4 = 0xffffffffdddce000 + 3468: 83 44 da fb i32 r4 = r4 + 0xfffffffffffffbda + 3472: 7b 53 06 u64 [r5 + 0x6] = r3 + 3475: 81 5a 08 r10 = i32 [r5 + 0x8] + 3478: ab a4 6f 0c jump 6661 if r4 != r10 + : @192 + 3482: 33 0c 69 r12 = 0x69 + 3485: 33 03 00 f0 f3 r3 = 0xfffffffffff3f000 + 3490: 83 33 73 03 i32 r3 = r3 + 0x373 + 3494: 97 33 0f r3 = r3 << 0xf + 3497: 95 33 39 f9 r3 = r3 + 0xfffffffffffff939 + 3501: 97 33 0d r3 = r3 << 0xd + 3504: 95 33 17 ff r3 = r3 + 0xffffffffffffff17 + 3508: 97 33 0d r3 = r3 << 0xd + 3511: 95 33 e0 01 r3 = r3 + 0x1e0 + 3515: 33 04 00 20 07 r4 = 0x72000 + 3520: 83 44 1f 07 i32 r4 = r4 + 0x71f + 3524: 97 44 0d r4 = r4 << 0xd + 3527: 95 44 e1 02 r4 = r4 + 0x2e1 + 3531: 7b 53 07 u64 [r5 + 0x7] = r3 + 3534: 80 5a 08 r10 = u32 [r5 + 0x8] + 3537: ab a4 34 0c jump 6661 if r4 != r10 + : @193 + 3541: 33 0c 6a r12 = 0x6a + 3544: 33 03 00 f0 00 r3 = 0xf000 + 3549: 83 33 e8 f9 i32 r3 = r3 + 0xfffffffffffff9e8 + 3553: 33 04 e8 r4 = 0xffffffffffffffe8 + 3556: 79 53 1f u16 [r5 + 0x1f] = r3 + 3559: 7d 5a 1f r10 = i8 [r5 + 0x1f] + 3562: ab a4 1b 0c jump 6661 if r4 != r10 + : @194 + 3566: 33 0c 6b r12 = 0x6b + 3569: 33 03 00 f0 00 r3 = 0xf000 + 3574: 83 33 ea fb i32 r3 = r3 + 0xfffffffffffffbea + 3578: 33 04 eb r4 = 0xffffffffffffffeb + 3581: 79 53 1f u16 [r5 + 0x1f] = r3 + 3584: 7d 5a 20 r10 = i8 [r5 + 0x20] + 3587: ab a4 02 0c jump 6661 if r4 != r10 + : @195 + 3591: 33 0c 6c r12 = 0x6c + 3594: 33 03 00 f0 00 r3 = 0xf000 + 3599: 83 33 ec fd i32 r3 = r3 + 0xfffffffffffffdec + 3603: 33 04 ec 00 r4 = 0xec + 3607: 79 53 1f u16 [r5 + 0x1f] = r3 + 3610: 7c 5a 1f r10 = u8 [r5 + 0x1f] + 3613: ab a4 e8 0b jump 6661 if r4 != r10 + : @196 + 3617: 33 0c 6d r12 = 0x6d + 3620: 33 03 00 f0 00 r3 = 0xf000 + 3625: 83 33 ee i32 r3 = r3 + 0xffffffffffffffee + 3628: 33 04 ef 00 r4 = 0xef + 3632: 79 53 1f u16 [r5 + 0x1f] = r3 + 3635: 7c 5a 20 r10 = u8 [r5 + 0x20] + 3638: ab a4 cf 0b jump 6661 if r4 != r10 + : @197 + 3642: 33 0c 6e r12 = 0x6e + 3645: 33 03 00 40 0f r3 = 0xf4000 + 3650: 83 33 2f ff i32 r3 = r3 + 0xffffffffffffff2f + 3654: 97 33 0c r3 = r3 << 0xc + 3657: 95 33 f0 01 r3 = r3 + 0x1f0 + 3661: 33 04 f0 r4 = 0xfffffffffffffff0 + 3664: 7a 53 1d u32 [r5 + 0x1d] = r3 + 3667: 7d 5a 1d r10 = i8 [r5 + 0x1d] + 3670: ab a4 af 0b jump 6661 if r4 != r10 + : @198 + 3674: 33 0c 6f r12 = 0x6f + 3677: 33 03 00 80 0f r3 = 0xf8000 + 3682: 83 33 6f ff i32 r3 = r3 + 0xffffffffffffff6f + 3686: 97 33 0c r3 = r3 << 0xc + 3689: 95 33 f4 05 r3 = r3 + 0x5f4 + 3693: 33 04 f6 00 r4 = 0xf6 + 3697: 7a 53 1e u32 [r5 + 0x1e] = r3 + 3700: 7c 5a 20 r10 = u8 [r5 + 0x20] + 3703: ab a4 8e 0b jump 6661 if r4 != r10 + : @199 + 3707: 33 0c 70 r12 = 0x70 + 3710: 33 03 00 00 01 r3 = 0x10000 + 3715: 83 33 fb fb i32 r3 = r3 + 0xfffffffffffffbfb + 3719: 97 33 10 r3 = r3 << 0x10 + 3722: 95 33 f8 f9 r3 = r3 + 0xfffffffffffff9f8 + 3726: 33 04 fa fb r4 = 0xfffffffffffffbfa + 3730: 7a 53 1d u32 [r5 + 0x1d] = r3 + 3733: 7f 5a 1f r10 = i16 [r5 + 0x1f] + 3736: ab a4 6d 0b jump 6661 if r4 != r10 + : @200 + 3740: 33 0c 71 r12 = 0x71 + 3743: 33 03 00 00 01 r3 = 0x10000 + 3748: 83 33 ff i32 r3 = r3 + 0xffffffffffffffff + 3751: 97 33 10 r3 = r3 << 0x10 + 3754: 95 33 fc fd r3 = r3 + 0xfffffffffffffdfc + 3758: 33 04 00 00 01 r4 = 0x10000 + 3763: 83 44 fc fd i32 r4 = r4 + 0xfffffffffffffdfc + 3767: 7a 53 1f u32 [r5 + 0x1f] = r3 + 3770: 7e 5a 1f r10 = u16 [r5 + 0x1f] + 3773: ab a4 48 0b jump 6661 if r4 != r10 + : @201 + 3777: 33 0c 72 r12 = 0x72 + 3780: 33 03 00 80 c1 01 r3 = 0x1c18000 + 3786: 83 33 41 01 i32 r3 = r3 + 0x141 + 3790: 97 33 11 r3 = r3 << 0x11 + 3793: 95 33 81 01 r3 = r3 + 0x181 + 3797: 97 33 11 r3 = r3 << 0x11 + 3800: 95 33 00 01 r3 = r3 + 0x100 + 3804: 33 04 07 r4 = 0x7 + 3807: 7b 53 19 u64 [r5 + 0x19] = r3 + 3810: 7d 5a 20 r10 = i8 [r5 + 0x20] + 3813: ab a4 20 0b jump 6661 if r4 != r10 + : @202 + 3817: 33 0c 73 r12 = 0x73 + 3820: 33 03 00 e0 f0 00 r3 = 0xf0e000 + 3826: 83 33 d1 00 i32 r3 = r3 + 0xd1 + 3830: 97 33 0c r3 = r3 << 0xc + 3833: 95 33 0b fc r3 = r3 + 0xfffffffffffffc0b + 3837: 97 33 0c r3 = r3 << 0xc + 3840: 95 33 a1 00 r3 = r3 + 0xa1 + 3844: 97 33 0c r3 = r3 << 0xc + 3847: 95 33 08 f9 r3 = r3 + 0xfffffffffffff908 + 3851: 33 04 0f r4 = 0xf + 3854: 7b 53 1a u64 [r5 + 0x1a] = r3 + 3857: 7c 5a 21 r10 = u8 [r5 + 0x21] + 3860: ab a4 f1 0a jump 6661 if r4 != r10 + : @203 + 3864: 33 0c 74 r12 = 0x74 + 3867: 33 03 00 60 71 01 r3 = 0x1716000 + 3873: 83 33 51 01 i32 r3 = r3 + 0x151 + 3877: 97 33 0c r3 = r3 << 0xc + 3880: 95 33 13 04 r3 = r3 + 0x413 + 3884: 97 33 0c r3 = r3 << 0xc + 3887: 95 33 21 01 r3 = r3 + 0x121 + 3891: 97 33 0c r3 = r3 << 0xc + 3894: 95 33 10 01 r3 = r3 + 0x110 + 3898: 33 04 00 10 r4 = 0x1000 + 3902: 83 44 14 05 i32 r4 = r4 + 0x514 + 3906: 7b 53 1b u64 [r5 + 0x1b] = r3 + 3909: 7f 5a 1f r10 = i16 [r5 + 0x1f] + 3912: ab a4 bd 0a jump 6661 if r4 != r10 + : @204 + 3916: 33 0c 75 r12 = 0x75 + 3919: 33 03 00 20 1f r3 = 0x1f2000 + 3924: 83 33 1d fe i32 r3 = r3 + 0xfffffffffffffe1d + 3928: 97 33 0e r3 = r3 << 0xe + 3931: 95 33 07 07 r3 = r3 + 0x707 + 3935: 97 33 0d r3 = r3 << 0xd + 3938: 95 33 d1 f8 r3 = r3 + 0xfffffffffffff8d1 + 3942: 97 33 0d r3 = r3 << 0xd + 3945: 95 33 18 f9 r3 = r3 + 0xfffffffffffff918 + 3949: 33 04 00 20 r4 = 0x2000 + 3953: 83 44 1b fc i32 r4 = r4 + 0xfffffffffffffc1b + 3957: 7b 53 1c u64 [r5 + 0x1c] = r3 + 3960: 7e 5a 1f r10 = u16 [r5 + 0x1f] + 3963: ab a4 8a 0a jump 6661 if r4 != r10 + : @205 + 3967: 33 0c 76 r12 = 0x76 + 3970: 33 03 00 a0 9c 00 r3 = 0x9ca000 + 3976: 83 33 95 f8 i32 r3 = r3 + 0xfffffffffffff895 + 3980: 97 33 0c r3 = r3 << 0xc + 3983: 95 33 09 f9 r3 = r3 + 0xfffffffffffff909 + 3987: 97 33 0d r3 = r3 << 0xd + 3990: 95 33 11 f9 r3 = r3 + 0xfffffffffffff911 + 3994: 97 33 0d r3 = r3 << 0xd + 3997: 95 33 20 01 r3 = r3 + 0x120 + 4001: 33 04 00 20 22 23 r4 = 0x23222000 + 4007: 83 44 20 01 i32 r4 = r4 + 0x120 + 4011: 7b 53 1d u64 [r5 + 0x1d] = r3 + 4014: 81 5a 1d r10 = i32 [r5 + 0x1d] + 4017: ab a4 54 0a jump 6661 if r4 != r10 + : @206 + 4021: 33 0c 77 r12 = 0x77 + 4024: 33 03 00 e0 f2 02 r3 = 0x2f2e000 + 4030: 83 33 d3 02 i32 r3 = r3 + 0x2d3 + 4034: 97 33 0c r3 = r3 << 0xc + 4037: 95 33 2b fc r3 = r3 + 0xfffffffffffffc2b + 4041: 97 33 0c r3 = r3 << 0xc + 4044: 95 33 a3 02 r3 = r3 + 0x2a3 + 4048: 97 33 0c r3 = r3 << 0xc + 4051: 95 33 28 f9 r3 = r3 + 0xfffffffffffff928 + 4055: 33 04 00 30 2a 2b r4 = 0x2b2a3000 + 4061: 83 44 28 f9 i32 r4 = r4 + 0xfffffffffffff928 + 4065: 7b 53 1e u64 [r5 + 0x1e] = r3 + 4068: 81 5a 1e r10 = i32 [r5 + 0x1e] + 4071: ab a4 1e 0a jump 6661 if r4 != r10 + : @207 + 4075: 33 0c 78 r12 = 0x78 + 4078: 33 03 00 60 73 03 r3 = 0x3736000 + 4084: 83 33 53 03 i32 r3 = r3 + 0x353 + 4088: 97 33 0c r3 = r3 << 0xc + 4091: 95 33 33 04 r3 = r3 + 0x433 + 4095: 97 33 0c r3 = r3 << 0xc + 4098: 95 33 23 03 r3 = r3 + 0x323 + 4102: 97 33 0c r3 = r3 << 0xc + 4105: 95 33 30 01 r3 = r3 + 0x130 + 4109: 33 04 00 30 32 33 r4 = 0x33323000 + 4115: 83 44 30 01 i32 r4 = r4 + 0x130 + 4119: 7b 53 1f u64 [r5 + 0x1f] = r3 + 4122: 80 5a 1f r10 = u32 [r5 + 0x1f] + 4125: ab a4 e8 09 jump 6661 if r4 != r10 + : @208 + 4129: 33 0c 79 r12 = 0x79 + 4132: 33 03 00 50 r3 = 0x5000 + 4136: 83 33 48 f9 i32 r3 = r3 + 0xfffffffffffff948 + 4140: 33 04 48 r4 = 0x48 + 4143: 79 53 3f u16 [r5 + 0x3f] = r3 + 4146: 7d 5a 3f r10 = i8 [r5 + 0x3f] + 4149: ab a4 d0 09 jump 6661 if r4 != r10 + : @209 + 4153: 33 0c 7a r12 = 0x7a + 4156: 33 03 00 50 r3 = 0x5000 + 4160: 83 33 4a fb i32 r3 = r3 + 0xfffffffffffffb4a + 4164: 33 04 4b r4 = 0x4b + 4167: 79 53 3f u16 [r5 + 0x3f] = r3 + 4170: 7d 5a 40 r10 = i8 [r5 + 0x40] + 4173: ab a4 b8 09 jump 6661 if r4 != r10 + : @210 + 4177: 33 0c 7b r12 = 0x7b + 4180: 33 03 00 50 r3 = 0x5000 + 4184: 83 33 4c fd i32 r3 = r3 + 0xfffffffffffffd4c + 4188: 33 04 4c r4 = 0x4c + 4191: 79 53 3f u16 [r5 + 0x3f] = r3 + 4194: 7c 5a 3f r10 = u8 [r5 + 0x3f] + 4197: ab a4 a0 09 jump 6661 if r4 != r10 + : @211 + 4201: 33 0c 7c r12 = 0x7c + 4204: 33 03 00 50 r3 = 0x5000 + 4208: 83 33 4e ff i32 r3 = r3 + 0xffffffffffffff4e + 4212: 33 04 4f r4 = 0x4f + 4215: 79 53 3f u16 [r5 + 0x3f] = r3 + 4218: 7c 5a 40 r10 = u8 [r5 + 0x40] + 4221: ab a4 88 09 jump 6661 if r4 != r10 + : @212 + 4225: 33 0c 7d r12 = 0x7d + 4228: 33 03 00 50 52 53 r3 = 0x53525000 + 4234: 83 33 50 01 i32 r3 = r3 + 0x150 + 4238: 33 04 50 r4 = 0x50 + 4241: 7a 53 3d u32 [r5 + 0x3d] = r3 + 4244: 7d 5a 3d r10 = i8 [r5 + 0x3d] + 4247: ab a4 6e 09 jump 6661 if r4 != r10 + : @213 + 4251: 33 0c 7e r12 = 0x7e + 4254: 33 03 00 50 56 57 r3 = 0x57565000 + 4260: 83 33 54 05 i32 r3 = r3 + 0x554 + 4264: 33 04 56 r4 = 0x56 + 4267: 7a 53 3e u32 [r5 + 0x3e] = r3 + 4270: 7c 5a 40 r10 = u8 [r5 + 0x40] + 4273: ab a4 54 09 jump 6661 if r4 != r10 + : @214 + 4277: 33 0c 7f r12 = 0x7f + 4280: 33 03 00 60 5a 5b r3 = 0x5b5a6000 + 4286: 83 33 58 f9 i32 r3 = r3 + 0xfffffffffffff958 + 4290: 33 04 00 60 r4 = 0x6000 + 4294: 83 44 5a fb i32 r4 = r4 + 0xfffffffffffffb5a + 4298: 7a 53 3d u32 [r5 + 0x3d] = r3 + 4301: 7f 5a 3f r10 = i16 [r5 + 0x3f] + 4304: ab a4 35 09 jump 6661 if r4 != r10 + : @215 + 4308: 33 0c 80 00 r12 = 0x80 + 4312: 33 03 00 60 5e 5f r3 = 0x5f5e6000 + 4318: 83 33 5c fd i32 r3 = r3 + 0xfffffffffffffd5c + 4322: 33 04 00 60 r4 = 0x6000 + 4326: 83 44 5c fd i32 r4 = r4 + 0xfffffffffffffd5c + 4330: 7a 53 3f u32 [r5 + 0x3f] = r3 + 4333: 7e 5a 3f r10 = u16 [r5 + 0x3f] + 4336: ab a4 15 09 jump 6661 if r4 != r10 + : @216 + 4340: 33 0c 81 00 r12 = 0x81 + 4344: 33 03 00 d0 ce 00 r3 = 0xced000 + 4350: 83 33 cb fc i32 r3 = r3 + 0xfffffffffffffccb + 4354: 97 33 0d r3 = r3 << 0xd + 4357: 95 33 19 f9 r3 = r3 + 0xfffffffffffff919 + 4361: 97 33 0d r3 = r3 << 0xd + 4364: 95 33 13 fb r3 = r3 + 0xfffffffffffffb13 + 4368: 97 33 0d r3 = r3 << 0xd + 4371: 95 33 60 01 r3 = r3 + 0x160 + 4375: 33 04 67 r4 = 0x67 + 4378: 7b 53 39 u64 [r5 + 0x39] = r3 + 4381: 7d 5a 40 r10 = i8 [r5 + 0x40] + 4384: ab a4 e5 08 jump 6661 if r4 != r10 + : @217 + 4388: 33 0c 82 00 r12 = 0x82 + 4392: 33 03 00 e0 f6 06 r3 = 0x6f6e000 + 4398: 83 33 d7 06 i32 r3 = r3 + 0x6d7 + 4402: 97 33 0c r3 = r3 << 0xc + 4405: 95 33 6b fc r3 = r3 + 0xfffffffffffffc6b + 4409: 97 33 0c r3 = r3 << 0xc + 4412: 95 33 a7 06 r3 = r3 + 0x6a7 + 4416: 97 33 0c r3 = r3 << 0xc + 4419: 95 33 68 f9 r3 = r3 + 0xfffffffffffff968 + 4423: 33 04 6f r4 = 0x6f + 4426: 7b 53 3a u64 [r5 + 0x3a] = r3 + 4429: 7c 5a 41 r10 = u8 [r5 + 0x41] + 4432: ab a4 b5 08 jump 6661 if r4 != r10 + : @218 + 4436: 33 0c 83 00 r12 = 0x83 + 4440: 33 03 00 60 77 07 r3 = 0x7776000 + 4446: 83 33 57 07 i32 r3 = r3 + 0x757 + 4450: 97 33 0c r3 = r3 << 0xc + 4453: 95 33 73 04 r3 = r3 + 0x473 + 4457: 97 33 0c r3 = r3 << 0xc + 4460: 95 33 27 07 r3 = r3 + 0x727 + 4464: 97 33 0c r3 = r3 << 0xc + 4467: 95 33 70 01 r3 = r3 + 0x170 + 4471: 33 04 00 70 r4 = 0x7000 + 4475: 83 44 74 05 i32 r4 = r4 + 0x574 + 4479: 7b 53 3b u64 [r5 + 0x3b] = r3 + 4482: 7f 5a 3f r10 = i16 [r5 + 0x3f] + 4485: ab a4 80 08 jump 6661 if r4 != r10 + : @219 + 4489: 33 0c 84 00 r12 = 0x84 + 4493: 33 03 00 00 ff 00 r3 = 0xff0000 + 4499: 83 33 fb fc i32 r3 = r3 + 0xfffffffffffffcfb + 4503: 97 33 0c r3 = r3 << 0xc + 4506: 95 33 8f r3 = r3 + 0xffffffffffffff8f + 4509: 97 33 0c r3 = r3 << 0xc + 4512: 95 33 f5 06 r3 = r3 + 0x6f5 + 4516: 97 33 0f r3 = r3 << 0xf + 4519: 95 33 78 f9 r3 = r3 + 0xfffffffffffff978 + 4523: 33 04 00 80 00 r4 = 0x8000 + 4528: 83 44 7b fc i32 r4 = r4 + 0xfffffffffffffc7b + 4532: 7b 53 3c u64 [r5 + 0x3c] = r3 + 4535: 7e 5a 3f r10 = u16 [r5 + 0x3f] + 4538: ab a4 4b 08 jump 6661 if r4 != r10 + : @220 + 4542: 33 0c 85 00 r12 = 0x85 + 4546: 33 03 00 f0 f0 r3 = 0xfffffffffff0f000 + 4551: 83 33 d1 00 i32 r3 = r3 + 0xd1 + 4555: 97 33 0c r3 = r3 << 0xc + 4558: 95 33 09 fb r3 = r3 + 0xfffffffffffffb09 + 4562: 97 33 10 r3 = r3 << 0x10 + 4565: 95 33 05 07 r3 = r3 + 0x705 + 4569: 97 33 0f r3 = r3 << 0xf + 4572: 95 33 80 01 r3 = r3 + 0x180 + 4576: 33 04 00 80 82 83 r4 = 0xffffffff83828000 + 4582: 83 44 80 01 i32 r4 = r4 + 0x180 + 4586: 7b 53 3d u64 [r5 + 0x3d] = r3 + 4589: 81 5a 3d r10 = i32 [r5 + 0x3d] + 4592: ab a4 15 08 jump 6661 if r4 != r10 + : @221 + 4596: 33 0c 86 00 r12 = 0x86 + 4600: 33 03 00 20 1f ff r3 = 0xffffffffff1f2000 + 4606: 83 33 1b fd i32 r3 = r3 + 0xfffffffffffffd1b + 4610: 97 33 0d r3 = r3 << 0xd + 4613: 95 33 23 03 r3 = r3 + 0x323 + 4617: 97 33 0e r3 = r3 << 0xe + 4620: 95 33 a9 f8 r3 = r3 + 0xfffffffffffff8a9 + 4624: 97 33 0c r3 = r3 << 0xc + 4627: 95 33 88 f9 r3 = r3 + 0xfffffffffffff988 + 4631: 33 04 00 90 8a 8b r4 = 0xffffffff8b8a9000 + 4637: 83 44 88 f9 i32 r4 = r4 + 0xfffffffffffff988 + 4641: 7b 53 3e u64 [r5 + 0x3e] = r3 + 4644: 81 5a 3e r10 = i32 [r5 + 0x3e] + 4647: ab a4 de 07 jump 6661 if r4 != r10 + : @222 + 4651: 33 0c 87 00 r12 = 0x87 + 4655: 33 03 00 30 2f ff r3 = 0xffffffffff2f3000 + 4661: 83 33 2b fd i32 r3 = r3 + 0xfffffffffffffd2b + 4665: 97 33 0d r3 = r3 << 0xd + 4668: 95 33 25 05 r3 = r3 + 0x525 + 4672: 97 33 0e r3 = r3 << 0xe + 4675: 95 33 29 f9 r3 = r3 + 0xfffffffffffff929 + 4679: 97 33 0c r3 = r3 << 0xc + 4682: 95 33 90 01 r3 = r3 + 0x190 + 4686: 33 04 00 40 09 r4 = 0x94000 + 4691: 83 44 29 f9 i32 r4 = r4 + 0xfffffffffffff929 + 4695: 97 44 0c r4 = r4 << 0xc + 4698: 95 44 90 01 r4 = r4 + 0x190 + 4702: 7b 53 3f u64 [r5 + 0x3f] = r3 + 4705: 80 5a 3f r10 = u32 [r5 + 0x3f] + 4708: ab a4 a1 07 jump 6661 if r4 != r10 + : @223 + 4712: 33 0c 88 00 r12 = 0x88 + 4716: 33 03 98 00 r3 = 0x98 + 4720: 33 04 00 c0 r4 = 0xffffffffffffc000 + 4724: 83 44 98 f8 i32 r4 = r4 + 0xfffffffffffff898 + 4728: 78 53 01 u8 [r5 + 0x1] = t1 + 4731: 7f 5a 01 r10 = i16 [r5 + 0x1] + 4734: ab a4 87 07 jump 6661 if r4 != r10 + : @224 + 4738: 33 0c 89 00 r12 = 0x89 + 4742: 33 03 99 00 r3 = 0x99 + 4746: 33 04 00 a0 00 r4 = 0xa000 + 4751: 83 44 98 f9 i32 r4 = r4 + 0xfffffffffffff998 + 4755: 78 53 02 u8 [r5 + 0x2] = t1 + 4758: 7e 5a 01 r10 = u16 [r5 + 0x1] + 4761: ab a4 6c 07 jump 6661 if r4 != r10 + : @225 + 4765: 33 0c 8a 00 r12 = 0x8a + 4769: 33 03 00 a0 00 r3 = 0xa000 + 4774: 83 33 9a fb i32 r3 = r3 + 0xfffffffffffffb9a + 4778: 33 04 00 a0 c0 c8 r4 = 0xffffffffc8c0a000 + 4784: 83 44 9a fb i32 r4 = r4 + 0xfffffffffffffb9a + 4788: 79 53 01 u16 [r5 + 0x1] = r3 + 4791: 81 5a 01 r10 = i32 [r5 + 0x1] + 4794: ab a4 4b 07 jump 6661 if r4 != r10 + : @226 + 4798: 33 0c 8b 00 r12 = 0x8b + 4802: 33 03 00 a0 00 r3 = 0xa000 + 4807: 83 33 9c fd i32 r3 = r3 + 0xfffffffffffffd9c + 4811: 33 04 00 a0 9d d0 r4 = 0xffffffffd09da000 + 4817: 83 44 9b fc i32 r4 = r4 + 0xfffffffffffffc9b + 4821: 79 53 03 u16 [r5 + 0x3] = r3 + 4824: 81 5a 02 r10 = i32 [r5 + 0x2] + 4827: ab a4 2a 07 jump 6661 if r4 != r10 + : @227 + 4831: 33 0c 8c 00 r12 = 0x8c + 4835: 33 03 00 a0 00 r3 = 0xa000 + 4840: 83 33 9e i32 r3 = r3 + 0xffffffffffffff9e + 4843: 33 04 00 a0 9e 9f r4 = 0xffffffff9f9ea000 + 4849: 83 44 9c fd i32 r4 = r4 + 0xfffffffffffffd9c + 4853: 79 53 05 u16 [r5 + 0x5] = r3 + 4856: 81 5a 03 r10 = i32 [r5 + 0x3] + 4859: ab a4 0a 07 jump 6661 if r4 != r10 + : @228 + 4863: 33 0c 8d 00 r12 = 0x8d + 4867: 33 03 a0 00 r3 = 0xa0 + 4871: 33 04 00 f0 04 r4 = 0x4f000 + 4876: 83 44 e5 fc i32 r4 = r4 + 0xfffffffffffffce5 + 4880: 97 44 0d r4 = r4 << 0xd + 4883: 95 44 9a 00 r4 = r4 + 0x9a + 4887: 78 53 02 u8 [r5 + 0x2] = t1 + 4890: 80 5a 01 r10 = u32 [r5 + 0x1] + 4893: ab a4 e8 06 jump 6661 if r4 != r10 + : @229 + 4897: 33 0c 8e 00 r12 = 0x8e + 4901: 33 03 00 a0 00 r3 = 0xa000 + 4906: 83 33 a1 02 i32 r3 = r3 + 0x2a1 + 4910: 33 04 00 f0 04 r4 = 0x4f000 + 4915: 83 44 15 05 i32 r4 = r4 + 0x515 + 4919: 97 44 0d r4 = r4 << 0xd + 4922: 95 44 a0 01 r4 = r4 + 0x1a0 + 4926: 79 53 03 u16 [r5 + 0x3] = r3 + 4929: 80 5a 02 r10 = u32 [r5 + 0x2] + 4932: ab a4 c1 06 jump 6661 if r4 != r10 + : @230 + 4936: 33 0c 8f 00 r12 = 0x8f + 4940: 33 03 00 a0 00 r3 = 0xa000 + 4945: 83 33 a3 04 i32 r3 = r3 + 0x4a3 + 4949: 33 04 00 20 05 r4 = 0x52000 + 4954: 83 44 1d 05 i32 r4 = r4 + 0x51d + 4958: 97 44 0d r4 = r4 << 0xd + 4961: 95 44 a1 02 r4 = r4 + 0x2a1 + 4965: 79 53 05 u16 [r5 + 0x5] = r3 + 4968: 80 5a 03 r10 = u32 [r5 + 0x3] + 4971: ab a4 9a 06 jump 6661 if r4 != r10 + : @231 + 4975: 33 0c 90 00 r12 = 0x90 + 4979: 33 03 a5 00 r3 = 0xa5 + 4983: 33 04 00 00 0f ff r4 = 0xffffffffff0f0000 + 4989: 83 44 25 05 i32 r4 = r4 + 0x525 + 4993: 97 44 0c r4 = r4 << 0xc + 4996: 95 44 d1 01 r4 = r4 + 0x1d1 + 5000: 97 44 0c r4 = r4 << 0xc + 5003: 95 44 0d 05 r4 = r4 + 0x50d + 5007: 97 44 0d r4 = r4 << 0xd + 5010: 95 44 9a 05 r4 = r4 + 0x59a + 5014: 78 53 02 u8 [r5 + 0x2] = t1 + 5017: 82 5a 01 r10 = u64 [r5 + 0x1] + 5020: ab a4 69 06 jump 6661 if r4 != r10 + : @232 + 5024: 33 0c 91 00 r12 = 0x91 + 5028: 33 03 00 a0 00 r3 = 0xa000 + 5033: 83 33 a6 07 i32 r3 = r3 + 0x7a6 + 5037: 33 04 00 a0 8a r4 = 0xffffffffff8aa000 + 5042: 83 44 9b fe i32 r4 = r4 + 0xfffffffffffffe9b + 5046: 97 44 0c r4 = r4 << 0xc + 5049: 95 44 29 f9 r4 = r4 + 0xfffffffffffff929 + 5053: 97 44 0d r4 = r4 << 0xd + 5056: 95 44 15 fd r4 = r4 + 0xfffffffffffffd15 + 5060: 97 44 0d r4 = r4 << 0xd + 5063: 95 44 a5 01 r4 = r4 + 0x1a5 + 5067: 79 53 07 u16 [r5 + 0x7] = r3 + 5070: 82 5a 02 r10 = u64 [r5 + 0x2] + 5073: ab a4 34 06 jump 6661 if r4 != r10 + : @233 + 5077: 33 0c 92 00 r12 = 0x92 + 5081: 33 03 00 b0 00 r3 = 0xb000 + 5086: 83 33 a8 f9 i32 r3 = r3 + 0xfffffffffffff9a8 + 5090: 33 04 00 a0 a6 fe r4 = 0xfffffffffea6a000 + 5096: 83 44 9f 02 i32 r4 = r4 + 0x29f + 5100: 97 44 0c r4 = r4 << 0xc + 5103: 95 44 a9 f9 r4 = r4 + 0xfffffffffffff9a9 + 5107: 97 44 0d r4 = r4 << 0xd + 5110: 95 44 1d 05 r4 = r4 + 0x51d + 5114: 97 44 0d r4 = r4 << 0xd + 5117: 95 44 a1 02 r4 = r4 + 0x2a1 + 5121: 79 53 09 u16 [r5 + 0x9] = r3 + 5124: 82 5a 03 r10 = u64 [r5 + 0x3] + 5127: ab a4 fe 05 jump 6661 if r4 != r10 + : @234 + 5131: 33 0c 93 00 r12 = 0x93 + 5135: 33 03 00 e0 0a r3 = 0xae000 + 5140: 83 33 cb fa i32 r3 = r3 + 0xfffffffffffffacb + 5144: 97 33 0c r3 = r3 << 0xc + 5147: 95 33 aa fb r3 = r3 + 0xfffffffffffffbaa + 5151: 33 04 00 a0 4a fe r4 = 0xfffffffffe4aa000 + 5157: 83 44 8b fa i32 r4 = r4 + 0xfffffffffffffa8b + 5161: 97 44 0c r4 = r4 << 0xc + 5164: 95 44 ad fd r4 = r4 + 0xfffffffffffffdad + 5168: 97 44 0c r4 = r4 << 0xc + 5171: 95 44 bb fa r4 = r4 + 0xfffffffffffffabb + 5175: 97 44 0c r4 = r4 << 0xc + 5178: 95 44 a2 fa r4 = r4 + 0xfffffffffffffaa2 + 5182: 7a 53 05 u32 [r5 + 0x5] = r3 + 5185: 82 5a 04 r10 = u64 [r5 + 0x4] + 5188: ab a4 c1 05 jump 6661 if r4 != r10 + : @235 + 5192: 33 0c 94 00 r12 = 0x94 + 5196: 33 03 00 20 0b r3 = 0xb2000 + 5201: 83 33 0b fb i32 r3 = r3 + 0xfffffffffffffb0b + 5205: 97 33 0c r3 = r3 << 0xc + 5208: 95 33 ae r3 = r3 + 0xffffffffffffffae + 5211: 33 04 00 f0 f2 r4 = 0xfffffffffff2f000 + 5216: 83 44 59 02 i32 r4 = r4 + 0x259 + 5220: 97 44 0d r4 = r4 << 0xd + 5223: 95 44 0b fb r4 = r4 + 0xfffffffffffffb0b + 5227: 97 44 10 r4 = r4 << 0x10 + 5230: 95 44 eb fa r4 = r4 + 0xfffffffffffffaeb + 5234: 97 44 0c r4 = r4 << 0xc + 5237: 95 44 aa fb r4 = r4 + 0xfffffffffffffbaa + 5241: 7a 53 07 u32 [r5 + 0x7] = r3 + 5244: 82 5a 05 r10 = u64 [r5 + 0x5] + 5247: ab a4 86 05 jump 6661 if r4 != r10 + : @236 + 5251: 33 0c 95 00 r12 = 0x95 + 5255: 33 03 00 60 0b r3 = 0xb6000 + 5260: 83 33 4b fb i32 r3 = r3 + 0xfffffffffffffb4b + 5264: 97 33 0c r3 = r3 << 0xc + 5267: 95 33 b2 03 r3 = r3 + 0x3b2 + 5271: 33 04 00 60 6b fe r4 = 0xfffffffffe6b6000 + 5277: 83 44 4b fb i32 r4 = r4 + 0xfffffffffffffb4b + 5281: 97 44 0c r4 = r4 << 0xc + 5284: 95 44 b3 03 r4 = r4 + 0x3b3 + 5288: 97 44 0c r4 = r4 << 0xc + 5291: 95 44 fb fa r4 = r4 + 0xfffffffffffffafb + 5295: 97 44 0c r4 = r4 << 0xc + 5298: 95 44 ab fe r4 = r4 + 0xfffffffffffffeab + 5302: 7a 53 09 u32 [r5 + 0x9] = r3 + 5305: 82 5a 06 r10 = u64 [r5 + 0x6] + 5308: ab a4 49 05 jump 6661 if r4 != r10 + : @237 + 5312: 33 0c 96 00 r12 = 0x96 + 5316: 33 03 00 a0 0b r3 = 0xba000 + 5321: 83 33 8b fb i32 r3 = r3 + 0xfffffffffffffb8b + 5325: 97 33 0c r3 = r3 << 0xc + 5328: 95 33 b6 07 r3 = r3 + 0x7b6 + 5332: 33 04 00 e0 e6 fe r4 = 0xfffffffffee6e000 + 5338: 83 44 df 02 i32 r4 = r4 + 0x2df + 5342: 97 44 0c r4 = r4 << 0xc + 5345: 95 44 ad fd r4 = r4 + 0xfffffffffffffdad + 5349: 97 44 0e r4 = r4 << 0xe + 5352: 95 44 2b fb r4 = r4 + 0xfffffffffffffb2b + 5356: 97 44 0c r4 = r4 << 0xc + 5359: 95 44 ae r4 = r4 + 0xffffffffffffffae + 5362: 7a 53 0b u32 [r5 + 0xb] = r3 + 5365: 82 5a 07 r10 = u64 [r5 + 0x7] + 5368: ab a4 0d 05 jump 6661 if r4 != r10 + : @238 + 5372: 33 0c 97 00 r12 = 0x97 + 5376: 33 03 ba 00 r3 = 0xba + 5380: 33 04 00 30 r4 = 0x3000 + 5384: 83 44 ba 01 i32 r4 = r4 + 0x1ba + 5388: 78 53 1f u8 [r5 + 0x1f] = t1 + 5391: 7f 5a 1f r10 = i16 [r5 + 0x1f] + 5394: ab a4 f3 04 jump 6661 if r4 != r10 + : @239 + 5398: 33 0c 98 00 r12 = 0x98 + 5402: 33 03 bb 00 r3 = 0xbb + 5406: 33 04 00 c0 00 r4 = 0xc000 + 5411: 83 44 ba fb i32 r4 = r4 + 0xfffffffffffffbba + 5415: 78 53 20 u8 [r5 + 0x20] = t1 + 5418: 7e 5a 1f r10 = u16 [r5 + 0x1f] + 5421: ab a4 d8 04 jump 6661 if r4 != r10 + : @240 + 5425: 33 0c 99 00 r12 = 0x99 + 5429: 33 03 00 c0 00 r3 = 0xc000 + 5434: 83 33 bc fd i32 r3 = r3 + 0xfffffffffffffdbc + 5438: 33 04 00 c0 bb 32 r4 = 0x32bbc000 + 5444: 83 44 bc fd i32 r4 = r4 + 0xfffffffffffffdbc + 5448: 79 53 1e u16 [r5 + 0x1e] = r3 + 5451: 81 5a 1e r10 = i32 [r5 + 0x1e] + 5454: ab a4 b7 04 jump 6661 if r4 != r10 + : @241 + 5458: 33 0c 9a 00 r12 = 0x9a + 5462: 33 03 00 c0 00 r3 = 0xc000 + 5467: 83 33 be i32 r3 = r3 + 0xffffffffffffffbe + 5470: 33 04 00 c0 bf 32 r4 = 0x32bfc000 + 5476: 83 44 bc fe i32 r4 = r4 + 0xfffffffffffffebc + 5480: 79 53 1f u16 [r5 + 0x1f] = r3 + 5483: 81 5a 1e r10 = i32 [r5 + 0x1e] + 5486: ab a4 97 04 jump 6661 if r4 != r10 + : @242 + 5490: 33 0c 9b 00 r12 = 0x9b + 5494: 33 03 00 c0 00 r3 = 0xc000 + 5499: 83 33 c0 01 i32 r3 = r3 + 0x1c0 + 5503: 33 04 00 c0 c0 c1 r4 = 0xffffffffc1c0c000 + 5509: 83 44 bc fe i32 r4 = r4 + 0xfffffffffffffebc + 5513: 79 53 20 u16 [r5 + 0x20] = r3 + 5516: 81 5a 1e r10 = i32 [r5 + 0x1e] + 5519: ab a4 76 04 jump 6661 if r4 != r10 + : @243 + 5523: 33 0c 9c 00 r12 = 0x9c + 5527: 33 03 c2 00 r3 = 0xc2 + 5531: 33 04 00 c0 c1 33 r4 = 0x33c1c000 + 5537: 83 44 be 02 i32 r4 = r4 + 0x2be + 5541: 78 53 20 u8 [r5 + 0x20] = t1 + 5544: 80 5a 1f r10 = u32 [r5 + 0x1f] + 5547: ab a4 5a 04 jump 6661 if r4 != r10 + : @244 + 5551: 33 0c 9d 00 r12 = 0x9d + 5555: 33 03 00 c0 00 r3 = 0xc000 + 5560: 83 33 c3 04 i32 r3 = r3 + 0x4c3 + 5564: 33 04 00 10 03 r4 = 0x31000 + 5569: 83 44 0f 03 i32 r4 = r4 + 0x30f + 5573: 97 44 0e r4 = r4 << 0xe + 5576: 95 44 20 fc r4 = r4 + 0xfffffffffffffc20 + 5580: 79 53 1f u16 [r5 + 0x1f] = r3 + 5583: 80 5a 1d r10 = u32 [r5 + 0x1d] + 5586: ab a4 33 04 jump 6661 if r4 != r10 + : @245 + 5590: 33 0c 9e 00 r12 = 0x9e + 5594: 33 03 00 c0 00 r3 = 0xc000 + 5599: 83 33 c5 06 i32 r3 = r3 + 0x6c5 + 5603: 33 04 00 20 03 r4 = 0x32000 + 5608: 83 44 17 fb i32 r4 = r4 + 0xfffffffffffffb17 + 5612: 97 44 0e r4 = r4 << 0xe + 5615: 95 44 bc 03 r4 = r4 + 0x3bc + 5619: 79 53 20 u16 [r5 + 0x20] = r3 + 5622: 80 5a 1e r10 = u32 [r5 + 0x1e] + 5625: ab a4 0c 04 jump 6661 if r4 != r10 + : @246 + 5629: 33 0c 9f 00 r12 = 0x9f + 5633: 33 03 c7 00 r3 = 0xc7 + 5637: 33 04 00 f0 f1 r4 = 0xfffffffffff1f000 + 5642: 83 44 ef 00 i32 r4 = r4 + 0xef + 5646: 97 44 0f r4 = r4 << 0xf + 5649: 95 44 03 04 r4 = r4 + 0x403 + 5653: 97 44 0f r4 = r4 << 0xf + 5656: 95 44 01 01 r4 = r4 + 0x101 + 5660: 97 44 0c r4 = r4 << 0xc + 5663: 95 44 00 f8 r4 = r4 + 0xfffffffffffff800 + 5667: 78 53 20 u8 [r5 + 0x20] = t1 + 5670: 82 5a 19 r10 = u64 [r5 + 0x19] + 5673: ab a4 dc 03 jump 6661 if r4 != r10 + : @247 + 5677: 33 0c a0 00 r12 = 0xa0 + 5681: 33 03 00 d0 00 r3 = 0xd000 + 5686: 83 33 c8 f9 i32 r3 = r3 + 0xfffffffffffff9c8 + 5690: 33 04 00 e0 f8 r4 = 0xfffffffffff8e000 + 5695: 83 44 39 f9 i32 r4 = r4 + 0xfffffffffffff939 + 5699: 97 44 0e r4 = r4 << 0xe + 5702: 95 44 e1 05 r4 = r4 + 0x5e1 + 5706: 97 44 11 r4 = r4 << 0x11 + 5709: 95 44 81 01 r4 = r4 + 0x181 + 5713: 97 44 0c r4 = r4 << 0xc + 5716: 95 44 08 r4 = r4 + 0x8 + 5719: 79 53 1f u16 [r5 + 0x1f] = r3 + 5722: 82 5a 1a r10 = u64 [r5 + 0x1a] + 5725: ab a4 a8 03 jump 6661 if r4 != r10 + : @248 + 5729: 33 0c a1 00 r12 = 0xa1 + 5733: 33 03 00 d0 00 r3 = 0xd000 + 5738: 83 33 ca fb i32 r3 = r3 + 0xfffffffffffffbca + 5742: 33 04 00 20 cf 00 r4 = 0xcf2000 + 5748: 83 44 2f fb i32 r4 = r4 + 0xfffffffffffffb2f + 5752: 97 44 0c r4 = r4 << 0xc + 5755: 95 44 af 02 r4 = r4 + 0x2af + 5759: 97 44 0d r4 = r4 << 0xd + 5762: 95 44 01 01 r4 = r4 + 0x101 + 5766: 97 44 0d r4 = r4 << 0xd + 5769: 95 44 10 f8 r4 = r4 + 0xfffffffffffff810 + 5773: 79 53 1f u16 [r5 + 0x1f] = r3 + 5776: 82 5a 1b r10 = u64 [r5 + 0x1b] + 5779: ab a4 72 03 jump 6661 if r4 != r10 + : @249 + 5783: 33 0c a2 00 r12 = 0xa2 + 5787: 33 03 00 00 0d r3 = 0xd0000 + 5792: 83 33 ed fc i32 r3 = r3 + 0xfffffffffffffced + 5796: 97 33 0c r3 = r3 << 0xc + 5799: 95 33 cc fd r3 = r3 + 0xfffffffffffffdcc + 5803: 33 04 00 40 3f ff r4 = 0xffffffffff3f4000 + 5809: 83 44 37 fb i32 r4 = r4 + 0xfffffffffffffb37 + 5813: 97 44 0d r4 = r4 << 0xd + 5816: 95 44 65 06 r4 = r4 + 0x665 + 5820: 97 44 0c r4 = r4 << 0xc + 5823: 95 44 e1 05 r4 = r4 + 0x5e1 + 5827: 97 44 0d r4 = r4 << 0xd + 5830: 95 44 18 r4 = r4 + 0x18 + 5833: 7a 53 20 u32 [r5 + 0x20] = r3 + 5836: 82 5a 1c r10 = u64 [r5 + 0x1c] + 5839: ab a4 36 03 jump 6661 if r4 != r10 + : @250 + 5843: 33 0c a3 00 r12 = 0xa3 + 5847: 33 03 00 40 0d r3 = 0xd4000 + 5852: 83 33 2d fd i32 r3 = r3 + 0xfffffffffffffd2d + 5856: 97 33 0c r3 = r3 << 0xc + 5859: 95 33 d0 01 r3 = r3 + 0x1d0 + 5863: 33 04 00 70 0d r4 = 0xd7000 + 5868: 83 44 f5 03 i32 r4 = r4 + 0x3f5 + 5872: 97 44 0e r4 = r4 << 0xe + 5875: 95 44 2d fd r4 = r4 + 0xfffffffffffffd2d + 5879: 97 44 0e r4 = r4 << 0xe + 5882: 95 44 43 07 r4 = r4 + 0x743 + 5886: 97 44 0e r4 = r4 << 0xe + 5889: 95 44 20 fc r4 = r4 + 0xfffffffffffffc20 + 5893: 7a 53 1f u32 [r5 + 0x1f] = r3 + 5896: 82 5a 1d r10 = u64 [r5 + 0x1d] + 5899: ab a4 fa 02 jump 6661 if r4 != r10 + : @251 + 5903: 33 0c a4 00 r12 = 0xa4 + 5907: 33 03 00 80 0d r3 = 0xd8000 + 5912: 83 33 6d fd i32 r3 = r3 + 0xfffffffffffffd6d + 5916: 97 33 0c r3 = r3 << 0xc + 5919: 95 33 d4 05 r3 = r3 + 0x5d4 + 5923: 33 04 00 60 03 r4 = 0x36000 + 5928: 83 44 5d 03 i32 r4 = r4 + 0x35d + 5932: 97 44 11 r4 = r4 << 0x11 + 5935: 95 44 7b fa r4 = r4 + 0xfffffffffffffa7b + 5939: 97 44 0f r4 = r4 << 0xf + 5942: 95 44 6d fd r4 = r4 + 0xfffffffffffffd6d + 5946: 97 44 0c r4 = r4 << 0xc + 5949: 95 44 d4 05 r4 = r4 + 0x5d4 + 5953: 7a 53 1e u32 [r5 + 0x1e] = r3 + 5956: 82 5a 1e r10 = u64 [r5 + 0x1e] + 5959: ab a4 be 02 jump 6661 if r4 != r10 + : @252 + 5963: 33 0c a5 00 r12 = 0xa5 + 5967: 33 03 00 e0 06 r3 = 0x6e000 + 5972: 83 33 d7 fe i32 r3 = r3 + 0xfffffffffffffed7 + 5976: 97 33 0d r3 = r3 << 0xd + 5979: 95 33 d8 f9 r3 = r3 + 0xfffffffffffff9d8 + 5983: 33 04 00 e0 dc 00 r4 = 0xdce000 + 5989: 83 44 d7 f8 i32 r4 = r4 + 0xfffffffffffff8d7 + 5993: 97 44 0c r4 = r4 << 0xc + 5996: 95 44 f5 03 r4 = r4 + 0x3f5 + 6000: 97 44 0d r4 = r4 << 0xd + 6003: 95 44 bf fe r4 = r4 + 0xfffffffffffffebf + 6007: 97 44 0d r4 = r4 << 0xd + 6010: 95 44 da fb r4 = r4 + 0xfffffffffffffbda + 6014: 7a 53 1d u32 [r5 + 0x1d] = r3 + 6017: 82 5a 1f r10 = u64 [r5 + 0x1f] + 6020: ab a4 81 02 jump 6661 if r4 != r10 + : @253 + 6024: 33 0c a6 00 r12 = 0xa6 + 6028: 33 03 dc 00 r3 = 0xdc + 6032: 33 04 00 90 r4 = 0xffffffffffff9000 + 6036: 83 44 dc 01 i32 r4 = r4 + 0x1dc + 6040: 78 53 3f u8 [r5 + 0x3f] = t1 + 6043: 7f 5a 3f r10 = i16 [r5 + 0x3f] + 6046: ab a4 67 02 jump 6661 if r4 != r10 + : @254 + 6050: 33 0c a7 00 r12 = 0xa7 + 6054: 33 03 dd 00 r3 = 0xdd + 6058: 33 04 00 e0 00 r4 = 0xe000 + 6063: 83 44 dc fd i32 r4 = r4 + 0xfffffffffffffddc + 6067: 78 53 40 u8 [r5 + 0x40] = t1 + 6070: 7e 5a 3f r10 = u16 [r5 + 0x3f] + 6073: ab a4 4c 02 jump 6661 if r4 != r10 + : @255 + 6077: 33 0c a8 00 r12 = 0xa8 + 6081: 33 03 00 e0 00 r3 = 0xe000 + 6086: 83 33 de i32 r3 = r3 + 0xffffffffffffffde + 6089: 33 04 00 e0 dd 92 r4 = 0xffffffff92dde000 + 6095: 83 44 de i32 r4 = r4 + 0xffffffffffffffde + 6098: 79 53 3e u16 [r5 + 0x3e] = r3 + 6101: 81 5a 3e r10 = i32 [r5 + 0x3e] + 6104: ab a4 2d 02 jump 6661 if r4 != r10 + : @256 + 6108: 33 0c a9 00 r12 = 0xa9 + 6112: 33 03 00 e0 00 r3 = 0xe000 + 6117: 83 33 e0 01 i32 r3 = r3 + 0x1e0 + 6121: 33 04 00 e0 e1 92 r4 = 0xffffffff92e1e000 + 6127: 83 44 de 00 i32 r4 = r4 + 0xde + 6131: 79 53 3f u16 [r5 + 0x3f] = r3 + 6134: 81 5a 3e r10 = i32 [r5 + 0x3e] + 6137: ab a4 0c 02 jump 6661 if r4 != r10 + : @257 + 6141: 33 0c aa 00 r12 = 0xaa + 6145: 33 03 00 e0 00 r3 = 0xe000 + 6150: 83 33 e2 03 i32 r3 = r3 + 0x3e2 + 6154: 33 04 00 e0 e2 e3 r4 = 0xffffffffe3e2e000 + 6160: 83 44 de 00 i32 r4 = r4 + 0xde + 6164: 79 53 40 u16 [r5 + 0x40] = r3 + 6167: 81 5a 3e r10 = i32 [r5 + 0x3e] + 6170: ab a4 eb 01 jump 6661 if r4 != r10 + : @258 + 6174: 33 0c ab 00 r12 = 0xab + 6178: 33 03 e4 00 r3 = 0xe4 + 6182: 33 04 00 a0 04 r4 = 0x4a000 + 6187: 83 44 1f ff i32 r4 = r4 + 0xffffffffffffff1f + 6191: 97 44 0d r4 = r4 << 0xd + 6194: 95 44 e0 04 r4 = r4 + 0x4e0 + 6198: 78 53 40 u8 [r5 + 0x40] = t1 + 6201: 80 5a 3f r10 = u32 [r5 + 0x3f] + 6204: ab a4 c9 01 jump 6661 if r4 != r10 + : @259 + 6208: 33 0c ac 00 r12 = 0xac + 6212: 33 03 00 e0 00 r3 = 0xe000 + 6217: 83 33 e5 06 i32 r3 = r3 + 0x6e5 + 6221: 33 04 00 30 07 r4 = 0x73000 + 6226: 83 44 2f 07 i32 r4 = r4 + 0x72f + 6230: 97 44 0d r4 = r4 << 0xd + 6233: 95 44 80 fe r4 = r4 + 0xfffffffffffffe80 + 6237: 79 53 3f u16 [r5 + 0x3f] = r3 + 6240: 80 5a 3d r10 = u32 [r5 + 0x3d] + 6243: ab a4 a2 01 jump 6661 if r4 != r10 + : @260 + 6247: 33 0c ad 00 r12 = 0xad + 6251: 33 03 00 f0 00 r3 = 0xf000 + 6256: 83 33 e7 f8 i32 r3 = r3 + 0xfffffffffffff8e7 + 6260: 33 04 00 40 07 r4 = 0x74000 + 6265: 83 44 3f 07 i32 r4 = r4 + 0x73f + 6269: 97 44 0d r4 = r4 << 0xd + 6272: 95 44 de 05 r4 = r4 + 0x5de + 6276: 79 53 40 u16 [r5 + 0x40] = r3 + 6279: 80 5a 3e r10 = u32 [r5 + 0x3e] + 6282: ab a4 7b 01 jump 6661 if r4 != r10 + : @261 + 6286: 33 0c ae 00 r12 = 0xae + 6290: 33 03 e9 00 r3 = 0xe9 + 6294: 33 04 00 d0 d3 r4 = 0xffffffffffd3d000 + 6299: 83 44 bd fb i32 r4 = r4 + 0xfffffffffffffbbd + 6303: 97 44 0c r4 = r4 << 0xc + 6306: 95 44 0f r4 = r4 + 0xf + 6309: 97 44 0f r4 = r4 << 0xf + 6312: 95 44 07 07 r4 = r4 + 0x707 + 6316: 97 44 0c r4 = r4 << 0xc + 6319: 95 44 60 f8 r4 = r4 + 0xfffffffffffff860 + 6323: 78 53 40 u8 [r5 + 0x40] = t1 + 6326: 82 5a 39 r10 = u64 [r5 + 0x39] + 6329: ab a4 4c 01 jump 6661 if r4 != r10 + : @262 + 6333: 33 0c af 00 r12 = 0xaf + 6337: 33 03 00 f0 00 r3 = 0xf000 + 6342: 83 33 ea fb i32 r3 = r3 + 0xfffffffffffffbea + 6346: 33 04 00 d0 d7 d1 r4 = 0xffffffffd1d7d000 + 6352: 83 44 bd 05 i32 r4 = r4 + 0x5bd + 6356: 97 44 13 r4 = r4 << 0x13 + 6359: 95 44 87 07 r4 = r4 + 0x787 + 6363: 97 44 0c r4 = r4 << 0xc + 6366: 95 44 68 r4 = r4 + 0x68 + 6369: 79 53 3f u16 [r5 + 0x3f] = r3 + 6372: 82 5a 3a r10 = u64 [r5 + 0x3a] + 6375: ab a4 1e 01 jump 6661 if r4 != r10 + : @263 + 6379: 33 0c b0 00 r12 = 0xb0 + 6383: 33 03 00 f0 00 r3 = 0xf000 + 6388: 83 33 ec fd i32 r3 = r3 + 0xfffffffffffffdec + 6392: 33 04 00 f0 c9 r4 = 0xffffffffffc9f000 + 6397: 83 44 77 04 i32 r4 = r4 + 0x477 + 6401: 97 44 0c r4 = r4 << 0xc + 6404: 95 44 67 ff r4 = r4 + 0xffffffffffffff67 + 6408: 97 44 0e r4 = r4 << 0xe + 6411: 95 44 01 fd r4 = r4 + 0xfffffffffffffd01 + 6415: 97 44 0f r4 = r4 << 0xf + 6418: 95 44 70 f8 r4 = r4 + 0xfffffffffffff870 + 6422: 79 53 3f u16 [r5 + 0x3f] = r3 + 6425: 82 5a 3b r10 = u64 [r5 + 0x3b] + 6428: ab a4 e9 00 jump 6661 if r4 != r10 + : @264 + 6432: 33 0c b1 00 r12 = 0xb1 + 6436: 33 03 00 20 0f r3 = 0xf2000 + 6441: 83 33 0f ff i32 r3 = r3 + 0xffffffffffffff0f + 6445: 97 33 0c r3 = r3 << 0xc + 6448: 95 33 ee r3 = r3 + 0xffffffffffffffee + 6451: 33 04 00 20 ff r4 = 0xffffffffffff2000 + 6456: 83 44 0f ff i32 r4 = r4 + 0xffffffffffffff0f + 6460: 97 44 10 r4 = r4 << 0x10 + 6463: 95 44 ef fe r4 = r4 + 0xfffffffffffffeef + 6467: 97 44 0d r4 = r4 << 0xd + 6470: 95 44 bd f9 r4 = r4 + 0xfffffffffffff9bd + 6474: 97 44 0f r4 = r4 << 0xf + 6477: 95 44 78 r4 = r4 + 0x78 + 6480: 7a 53 40 u32 [r5 + 0x40] = r3 + 6483: 82 5a 3c r10 = u64 [r5 + 0x3c] + 6486: ab a4 af 00 jump 6661 if r4 != r10 + : @265 + 6490: 33 0c b2 00 r12 = 0xb2 + 6494: 33 03 00 60 0f r3 = 0xf6000 + 6499: 83 33 4f ff i32 r3 = r3 + 0xffffffffffffff4f + 6503: 97 33 0c r3 = r3 << 0xc + 6506: 95 33 f2 03 r3 = r3 + 0x3f2 + 6510: 33 04 00 00 cb r4 = 0xffffffffffcb0000 + 6515: 83 44 fb f8 i32 r4 = r4 + 0xfffffffffffff8fb + 6519: 97 44 0f r4 = r4 << 0xf + 6522: 95 44 3d fd r4 = r4 + 0xfffffffffffffd3d + 6526: 97 44 0d r4 = r4 << 0xd + 6529: 95 44 97 r4 = r4 + 0xffffffffffffff97 + 6532: 97 44 0d r4 = r4 << 0xd + 6535: 95 44 80 fe r4 = r4 + 0xfffffffffffffe80 + 6539: 7a 53 3f u32 [r5 + 0x3f] = r3 + 6542: 82 5a 3d r10 = u64 [r5 + 0x3d] + 6545: ab a4 74 jump 6661 if r4 != r10 + : @266 + 6548: 33 0c b3 00 r12 = 0xb3 + 6552: 33 03 00 a0 0f r3 = 0xfa000 + 6557: 83 33 8f i32 r3 = r3 + 0xffffffffffffff8f + 6560: 97 33 0c r3 = r3 << 0xc + 6563: 95 33 f6 07 r3 = r3 + 0x7f6 + 6567: 33 04 00 50 cb r4 = 0xffffffffffcb5000 + 6572: 83 44 f9 fa i32 r4 = r4 + 0xfffffffffffffaf9 + 6576: 97 44 10 r4 = r4 << 0x10 + 6579: 95 44 fd fa r4 = r4 + 0xfffffffffffffafd + 6583: 97 44 0d r4 = r4 << 0xd + 6586: 95 44 8f r4 = r4 + 0xffffffffffffff8f + 6589: 97 44 0c r4 = r4 << 0xc + 6592: 95 44 f6 07 r4 = r4 + 0x7f6 + 6596: 7a 53 3e u32 [r5 + 0x3e] = r3 + 6599: 82 5a 3e r10 = u64 [r5 + 0x3e] + 6602: ab a4 3b jump 6661 if r4 != r10 + : @267 + 6605: 33 0c b4 00 r12 = 0xb4 + 6609: 33 03 00 00 01 r3 = 0x10000 + 6614: 83 33 fd fd i32 r3 = r3 + 0xfffffffffffffdfd + 6618: 97 33 10 r3 = r3 << 0x10 + 6621: 95 33 fa fb r3 = r3 + 0xfffffffffffffbfa + 6625: 33 04 00 50 cb cb r4 = 0xffffffffcbcb5000 + 6631: 83 44 f9 fa i32 r4 = r4 + 0xfffffffffffffaf9 + 6635: 97 44 10 r4 = r4 << 0x10 + 6638: 95 44 fd fa r4 = r4 + 0xfffffffffffffafd + 6642: 97 44 11 r4 = r4 << 0x11 + 6645: 95 44 fc fd r4 = r4 + 0xfffffffffffffdfc + 6649: 7a 53 3d u32 [r5 + 0x3d] = r3 + 6652: 82 5a 3f r10 = u64 [r5 + 0x3f] + 6655: ab a4 06 jump 6661 if r4 != r10 + : @268 + 6658: 52 0c 04 jump 6662 if r12 != 0 + : @269 + 6661: 00 trap + : @270 + 6662: 28 fa e5 jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r3 = 0xfdfcfbfa (initially was 0x0) + * r4 = 0x979695f1f5f9fdfc (initially was 0x0) + * r5 = 0x30000 (initially was 0x0) + * r10 = 0x979695f1f5f9fdfc (initially was 0x0) + * r12 = 0xb4 (initially was 0x0) + +Final non-zero memory chunks: + * 0x10002-0x10003 (0x1 bytes) = [0x03] + * 0x30001-0x30019 (0x18 bytes) = [0x9a, 0xa5, 0xa1, 0xa2, 0xaa, 0xab, 0xae, 0xaf, 0xb2, 0xb3, 0xb6, 0xb7, 0xb8, 0xb9, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18] + * 0x3001a-0x3017f (0x165 bytes) = [0x08, 0x10, 0x18, 0xd8, 0xd9, 0xda, 0xdb, 0xd7, 0xd3, 0xcf, 0x35, 0x36, 0x37, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x60, 0x68, 0x70, 0x78, 0xfa, 0xfb, 0xfc, 0xfd, 0xf9, 0xf5, 0xf1, 0x95, 0x96, 0x97, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50] + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 8261 + + +## riscv_rv64ui_or + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 08 00 00 01 r8 = 0x10000 + 21: 83 88 01 ff i32 r8 = r8 + 0xffffffffffffff01 + 25: 97 88 10 r8 = r8 << 0x10 + 28: 95 88 00 ff r8 = r8 + 0xffffffffffffff00 + 32: 33 09 00 10 0f 0f r9 = 0xf0f1000 + 38: 83 99 0f ff i32 r9 = r9 + 0xffffffffffffff0f + 42: d4 98 0b r11 = r8 | r9 + 45: 33 04 00 10 r4 = 0x1000 + 49: 83 44 f1 i32 r4 = r4 + 0xfffffffffffffff1 + 52: 97 44 14 r4 = r4 << 0x14 + 55: 95 44 0f ff r4 = r4 + 0xffffffffffffff0f + 59: ab 4b fa 04 jump 1333 if r11 != r4 + : @2 + 63: 33 05 03 r5 = 0x3 + 66: 33 08 00 10 f0 0f r8 = 0xff01000 + 72: 83 88 f0 i32 r8 = r8 + 0xfffffffffffffff0 + 75: 33 09 00 10 0f r9 = 0xf1000 + 80: 83 99 0f ff i32 r9 = r9 + 0xffffffffffffff0f + 84: 97 99 0c r9 = r9 << 0xc + 87: 95 99 f0 00 r9 = r9 + 0xf0 + 91: d4 98 0b r11 = r8 | r9 + 94: 33 04 00 00 01 r4 = 0x10000 + 99: 83 44 f1 i32 r4 = r4 + 0xfffffffffffffff1 + 102: 97 44 10 r4 = r4 << 0x10 + 105: 95 44 f0 r4 = r4 + 0xfffffffffffffff0 + 108: ab 4b c9 04 jump 1333 if r11 != r4 + : @3 + 112: 33 05 04 r5 = 0x4 + 115: 33 08 00 00 ff 00 r8 = 0xff0000 + 121: 83 88 ff 00 i32 r8 = r8 + 0xff + 125: 33 09 00 10 0f 0f r9 = 0xf0f1000 + 131: 83 99 0f ff i32 r9 = r9 + 0xffffffffffffff0f + 135: d4 98 0b r11 = r8 | r9 + 138: 33 04 00 10 ff 0f r4 = 0xfff1000 + 144: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 147: ab 4b a2 04 jump 1333 if r11 != r4 + : @4 + 151: 33 05 05 r5 = 0x5 + 154: 33 08 00 00 0f r8 = 0xf0000 + 159: 83 88 ff 00 i32 r8 = r8 + 0xff + 163: 97 88 0c r8 = r8 << 0xc + 166: 95 88 0f r8 = r8 + 0xf + 169: 33 09 00 10 0f r9 = 0xf1000 + 174: 83 99 0f ff i32 r9 = r9 + 0xffffffffffffff0f + 178: 97 99 0c r9 = r9 << 0xc + 181: 95 99 f0 00 r9 = r9 + 0xf0 + 185: d4 98 0b r11 = r8 | r9 + 188: 33 04 00 10 0f r4 = 0xf1000 + 193: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 196: 97 44 0c r4 = r4 << 0xc + 199: 95 44 ff 00 r4 = r4 + 0xff + 203: ab 4b 6a 04 jump 1333 if r11 != r4 + : @5 + 207: 33 05 06 r5 = 0x6 + 210: 33 08 00 00 01 r8 = 0x10000 + 215: 83 88 01 ff i32 r8 = r8 + 0xffffffffffffff01 + 219: 97 88 10 r8 = r8 << 0x10 + 222: 95 88 00 ff r8 = r8 + 0xffffffffffffff00 + 226: 33 09 00 10 0f 0f r9 = 0xf0f1000 + 232: 83 99 0f ff i32 r9 = r9 + 0xffffffffffffff0f + 236: d4 98 08 r8 = r8 | r9 + 239: 33 04 00 10 r4 = 0x1000 + 243: 83 44 f1 i32 r4 = r4 + 0xfffffffffffffff1 + 246: 97 44 14 r4 = r4 << 0x14 + 249: 95 44 0f ff r4 = r4 + 0xffffffffffffff0f + 253: ab 48 38 04 jump 1333 if r8 != r4 + : @6 + 257: 33 05 07 r5 = 0x7 + 260: 33 08 00 00 01 r8 = 0x10000 + 265: 83 88 01 ff i32 r8 = r8 + 0xffffffffffffff01 + 269: 97 88 10 r8 = r8 << 0x10 + 272: 95 88 00 ff r8 = r8 + 0xffffffffffffff00 + 276: 33 09 00 10 0f 0f r9 = 0xf0f1000 + 282: 83 99 0f ff i32 r9 = r9 + 0xffffffffffffff0f + 286: d4 98 09 r9 = r8 | r9 + 289: 33 04 00 10 r4 = 0x1000 + 293: 83 44 f1 i32 r4 = r4 + 0xfffffffffffffff1 + 296: 97 44 14 r4 = r4 << 0x14 + 299: 95 44 0f ff r4 = r4 + 0xffffffffffffff0f + 303: ab 49 06 04 jump 1333 if r9 != r4 + : @7 + 307: 33 05 08 r5 = 0x8 + 310: 33 08 00 00 01 r8 = 0x10000 + 315: 83 88 01 ff i32 r8 = r8 + 0xffffffffffffff01 + 319: 97 88 10 r8 = r8 << 0x10 + 322: 95 88 00 ff r8 = r8 + 0xffffffffffffff00 + 326: d4 88 08 r8 = r8 | r8 + 329: 33 04 00 00 01 r4 = 0x10000 + 334: 83 44 01 ff i32 r4 = r4 + 0xffffffffffffff01 + 338: 97 44 10 r4 = r4 << 0x10 + 341: 95 44 00 ff r4 = r4 + 0xffffffffffffff00 + 345: ab 48 dc 03 jump 1333 if r8 != r4 + : @8 + 349: 33 05 09 r5 = 0x9 + 352: 33 0a r10 = 0 + 354: 01 fallthrough + : @9 + 355: 33 00 00 00 01 r0 = 0x10000 + 360: 83 00 01 ff i32 r0 = r0 + 0xffffffffffffff01 + 364: 97 00 10 r0 = r0 << 0x10 + 367: 95 00 00 ff r0 = r0 + 0xffffffffffffff00 + 371: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 377: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 381: d4 10 0b r11 = r0 | r1 + 384: 64 b3 r3 = r11 + 386: 95 aa 01 r10 = r10 + 0x1 + 389: 33 02 02 r2 = 0x2 + 392: ab 2a db jump 355 if r10 != r2 + : @10 + 395: 33 04 00 10 r4 = 0x1000 + 399: 83 44 f1 i32 r4 = r4 + 0xfffffffffffffff1 + 402: 97 44 14 r4 = r4 << 0x14 + 405: 95 44 0f ff r4 = r4 + 0xffffffffffffff0f + 409: ab 43 9c 03 jump 1333 if r3 != r4 + : @11 + 413: 33 05 0a r5 = 0xa + 416: 33 0a r10 = 0 + 418: 01 fallthrough + : @12 + 419: 33 00 00 10 f0 0f r0 = 0xff01000 + 425: 83 00 f0 i32 r0 = r0 + 0xfffffffffffffff0 + 428: 33 01 00 10 0f r1 = 0xf1000 + 433: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 437: 97 11 0c r1 = r1 << 0xc + 440: 95 11 f0 00 r1 = r1 + 0xf0 + 444: d4 10 0b r11 = r0 | r1 + 447: 64 b3 r3 = r11 + 449: 95 aa 01 r10 = r10 + 0x1 + 452: 33 02 02 r2 = 0x2 + 455: ab 2a dc jump 419 if r10 != r2 + : @13 + 458: 33 04 00 00 01 r4 = 0x10000 + 463: 83 44 f1 i32 r4 = r4 + 0xfffffffffffffff1 + 466: 97 44 10 r4 = r4 << 0x10 + 469: 95 44 f0 r4 = r4 + 0xfffffffffffffff0 + 472: ab 43 5d 03 jump 1333 if r3 != r4 + : @14 + 476: 33 05 0b r5 = 0xb + 479: 33 0a r10 = 0 + 481: 01 fallthrough + : @15 + 482: 33 00 00 00 ff 00 r0 = 0xff0000 + 488: 83 00 ff 00 i32 r0 = r0 + 0xff + 492: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 498: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 502: d4 10 0b r11 = r0 | r1 + 505: 64 b3 r3 = r11 + 507: 95 aa 01 r10 = r10 + 0x1 + 510: 33 02 02 r2 = 0x2 + 513: ab 2a e1 jump 482 if r10 != r2 + : @16 + 516: 33 04 00 10 ff 0f r4 = 0xfff1000 + 522: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 525: ab 43 28 03 jump 1333 if r3 != r4 + : @17 + 529: 33 05 0c r5 = 0xc + 532: 33 0a r10 = 0 + 534: 01 fallthrough + : @18 + 535: 33 00 00 00 01 r0 = 0x10000 + 540: 83 00 01 ff i32 r0 = r0 + 0xffffffffffffff01 + 544: 97 00 10 r0 = r0 << 0x10 + 547: 95 00 00 ff r0 = r0 + 0xffffffffffffff00 + 551: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 557: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 561: d4 10 0b r11 = r0 | r1 + 564: 95 aa 01 r10 = r10 + 0x1 + 567: 33 02 02 r2 = 0x2 + 570: ab 2a dd jump 535 if r10 != r2 + : @19 + 573: 33 04 00 10 r4 = 0x1000 + 577: 83 44 f1 i32 r4 = r4 + 0xfffffffffffffff1 + 580: 97 44 14 r4 = r4 << 0x14 + 583: 95 44 0f ff r4 = r4 + 0xffffffffffffff0f + 587: ab 4b ea 02 jump 1333 if r11 != r4 + : @20 + 591: 33 05 0d r5 = 0xd + 594: 33 0a r10 = 0 + 596: 01 fallthrough + : @21 + 597: 33 00 00 10 f0 0f r0 = 0xff01000 + 603: 83 00 f0 i32 r0 = r0 + 0xfffffffffffffff0 + 606: 33 01 00 10 0f r1 = 0xf1000 + 611: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 615: 97 11 0c r1 = r1 << 0xc + 618: 95 11 f0 00 r1 = r1 + 0xf0 + 622: d4 10 0b r11 = r0 | r1 + 625: 95 aa 01 r10 = r10 + 0x1 + 628: 33 02 02 r2 = 0x2 + 631: ab 2a de jump 597 if r10 != r2 + : @22 + 634: 33 04 00 00 01 r4 = 0x10000 + 639: 83 44 f1 i32 r4 = r4 + 0xfffffffffffffff1 + 642: 97 44 10 r4 = r4 << 0x10 + 645: 95 44 f0 r4 = r4 + 0xfffffffffffffff0 + 648: ab 4b ad 02 jump 1333 if r11 != r4 + : @23 + 652: 33 05 0e r5 = 0xe + 655: 33 0a r10 = 0 + 657: 01 fallthrough + : @24 + 658: 33 00 00 00 ff 00 r0 = 0xff0000 + 664: 83 00 ff 00 i32 r0 = r0 + 0xff + 668: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 674: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 678: d4 10 0b r11 = r0 | r1 + 681: 95 aa 01 r10 = r10 + 0x1 + 684: 33 02 02 r2 = 0x2 + 687: ab 2a e3 jump 658 if r10 != r2 + : @25 + 690: 33 04 00 10 ff 0f r4 = 0xfff1000 + 696: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 699: ab 4b 7a 02 jump 1333 if r11 != r4 + : @26 + 703: 33 05 0f r5 = 0xf + 706: 33 0a r10 = 0 + 708: 01 fallthrough + : @27 + 709: 33 00 00 00 01 r0 = 0x10000 + 714: 83 00 01 ff i32 r0 = r0 + 0xffffffffffffff01 + 718: 97 00 10 r0 = r0 << 0x10 + 721: 95 00 00 ff r0 = r0 + 0xffffffffffffff00 + 725: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 731: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 735: d4 10 0b r11 = r0 | r1 + 738: 95 aa 01 r10 = r10 + 0x1 + 741: 33 02 02 r2 = 0x2 + 744: ab 2a dd jump 709 if r10 != r2 + : @28 + 747: 33 04 00 10 r4 = 0x1000 + 751: 83 44 f1 i32 r4 = r4 + 0xfffffffffffffff1 + 754: 97 44 14 r4 = r4 << 0x14 + 757: 95 44 0f ff r4 = r4 + 0xffffffffffffff0f + 761: ab 4b 3c 02 jump 1333 if r11 != r4 + : @29 + 765: 33 05 10 r5 = 0x10 + 768: 33 0a r10 = 0 + 770: 01 fallthrough + : @30 + 771: 33 00 00 10 f0 0f r0 = 0xff01000 + 777: 83 00 f0 i32 r0 = r0 + 0xfffffffffffffff0 + 780: 33 01 00 10 0f r1 = 0xf1000 + 785: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 789: 97 11 0c r1 = r1 << 0xc + 792: 95 11 f0 00 r1 = r1 + 0xf0 + 796: d4 10 0b r11 = r0 | r1 + 799: 95 aa 01 r10 = r10 + 0x1 + 802: 33 02 02 r2 = 0x2 + 805: ab 2a de jump 771 if r10 != r2 + : @31 + 808: 33 04 00 00 01 r4 = 0x10000 + 813: 83 44 f1 i32 r4 = r4 + 0xfffffffffffffff1 + 816: 97 44 10 r4 = r4 << 0x10 + 819: 95 44 f0 r4 = r4 + 0xfffffffffffffff0 + 822: ab 4b ff 01 jump 1333 if r11 != r4 + : @32 + 826: 33 05 11 r5 = 0x11 + 829: 33 0a r10 = 0 + 831: 01 fallthrough + : @33 + 832: 33 00 00 00 ff 00 r0 = 0xff0000 + 838: 83 00 ff 00 i32 r0 = r0 + 0xff + 842: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 848: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 852: d4 10 0b r11 = r0 | r1 + 855: 95 aa 01 r10 = r10 + 0x1 + 858: 33 02 02 r2 = 0x2 + 861: ab 2a e3 jump 832 if r10 != r2 + : @34 + 864: 33 04 00 10 ff 0f r4 = 0xfff1000 + 870: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 873: ab 4b cc 01 jump 1333 if r11 != r4 + : @35 + 877: 33 05 12 r5 = 0x12 + 880: 33 0a r10 = 0 + 882: 01 fallthrough + : @36 + 883: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 889: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 893: 33 00 00 00 01 r0 = 0x10000 + 898: 83 00 01 ff i32 r0 = r0 + 0xffffffffffffff01 + 902: 97 00 10 r0 = r0 << 0x10 + 905: 95 00 00 ff r0 = r0 + 0xffffffffffffff00 + 909: d4 10 0b r11 = r0 | r1 + 912: 95 aa 01 r10 = r10 + 0x1 + 915: 33 02 02 r2 = 0x2 + 918: ab 2a dd jump 883 if r10 != r2 + : @37 + 921: 33 04 00 10 r4 = 0x1000 + 925: 83 44 f1 i32 r4 = r4 + 0xfffffffffffffff1 + 928: 97 44 14 r4 = r4 << 0x14 + 931: 95 44 0f ff r4 = r4 + 0xffffffffffffff0f + 935: ab 4b 8e 01 jump 1333 if r11 != r4 + : @38 + 939: 33 05 13 r5 = 0x13 + 942: 33 0a r10 = 0 + 944: 01 fallthrough + : @39 + 945: 33 01 00 10 0f r1 = 0xf1000 + 950: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 954: 97 11 0c r1 = r1 << 0xc + 957: 95 11 f0 00 r1 = r1 + 0xf0 + 961: 33 00 00 10 f0 0f r0 = 0xff01000 + 967: 83 00 f0 i32 r0 = r0 + 0xfffffffffffffff0 + 970: d4 10 0b r11 = r0 | r1 + 973: 95 aa 01 r10 = r10 + 0x1 + 976: 33 02 02 r2 = 0x2 + 979: ab 2a de jump 945 if r10 != r2 + : @40 + 982: 33 04 00 00 01 r4 = 0x10000 + 987: 83 44 f1 i32 r4 = r4 + 0xfffffffffffffff1 + 990: 97 44 10 r4 = r4 << 0x10 + 993: 95 44 f0 r4 = r4 + 0xfffffffffffffff0 + 996: ab 4b 51 01 jump 1333 if r11 != r4 + : @41 + 1000: 33 05 14 r5 = 0x14 + 1003: 33 0a r10 = 0 + 1005: 01 fallthrough + : @42 + 1006: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 1012: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 1016: 33 00 00 00 ff 00 r0 = 0xff0000 + 1022: 83 00 ff 00 i32 r0 = r0 + 0xff + 1026: d4 10 0b r11 = r0 | r1 + 1029: 95 aa 01 r10 = r10 + 0x1 + 1032: 33 02 02 r2 = 0x2 + 1035: ab 2a e3 jump 1006 if r10 != r2 + : @43 + 1038: 33 04 00 10 ff 0f r4 = 0xfff1000 + 1044: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 1047: ab 4b 1e 01 jump 1333 if r11 != r4 + : @44 + 1051: 33 05 15 r5 = 0x15 + 1054: 33 0a r10 = 0 + 1056: 01 fallthrough + : @45 + 1057: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 1063: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 1067: 33 00 00 00 01 r0 = 0x10000 + 1072: 83 00 01 ff i32 r0 = r0 + 0xffffffffffffff01 + 1076: 97 00 10 r0 = r0 << 0x10 + 1079: 95 00 00 ff r0 = r0 + 0xffffffffffffff00 + 1083: d4 10 0b r11 = r0 | r1 + 1086: 95 aa 01 r10 = r10 + 0x1 + 1089: 33 02 02 r2 = 0x2 + 1092: ab 2a dd jump 1057 if r10 != r2 + : @46 + 1095: 33 04 00 10 r4 = 0x1000 + 1099: 83 44 f1 i32 r4 = r4 + 0xfffffffffffffff1 + 1102: 97 44 14 r4 = r4 << 0x14 + 1105: 95 44 0f ff r4 = r4 + 0xffffffffffffff0f + 1109: ab 4b e0 00 jump 1333 if r11 != r4 + : @47 + 1113: 33 05 16 r5 = 0x16 + 1116: 33 0a r10 = 0 + 1118: 01 fallthrough + : @48 + 1119: 33 01 00 10 0f r1 = 0xf1000 + 1124: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 1128: 97 11 0c r1 = r1 << 0xc + 1131: 95 11 f0 00 r1 = r1 + 0xf0 + 1135: 33 00 00 10 f0 0f r0 = 0xff01000 + 1141: 83 00 f0 i32 r0 = r0 + 0xfffffffffffffff0 + 1144: d4 10 0b r11 = r0 | r1 + 1147: 95 aa 01 r10 = r10 + 0x1 + 1150: 33 02 02 r2 = 0x2 + 1153: ab 2a de jump 1119 if r10 != r2 + : @49 + 1156: 33 04 00 00 01 r4 = 0x10000 + 1161: 83 44 f1 i32 r4 = r4 + 0xfffffffffffffff1 + 1164: 97 44 10 r4 = r4 << 0x10 + 1167: 95 44 f0 r4 = r4 + 0xfffffffffffffff0 + 1170: ab 4b a3 00 jump 1333 if r11 != r4 + : @50 + 1174: 33 05 17 r5 = 0x17 + 1177: 33 0a r10 = 0 + 1179: 01 fallthrough + : @51 + 1180: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 1186: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 1190: 33 00 00 00 ff 00 r0 = 0xff0000 + 1196: 83 00 ff 00 i32 r0 = r0 + 0xff + 1200: d4 10 0b r11 = r0 | r1 + 1203: 95 aa 01 r10 = r10 + 0x1 + 1206: 33 02 02 r2 = 0x2 + 1209: ab 2a e3 jump 1180 if r10 != r2 + : @52 + 1212: 33 04 00 10 ff 0f r4 = 0xfff1000 + 1218: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 1221: ab 4b 70 jump 1333 if r11 != r4 + : @53 + 1224: 33 05 18 r5 = 0x18 + 1227: 33 00 00 00 01 r0 = 0x10000 + 1232: 83 00 01 ff i32 r0 = r0 + 0xffffffffffffff01 + 1236: 97 00 10 r0 = r0 << 0x10 + 1239: 95 00 00 ff r0 = r0 + 0xffffffffffffff00 + 1243: 86 01 r1 = r0 | 0 + 1245: 33 04 00 00 01 r4 = 0x10000 + 1250: 83 44 01 ff i32 r4 = r4 + 0xffffffffffffff01 + 1254: 97 44 10 r4 = r4 << 0x10 + 1257: 95 44 00 ff r4 = r4 + 0xffffffffffffff00 + 1261: ab 41 48 jump 1333 if r1 != r4 + : @54 + 1264: 33 05 19 r5 = 0x19 + 1267: 33 00 00 00 ff 00 r0 = 0xff0000 + 1273: 83 00 ff 00 i32 r0 = r0 + 0xff + 1277: 86 01 r1 = r0 | 0 + 1279: 33 04 00 00 ff 00 r4 = 0xff0000 + 1285: 83 44 ff 00 i32 r4 = r4 + 0xff + 1289: ab 41 2c jump 1333 if r1 != r4 + : @55 + 1292: 33 05 1a r5 = 0x1a + 1295: 33 00 r0 = 0 + 1297: 33 04 r4 = 0 + 1299: ab 40 22 jump 1333 if r0 != r4 + : @56 + 1302: 33 05 1b r5 = 0x1b + 1305: 33 00 00 10 11 11 r0 = 0x11111000 + 1311: 83 00 11 01 i32 r0 = r0 + 0x111 + 1315: 33 01 00 20 22 22 r1 = 0x22222000 + 1321: 83 11 22 02 i32 r1 = r1 + 0x222 + 1325: 33 04 r4 = 0 + 1327: 52 04 06 jump 1333 if r4 != 0 + : @57 + 1330: 52 05 04 jump 1334 if r5 != 0 + : @58 + 1333: 00 trap + : @59 + 1334: 28 ca fa jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r1 = 0x22222222 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0xfff0fff (initially was 0x0) + * r5 = 0x1b (initially was 0x0) + * r8 = 0xff00ff00 (initially was 0x0) + * r9 = 0xff0fff0f (initially was 0x0) + * r10 = 0x2 (initially was 0x0) + * r11 = 0xfff0fff (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9482 + + +## riscv_rv64ui_ori + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 0a 00 00 01 ff r10 = 0xffffffffff010000 + 22: 83 aa 00 ff i32 r10 = r10 + 0xffffffffffffff00 + 26: 86 ab 0f ff r11 = r10 | 0xffffffffffffff0f + 30: 33 04 0f ff r4 = 0xffffffffffffff0f + 34: ab 4b a3 01 jump 453 if r11 != r4 + : @2 + 38: 33 05 03 r5 = 0x3 + 41: 33 0a 00 10 f0 0f r10 = 0xff01000 + 47: 83 aa f0 i32 r10 = r10 + 0xfffffffffffffff0 + 50: 86 ab f0 00 r11 = r10 | 0xf0 + 54: 33 04 00 10 f0 0f r4 = 0xff01000 + 60: 83 44 f0 i32 r4 = r4 + 0xfffffffffffffff0 + 63: ab 4b 86 01 jump 453 if r11 != r4 + : @3 + 67: 33 05 04 r5 = 0x4 + 70: 33 0a 00 00 ff 00 r10 = 0xff0000 + 76: 83 aa ff 00 i32 r10 = r10 + 0xff + 80: 86 ab 0f 07 r11 = r10 | 0x70f + 84: 33 04 00 00 ff 00 r4 = 0xff0000 + 90: 83 44 ff 07 i32 r4 = r4 + 0x7ff + 94: ab 4b 67 01 jump 453 if r11 != r4 + : @4 + 98: 33 05 05 r5 = 0x5 + 101: 33 0a 00 f0 0f f0 r10 = 0xfffffffff00ff000 + 107: 83 aa 0f i32 r10 = r10 + 0xf + 110: 86 ab f0 00 r11 = r10 | 0xf0 + 114: 33 04 00 f0 0f f0 r4 = 0xfffffffff00ff000 + 120: 83 44 ff 00 i32 r4 = r4 + 0xff + 124: ab 4b 49 01 jump 453 if r11 != r4 + : @5 + 128: 33 05 06 r5 = 0x6 + 131: 33 08 00 00 01 r8 = 0x10000 + 136: 83 88 01 ff i32 r8 = r8 + 0xffffffffffffff01 + 140: 97 88 10 r8 = r8 << 0x10 + 143: 95 88 00 ff r8 = r8 + 0xffffffffffffff00 + 147: 86 88 f0 00 r8 = r8 | 0xf0 + 151: 33 04 00 00 01 r4 = 0x10000 + 156: 83 44 01 ff i32 r4 = r4 + 0xffffffffffffff01 + 160: 97 44 10 r4 = r4 << 0x10 + 163: 95 44 f0 r4 = r4 + 0xfffffffffffffff0 + 166: ab 48 1f 01 jump 453 if r8 != r4 + : @6 + 170: 33 05 07 r5 = 0x7 + 173: 33 09 r9 = 0 + 175: 01 fallthrough + : @7 + 176: 33 00 00 10 f0 0f r0 = 0xff01000 + 182: 83 00 f0 i32 r0 = r0 + 0xfffffffffffffff0 + 185: 86 0b f0 00 r11 = r0 | 0xf0 + 189: 64 b3 r3 = r11 + 191: 95 99 01 r9 = r9 + 0x1 + 194: 33 02 02 r2 = 0x2 + 197: ab 29 eb jump 176 if r9 != r2 + : @8 + 200: 33 04 00 10 f0 0f r4 = 0xff01000 + 206: 83 44 f0 i32 r4 = r4 + 0xfffffffffffffff0 + 209: ab 43 f4 00 jump 453 if r3 != r4 + : @9 + 213: 33 05 08 r5 = 0x8 + 216: 33 09 r9 = 0 + 218: 01 fallthrough + : @10 + 219: 33 00 00 00 ff 00 r0 = 0xff0000 + 225: 83 00 ff 00 i32 r0 = r0 + 0xff + 229: 86 0b 0f 07 r11 = r0 | 0x70f + 233: 64 b3 r3 = r11 + 235: 95 99 01 r9 = r9 + 0x1 + 238: 33 02 02 r2 = 0x2 + 241: ab 29 ea jump 219 if r9 != r2 + : @11 + 244: 33 04 00 00 ff 00 r4 = 0xff0000 + 250: 83 44 ff 07 i32 r4 = r4 + 0x7ff + 254: ab 43 c7 00 jump 453 if r3 != r4 + : @12 + 258: 33 05 09 r5 = 0x9 + 261: 33 09 r9 = 0 + 263: 01 fallthrough + : @13 + 264: 33 00 00 f0 0f f0 r0 = 0xfffffffff00ff000 + 270: 83 00 0f i32 r0 = r0 + 0xf + 273: 86 0b f0 00 r11 = r0 | 0xf0 + 277: 64 b3 r3 = r11 + 279: 95 99 01 r9 = r9 + 0x1 + 282: 33 02 02 r2 = 0x2 + 285: ab 29 eb jump 264 if r9 != r2 + : @14 + 288: 33 04 00 f0 0f f0 r4 = 0xfffffffff00ff000 + 294: 83 44 ff 00 i32 r4 = r4 + 0xff + 298: ab 43 9b 00 jump 453 if r3 != r4 + : @15 + 302: 33 05 0a r5 = 0xa + 305: 33 09 r9 = 0 + 307: 01 fallthrough + : @16 + 308: 33 00 00 10 f0 0f r0 = 0xff01000 + 314: 83 00 f0 i32 r0 = r0 + 0xfffffffffffffff0 + 317: 86 0b f0 00 r11 = r0 | 0xf0 + 321: 95 99 01 r9 = r9 + 0x1 + 324: 33 02 02 r2 = 0x2 + 327: ab 29 ed jump 308 if r9 != r2 + : @17 + 330: 33 04 00 10 f0 0f r4 = 0xff01000 + 336: 83 44 f0 i32 r4 = r4 + 0xfffffffffffffff0 + 339: ab 4b 72 jump 453 if r11 != r4 + : @18 + 342: 33 05 0b r5 = 0xb + 345: 33 09 r9 = 0 + 347: 01 fallthrough + : @19 + 348: 33 00 00 00 ff 00 r0 = 0xff0000 + 354: 83 00 ff 00 i32 r0 = r0 + 0xff + 358: 86 0b 0f ff r11 = r0 | 0xffffffffffffff0f + 362: 95 99 01 r9 = r9 + 0x1 + 365: 33 02 02 r2 = 0x2 + 368: ab 29 ec jump 348 if r9 != r2 + : @20 + 371: 33 04 ff r4 = 0xffffffffffffffff + 374: ab 4b 4f jump 453 if r11 != r4 + : @21 + 377: 33 05 0c r5 = 0xc + 380: 33 09 r9 = 0 + 382: 01 fallthrough + : @22 + 383: 33 00 00 f0 0f f0 r0 = 0xfffffffff00ff000 + 389: 83 00 0f i32 r0 = r0 + 0xf + 392: 86 0b f0 00 r11 = r0 | 0xf0 + 396: 95 99 01 r9 = r9 + 0x1 + 399: 33 02 02 r2 = 0x2 + 402: ab 29 ed jump 383 if r9 != r2 + : @23 + 405: 33 04 00 f0 0f f0 r4 = 0xfffffffff00ff000 + 411: 83 44 ff 00 i32 r4 = r4 + 0xff + 415: ab 4b 26 jump 453 if r11 != r4 + : @24 + 418: 33 05 0d r5 = 0xd + 421: 33 00 f0 00 r0 = 0xf0 + 425: 33 04 f0 00 r4 = 0xf0 + 429: ab 40 18 jump 453 if r0 != r4 + : @25 + 432: 33 05 0e r5 = 0xe + 435: 33 00 00 00 ff 00 r0 = 0xff0000 + 441: 83 00 ff 00 i32 r0 = r0 + 0xff + 445: 33 04 r4 = 0 + 447: 52 04 06 jump 453 if r4 != 0 + : @26 + 450: 52 05 04 jump 454 if r5 != 0 + : @27 + 453: 00 trap + : @28 + 454: 28 3a fe jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0xfffffffff00ff0ff (initially was 0x0) + * r5 = 0xe (initially was 0x0) + * r8 = 0xff00fff0 (initially was 0x0) + * r9 = 0x2 (initially was 0x0) + * r10 = 0xfffffffff00ff00f (initially was 0x0) + * r11 = 0xfffffffff00ff0ff (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9834 + + +## riscv_rv64ui_sb + +Initial page map: + * RO: 0x10000-0x11000 (0x1000 bytes) + * RW: 0x30000-0x31000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x10002-0x10003 (0x1 bytes) = [0x03] + * 0x10008-0x10009 (0x1 bytes) = [0x02] + * 0x10010-0x10011 (0x1 bytes) = [0x04] + * 0x10018-0x10019 (0x1 bytes) = [0x06] + * 0x10020-0x10021 (0x1 bytes) = [0x08] + * 0x10028-0x10029 (0x1 bytes) = [0x07] + * 0x1002a-0x1002b (0x1 bytes) = [0x03] + * 0x10030-0x10031 (0x1 bytes) = [0x0a] + * 0x10038-0x10039 (0x1 bytes) = [0x0c] + * 0x10040-0x10041 (0x1 bytes) = [0x0e] + * 0x10048-0x10049 (0x1 bytes) = [0x10] + * 0x10050-0x10051 (0x1 bytes) = [0x08] + * 0x10052-0x10053 (0x1 bytes) = [0x03] + * 0x10058-0x10059 (0x1 bytes) = [0x09] + * 0x1005a-0x1005b (0x1 bytes) = [0x03] + * 0x30000-0x3000a (0xa bytes) = [0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef] + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 3a 01 00 00 01 r1 = u64 [0x10000] + 21: 33 00 aa r0 = 0xffffffffffffffaa + 24: 3a 0c 08 00 01 r12 = u64 [0x10008] + 29: 78 10 u8 [r1 + 0] = ra + 31: 7d 1b r11 = i8 [r1 + 0] + 33: 28 05 jump 38 + : @2 [@dyn 1] + 35: 64 0b r11 = r0 + 37: 01 fallthrough + : @3 + 38: 33 04 aa r4 = 0xffffffffffffffaa + 41: ab 4b f1 02 jump 794 if r11 != r4 + : @4 + 45: 33 05 03 r5 = 0x3 + 48: 3a 01 00 00 01 r1 = u64 [0x10000] + 53: 33 00 r0 = 0 + 55: 3a 0c 10 00 01 r12 = u64 [0x10010] + 60: 78 10 01 u8 [r1 + 0x1] = ra + 63: 7d 1b 01 r11 = i8 [r1 + 0x1] + 66: 28 05 jump 71 + : @5 [@dyn 2] + 68: 64 0b r11 = r0 + 70: 01 fallthrough + : @6 + 71: 33 04 r4 = 0 + 73: ab 4b d1 02 jump 794 if r11 != r4 + : @7 + 77: 33 05 04 r5 = 0x4 + 80: 3a 01 00 00 01 r1 = u64 [0x10000] + 85: 33 00 00 f0 r0 = 0xfffffffffffff000 + 89: 83 00 a0 i32 r0 = r0 + 0xffffffffffffffa0 + 92: 3a 0c 18 00 01 r12 = u64 [0x10018] + 97: 78 10 02 u8 [r1 + 0x2] = ra + 100: 7f 1b 02 r11 = i16 [r1 + 0x2] + 103: 28 05 jump 108 + : @8 [@dyn 3] + 105: 64 0b r11 = r0 + 107: 01 fallthrough + : @9 + 108: 33 04 00 f0 r4 = 0xfffffffffffff000 + 112: 83 44 a0 i32 r4 = r4 + 0xffffffffffffffa0 + 115: ab 4b a7 02 jump 794 if r11 != r4 + : @10 + 119: 33 05 05 r5 = 0x5 + 122: 3a 01 00 00 01 r1 = u64 [0x10000] + 127: 33 00 0a r0 = 0xa + 130: 3a 0c 20 00 01 r12 = u64 [0x10020] + 135: 78 10 03 u8 [r1 + 0x3] = ra + 138: 7d 1b 03 r11 = i8 [r1 + 0x3] + 141: 28 05 jump 146 + : @11 [@dyn 4] + 143: 64 0b r11 = r0 + 145: 01 fallthrough + : @12 + 146: 33 04 0a r4 = 0xa + 149: ab 4b 85 02 jump 794 if r11 != r4 + : @13 + 153: 33 05 06 r5 = 0x6 + 156: 3a 01 28 00 01 r1 = u64 [0x10028] + 161: 33 00 aa r0 = 0xffffffffffffffaa + 164: 3a 0c 30 00 01 r12 = u64 [0x10030] + 169: 78 10 fd u8 [r1 + 0xfffffffffffffffd] = ra + 172: 7d 1b fd r11 = i8 [r1 + 0xfffffffffffffffd] + 175: 28 05 jump 180 + : @14 [@dyn 5] + 177: 64 0b r11 = r0 + 179: 01 fallthrough + : @15 + 180: 33 04 aa r4 = 0xffffffffffffffaa + 183: ab 4b 63 02 jump 794 if r11 != r4 + : @16 + 187: 33 05 07 r5 = 0x7 + 190: 3a 01 28 00 01 r1 = u64 [0x10028] + 195: 33 00 r0 = 0 + 197: 3a 0c 38 00 01 r12 = u64 [0x10038] + 202: 78 10 fe u8 [r1 + 0xfffffffffffffffe] = ra + 205: 7d 1b fe r11 = i8 [r1 + 0xfffffffffffffffe] + 208: 28 05 jump 213 + : @17 [@dyn 6] + 210: 64 0b r11 = r0 + 212: 01 fallthrough + : @18 + 213: 33 04 r4 = 0 + 215: ab 4b 43 02 jump 794 if r11 != r4 + : @19 + 219: 33 05 08 r5 = 0x8 + 222: 3a 01 28 00 01 r1 = u64 [0x10028] + 227: 33 00 a0 r0 = 0xffffffffffffffa0 + 230: 3a 0c 40 00 01 r12 = u64 [0x10040] + 235: 78 10 ff u8 [r1 + 0xffffffffffffffff] = ra + 238: 7d 1b ff r11 = i8 [r1 + 0xffffffffffffffff] + 241: 28 05 jump 246 + : @20 [@dyn 7] + 243: 64 0b r11 = r0 + 245: 01 fallthrough + : @21 + 246: 33 04 a0 r4 = 0xffffffffffffffa0 + 249: ab 4b 21 02 jump 794 if r11 != r4 + : @22 + 253: 33 05 09 r5 = 0x9 + 256: 3a 01 28 00 01 r1 = u64 [0x10028] + 261: 33 00 0a r0 = 0xa + 264: 3a 0c 48 00 01 r12 = u64 [0x10048] + 269: 78 10 u8 [r1 + 0] = ra + 271: 7d 1b r11 = i8 [r1 + 0] + 273: 28 05 jump 278 + : @23 [@dyn 8] + 275: 64 0b r11 = r0 + 277: 01 fallthrough + : @24 + 278: 33 04 0a r4 = 0xa + 281: ab 4b 01 02 jump 794 if r11 != r4 + : @25 + 285: 33 05 0a r5 = 0xa + 288: 3a 00 50 00 01 r0 = u64 [0x10050] + 293: 33 01 00 50 34 12 r1 = 0x12345000 + 299: 83 11 78 06 i32 r1 = r1 + 0x678 + 303: 95 03 e0 r3 = r0 + 0xffffffffffffffe0 + 306: 78 31 20 u8 [r3 + 0x20] = sp + 309: 7d 02 r2 = i8 [r0 + 0] + 311: 33 04 78 r4 = 0x78 + 314: ab 42 e0 01 jump 794 if r2 != r4 + : @26 + 318: 33 05 0b r5 = 0xb + 321: 3a 00 50 00 01 r0 = u64 [0x10050] + 326: 33 01 00 30 r1 = 0x3000 + 330: 83 11 98 00 i32 r1 = r1 + 0x98 + 334: 95 00 fa r0 = r0 + 0xfffffffffffffffa + 337: 78 01 07 u8 [r0 + 0x7] = sp + 340: 3a 03 58 00 01 r3 = u64 [0x10058] + 345: 7d 32 r2 = i8 [r3 + 0] + 347: 33 04 98 r4 = 0xffffffffffffff98 + 350: ab 42 bc 01 jump 794 if r2 != r4 + : @27 + 354: 33 05 0c r5 = 0xc + 357: 33 03 r3 = 0 + 359: 01 fallthrough + : @28 + 360: 33 0a dd r10 = 0xffffffffffffffdd + 363: 3a 09 00 00 01 r9 = u64 [0x10000] + 368: 78 9a u8 [r9 + 0] = a3 + 370: 7d 9b r11 = i8 [r9 + 0] + 372: 33 04 dd r4 = 0xffffffffffffffdd + 375: ab 4b a3 01 jump 794 if r11 != r4 + : @29 + 379: 95 33 01 r3 = r3 + 0x1 + 382: 33 02 02 r2 = 0x2 + 385: ab 23 e7 jump 360 if r3 != r2 + : @30 + 388: 33 05 0d r5 = 0xd + 391: 33 03 r3 = 0 + 393: 01 fallthrough + : @31 + 394: 33 0a cd r10 = 0xffffffffffffffcd + 397: 3a 09 00 00 01 r9 = u64 [0x10000] + 402: 78 9a 01 u8 [r9 + 0x1] = a3 + 405: 7d 9b 01 r11 = i8 [r9 + 0x1] + 408: 33 04 cd r4 = 0xffffffffffffffcd + 411: ab 4b 7f 01 jump 794 if r11 != r4 + : @32 + 415: 95 33 01 r3 = r3 + 0x1 + 418: 33 02 02 r2 = 0x2 + 421: ab 23 e5 jump 394 if r3 != r2 + : @33 + 424: 33 05 0e r5 = 0xe + 427: 33 03 r3 = 0 + 429: 01 fallthrough + : @34 + 430: 33 0a cc r10 = 0xffffffffffffffcc + 433: 3a 09 00 00 01 r9 = u64 [0x10000] + 438: 78 9a 02 u8 [r9 + 0x2] = a3 + 441: 7d 9b 02 r11 = i8 [r9 + 0x2] + 444: 33 04 cc r4 = 0xffffffffffffffcc + 447: ab 4b 5b 01 jump 794 if r11 != r4 + : @35 + 451: 95 33 01 r3 = r3 + 0x1 + 454: 33 02 02 r2 = 0x2 + 457: ab 23 e5 jump 430 if r3 != r2 + : @36 + 460: 33 05 0f r5 = 0xf + 463: 33 03 r3 = 0 + 465: 01 fallthrough + : @37 + 466: 33 0a bc r10 = 0xffffffffffffffbc + 469: 3a 09 00 00 01 r9 = u64 [0x10000] + 474: 78 9a 03 u8 [r9 + 0x3] = a3 + 477: 7d 9b 03 r11 = i8 [r9 + 0x3] + 480: 33 04 bc r4 = 0xffffffffffffffbc + 483: ab 4b 37 01 jump 794 if r11 != r4 + : @38 + 487: 95 33 01 r3 = r3 + 0x1 + 490: 33 02 02 r2 = 0x2 + 493: ab 23 e5 jump 466 if r3 != r2 + : @39 + 496: 33 05 10 r5 = 0x10 + 499: 33 03 r3 = 0 + 501: 01 fallthrough + : @40 + 502: 33 0a bb r10 = 0xffffffffffffffbb + 505: 3a 09 00 00 01 r9 = u64 [0x10000] + 510: 78 9a 04 u8 [r9 + 0x4] = a3 + 513: 7d 9b 04 r11 = i8 [r9 + 0x4] + 516: 33 04 bb r4 = 0xffffffffffffffbb + 519: ab 4b 13 01 jump 794 if r11 != r4 + : @41 + 523: 95 33 01 r3 = r3 + 0x1 + 526: 33 02 02 r2 = 0x2 + 529: ab 23 e5 jump 502 if r3 != r2 + : @42 + 532: 33 05 11 r5 = 0x11 + 535: 33 03 r3 = 0 + 537: 01 fallthrough + : @43 + 538: 33 0a ab r10 = 0xffffffffffffffab + 541: 3a 09 00 00 01 r9 = u64 [0x10000] + 546: 78 9a 05 u8 [r9 + 0x5] = a3 + 549: 7d 9b 05 r11 = i8 [r9 + 0x5] + 552: 33 04 ab r4 = 0xffffffffffffffab + 555: ab 4b ef 00 jump 794 if r11 != r4 + : @44 + 559: 95 33 01 r3 = r3 + 0x1 + 562: 33 02 02 r2 = 0x2 + 565: ab 23 e5 jump 538 if r3 != r2 + : @45 + 568: 33 05 12 r5 = 0x12 + 571: 33 03 r3 = 0 + 573: 01 fallthrough + : @46 + 574: 3a 01 00 00 01 r1 = u64 [0x10000] + 579: 33 00 33 r0 = 0x33 + 582: 78 10 u8 [r1 + 0] = ra + 584: 7d 1b r11 = i8 [r1 + 0] + 586: 33 04 33 r4 = 0x33 + 589: ab 4b cd 00 jump 794 if r11 != r4 + : @47 + 593: 95 33 01 r3 = r3 + 0x1 + 596: 33 02 02 r2 = 0x2 + 599: ab 23 e7 jump 574 if r3 != r2 + : @48 + 602: 33 05 13 r5 = 0x13 + 605: 33 03 r3 = 0 + 607: 01 fallthrough + : @49 + 608: 3a 01 00 00 01 r1 = u64 [0x10000] + 613: 33 00 23 r0 = 0x23 + 616: 78 10 01 u8 [r1 + 0x1] = ra + 619: 7d 1b 01 r11 = i8 [r1 + 0x1] + 622: 33 04 23 r4 = 0x23 + 625: ab 4b a9 00 jump 794 if r11 != r4 + : @50 + 629: 95 33 01 r3 = r3 + 0x1 + 632: 33 02 02 r2 = 0x2 + 635: ab 23 e5 jump 608 if r3 != r2 + : @51 + 638: 33 05 14 r5 = 0x14 + 641: 33 03 r3 = 0 + 643: 01 fallthrough + : @52 + 644: 3a 01 00 00 01 r1 = u64 [0x10000] + 649: 33 00 22 r0 = 0x22 + 652: 78 10 02 u8 [r1 + 0x2] = ra + 655: 7d 1b 02 r11 = i8 [r1 + 0x2] + 658: 33 04 22 r4 = 0x22 + 661: ab 4b 85 00 jump 794 if r11 != r4 + : @53 + 665: 95 33 01 r3 = r3 + 0x1 + 668: 33 02 02 r2 = 0x2 + 671: ab 23 e5 jump 644 if r3 != r2 + : @54 + 674: 33 05 15 r5 = 0x15 + 677: 33 03 r3 = 0 + 679: 01 fallthrough + : @55 + 680: 3a 01 00 00 01 r1 = u64 [0x10000] + 685: 33 00 12 r0 = 0x12 + 688: 78 10 03 u8 [r1 + 0x3] = ra + 691: 7d 1b 03 r11 = i8 [r1 + 0x3] + 694: 33 04 12 r4 = 0x12 + 697: ab 4b 61 jump 794 if r11 != r4 + : @56 + 700: 95 33 01 r3 = r3 + 0x1 + 703: 33 02 02 r2 = 0x2 + 706: ab 23 e6 jump 680 if r3 != r2 + : @57 + 709: 33 05 16 r5 = 0x16 + 712: 33 03 r3 = 0 + 714: 01 fallthrough + : @58 + 715: 3a 01 00 00 01 r1 = u64 [0x10000] + 720: 33 00 11 r0 = 0x11 + 723: 78 10 04 u8 [r1 + 0x4] = ra + 726: 7d 1b 04 r11 = i8 [r1 + 0x4] + 729: 33 04 11 r4 = 0x11 + 732: ab 4b 3e jump 794 if r11 != r4 + : @59 + 735: 95 33 01 r3 = r3 + 0x1 + 738: 33 02 02 r2 = 0x2 + 741: ab 23 e6 jump 715 if r3 != r2 + : @60 + 744: 33 05 17 r5 = 0x17 + 747: 33 03 r3 = 0 + 749: 01 fallthrough + : @61 + 750: 3a 01 00 00 01 r1 = u64 [0x10000] + 755: 33 00 01 r0 = 0x1 + 758: 78 10 05 u8 [r1 + 0x5] = ra + 761: 7d 1b 05 r11 = i8 [r1 + 0x5] + 764: 33 04 01 r4 = 0x1 + 767: ab 4b 1b jump 794 if r11 != r4 + : @62 + 770: 95 33 01 r3 = r3 + 0x1 + 773: 33 02 02 r2 = 0x2 + 776: ab 23 e6 jump 750 if r3 != r2 + : @63 + 779: 33 07 ef 00 r7 = 0xef + 783: 3a 08 00 00 01 r8 = u64 [0x10000] + 788: 78 87 03 u8 [r8 + 0x3] = a0 + 791: 52 05 04 jump 795 if r5 != 0 + : @64 + 794: 00 trap + : @65 + 795: 28 e5 fc jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r1 = 0x30000 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0x2 (initially was 0x0) + * r4 = 0x1 (initially was 0x0) + * r5 = 0x17 (initially was 0x0) + * r7 = 0xef (initially was 0x0) + * r8 = 0x30000 (initially was 0x0) + * r9 = 0x30000 (initially was 0x0) + * r10 = 0xffffffffffffffab (initially was 0x0) + * r11 = 0x1 (initially was 0x0) + * r12 = 0x10 (initially was 0x0) + +Final non-zero memory chunks: + * 0x10002-0x10003 (0x1 bytes) = [0x03] + * 0x10008-0x10009 (0x1 bytes) = [0x02] + * 0x10010-0x10011 (0x1 bytes) = [0x04] + * 0x10018-0x10019 (0x1 bytes) = [0x06] + * 0x10020-0x10021 (0x1 bytes) = [0x08] + * 0x10028-0x10029 (0x1 bytes) = [0x07] + * 0x1002a-0x1002b (0x1 bytes) = [0x03] + * 0x10030-0x10031 (0x1 bytes) = [0x0a] + * 0x10038-0x10039 (0x1 bytes) = [0x0c] + * 0x10040-0x10041 (0x1 bytes) = [0x0e] + * 0x10048-0x10049 (0x1 bytes) = [0x10] + * 0x10050-0x10051 (0x1 bytes) = [0x08] + * 0x10052-0x10053 (0x1 bytes) = [0x03] + * 0x10058-0x10059 (0x1 bytes) = [0x09] + * 0x1005a-0x1005b (0x1 bytes) = [0x03] + * 0x30000-0x3000a (0xa bytes) = [0x33, 0x23, 0x22, 0xef, 0x11, 0x01, 0xa0, 0x0a, 0x78, 0x98] + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9646 + + +## riscv_rv64ui_sd + +Initial page map: + * RO: 0x10000-0x11000 (0x1000 bytes) + * RW: 0x30000-0x31000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x10002-0x10003 (0x1 bytes) = [0x03] + * 0x10008-0x10009 (0x1 bytes) = [0x02] + * 0x10010-0x10011 (0x1 bytes) = [0x04] + * 0x10018-0x10019 (0x1 bytes) = [0x06] + * 0x10020-0x10021 (0x1 bytes) = [0x08] + * 0x10028-0x10029 (0x1 bytes) = [0x38] + * 0x1002a-0x1002b (0x1 bytes) = [0x03] + * 0x10030-0x10031 (0x1 bytes) = [0x0a] + * 0x10038-0x10039 (0x1 bytes) = [0x0c] + * 0x10040-0x10041 (0x1 bytes) = [0x0e] + * 0x10048-0x10049 (0x1 bytes) = [0x10] + * 0x10050-0x10051 (0x1 bytes) = [0x40] + * 0x10052-0x10053 (0x1 bytes) = [0x03] + * 0x10058-0x10059 (0x1 bytes) = [0x48] + * 0x1005a-0x1005b (0x1 bytes) = [0x03] + * 0x30000-0x30050 (0x50 bytes) = [0xef, 0xbe, 0xad, 0xde, 0xef, 0xbe, 0xad, 0xde, 0xef, 0xbe, 0xad, 0xde, 0xef, 0xbe, 0xad, 0xde, 0xef, 0xbe, 0xad, 0xde, 0xef, 0xbe, 0xad, 0xde, 0xef, 0xbe, 0xad, 0xde, 0xef, 0xbe, 0xad, 0xde, 0xef, 0xbe, 0xad, 0xde, 0xef, 0xbe, 0xad, 0xde, 0xef, 0xbe, 0xad, 0xde, 0xef, 0xbe, 0xad, 0xde, 0xef, 0xbe, 0xad, 0xde, 0xef, 0xbe, 0xad, 0xde, 0xef, 0xbe, 0xad, 0xde, 0xef, 0xbe, 0xad, 0xde, 0xef, 0xbe, 0xad, 0xde, 0xef, 0xbe, 0xad, 0xde, 0xef, 0xbe, 0xad, 0xde, 0xef, 0xbe, 0xad, 0xde] + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 3a 01 00 00 01 r1 = u64 [0x10000] + 21: 33 00 00 00 55 r0 = 0x550000 + 26: 83 00 55 i32 r0 = r0 + 0x55 + 29: 97 00 10 r0 = r0 << 0x10 + 32: 95 00 55 r0 = r0 + 0x55 + 35: 97 00 11 r0 = r0 << 0x11 + 38: 95 00 aa 00 r0 = r0 + 0xaa + 42: 3a 0c 08 00 01 r12 = u64 [0x10008] + 47: 7b 10 u64 [r1 + 0] = r0 + 49: 82 1b r11 = u64 [r1 + 0] + 51: 28 05 jump 56 + : @2 [@dyn 1] + 53: 64 0b r11 = r0 + 55: 01 fallthrough + : @3 + 56: 33 04 00 00 55 r4 = 0x550000 + 61: 83 44 55 i32 r4 = r4 + 0x55 + 64: 97 44 10 r4 = r4 << 0x10 + 67: 95 44 55 r4 = r4 + 0x55 + 70: 97 44 11 r4 = r4 << 0x11 + 73: 95 44 aa 00 r4 = r4 + 0xaa + 77: ab 4b 29 05 jump 1398 if r11 != r4 + : @4 + 81: 33 05 03 r5 = 0x3 + 84: 3a 01 00 00 01 r1 = u64 [0x10000] + 89: 33 00 00 00 d5 r0 = 0xffffffffffd50000 + 94: 83 00 55 i32 r0 = r0 + 0x55 + 97: 97 00 10 r0 = r0 << 0x10 + 100: 95 00 55 r0 = r0 + 0x55 + 103: 97 00 0d r0 = r0 << 0xd + 106: 95 00 0b r0 = r0 + 0xb + 109: 97 00 0c r0 = r0 << 0xc + 112: 95 00 00 fa r0 = r0 + 0xfffffffffffffa00 + 116: 3a 0c 10 00 01 r12 = u64 [0x10010] + 121: 7b 10 08 u64 [r1 + 0x8] = r0 + 124: 82 1b 08 r11 = u64 [r1 + 0x8] + 127: 28 05 jump 132 + : @5 [@dyn 2] + 129: 64 0b r11 = r0 + 131: 01 fallthrough + : @6 + 132: 33 04 00 00 d5 r4 = 0xffffffffffd50000 + 137: 83 44 55 i32 r4 = r4 + 0x55 + 140: 97 44 10 r4 = r4 << 0x10 + 143: 95 44 55 r4 = r4 + 0x55 + 146: 97 44 0d r4 = r4 << 0xd + 149: 95 44 0b r4 = r4 + 0xb + 152: 97 44 0c r4 = r4 << 0xc + 155: 95 44 00 fa r4 = r4 + 0xfffffffffffffa00 + 159: ab 4b d7 04 jump 1398 if r11 != r4 + : @7 + 163: 33 05 04 r5 = 0x4 + 166: 3a 01 00 00 01 r1 = u64 [0x10000] + 171: 33 00 00 00 55 r0 = 0x550000 + 176: 83 00 55 i32 r0 = r0 + 0x55 + 179: 97 00 0d r0 = r0 << 0xd + 182: 95 00 0b r0 = r0 + 0xb + 185: 97 00 0c r0 = r0 << 0xc + 188: 95 00 01 fa r0 = r0 + 0xfffffffffffffa01 + 192: 97 00 0c r0 = r0 << 0xc + 195: 95 00 a0 fa r0 = r0 + 0xfffffffffffffaa0 + 199: 3a 0c 18 00 01 r12 = u64 [0x10018] + 204: 7b 10 10 u64 [r1 + 0x10] = r0 + 207: 82 1b 10 r11 = u64 [r1 + 0x10] + 210: 28 05 jump 215 + : @8 [@dyn 3] + 212: 64 0b r11 = r0 + 214: 01 fallthrough + : @9 + 215: 33 04 00 00 55 r4 = 0x550000 + 220: 83 44 55 i32 r4 = r4 + 0x55 + 223: 97 44 0d r4 = r4 << 0xd + 226: 95 44 0b r4 = r4 + 0xb + 229: 97 44 0c r4 = r4 << 0xc + 232: 95 44 01 fa r4 = r4 + 0xfffffffffffffa01 + 236: 97 44 0c r4 = r4 << 0xc + 239: 95 44 a0 fa r4 = r4 + 0xfffffffffffffaa0 + 243: ab 4b 83 04 jump 1398 if r11 != r4 + : @10 + 247: 33 05 05 r5 = 0x5 + 250: 3a 01 00 00 01 r1 = u64 [0x10000] + 255: 33 00 00 00 fd r0 = 0xfffffffffffd0000 + 260: 83 00 55 i32 r0 = r0 + 0x55 + 263: 97 00 10 r0 = r0 << 0x10 + 266: 95 00 55 r0 = r0 + 0x55 + 269: 97 00 10 r0 = r0 << 0x10 + 272: 95 00 55 r0 = r0 + 0x55 + 275: 97 00 0d r0 = r0 << 0xd + 278: 95 00 0a r0 = r0 + 0xa + 281: 3a 0c 20 00 01 r12 = u64 [0x10020] + 286: 7b 10 18 u64 [r1 + 0x18] = r0 + 289: 82 1b 18 r11 = u64 [r1 + 0x18] + 292: 28 05 jump 297 + : @11 [@dyn 4] + 294: 64 0b r11 = r0 + 296: 01 fallthrough + : @12 + 297: 33 04 00 00 fd r4 = 0xfffffffffffd0000 + 302: 83 44 55 i32 r4 = r4 + 0x55 + 305: 97 44 10 r4 = r4 << 0x10 + 308: 95 44 55 r4 = r4 + 0x55 + 311: 97 44 10 r4 = r4 << 0x10 + 314: 95 44 55 r4 = r4 + 0x55 + 317: 97 44 0d r4 = r4 << 0xd + 320: 95 44 0a r4 = r4 + 0xa + 323: ab 4b 33 04 jump 1398 if r11 != r4 + : @13 + 327: 33 05 06 r5 = 0x6 + 330: 3a 01 28 00 01 r1 = u64 [0x10028] + 335: 33 00 00 00 55 r0 = 0x550000 + 340: 83 00 55 i32 r0 = r0 + 0x55 + 343: 97 00 10 r0 = r0 << 0x10 + 346: 95 00 55 r0 = r0 + 0x55 + 349: 97 00 11 r0 = r0 << 0x11 + 352: 95 00 aa 00 r0 = r0 + 0xaa + 356: 3a 0c 30 00 01 r12 = u64 [0x10030] + 361: 7b 10 e8 u64 [r1 + 0xffffffffffffffe8] = r0 + 364: 82 1b e8 r11 = u64 [r1 + 0xffffffffffffffe8] + 367: 28 05 jump 372 + : @14 [@dyn 5] + 369: 64 0b r11 = r0 + 371: 01 fallthrough + : @15 + 372: 33 04 00 00 55 r4 = 0x550000 + 377: 83 44 55 i32 r4 = r4 + 0x55 + 380: 97 44 10 r4 = r4 << 0x10 + 383: 95 44 55 r4 = r4 + 0x55 + 386: 97 44 11 r4 = r4 << 0x11 + 389: 95 44 aa 00 r4 = r4 + 0xaa + 393: ab 4b ed 03 jump 1398 if r11 != r4 + : @16 + 397: 33 05 07 r5 = 0x7 + 400: 3a 01 28 00 01 r1 = u64 [0x10028] + 405: 33 00 00 00 d5 r0 = 0xffffffffffd50000 + 410: 83 00 55 i32 r0 = r0 + 0x55 + 413: 97 00 10 r0 = r0 << 0x10 + 416: 95 00 55 r0 = r0 + 0x55 + 419: 97 00 0d r0 = r0 << 0xd + 422: 95 00 0b r0 = r0 + 0xb + 425: 97 00 0c r0 = r0 << 0xc + 428: 95 00 00 fa r0 = r0 + 0xfffffffffffffa00 + 432: 3a 0c 38 00 01 r12 = u64 [0x10038] + 437: 7b 10 f0 u64 [r1 + 0xfffffffffffffff0] = r0 + 440: 82 1b f0 r11 = u64 [r1 + 0xfffffffffffffff0] + 443: 28 05 jump 448 + : @17 [@dyn 6] + 445: 64 0b r11 = r0 + 447: 01 fallthrough + : @18 + 448: 33 04 00 00 d5 r4 = 0xffffffffffd50000 + 453: 83 44 55 i32 r4 = r4 + 0x55 + 456: 97 44 10 r4 = r4 << 0x10 + 459: 95 44 55 r4 = r4 + 0x55 + 462: 97 44 0d r4 = r4 << 0xd + 465: 95 44 0b r4 = r4 + 0xb + 468: 97 44 0c r4 = r4 << 0xc + 471: 95 44 00 fa r4 = r4 + 0xfffffffffffffa00 + 475: ab 4b 9b 03 jump 1398 if r11 != r4 + : @19 + 479: 33 05 08 r5 = 0x8 + 482: 3a 01 28 00 01 r1 = u64 [0x10028] + 487: 33 00 00 00 55 r0 = 0x550000 + 492: 83 00 55 i32 r0 = r0 + 0x55 + 495: 97 00 0d r0 = r0 << 0xd + 498: 95 00 0b r0 = r0 + 0xb + 501: 97 00 0c r0 = r0 << 0xc + 504: 95 00 01 fa r0 = r0 + 0xfffffffffffffa01 + 508: 97 00 0c r0 = r0 << 0xc + 511: 95 00 a0 fa r0 = r0 + 0xfffffffffffffaa0 + 515: 3a 0c 40 00 01 r12 = u64 [0x10040] + 520: 7b 10 f8 u64 [r1 + 0xfffffffffffffff8] = r0 + 523: 82 1b f8 r11 = u64 [r1 + 0xfffffffffffffff8] + 526: 28 05 jump 531 + : @20 [@dyn 7] + 528: 64 0b r11 = r0 + 530: 01 fallthrough + : @21 + 531: 33 04 00 00 55 r4 = 0x550000 + 536: 83 44 55 i32 r4 = r4 + 0x55 + 539: 97 44 0d r4 = r4 << 0xd + 542: 95 44 0b r4 = r4 + 0xb + 545: 97 44 0c r4 = r4 << 0xc + 548: 95 44 01 fa r4 = r4 + 0xfffffffffffffa01 + 552: 97 44 0c r4 = r4 << 0xc + 555: 95 44 a0 fa r4 = r4 + 0xfffffffffffffaa0 + 559: ab 4b 47 03 jump 1398 if r11 != r4 + : @22 + 563: 33 05 09 r5 = 0x9 + 566: 3a 01 28 00 01 r1 = u64 [0x10028] + 571: 33 00 00 00 fd r0 = 0xfffffffffffd0000 + 576: 83 00 55 i32 r0 = r0 + 0x55 + 579: 97 00 10 r0 = r0 << 0x10 + 582: 95 00 55 r0 = r0 + 0x55 + 585: 97 00 10 r0 = r0 << 0x10 + 588: 95 00 55 r0 = r0 + 0x55 + 591: 97 00 0d r0 = r0 << 0xd + 594: 95 00 0a r0 = r0 + 0xa + 597: 3a 0c 48 00 01 r12 = u64 [0x10048] + 602: 7b 10 u64 [r1 + 0] = r0 + 604: 82 1b r11 = u64 [r1 + 0] + 606: 28 05 jump 611 + : @23 [@dyn 8] + 608: 64 0b r11 = r0 + 610: 01 fallthrough + : @24 + 611: 33 04 00 00 fd r4 = 0xfffffffffffd0000 + 616: 83 44 55 i32 r4 = r4 + 0x55 + 619: 97 44 10 r4 = r4 << 0x10 + 622: 95 44 55 r4 = r4 + 0x55 + 625: 97 44 10 r4 = r4 << 0x10 + 628: 95 44 55 r4 = r4 + 0x55 + 631: 97 44 0d r4 = r4 << 0xd + 634: 95 44 0a r4 = r4 + 0xa + 637: ab 4b f9 02 jump 1398 if r11 != r4 + : @25 + 641: 33 05 0a r5 = 0xa + 644: 3a 00 50 00 01 r0 = u64 [0x10050] + 649: 33 01 00 70 24 r1 = 0x247000 + 654: 83 11 ad f8 i32 r1 = r1 + 0xfffffffffffff8ad + 658: 97 11 0e r1 = r1 << 0xe + 661: 95 11 09 fc r1 = r1 + 0xfffffffffffffc09 + 665: 97 11 0d r1 = r1 << 0xd + 668: 95 11 45 03 r1 = r1 + 0x345 + 672: 97 11 0c r1 = r1 << 0xc + 675: 95 11 78 06 r1 = r1 + 0x678 + 679: 95 07 e0 r7 = r0 + 0xffffffffffffffe0 + 682: 7b 71 20 u64 [r7 + 0x20] = r1 + 685: 82 02 r2 = u64 [r0 + 0] + 687: 33 04 00 70 24 r4 = 0x247000 + 692: 83 44 ad f8 i32 r4 = r4 + 0xfffffffffffff8ad + 696: 97 44 0e r4 = r4 << 0xe + 699: 95 44 09 fc r4 = r4 + 0xfffffffffffffc09 + 703: 97 44 0d r4 = r4 << 0xd + 706: 95 44 45 03 r4 = r4 + 0x345 + 710: 97 44 0c r4 = r4 << 0xc + 713: 95 44 78 06 r4 = r4 + 0x678 + 717: ab 42 a9 02 jump 1398 if r2 != r4 + : @26 + 721: 33 05 0b r5 = 0xb + 724: 3a 00 50 00 01 r0 = u64 [0x10050] + 729: 33 01 00 40 b0 00 r1 = 0xb04000 + 735: 83 11 61 02 i32 r1 = r1 + 0x261 + 739: 97 11 0c r1 = r1 << 0xc + 742: 95 11 0b 03 r1 = r1 + 0x30b + 746: 97 11 0f r1 = r1 << 0xf + 749: 95 11 13 02 r1 = r1 + 0x213 + 753: 97 11 0c r1 = r1 << 0xc + 756: 95 11 98 00 r1 = r1 + 0x98 + 760: 95 00 fd r0 = r0 + 0xfffffffffffffffd + 763: 7b 01 0b u64 [r0 + 0xb] = r1 + 766: 3a 07 58 00 01 r7 = u64 [0x10058] + 771: 82 72 r2 = u64 [r7 + 0] + 773: 33 04 00 40 b0 00 r4 = 0xb04000 + 779: 83 44 61 02 i32 r4 = r4 + 0x261 + 783: 97 44 0c r4 = r4 << 0xc + 786: 95 44 0b 03 r4 = r4 + 0x30b + 790: 97 44 0f r4 = r4 << 0xf + 793: 95 44 13 02 r4 = r4 + 0x213 + 797: 97 44 0c r4 = r4 << 0xc + 800: 95 44 98 00 r4 = r4 + 0x98 + 804: ab 42 52 02 jump 1398 if r2 != r4 + : @27 + 808: 33 05 0c r5 = 0xc + 811: 33 07 r7 = 0 + 813: 01 fallthrough + : @28 + 814: 33 0a 00 d0 bb 0a r10 = 0xabbd000 + 820: 83 aa dd fc i32 r10 = r10 + 0xfffffffffffffcdd + 824: 3a 09 00 00 01 r9 = u64 [0x10000] + 829: 7b 9a u64 [r9 + 0] = r10 + 831: 82 9b r11 = u64 [r9 + 0] + 833: 33 04 00 d0 bb 0a r4 = 0xabbd000 + 839: 83 44 dd fc i32 r4 = r4 + 0xfffffffffffffcdd + 843: ab 4b 2b 02 jump 1398 if r11 != r4 + : @29 + 847: 95 77 01 r7 = r7 + 0x1 + 850: 33 02 02 r2 = 0x2 + 853: ab 27 d9 jump 814 if r7 != r2 + : @30 + 856: 33 05 0d r5 = 0xd + 859: 33 07 r7 = 0 + 861: 01 fallthrough + : @31 + 862: 33 0a 00 c0 ab 0a r10 = 0xaabc000 + 868: 83 aa cd fc i32 r10 = r10 + 0xfffffffffffffccd + 872: 3a 09 00 00 01 r9 = u64 [0x10000] + 877: 7b 9a 08 u64 [r9 + 0x8] = r10 + 880: 82 9b 08 r11 = u64 [r9 + 0x8] + 883: 33 04 00 c0 ab 0a r4 = 0xaabc000 + 889: 83 44 cd fc i32 r4 = r4 + 0xfffffffffffffccd + 893: ab 4b f9 01 jump 1398 if r11 != r4 + : @32 + 897: 95 77 01 r7 = r7 + 0x1 + 900: 33 02 02 r2 = 0x2 + 903: ab 27 d7 jump 862 if r7 != r2 + : @33 + 906: 33 05 0e r5 = 0xe + 909: 33 07 r7 = 0 + 911: 01 fallthrough + : @34 + 912: 33 0a 00 c0 aa 0d r10 = 0xdaac000 + 918: 83 aa cc fb i32 r10 = r10 + 0xfffffffffffffbcc + 922: 3a 09 00 00 01 r9 = u64 [0x10000] + 927: 7b 9a 10 u64 [r9 + 0x10] = r10 + 930: 82 9b 10 r11 = u64 [r9 + 0x10] + 933: 33 04 00 c0 aa 0d r4 = 0xdaac000 + 939: 83 44 cc fb i32 r4 = r4 + 0xfffffffffffffbcc + 943: ab 4b c7 01 jump 1398 if r11 != r4 + : @35 + 947: 95 77 01 r7 = r7 + 0x1 + 950: 33 02 02 r2 = 0x2 + 953: ab 27 d7 jump 912 if r7 != r2 + : @36 + 956: 33 05 0f r5 = 0xf + 959: 33 07 r7 = 0 + 961: 01 fallthrough + : @37 + 962: 33 0a 00 b0 da 0d r10 = 0xddab000 + 968: 83 aa bc fb i32 r10 = r10 + 0xfffffffffffffbbc + 972: 3a 09 00 00 01 r9 = u64 [0x10000] + 977: 7b 9a 18 u64 [r9 + 0x18] = r10 + 980: 82 9b 18 r11 = u64 [r9 + 0x18] + 983: 33 04 00 b0 da 0d r4 = 0xddab000 + 989: 83 44 bc fb i32 r4 = r4 + 0xfffffffffffffbbc + 993: ab 4b 95 01 jump 1398 if r11 != r4 + : @38 + 997: 95 77 01 r7 = r7 + 0x1 + 1000: 33 02 02 r2 = 0x2 + 1003: ab 27 d7 jump 962 if r7 != r2 + : @39 + 1006: 33 05 10 r5 = 0x10 + 1009: 33 07 r7 = 0 + 1011: 01 fallthrough + : @40 + 1012: 33 0a 00 b0 dd 0c r10 = 0xcddb000 + 1018: 83 aa bb fa i32 r10 = r10 + 0xfffffffffffffabb + 1022: 3a 09 00 00 01 r9 = u64 [0x10000] + 1027: 7b 9a 20 u64 [r9 + 0x20] = r10 + 1030: 82 9b 20 r11 = u64 [r9 + 0x20] + 1033: 33 04 00 b0 dd 0c r4 = 0xcddb000 + 1039: 83 44 bb fa i32 r4 = r4 + 0xfffffffffffffabb + 1043: ab 4b 63 01 jump 1398 if r11 != r4 + : @41 + 1047: 95 77 01 r7 = r7 + 0x1 + 1050: 33 02 02 r2 = 0x2 + 1053: ab 27 d7 jump 1012 if r7 != r2 + : @42 + 1056: 33 05 11 r5 = 0x11 + 1059: 33 07 r7 = 0 + 1061: 01 fallthrough + : @43 + 1062: 33 0a 00 e0 cd 0c r10 = 0xccde000 + 1068: 83 aa ab fa i32 r10 = r10 + 0xfffffffffffffaab + 1072: 3a 09 00 00 01 r9 = u64 [0x10000] + 1077: 7b 9a 28 u64 [r9 + 0x28] = r10 + 1080: 82 9b 28 r11 = u64 [r9 + 0x28] + 1083: 33 04 00 e0 cd 0c r4 = 0xccde000 + 1089: 83 44 ab fa i32 r4 = r4 + 0xfffffffffffffaab + 1093: ab 4b 31 01 jump 1398 if r11 != r4 + : @44 + 1097: 95 77 01 r7 = r7 + 0x1 + 1100: 33 02 02 r2 = 0x2 + 1103: ab 27 d7 jump 1062 if r7 != r2 + : @45 + 1106: 33 05 12 r5 = 0x12 + 1109: 33 07 r7 = 0 + 1111: 01 fallthrough + : @46 + 1112: 3a 01 00 00 01 r1 = u64 [0x10000] + 1117: 33 00 00 20 11 r0 = 0x112000 + 1122: 83 00 33 02 i32 r0 = r0 + 0x233 + 1126: 7b 10 u64 [r1 + 0] = r0 + 1128: 82 1b r11 = u64 [r1 + 0] + 1130: 33 04 00 20 11 r4 = 0x112000 + 1135: 83 44 33 02 i32 r4 = r4 + 0x233 + 1139: ab 4b 03 01 jump 1398 if r11 != r4 + : @47 + 1143: 95 77 01 r7 = r7 + 0x1 + 1146: 33 02 02 r2 = 0x2 + 1149: ab 27 db jump 1112 if r7 != r2 + : @48 + 1152: 33 05 13 r5 = 0x13 + 1155: 33 07 r7 = 0 + 1157: 01 fallthrough + : @49 + 1158: 3a 01 00 00 01 r1 = u64 [0x10000] + 1163: 33 00 00 10 01 30 r0 = 0x30011000 + 1169: 83 00 23 02 i32 r0 = r0 + 0x223 + 1173: 7b 10 08 u64 [r1 + 0x8] = r0 + 1176: 82 1b 08 r11 = u64 [r1 + 0x8] + 1179: 33 04 00 10 01 30 r4 = 0x30011000 + 1185: 83 44 23 02 i32 r4 = r4 + 0x223 + 1189: ab 4b d1 00 jump 1398 if r11 != r4 + : @50 + 1193: 95 77 01 r7 = r7 + 0x1 + 1196: 33 02 02 r2 = 0x2 + 1199: ab 27 d7 jump 1158 if r7 != r2 + : @51 + 1202: 33 05 14 r5 = 0x14 + 1205: 33 07 r7 = 0 + 1207: 01 fallthrough + : @52 + 1208: 3a 01 00 00 01 r1 = u64 [0x10000] + 1213: 33 00 00 10 00 33 r0 = 0x33001000 + 1219: 83 00 22 01 i32 r0 = r0 + 0x122 + 1223: 7b 10 10 u64 [r1 + 0x10] = r0 + 1226: 82 1b 10 r11 = u64 [r1 + 0x10] + 1229: 33 04 00 10 00 33 r4 = 0x33001000 + 1235: 83 44 22 01 i32 r4 = r4 + 0x122 + 1239: ab 4b 9f 00 jump 1398 if r11 != r4 + : @53 + 1243: 95 77 01 r7 = r7 + 0x1 + 1246: 33 02 02 r2 = 0x2 + 1249: ab 27 d7 jump 1208 if r7 != r2 + : @54 + 1252: 33 05 15 r5 = 0x15 + 1255: 33 07 r7 = 0 + 1257: 01 fallthrough + : @55 + 1258: 3a 01 00 00 01 r1 = u64 [0x10000] + 1263: 33 00 00 00 30 23 r0 = 0x23300000 + 1269: 83 00 12 01 i32 r0 = r0 + 0x112 + 1273: 7b 10 18 u64 [r1 + 0x18] = r0 + 1276: 82 1b 18 r11 = u64 [r1 + 0x18] + 1279: 33 04 00 00 30 23 r4 = 0x23300000 + 1285: 83 44 12 01 i32 r4 = r4 + 0x112 + 1289: ab 4b 6d jump 1398 if r11 != r4 + : @56 + 1292: 95 77 01 r7 = r7 + 0x1 + 1295: 33 02 02 r2 = 0x2 + 1298: ab 27 d8 jump 1258 if r7 != r2 + : @57 + 1301: 33 05 16 r5 = 0x16 + 1304: 33 07 r7 = 0 + 1306: 01 fallthrough + : @58 + 1307: 3a 01 00 00 01 r1 = u64 [0x10000] + 1312: 33 00 00 00 33 22 r0 = 0x22330000 + 1318: 83 00 11 i32 r0 = r0 + 0x11 + 1321: 7b 10 20 u64 [r1 + 0x20] = r0 + 1324: 82 1b 20 r11 = u64 [r1 + 0x20] + 1327: 33 04 00 00 33 22 r4 = 0x22330000 + 1333: 83 44 11 i32 r4 = r4 + 0x11 + 1336: ab 4b 3e jump 1398 if r11 != r4 + : @59 + 1339: 95 77 01 r7 = r7 + 0x1 + 1342: 33 02 02 r2 = 0x2 + 1345: ab 27 da jump 1307 if r7 != r2 + : @60 + 1348: 33 05 17 r5 = 0x17 + 1351: 33 07 r7 = 0 + 1353: 01 fallthrough + : @61 + 1354: 3a 01 00 00 01 r1 = u64 [0x10000] + 1359: 33 00 00 30 23 12 r0 = 0x12233000 + 1365: 83 00 01 i32 r0 = r0 + 0x1 + 1368: 7b 10 28 u64 [r1 + 0x28] = r0 + 1371: 82 1b 28 r11 = u64 [r1 + 0x28] + 1374: 33 04 00 30 23 12 r4 = 0x12233000 + 1380: 83 44 01 i32 r4 = r4 + 0x1 + 1383: ab 4b 0f jump 1398 if r11 != r4 + : @62 + 1386: 95 77 01 r7 = r7 + 0x1 + 1389: 33 02 02 r2 = 0x2 + 1392: ab 27 da jump 1354 if r7 != r2 + : @63 + 1395: 52 05 04 jump 1399 if r5 != 0 + : @64 + 1398: 00 trap + : @65 + 1399: 28 89 fa jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r1 = 0x30000 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r4 = 0x12233001 (initially was 0x0) + * r5 = 0x17 (initially was 0x0) + * r7 = 0x2 (initially was 0x0) + * r9 = 0x30000 (initially was 0x0) + * r10 = 0xccddaab (initially was 0x0) + * r11 = 0x12233001 (initially was 0x0) + * r12 = 0x10 (initially was 0x0) + +Final non-zero memory chunks: + * 0x10002-0x10003 (0x1 bytes) = [0x03] + * 0x10008-0x10009 (0x1 bytes) = [0x02] + * 0x10010-0x10011 (0x1 bytes) = [0x04] + * 0x10018-0x10019 (0x1 bytes) = [0x06] + * 0x10020-0x10021 (0x1 bytes) = [0x08] + * 0x10028-0x10029 (0x1 bytes) = [0x38] + * 0x1002a-0x1002b (0x1 bytes) = [0x03] + * 0x10030-0x10031 (0x1 bytes) = [0x0a] + * 0x10038-0x10039 (0x1 bytes) = [0x0c] + * 0x10040-0x10041 (0x1 bytes) = [0x0e] + * 0x10048-0x10049 (0x1 bytes) = [0x10] + * 0x10050-0x10051 (0x1 bytes) = [0x40] + * 0x10052-0x10053 (0x1 bytes) = [0x03] + * 0x10058-0x10059 (0x1 bytes) = [0x48] + * 0x1005a-0x1005b (0x1 bytes) = [0x03] + * 0x30000-0x30003 (0x3 bytes) = [0x33, 0x22, 0x11] + * 0x30008-0x3000c (0x4 bytes) = [0x23, 0x12, 0x01, 0x30] + * 0x30010-0x30012 (0x2 bytes) = [0x22, 0x11] + * 0x30013-0x30014 (0x1 bytes) = [0x33] + * 0x30018-0x3001c (0x4 bytes) = [0x12, 0x01, 0x30, 0x23] + * 0x30020-0x30021 (0x1 bytes) = [0x11] + * 0x30022-0x30024 (0x2 bytes) = [0x33, 0x22] + * 0x30028-0x3002c (0x4 bytes) = [0x01, 0x30, 0x23, 0x12] + * 0x30030-0x30050 (0x20 bytes) = [0xa0, 0x0a, 0xa0, 0x0a, 0xa0, 0x0a, 0xa0, 0x0a, 0x0a, 0xa0, 0x0a, 0xa0, 0x0a, 0xa0, 0x0a, 0xa0, 0x78, 0x56, 0x34, 0x12, 0x78, 0x56, 0x34, 0x12, 0x98, 0x30, 0x21, 0x58, 0x98, 0x30, 0x21, 0x58] + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9473 + + +## riscv_rv64ui_sh + +Initial page map: + * RO: 0x10000-0x11000 (0x1000 bytes) + * RW: 0x30000-0x31000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x10002-0x10003 (0x1 bytes) = [0x03] + * 0x10008-0x10009 (0x1 bytes) = [0x02] + * 0x10010-0x10011 (0x1 bytes) = [0x04] + * 0x10018-0x10019 (0x1 bytes) = [0x06] + * 0x10020-0x10021 (0x1 bytes) = [0x08] + * 0x10028-0x10029 (0x1 bytes) = [0x0e] + * 0x1002a-0x1002b (0x1 bytes) = [0x03] + * 0x10030-0x10031 (0x1 bytes) = [0x0a] + * 0x10038-0x10039 (0x1 bytes) = [0x0c] + * 0x10040-0x10041 (0x1 bytes) = [0x0e] + * 0x10048-0x10049 (0x1 bytes) = [0x10] + * 0x10050-0x10051 (0x1 bytes) = [0x10] + * 0x10052-0x10053 (0x1 bytes) = [0x03] + * 0x10058-0x10059 (0x1 bytes) = [0x12] + * 0x1005a-0x1005b (0x1 bytes) = [0x03] + * 0x30000-0x30014 (0x14 bytes) = [0xef, 0xbe, 0xef, 0xbe, 0xef, 0xbe, 0xef, 0xbe, 0xef, 0xbe, 0xef, 0xbe, 0xef, 0xbe, 0xef, 0xbe, 0xef, 0xbe, 0xef, 0xbe] + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 3a 01 00 00 01 r1 = u64 [0x10000] + 21: 33 00 aa 00 r0 = 0xaa + 25: 3a 0c 08 00 01 r12 = u64 [0x10008] + 30: 79 10 u16 [r1 + 0] = r0 + 32: 7f 1b r11 = i16 [r1 + 0] + 34: 28 05 jump 39 + : @2 [@dyn 1] + 36: 64 0b r11 = r0 + 38: 01 fallthrough + : @3 + 39: 33 04 aa 00 r4 = 0xaa + 43: ab 4b 9e 03 jump 969 if r11 != r4 + : @4 + 47: 33 05 03 r5 = 0x3 + 50: 3a 01 00 00 01 r1 = u64 [0x10000] + 55: 33 00 00 b0 r0 = 0xffffffffffffb000 + 59: 83 00 00 fa i32 r0 = r0 + 0xfffffffffffffa00 + 63: 3a 0c 10 00 01 r12 = u64 [0x10010] + 68: 79 10 02 u16 [r1 + 0x2] = r0 + 71: 7f 1b 02 r11 = i16 [r1 + 0x2] + 74: 28 05 jump 79 + : @5 [@dyn 2] + 76: 64 0b r11 = r0 + 78: 01 fallthrough + : @6 + 79: 33 04 00 b0 r4 = 0xffffffffffffb000 + 83: 83 44 00 fa i32 r4 = r4 + 0xfffffffffffffa00 + 87: ab 4b 72 03 jump 969 if r11 != r4 + : @7 + 91: 33 05 04 r5 = 0x4 + 94: 3a 01 00 00 01 r1 = u64 [0x10000] + 99: 33 00 00 10 ef be r0 = 0xffffffffbeef1000 + 105: 83 00 a0 fa i32 r0 = r0 + 0xfffffffffffffaa0 + 109: 3a 0c 18 00 01 r12 = u64 [0x10018] + 114: 79 10 04 u16 [r1 + 0x4] = r0 + 117: 81 1b 04 r11 = i32 [r1 + 0x4] + 120: 28 05 jump 125 + : @8 [@dyn 3] + 122: 64 0b r11 = r0 + 124: 01 fallthrough + : @9 + 125: 33 04 00 10 ef be r4 = 0xffffffffbeef1000 + 131: 83 44 a0 fa i32 r4 = r4 + 0xfffffffffffffaa0 + 135: ab 4b 42 03 jump 969 if r11 != r4 + : @10 + 139: 33 05 05 r5 = 0x5 + 142: 3a 01 00 00 01 r1 = u64 [0x10000] + 147: 33 00 00 a0 r0 = 0xffffffffffffa000 + 151: 83 00 0a i32 r0 = r0 + 0xa + 154: 3a 0c 20 00 01 r12 = u64 [0x10020] + 159: 79 10 06 u16 [r1 + 0x6] = r0 + 162: 7f 1b 06 r11 = i16 [r1 + 0x6] + 165: 28 05 jump 170 + : @11 [@dyn 4] + 167: 64 0b r11 = r0 + 169: 01 fallthrough + : @12 + 170: 33 04 00 a0 r4 = 0xffffffffffffa000 + 174: 83 44 0a i32 r4 = r4 + 0xa + 177: ab 4b 18 03 jump 969 if r11 != r4 + : @13 + 181: 33 05 06 r5 = 0x6 + 184: 3a 01 28 00 01 r1 = u64 [0x10028] + 189: 33 00 aa 00 r0 = 0xaa + 193: 3a 0c 30 00 01 r12 = u64 [0x10030] + 198: 79 10 fa u16 [r1 + 0xfffffffffffffffa] = r0 + 201: 7f 1b fa r11 = i16 [r1 + 0xfffffffffffffffa] + 204: 28 05 jump 209 + : @14 [@dyn 5] + 206: 64 0b r11 = r0 + 208: 01 fallthrough + : @15 + 209: 33 04 aa 00 r4 = 0xaa + 213: ab 4b f4 02 jump 969 if r11 != r4 + : @16 + 217: 33 05 07 r5 = 0x7 + 220: 3a 01 28 00 01 r1 = u64 [0x10028] + 225: 33 00 00 b0 r0 = 0xffffffffffffb000 + 229: 83 00 00 fa i32 r0 = r0 + 0xfffffffffffffa00 + 233: 3a 0c 38 00 01 r12 = u64 [0x10038] + 238: 79 10 fc u16 [r1 + 0xfffffffffffffffc] = r0 + 241: 7f 1b fc r11 = i16 [r1 + 0xfffffffffffffffc] + 244: 28 05 jump 249 + : @17 [@dyn 6] + 246: 64 0b r11 = r0 + 248: 01 fallthrough + : @18 + 249: 33 04 00 b0 r4 = 0xffffffffffffb000 + 253: 83 44 00 fa i32 r4 = r4 + 0xfffffffffffffa00 + 257: ab 4b c8 02 jump 969 if r11 != r4 + : @19 + 261: 33 05 08 r5 = 0x8 + 264: 3a 01 28 00 01 r1 = u64 [0x10028] + 269: 33 00 00 10 r0 = 0x1000 + 273: 83 00 a0 fa i32 r0 = r0 + 0xfffffffffffffaa0 + 277: 3a 0c 40 00 01 r12 = u64 [0x10040] + 282: 79 10 fe u16 [r1 + 0xfffffffffffffffe] = r0 + 285: 7f 1b fe r11 = i16 [r1 + 0xfffffffffffffffe] + 288: 28 05 jump 293 + : @20 [@dyn 7] + 290: 64 0b r11 = r0 + 292: 01 fallthrough + : @21 + 293: 33 04 00 10 r4 = 0x1000 + 297: 83 44 a0 fa i32 r4 = r4 + 0xfffffffffffffaa0 + 301: ab 4b 9c 02 jump 969 if r11 != r4 + : @22 + 305: 33 05 09 r5 = 0x9 + 308: 3a 01 28 00 01 r1 = u64 [0x10028] + 313: 33 00 00 a0 r0 = 0xffffffffffffa000 + 317: 83 00 0a i32 r0 = r0 + 0xa + 320: 3a 0c 48 00 01 r12 = u64 [0x10048] + 325: 79 10 u16 [r1 + 0] = r0 + 327: 7f 1b r11 = i16 [r1 + 0] + 329: 28 05 jump 334 + : @23 [@dyn 8] + 331: 64 0b r11 = r0 + 333: 01 fallthrough + : @24 + 334: 33 04 00 a0 r4 = 0xffffffffffffa000 + 338: 83 44 0a i32 r4 = r4 + 0xa + 341: ab 4b 74 02 jump 969 if r11 != r4 + : @25 + 345: 33 05 0a r5 = 0xa + 348: 3a 00 50 00 01 r0 = u64 [0x10050] + 353: 33 01 00 50 34 12 r1 = 0x12345000 + 359: 83 11 78 06 i32 r1 = r1 + 0x678 + 363: 95 03 e0 r3 = r0 + 0xffffffffffffffe0 + 366: 79 31 20 u16 [r3 + 0x20] = r1 + 369: 7f 02 r2 = i16 [r0 + 0] + 371: 33 04 00 50 r4 = 0x5000 + 375: 83 44 78 06 i32 r4 = r4 + 0x678 + 379: ab 42 4e 02 jump 969 if r2 != r4 + : @26 + 383: 33 05 0b r5 = 0xb + 386: 3a 00 50 00 01 r0 = u64 [0x10050] + 391: 33 01 00 30 r1 = 0x3000 + 395: 83 11 98 00 i32 r1 = r1 + 0x98 + 399: 95 00 fb r0 = r0 + 0xfffffffffffffffb + 402: 79 01 07 u16 [r0 + 0x7] = r1 + 405: 3a 03 58 00 01 r3 = u64 [0x10058] + 410: 7f 32 r2 = i16 [r3 + 0] + 412: 33 04 00 30 r4 = 0x3000 + 416: 83 44 98 00 i32 r4 = r4 + 0x98 + 420: ab 42 25 02 jump 969 if r2 != r4 + : @27 + 424: 33 05 0c r5 = 0xc + 427: 33 03 r3 = 0 + 429: 01 fallthrough + : @28 + 430: 33 0a 00 d0 r10 = 0xffffffffffffd000 + 434: 83 aa dd fc i32 r10 = r10 + 0xfffffffffffffcdd + 438: 3a 09 00 00 01 r9 = u64 [0x10000] + 443: 79 9a u16 [r9 + 0] = r10 + 445: 7f 9b r11 = i16 [r9 + 0] + 447: 33 04 00 d0 r4 = 0xffffffffffffd000 + 451: 83 44 dd fc i32 r4 = r4 + 0xfffffffffffffcdd + 455: ab 4b 02 02 jump 969 if r11 != r4 + : @29 + 459: 95 33 01 r3 = r3 + 0x1 + 462: 33 02 02 r2 = 0x2 + 465: ab 23 dd jump 430 if r3 != r2 + : @30 + 468: 33 05 0d r5 = 0xd + 471: 33 03 r3 = 0 + 473: 01 fallthrough + : @31 + 474: 33 0a 00 c0 r10 = 0xffffffffffffc000 + 478: 83 aa cd fc i32 r10 = r10 + 0xfffffffffffffccd + 482: 3a 09 00 00 01 r9 = u64 [0x10000] + 487: 79 9a 02 u16 [r9 + 0x2] = r10 + 490: 7f 9b 02 r11 = i16 [r9 + 0x2] + 493: 33 04 00 c0 r4 = 0xffffffffffffc000 + 497: 83 44 cd fc i32 r4 = r4 + 0xfffffffffffffccd + 501: ab 4b d4 01 jump 969 if r11 != r4 + : @32 + 505: 95 33 01 r3 = r3 + 0x1 + 508: 33 02 02 r2 = 0x2 + 511: ab 23 db jump 474 if r3 != r2 + : @33 + 514: 33 05 0e r5 = 0xe + 517: 33 03 r3 = 0 + 519: 01 fallthrough + : @34 + 520: 33 0a 00 c0 r10 = 0xffffffffffffc000 + 524: 83 aa cc fb i32 r10 = r10 + 0xfffffffffffffbcc + 528: 3a 09 00 00 01 r9 = u64 [0x10000] + 533: 79 9a 04 u16 [r9 + 0x4] = r10 + 536: 7f 9b 04 r11 = i16 [r9 + 0x4] + 539: 33 04 00 c0 r4 = 0xffffffffffffc000 + 543: 83 44 cc fb i32 r4 = r4 + 0xfffffffffffffbcc + 547: ab 4b a6 01 jump 969 if r11 != r4 + : @35 + 551: 95 33 01 r3 = r3 + 0x1 + 554: 33 02 02 r2 = 0x2 + 557: ab 23 db jump 520 if r3 != r2 + : @36 + 560: 33 05 0f r5 = 0xf + 563: 33 03 r3 = 0 + 565: 01 fallthrough + : @37 + 566: 33 0a 00 b0 r10 = 0xffffffffffffb000 + 570: 83 aa bc fb i32 r10 = r10 + 0xfffffffffffffbbc + 574: 3a 09 00 00 01 r9 = u64 [0x10000] + 579: 79 9a 06 u16 [r9 + 0x6] = r10 + 582: 7f 9b 06 r11 = i16 [r9 + 0x6] + 585: 33 04 00 b0 r4 = 0xffffffffffffb000 + 589: 83 44 bc fb i32 r4 = r4 + 0xfffffffffffffbbc + 593: ab 4b 78 01 jump 969 if r11 != r4 + : @38 + 597: 95 33 01 r3 = r3 + 0x1 + 600: 33 02 02 r2 = 0x2 + 603: ab 23 db jump 566 if r3 != r2 + : @39 + 606: 33 05 10 r5 = 0x10 + 609: 33 03 r3 = 0 + 611: 01 fallthrough + : @40 + 612: 33 0a 00 b0 r10 = 0xffffffffffffb000 + 616: 83 aa bb fa i32 r10 = r10 + 0xfffffffffffffabb + 620: 3a 09 00 00 01 r9 = u64 [0x10000] + 625: 79 9a 08 u16 [r9 + 0x8] = r10 + 628: 7f 9b 08 r11 = i16 [r9 + 0x8] + 631: 33 04 00 b0 r4 = 0xffffffffffffb000 + 635: 83 44 bb fa i32 r4 = r4 + 0xfffffffffffffabb + 639: ab 4b 4a 01 jump 969 if r11 != r4 + : @41 + 643: 95 33 01 r3 = r3 + 0x1 + 646: 33 02 02 r2 = 0x2 + 649: ab 23 db jump 612 if r3 != r2 + : @42 + 652: 33 05 11 r5 = 0x11 + 655: 33 03 r3 = 0 + 657: 01 fallthrough + : @43 + 658: 33 0a 00 e0 r10 = 0xffffffffffffe000 + 662: 83 aa ab fa i32 r10 = r10 + 0xfffffffffffffaab + 666: 3a 09 00 00 01 r9 = u64 [0x10000] + 671: 79 9a 0a u16 [r9 + 0xa] = r10 + 674: 7f 9b 0a r11 = i16 [r9 + 0xa] + 677: 33 04 00 e0 r4 = 0xffffffffffffe000 + 681: 83 44 ab fa i32 r4 = r4 + 0xfffffffffffffaab + 685: ab 4b 1c 01 jump 969 if r11 != r4 + : @44 + 689: 95 33 01 r3 = r3 + 0x1 + 692: 33 02 02 r2 = 0x2 + 695: ab 23 db jump 658 if r3 != r2 + : @45 + 698: 33 05 12 r5 = 0x12 + 701: 33 03 r3 = 0 + 703: 01 fallthrough + : @46 + 704: 3a 01 00 00 01 r1 = u64 [0x10000] + 709: 33 00 00 20 r0 = 0x2000 + 713: 83 00 33 02 i32 r0 = r0 + 0x233 + 717: 79 10 u16 [r1 + 0] = r0 + 719: 7f 1b r11 = i16 [r1 + 0] + 721: 33 04 00 20 r4 = 0x2000 + 725: 83 44 33 02 i32 r4 = r4 + 0x233 + 729: ab 4b f0 00 jump 969 if r11 != r4 + : @47 + 733: 95 33 01 r3 = r3 + 0x1 + 736: 33 02 02 r2 = 0x2 + 739: ab 23 dd jump 704 if r3 != r2 + : @48 + 742: 33 05 13 r5 = 0x13 + 745: 33 03 r3 = 0 + 747: 01 fallthrough + : @49 + 748: 3a 01 00 00 01 r1 = u64 [0x10000] + 753: 33 00 00 10 r0 = 0x1000 + 757: 83 00 23 02 i32 r0 = r0 + 0x223 + 761: 79 10 02 u16 [r1 + 0x2] = r0 + 764: 7f 1b 02 r11 = i16 [r1 + 0x2] + 767: 33 04 00 10 r4 = 0x1000 + 771: 83 44 23 02 i32 r4 = r4 + 0x223 + 775: ab 4b c2 00 jump 969 if r11 != r4 + : @50 + 779: 95 33 01 r3 = r3 + 0x1 + 782: 33 02 02 r2 = 0x2 + 785: ab 23 db jump 748 if r3 != r2 + : @51 + 788: 33 05 14 r5 = 0x14 + 791: 33 03 r3 = 0 + 793: 01 fallthrough + : @52 + 794: 3a 01 00 00 01 r1 = u64 [0x10000] + 799: 33 00 00 10 r0 = 0x1000 + 803: 83 00 22 01 i32 r0 = r0 + 0x122 + 807: 79 10 04 u16 [r1 + 0x4] = r0 + 810: 7f 1b 04 r11 = i16 [r1 + 0x4] + 813: 33 04 00 10 r4 = 0x1000 + 817: 83 44 22 01 i32 r4 = r4 + 0x122 + 821: ab 4b 94 00 jump 969 if r11 != r4 + : @53 + 825: 95 33 01 r3 = r3 + 0x1 + 828: 33 02 02 r2 = 0x2 + 831: ab 23 db jump 794 if r3 != r2 + : @54 + 834: 33 05 15 r5 = 0x15 + 837: 33 03 r3 = 0 + 839: 01 fallthrough + : @55 + 840: 3a 01 00 00 01 r1 = u64 [0x10000] + 845: 33 00 12 01 r0 = 0x112 + 849: 79 10 06 u16 [r1 + 0x6] = r0 + 852: 7f 1b 06 r11 = i16 [r1 + 0x6] + 855: 33 04 12 01 r4 = 0x112 + 859: ab 4b 6e jump 969 if r11 != r4 + : @56 + 862: 95 33 01 r3 = r3 + 0x1 + 865: 33 02 02 r2 = 0x2 + 868: ab 23 e4 jump 840 if r3 != r2 + : @57 + 871: 33 05 16 r5 = 0x16 + 874: 33 03 r3 = 0 + 876: 01 fallthrough + : @58 + 877: 3a 01 00 00 01 r1 = u64 [0x10000] + 882: 33 00 11 r0 = 0x11 + 885: 79 10 08 u16 [r1 + 0x8] = r0 + 888: 7f 1b 08 r11 = i16 [r1 + 0x8] + 891: 33 04 11 r4 = 0x11 + 894: ab 4b 4b jump 969 if r11 != r4 + : @59 + 897: 95 33 01 r3 = r3 + 0x1 + 900: 33 02 02 r2 = 0x2 + 903: ab 23 e6 jump 877 if r3 != r2 + : @60 + 906: 33 05 17 r5 = 0x17 + 909: 33 03 r3 = 0 + 911: 01 fallthrough + : @61 + 912: 3a 01 00 00 01 r1 = u64 [0x10000] + 917: 33 00 00 30 r0 = 0x3000 + 921: 83 00 01 i32 r0 = r0 + 0x1 + 924: 79 10 0a u16 [r1 + 0xa] = r0 + 927: 7f 1b 0a r11 = i16 [r1 + 0xa] + 930: 33 04 00 30 r4 = 0x3000 + 934: 83 44 01 i32 r4 = r4 + 0x1 + 937: ab 4b 20 jump 969 if r11 != r4 + : @62 + 940: 95 33 01 r3 = r3 + 0x1 + 943: 33 02 02 r2 = 0x2 + 946: ab 23 de jump 912 if r3 != r2 + : @63 + 949: 33 07 00 c0 00 r7 = 0xc000 + 954: 83 77 ef fe i32 r7 = r7 + 0xfffffffffffffeef + 958: 3a 08 00 00 01 r8 = u64 [0x10000] + 963: 79 87 06 u16 [r8 + 0x6] = r7 + 966: 52 05 04 jump 970 if r5 != 0 + : @64 + 969: 00 trap + : @65 + 970: 28 36 fc jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r1 = 0x30000 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0x2 (initially was 0x0) + * r4 = 0x3001 (initially was 0x0) + * r5 = 0x17 (initially was 0x0) + * r7 = 0xbeef (initially was 0x0) + * r8 = 0x30000 (initially was 0x0) + * r9 = 0x30000 (initially was 0x0) + * r10 = 0xffffffffffffdaab (initially was 0x0) + * r11 = 0x3001 (initially was 0x0) + * r12 = 0x10 (initially was 0x0) + +Final non-zero memory chunks: + * 0x10002-0x10003 (0x1 bytes) = [0x03] + * 0x10008-0x10009 (0x1 bytes) = [0x02] + * 0x10010-0x10011 (0x1 bytes) = [0x04] + * 0x10018-0x10019 (0x1 bytes) = [0x06] + * 0x10020-0x10021 (0x1 bytes) = [0x08] + * 0x10028-0x10029 (0x1 bytes) = [0x0e] + * 0x1002a-0x1002b (0x1 bytes) = [0x03] + * 0x10030-0x10031 (0x1 bytes) = [0x0a] + * 0x10038-0x10039 (0x1 bytes) = [0x0c] + * 0x10040-0x10041 (0x1 bytes) = [0x0e] + * 0x10048-0x10049 (0x1 bytes) = [0x10] + * 0x10050-0x10051 (0x1 bytes) = [0x10] + * 0x10052-0x10053 (0x1 bytes) = [0x03] + * 0x10058-0x10059 (0x1 bytes) = [0x12] + * 0x1005a-0x1005b (0x1 bytes) = [0x03] + * 0x30000-0x30009 (0x9 bytes) = [0x33, 0x22, 0x23, 0x12, 0x22, 0x11, 0xef, 0xbe, 0x11] + * 0x3000a-0x30014 (0xa bytes) = [0x01, 0x30, 0xa0, 0x0a, 0x0a, 0xa0, 0x78, 0x56, 0x98, 0x30] + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9593 + + +## riscv_rv64ui_simple + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 28 f3 jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9995 + + +## riscv_rv64ui_sll + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 08 01 r8 = 0x1 + 19: 33 09 r9 = 0 + 21: cf 98 0b r11 = r8 << r9 + 24: 33 04 01 r4 = 0x1 + 27: ab 4b c3 04 jump 1246 if r11 != r4 + : @2 + 31: 33 05 03 r5 = 0x3 + 34: 33 08 01 r8 = 0x1 + 37: 33 09 01 r9 = 0x1 + 40: cf 98 0b r11 = r8 << r9 + 43: 33 04 02 r4 = 0x2 + 46: ab 4b b0 04 jump 1246 if r11 != r4 + : @3 + 50: 33 05 04 r5 = 0x4 + 53: 33 08 01 r8 = 0x1 + 56: 33 09 07 r9 = 0x7 + 59: cf 98 0b r11 = r8 << r9 + 62: 33 04 80 00 r4 = 0x80 + 66: ab 4b 9c 04 jump 1246 if r11 != r4 + : @4 + 70: 33 05 05 r5 = 0x5 + 73: 33 08 01 r8 = 0x1 + 76: 33 09 0e r9 = 0xe + 79: cf 98 0b r11 = r8 << r9 + 82: 33 04 00 40 r4 = 0x4000 + 86: ab 4b 88 04 jump 1246 if r11 != r4 + : @5 + 90: 33 05 06 r5 = 0x6 + 93: 33 08 01 r8 = 0x1 + 96: 33 09 1f r9 = 0x1f + 99: cf 98 0b r11 = r8 << r9 + 102: 33 04 01 r4 = 0x1 + 105: 97 44 1f r4 = r4 << 0x1f + 108: ab 4b 72 04 jump 1246 if r11 != r4 + : @6 + 112: 33 05 07 r5 = 0x7 + 115: 33 08 ff r8 = 0xffffffffffffffff + 118: 33 09 r9 = 0 + 120: cf 98 0b r11 = r8 << r9 + 123: 33 04 ff r4 = 0xffffffffffffffff + 126: ab 4b 60 04 jump 1246 if r11 != r4 + : @7 + 130: 33 05 08 r5 = 0x8 + 133: 33 08 ff r8 = 0xffffffffffffffff + 136: 33 09 01 r9 = 0x1 + 139: cf 98 0b r11 = r8 << r9 + 142: 33 04 fe r4 = 0xfffffffffffffffe + 145: ab 4b 4d 04 jump 1246 if r11 != r4 + : @8 + 149: 33 05 09 r5 = 0x9 + 152: 33 08 ff r8 = 0xffffffffffffffff + 155: 33 09 07 r9 = 0x7 + 158: cf 98 0b r11 = r8 << r9 + 161: 33 04 80 r4 = 0xffffffffffffff80 + 164: ab 4b 3a 04 jump 1246 if r11 != r4 + : @9 + 168: 33 05 0a r5 = 0xa + 171: 33 08 ff r8 = 0xffffffffffffffff + 174: 33 09 0e r9 = 0xe + 177: cf 98 0b r11 = r8 << r9 + 180: 33 04 00 c0 r4 = 0xffffffffffffc000 + 184: ab 4b 26 04 jump 1246 if r11 != r4 + : @10 + 188: 33 05 0b r5 = 0xb + 191: 33 08 ff r8 = 0xffffffffffffffff + 194: 33 09 1f r9 = 0x1f + 197: cf 98 0b r11 = r8 << r9 + 200: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 206: ab 4b 10 04 jump 1246 if r11 != r4 + : @11 + 210: 33 05 0c r5 = 0xc + 213: 33 08 00 20 21 21 r8 = 0x21212000 + 219: 83 88 21 01 i32 r8 = r8 + 0x121 + 223: 33 09 r9 = 0 + 225: cf 98 0b r11 = r8 << r9 + 228: 33 04 00 20 21 21 r4 = 0x21212000 + 234: 83 44 21 01 i32 r4 = r4 + 0x121 + 238: ab 4b f0 03 jump 1246 if r11 != r4 + : @12 + 242: 33 05 0d r5 = 0xd + 245: 33 08 00 20 21 21 r8 = 0x21212000 + 251: 83 88 21 01 i32 r8 = r8 + 0x121 + 255: 33 09 01 r9 = 0x1 + 258: cf 98 0b r11 = r8 << r9 + 261: 33 04 00 40 42 42 r4 = 0x42424000 + 267: 83 44 42 02 i32 r4 = r4 + 0x242 + 271: ab 4b cf 03 jump 1246 if r11 != r4 + : @13 + 275: 33 05 0e r5 = 0xe + 278: 33 08 00 20 21 21 r8 = 0x21212000 + 284: 83 88 21 01 i32 r8 = r8 + 0x121 + 288: 33 09 07 r9 = 0x7 + 291: cf 98 0b r11 = r8 << r9 + 294: 33 04 00 10 09 01 r4 = 0x1091000 + 300: 83 44 09 f9 i32 r4 = r4 + 0xfffffffffffff909 + 304: 97 44 0c r4 = r4 << 0xc + 307: 95 44 80 00 r4 = r4 + 0x80 + 311: ab 4b a7 03 jump 1246 if r11 != r4 + : @14 + 315: 33 05 0f r5 = 0xf + 318: 33 08 00 20 21 21 r8 = 0x21212000 + 324: 83 88 21 01 i32 r8 = r8 + 0x121 + 328: 33 09 0e r9 = 0xe + 331: cf 98 0b r11 = r8 << r9 + 334: 33 04 00 20 21 21 r4 = 0x21212000 + 340: 83 44 21 01 i32 r4 = r4 + 0x121 + 344: 97 44 0e r4 = r4 << 0xe + 347: ab 4b 83 03 jump 1246 if r11 != r4 + : @15 + 351: 33 05 10 r5 = 0x10 + 354: 33 08 00 20 21 21 r8 = 0x21212000 + 360: 83 88 21 01 i32 r8 = r8 + 0x121 + 364: 33 09 1f r9 = 0x1f + 367: cf 98 0b r11 = r8 << r9 + 370: 33 04 00 20 21 21 r4 = 0x21212000 + 376: 83 44 21 01 i32 r4 = r4 + 0x121 + 380: 97 44 1f r4 = r4 << 0x1f + 383: ab 4b 5f 03 jump 1246 if r11 != r4 + : @16 + 387: 33 05 11 r5 = 0x11 + 390: 33 08 00 20 21 21 r8 = 0x21212000 + 396: 83 88 21 01 i32 r8 = r8 + 0x121 + 400: 33 09 c0 r9 = 0xffffffffffffffc0 + 403: cf 98 0b r11 = r8 << r9 + 406: 33 04 00 20 21 21 r4 = 0x21212000 + 412: 83 44 21 01 i32 r4 = r4 + 0x121 + 416: ab 4b 3e 03 jump 1246 if r11 != r4 + : @17 + 420: 33 05 12 r5 = 0x12 + 423: 33 08 00 20 21 21 r8 = 0x21212000 + 429: 83 88 21 01 i32 r8 = r8 + 0x121 + 433: 33 09 c1 r9 = 0xffffffffffffffc1 + 436: cf 98 0b r11 = r8 << r9 + 439: 33 04 00 40 42 42 r4 = 0x42424000 + 445: 83 44 42 02 i32 r4 = r4 + 0x242 + 449: ab 4b 1d 03 jump 1246 if r11 != r4 + : @18 + 453: 33 05 13 r5 = 0x13 + 456: 33 08 00 20 21 21 r8 = 0x21212000 + 462: 83 88 21 01 i32 r8 = r8 + 0x121 + 466: 33 09 c7 r9 = 0xffffffffffffffc7 + 469: cf 98 0b r11 = r8 << r9 + 472: 33 04 00 10 09 01 r4 = 0x1091000 + 478: 83 44 09 f9 i32 r4 = r4 + 0xfffffffffffff909 + 482: 97 44 0c r4 = r4 << 0xc + 485: 95 44 80 00 r4 = r4 + 0x80 + 489: ab 4b f5 02 jump 1246 if r11 != r4 + : @19 + 493: 33 05 14 r5 = 0x14 + 496: 33 08 00 20 21 21 r8 = 0x21212000 + 502: 83 88 21 01 i32 r8 = r8 + 0x121 + 506: 33 09 ce r9 = 0xffffffffffffffce + 509: cf 98 0b r11 = r8 << r9 + 512: 33 04 00 20 21 21 r4 = 0x21212000 + 518: 83 44 21 01 i32 r4 = r4 + 0x121 + 522: 97 44 0e r4 = r4 << 0xe + 525: ab 4b d1 02 jump 1246 if r11 != r4 + : @20 + 529: 33 05 15 r5 = 0x15 + 532: 33 08 00 20 21 21 r8 = 0x21212000 + 538: 83 88 21 01 i32 r8 = r8 + 0x121 + 542: 33 09 ff r9 = 0xffffffffffffffff + 545: cf 98 0b r11 = r8 << r9 + 548: 33 04 ff r4 = 0xffffffffffffffff + 551: 97 44 3f r4 = r4 << 0x3f + 554: ab 4b b4 02 jump 1246 if r11 != r4 + : @21 + 558: 33 05 32 r5 = 0x32 + 561: 33 08 01 r8 = 0x1 + 564: 33 09 3f r9 = 0x3f + 567: cf 98 0b r11 = r8 << r9 + 570: 33 04 ff r4 = 0xffffffffffffffff + 573: 97 44 3f r4 = r4 << 0x3f + 576: ab 4b 9e 02 jump 1246 if r11 != r4 + : @22 + 580: 33 05 33 r5 = 0x33 + 583: 33 08 ff r8 = 0xffffffffffffffff + 586: 33 09 27 r9 = 0x27 + 589: cf 98 0b r11 = r8 << r9 + 592: 33 04 ff r4 = 0xffffffffffffffff + 595: 97 44 27 r4 = r4 << 0x27 + 598: ab 4b 88 02 jump 1246 if r11 != r4 + : @23 + 602: 33 05 34 r5 = 0x34 + 605: 33 08 00 20 21 21 r8 = 0x21212000 + 611: 83 88 21 01 i32 r8 = r8 + 0x121 + 615: 33 09 2b r9 = 0x2b + 618: cf 98 0b r11 = r8 << r9 + 621: 33 04 00 20 01 r4 = 0x12000 + 626: 83 44 21 01 i32 r4 = r4 + 0x121 + 630: 97 44 2b r4 = r4 << 0x2b + 633: ab 4b 65 02 jump 1246 if r11 != r4 + : @24 + 637: 33 05 16 r5 = 0x16 + 640: 33 08 01 r8 = 0x1 + 643: 33 09 07 r9 = 0x7 + 646: cf 98 08 r8 = r8 << r9 + 649: 33 04 80 00 r4 = 0x80 + 653: ab 48 51 02 jump 1246 if r8 != r4 + : @25 + 657: 33 05 17 r5 = 0x17 + 660: 33 08 01 r8 = 0x1 + 663: 33 09 0e r9 = 0xe + 666: cf 98 09 r9 = r8 << r9 + 669: 33 04 00 40 r4 = 0x4000 + 673: ab 49 3d 02 jump 1246 if r9 != r4 + : @26 + 677: 33 05 18 r5 = 0x18 + 680: 33 08 03 r8 = 0x3 + 683: cf 88 08 r8 = r8 << r8 + 686: 33 04 18 r4 = 0x18 + 689: ab 48 2d 02 jump 1246 if r8 != r4 + : @27 + 693: 33 05 19 r5 = 0x19 + 696: 33 0a r10 = 0 + 698: 01 fallthrough + : @28 + 699: 33 00 01 r0 = 0x1 + 702: 33 01 07 r1 = 0x7 + 705: cf 10 0b r11 = r0 << r1 + 708: 64 b3 r3 = r11 + 710: 95 aa 01 r10 = r10 + 0x1 + 713: 33 02 02 r2 = 0x2 + 716: ab 2a ef jump 699 if r10 != r2 + : @29 + 719: 33 04 80 00 r4 = 0x80 + 723: ab 43 0b 02 jump 1246 if r3 != r4 + : @30 + 727: 33 05 1a r5 = 0x1a + 730: 33 0a r10 = 0 + 732: 01 fallthrough + : @31 + 733: 33 00 01 r0 = 0x1 + 736: 33 01 0e r1 = 0xe + 739: cf 10 0b r11 = r0 << r1 + 742: 64 b3 r3 = r11 + 744: 95 aa 01 r10 = r10 + 0x1 + 747: 33 02 02 r2 = 0x2 + 750: ab 2a ef jump 733 if r10 != r2 + : @32 + 753: 33 04 00 40 r4 = 0x4000 + 757: ab 43 e9 01 jump 1246 if r3 != r4 + : @33 + 761: 33 05 1b r5 = 0x1b + 764: 33 0a r10 = 0 + 766: 01 fallthrough + : @34 + 767: 33 00 01 r0 = 0x1 + 770: 33 01 1f r1 = 0x1f + 773: cf 10 0b r11 = r0 << r1 + 776: 64 b3 r3 = r11 + 778: 95 aa 01 r10 = r10 + 0x1 + 781: 33 02 02 r2 = 0x2 + 784: ab 2a ef jump 767 if r10 != r2 + : @35 + 787: 33 04 01 r4 = 0x1 + 790: 97 44 1f r4 = r4 << 0x1f + 793: ab 43 c5 01 jump 1246 if r3 != r4 + : @36 + 797: 33 05 1c r5 = 0x1c + 800: 33 0a r10 = 0 + 802: 01 fallthrough + : @37 + 803: 33 00 01 r0 = 0x1 + 806: 33 01 07 r1 = 0x7 + 809: cf 10 0b r11 = r0 << r1 + 812: 95 aa 01 r10 = r10 + 0x1 + 815: 33 02 02 r2 = 0x2 + 818: ab 2a f1 jump 803 if r10 != r2 + : @38 + 821: 33 04 80 00 r4 = 0x80 + 825: ab 4b a5 01 jump 1246 if r11 != r4 + : @39 + 829: 33 05 1d r5 = 0x1d + 832: 33 0a r10 = 0 + 834: 01 fallthrough + : @40 + 835: 33 00 01 r0 = 0x1 + 838: 33 01 0e r1 = 0xe + 841: cf 10 0b r11 = r0 << r1 + 844: 95 aa 01 r10 = r10 + 0x1 + 847: 33 02 02 r2 = 0x2 + 850: ab 2a f1 jump 835 if r10 != r2 + : @41 + 853: 33 04 00 40 r4 = 0x4000 + 857: ab 4b 85 01 jump 1246 if r11 != r4 + : @42 + 861: 33 05 1e r5 = 0x1e + 864: 33 0a r10 = 0 + 866: 01 fallthrough + : @43 + 867: 33 00 01 r0 = 0x1 + 870: 33 01 1f r1 = 0x1f + 873: cf 10 0b r11 = r0 << r1 + 876: 95 aa 01 r10 = r10 + 0x1 + 879: 33 02 02 r2 = 0x2 + 882: ab 2a f1 jump 867 if r10 != r2 + : @44 + 885: 33 04 01 r4 = 0x1 + 888: 97 44 1f r4 = r4 << 0x1f + 891: ab 4b 63 01 jump 1246 if r11 != r4 + : @45 + 895: 33 05 1f r5 = 0x1f + 898: 33 0a r10 = 0 + 900: 01 fallthrough + : @46 + 901: 33 00 01 r0 = 0x1 + 904: 33 01 07 r1 = 0x7 + 907: cf 10 0b r11 = r0 << r1 + 910: 95 aa 01 r10 = r10 + 0x1 + 913: 33 02 02 r2 = 0x2 + 916: ab 2a f1 jump 901 if r10 != r2 + : @47 + 919: 33 04 80 00 r4 = 0x80 + 923: ab 4b 43 01 jump 1246 if r11 != r4 + : @48 + 927: 33 05 20 r5 = 0x20 + 930: 33 0a r10 = 0 + 932: 01 fallthrough + : @49 + 933: 33 00 01 r0 = 0x1 + 936: 33 01 0e r1 = 0xe + 939: cf 10 0b r11 = r0 << r1 + 942: 95 aa 01 r10 = r10 + 0x1 + 945: 33 02 02 r2 = 0x2 + 948: ab 2a f1 jump 933 if r10 != r2 + : @50 + 951: 33 04 00 40 r4 = 0x4000 + 955: ab 4b 23 01 jump 1246 if r11 != r4 + : @51 + 959: 33 05 21 r5 = 0x21 + 962: 33 0a r10 = 0 + 964: 01 fallthrough + : @52 + 965: 33 00 01 r0 = 0x1 + 968: 33 01 1f r1 = 0x1f + 971: cf 10 0b r11 = r0 << r1 + 974: 95 aa 01 r10 = r10 + 0x1 + 977: 33 02 02 r2 = 0x2 + 980: ab 2a f1 jump 965 if r10 != r2 + : @53 + 983: 33 04 01 r4 = 0x1 + 986: 97 44 1f r4 = r4 << 0x1f + 989: ab 4b 01 01 jump 1246 if r11 != r4 + : @54 + 993: 33 05 22 r5 = 0x22 + 996: 33 0a r10 = 0 + 998: 01 fallthrough + : @55 + 999: 33 01 07 r1 = 0x7 + 1002: 33 00 01 r0 = 0x1 + 1005: cf 10 0b r11 = r0 << r1 + 1008: 95 aa 01 r10 = r10 + 0x1 + 1011: 33 02 02 r2 = 0x2 + 1014: ab 2a f1 jump 999 if r10 != r2 + : @56 + 1017: 33 04 80 00 r4 = 0x80 + 1021: ab 4b e1 00 jump 1246 if r11 != r4 + : @57 + 1025: 33 05 23 r5 = 0x23 + 1028: 33 0a r10 = 0 + 1030: 01 fallthrough + : @58 + 1031: 33 01 0e r1 = 0xe + 1034: 33 00 01 r0 = 0x1 + 1037: cf 10 0b r11 = r0 << r1 + 1040: 95 aa 01 r10 = r10 + 0x1 + 1043: 33 02 02 r2 = 0x2 + 1046: ab 2a f1 jump 1031 if r10 != r2 + : @59 + 1049: 33 04 00 40 r4 = 0x4000 + 1053: ab 4b c1 00 jump 1246 if r11 != r4 + : @60 + 1057: 33 05 24 r5 = 0x24 + 1060: 33 0a r10 = 0 + 1062: 01 fallthrough + : @61 + 1063: 33 01 1f r1 = 0x1f + 1066: 33 00 01 r0 = 0x1 + 1069: cf 10 0b r11 = r0 << r1 + 1072: 95 aa 01 r10 = r10 + 0x1 + 1075: 33 02 02 r2 = 0x2 + 1078: ab 2a f1 jump 1063 if r10 != r2 + : @62 + 1081: 33 04 01 r4 = 0x1 + 1084: 97 44 1f r4 = r4 << 0x1f + 1087: ab 4b 9f 00 jump 1246 if r11 != r4 + : @63 + 1091: 33 05 25 r5 = 0x25 + 1094: 33 0a r10 = 0 + 1096: 01 fallthrough + : @64 + 1097: 33 01 07 r1 = 0x7 + 1100: 33 00 01 r0 = 0x1 + 1103: cf 10 0b r11 = r0 << r1 + 1106: 95 aa 01 r10 = r10 + 0x1 + 1109: 33 02 02 r2 = 0x2 + 1112: ab 2a f1 jump 1097 if r10 != r2 + : @65 + 1115: 33 04 80 00 r4 = 0x80 + 1119: ab 4b 7f jump 1246 if r11 != r4 + : @66 + 1122: 33 05 26 r5 = 0x26 + 1125: 33 0a r10 = 0 + 1127: 01 fallthrough + : @67 + 1128: 33 01 0e r1 = 0xe + 1131: 33 00 01 r0 = 0x1 + 1134: cf 10 0b r11 = r0 << r1 + 1137: 95 aa 01 r10 = r10 + 0x1 + 1140: 33 02 02 r2 = 0x2 + 1143: ab 2a f1 jump 1128 if r10 != r2 + : @68 + 1146: 33 04 00 40 r4 = 0x4000 + 1150: ab 4b 60 jump 1246 if r11 != r4 + : @69 + 1153: 33 05 27 r5 = 0x27 + 1156: 33 0a r10 = 0 + 1158: 01 fallthrough + : @70 + 1159: 33 01 1f r1 = 0x1f + 1162: 33 00 01 r0 = 0x1 + 1165: cf 10 0b r11 = r0 << r1 + 1168: 95 aa 01 r10 = r10 + 0x1 + 1171: 33 02 02 r2 = 0x2 + 1174: ab 2a f1 jump 1159 if r10 != r2 + : @71 + 1177: 33 04 01 r4 = 0x1 + 1180: 97 44 1f r4 = r4 << 0x1f + 1183: ab 4b 3f jump 1246 if r11 != r4 + : @72 + 1186: 33 05 28 r5 = 0x28 + 1189: 33 00 0f r0 = 0xf + 1192: 9b 01 r1 = 0 << r0 + 1194: 33 04 r4 = 0 + 1196: ab 41 32 jump 1246 if r1 != r4 + : @73 + 1199: 33 05 29 r5 = 0x29 + 1202: 33 00 20 r0 = 0x20 + 1205: 97 01 r1 = r0 << 0 + 1207: 33 04 20 r4 = 0x20 + 1210: ab 41 24 jump 1246 if r1 != r4 + : @74 + 1213: 33 05 2a r5 = 0x2a + 1216: 33 00 r0 = 0 + 1218: 33 04 r4 = 0 + 1220: ab 40 1a jump 1246 if r0 != r4 + : @75 + 1223: 33 05 2b r5 = 0x2b + 1226: 33 00 00 04 r0 = 0x400 + 1230: 33 01 00 10 r1 = 0x1000 + 1234: 83 11 00 f8 i32 r1 = r1 + 0xfffffffffffff800 + 1238: 33 04 r4 = 0 + 1240: 52 04 06 jump 1246 if r4 != 0 + : @76 + 1243: 52 05 04 jump 1247 if r5 != 0 + : @77 + 1246: 00 trap + : @78 + 1247: 28 21 fb jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r1 = 0x800 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0x80000000 (initially was 0x0) + * r5 = 0x2b (initially was 0x0) + * r8 = 0x18 (initially was 0x0) + * r9 = 0x4000 (initially was 0x0) + * r10 = 0x2 (initially was 0x0) + * r11 = 0x80000000 (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9520 + + +## riscv_rv64ui_slli + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 0a 01 r10 = 0x1 + 19: 97 ab r11 = r10 << 0 + 21: 33 04 01 r4 = 0x1 + 24: ab 4b 61 02 jump 633 if r11 != r4 + : @2 + 28: 33 05 03 r5 = 0x3 + 31: 33 0a 01 r10 = 0x1 + 34: 97 ab 01 r11 = r10 << 0x1 + 37: 33 04 02 r4 = 0x2 + 40: ab 4b 51 02 jump 633 if r11 != r4 + : @3 + 44: 33 05 04 r5 = 0x4 + 47: 33 0a 01 r10 = 0x1 + 50: 97 ab 07 r11 = r10 << 0x7 + 53: 33 04 80 00 r4 = 0x80 + 57: ab 4b 40 02 jump 633 if r11 != r4 + : @4 + 61: 33 05 05 r5 = 0x5 + 64: 33 0a 01 r10 = 0x1 + 67: 97 ab 0e r11 = r10 << 0xe + 70: 33 04 00 40 r4 = 0x4000 + 74: ab 4b 2f 02 jump 633 if r11 != r4 + : @5 + 78: 33 05 06 r5 = 0x6 + 81: 33 0a 01 r10 = 0x1 + 84: 97 ab 1f r11 = r10 << 0x1f + 87: 33 04 01 r4 = 0x1 + 90: 97 44 1f r4 = r4 << 0x1f + 93: ab 4b 1c 02 jump 633 if r11 != r4 + : @6 + 97: 33 05 07 r5 = 0x7 + 100: 33 0a ff r10 = 0xffffffffffffffff + 103: 97 ab r11 = r10 << 0 + 105: 33 04 ff r4 = 0xffffffffffffffff + 108: ab 4b 0d 02 jump 633 if r11 != r4 + : @7 + 112: 33 05 08 r5 = 0x8 + 115: 33 0a ff r10 = 0xffffffffffffffff + 118: 97 ab 01 r11 = r10 << 0x1 + 121: 33 04 fe r4 = 0xfffffffffffffffe + 124: ab 4b fd 01 jump 633 if r11 != r4 + : @8 + 128: 33 05 09 r5 = 0x9 + 131: 33 0a ff r10 = 0xffffffffffffffff + 134: 97 ab 07 r11 = r10 << 0x7 + 137: 33 04 80 r4 = 0xffffffffffffff80 + 140: ab 4b ed 01 jump 633 if r11 != r4 + : @9 + 144: 33 05 0a r5 = 0xa + 147: 33 0a ff r10 = 0xffffffffffffffff + 150: 97 ab 0e r11 = r10 << 0xe + 153: 33 04 00 c0 r4 = 0xffffffffffffc000 + 157: ab 4b dc 01 jump 633 if r11 != r4 + : @10 + 161: 33 05 0b r5 = 0xb + 164: 33 0a ff r10 = 0xffffffffffffffff + 167: 97 ab 1f r11 = r10 << 0x1f + 170: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 176: ab 4b c9 01 jump 633 if r11 != r4 + : @11 + 180: 33 05 0c r5 = 0xc + 183: 33 0a 00 20 21 21 r10 = 0x21212000 + 189: 83 aa 21 01 i32 r10 = r10 + 0x121 + 193: 97 ab r11 = r10 << 0 + 195: 33 04 00 20 21 21 r4 = 0x21212000 + 201: 83 44 21 01 i32 r4 = r4 + 0x121 + 205: ab 4b ac 01 jump 633 if r11 != r4 + : @12 + 209: 33 05 0d r5 = 0xd + 212: 33 0a 00 20 21 21 r10 = 0x21212000 + 218: 83 aa 21 01 i32 r10 = r10 + 0x121 + 222: 97 ab 01 r11 = r10 << 0x1 + 225: 33 04 00 40 42 42 r4 = 0x42424000 + 231: 83 44 42 02 i32 r4 = r4 + 0x242 + 235: ab 4b 8e 01 jump 633 if r11 != r4 + : @13 + 239: 33 05 0e r5 = 0xe + 242: 33 0a 00 20 21 21 r10 = 0x21212000 + 248: 83 aa 21 01 i32 r10 = r10 + 0x121 + 252: 97 ab 07 r11 = r10 << 0x7 + 255: 33 04 00 10 09 01 r4 = 0x1091000 + 261: 83 44 09 f9 i32 r4 = r4 + 0xfffffffffffff909 + 265: 97 44 0c r4 = r4 << 0xc + 268: 95 44 80 00 r4 = r4 + 0x80 + 272: ab 4b 69 01 jump 633 if r11 != r4 + : @14 + 276: 33 05 0f r5 = 0xf + 279: 33 0a 00 20 21 21 r10 = 0x21212000 + 285: 83 aa 21 01 i32 r10 = r10 + 0x121 + 289: 97 ab 0e r11 = r10 << 0xe + 292: 33 04 00 20 21 21 r4 = 0x21212000 + 298: 83 44 21 01 i32 r4 = r4 + 0x121 + 302: 97 44 0e r4 = r4 << 0xe + 305: ab 4b 48 01 jump 633 if r11 != r4 + : @15 + 309: 33 05 10 r5 = 0x10 + 312: 33 0a 00 20 21 21 r10 = 0x21212000 + 318: 83 aa 21 01 i32 r10 = r10 + 0x121 + 322: 97 ab 1f r11 = r10 << 0x1f + 325: 33 04 00 20 21 21 r4 = 0x21212000 + 331: 83 44 21 01 i32 r4 = r4 + 0x121 + 335: 97 44 1f r4 = r4 << 0x1f + 338: ab 4b 27 01 jump 633 if r11 != r4 + : @16 + 342: 33 05 32 r5 = 0x32 + 345: 33 0a 01 r10 = 0x1 + 348: 97 ab 3f r11 = r10 << 0x3f + 351: 33 04 ff r4 = 0xffffffffffffffff + 354: 97 44 3f r4 = r4 << 0x3f + 357: ab 4b 14 01 jump 633 if r11 != r4 + : @17 + 361: 33 05 33 r5 = 0x33 + 364: 33 0a ff r10 = 0xffffffffffffffff + 367: 97 ab 27 r11 = r10 << 0x27 + 370: 33 04 ff r4 = 0xffffffffffffffff + 373: 97 44 27 r4 = r4 << 0x27 + 376: ab 4b 01 01 jump 633 if r11 != r4 + : @18 + 380: 33 05 34 r5 = 0x34 + 383: 33 0a 00 20 21 21 r10 = 0x21212000 + 389: 83 aa 21 01 i32 r10 = r10 + 0x121 + 393: 97 ab 2b r11 = r10 << 0x2b + 396: 33 04 00 20 01 r4 = 0x12000 + 401: 83 44 21 01 i32 r4 = r4 + 0x121 + 405: 97 44 2b r4 = r4 << 0x2b + 408: ab 4b e1 00 jump 633 if r11 != r4 + : @19 + 412: 33 05 11 r5 = 0x11 + 415: 33 08 01 r8 = 0x1 + 418: 97 88 07 r8 = r8 << 0x7 + 421: 33 04 80 00 r4 = 0x80 + 425: ab 48 d0 00 jump 633 if r8 != r4 + : @20 + 429: 33 05 12 r5 = 0x12 + 432: 33 09 r9 = 0 + 434: 01 fallthrough + : @21 + 435: 33 00 01 r0 = 0x1 + 438: 97 0b 07 r11 = r0 << 0x7 + 441: 64 b3 r3 = r11 + 443: 95 99 01 r9 = r9 + 0x1 + 446: 33 02 02 r2 = 0x2 + 449: ab 29 f2 jump 435 if r9 != r2 + : @22 + 452: 33 04 80 00 r4 = 0x80 + 456: ab 43 b1 00 jump 633 if r3 != r4 + : @23 + 460: 33 05 13 r5 = 0x13 + 463: 33 09 r9 = 0 + 465: 01 fallthrough + : @24 + 466: 33 00 01 r0 = 0x1 + 469: 97 0b 0e r11 = r0 << 0xe + 472: 64 b3 r3 = r11 + 474: 95 99 01 r9 = r9 + 0x1 + 477: 33 02 02 r2 = 0x2 + 480: ab 29 f2 jump 466 if r9 != r2 + : @25 + 483: 33 04 00 40 r4 = 0x4000 + 487: ab 43 92 00 jump 633 if r3 != r4 + : @26 + 491: 33 05 14 r5 = 0x14 + 494: 33 09 r9 = 0 + 496: 01 fallthrough + : @27 + 497: 33 00 01 r0 = 0x1 + 500: 97 0b 1f r11 = r0 << 0x1f + 503: 64 b3 r3 = r11 + 505: 95 99 01 r9 = r9 + 0x1 + 508: 33 02 02 r2 = 0x2 + 511: ab 29 f2 jump 497 if r9 != r2 + : @28 + 514: 33 04 01 r4 = 0x1 + 517: 97 44 1f r4 = r4 << 0x1f + 520: ab 43 71 jump 633 if r3 != r4 + : @29 + 523: 33 05 15 r5 = 0x15 + 526: 33 09 r9 = 0 + 528: 01 fallthrough + : @30 + 529: 33 00 01 r0 = 0x1 + 532: 97 0b 07 r11 = r0 << 0x7 + 535: 95 99 01 r9 = r9 + 0x1 + 538: 33 02 02 r2 = 0x2 + 541: ab 29 f4 jump 529 if r9 != r2 + : @31 + 544: 33 04 80 00 r4 = 0x80 + 548: ab 4b 55 jump 633 if r11 != r4 + : @32 + 551: 33 05 16 r5 = 0x16 + 554: 33 09 r9 = 0 + 556: 01 fallthrough + : @33 + 557: 33 00 01 r0 = 0x1 + 560: 97 0b 0e r11 = r0 << 0xe + 563: 95 99 01 r9 = r9 + 0x1 + 566: 33 02 02 r2 = 0x2 + 569: ab 29 f4 jump 557 if r9 != r2 + : @34 + 572: 33 04 00 40 r4 = 0x4000 + 576: ab 4b 39 jump 633 if r11 != r4 + : @35 + 579: 33 05 17 r5 = 0x17 + 582: 33 09 r9 = 0 + 584: 01 fallthrough + : @36 + 585: 33 00 01 r0 = 0x1 + 588: 97 0b 1f r11 = r0 << 0x1f + 591: 95 99 01 r9 = r9 + 0x1 + 594: 33 02 02 r2 = 0x2 + 597: ab 29 f4 jump 585 if r9 != r2 + : @37 + 600: 33 04 01 r4 = 0x1 + 603: 97 44 1f r4 = r4 << 0x1f + 606: ab 4b 1b jump 633 if r11 != r4 + : @38 + 609: 33 05 18 r5 = 0x18 + 612: 33 00 r0 = 0 + 614: 33 04 r4 = 0 + 616: ab 40 11 jump 633 if r0 != r4 + : @39 + 619: 33 05 19 r5 = 0x19 + 622: 33 00 21 r0 = 0x21 + 625: 33 04 r4 = 0 + 627: 52 04 06 jump 633 if r4 != 0 + : @40 + 630: 52 05 04 jump 634 if r5 != 0 + : @41 + 633: 00 trap + : @42 + 634: 28 86 fd jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0x80000000 (initially was 0x0) + * r5 = 0x19 (initially was 0x0) + * r8 = 0x80 (initially was 0x0) + * r9 = 0x2 (initially was 0x0) + * r10 = 0x21212121 (initially was 0x0) + * r11 = 0x80000000 (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9773 + + +## riscv_rv64ui_slliw + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 0a 01 r10 = 0x1 + 19: 8a ab i32 r11 = r10 << 0 + 21: 33 04 01 r4 = 0x1 + 24: ab 4b 94 02 jump 684 if r11 != r4 + : @2 + 28: 33 05 03 r5 = 0x3 + 31: 33 0a 01 r10 = 0x1 + 34: 8a ab 01 i32 r11 = r10 << 0x1 + 37: 33 04 02 r4 = 0x2 + 40: ab 4b 84 02 jump 684 if r11 != r4 + : @3 + 44: 33 05 04 r5 = 0x4 + 47: 33 0a 01 r10 = 0x1 + 50: 8a ab 07 i32 r11 = r10 << 0x7 + 53: 33 04 80 00 r4 = 0x80 + 57: ab 4b 73 02 jump 684 if r11 != r4 + : @4 + 61: 33 05 05 r5 = 0x5 + 64: 33 0a 01 r10 = 0x1 + 67: 8a ab 0e i32 r11 = r10 << 0xe + 70: 33 04 00 40 r4 = 0x4000 + 74: ab 4b 62 02 jump 684 if r11 != r4 + : @5 + 78: 33 05 06 r5 = 0x6 + 81: 33 0a 01 r10 = 0x1 + 84: 8a ab 1f i32 r11 = r10 << 0x1f + 87: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 93: ab 4b 4f 02 jump 684 if r11 != r4 + : @6 + 97: 33 05 07 r5 = 0x7 + 100: 33 0a ff r10 = 0xffffffffffffffff + 103: 8a ab i32 r11 = r10 << 0 + 105: 33 04 ff r4 = 0xffffffffffffffff + 108: ab 4b 40 02 jump 684 if r11 != r4 + : @7 + 112: 33 05 08 r5 = 0x8 + 115: 33 0a ff r10 = 0xffffffffffffffff + 118: 8a ab 01 i32 r11 = r10 << 0x1 + 121: 33 04 fe r4 = 0xfffffffffffffffe + 124: ab 4b 30 02 jump 684 if r11 != r4 + : @8 + 128: 33 05 09 r5 = 0x9 + 131: 33 0a ff r10 = 0xffffffffffffffff + 134: 8a ab 07 i32 r11 = r10 << 0x7 + 137: 33 04 80 r4 = 0xffffffffffffff80 + 140: ab 4b 20 02 jump 684 if r11 != r4 + : @9 + 144: 33 05 0a r5 = 0xa + 147: 33 0a ff r10 = 0xffffffffffffffff + 150: 8a ab 0e i32 r11 = r10 << 0xe + 153: 33 04 00 c0 r4 = 0xffffffffffffc000 + 157: ab 4b 0f 02 jump 684 if r11 != r4 + : @10 + 161: 33 05 0b r5 = 0xb + 164: 33 0a ff r10 = 0xffffffffffffffff + 167: 8a ab 1f i32 r11 = r10 << 0x1f + 170: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 176: ab 4b fc 01 jump 684 if r11 != r4 + : @11 + 180: 33 05 0c r5 = 0xc + 183: 33 0a 00 20 21 21 r10 = 0x21212000 + 189: 83 aa 21 01 i32 r10 = r10 + 0x121 + 193: 8a ab i32 r11 = r10 << 0 + 195: 33 04 00 20 21 21 r4 = 0x21212000 + 201: 83 44 21 01 i32 r4 = r4 + 0x121 + 205: ab 4b df 01 jump 684 if r11 != r4 + : @12 + 209: 33 05 0d r5 = 0xd + 212: 33 0a 00 20 21 21 r10 = 0x21212000 + 218: 83 aa 21 01 i32 r10 = r10 + 0x121 + 222: 8a ab 01 i32 r11 = r10 << 0x1 + 225: 33 04 00 40 42 42 r4 = 0x42424000 + 231: 83 44 42 02 i32 r4 = r4 + 0x242 + 235: ab 4b c1 01 jump 684 if r11 != r4 + : @13 + 239: 33 05 0e r5 = 0xe + 242: 33 0a 00 20 21 21 r10 = 0x21212000 + 248: 83 aa 21 01 i32 r10 = r10 + 0x121 + 252: 8a ab 07 i32 r11 = r10 << 0x7 + 255: 33 04 00 90 90 90 r4 = 0xffffffff90909000 + 261: 83 44 80 00 i32 r4 = r4 + 0x80 + 265: ab 4b a3 01 jump 684 if r11 != r4 + : @14 + 269: 33 05 0f r5 = 0xf + 272: 33 0a 00 20 21 21 r10 = 0x21212000 + 278: 83 aa 21 01 i32 r10 = r10 + 0x121 + 282: 8a ab 0e i32 r11 = r10 << 0xe + 285: 33 04 00 40 48 48 r4 = 0x48484000 + 291: ab 4b 89 01 jump 684 if r11 != r4 + : @15 + 295: 33 05 10 r5 = 0x10 + 298: 33 0a 00 20 21 21 r10 = 0x21212000 + 304: 83 aa 21 01 i32 r10 = r10 + 0x121 + 308: 8a ab 1f i32 r11 = r10 << 0x1f + 311: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 317: ab 4b 6f 01 jump 684 if r11 != r4 + : @16 + 321: 33 05 2c r5 = 0x2c + 324: 33 0a 00 20 f1 r10 = 0xfffffffffff12000 + 329: 83 aa 45 03 i32 r10 = r10 + 0x345 + 333: 97 aa 0c r10 = r10 << 0xc + 336: 95 aa 78 06 r10 = r10 + 0x678 + 340: 8a ab i32 r11 = r10 << 0 + 342: 33 04 00 50 34 12 r4 = 0x12345000 + 348: 83 44 78 06 i32 r4 = r4 + 0x678 + 352: ab 4b 4c 01 jump 684 if r11 != r4 + : @17 + 356: 33 05 2d r5 = 0x2d + 359: 33 0a 00 20 f1 r10 = 0xfffffffffff12000 + 364: 83 aa 45 03 i32 r10 = r10 + 0x345 + 368: 97 aa 0c r10 = r10 << 0xc + 371: 95 aa 78 06 r10 = r10 + 0x678 + 375: 8a ab 04 i32 r11 = r10 << 0x4 + 378: 33 04 00 60 45 23 r4 = 0x23456000 + 384: 83 44 80 07 i32 r4 = r4 + 0x780 + 388: ab 4b 28 01 jump 684 if r11 != r4 + : @18 + 392: 33 05 2e r5 = 0x2e + 395: 33 0a 00 20 09 r10 = 0x92000 + 400: 83 aa 45 03 i32 r10 = r10 + 0x345 + 404: 97 aa 0c r10 = r10 << 0xc + 407: 95 aa 78 06 r10 = r10 + 0x678 + 411: 8a ab i32 r11 = r10 << 0 + 413: 33 04 00 50 34 92 r4 = 0xffffffff92345000 + 419: 83 44 78 06 i32 r4 = r4 + 0x678 + 423: ab 4b 05 01 jump 684 if r11 != r4 + : @19 + 427: 33 05 2f r5 = 0x2f + 430: 33 0a 00 90 09 r10 = 0x99000 + 435: 83 aa 45 03 i32 r10 = r10 + 0x345 + 439: 97 aa 0c r10 = r10 << 0xc + 442: 95 aa 78 06 r10 = r10 + 0x678 + 446: 8a ab 04 i32 r11 = r10 << 0x4 + 449: 33 04 00 60 45 93 r4 = 0xffffffff93456000 + 455: 83 44 80 07 i32 r4 = r4 + 0x780 + 459: ab 4b e1 00 jump 684 if r11 != r4 + : @20 + 463: 33 05 11 r5 = 0x11 + 466: 33 08 01 r8 = 0x1 + 469: 8a 88 07 i32 r8 = r8 << 0x7 + 472: 33 04 80 00 r4 = 0x80 + 476: ab 48 d0 00 jump 684 if r8 != r4 + : @21 + 480: 33 05 12 r5 = 0x12 + 483: 33 09 r9 = 0 + 485: 01 fallthrough + : @22 + 486: 33 00 01 r0 = 0x1 + 489: 8a 0b 07 i32 r11 = r0 << 0x7 + 492: 64 b3 r3 = r11 + 494: 95 99 01 r9 = r9 + 0x1 + 497: 33 02 02 r2 = 0x2 + 500: ab 29 f2 jump 486 if r9 != r2 + : @23 + 503: 33 04 80 00 r4 = 0x80 + 507: ab 43 b1 00 jump 684 if r3 != r4 + : @24 + 511: 33 05 13 r5 = 0x13 + 514: 33 09 r9 = 0 + 516: 01 fallthrough + : @25 + 517: 33 00 01 r0 = 0x1 + 520: 8a 0b 0e i32 r11 = r0 << 0xe + 523: 64 b3 r3 = r11 + 525: 95 99 01 r9 = r9 + 0x1 + 528: 33 02 02 r2 = 0x2 + 531: ab 29 f2 jump 517 if r9 != r2 + : @26 + 534: 33 04 00 40 r4 = 0x4000 + 538: ab 43 92 00 jump 684 if r3 != r4 + : @27 + 542: 33 05 14 r5 = 0x14 + 545: 33 09 r9 = 0 + 547: 01 fallthrough + : @28 + 548: 33 00 01 r0 = 0x1 + 551: 8a 0b 1f i32 r11 = r0 << 0x1f + 554: 64 b3 r3 = r11 + 556: 95 99 01 r9 = r9 + 0x1 + 559: 33 02 02 r2 = 0x2 + 562: ab 29 f2 jump 548 if r9 != r2 + : @29 + 565: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 571: ab 43 71 jump 684 if r3 != r4 + : @30 + 574: 33 05 15 r5 = 0x15 + 577: 33 09 r9 = 0 + 579: 01 fallthrough + : @31 + 580: 33 00 01 r0 = 0x1 + 583: 8a 0b 07 i32 r11 = r0 << 0x7 + 586: 95 99 01 r9 = r9 + 0x1 + 589: 33 02 02 r2 = 0x2 + 592: ab 29 f4 jump 580 if r9 != r2 + : @32 + 595: 33 04 80 00 r4 = 0x80 + 599: ab 4b 55 jump 684 if r11 != r4 + : @33 + 602: 33 05 16 r5 = 0x16 + 605: 33 09 r9 = 0 + 607: 01 fallthrough + : @34 + 608: 33 00 01 r0 = 0x1 + 611: 8a 0b 0e i32 r11 = r0 << 0xe + 614: 95 99 01 r9 = r9 + 0x1 + 617: 33 02 02 r2 = 0x2 + 620: ab 29 f4 jump 608 if r9 != r2 + : @35 + 623: 33 04 00 40 r4 = 0x4000 + 627: ab 4b 39 jump 684 if r11 != r4 + : @36 + 630: 33 05 17 r5 = 0x17 + 633: 33 09 r9 = 0 + 635: 01 fallthrough + : @37 + 636: 33 00 01 r0 = 0x1 + 639: 8a 0b 1f i32 r11 = r0 << 0x1f + 642: 95 99 01 r9 = r9 + 0x1 + 645: 33 02 02 r2 = 0x2 + 648: ab 29 f4 jump 636 if r9 != r2 + : @38 + 651: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 657: ab 4b 1b jump 684 if r11 != r4 + : @39 + 660: 33 05 18 r5 = 0x18 + 663: 33 00 r0 = 0 + 665: 33 04 r4 = 0 + 667: ab 40 11 jump 684 if r0 != r4 + : @40 + 670: 33 05 19 r5 = 0x19 + 673: 33 00 1f r0 = 0x1f + 676: 33 04 r4 = 0 + 678: 52 04 06 jump 684 if r4 != 0 + : @41 + 681: 52 05 04 jump 685 if r5 != 0 + : @42 + 684: 00 trap + : @43 + 685: 28 53 fd jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0xffffffff80000000 (initially was 0x0) + * r5 = 0x19 (initially was 0x0) + * r8 = 0x80 (initially was 0x0) + * r9 = 0x2 (initially was 0x0) + * r10 = 0x99345678 (initially was 0x0) + * r11 = 0xffffffff80000000 (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9766 + + +## riscv_rv64ui_sllw + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 08 01 r8 = 0x1 + 19: 33 09 r9 = 0 + 21: c5 98 0b i32 r11 = r8 << r9 + 24: 33 04 01 r4 = 0x1 + 27: ab 4b eb 04 jump 1286 if r11 != r4 + : @2 + 31: 33 05 03 r5 = 0x3 + 34: 33 08 01 r8 = 0x1 + 37: 33 09 01 r9 = 0x1 + 40: c5 98 0b i32 r11 = r8 << r9 + 43: 33 04 02 r4 = 0x2 + 46: ab 4b d8 04 jump 1286 if r11 != r4 + : @3 + 50: 33 05 04 r5 = 0x4 + 53: 33 08 01 r8 = 0x1 + 56: 33 09 07 r9 = 0x7 + 59: c5 98 0b i32 r11 = r8 << r9 + 62: 33 04 80 00 r4 = 0x80 + 66: ab 4b c4 04 jump 1286 if r11 != r4 + : @4 + 70: 33 05 05 r5 = 0x5 + 73: 33 08 01 r8 = 0x1 + 76: 33 09 0e r9 = 0xe + 79: c5 98 0b i32 r11 = r8 << r9 + 82: 33 04 00 40 r4 = 0x4000 + 86: ab 4b b0 04 jump 1286 if r11 != r4 + : @5 + 90: 33 05 06 r5 = 0x6 + 93: 33 08 01 r8 = 0x1 + 96: 33 09 1f r9 = 0x1f + 99: c5 98 0b i32 r11 = r8 << r9 + 102: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 108: ab 4b 9a 04 jump 1286 if r11 != r4 + : @6 + 112: 33 05 07 r5 = 0x7 + 115: 33 08 ff r8 = 0xffffffffffffffff + 118: 33 09 r9 = 0 + 120: c5 98 0b i32 r11 = r8 << r9 + 123: 33 04 ff r4 = 0xffffffffffffffff + 126: ab 4b 88 04 jump 1286 if r11 != r4 + : @7 + 130: 33 05 08 r5 = 0x8 + 133: 33 08 ff r8 = 0xffffffffffffffff + 136: 33 09 01 r9 = 0x1 + 139: c5 98 0b i32 r11 = r8 << r9 + 142: 33 04 fe r4 = 0xfffffffffffffffe + 145: ab 4b 75 04 jump 1286 if r11 != r4 + : @8 + 149: 33 05 09 r5 = 0x9 + 152: 33 08 ff r8 = 0xffffffffffffffff + 155: 33 09 07 r9 = 0x7 + 158: c5 98 0b i32 r11 = r8 << r9 + 161: 33 04 80 r4 = 0xffffffffffffff80 + 164: ab 4b 62 04 jump 1286 if r11 != r4 + : @9 + 168: 33 05 0a r5 = 0xa + 171: 33 08 ff r8 = 0xffffffffffffffff + 174: 33 09 0e r9 = 0xe + 177: c5 98 0b i32 r11 = r8 << r9 + 180: 33 04 00 c0 r4 = 0xffffffffffffc000 + 184: ab 4b 4e 04 jump 1286 if r11 != r4 + : @10 + 188: 33 05 0b r5 = 0xb + 191: 33 08 ff r8 = 0xffffffffffffffff + 194: 33 09 1f r9 = 0x1f + 197: c5 98 0b i32 r11 = r8 << r9 + 200: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 206: ab 4b 38 04 jump 1286 if r11 != r4 + : @11 + 210: 33 05 0c r5 = 0xc + 213: 33 08 00 20 21 21 r8 = 0x21212000 + 219: 83 88 21 01 i32 r8 = r8 + 0x121 + 223: 33 09 r9 = 0 + 225: c5 98 0b i32 r11 = r8 << r9 + 228: 33 04 00 20 21 21 r4 = 0x21212000 + 234: 83 44 21 01 i32 r4 = r4 + 0x121 + 238: ab 4b 18 04 jump 1286 if r11 != r4 + : @12 + 242: 33 05 0d r5 = 0xd + 245: 33 08 00 20 21 21 r8 = 0x21212000 + 251: 83 88 21 01 i32 r8 = r8 + 0x121 + 255: 33 09 01 r9 = 0x1 + 258: c5 98 0b i32 r11 = r8 << r9 + 261: 33 04 00 40 42 42 r4 = 0x42424000 + 267: 83 44 42 02 i32 r4 = r4 + 0x242 + 271: ab 4b f7 03 jump 1286 if r11 != r4 + : @13 + 275: 33 05 0e r5 = 0xe + 278: 33 08 00 20 21 21 r8 = 0x21212000 + 284: 83 88 21 01 i32 r8 = r8 + 0x121 + 288: 33 09 07 r9 = 0x7 + 291: c5 98 0b i32 r11 = r8 << r9 + 294: 33 04 00 90 90 90 r4 = 0xffffffff90909000 + 300: 83 44 80 00 i32 r4 = r4 + 0x80 + 304: ab 4b d6 03 jump 1286 if r11 != r4 + : @14 + 308: 33 05 0f r5 = 0xf + 311: 33 08 00 20 21 21 r8 = 0x21212000 + 317: 83 88 21 01 i32 r8 = r8 + 0x121 + 321: 33 09 0e r9 = 0xe + 324: c5 98 0b i32 r11 = r8 << r9 + 327: 33 04 00 40 48 48 r4 = 0x48484000 + 333: ab 4b b9 03 jump 1286 if r11 != r4 + : @15 + 337: 33 05 10 r5 = 0x10 + 340: 33 08 00 20 21 21 r8 = 0x21212000 + 346: 83 88 21 01 i32 r8 = r8 + 0x121 + 350: 33 09 1f r9 = 0x1f + 353: c5 98 0b i32 r11 = r8 << r9 + 356: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 362: ab 4b 9c 03 jump 1286 if r11 != r4 + : @16 + 366: 33 05 11 r5 = 0x11 + 369: 33 08 00 20 21 21 r8 = 0x21212000 + 375: 83 88 21 01 i32 r8 = r8 + 0x121 + 379: 33 09 e0 r9 = 0xffffffffffffffe0 + 382: c5 98 0b i32 r11 = r8 << r9 + 385: 33 04 00 20 21 21 r4 = 0x21212000 + 391: 83 44 21 01 i32 r4 = r4 + 0x121 + 395: ab 4b 7b 03 jump 1286 if r11 != r4 + : @17 + 399: 33 05 12 r5 = 0x12 + 402: 33 08 00 20 21 21 r8 = 0x21212000 + 408: 83 88 21 01 i32 r8 = r8 + 0x121 + 412: 33 09 e1 r9 = 0xffffffffffffffe1 + 415: c5 98 0b i32 r11 = r8 << r9 + 418: 33 04 00 40 42 42 r4 = 0x42424000 + 424: 83 44 42 02 i32 r4 = r4 + 0x242 + 428: ab 4b 5a 03 jump 1286 if r11 != r4 + : @18 + 432: 33 05 13 r5 = 0x13 + 435: 33 08 00 20 21 21 r8 = 0x21212000 + 441: 83 88 21 01 i32 r8 = r8 + 0x121 + 445: 33 09 e7 r9 = 0xffffffffffffffe7 + 448: c5 98 0b i32 r11 = r8 << r9 + 451: 33 04 00 90 90 90 r4 = 0xffffffff90909000 + 457: 83 44 80 00 i32 r4 = r4 + 0x80 + 461: ab 4b 39 03 jump 1286 if r11 != r4 + : @19 + 465: 33 05 14 r5 = 0x14 + 468: 33 08 00 20 21 21 r8 = 0x21212000 + 474: 83 88 21 01 i32 r8 = r8 + 0x121 + 478: 33 09 ee r9 = 0xffffffffffffffee + 481: c5 98 0b i32 r11 = r8 << r9 + 484: 33 04 00 40 48 48 r4 = 0x48484000 + 490: ab 4b 1c 03 jump 1286 if r11 != r4 + : @20 + 494: 33 05 15 r5 = 0x15 + 497: 33 08 00 20 21 21 r8 = 0x21212000 + 503: 83 88 21 01 i32 r8 = r8 + 0x121 + 507: 33 09 ff r9 = 0xffffffffffffffff + 510: c5 98 0b i32 r11 = r8 << r9 + 513: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 519: ab 4b ff 02 jump 1286 if r11 != r4 + : @21 + 523: 33 05 2c r5 = 0x2c + 526: 33 08 00 20 f1 r8 = 0xfffffffffff12000 + 531: 83 88 45 03 i32 r8 = r8 + 0x345 + 535: 97 88 0c r8 = r8 << 0xc + 538: 95 88 78 06 r8 = r8 + 0x678 + 542: 33 09 r9 = 0 + 544: c5 98 0b i32 r11 = r8 << r9 + 547: 33 04 00 50 34 12 r4 = 0x12345000 + 553: 83 44 78 06 i32 r4 = r4 + 0x678 + 557: ab 4b d9 02 jump 1286 if r11 != r4 + : @22 + 561: 33 05 2d r5 = 0x2d + 564: 33 08 00 20 f1 r8 = 0xfffffffffff12000 + 569: 83 88 45 03 i32 r8 = r8 + 0x345 + 573: 97 88 0c r8 = r8 << 0xc + 576: 95 88 78 06 r8 = r8 + 0x678 + 580: 33 09 04 r9 = 0x4 + 583: c5 98 0b i32 r11 = r8 << r9 + 586: 33 04 00 60 45 23 r4 = 0x23456000 + 592: 83 44 80 07 i32 r4 = r4 + 0x780 + 596: ab 4b b2 02 jump 1286 if r11 != r4 + : @23 + 600: 33 05 2e r5 = 0x2e + 603: 33 08 00 20 09 r8 = 0x92000 + 608: 83 88 45 03 i32 r8 = r8 + 0x345 + 612: 97 88 0c r8 = r8 << 0xc + 615: 95 88 78 06 r8 = r8 + 0x678 + 619: 33 09 r9 = 0 + 621: c5 98 0b i32 r11 = r8 << r9 + 624: 33 04 00 50 34 92 r4 = 0xffffffff92345000 + 630: 83 44 78 06 i32 r4 = r4 + 0x678 + 634: ab 4b 8c 02 jump 1286 if r11 != r4 + : @24 + 638: 33 05 2f r5 = 0x2f + 641: 33 08 00 90 09 r8 = 0x99000 + 646: 83 88 45 03 i32 r8 = r8 + 0x345 + 650: 97 88 0c r8 = r8 << 0xc + 653: 95 88 78 06 r8 = r8 + 0x678 + 657: 33 09 04 r9 = 0x4 + 660: c5 98 0b i32 r11 = r8 << r9 + 663: 33 04 00 60 45 93 r4 = 0xffffffff93456000 + 669: 83 44 80 07 i32 r4 = r4 + 0x780 + 673: ab 4b 65 02 jump 1286 if r11 != r4 + : @25 + 677: 33 05 16 r5 = 0x16 + 680: 33 08 01 r8 = 0x1 + 683: 33 09 07 r9 = 0x7 + 686: c5 98 08 i32 r8 = r8 << r9 + 689: 33 04 80 00 r4 = 0x80 + 693: ab 48 51 02 jump 1286 if r8 != r4 + : @26 + 697: 33 05 17 r5 = 0x17 + 700: 33 08 01 r8 = 0x1 + 703: 33 09 0e r9 = 0xe + 706: c5 98 09 i32 r9 = r8 << r9 + 709: 33 04 00 40 r4 = 0x4000 + 713: ab 49 3d 02 jump 1286 if r9 != r4 + : @27 + 717: 33 05 18 r5 = 0x18 + 720: 33 08 03 r8 = 0x3 + 723: c5 88 08 i32 r8 = r8 << r8 + 726: 33 04 18 r4 = 0x18 + 729: ab 48 2d 02 jump 1286 if r8 != r4 + : @28 + 733: 33 05 19 r5 = 0x19 + 736: 33 0a r10 = 0 + 738: 01 fallthrough + : @29 + 739: 33 00 01 r0 = 0x1 + 742: 33 01 07 r1 = 0x7 + 745: c5 10 0b i32 r11 = r0 << r1 + 748: 64 b3 r3 = r11 + 750: 95 aa 01 r10 = r10 + 0x1 + 753: 33 02 02 r2 = 0x2 + 756: ab 2a ef jump 739 if r10 != r2 + : @30 + 759: 33 04 80 00 r4 = 0x80 + 763: ab 43 0b 02 jump 1286 if r3 != r4 + : @31 + 767: 33 05 1a r5 = 0x1a + 770: 33 0a r10 = 0 + 772: 01 fallthrough + : @32 + 773: 33 00 01 r0 = 0x1 + 776: 33 01 0e r1 = 0xe + 779: c5 10 0b i32 r11 = r0 << r1 + 782: 64 b3 r3 = r11 + 784: 95 aa 01 r10 = r10 + 0x1 + 787: 33 02 02 r2 = 0x2 + 790: ab 2a ef jump 773 if r10 != r2 + : @33 + 793: 33 04 00 40 r4 = 0x4000 + 797: ab 43 e9 01 jump 1286 if r3 != r4 + : @34 + 801: 33 05 1b r5 = 0x1b + 804: 33 0a r10 = 0 + 806: 01 fallthrough + : @35 + 807: 33 00 01 r0 = 0x1 + 810: 33 01 1f r1 = 0x1f + 813: c5 10 0b i32 r11 = r0 << r1 + 816: 64 b3 r3 = r11 + 818: 95 aa 01 r10 = r10 + 0x1 + 821: 33 02 02 r2 = 0x2 + 824: ab 2a ef jump 807 if r10 != r2 + : @36 + 827: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 833: ab 43 c5 01 jump 1286 if r3 != r4 + : @37 + 837: 33 05 1c r5 = 0x1c + 840: 33 0a r10 = 0 + 842: 01 fallthrough + : @38 + 843: 33 00 01 r0 = 0x1 + 846: 33 01 07 r1 = 0x7 + 849: c5 10 0b i32 r11 = r0 << r1 + 852: 95 aa 01 r10 = r10 + 0x1 + 855: 33 02 02 r2 = 0x2 + 858: ab 2a f1 jump 843 if r10 != r2 + : @39 + 861: 33 04 80 00 r4 = 0x80 + 865: ab 4b a5 01 jump 1286 if r11 != r4 + : @40 + 869: 33 05 1d r5 = 0x1d + 872: 33 0a r10 = 0 + 874: 01 fallthrough + : @41 + 875: 33 00 01 r0 = 0x1 + 878: 33 01 0e r1 = 0xe + 881: c5 10 0b i32 r11 = r0 << r1 + 884: 95 aa 01 r10 = r10 + 0x1 + 887: 33 02 02 r2 = 0x2 + 890: ab 2a f1 jump 875 if r10 != r2 + : @42 + 893: 33 04 00 40 r4 = 0x4000 + 897: ab 4b 85 01 jump 1286 if r11 != r4 + : @43 + 901: 33 05 1e r5 = 0x1e + 904: 33 0a r10 = 0 + 906: 01 fallthrough + : @44 + 907: 33 00 01 r0 = 0x1 + 910: 33 01 1f r1 = 0x1f + 913: c5 10 0b i32 r11 = r0 << r1 + 916: 95 aa 01 r10 = r10 + 0x1 + 919: 33 02 02 r2 = 0x2 + 922: ab 2a f1 jump 907 if r10 != r2 + : @45 + 925: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 931: ab 4b 63 01 jump 1286 if r11 != r4 + : @46 + 935: 33 05 1f r5 = 0x1f + 938: 33 0a r10 = 0 + 940: 01 fallthrough + : @47 + 941: 33 00 01 r0 = 0x1 + 944: 33 01 07 r1 = 0x7 + 947: c5 10 0b i32 r11 = r0 << r1 + 950: 95 aa 01 r10 = r10 + 0x1 + 953: 33 02 02 r2 = 0x2 + 956: ab 2a f1 jump 941 if r10 != r2 + : @48 + 959: 33 04 80 00 r4 = 0x80 + 963: ab 4b 43 01 jump 1286 if r11 != r4 + : @49 + 967: 33 05 20 r5 = 0x20 + 970: 33 0a r10 = 0 + 972: 01 fallthrough + : @50 + 973: 33 00 01 r0 = 0x1 + 976: 33 01 0e r1 = 0xe + 979: c5 10 0b i32 r11 = r0 << r1 + 982: 95 aa 01 r10 = r10 + 0x1 + 985: 33 02 02 r2 = 0x2 + 988: ab 2a f1 jump 973 if r10 != r2 + : @51 + 991: 33 04 00 40 r4 = 0x4000 + 995: ab 4b 23 01 jump 1286 if r11 != r4 + : @52 + 999: 33 05 21 r5 = 0x21 + 1002: 33 0a r10 = 0 + 1004: 01 fallthrough + : @53 + 1005: 33 00 01 r0 = 0x1 + 1008: 33 01 1f r1 = 0x1f + 1011: c5 10 0b i32 r11 = r0 << r1 + 1014: 95 aa 01 r10 = r10 + 0x1 + 1017: 33 02 02 r2 = 0x2 + 1020: ab 2a f1 jump 1005 if r10 != r2 + : @54 + 1023: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 1029: ab 4b 01 01 jump 1286 if r11 != r4 + : @55 + 1033: 33 05 22 r5 = 0x22 + 1036: 33 0a r10 = 0 + 1038: 01 fallthrough + : @56 + 1039: 33 01 07 r1 = 0x7 + 1042: 33 00 01 r0 = 0x1 + 1045: c5 10 0b i32 r11 = r0 << r1 + 1048: 95 aa 01 r10 = r10 + 0x1 + 1051: 33 02 02 r2 = 0x2 + 1054: ab 2a f1 jump 1039 if r10 != r2 + : @57 + 1057: 33 04 80 00 r4 = 0x80 + 1061: ab 4b e1 00 jump 1286 if r11 != r4 + : @58 + 1065: 33 05 23 r5 = 0x23 + 1068: 33 0a r10 = 0 + 1070: 01 fallthrough + : @59 + 1071: 33 01 0e r1 = 0xe + 1074: 33 00 01 r0 = 0x1 + 1077: c5 10 0b i32 r11 = r0 << r1 + 1080: 95 aa 01 r10 = r10 + 0x1 + 1083: 33 02 02 r2 = 0x2 + 1086: ab 2a f1 jump 1071 if r10 != r2 + : @60 + 1089: 33 04 00 40 r4 = 0x4000 + 1093: ab 4b c1 00 jump 1286 if r11 != r4 + : @61 + 1097: 33 05 24 r5 = 0x24 + 1100: 33 0a r10 = 0 + 1102: 01 fallthrough + : @62 + 1103: 33 01 1f r1 = 0x1f + 1106: 33 00 01 r0 = 0x1 + 1109: c5 10 0b i32 r11 = r0 << r1 + 1112: 95 aa 01 r10 = r10 + 0x1 + 1115: 33 02 02 r2 = 0x2 + 1118: ab 2a f1 jump 1103 if r10 != r2 + : @63 + 1121: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 1127: ab 4b 9f 00 jump 1286 if r11 != r4 + : @64 + 1131: 33 05 25 r5 = 0x25 + 1134: 33 0a r10 = 0 + 1136: 01 fallthrough + : @65 + 1137: 33 01 07 r1 = 0x7 + 1140: 33 00 01 r0 = 0x1 + 1143: c5 10 0b i32 r11 = r0 << r1 + 1146: 95 aa 01 r10 = r10 + 0x1 + 1149: 33 02 02 r2 = 0x2 + 1152: ab 2a f1 jump 1137 if r10 != r2 + : @66 + 1155: 33 04 80 00 r4 = 0x80 + 1159: ab 4b 7f jump 1286 if r11 != r4 + : @67 + 1162: 33 05 26 r5 = 0x26 + 1165: 33 0a r10 = 0 + 1167: 01 fallthrough + : @68 + 1168: 33 01 0e r1 = 0xe + 1171: 33 00 01 r0 = 0x1 + 1174: c5 10 0b i32 r11 = r0 << r1 + 1177: 95 aa 01 r10 = r10 + 0x1 + 1180: 33 02 02 r2 = 0x2 + 1183: ab 2a f1 jump 1168 if r10 != r2 + : @69 + 1186: 33 04 00 40 r4 = 0x4000 + 1190: ab 4b 60 jump 1286 if r11 != r4 + : @70 + 1193: 33 05 27 r5 = 0x27 + 1196: 33 0a r10 = 0 + 1198: 01 fallthrough + : @71 + 1199: 33 01 1f r1 = 0x1f + 1202: 33 00 01 r0 = 0x1 + 1205: c5 10 0b i32 r11 = r0 << r1 + 1208: 95 aa 01 r10 = r10 + 0x1 + 1211: 33 02 02 r2 = 0x2 + 1214: ab 2a f1 jump 1199 if r10 != r2 + : @72 + 1217: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 1223: ab 4b 3f jump 1286 if r11 != r4 + : @73 + 1226: 33 05 28 r5 = 0x28 + 1229: 33 00 0f r0 = 0xf + 1232: 90 01 i32 r1 = 0 << r0 + 1234: 33 04 r4 = 0 + 1236: ab 41 32 jump 1286 if r1 != r4 + : @74 + 1239: 33 05 29 r5 = 0x29 + 1242: 33 00 20 r0 = 0x20 + 1245: 8a 01 i32 r1 = r0 << 0 + 1247: 33 04 20 r4 = 0x20 + 1250: ab 41 24 jump 1286 if r1 != r4 + : @75 + 1253: 33 05 2a r5 = 0x2a + 1256: 33 00 r0 = 0 + 1258: 33 04 r4 = 0 + 1260: ab 40 1a jump 1286 if r0 != r4 + : @76 + 1263: 33 05 2b r5 = 0x2b + 1266: 33 00 00 04 r0 = 0x400 + 1270: 33 01 00 10 r1 = 0x1000 + 1274: 83 11 00 f8 i32 r1 = r1 + 0xfffffffffffff800 + 1278: 33 04 r4 = 0 + 1280: 52 04 06 jump 1286 if r4 != 0 + : @77 + 1283: 52 05 04 jump 1287 if r5 != 0 + : @78 + 1286: 00 trap + : @79 + 1287: 28 f9 fa jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r1 = 0x800 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0xffffffff80000000 (initially was 0x0) + * r5 = 0x2b (initially was 0x0) + * r8 = 0x18 (initially was 0x0) + * r9 = 0x4000 (initially was 0x0) + * r10 = 0x2 (initially was 0x0) + * r11 = 0xffffffff80000000 (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9520 + + +## riscv_rv64ui_slt + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 08 r8 = 0 + 18: 33 09 r9 = 0 + 20: d9 98 0b r11 = r8 s 0 + 848: 33 04 r4 = 0 + 850: ab 41 2c jump 894 if r1 != r4 + : @65 + 853: 33 05 24 r5 = 0x24 + 856: 33 00 ff r0 = 0xffffffffffffffff + 859: 89 01 r1 = r0 9601 + + +## riscv_rv64ui_slti + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 0a r10 = 0 + 18: 89 ab r11 = r10 9806 + + +## riscv_rv64ui_sltiu + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 0a r10 = 0 + 18: 88 ab r11 = r10 9806 + + +## riscv_rv64ui_sltu + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 08 r8 = 0 + 18: 33 09 r9 = 0 + 20: d8 98 0b r11 = r8 u 0 + 893: 33 04 01 r4 = 0x1 + 896: ab 41 2b jump 939 if r1 != r4 + : @65 + 899: 33 05 24 r5 = 0x24 + 902: 33 00 ff r0 = 0xffffffffffffffff + 905: 88 01 r1 = r0 9584 + + +## riscv_rv64ui_sra + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 22: 33 09 r9 = 0 + 24: d1 98 0b r11 = r8 >>a r9 + 27: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 33: ab 4b c9 04 jump 1258 if r11 != r4 + : @2 + 37: 33 05 03 r5 = 0x3 + 40: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 46: 33 09 01 r9 = 0x1 + 49: d1 98 0b r11 = r8 >>a r9 + 52: 33 04 00 00 00 c0 r4 = 0xffffffffc0000000 + 58: ab 4b b0 04 jump 1258 if r11 != r4 + : @3 + 62: 33 05 04 r5 = 0x4 + 65: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 71: 33 09 07 r9 = 0x7 + 74: d1 98 0b r11 = r8 >>a r9 + 77: 33 04 00 00 00 ff r4 = 0xffffffffff000000 + 83: ab 4b 97 04 jump 1258 if r11 != r4 + : @4 + 87: 33 05 05 r5 = 0x5 + 90: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 96: 33 09 0e r9 = 0xe + 99: d1 98 0b r11 = r8 >>a r9 + 102: 33 04 00 00 fe r4 = 0xfffffffffffe0000 + 107: ab 4b 7f 04 jump 1258 if r11 != r4 + : @5 + 111: 33 05 06 r5 = 0x6 + 114: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 120: 83 88 01 i32 r8 = r8 + 0x1 + 123: 33 09 1f r9 = 0x1f + 126: d1 98 0b r11 = r8 >>a r9 + 129: 33 04 ff r4 = 0xffffffffffffffff + 132: ab 4b 66 04 jump 1258 if r11 != r4 + : @6 + 136: 33 05 07 r5 = 0x7 + 139: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 145: 83 88 ff i32 r8 = r8 + 0xffffffffffffffff + 148: 33 09 r9 = 0 + 150: d1 98 0b r11 = r8 >>a r9 + 153: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 159: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 162: ab 4b 48 04 jump 1258 if r11 != r4 + : @7 + 166: 33 05 08 r5 = 0x8 + 169: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 175: 83 88 ff i32 r8 = r8 + 0xffffffffffffffff + 178: 33 09 01 r9 = 0x1 + 181: d1 98 0b r11 = r8 >>a r9 + 184: 33 04 00 00 00 40 r4 = 0x40000000 + 190: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 193: ab 4b 29 04 jump 1258 if r11 != r4 + : @8 + 197: 33 05 09 r5 = 0x9 + 200: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 206: 83 88 ff i32 r8 = r8 + 0xffffffffffffffff + 209: 33 09 07 r9 = 0x7 + 212: d1 98 0b r11 = r8 >>a r9 + 215: 33 04 00 00 00 01 r4 = 0x1000000 + 221: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 224: ab 4b 0a 04 jump 1258 if r11 != r4 + : @9 + 228: 33 05 0a r5 = 0xa + 231: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 237: 83 88 ff i32 r8 = r8 + 0xffffffffffffffff + 240: 33 09 0e r9 = 0xe + 243: d1 98 0b r11 = r8 >>a r9 + 246: 33 04 00 00 02 r4 = 0x20000 + 251: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 254: ab 4b ec 03 jump 1258 if r11 != r4 + : @10 + 258: 33 05 0b r5 = 0xb + 261: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 267: 83 88 ff i32 r8 = r8 + 0xffffffffffffffff + 270: 33 09 1f r9 = 0x1f + 273: d1 98 0b r11 = r8 >>a r9 + 276: 33 04 r4 = 0 + 278: ab 4b d4 03 jump 1258 if r11 != r4 + : @11 + 282: 33 05 0c r5 = 0xc + 285: 33 08 00 80 81 81 r8 = 0xffffffff81818000 + 291: 83 88 81 01 i32 r8 = r8 + 0x181 + 295: 33 09 r9 = 0 + 297: d1 98 0b r11 = r8 >>a r9 + 300: 33 04 00 80 81 81 r4 = 0xffffffff81818000 + 306: 83 44 81 01 i32 r4 = r4 + 0x181 + 310: ab 4b b4 03 jump 1258 if r11 != r4 + : @12 + 314: 33 05 0d r5 = 0xd + 317: 33 08 00 80 81 81 r8 = 0xffffffff81818000 + 323: 83 88 81 01 i32 r8 = r8 + 0x181 + 327: 33 09 01 r9 = 0x1 + 330: d1 98 0b r11 = r8 >>a r9 + 333: 33 04 00 c0 c0 c0 r4 = 0xffffffffc0c0c000 + 339: 83 44 c0 00 i32 r4 = r4 + 0xc0 + 343: ab 4b 93 03 jump 1258 if r11 != r4 + : @13 + 347: 33 05 0e r5 = 0xe + 350: 33 08 00 80 81 81 r8 = 0xffffffff81818000 + 356: 83 88 81 01 i32 r8 = r8 + 0x181 + 360: 33 09 07 r9 = 0x7 + 363: d1 98 0b r11 = r8 >>a r9 + 366: 33 04 00 00 03 ff r4 = 0xffffffffff030000 + 372: 83 44 03 03 i32 r4 = r4 + 0x303 + 376: ab 4b 72 03 jump 1258 if r11 != r4 + : @14 + 380: 33 05 0f r5 = 0xf + 383: 33 08 00 80 81 81 r8 = 0xffffffff81818000 + 389: 83 88 81 01 i32 r8 = r8 + 0x181 + 393: 33 09 0e r9 = 0xe + 396: d1 98 0b r11 = r8 >>a r9 + 399: 33 04 00 00 fe r4 = 0xfffffffffffe0000 + 404: 83 44 06 06 i32 r4 = r4 + 0x606 + 408: ab 4b 52 03 jump 1258 if r11 != r4 + : @15 + 412: 33 05 10 r5 = 0x10 + 415: 33 08 00 80 81 81 r8 = 0xffffffff81818000 + 421: 83 88 81 01 i32 r8 = r8 + 0x181 + 425: 33 09 1f r9 = 0x1f + 428: d1 98 0b r11 = r8 >>a r9 + 431: 33 04 ff r4 = 0xffffffffffffffff + 434: ab 4b 38 03 jump 1258 if r11 != r4 + : @16 + 438: 33 05 11 r5 = 0x11 + 441: 33 08 00 80 81 81 r8 = 0xffffffff81818000 + 447: 83 88 81 01 i32 r8 = r8 + 0x181 + 451: 33 09 c0 r9 = 0xffffffffffffffc0 + 454: d1 98 0b r11 = r8 >>a r9 + 457: 33 04 00 80 81 81 r4 = 0xffffffff81818000 + 463: 83 44 81 01 i32 r4 = r4 + 0x181 + 467: ab 4b 17 03 jump 1258 if r11 != r4 + : @17 + 471: 33 05 12 r5 = 0x12 + 474: 33 08 00 80 81 81 r8 = 0xffffffff81818000 + 480: 83 88 81 01 i32 r8 = r8 + 0x181 + 484: 33 09 c1 r9 = 0xffffffffffffffc1 + 487: d1 98 0b r11 = r8 >>a r9 + 490: 33 04 00 c0 c0 c0 r4 = 0xffffffffc0c0c000 + 496: 83 44 c0 00 i32 r4 = r4 + 0xc0 + 500: ab 4b f6 02 jump 1258 if r11 != r4 + : @18 + 504: 33 05 13 r5 = 0x13 + 507: 33 08 00 80 81 81 r8 = 0xffffffff81818000 + 513: 83 88 81 01 i32 r8 = r8 + 0x181 + 517: 33 09 c7 r9 = 0xffffffffffffffc7 + 520: d1 98 0b r11 = r8 >>a r9 + 523: 33 04 00 00 03 ff r4 = 0xffffffffff030000 + 529: 83 44 03 03 i32 r4 = r4 + 0x303 + 533: ab 4b d5 02 jump 1258 if r11 != r4 + : @19 + 537: 33 05 14 r5 = 0x14 + 540: 33 08 00 80 81 81 r8 = 0xffffffff81818000 + 546: 83 88 81 01 i32 r8 = r8 + 0x181 + 550: 33 09 ce r9 = 0xffffffffffffffce + 553: d1 98 0b r11 = r8 >>a r9 + 556: 33 04 00 00 fe r4 = 0xfffffffffffe0000 + 561: 83 44 06 06 i32 r4 = r4 + 0x606 + 565: ab 4b b5 02 jump 1258 if r11 != r4 + : @20 + 569: 33 05 15 r5 = 0x15 + 572: 33 08 00 80 81 81 r8 = 0xffffffff81818000 + 578: 83 88 81 01 i32 r8 = r8 + 0x181 + 582: 33 09 ff r9 = 0xffffffffffffffff + 585: d1 98 0b r11 = r8 >>a r9 + 588: 33 04 ff r4 = 0xffffffffffffffff + 591: ab 4b 9b 02 jump 1258 if r11 != r4 + : @21 + 595: 33 05 16 r5 = 0x16 + 598: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 604: 33 09 07 r9 = 0x7 + 607: d1 98 08 r8 = r8 >>a r9 + 610: 33 04 00 00 00 ff r4 = 0xffffffffff000000 + 616: ab 48 82 02 jump 1258 if r8 != r4 + : @22 + 620: 33 05 17 r5 = 0x17 + 623: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 629: 33 09 0e r9 = 0xe + 632: d1 98 09 r9 = r8 >>a r9 + 635: 33 04 00 00 fe r4 = 0xfffffffffffe0000 + 640: ab 49 6a 02 jump 1258 if r9 != r4 + : @23 + 644: 33 05 18 r5 = 0x18 + 647: 33 08 07 r8 = 0x7 + 650: d1 88 08 r8 = r8 >>a r8 + 653: 33 04 r4 = 0 + 655: ab 48 5b 02 jump 1258 if r8 != r4 + : @24 + 659: 33 05 19 r5 = 0x19 + 662: 33 0a r10 = 0 + 664: 01 fallthrough + : @25 + 665: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 671: 33 01 07 r1 = 0x7 + 674: d1 10 0b r11 = r0 >>a r1 + 677: 64 b3 r3 = r11 + 679: 95 aa 01 r10 = r10 + 0x1 + 682: 33 02 02 r2 = 0x2 + 685: ab 2a ec jump 665 if r10 != r2 + : @26 + 688: 33 04 00 00 00 ff r4 = 0xffffffffff000000 + 694: ab 43 34 02 jump 1258 if r3 != r4 + : @27 + 698: 33 05 1a r5 = 0x1a + 701: 33 0a r10 = 0 + 703: 01 fallthrough + : @28 + 704: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 710: 33 01 0e r1 = 0xe + 713: d1 10 0b r11 = r0 >>a r1 + 716: 64 b3 r3 = r11 + 718: 95 aa 01 r10 = r10 + 0x1 + 721: 33 02 02 r2 = 0x2 + 724: ab 2a ec jump 704 if r10 != r2 + : @29 + 727: 33 04 00 00 fe r4 = 0xfffffffffffe0000 + 732: ab 43 0e 02 jump 1258 if r3 != r4 + : @30 + 736: 33 05 1b r5 = 0x1b + 739: 33 0a r10 = 0 + 741: 01 fallthrough + : @31 + 742: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 748: 33 01 1f r1 = 0x1f + 751: d1 10 0b r11 = r0 >>a r1 + 754: 64 b3 r3 = r11 + 756: 95 aa 01 r10 = r10 + 0x1 + 759: 33 02 02 r2 = 0x2 + 762: ab 2a ec jump 742 if r10 != r2 + : @32 + 765: 33 04 ff r4 = 0xffffffffffffffff + 768: ab 43 ea 01 jump 1258 if r3 != r4 + : @33 + 772: 33 05 1c r5 = 0x1c + 775: 33 0a r10 = 0 + 777: 01 fallthrough + : @34 + 778: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 784: 33 01 07 r1 = 0x7 + 787: d1 10 0b r11 = r0 >>a r1 + 790: 95 aa 01 r10 = r10 + 0x1 + 793: 33 02 02 r2 = 0x2 + 796: ab 2a ee jump 778 if r10 != r2 + : @35 + 799: 33 04 00 00 00 ff r4 = 0xffffffffff000000 + 805: ab 4b c5 01 jump 1258 if r11 != r4 + : @36 + 809: 33 05 1d r5 = 0x1d + 812: 33 0a r10 = 0 + 814: 01 fallthrough + : @37 + 815: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 821: 33 01 0e r1 = 0xe + 824: d1 10 0b r11 = r0 >>a r1 + 827: 95 aa 01 r10 = r10 + 0x1 + 830: 33 02 02 r2 = 0x2 + 833: ab 2a ee jump 815 if r10 != r2 + : @38 + 836: 33 04 00 00 fe r4 = 0xfffffffffffe0000 + 841: ab 4b a1 01 jump 1258 if r11 != r4 + : @39 + 845: 33 05 1e r5 = 0x1e + 848: 33 0a r10 = 0 + 850: 01 fallthrough + : @40 + 851: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 857: 33 01 1f r1 = 0x1f + 860: d1 10 0b r11 = r0 >>a r1 + 863: 95 aa 01 r10 = r10 + 0x1 + 866: 33 02 02 r2 = 0x2 + 869: ab 2a ee jump 851 if r10 != r2 + : @41 + 872: 33 04 ff r4 = 0xffffffffffffffff + 875: ab 4b 7f 01 jump 1258 if r11 != r4 + : @42 + 879: 33 05 1f r5 = 0x1f + 882: 33 0a r10 = 0 + 884: 01 fallthrough + : @43 + 885: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 891: 33 01 07 r1 = 0x7 + 894: d1 10 0b r11 = r0 >>a r1 + 897: 95 aa 01 r10 = r10 + 0x1 + 900: 33 02 02 r2 = 0x2 + 903: ab 2a ee jump 885 if r10 != r2 + : @44 + 906: 33 04 00 00 00 ff r4 = 0xffffffffff000000 + 912: ab 4b 5a 01 jump 1258 if r11 != r4 + : @45 + 916: 33 05 20 r5 = 0x20 + 919: 33 0a r10 = 0 + 921: 01 fallthrough + : @46 + 922: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 928: 33 01 0e r1 = 0xe + 931: d1 10 0b r11 = r0 >>a r1 + 934: 95 aa 01 r10 = r10 + 0x1 + 937: 33 02 02 r2 = 0x2 + 940: ab 2a ee jump 922 if r10 != r2 + : @47 + 943: 33 04 00 00 fe r4 = 0xfffffffffffe0000 + 948: ab 4b 36 01 jump 1258 if r11 != r4 + : @48 + 952: 33 05 21 r5 = 0x21 + 955: 33 0a r10 = 0 + 957: 01 fallthrough + : @49 + 958: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 964: 33 01 1f r1 = 0x1f + 967: d1 10 0b r11 = r0 >>a r1 + 970: 95 aa 01 r10 = r10 + 0x1 + 973: 33 02 02 r2 = 0x2 + 976: ab 2a ee jump 958 if r10 != r2 + : @50 + 979: 33 04 ff r4 = 0xffffffffffffffff + 982: ab 4b 14 01 jump 1258 if r11 != r4 + : @51 + 986: 33 05 22 r5 = 0x22 + 989: 33 0a r10 = 0 + 991: 01 fallthrough + : @52 + 992: 33 01 07 r1 = 0x7 + 995: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 1001: d1 10 0b r11 = r0 >>a r1 + 1004: 95 aa 01 r10 = r10 + 0x1 + 1007: 33 02 02 r2 = 0x2 + 1010: ab 2a ee jump 992 if r10 != r2 + : @53 + 1013: 33 04 00 00 00 ff r4 = 0xffffffffff000000 + 1019: ab 4b ef 00 jump 1258 if r11 != r4 + : @54 + 1023: 33 05 23 r5 = 0x23 + 1026: 33 0a r10 = 0 + 1028: 01 fallthrough + : @55 + 1029: 33 01 0e r1 = 0xe + 1032: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 1038: d1 10 0b r11 = r0 >>a r1 + 1041: 95 aa 01 r10 = r10 + 0x1 + 1044: 33 02 02 r2 = 0x2 + 1047: ab 2a ee jump 1029 if r10 != r2 + : @56 + 1050: 33 04 00 00 fe r4 = 0xfffffffffffe0000 + 1055: ab 4b cb 00 jump 1258 if r11 != r4 + : @57 + 1059: 33 05 24 r5 = 0x24 + 1062: 33 0a r10 = 0 + 1064: 01 fallthrough + : @58 + 1065: 33 01 1f r1 = 0x1f + 1068: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 1074: d1 10 0b r11 = r0 >>a r1 + 1077: 95 aa 01 r10 = r10 + 0x1 + 1080: 33 02 02 r2 = 0x2 + 1083: ab 2a ee jump 1065 if r10 != r2 + : @59 + 1086: 33 04 ff r4 = 0xffffffffffffffff + 1089: ab 4b a9 00 jump 1258 if r11 != r4 + : @60 + 1093: 33 05 25 r5 = 0x25 + 1096: 33 0a r10 = 0 + 1098: 01 fallthrough + : @61 + 1099: 33 01 07 r1 = 0x7 + 1102: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 1108: d1 10 0b r11 = r0 >>a r1 + 1111: 95 aa 01 r10 = r10 + 0x1 + 1114: 33 02 02 r2 = 0x2 + 1117: ab 2a ee jump 1099 if r10 != r2 + : @62 + 1120: 33 04 00 00 00 ff r4 = 0xffffffffff000000 + 1126: ab 4b 84 00 jump 1258 if r11 != r4 + : @63 + 1130: 33 05 26 r5 = 0x26 + 1133: 33 0a r10 = 0 + 1135: 01 fallthrough + : @64 + 1136: 33 01 0e r1 = 0xe + 1139: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 1145: d1 10 0b r11 = r0 >>a r1 + 1148: 95 aa 01 r10 = r10 + 0x1 + 1151: 33 02 02 r2 = 0x2 + 1154: ab 2a ee jump 1136 if r10 != r2 + : @65 + 1157: 33 04 00 00 fe r4 = 0xfffffffffffe0000 + 1162: ab 4b 60 jump 1258 if r11 != r4 + : @66 + 1165: 33 05 27 r5 = 0x27 + 1168: 33 0a r10 = 0 + 1170: 01 fallthrough + : @67 + 1171: 33 01 1f r1 = 0x1f + 1174: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 1180: d1 10 0b r11 = r0 >>a r1 + 1183: 95 aa 01 r10 = r10 + 0x1 + 1186: 33 02 02 r2 = 0x2 + 1189: ab 2a ee jump 1171 if r10 != r2 + : @68 + 1192: 33 04 ff r4 = 0xffffffffffffffff + 1195: ab 4b 3f jump 1258 if r11 != r4 + : @69 + 1198: 33 05 28 r5 = 0x28 + 1201: 33 00 0f r0 = 0xf + 1204: 9d 01 r1 = 0 >>a r0 + 1206: 33 04 r4 = 0 + 1208: ab 41 32 jump 1258 if r1 != r4 + : @70 + 1211: 33 05 29 r5 = 0x29 + 1214: 33 00 20 r0 = 0x20 + 1217: 99 01 r1 = r0 >>a 0 + 1219: 33 04 20 r4 = 0x20 + 1222: ab 41 24 jump 1258 if r1 != r4 + : @71 + 1225: 33 05 2a r5 = 0x2a + 1228: 33 00 r0 = 0 + 1230: 33 04 r4 = 0 + 1232: ab 40 1a jump 1258 if r0 != r4 + : @72 + 1235: 33 05 2b r5 = 0x2b + 1238: 33 00 00 04 r0 = 0x400 + 1242: 33 01 00 10 r1 = 0x1000 + 1246: 83 11 00 f8 i32 r1 = r1 + 0xfffffffffffff800 + 1250: 33 04 r4 = 0 + 1252: 52 04 06 jump 1258 if r4 != 0 + : @73 + 1255: 52 05 04 jump 1259 if r5 != 0 + : @74 + 1258: 00 trap + : @75 + 1259: 28 15 fb jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r1 = 0x800 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0xffffffffffffffff (initially was 0x0) + * r5 = 0x2b (initially was 0x0) + * r9 = 0xfffffffffffe0000 (initially was 0x0) + * r10 = 0x2 (initially was 0x0) + * r11 = 0xffffffffffffffff (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9548 + + +## riscv_rv64ui_srai + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 0a ff r10 = 0xffffffffffffffff + 19: 97 aa 27 r10 = r10 << 0x27 + 22: 99 ab r11 = r10 >>a 0 + 24: 33 04 ff r4 = 0xffffffffffffffff + 27: 97 44 27 r4 = r4 << 0x27 + 30: ab 4b 65 02 jump 643 if r11 != r4 + : @2 + 34: 33 05 03 r5 = 0x3 + 37: 33 0a 00 00 00 80 r10 = 0xffffffff80000000 + 43: 99 ab 01 r11 = r10 >>a 0x1 + 46: 33 04 00 00 00 c0 r4 = 0xffffffffc0000000 + 52: ab 4b 4f 02 jump 643 if r11 != r4 + : @3 + 56: 33 05 04 r5 = 0x4 + 59: 33 0a 00 00 00 80 r10 = 0xffffffff80000000 + 65: 99 ab 07 r11 = r10 >>a 0x7 + 68: 33 04 00 00 00 ff r4 = 0xffffffffff000000 + 74: ab 4b 39 02 jump 643 if r11 != r4 + : @4 + 78: 33 05 05 r5 = 0x5 + 81: 33 0a 00 00 00 80 r10 = 0xffffffff80000000 + 87: 99 ab 0e r11 = r10 >>a 0xe + 90: 33 04 00 00 fe r4 = 0xfffffffffffe0000 + 95: ab 4b 24 02 jump 643 if r11 != r4 + : @5 + 99: 33 05 06 r5 = 0x6 + 102: 33 0a 00 00 00 80 r10 = 0xffffffff80000000 + 108: 83 aa 01 i32 r10 = r10 + 0x1 + 111: 99 ab 1f r11 = r10 >>a 0x1f + 114: 33 04 ff r4 = 0xffffffffffffffff + 117: ab 4b 0e 02 jump 643 if r11 != r4 + : @6 + 121: 33 05 07 r5 = 0x7 + 124: 33 0a 00 00 00 80 r10 = 0xffffffff80000000 + 130: 83 aa ff i32 r10 = r10 + 0xffffffffffffffff + 133: 99 ab r11 = r10 >>a 0 + 135: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 141: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 144: ab 4b f3 01 jump 643 if r11 != r4 + : @7 + 148: 33 05 08 r5 = 0x8 + 151: 33 0a 00 00 00 80 r10 = 0xffffffff80000000 + 157: 83 aa ff i32 r10 = r10 + 0xffffffffffffffff + 160: 99 ab 01 r11 = r10 >>a 0x1 + 163: 33 04 00 00 00 40 r4 = 0x40000000 + 169: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 172: ab 4b d7 01 jump 643 if r11 != r4 + : @8 + 176: 33 05 09 r5 = 0x9 + 179: 33 0a 00 00 00 80 r10 = 0xffffffff80000000 + 185: 83 aa ff i32 r10 = r10 + 0xffffffffffffffff + 188: 99 ab 07 r11 = r10 >>a 0x7 + 191: 33 04 00 00 00 01 r4 = 0x1000000 + 197: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 200: ab 4b bb 01 jump 643 if r11 != r4 + : @9 + 204: 33 05 0a r5 = 0xa + 207: 33 0a 00 00 00 80 r10 = 0xffffffff80000000 + 213: 83 aa ff i32 r10 = r10 + 0xffffffffffffffff + 216: 99 ab 0e r11 = r10 >>a 0xe + 219: 33 04 00 00 02 r4 = 0x20000 + 224: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 227: ab 4b a0 01 jump 643 if r11 != r4 + : @10 + 231: 33 05 0b r5 = 0xb + 234: 33 0a 00 00 00 80 r10 = 0xffffffff80000000 + 240: 83 aa ff i32 r10 = r10 + 0xffffffffffffffff + 243: 99 ab 1f r11 = r10 >>a 0x1f + 246: 33 04 r4 = 0 + 248: ab 4b 8b 01 jump 643 if r11 != r4 + : @11 + 252: 33 05 0c r5 = 0xc + 255: 33 0a 00 80 81 81 r10 = 0xffffffff81818000 + 261: 83 aa 81 01 i32 r10 = r10 + 0x181 + 265: 99 ab r11 = r10 >>a 0 + 267: 33 04 00 80 81 81 r4 = 0xffffffff81818000 + 273: 83 44 81 01 i32 r4 = r4 + 0x181 + 277: ab 4b 6e 01 jump 643 if r11 != r4 + : @12 + 281: 33 05 0d r5 = 0xd + 284: 33 0a 00 80 81 81 r10 = 0xffffffff81818000 + 290: 83 aa 81 01 i32 r10 = r10 + 0x181 + 294: 99 ab 01 r11 = r10 >>a 0x1 + 297: 33 04 00 c0 c0 c0 r4 = 0xffffffffc0c0c000 + 303: 83 44 c0 00 i32 r4 = r4 + 0xc0 + 307: ab 4b 50 01 jump 643 if r11 != r4 + : @13 + 311: 33 05 0e r5 = 0xe + 314: 33 0a 00 80 81 81 r10 = 0xffffffff81818000 + 320: 83 aa 81 01 i32 r10 = r10 + 0x181 + 324: 99 ab 07 r11 = r10 >>a 0x7 + 327: 33 04 00 00 03 ff r4 = 0xffffffffff030000 + 333: 83 44 03 03 i32 r4 = r4 + 0x303 + 337: ab 4b 32 01 jump 643 if r11 != r4 + : @14 + 341: 33 05 0f r5 = 0xf + 344: 33 0a 00 80 81 81 r10 = 0xffffffff81818000 + 350: 83 aa 81 01 i32 r10 = r10 + 0x181 + 354: 99 ab 0e r11 = r10 >>a 0xe + 357: 33 04 00 00 fe r4 = 0xfffffffffffe0000 + 362: 83 44 06 06 i32 r4 = r4 + 0x606 + 366: ab 4b 15 01 jump 643 if r11 != r4 + : @15 + 370: 33 05 10 r5 = 0x10 + 373: 33 0a 00 80 81 81 r10 = 0xffffffff81818000 + 379: 83 aa 81 01 i32 r10 = r10 + 0x181 + 383: 99 ab 1f r11 = r10 >>a 0x1f + 386: 33 04 ff r4 = 0xffffffffffffffff + 389: ab 4b fe 00 jump 643 if r11 != r4 + : @16 + 393: 33 05 11 r5 = 0x11 + 396: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 402: 99 88 07 r8 = r8 >>a 0x7 + 405: 33 04 00 00 00 ff r4 = 0xffffffffff000000 + 411: ab 48 e8 00 jump 643 if r8 != r4 + : @17 + 415: 33 05 12 r5 = 0x12 + 418: 33 09 r9 = 0 + 420: 01 fallthrough + : @18 + 421: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 427: 99 0b 07 r11 = r0 >>a 0x7 + 430: 64 b3 r3 = r11 + 432: 95 99 01 r9 = r9 + 0x1 + 435: 33 02 02 r2 = 0x2 + 438: ab 29 ef jump 421 if r9 != r2 + : @19 + 441: 33 04 00 00 00 ff r4 = 0xffffffffff000000 + 447: ab 43 c4 00 jump 643 if r3 != r4 + : @20 + 451: 33 05 13 r5 = 0x13 + 454: 33 09 r9 = 0 + 456: 01 fallthrough + : @21 + 457: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 463: 99 0b 0e r11 = r0 >>a 0xe + 466: 64 b3 r3 = r11 + 468: 95 99 01 r9 = r9 + 0x1 + 471: 33 02 02 r2 = 0x2 + 474: ab 29 ef jump 457 if r9 != r2 + : @22 + 477: 33 04 00 00 fe r4 = 0xfffffffffffe0000 + 482: ab 43 a1 00 jump 643 if r3 != r4 + : @23 + 486: 33 05 14 r5 = 0x14 + 489: 33 09 r9 = 0 + 491: 01 fallthrough + : @24 + 492: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 498: 83 00 01 i32 r0 = r0 + 0x1 + 501: 99 0b 1f r11 = r0 >>a 0x1f + 504: 64 b3 r3 = r11 + 506: 95 99 01 r9 = r9 + 0x1 + 509: 33 02 02 r2 = 0x2 + 512: ab 29 ec jump 492 if r9 != r2 + : @25 + 515: 33 04 ff r4 = 0xffffffffffffffff + 518: ab 43 7d jump 643 if r3 != r4 + : @26 + 521: 33 05 15 r5 = 0x15 + 524: 33 09 r9 = 0 + 526: 01 fallthrough + : @27 + 527: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 533: 99 0b 07 r11 = r0 >>a 0x7 + 536: 95 99 01 r9 = r9 + 0x1 + 539: 33 02 02 r2 = 0x2 + 542: ab 29 f1 jump 527 if r9 != r2 + : @28 + 545: 33 04 00 00 00 ff r4 = 0xffffffffff000000 + 551: ab 4b 5c jump 643 if r11 != r4 + : @29 + 554: 33 05 16 r5 = 0x16 + 557: 33 09 r9 = 0 + 559: 01 fallthrough + : @30 + 560: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 566: 99 0b 0e r11 = r0 >>a 0xe + 569: 95 99 01 r9 = r9 + 0x1 + 572: 33 02 02 r2 = 0x2 + 575: ab 29 f1 jump 560 if r9 != r2 + : @31 + 578: 33 04 00 00 fe r4 = 0xfffffffffffe0000 + 583: ab 4b 3c jump 643 if r11 != r4 + : @32 + 586: 33 05 17 r5 = 0x17 + 589: 33 09 r9 = 0 + 591: 01 fallthrough + : @33 + 592: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 598: 83 00 01 i32 r0 = r0 + 0x1 + 601: 99 0b 1f r11 = r0 >>a 0x1f + 604: 95 99 01 r9 = r9 + 0x1 + 607: 33 02 02 r2 = 0x2 + 610: ab 29 ee jump 592 if r9 != r2 + : @34 + 613: 33 04 ff r4 = 0xffffffffffffffff + 616: ab 4b 1b jump 643 if r11 != r4 + : @35 + 619: 33 05 18 r5 = 0x18 + 622: 33 00 r0 = 0 + 624: 33 04 r4 = 0 + 626: ab 40 11 jump 643 if r0 != r4 + : @36 + 629: 33 05 19 r5 = 0x19 + 632: 33 00 21 r0 = 0x21 + 635: 33 04 r4 = 0 + 637: 52 04 06 jump 643 if r4 != 0 + : @37 + 640: 52 05 04 jump 644 if r5 != 0 + : @38 + 643: 00 trap + : @39 + 644: 28 7c fd jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0xffffffffffffffff (initially was 0x0) + * r5 = 0x19 (initially was 0x0) + * r8 = 0xffffffffff000000 (initially was 0x0) + * r9 = 0x2 (initially was 0x0) + * r10 = 0xffffffff81818181 (initially was 0x0) + * r11 = 0xffffffffffffffff (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9785 + + +## riscv_rv64ui_sraiw + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 0a 00 00 00 80 r10 = 0xffffffff80000000 + 22: 8c ab i32 r11 = r10 >>a 0 + 24: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 30: ab 4b 1b 03 jump 825 if r11 != r4 + : @2 + 34: 33 05 03 r5 = 0x3 + 37: 33 0a 00 00 00 80 r10 = 0xffffffff80000000 + 43: 8c ab 01 i32 r11 = r10 >>a 0x1 + 46: 33 04 00 00 00 c0 r4 = 0xffffffffc0000000 + 52: ab 4b 05 03 jump 825 if r11 != r4 + : @3 + 56: 33 05 04 r5 = 0x4 + 59: 33 0a 00 00 00 80 r10 = 0xffffffff80000000 + 65: 8c ab 07 i32 r11 = r10 >>a 0x7 + 68: 33 04 00 00 00 ff r4 = 0xffffffffff000000 + 74: ab 4b ef 02 jump 825 if r11 != r4 + : @4 + 78: 33 05 05 r5 = 0x5 + 81: 33 0a 00 00 00 80 r10 = 0xffffffff80000000 + 87: 8c ab 0e i32 r11 = r10 >>a 0xe + 90: 33 04 00 00 fe r4 = 0xfffffffffffe0000 + 95: ab 4b da 02 jump 825 if r11 != r4 + : @5 + 99: 33 05 06 r5 = 0x6 + 102: 33 0a 00 00 00 80 r10 = 0xffffffff80000000 + 108: 83 aa 01 i32 r10 = r10 + 0x1 + 111: 8c ab 1f i32 r11 = r10 >>a 0x1f + 114: 33 04 ff r4 = 0xffffffffffffffff + 117: ab 4b c4 02 jump 825 if r11 != r4 + : @6 + 121: 33 05 07 r5 = 0x7 + 124: 33 0a 00 00 00 80 r10 = 0xffffffff80000000 + 130: 83 aa ff i32 r10 = r10 + 0xffffffffffffffff + 133: 8c ab i32 r11 = r10 >>a 0 + 135: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 141: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 144: ab 4b a9 02 jump 825 if r11 != r4 + : @7 + 148: 33 05 08 r5 = 0x8 + 151: 33 0a 00 00 00 80 r10 = 0xffffffff80000000 + 157: 83 aa ff i32 r10 = r10 + 0xffffffffffffffff + 160: 8c ab 01 i32 r11 = r10 >>a 0x1 + 163: 33 04 00 00 00 40 r4 = 0x40000000 + 169: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 172: ab 4b 8d 02 jump 825 if r11 != r4 + : @8 + 176: 33 05 09 r5 = 0x9 + 179: 33 0a 00 00 00 80 r10 = 0xffffffff80000000 + 185: 83 aa ff i32 r10 = r10 + 0xffffffffffffffff + 188: 8c ab 07 i32 r11 = r10 >>a 0x7 + 191: 33 04 00 00 00 01 r4 = 0x1000000 + 197: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 200: ab 4b 71 02 jump 825 if r11 != r4 + : @9 + 204: 33 05 0a r5 = 0xa + 207: 33 0a 00 00 00 80 r10 = 0xffffffff80000000 + 213: 83 aa ff i32 r10 = r10 + 0xffffffffffffffff + 216: 8c ab 0e i32 r11 = r10 >>a 0xe + 219: 33 04 00 00 02 r4 = 0x20000 + 224: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 227: ab 4b 56 02 jump 825 if r11 != r4 + : @10 + 231: 33 05 0b r5 = 0xb + 234: 33 0a 00 00 00 80 r10 = 0xffffffff80000000 + 240: 83 aa ff i32 r10 = r10 + 0xffffffffffffffff + 243: 8c ab 1f i32 r11 = r10 >>a 0x1f + 246: 33 04 r4 = 0 + 248: ab 4b 41 02 jump 825 if r11 != r4 + : @11 + 252: 33 05 0c r5 = 0xc + 255: 33 0a 00 80 81 81 r10 = 0xffffffff81818000 + 261: 83 aa 81 01 i32 r10 = r10 + 0x181 + 265: 8c ab i32 r11 = r10 >>a 0 + 267: 33 04 00 80 81 81 r4 = 0xffffffff81818000 + 273: 83 44 81 01 i32 r4 = r4 + 0x181 + 277: ab 4b 24 02 jump 825 if r11 != r4 + : @12 + 281: 33 05 0d r5 = 0xd + 284: 33 0a 00 80 81 81 r10 = 0xffffffff81818000 + 290: 83 aa 81 01 i32 r10 = r10 + 0x181 + 294: 8c ab 01 i32 r11 = r10 >>a 0x1 + 297: 33 04 00 c0 c0 c0 r4 = 0xffffffffc0c0c000 + 303: 83 44 c0 00 i32 r4 = r4 + 0xc0 + 307: ab 4b 06 02 jump 825 if r11 != r4 + : @13 + 311: 33 05 0e r5 = 0xe + 314: 33 0a 00 80 81 81 r10 = 0xffffffff81818000 + 320: 83 aa 81 01 i32 r10 = r10 + 0x181 + 324: 8c ab 07 i32 r11 = r10 >>a 0x7 + 327: 33 04 00 00 03 ff r4 = 0xffffffffff030000 + 333: 83 44 03 03 i32 r4 = r4 + 0x303 + 337: ab 4b e8 01 jump 825 if r11 != r4 + : @14 + 341: 33 05 0f r5 = 0xf + 344: 33 0a 00 80 81 81 r10 = 0xffffffff81818000 + 350: 83 aa 81 01 i32 r10 = r10 + 0x181 + 354: 8c ab 0e i32 r11 = r10 >>a 0xe + 357: 33 04 00 00 fe r4 = 0xfffffffffffe0000 + 362: 83 44 06 06 i32 r4 = r4 + 0x606 + 366: ab 4b cb 01 jump 825 if r11 != r4 + : @15 + 370: 33 05 10 r5 = 0x10 + 373: 33 0a 00 80 81 81 r10 = 0xffffffff81818000 + 379: 83 aa 81 01 i32 r10 = r10 + 0x181 + 383: 8c ab 1f i32 r11 = r10 >>a 0x1f + 386: 33 04 ff r4 = 0xffffffffffffffff + 389: ab 4b b4 01 jump 825 if r11 != r4 + : @16 + 393: 33 05 2c r5 = 0x2c + 396: 33 0a 00 20 f1 r10 = 0xfffffffffff12000 + 401: 83 aa 45 03 i32 r10 = r10 + 0x345 + 405: 97 aa 0c r10 = r10 << 0xc + 408: 95 aa 78 06 r10 = r10 + 0x678 + 412: 8c ab i32 r11 = r10 >>a 0 + 414: 33 04 00 50 34 12 r4 = 0x12345000 + 420: 83 44 78 06 i32 r4 = r4 + 0x678 + 424: ab 4b 91 01 jump 825 if r11 != r4 + : @17 + 428: 33 05 2d r5 = 0x2d + 431: 33 0a 00 20 f1 r10 = 0xfffffffffff12000 + 436: 83 aa 45 03 i32 r10 = r10 + 0x345 + 440: 97 aa 0c r10 = r10 << 0xc + 443: 95 aa 78 06 r10 = r10 + 0x678 + 447: 8c ab 04 i32 r11 = r10 >>a 0x4 + 450: 33 04 00 40 23 01 r4 = 0x1234000 + 456: 83 44 67 05 i32 r4 = r4 + 0x567 + 460: ab 4b 6d 01 jump 825 if r11 != r4 + : @18 + 464: 33 05 2e r5 = 0x2e + 467: 33 0a 00 20 09 r10 = 0x92000 + 472: 83 aa 45 03 i32 r10 = r10 + 0x345 + 476: 97 aa 0c r10 = r10 << 0xc + 479: 95 aa 78 06 r10 = r10 + 0x678 + 483: 8c ab i32 r11 = r10 >>a 0 + 485: 33 04 00 50 34 92 r4 = 0xffffffff92345000 + 491: 83 44 78 06 i32 r4 = r4 + 0x678 + 495: ab 4b 4a 01 jump 825 if r11 != r4 + : @19 + 499: 33 05 2f r5 = 0x2f + 502: 33 0a 00 20 09 r10 = 0x92000 + 507: 83 aa 45 03 i32 r10 = r10 + 0x345 + 511: 97 aa 0c r10 = r10 << 0xc + 514: 95 aa 78 06 r10 = r10 + 0x678 + 518: 8c ab 04 i32 r11 = r10 >>a 0x4 + 521: 33 04 00 40 23 f9 r4 = 0xfffffffff9234000 + 527: 83 44 67 05 i32 r4 = r4 + 0x567 + 531: ab 4b 26 01 jump 825 if r11 != r4 + : @20 + 535: 33 05 11 r5 = 0x11 + 538: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 544: 8c 88 07 i32 r8 = r8 >>a 0x7 + 547: 33 04 00 00 00 ff r4 = 0xffffffffff000000 + 553: ab 48 10 01 jump 825 if r8 != r4 + : @21 + 557: 33 05 12 r5 = 0x12 + 560: 33 09 r9 = 0 + 562: 01 fallthrough + : @22 + 563: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 569: 8c 0b 07 i32 r11 = r0 >>a 0x7 + 572: 64 b3 r3 = r11 + 574: 95 99 01 r9 = r9 + 0x1 + 577: 33 02 02 r2 = 0x2 + 580: ab 29 ef jump 563 if r9 != r2 + : @23 + 583: 33 04 00 00 00 ff r4 = 0xffffffffff000000 + 589: ab 43 ec 00 jump 825 if r3 != r4 + : @24 + 593: 33 05 13 r5 = 0x13 + 596: 33 09 r9 = 0 + 598: 01 fallthrough + : @25 + 599: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 605: 8c 0b 0e i32 r11 = r0 >>a 0xe + 608: 64 b3 r3 = r11 + 610: 95 99 01 r9 = r9 + 0x1 + 613: 33 02 02 r2 = 0x2 + 616: ab 29 ef jump 599 if r9 != r2 + : @26 + 619: 33 04 00 00 fe r4 = 0xfffffffffffe0000 + 624: ab 43 c9 00 jump 825 if r3 != r4 + : @27 + 628: 33 05 14 r5 = 0x14 + 631: 33 09 r9 = 0 + 633: 01 fallthrough + : @28 + 634: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 640: 83 00 01 i32 r0 = r0 + 0x1 + 643: 8c 0b 1f i32 r11 = r0 >>a 0x1f + 646: 64 b3 r3 = r11 + 648: 95 99 01 r9 = r9 + 0x1 + 651: 33 02 02 r2 = 0x2 + 654: ab 29 ec jump 634 if r9 != r2 + : @29 + 657: 33 04 ff r4 = 0xffffffffffffffff + 660: ab 43 a5 00 jump 825 if r3 != r4 + : @30 + 664: 33 05 15 r5 = 0x15 + 667: 33 09 r9 = 0 + 669: 01 fallthrough + : @31 + 670: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 676: 8c 0b 07 i32 r11 = r0 >>a 0x7 + 679: 95 99 01 r9 = r9 + 0x1 + 682: 33 02 02 r2 = 0x2 + 685: ab 29 f1 jump 670 if r9 != r2 + : @32 + 688: 33 04 00 00 00 ff r4 = 0xffffffffff000000 + 694: ab 4b 83 00 jump 825 if r11 != r4 + : @33 + 698: 33 05 16 r5 = 0x16 + 701: 33 09 r9 = 0 + 703: 01 fallthrough + : @34 + 704: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 710: 8c 0b 0e i32 r11 = r0 >>a 0xe + 713: 95 99 01 r9 = r9 + 0x1 + 716: 33 02 02 r2 = 0x2 + 719: ab 29 f1 jump 704 if r9 != r2 + : @35 + 722: 33 04 00 00 fe r4 = 0xfffffffffffe0000 + 727: ab 4b 62 jump 825 if r11 != r4 + : @36 + 730: 33 05 17 r5 = 0x17 + 733: 33 09 r9 = 0 + 735: 01 fallthrough + : @37 + 736: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 742: 83 00 01 i32 r0 = r0 + 0x1 + 745: 8c 0b 1f i32 r11 = r0 >>a 0x1f + 748: 95 99 01 r9 = r9 + 0x1 + 751: 33 02 02 r2 = 0x2 + 754: ab 29 ee jump 736 if r9 != r2 + : @38 + 757: 33 04 ff r4 = 0xffffffffffffffff + 760: ab 4b 41 jump 825 if r11 != r4 + : @39 + 763: 33 05 18 r5 = 0x18 + 766: 33 00 r0 = 0 + 768: 33 04 r4 = 0 + 770: ab 40 37 jump 825 if r0 != r4 + : @40 + 773: 33 05 19 r5 = 0x19 + 776: 33 00 1f r0 = 0x1f + 779: 33 04 r4 = 0 + 781: 52 04 2c jump 825 if r4 != 0 + : @41 + 784: 33 05 1a r5 = 0x1a + 787: 33 0a 07 r10 = 0x7 + 790: 97 aa 35 r10 = r10 << 0x35 + 793: 8c ab 1c i32 r11 = r10 >>a 0x1c + 796: 33 04 r4 = 0 + 798: ab 4b 1b jump 825 if r11 != r4 + : @42 + 801: 33 05 1b r5 = 0x1b + 804: 33 0a 0f r10 = 0xf + 807: 97 aa 1c r10 = r10 << 0x1c + 810: 8c ab 04 i32 r11 = r10 >>a 0x4 + 813: 33 04 00 00 00 ff r4 = 0xffffffffff000000 + 819: ab 4b 06 jump 825 if r11 != r4 + : @43 + 822: 52 05 04 jump 826 if r5 != 0 + : @44 + 825: 00 trap + : @45 + 826: 28 c6 fc jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0xffffffffffffffff (initially was 0x0) + * r4 = 0xffffffffff000000 (initially was 0x0) + * r5 = 0x1b (initially was 0x0) + * r8 = 0xffffffffff000000 (initially was 0x0) + * r9 = 0x2 (initially was 0x0) + * r10 = 0xf0000000 (initially was 0x0) + * r11 = 0xffffffffff000000 (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9739 + + +## riscv_rv64ui_sraw + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 22: 33 09 r9 = 0 + 24: c7 98 0b i32 r11 = r8 >>a r9 + 27: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 33: ab 4b 63 05 jump 1412 if r11 != r4 + : @2 + 37: 33 05 03 r5 = 0x3 + 40: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 46: 33 09 01 r9 = 0x1 + 49: c7 98 0b i32 r11 = r8 >>a r9 + 52: 33 04 00 00 00 c0 r4 = 0xffffffffc0000000 + 58: ab 4b 4a 05 jump 1412 if r11 != r4 + : @3 + 62: 33 05 04 r5 = 0x4 + 65: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 71: 33 09 07 r9 = 0x7 + 74: c7 98 0b i32 r11 = r8 >>a r9 + 77: 33 04 00 00 00 ff r4 = 0xffffffffff000000 + 83: ab 4b 31 05 jump 1412 if r11 != r4 + : @4 + 87: 33 05 05 r5 = 0x5 + 90: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 96: 33 09 0e r9 = 0xe + 99: c7 98 0b i32 r11 = r8 >>a r9 + 102: 33 04 00 00 fe r4 = 0xfffffffffffe0000 + 107: ab 4b 19 05 jump 1412 if r11 != r4 + : @5 + 111: 33 05 06 r5 = 0x6 + 114: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 120: 83 88 01 i32 r8 = r8 + 0x1 + 123: 33 09 1f r9 = 0x1f + 126: c7 98 0b i32 r11 = r8 >>a r9 + 129: 33 04 ff r4 = 0xffffffffffffffff + 132: ab 4b 00 05 jump 1412 if r11 != r4 + : @6 + 136: 33 05 07 r5 = 0x7 + 139: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 145: 83 88 ff i32 r8 = r8 + 0xffffffffffffffff + 148: 33 09 r9 = 0 + 150: c7 98 0b i32 r11 = r8 >>a r9 + 153: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 159: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 162: ab 4b e2 04 jump 1412 if r11 != r4 + : @7 + 166: 33 05 08 r5 = 0x8 + 169: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 175: 83 88 ff i32 r8 = r8 + 0xffffffffffffffff + 178: 33 09 01 r9 = 0x1 + 181: c7 98 0b i32 r11 = r8 >>a r9 + 184: 33 04 00 00 00 40 r4 = 0x40000000 + 190: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 193: ab 4b c3 04 jump 1412 if r11 != r4 + : @8 + 197: 33 05 09 r5 = 0x9 + 200: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 206: 83 88 ff i32 r8 = r8 + 0xffffffffffffffff + 209: 33 09 07 r9 = 0x7 + 212: c7 98 0b i32 r11 = r8 >>a r9 + 215: 33 04 00 00 00 01 r4 = 0x1000000 + 221: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 224: ab 4b a4 04 jump 1412 if r11 != r4 + : @9 + 228: 33 05 0a r5 = 0xa + 231: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 237: 83 88 ff i32 r8 = r8 + 0xffffffffffffffff + 240: 33 09 0e r9 = 0xe + 243: c7 98 0b i32 r11 = r8 >>a r9 + 246: 33 04 00 00 02 r4 = 0x20000 + 251: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 254: ab 4b 86 04 jump 1412 if r11 != r4 + : @10 + 258: 33 05 0b r5 = 0xb + 261: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 267: 83 88 ff i32 r8 = r8 + 0xffffffffffffffff + 270: 33 09 1f r9 = 0x1f + 273: c7 98 0b i32 r11 = r8 >>a r9 + 276: 33 04 r4 = 0 + 278: ab 4b 6e 04 jump 1412 if r11 != r4 + : @11 + 282: 33 05 0c r5 = 0xc + 285: 33 08 00 80 81 81 r8 = 0xffffffff81818000 + 291: 83 88 81 01 i32 r8 = r8 + 0x181 + 295: 33 09 r9 = 0 + 297: c7 98 0b i32 r11 = r8 >>a r9 + 300: 33 04 00 80 81 81 r4 = 0xffffffff81818000 + 306: 83 44 81 01 i32 r4 = r4 + 0x181 + 310: ab 4b 4e 04 jump 1412 if r11 != r4 + : @12 + 314: 33 05 0d r5 = 0xd + 317: 33 08 00 80 81 81 r8 = 0xffffffff81818000 + 323: 83 88 81 01 i32 r8 = r8 + 0x181 + 327: 33 09 01 r9 = 0x1 + 330: c7 98 0b i32 r11 = r8 >>a r9 + 333: 33 04 00 c0 c0 c0 r4 = 0xffffffffc0c0c000 + 339: 83 44 c0 00 i32 r4 = r4 + 0xc0 + 343: ab 4b 2d 04 jump 1412 if r11 != r4 + : @13 + 347: 33 05 0e r5 = 0xe + 350: 33 08 00 80 81 81 r8 = 0xffffffff81818000 + 356: 83 88 81 01 i32 r8 = r8 + 0x181 + 360: 33 09 07 r9 = 0x7 + 363: c7 98 0b i32 r11 = r8 >>a r9 + 366: 33 04 00 00 03 ff r4 = 0xffffffffff030000 + 372: 83 44 03 03 i32 r4 = r4 + 0x303 + 376: ab 4b 0c 04 jump 1412 if r11 != r4 + : @14 + 380: 33 05 0f r5 = 0xf + 383: 33 08 00 80 81 81 r8 = 0xffffffff81818000 + 389: 83 88 81 01 i32 r8 = r8 + 0x181 + 393: 33 09 0e r9 = 0xe + 396: c7 98 0b i32 r11 = r8 >>a r9 + 399: 33 04 00 00 fe r4 = 0xfffffffffffe0000 + 404: 83 44 06 06 i32 r4 = r4 + 0x606 + 408: ab 4b ec 03 jump 1412 if r11 != r4 + : @15 + 412: 33 05 10 r5 = 0x10 + 415: 33 08 00 80 81 81 r8 = 0xffffffff81818000 + 421: 83 88 81 01 i32 r8 = r8 + 0x181 + 425: 33 09 1f r9 = 0x1f + 428: c7 98 0b i32 r11 = r8 >>a r9 + 431: 33 04 ff r4 = 0xffffffffffffffff + 434: ab 4b d2 03 jump 1412 if r11 != r4 + : @16 + 438: 33 05 11 r5 = 0x11 + 441: 33 08 00 80 81 81 r8 = 0xffffffff81818000 + 447: 83 88 81 01 i32 r8 = r8 + 0x181 + 451: 33 09 e0 r9 = 0xffffffffffffffe0 + 454: c7 98 0b i32 r11 = r8 >>a r9 + 457: 33 04 00 80 81 81 r4 = 0xffffffff81818000 + 463: 83 44 81 01 i32 r4 = r4 + 0x181 + 467: ab 4b b1 03 jump 1412 if r11 != r4 + : @17 + 471: 33 05 12 r5 = 0x12 + 474: 33 08 00 80 81 81 r8 = 0xffffffff81818000 + 480: 83 88 81 01 i32 r8 = r8 + 0x181 + 484: 33 09 e1 r9 = 0xffffffffffffffe1 + 487: c7 98 0b i32 r11 = r8 >>a r9 + 490: 33 04 00 c0 c0 c0 r4 = 0xffffffffc0c0c000 + 496: 83 44 c0 00 i32 r4 = r4 + 0xc0 + 500: ab 4b 90 03 jump 1412 if r11 != r4 + : @18 + 504: 33 05 13 r5 = 0x13 + 507: 33 08 00 80 81 81 r8 = 0xffffffff81818000 + 513: 83 88 81 01 i32 r8 = r8 + 0x181 + 517: 33 09 e7 r9 = 0xffffffffffffffe7 + 520: c7 98 0b i32 r11 = r8 >>a r9 + 523: 33 04 00 00 03 ff r4 = 0xffffffffff030000 + 529: 83 44 03 03 i32 r4 = r4 + 0x303 + 533: ab 4b 6f 03 jump 1412 if r11 != r4 + : @19 + 537: 33 05 14 r5 = 0x14 + 540: 33 08 00 80 81 81 r8 = 0xffffffff81818000 + 546: 83 88 81 01 i32 r8 = r8 + 0x181 + 550: 33 09 ee r9 = 0xffffffffffffffee + 553: c7 98 0b i32 r11 = r8 >>a r9 + 556: 33 04 00 00 fe r4 = 0xfffffffffffe0000 + 561: 83 44 06 06 i32 r4 = r4 + 0x606 + 565: ab 4b 4f 03 jump 1412 if r11 != r4 + : @20 + 569: 33 05 15 r5 = 0x15 + 572: 33 08 00 80 81 81 r8 = 0xffffffff81818000 + 578: 83 88 81 01 i32 r8 = r8 + 0x181 + 582: 33 09 ff r9 = 0xffffffffffffffff + 585: c7 98 0b i32 r11 = r8 >>a r9 + 588: 33 04 ff r4 = 0xffffffffffffffff + 591: ab 4b 35 03 jump 1412 if r11 != r4 + : @21 + 595: 33 05 2c r5 = 0x2c + 598: 33 08 00 20 f1 r8 = 0xfffffffffff12000 + 603: 83 88 45 03 i32 r8 = r8 + 0x345 + 607: 97 88 0c r8 = r8 << 0xc + 610: 95 88 78 06 r8 = r8 + 0x678 + 614: 33 09 r9 = 0 + 616: c7 98 0b i32 r11 = r8 >>a r9 + 619: 33 04 00 50 34 12 r4 = 0x12345000 + 625: 83 44 78 06 i32 r4 = r4 + 0x678 + 629: ab 4b 0f 03 jump 1412 if r11 != r4 + : @22 + 633: 33 05 2d r5 = 0x2d + 636: 33 08 00 20 f1 r8 = 0xfffffffffff12000 + 641: 83 88 45 03 i32 r8 = r8 + 0x345 + 645: 97 88 0c r8 = r8 << 0xc + 648: 95 88 78 06 r8 = r8 + 0x678 + 652: 33 09 04 r9 = 0x4 + 655: c7 98 0b i32 r11 = r8 >>a r9 + 658: 33 04 00 40 23 01 r4 = 0x1234000 + 664: 83 44 67 05 i32 r4 = r4 + 0x567 + 668: ab 4b e8 02 jump 1412 if r11 != r4 + : @23 + 672: 33 05 2e r5 = 0x2e + 675: 33 08 00 20 09 r8 = 0x92000 + 680: 83 88 45 03 i32 r8 = r8 + 0x345 + 684: 97 88 0c r8 = r8 << 0xc + 687: 95 88 78 06 r8 = r8 + 0x678 + 691: 33 09 r9 = 0 + 693: c7 98 0b i32 r11 = r8 >>a r9 + 696: 33 04 00 50 34 92 r4 = 0xffffffff92345000 + 702: 83 44 78 06 i32 r4 = r4 + 0x678 + 706: ab 4b c2 02 jump 1412 if r11 != r4 + : @24 + 710: 33 05 2f r5 = 0x2f + 713: 33 08 00 20 09 r8 = 0x92000 + 718: 83 88 45 03 i32 r8 = r8 + 0x345 + 722: 97 88 0c r8 = r8 << 0xc + 725: 95 88 78 06 r8 = r8 + 0x678 + 729: 33 09 04 r9 = 0x4 + 732: c7 98 0b i32 r11 = r8 >>a r9 + 735: 33 04 00 40 23 f9 r4 = 0xfffffffff9234000 + 741: 83 44 67 05 i32 r4 = r4 + 0x567 + 745: ab 4b 9b 02 jump 1412 if r11 != r4 + : @25 + 749: 33 05 16 r5 = 0x16 + 752: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 758: 33 09 07 r9 = 0x7 + 761: c7 98 08 i32 r8 = r8 >>a r9 + 764: 33 04 00 00 00 ff r4 = 0xffffffffff000000 + 770: ab 48 82 02 jump 1412 if r8 != r4 + : @26 + 774: 33 05 17 r5 = 0x17 + 777: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 783: 33 09 0e r9 = 0xe + 786: c7 98 09 i32 r9 = r8 >>a r9 + 789: 33 04 00 00 fe r4 = 0xfffffffffffe0000 + 794: ab 49 6a 02 jump 1412 if r9 != r4 + : @27 + 798: 33 05 18 r5 = 0x18 + 801: 33 08 07 r8 = 0x7 + 804: c7 88 08 i32 r8 = r8 >>a r8 + 807: 33 04 r4 = 0 + 809: ab 48 5b 02 jump 1412 if r8 != r4 + : @28 + 813: 33 05 19 r5 = 0x19 + 816: 33 0a r10 = 0 + 818: 01 fallthrough + : @29 + 819: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 825: 33 01 07 r1 = 0x7 + 828: c7 10 0b i32 r11 = r0 >>a r1 + 831: 64 b3 r3 = r11 + 833: 95 aa 01 r10 = r10 + 0x1 + 836: 33 02 02 r2 = 0x2 + 839: ab 2a ec jump 819 if r10 != r2 + : @30 + 842: 33 04 00 00 00 ff r4 = 0xffffffffff000000 + 848: ab 43 34 02 jump 1412 if r3 != r4 + : @31 + 852: 33 05 1a r5 = 0x1a + 855: 33 0a r10 = 0 + 857: 01 fallthrough + : @32 + 858: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 864: 33 01 0e r1 = 0xe + 867: c7 10 0b i32 r11 = r0 >>a r1 + 870: 64 b3 r3 = r11 + 872: 95 aa 01 r10 = r10 + 0x1 + 875: 33 02 02 r2 = 0x2 + 878: ab 2a ec jump 858 if r10 != r2 + : @33 + 881: 33 04 00 00 fe r4 = 0xfffffffffffe0000 + 886: ab 43 0e 02 jump 1412 if r3 != r4 + : @34 + 890: 33 05 1b r5 = 0x1b + 893: 33 0a r10 = 0 + 895: 01 fallthrough + : @35 + 896: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 902: 33 01 1f r1 = 0x1f + 905: c7 10 0b i32 r11 = r0 >>a r1 + 908: 64 b3 r3 = r11 + 910: 95 aa 01 r10 = r10 + 0x1 + 913: 33 02 02 r2 = 0x2 + 916: ab 2a ec jump 896 if r10 != r2 + : @36 + 919: 33 04 ff r4 = 0xffffffffffffffff + 922: ab 43 ea 01 jump 1412 if r3 != r4 + : @37 + 926: 33 05 1c r5 = 0x1c + 929: 33 0a r10 = 0 + 931: 01 fallthrough + : @38 + 932: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 938: 33 01 07 r1 = 0x7 + 941: c7 10 0b i32 r11 = r0 >>a r1 + 944: 95 aa 01 r10 = r10 + 0x1 + 947: 33 02 02 r2 = 0x2 + 950: ab 2a ee jump 932 if r10 != r2 + : @39 + 953: 33 04 00 00 00 ff r4 = 0xffffffffff000000 + 959: ab 4b c5 01 jump 1412 if r11 != r4 + : @40 + 963: 33 05 1d r5 = 0x1d + 966: 33 0a r10 = 0 + 968: 01 fallthrough + : @41 + 969: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 975: 33 01 0e r1 = 0xe + 978: c7 10 0b i32 r11 = r0 >>a r1 + 981: 95 aa 01 r10 = r10 + 0x1 + 984: 33 02 02 r2 = 0x2 + 987: ab 2a ee jump 969 if r10 != r2 + : @42 + 990: 33 04 00 00 fe r4 = 0xfffffffffffe0000 + 995: ab 4b a1 01 jump 1412 if r11 != r4 + : @43 + 999: 33 05 1e r5 = 0x1e + 1002: 33 0a r10 = 0 + 1004: 01 fallthrough + : @44 + 1005: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 1011: 33 01 1f r1 = 0x1f + 1014: c7 10 0b i32 r11 = r0 >>a r1 + 1017: 95 aa 01 r10 = r10 + 0x1 + 1020: 33 02 02 r2 = 0x2 + 1023: ab 2a ee jump 1005 if r10 != r2 + : @45 + 1026: 33 04 ff r4 = 0xffffffffffffffff + 1029: ab 4b 7f 01 jump 1412 if r11 != r4 + : @46 + 1033: 33 05 1f r5 = 0x1f + 1036: 33 0a r10 = 0 + 1038: 01 fallthrough + : @47 + 1039: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 1045: 33 01 07 r1 = 0x7 + 1048: c7 10 0b i32 r11 = r0 >>a r1 + 1051: 95 aa 01 r10 = r10 + 0x1 + 1054: 33 02 02 r2 = 0x2 + 1057: ab 2a ee jump 1039 if r10 != r2 + : @48 + 1060: 33 04 00 00 00 ff r4 = 0xffffffffff000000 + 1066: ab 4b 5a 01 jump 1412 if r11 != r4 + : @49 + 1070: 33 05 20 r5 = 0x20 + 1073: 33 0a r10 = 0 + 1075: 01 fallthrough + : @50 + 1076: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 1082: 33 01 0e r1 = 0xe + 1085: c7 10 0b i32 r11 = r0 >>a r1 + 1088: 95 aa 01 r10 = r10 + 0x1 + 1091: 33 02 02 r2 = 0x2 + 1094: ab 2a ee jump 1076 if r10 != r2 + : @51 + 1097: 33 04 00 00 fe r4 = 0xfffffffffffe0000 + 1102: ab 4b 36 01 jump 1412 if r11 != r4 + : @52 + 1106: 33 05 21 r5 = 0x21 + 1109: 33 0a r10 = 0 + 1111: 01 fallthrough + : @53 + 1112: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 1118: 33 01 1f r1 = 0x1f + 1121: c7 10 0b i32 r11 = r0 >>a r1 + 1124: 95 aa 01 r10 = r10 + 0x1 + 1127: 33 02 02 r2 = 0x2 + 1130: ab 2a ee jump 1112 if r10 != r2 + : @54 + 1133: 33 04 ff r4 = 0xffffffffffffffff + 1136: ab 4b 14 01 jump 1412 if r11 != r4 + : @55 + 1140: 33 05 22 r5 = 0x22 + 1143: 33 0a r10 = 0 + 1145: 01 fallthrough + : @56 + 1146: 33 01 07 r1 = 0x7 + 1149: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 1155: c7 10 0b i32 r11 = r0 >>a r1 + 1158: 95 aa 01 r10 = r10 + 0x1 + 1161: 33 02 02 r2 = 0x2 + 1164: ab 2a ee jump 1146 if r10 != r2 + : @57 + 1167: 33 04 00 00 00 ff r4 = 0xffffffffff000000 + 1173: ab 4b ef 00 jump 1412 if r11 != r4 + : @58 + 1177: 33 05 23 r5 = 0x23 + 1180: 33 0a r10 = 0 + 1182: 01 fallthrough + : @59 + 1183: 33 01 0e r1 = 0xe + 1186: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 1192: c7 10 0b i32 r11 = r0 >>a r1 + 1195: 95 aa 01 r10 = r10 + 0x1 + 1198: 33 02 02 r2 = 0x2 + 1201: ab 2a ee jump 1183 if r10 != r2 + : @60 + 1204: 33 04 00 00 fe r4 = 0xfffffffffffe0000 + 1209: ab 4b cb 00 jump 1412 if r11 != r4 + : @61 + 1213: 33 05 24 r5 = 0x24 + 1216: 33 0a r10 = 0 + 1218: 01 fallthrough + : @62 + 1219: 33 01 1f r1 = 0x1f + 1222: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 1228: c7 10 0b i32 r11 = r0 >>a r1 + 1231: 95 aa 01 r10 = r10 + 0x1 + 1234: 33 02 02 r2 = 0x2 + 1237: ab 2a ee jump 1219 if r10 != r2 + : @63 + 1240: 33 04 ff r4 = 0xffffffffffffffff + 1243: ab 4b a9 00 jump 1412 if r11 != r4 + : @64 + 1247: 33 05 25 r5 = 0x25 + 1250: 33 0a r10 = 0 + 1252: 01 fallthrough + : @65 + 1253: 33 01 07 r1 = 0x7 + 1256: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 1262: c7 10 0b i32 r11 = r0 >>a r1 + 1265: 95 aa 01 r10 = r10 + 0x1 + 1268: 33 02 02 r2 = 0x2 + 1271: ab 2a ee jump 1253 if r10 != r2 + : @66 + 1274: 33 04 00 00 00 ff r4 = 0xffffffffff000000 + 1280: ab 4b 84 00 jump 1412 if r11 != r4 + : @67 + 1284: 33 05 26 r5 = 0x26 + 1287: 33 0a r10 = 0 + 1289: 01 fallthrough + : @68 + 1290: 33 01 0e r1 = 0xe + 1293: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 1299: c7 10 0b i32 r11 = r0 >>a r1 + 1302: 95 aa 01 r10 = r10 + 0x1 + 1305: 33 02 02 r2 = 0x2 + 1308: ab 2a ee jump 1290 if r10 != r2 + : @69 + 1311: 33 04 00 00 fe r4 = 0xfffffffffffe0000 + 1316: ab 4b 60 jump 1412 if r11 != r4 + : @70 + 1319: 33 05 27 r5 = 0x27 + 1322: 33 0a r10 = 0 + 1324: 01 fallthrough + : @71 + 1325: 33 01 1f r1 = 0x1f + 1328: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 1334: c7 10 0b i32 r11 = r0 >>a r1 + 1337: 95 aa 01 r10 = r10 + 0x1 + 1340: 33 02 02 r2 = 0x2 + 1343: ab 2a ee jump 1325 if r10 != r2 + : @72 + 1346: 33 04 ff r4 = 0xffffffffffffffff + 1349: ab 4b 3f jump 1412 if r11 != r4 + : @73 + 1352: 33 05 28 r5 = 0x28 + 1355: 33 00 0f r0 = 0xf + 1358: 92 01 i32 r1 = 0 >>a r0 + 1360: 33 04 r4 = 0 + 1362: ab 41 32 jump 1412 if r1 != r4 + : @74 + 1365: 33 05 29 r5 = 0x29 + 1368: 33 00 20 r0 = 0x20 + 1371: 8c 01 i32 r1 = r0 >>a 0 + 1373: 33 04 20 r4 = 0x20 + 1376: ab 41 24 jump 1412 if r1 != r4 + : @75 + 1379: 33 05 2a r5 = 0x2a + 1382: 33 00 r0 = 0 + 1384: 33 04 r4 = 0 + 1386: ab 40 1a jump 1412 if r0 != r4 + : @76 + 1389: 33 05 2b r5 = 0x2b + 1392: 33 00 00 04 r0 = 0x400 + 1396: 33 01 00 10 r1 = 0x1000 + 1400: 83 11 00 f8 i32 r1 = r1 + 0xfffffffffffff800 + 1404: 33 04 r4 = 0 + 1406: 52 04 06 jump 1412 if r4 != 0 + : @77 + 1409: 52 05 04 jump 1413 if r5 != 0 + : @78 + 1412: 00 trap + : @79 + 1413: 28 7b fa jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r1 = 0x800 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0xffffffffffffffff (initially was 0x0) + * r5 = 0x2b (initially was 0x0) + * r9 = 0xfffffffffffe0000 (initially was 0x0) + * r10 = 0x2 (initially was 0x0) + * r11 = 0xffffffffffffffff (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9508 + + +## riscv_rv64ui_srl + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 22: 33 09 r9 = 0 + 24: d0 98 0b r11 = r8 >> r9 + 27: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 33: ab 4b c2 04 jump 1251 if r11 != r4 + : @2 + 37: 33 05 03 r5 = 0x3 + 40: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 46: 33 09 01 r9 = 0x1 + 49: d0 98 0b r11 = r8 >> r9 + 52: 33 04 01 r4 = 0x1 + 55: 97 44 21 r4 = r4 << 0x21 + 58: 95 44 ff r4 = r4 + 0xffffffffffffffff + 61: 97 44 1e r4 = r4 << 0x1e + 64: ab 4b a3 04 jump 1251 if r11 != r4 + : @3 + 68: 33 05 04 r5 = 0x4 + 71: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 77: 33 09 07 r9 = 0x7 + 80: d0 98 0b r11 = r8 >> r9 + 83: 33 04 01 r4 = 0x1 + 86: 97 44 21 r4 = r4 << 0x21 + 89: 95 44 ff r4 = r4 + 0xffffffffffffffff + 92: 97 44 18 r4 = r4 << 0x18 + 95: ab 4b 84 04 jump 1251 if r11 != r4 + : @4 + 99: 33 05 05 r5 = 0x5 + 102: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 108: 33 09 0e r9 = 0xe + 111: d0 98 0b r11 = r8 >> r9 + 114: 33 04 01 r4 = 0x1 + 117: 97 44 21 r4 = r4 << 0x21 + 120: 95 44 ff r4 = r4 + 0xffffffffffffffff + 123: 97 44 11 r4 = r4 << 0x11 + 126: ab 4b 65 04 jump 1251 if r11 != r4 + : @5 + 130: 33 05 06 r5 = 0x6 + 133: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 139: 83 88 01 i32 r8 = r8 + 0x1 + 142: 33 09 1f r9 = 0x1f + 145: d0 98 0b r11 = r8 >> r9 + 148: 33 04 01 r4 = 0x1 + 151: 97 44 21 r4 = r4 << 0x21 + 154: 95 44 ff r4 = r4 + 0xffffffffffffffff + 157: ab 4b 46 04 jump 1251 if r11 != r4 + : @6 + 161: 33 05 07 r5 = 0x7 + 164: 33 08 ff r8 = 0xffffffffffffffff + 167: 33 09 r9 = 0 + 169: d0 98 0b r11 = r8 >> r9 + 172: 33 04 ff r4 = 0xffffffffffffffff + 175: ab 4b 34 04 jump 1251 if r11 != r4 + : @7 + 179: 33 05 08 r5 = 0x8 + 182: 33 08 ff r8 = 0xffffffffffffffff + 185: 33 09 01 r9 = 0x1 + 188: d0 98 0b r11 = r8 >> r9 + 191: 33 04 ff r4 = 0xffffffffffffffff + 194: 97 44 3f r4 = r4 << 0x3f + 197: 95 44 ff r4 = r4 + 0xffffffffffffffff + 200: ab 4b 1b 04 jump 1251 if r11 != r4 + : @8 + 204: 33 05 09 r5 = 0x9 + 207: 33 08 ff r8 = 0xffffffffffffffff + 210: 33 09 07 r9 = 0x7 + 213: d0 98 0b r11 = r8 >> r9 + 216: 33 04 01 r4 = 0x1 + 219: 97 44 39 r4 = r4 << 0x39 + 222: 95 44 ff r4 = r4 + 0xffffffffffffffff + 225: ab 4b 02 04 jump 1251 if r11 != r4 + : @9 + 229: 33 05 0a r5 = 0xa + 232: 33 08 ff r8 = 0xffffffffffffffff + 235: 33 09 0e r9 = 0xe + 238: d0 98 0b r11 = r8 >> r9 + 241: 33 04 01 r4 = 0x1 + 244: 97 44 32 r4 = r4 << 0x32 + 247: 95 44 ff r4 = r4 + 0xffffffffffffffff + 250: ab 4b e9 03 jump 1251 if r11 != r4 + : @10 + 254: 33 05 0b r5 = 0xb + 257: 33 08 ff r8 = 0xffffffffffffffff + 260: 33 09 1f r9 = 0x1f + 263: d0 98 0b r11 = r8 >> r9 + 266: 33 04 01 r4 = 0x1 + 269: 97 44 21 r4 = r4 << 0x21 + 272: 95 44 ff r4 = r4 + 0xffffffffffffffff + 275: ab 4b d0 03 jump 1251 if r11 != r4 + : @11 + 279: 33 05 0c r5 = 0xc + 282: 33 08 00 20 21 21 r8 = 0x21212000 + 288: 83 88 21 01 i32 r8 = r8 + 0x121 + 292: 33 09 r9 = 0 + 294: d0 98 0b r11 = r8 >> r9 + 297: 33 04 00 20 21 21 r4 = 0x21212000 + 303: 83 44 21 01 i32 r4 = r4 + 0x121 + 307: ab 4b b0 03 jump 1251 if r11 != r4 + : @12 + 311: 33 05 0d r5 = 0xd + 314: 33 08 00 20 21 21 r8 = 0x21212000 + 320: 83 88 21 01 i32 r8 = r8 + 0x121 + 324: 33 09 01 r9 = 0x1 + 327: d0 98 0b r11 = r8 >> r9 + 330: 33 04 00 90 90 10 r4 = 0x10909000 + 336: 83 44 90 00 i32 r4 = r4 + 0x90 + 340: ab 4b 8f 03 jump 1251 if r11 != r4 + : @13 + 344: 33 05 0e r5 = 0xe + 347: 33 08 00 20 21 21 r8 = 0x21212000 + 353: 83 88 21 01 i32 r8 = r8 + 0x121 + 357: 33 09 07 r9 = 0x7 + 360: d0 98 0b r11 = r8 >> r9 + 363: 33 04 00 40 42 r4 = 0x424000 + 368: 83 44 42 02 i32 r4 = r4 + 0x242 + 372: ab 4b 6f 03 jump 1251 if r11 != r4 + : @14 + 376: 33 05 0f r5 = 0xf + 379: 33 08 00 20 21 21 r8 = 0x21212000 + 385: 83 88 21 01 i32 r8 = r8 + 0x121 + 389: 33 09 0e r9 = 0xe + 392: d0 98 0b r11 = r8 >> r9 + 395: 33 04 00 80 00 r4 = 0x8000 + 400: 83 44 84 04 i32 r4 = r4 + 0x484 + 404: ab 4b 4f 03 jump 1251 if r11 != r4 + : @15 + 408: 33 05 10 r5 = 0x10 + 411: 33 08 00 20 21 21 r8 = 0x21212000 + 417: 83 88 21 01 i32 r8 = r8 + 0x121 + 421: 33 09 1f r9 = 0x1f + 424: d0 98 0b r11 = r8 >> r9 + 427: 33 04 r4 = 0 + 429: ab 4b 36 03 jump 1251 if r11 != r4 + : @16 + 433: 33 05 11 r5 = 0x11 + 436: 33 08 00 20 21 21 r8 = 0x21212000 + 442: 83 88 21 01 i32 r8 = r8 + 0x121 + 446: 33 09 c0 r9 = 0xffffffffffffffc0 + 449: d0 98 0b r11 = r8 >> r9 + 452: 33 04 00 20 21 21 r4 = 0x21212000 + 458: 83 44 21 01 i32 r4 = r4 + 0x121 + 462: ab 4b 15 03 jump 1251 if r11 != r4 + : @17 + 466: 33 05 12 r5 = 0x12 + 469: 33 08 00 20 21 21 r8 = 0x21212000 + 475: 83 88 21 01 i32 r8 = r8 + 0x121 + 479: 33 09 c1 r9 = 0xffffffffffffffc1 + 482: d0 98 0b r11 = r8 >> r9 + 485: 33 04 00 90 90 10 r4 = 0x10909000 + 491: 83 44 90 00 i32 r4 = r4 + 0x90 + 495: ab 4b f4 02 jump 1251 if r11 != r4 + : @18 + 499: 33 05 13 r5 = 0x13 + 502: 33 08 00 20 21 21 r8 = 0x21212000 + 508: 83 88 21 01 i32 r8 = r8 + 0x121 + 512: 33 09 c7 r9 = 0xffffffffffffffc7 + 515: d0 98 0b r11 = r8 >> r9 + 518: 33 04 00 40 42 r4 = 0x424000 + 523: 83 44 42 02 i32 r4 = r4 + 0x242 + 527: ab 4b d4 02 jump 1251 if r11 != r4 + : @19 + 531: 33 05 14 r5 = 0x14 + 534: 33 08 00 20 21 21 r8 = 0x21212000 + 540: 83 88 21 01 i32 r8 = r8 + 0x121 + 544: 33 09 ce r9 = 0xffffffffffffffce + 547: d0 98 0b r11 = r8 >> r9 + 550: 33 04 00 80 00 r4 = 0x8000 + 555: 83 44 84 04 i32 r4 = r4 + 0x484 + 559: ab 4b b4 02 jump 1251 if r11 != r4 + : @20 + 563: 33 05 15 r5 = 0x15 + 566: 33 08 00 20 21 21 r8 = 0x21212000 + 572: 83 88 21 01 i32 r8 = r8 + 0x121 + 576: 33 09 ff r9 = 0xffffffffffffffff + 579: d0 98 0b r11 = r8 >> r9 + 582: 33 04 r4 = 0 + 584: ab 4b 9b 02 jump 1251 if r11 != r4 + : @21 + 588: 33 05 16 r5 = 0x16 + 591: 33 08 01 r8 = 0x1 + 594: 97 88 1f r8 = r8 << 0x1f + 597: 33 09 07 r9 = 0x7 + 600: d0 98 08 r8 = r8 >> r9 + 603: 33 04 00 00 00 01 r4 = 0x1000000 + 609: ab 48 82 02 jump 1251 if r8 != r4 + : @22 + 613: 33 05 17 r5 = 0x17 + 616: 33 08 01 r8 = 0x1 + 619: 97 88 1f r8 = r8 << 0x1f + 622: 33 09 0e r9 = 0xe + 625: d0 98 09 r9 = r8 >> r9 + 628: 33 04 00 00 02 r4 = 0x20000 + 633: ab 49 6a 02 jump 1251 if r9 != r4 + : @23 + 637: 33 05 18 r5 = 0x18 + 640: 33 08 07 r8 = 0x7 + 643: d0 88 08 r8 = r8 >> r8 + 646: 33 04 r4 = 0 + 648: ab 48 5b 02 jump 1251 if r8 != r4 + : @24 + 652: 33 05 19 r5 = 0x19 + 655: 33 0a r10 = 0 + 657: 01 fallthrough + : @25 + 658: 33 00 01 r0 = 0x1 + 661: 97 00 1f r0 = r0 << 0x1f + 664: 33 01 07 r1 = 0x7 + 667: d0 10 0b r11 = r0 >> r1 + 670: 64 b3 r3 = r11 + 672: 95 aa 01 r10 = r10 + 0x1 + 675: 33 02 02 r2 = 0x2 + 678: ab 2a ec jump 658 if r10 != r2 + : @26 + 681: 33 04 00 00 00 01 r4 = 0x1000000 + 687: ab 43 34 02 jump 1251 if r3 != r4 + : @27 + 691: 33 05 1a r5 = 0x1a + 694: 33 0a r10 = 0 + 696: 01 fallthrough + : @28 + 697: 33 00 01 r0 = 0x1 + 700: 97 00 1f r0 = r0 << 0x1f + 703: 33 01 0e r1 = 0xe + 706: d0 10 0b r11 = r0 >> r1 + 709: 64 b3 r3 = r11 + 711: 95 aa 01 r10 = r10 + 0x1 + 714: 33 02 02 r2 = 0x2 + 717: ab 2a ec jump 697 if r10 != r2 + : @29 + 720: 33 04 00 00 02 r4 = 0x20000 + 725: ab 43 0e 02 jump 1251 if r3 != r4 + : @30 + 729: 33 05 1b r5 = 0x1b + 732: 33 0a r10 = 0 + 734: 01 fallthrough + : @31 + 735: 33 00 01 r0 = 0x1 + 738: 97 00 1f r0 = r0 << 0x1f + 741: 33 01 1f r1 = 0x1f + 744: d0 10 0b r11 = r0 >> r1 + 747: 64 b3 r3 = r11 + 749: 95 aa 01 r10 = r10 + 0x1 + 752: 33 02 02 r2 = 0x2 + 755: ab 2a ec jump 735 if r10 != r2 + : @32 + 758: 33 04 01 r4 = 0x1 + 761: ab 43 ea 01 jump 1251 if r3 != r4 + : @33 + 765: 33 05 1c r5 = 0x1c + 768: 33 0a r10 = 0 + 770: 01 fallthrough + : @34 + 771: 33 00 01 r0 = 0x1 + 774: 97 00 1f r0 = r0 << 0x1f + 777: 33 01 07 r1 = 0x7 + 780: d0 10 0b r11 = r0 >> r1 + 783: 95 aa 01 r10 = r10 + 0x1 + 786: 33 02 02 r2 = 0x2 + 789: ab 2a ee jump 771 if r10 != r2 + : @35 + 792: 33 04 00 00 00 01 r4 = 0x1000000 + 798: ab 4b c5 01 jump 1251 if r11 != r4 + : @36 + 802: 33 05 1d r5 = 0x1d + 805: 33 0a r10 = 0 + 807: 01 fallthrough + : @37 + 808: 33 00 01 r0 = 0x1 + 811: 97 00 1f r0 = r0 << 0x1f + 814: 33 01 0e r1 = 0xe + 817: d0 10 0b r11 = r0 >> r1 + 820: 95 aa 01 r10 = r10 + 0x1 + 823: 33 02 02 r2 = 0x2 + 826: ab 2a ee jump 808 if r10 != r2 + : @38 + 829: 33 04 00 00 02 r4 = 0x20000 + 834: ab 4b a1 01 jump 1251 if r11 != r4 + : @39 + 838: 33 05 1e r5 = 0x1e + 841: 33 0a r10 = 0 + 843: 01 fallthrough + : @40 + 844: 33 00 01 r0 = 0x1 + 847: 97 00 1f r0 = r0 << 0x1f + 850: 33 01 1f r1 = 0x1f + 853: d0 10 0b r11 = r0 >> r1 + 856: 95 aa 01 r10 = r10 + 0x1 + 859: 33 02 02 r2 = 0x2 + 862: ab 2a ee jump 844 if r10 != r2 + : @41 + 865: 33 04 01 r4 = 0x1 + 868: ab 4b 7f 01 jump 1251 if r11 != r4 + : @42 + 872: 33 05 1f r5 = 0x1f + 875: 33 0a r10 = 0 + 877: 01 fallthrough + : @43 + 878: 33 00 01 r0 = 0x1 + 881: 97 00 1f r0 = r0 << 0x1f + 884: 33 01 07 r1 = 0x7 + 887: d0 10 0b r11 = r0 >> r1 + 890: 95 aa 01 r10 = r10 + 0x1 + 893: 33 02 02 r2 = 0x2 + 896: ab 2a ee jump 878 if r10 != r2 + : @44 + 899: 33 04 00 00 00 01 r4 = 0x1000000 + 905: ab 4b 5a 01 jump 1251 if r11 != r4 + : @45 + 909: 33 05 20 r5 = 0x20 + 912: 33 0a r10 = 0 + 914: 01 fallthrough + : @46 + 915: 33 00 01 r0 = 0x1 + 918: 97 00 1f r0 = r0 << 0x1f + 921: 33 01 0e r1 = 0xe + 924: d0 10 0b r11 = r0 >> r1 + 927: 95 aa 01 r10 = r10 + 0x1 + 930: 33 02 02 r2 = 0x2 + 933: ab 2a ee jump 915 if r10 != r2 + : @47 + 936: 33 04 00 00 02 r4 = 0x20000 + 941: ab 4b 36 01 jump 1251 if r11 != r4 + : @48 + 945: 33 05 21 r5 = 0x21 + 948: 33 0a r10 = 0 + 950: 01 fallthrough + : @49 + 951: 33 00 01 r0 = 0x1 + 954: 97 00 1f r0 = r0 << 0x1f + 957: 33 01 1f r1 = 0x1f + 960: d0 10 0b r11 = r0 >> r1 + 963: 95 aa 01 r10 = r10 + 0x1 + 966: 33 02 02 r2 = 0x2 + 969: ab 2a ee jump 951 if r10 != r2 + : @50 + 972: 33 04 01 r4 = 0x1 + 975: ab 4b 14 01 jump 1251 if r11 != r4 + : @51 + 979: 33 05 22 r5 = 0x22 + 982: 33 0a r10 = 0 + 984: 01 fallthrough + : @52 + 985: 33 01 07 r1 = 0x7 + 988: 33 00 01 r0 = 0x1 + 991: 97 00 1f r0 = r0 << 0x1f + 994: d0 10 0b r11 = r0 >> r1 + 997: 95 aa 01 r10 = r10 + 0x1 + 1000: 33 02 02 r2 = 0x2 + 1003: ab 2a ee jump 985 if r10 != r2 + : @53 + 1006: 33 04 00 00 00 01 r4 = 0x1000000 + 1012: ab 4b ef 00 jump 1251 if r11 != r4 + : @54 + 1016: 33 05 23 r5 = 0x23 + 1019: 33 0a r10 = 0 + 1021: 01 fallthrough + : @55 + 1022: 33 01 0e r1 = 0xe + 1025: 33 00 01 r0 = 0x1 + 1028: 97 00 1f r0 = r0 << 0x1f + 1031: d0 10 0b r11 = r0 >> r1 + 1034: 95 aa 01 r10 = r10 + 0x1 + 1037: 33 02 02 r2 = 0x2 + 1040: ab 2a ee jump 1022 if r10 != r2 + : @56 + 1043: 33 04 00 00 02 r4 = 0x20000 + 1048: ab 4b cb 00 jump 1251 if r11 != r4 + : @57 + 1052: 33 05 24 r5 = 0x24 + 1055: 33 0a r10 = 0 + 1057: 01 fallthrough + : @58 + 1058: 33 01 1f r1 = 0x1f + 1061: 33 00 01 r0 = 0x1 + 1064: 97 00 1f r0 = r0 << 0x1f + 1067: d0 10 0b r11 = r0 >> r1 + 1070: 95 aa 01 r10 = r10 + 0x1 + 1073: 33 02 02 r2 = 0x2 + 1076: ab 2a ee jump 1058 if r10 != r2 + : @59 + 1079: 33 04 01 r4 = 0x1 + 1082: ab 4b a9 00 jump 1251 if r11 != r4 + : @60 + 1086: 33 05 25 r5 = 0x25 + 1089: 33 0a r10 = 0 + 1091: 01 fallthrough + : @61 + 1092: 33 01 07 r1 = 0x7 + 1095: 33 00 01 r0 = 0x1 + 1098: 97 00 1f r0 = r0 << 0x1f + 1101: d0 10 0b r11 = r0 >> r1 + 1104: 95 aa 01 r10 = r10 + 0x1 + 1107: 33 02 02 r2 = 0x2 + 1110: ab 2a ee jump 1092 if r10 != r2 + : @62 + 1113: 33 04 00 00 00 01 r4 = 0x1000000 + 1119: ab 4b 84 00 jump 1251 if r11 != r4 + : @63 + 1123: 33 05 26 r5 = 0x26 + 1126: 33 0a r10 = 0 + 1128: 01 fallthrough + : @64 + 1129: 33 01 0e r1 = 0xe + 1132: 33 00 01 r0 = 0x1 + 1135: 97 00 1f r0 = r0 << 0x1f + 1138: d0 10 0b r11 = r0 >> r1 + 1141: 95 aa 01 r10 = r10 + 0x1 + 1144: 33 02 02 r2 = 0x2 + 1147: ab 2a ee jump 1129 if r10 != r2 + : @65 + 1150: 33 04 00 00 02 r4 = 0x20000 + 1155: ab 4b 60 jump 1251 if r11 != r4 + : @66 + 1158: 33 05 27 r5 = 0x27 + 1161: 33 0a r10 = 0 + 1163: 01 fallthrough + : @67 + 1164: 33 01 1f r1 = 0x1f + 1167: 33 00 01 r0 = 0x1 + 1170: 97 00 1f r0 = r0 << 0x1f + 1173: d0 10 0b r11 = r0 >> r1 + 1176: 95 aa 01 r10 = r10 + 0x1 + 1179: 33 02 02 r2 = 0x2 + 1182: ab 2a ee jump 1164 if r10 != r2 + : @68 + 1185: 33 04 01 r4 = 0x1 + 1188: ab 4b 3f jump 1251 if r11 != r4 + : @69 + 1191: 33 05 28 r5 = 0x28 + 1194: 33 00 0f r0 = 0xf + 1197: 9c 01 r1 = 0 >> r0 + 1199: 33 04 r4 = 0 + 1201: ab 41 32 jump 1251 if r1 != r4 + : @70 + 1204: 33 05 29 r5 = 0x29 + 1207: 33 00 20 r0 = 0x20 + 1210: 98 01 r1 = r0 >> 0 + 1212: 33 04 20 r4 = 0x20 + 1215: ab 41 24 jump 1251 if r1 != r4 + : @71 + 1218: 33 05 2a r5 = 0x2a + 1221: 33 00 r0 = 0 + 1223: 33 04 r4 = 0 + 1225: ab 40 1a jump 1251 if r0 != r4 + : @72 + 1228: 33 05 2b r5 = 0x2b + 1231: 33 00 00 04 r0 = 0x400 + 1235: 33 01 00 10 r1 = 0x1000 + 1239: 83 11 00 f8 i32 r1 = r1 + 0xfffffffffffff800 + 1243: 33 04 r4 = 0 + 1245: 52 04 06 jump 1251 if r4 != 0 + : @73 + 1248: 52 05 04 jump 1252 if r5 != 0 + : @74 + 1251: 00 trap + : @75 + 1252: 28 1c fb jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r1 = 0x800 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0x1 (initially was 0x0) + * r5 = 0x2b (initially was 0x0) + * r9 = 0x20000 (initially was 0x0) + * r10 = 0x2 (initially was 0x0) + * r11 = 0x1 (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9506 + + +## riscv_rv64ui_srli + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 0a 00 00 00 80 r10 = 0xffffffff80000000 + 22: 98 ab r11 = r10 >> 0 + 24: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 30: ab 4b 60 02 jump 638 if r11 != r4 + : @2 + 34: 33 05 03 r5 = 0x3 + 37: 33 0a 00 00 00 80 r10 = 0xffffffff80000000 + 43: 98 ab 01 r11 = r10 >> 0x1 + 46: 33 04 01 r4 = 0x1 + 49: 97 44 21 r4 = r4 << 0x21 + 52: 95 44 ff r4 = r4 + 0xffffffffffffffff + 55: 97 44 1e r4 = r4 << 0x1e + 58: ab 4b 44 02 jump 638 if r11 != r4 + : @3 + 62: 33 05 04 r5 = 0x4 + 65: 33 0a 00 00 00 80 r10 = 0xffffffff80000000 + 71: 98 ab 07 r11 = r10 >> 0x7 + 74: 33 04 01 r4 = 0x1 + 77: 97 44 21 r4 = r4 << 0x21 + 80: 95 44 ff r4 = r4 + 0xffffffffffffffff + 83: 97 44 18 r4 = r4 << 0x18 + 86: ab 4b 28 02 jump 638 if r11 != r4 + : @4 + 90: 33 05 05 r5 = 0x5 + 93: 33 0a 00 00 00 80 r10 = 0xffffffff80000000 + 99: 98 ab 0e r11 = r10 >> 0xe + 102: 33 04 01 r4 = 0x1 + 105: 97 44 21 r4 = r4 << 0x21 + 108: 95 44 ff r4 = r4 + 0xffffffffffffffff + 111: 97 44 11 r4 = r4 << 0x11 + 114: ab 4b 0c 02 jump 638 if r11 != r4 + : @5 + 118: 33 05 06 r5 = 0x6 + 121: 33 0a 00 00 00 80 r10 = 0xffffffff80000000 + 127: 83 aa 01 i32 r10 = r10 + 0x1 + 130: 98 ab 1f r11 = r10 >> 0x1f + 133: 33 04 01 r4 = 0x1 + 136: 97 44 21 r4 = r4 << 0x21 + 139: 95 44 ff r4 = r4 + 0xffffffffffffffff + 142: ab 4b f0 01 jump 638 if r11 != r4 + : @6 + 146: 33 05 07 r5 = 0x7 + 149: 33 0a ff r10 = 0xffffffffffffffff + 152: 98 ab r11 = r10 >> 0 + 154: 33 04 ff r4 = 0xffffffffffffffff + 157: ab 4b e1 01 jump 638 if r11 != r4 + : @7 + 161: 33 05 08 r5 = 0x8 + 164: 33 0a ff r10 = 0xffffffffffffffff + 167: 98 ab 01 r11 = r10 >> 0x1 + 170: 33 04 ff r4 = 0xffffffffffffffff + 173: 97 44 3f r4 = r4 << 0x3f + 176: 95 44 ff r4 = r4 + 0xffffffffffffffff + 179: ab 4b cb 01 jump 638 if r11 != r4 + : @8 + 183: 33 05 09 r5 = 0x9 + 186: 33 0a ff r10 = 0xffffffffffffffff + 189: 98 ab 07 r11 = r10 >> 0x7 + 192: 33 04 01 r4 = 0x1 + 195: 97 44 39 r4 = r4 << 0x39 + 198: 95 44 ff r4 = r4 + 0xffffffffffffffff + 201: ab 4b b5 01 jump 638 if r11 != r4 + : @9 + 205: 33 05 0a r5 = 0xa + 208: 33 0a ff r10 = 0xffffffffffffffff + 211: 98 ab 0e r11 = r10 >> 0xe + 214: 33 04 01 r4 = 0x1 + 217: 97 44 32 r4 = r4 << 0x32 + 220: 95 44 ff r4 = r4 + 0xffffffffffffffff + 223: ab 4b 9f 01 jump 638 if r11 != r4 + : @10 + 227: 33 05 0b r5 = 0xb + 230: 33 0a ff r10 = 0xffffffffffffffff + 233: 98 ab 1f r11 = r10 >> 0x1f + 236: 33 04 01 r4 = 0x1 + 239: 97 44 21 r4 = r4 << 0x21 + 242: 95 44 ff r4 = r4 + 0xffffffffffffffff + 245: ab 4b 89 01 jump 638 if r11 != r4 + : @11 + 249: 33 05 0c r5 = 0xc + 252: 33 0a 00 20 21 21 r10 = 0x21212000 + 258: 83 aa 21 01 i32 r10 = r10 + 0x121 + 262: 98 ab r11 = r10 >> 0 + 264: 33 04 00 20 21 21 r4 = 0x21212000 + 270: 83 44 21 01 i32 r4 = r4 + 0x121 + 274: ab 4b 6c 01 jump 638 if r11 != r4 + : @12 + 278: 33 05 0d r5 = 0xd + 281: 33 0a 00 20 21 21 r10 = 0x21212000 + 287: 83 aa 21 01 i32 r10 = r10 + 0x121 + 291: 98 ab 01 r11 = r10 >> 0x1 + 294: 33 04 00 90 90 10 r4 = 0x10909000 + 300: 83 44 90 00 i32 r4 = r4 + 0x90 + 304: ab 4b 4e 01 jump 638 if r11 != r4 + : @13 + 308: 33 05 0e r5 = 0xe + 311: 33 0a 00 20 21 21 r10 = 0x21212000 + 317: 83 aa 21 01 i32 r10 = r10 + 0x121 + 321: 98 ab 07 r11 = r10 >> 0x7 + 324: 33 04 00 40 42 r4 = 0x424000 + 329: 83 44 42 02 i32 r4 = r4 + 0x242 + 333: ab 4b 31 01 jump 638 if r11 != r4 + : @14 + 337: 33 05 0f r5 = 0xf + 340: 33 0a 00 20 21 21 r10 = 0x21212000 + 346: 83 aa 21 01 i32 r10 = r10 + 0x121 + 350: 98 ab 0e r11 = r10 >> 0xe + 353: 33 04 00 80 00 r4 = 0x8000 + 358: 83 44 84 04 i32 r4 = r4 + 0x484 + 362: ab 4b 14 01 jump 638 if r11 != r4 + : @15 + 366: 33 05 10 r5 = 0x10 + 369: 33 0a 00 20 21 21 r10 = 0x21212000 + 375: 83 aa 21 01 i32 r10 = r10 + 0x121 + 379: 98 ab 1f r11 = r10 >> 0x1f + 382: 33 04 r4 = 0 + 384: ab 4b fe 00 jump 638 if r11 != r4 + : @16 + 388: 33 05 11 r5 = 0x11 + 391: 33 08 01 r8 = 0x1 + 394: 97 88 1f r8 = r8 << 0x1f + 397: 98 88 07 r8 = r8 >> 0x7 + 400: 33 04 00 00 00 01 r4 = 0x1000000 + 406: ab 48 e8 00 jump 638 if r8 != r4 + : @17 + 410: 33 05 12 r5 = 0x12 + 413: 33 09 r9 = 0 + 415: 01 fallthrough + : @18 + 416: 33 00 01 r0 = 0x1 + 419: 97 00 1f r0 = r0 << 0x1f + 422: 98 0b 07 r11 = r0 >> 0x7 + 425: 64 b3 r3 = r11 + 427: 95 99 01 r9 = r9 + 0x1 + 430: 33 02 02 r2 = 0x2 + 433: ab 29 ef jump 416 if r9 != r2 + : @19 + 436: 33 04 00 00 00 01 r4 = 0x1000000 + 442: ab 43 c4 00 jump 638 if r3 != r4 + : @20 + 446: 33 05 13 r5 = 0x13 + 449: 33 09 r9 = 0 + 451: 01 fallthrough + : @21 + 452: 33 00 01 r0 = 0x1 + 455: 97 00 1f r0 = r0 << 0x1f + 458: 98 0b 0e r11 = r0 >> 0xe + 461: 64 b3 r3 = r11 + 463: 95 99 01 r9 = r9 + 0x1 + 466: 33 02 02 r2 = 0x2 + 469: ab 29 ef jump 452 if r9 != r2 + : @22 + 472: 33 04 00 00 02 r4 = 0x20000 + 477: ab 43 a1 00 jump 638 if r3 != r4 + : @23 + 481: 33 05 14 r5 = 0x14 + 484: 33 09 r9 = 0 + 486: 01 fallthrough + : @24 + 487: 33 00 01 r0 = 0x1 + 490: 97 00 1f r0 = r0 << 0x1f + 493: 95 00 01 r0 = r0 + 0x1 + 496: 98 0b 1f r11 = r0 >> 0x1f + 499: 64 b3 r3 = r11 + 501: 95 99 01 r9 = r9 + 0x1 + 504: 33 02 02 r2 = 0x2 + 507: ab 29 ec jump 487 if r9 != r2 + : @25 + 510: 33 04 01 r4 = 0x1 + 513: ab 43 7d jump 638 if r3 != r4 + : @26 + 516: 33 05 15 r5 = 0x15 + 519: 33 09 r9 = 0 + 521: 01 fallthrough + : @27 + 522: 33 00 01 r0 = 0x1 + 525: 97 00 1f r0 = r0 << 0x1f + 528: 98 0b 07 r11 = r0 >> 0x7 + 531: 95 99 01 r9 = r9 + 0x1 + 534: 33 02 02 r2 = 0x2 + 537: ab 29 f1 jump 522 if r9 != r2 + : @28 + 540: 33 04 00 00 00 01 r4 = 0x1000000 + 546: ab 4b 5c jump 638 if r11 != r4 + : @29 + 549: 33 05 16 r5 = 0x16 + 552: 33 09 r9 = 0 + 554: 01 fallthrough + : @30 + 555: 33 00 01 r0 = 0x1 + 558: 97 00 1f r0 = r0 << 0x1f + 561: 98 0b 0e r11 = r0 >> 0xe + 564: 95 99 01 r9 = r9 + 0x1 + 567: 33 02 02 r2 = 0x2 + 570: ab 29 f1 jump 555 if r9 != r2 + : @31 + 573: 33 04 00 00 02 r4 = 0x20000 + 578: ab 4b 3c jump 638 if r11 != r4 + : @32 + 581: 33 05 17 r5 = 0x17 + 584: 33 09 r9 = 0 + 586: 01 fallthrough + : @33 + 587: 33 00 01 r0 = 0x1 + 590: 97 00 1f r0 = r0 << 0x1f + 593: 95 00 01 r0 = r0 + 0x1 + 596: 98 0b 1f r11 = r0 >> 0x1f + 599: 95 99 01 r9 = r9 + 0x1 + 602: 33 02 02 r2 = 0x2 + 605: ab 29 ee jump 587 if r9 != r2 + : @34 + 608: 33 04 01 r4 = 0x1 + 611: ab 4b 1b jump 638 if r11 != r4 + : @35 + 614: 33 05 18 r5 = 0x18 + 617: 33 00 r0 = 0 + 619: 33 04 r4 = 0 + 621: ab 40 11 jump 638 if r0 != r4 + : @36 + 624: 33 05 19 r5 = 0x19 + 627: 33 00 21 r0 = 0x21 + 630: 33 04 r4 = 0 + 632: 52 04 06 jump 638 if r4 != 0 + : @37 + 635: 52 05 04 jump 639 if r5 != 0 + : @38 + 638: 00 trap + : @39 + 639: 28 81 fd jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0x1 (initially was 0x0) + * r5 = 0x19 (initially was 0x0) + * r8 = 0x1000000 (initially was 0x0) + * r9 = 0x2 (initially was 0x0) + * r10 = 0x21212121 (initially was 0x0) + * r11 = 0x1 (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9764 + + +## riscv_rv64ui_srliw + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 0a 00 00 00 80 r10 = 0xffffffff80000000 + 22: 8b ab i32 r11 = r10 >> 0 + 24: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 30: ab 4b ce 02 jump 748 if r11 != r4 + : @2 + 34: 33 05 03 r5 = 0x3 + 37: 33 0a 00 00 00 80 r10 = 0xffffffff80000000 + 43: 8b ab 01 i32 r11 = r10 >> 0x1 + 46: 33 04 00 00 00 40 r4 = 0x40000000 + 52: ab 4b b8 02 jump 748 if r11 != r4 + : @3 + 56: 33 05 04 r5 = 0x4 + 59: 33 0a 00 00 00 80 r10 = 0xffffffff80000000 + 65: 8b ab 07 i32 r11 = r10 >> 0x7 + 68: 33 04 00 00 00 01 r4 = 0x1000000 + 74: ab 4b a2 02 jump 748 if r11 != r4 + : @4 + 78: 33 05 05 r5 = 0x5 + 81: 33 0a 00 00 00 80 r10 = 0xffffffff80000000 + 87: 8b ab 0e i32 r11 = r10 >> 0xe + 90: 33 04 00 00 02 r4 = 0x20000 + 95: ab 4b 8d 02 jump 748 if r11 != r4 + : @5 + 99: 33 05 06 r5 = 0x6 + 102: 33 0a 00 00 00 80 r10 = 0xffffffff80000000 + 108: 83 aa 01 i32 r10 = r10 + 0x1 + 111: 8b ab 1f i32 r11 = r10 >> 0x1f + 114: 33 04 01 r4 = 0x1 + 117: ab 4b 77 02 jump 748 if r11 != r4 + : @6 + 121: 33 05 07 r5 = 0x7 + 124: 33 0a ff r10 = 0xffffffffffffffff + 127: 8b ab i32 r11 = r10 >> 0 + 129: 33 04 ff r4 = 0xffffffffffffffff + 132: ab 4b 68 02 jump 748 if r11 != r4 + : @7 + 136: 33 05 08 r5 = 0x8 + 139: 33 0a ff r10 = 0xffffffffffffffff + 142: 8b ab 01 i32 r11 = r10 >> 0x1 + 145: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 151: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 154: ab 4b 52 02 jump 748 if r11 != r4 + : @8 + 158: 33 05 09 r5 = 0x9 + 161: 33 0a ff r10 = 0xffffffffffffffff + 164: 8b ab 07 i32 r11 = r10 >> 0x7 + 167: 33 04 00 00 00 02 r4 = 0x2000000 + 173: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 176: ab 4b 3c 02 jump 748 if r11 != r4 + : @9 + 180: 33 05 0a r5 = 0xa + 183: 33 0a ff r10 = 0xffffffffffffffff + 186: 8b ab 0e i32 r11 = r10 >> 0xe + 189: 33 04 00 00 04 r4 = 0x40000 + 194: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 197: ab 4b 27 02 jump 748 if r11 != r4 + : @10 + 201: 33 05 0b r5 = 0xb + 204: 33 0a ff r10 = 0xffffffffffffffff + 207: 8b ab 1f i32 r11 = r10 >> 0x1f + 210: 33 04 01 r4 = 0x1 + 213: ab 4b 17 02 jump 748 if r11 != r4 + : @11 + 217: 33 05 0c r5 = 0xc + 220: 33 0a 00 20 21 21 r10 = 0x21212000 + 226: 83 aa 21 01 i32 r10 = r10 + 0x121 + 230: 8b ab i32 r11 = r10 >> 0 + 232: 33 04 00 20 21 21 r4 = 0x21212000 + 238: 83 44 21 01 i32 r4 = r4 + 0x121 + 242: ab 4b fa 01 jump 748 if r11 != r4 + : @12 + 246: 33 05 0d r5 = 0xd + 249: 33 0a 00 20 21 21 r10 = 0x21212000 + 255: 83 aa 21 01 i32 r10 = r10 + 0x121 + 259: 8b ab 01 i32 r11 = r10 >> 0x1 + 262: 33 04 00 90 90 10 r4 = 0x10909000 + 268: 83 44 90 00 i32 r4 = r4 + 0x90 + 272: ab 4b dc 01 jump 748 if r11 != r4 + : @13 + 276: 33 05 0e r5 = 0xe + 279: 33 0a 00 20 21 21 r10 = 0x21212000 + 285: 83 aa 21 01 i32 r10 = r10 + 0x121 + 289: 8b ab 07 i32 r11 = r10 >> 0x7 + 292: 33 04 00 40 42 r4 = 0x424000 + 297: 83 44 42 02 i32 r4 = r4 + 0x242 + 301: ab 4b bf 01 jump 748 if r11 != r4 + : @14 + 305: 33 05 0f r5 = 0xf + 308: 33 0a 00 20 21 21 r10 = 0x21212000 + 314: 83 aa 21 01 i32 r10 = r10 + 0x121 + 318: 8b ab 0e i32 r11 = r10 >> 0xe + 321: 33 04 00 80 00 r4 = 0x8000 + 326: 83 44 84 04 i32 r4 = r4 + 0x484 + 330: ab 4b a2 01 jump 748 if r11 != r4 + : @15 + 334: 33 05 10 r5 = 0x10 + 337: 33 0a 00 20 21 21 r10 = 0x21212000 + 343: 83 aa 21 01 i32 r10 = r10 + 0x121 + 347: 8b ab 1f i32 r11 = r10 >> 0x1f + 350: 33 04 r4 = 0 + 352: ab 4b 8c 01 jump 748 if r11 != r4 + : @16 + 356: 33 05 2c r5 = 0x2c + 359: 33 0a 00 20 f1 r10 = 0xfffffffffff12000 + 364: 83 aa 45 03 i32 r10 = r10 + 0x345 + 368: 97 aa 0c r10 = r10 << 0xc + 371: 95 aa 78 06 r10 = r10 + 0x678 + 375: 8b ab i32 r11 = r10 >> 0 + 377: 33 04 00 50 34 12 r4 = 0x12345000 + 383: 83 44 78 06 i32 r4 = r4 + 0x678 + 387: ab 4b 69 01 jump 748 if r11 != r4 + : @17 + 391: 33 05 2d r5 = 0x2d + 394: 33 0a 00 20 f1 r10 = 0xfffffffffff12000 + 399: 83 aa 45 03 i32 r10 = r10 + 0x345 + 403: 97 aa 0c r10 = r10 << 0xc + 406: 95 aa 78 06 r10 = r10 + 0x678 + 410: 8b ab 04 i32 r11 = r10 >> 0x4 + 413: 33 04 00 40 23 01 r4 = 0x1234000 + 419: 83 44 67 05 i32 r4 = r4 + 0x567 + 423: ab 4b 45 01 jump 748 if r11 != r4 + : @18 + 427: 33 05 2e r5 = 0x2e + 430: 33 0a 00 20 09 r10 = 0x92000 + 435: 83 aa 45 03 i32 r10 = r10 + 0x345 + 439: 97 aa 0c r10 = r10 << 0xc + 442: 95 aa 78 06 r10 = r10 + 0x678 + 446: 8b ab i32 r11 = r10 >> 0 + 448: 33 04 00 50 34 92 r4 = 0xffffffff92345000 + 454: 83 44 78 06 i32 r4 = r4 + 0x678 + 458: ab 4b 22 01 jump 748 if r11 != r4 + : @19 + 462: 33 05 2f r5 = 0x2f + 465: 33 0a 00 20 09 r10 = 0x92000 + 470: 83 aa 45 03 i32 r10 = r10 + 0x345 + 474: 97 aa 0c r10 = r10 << 0xc + 477: 95 aa 78 06 r10 = r10 + 0x678 + 481: 8b ab 04 i32 r11 = r10 >> 0x4 + 484: 33 04 00 40 23 09 r4 = 0x9234000 + 490: 83 44 67 05 i32 r4 = r4 + 0x567 + 494: ab 4b fe 00 jump 748 if r11 != r4 + : @20 + 498: 33 05 11 r5 = 0x11 + 501: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 507: 8b 88 07 i32 r8 = r8 >> 0x7 + 510: 33 04 00 00 00 01 r4 = 0x1000000 + 516: ab 48 e8 00 jump 748 if r8 != r4 + : @21 + 520: 33 05 12 r5 = 0x12 + 523: 33 09 r9 = 0 + 525: 01 fallthrough + : @22 + 526: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 532: 8b 0b 07 i32 r11 = r0 >> 0x7 + 535: 64 b3 r3 = r11 + 537: 95 99 01 r9 = r9 + 0x1 + 540: 33 02 02 r2 = 0x2 + 543: ab 29 ef jump 526 if r9 != r2 + : @23 + 546: 33 04 00 00 00 01 r4 = 0x1000000 + 552: ab 43 c4 00 jump 748 if r3 != r4 + : @24 + 556: 33 05 13 r5 = 0x13 + 559: 33 09 r9 = 0 + 561: 01 fallthrough + : @25 + 562: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 568: 8b 0b 0e i32 r11 = r0 >> 0xe + 571: 64 b3 r3 = r11 + 573: 95 99 01 r9 = r9 + 0x1 + 576: 33 02 02 r2 = 0x2 + 579: ab 29 ef jump 562 if r9 != r2 + : @26 + 582: 33 04 00 00 02 r4 = 0x20000 + 587: ab 43 a1 00 jump 748 if r3 != r4 + : @27 + 591: 33 05 14 r5 = 0x14 + 594: 33 09 r9 = 0 + 596: 01 fallthrough + : @28 + 597: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 603: 83 00 01 i32 r0 = r0 + 0x1 + 606: 8b 0b 1f i32 r11 = r0 >> 0x1f + 609: 64 b3 r3 = r11 + 611: 95 99 01 r9 = r9 + 0x1 + 614: 33 02 02 r2 = 0x2 + 617: ab 29 ec jump 597 if r9 != r2 + : @29 + 620: 33 04 01 r4 = 0x1 + 623: ab 43 7d jump 748 if r3 != r4 + : @30 + 626: 33 05 15 r5 = 0x15 + 629: 33 09 r9 = 0 + 631: 01 fallthrough + : @31 + 632: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 638: 8b 0b 07 i32 r11 = r0 >> 0x7 + 641: 95 99 01 r9 = r9 + 0x1 + 644: 33 02 02 r2 = 0x2 + 647: ab 29 f1 jump 632 if r9 != r2 + : @32 + 650: 33 04 00 00 00 01 r4 = 0x1000000 + 656: ab 4b 5c jump 748 if r11 != r4 + : @33 + 659: 33 05 16 r5 = 0x16 + 662: 33 09 r9 = 0 + 664: 01 fallthrough + : @34 + 665: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 671: 8b 0b 0e i32 r11 = r0 >> 0xe + 674: 95 99 01 r9 = r9 + 0x1 + 677: 33 02 02 r2 = 0x2 + 680: ab 29 f1 jump 665 if r9 != r2 + : @35 + 683: 33 04 00 00 02 r4 = 0x20000 + 688: ab 4b 3c jump 748 if r11 != r4 + : @36 + 691: 33 05 17 r5 = 0x17 + 694: 33 09 r9 = 0 + 696: 01 fallthrough + : @37 + 697: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 703: 83 00 01 i32 r0 = r0 + 0x1 + 706: 8b 0b 1f i32 r11 = r0 >> 0x1f + 709: 95 99 01 r9 = r9 + 0x1 + 712: 33 02 02 r2 = 0x2 + 715: ab 29 ee jump 697 if r9 != r2 + : @38 + 718: 33 04 01 r4 = 0x1 + 721: ab 4b 1b jump 748 if r11 != r4 + : @39 + 724: 33 05 18 r5 = 0x18 + 727: 33 00 r0 = 0 + 729: 33 04 r4 = 0 + 731: ab 40 11 jump 748 if r0 != r4 + : @40 + 734: 33 05 19 r5 = 0x19 + 737: 33 00 1f r0 = 0x1f + 740: 33 04 r4 = 0 + 742: 52 04 06 jump 748 if r4 != 0 + : @41 + 745: 52 05 04 jump 749 if r5 != 0 + : @42 + 748: 00 trap + : @43 + 749: 28 13 fd jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0x1 (initially was 0x0) + * r5 = 0x19 (initially was 0x0) + * r8 = 0x1000000 (initially was 0x0) + * r9 = 0x2 (initially was 0x0) + * r10 = 0x92345678 (initially was 0x0) + * r11 = 0x1 (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9757 + + +## riscv_rv64ui_srlw + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 22: 33 09 r9 = 0 + 24: c6 98 0b i32 r11 = r8 >> r9 + 27: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 33: ab 4b 3c 05 jump 1373 if r11 != r4 + : @2 + 37: 33 05 03 r5 = 0x3 + 40: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 46: 33 09 01 r9 = 0x1 + 49: c6 98 0b i32 r11 = r8 >> r9 + 52: 33 04 00 00 00 40 r4 = 0x40000000 + 58: ab 4b 23 05 jump 1373 if r11 != r4 + : @3 + 62: 33 05 04 r5 = 0x4 + 65: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 71: 33 09 07 r9 = 0x7 + 74: c6 98 0b i32 r11 = r8 >> r9 + 77: 33 04 00 00 00 01 r4 = 0x1000000 + 83: ab 4b 0a 05 jump 1373 if r11 != r4 + : @4 + 87: 33 05 05 r5 = 0x5 + 90: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 96: 33 09 0e r9 = 0xe + 99: c6 98 0b i32 r11 = r8 >> r9 + 102: 33 04 00 00 02 r4 = 0x20000 + 107: ab 4b f2 04 jump 1373 if r11 != r4 + : @5 + 111: 33 05 06 r5 = 0x6 + 114: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 120: 83 88 01 i32 r8 = r8 + 0x1 + 123: 33 09 1f r9 = 0x1f + 126: c6 98 0b i32 r11 = r8 >> r9 + 129: 33 04 01 r4 = 0x1 + 132: ab 4b d9 04 jump 1373 if r11 != r4 + : @6 + 136: 33 05 07 r5 = 0x7 + 139: 33 08 ff r8 = 0xffffffffffffffff + 142: 33 09 r9 = 0 + 144: c6 98 0b i32 r11 = r8 >> r9 + 147: 33 04 ff r4 = 0xffffffffffffffff + 150: ab 4b c7 04 jump 1373 if r11 != r4 + : @7 + 154: 33 05 08 r5 = 0x8 + 157: 33 08 ff r8 = 0xffffffffffffffff + 160: 33 09 01 r9 = 0x1 + 163: c6 98 0b i32 r11 = r8 >> r9 + 166: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 172: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 175: ab 4b ae 04 jump 1373 if r11 != r4 + : @8 + 179: 33 05 09 r5 = 0x9 + 182: 33 08 ff r8 = 0xffffffffffffffff + 185: 33 09 07 r9 = 0x7 + 188: c6 98 0b i32 r11 = r8 >> r9 + 191: 33 04 00 00 00 02 r4 = 0x2000000 + 197: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 200: ab 4b 95 04 jump 1373 if r11 != r4 + : @9 + 204: 33 05 0a r5 = 0xa + 207: 33 08 ff r8 = 0xffffffffffffffff + 210: 33 09 0e r9 = 0xe + 213: c6 98 0b i32 r11 = r8 >> r9 + 216: 33 04 00 00 04 r4 = 0x40000 + 221: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 224: ab 4b 7d 04 jump 1373 if r11 != r4 + : @10 + 228: 33 05 0b r5 = 0xb + 231: 33 08 ff r8 = 0xffffffffffffffff + 234: 33 09 1f r9 = 0x1f + 237: c6 98 0b i32 r11 = r8 >> r9 + 240: 33 04 01 r4 = 0x1 + 243: ab 4b 6a 04 jump 1373 if r11 != r4 + : @11 + 247: 33 05 0c r5 = 0xc + 250: 33 08 00 20 21 21 r8 = 0x21212000 + 256: 83 88 21 01 i32 r8 = r8 + 0x121 + 260: 33 09 r9 = 0 + 262: c6 98 0b i32 r11 = r8 >> r9 + 265: 33 04 00 20 21 21 r4 = 0x21212000 + 271: 83 44 21 01 i32 r4 = r4 + 0x121 + 275: ab 4b 4a 04 jump 1373 if r11 != r4 + : @12 + 279: 33 05 0d r5 = 0xd + 282: 33 08 00 20 21 21 r8 = 0x21212000 + 288: 83 88 21 01 i32 r8 = r8 + 0x121 + 292: 33 09 01 r9 = 0x1 + 295: c6 98 0b i32 r11 = r8 >> r9 + 298: 33 04 00 90 90 10 r4 = 0x10909000 + 304: 83 44 90 00 i32 r4 = r4 + 0x90 + 308: ab 4b 29 04 jump 1373 if r11 != r4 + : @13 + 312: 33 05 0e r5 = 0xe + 315: 33 08 00 20 21 21 r8 = 0x21212000 + 321: 83 88 21 01 i32 r8 = r8 + 0x121 + 325: 33 09 07 r9 = 0x7 + 328: c6 98 0b i32 r11 = r8 >> r9 + 331: 33 04 00 40 42 r4 = 0x424000 + 336: 83 44 42 02 i32 r4 = r4 + 0x242 + 340: ab 4b 09 04 jump 1373 if r11 != r4 + : @14 + 344: 33 05 0f r5 = 0xf + 347: 33 08 00 20 21 21 r8 = 0x21212000 + 353: 83 88 21 01 i32 r8 = r8 + 0x121 + 357: 33 09 0e r9 = 0xe + 360: c6 98 0b i32 r11 = r8 >> r9 + 363: 33 04 00 80 00 r4 = 0x8000 + 368: 83 44 84 04 i32 r4 = r4 + 0x484 + 372: ab 4b e9 03 jump 1373 if r11 != r4 + : @15 + 376: 33 05 10 r5 = 0x10 + 379: 33 08 00 20 21 21 r8 = 0x21212000 + 385: 83 88 21 01 i32 r8 = r8 + 0x121 + 389: 33 09 1f r9 = 0x1f + 392: c6 98 0b i32 r11 = r8 >> r9 + 395: 33 04 r4 = 0 + 397: ab 4b d0 03 jump 1373 if r11 != r4 + : @16 + 401: 33 05 11 r5 = 0x11 + 404: 33 08 00 20 21 21 r8 = 0x21212000 + 410: 83 88 21 01 i32 r8 = r8 + 0x121 + 414: 33 09 e0 r9 = 0xffffffffffffffe0 + 417: c6 98 0b i32 r11 = r8 >> r9 + 420: 33 04 00 20 21 21 r4 = 0x21212000 + 426: 83 44 21 01 i32 r4 = r4 + 0x121 + 430: ab 4b af 03 jump 1373 if r11 != r4 + : @17 + 434: 33 05 12 r5 = 0x12 + 437: 33 08 00 20 21 21 r8 = 0x21212000 + 443: 83 88 21 01 i32 r8 = r8 + 0x121 + 447: 33 09 e1 r9 = 0xffffffffffffffe1 + 450: c6 98 0b i32 r11 = r8 >> r9 + 453: 33 04 00 90 90 10 r4 = 0x10909000 + 459: 83 44 90 00 i32 r4 = r4 + 0x90 + 463: ab 4b 8e 03 jump 1373 if r11 != r4 + : @18 + 467: 33 05 13 r5 = 0x13 + 470: 33 08 00 20 21 21 r8 = 0x21212000 + 476: 83 88 21 01 i32 r8 = r8 + 0x121 + 480: 33 09 e7 r9 = 0xffffffffffffffe7 + 483: c6 98 0b i32 r11 = r8 >> r9 + 486: 33 04 00 40 42 r4 = 0x424000 + 491: 83 44 42 02 i32 r4 = r4 + 0x242 + 495: ab 4b 6e 03 jump 1373 if r11 != r4 + : @19 + 499: 33 05 14 r5 = 0x14 + 502: 33 08 00 20 21 21 r8 = 0x21212000 + 508: 83 88 21 01 i32 r8 = r8 + 0x121 + 512: 33 09 ee r9 = 0xffffffffffffffee + 515: c6 98 0b i32 r11 = r8 >> r9 + 518: 33 04 00 80 00 r4 = 0x8000 + 523: 83 44 84 04 i32 r4 = r4 + 0x484 + 527: ab 4b 4e 03 jump 1373 if r11 != r4 + : @20 + 531: 33 05 15 r5 = 0x15 + 534: 33 08 00 20 21 21 r8 = 0x21212000 + 540: 83 88 21 01 i32 r8 = r8 + 0x121 + 544: 33 09 ff r9 = 0xffffffffffffffff + 547: c6 98 0b i32 r11 = r8 >> r9 + 550: 33 04 r4 = 0 + 552: ab 4b 35 03 jump 1373 if r11 != r4 + : @21 + 556: 33 05 2c r5 = 0x2c + 559: 33 08 00 20 f1 r8 = 0xfffffffffff12000 + 564: 83 88 45 03 i32 r8 = r8 + 0x345 + 568: 97 88 0c r8 = r8 << 0xc + 571: 95 88 78 06 r8 = r8 + 0x678 + 575: 33 09 r9 = 0 + 577: c6 98 0b i32 r11 = r8 >> r9 + 580: 33 04 00 50 34 12 r4 = 0x12345000 + 586: 83 44 78 06 i32 r4 = r4 + 0x678 + 590: ab 4b 0f 03 jump 1373 if r11 != r4 + : @22 + 594: 33 05 2d r5 = 0x2d + 597: 33 08 00 20 f1 r8 = 0xfffffffffff12000 + 602: 83 88 45 03 i32 r8 = r8 + 0x345 + 606: 97 88 0c r8 = r8 << 0xc + 609: 95 88 78 06 r8 = r8 + 0x678 + 613: 33 09 04 r9 = 0x4 + 616: c6 98 0b i32 r11 = r8 >> r9 + 619: 33 04 00 40 23 01 r4 = 0x1234000 + 625: 83 44 67 05 i32 r4 = r4 + 0x567 + 629: ab 4b e8 02 jump 1373 if r11 != r4 + : @23 + 633: 33 05 2e r5 = 0x2e + 636: 33 08 00 20 09 r8 = 0x92000 + 641: 83 88 45 03 i32 r8 = r8 + 0x345 + 645: 97 88 0c r8 = r8 << 0xc + 648: 95 88 78 06 r8 = r8 + 0x678 + 652: 33 09 r9 = 0 + 654: c6 98 0b i32 r11 = r8 >> r9 + 657: 33 04 00 50 34 92 r4 = 0xffffffff92345000 + 663: 83 44 78 06 i32 r4 = r4 + 0x678 + 667: ab 4b c2 02 jump 1373 if r11 != r4 + : @24 + 671: 33 05 2f r5 = 0x2f + 674: 33 08 00 20 09 r8 = 0x92000 + 679: 83 88 45 03 i32 r8 = r8 + 0x345 + 683: 97 88 0c r8 = r8 << 0xc + 686: 95 88 78 06 r8 = r8 + 0x678 + 690: 33 09 04 r9 = 0x4 + 693: c6 98 0b i32 r11 = r8 >> r9 + 696: 33 04 00 40 23 09 r4 = 0x9234000 + 702: 83 44 67 05 i32 r4 = r4 + 0x567 + 706: ab 4b 9b 02 jump 1373 if r11 != r4 + : @25 + 710: 33 05 16 r5 = 0x16 + 713: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 719: 33 09 07 r9 = 0x7 + 722: c6 98 08 i32 r8 = r8 >> r9 + 725: 33 04 00 00 00 01 r4 = 0x1000000 + 731: ab 48 82 02 jump 1373 if r8 != r4 + : @26 + 735: 33 05 17 r5 = 0x17 + 738: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 744: 33 09 0e r9 = 0xe + 747: c6 98 09 i32 r9 = r8 >> r9 + 750: 33 04 00 00 02 r4 = 0x20000 + 755: ab 49 6a 02 jump 1373 if r9 != r4 + : @27 + 759: 33 05 18 r5 = 0x18 + 762: 33 08 07 r8 = 0x7 + 765: c6 88 08 i32 r8 = r8 >> r8 + 768: 33 04 r4 = 0 + 770: ab 48 5b 02 jump 1373 if r8 != r4 + : @28 + 774: 33 05 19 r5 = 0x19 + 777: 33 0a r10 = 0 + 779: 01 fallthrough + : @29 + 780: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 786: 33 01 07 r1 = 0x7 + 789: c6 10 0b i32 r11 = r0 >> r1 + 792: 64 b3 r3 = r11 + 794: 95 aa 01 r10 = r10 + 0x1 + 797: 33 02 02 r2 = 0x2 + 800: ab 2a ec jump 780 if r10 != r2 + : @30 + 803: 33 04 00 00 00 01 r4 = 0x1000000 + 809: ab 43 34 02 jump 1373 if r3 != r4 + : @31 + 813: 33 05 1a r5 = 0x1a + 816: 33 0a r10 = 0 + 818: 01 fallthrough + : @32 + 819: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 825: 33 01 0e r1 = 0xe + 828: c6 10 0b i32 r11 = r0 >> r1 + 831: 64 b3 r3 = r11 + 833: 95 aa 01 r10 = r10 + 0x1 + 836: 33 02 02 r2 = 0x2 + 839: ab 2a ec jump 819 if r10 != r2 + : @33 + 842: 33 04 00 00 02 r4 = 0x20000 + 847: ab 43 0e 02 jump 1373 if r3 != r4 + : @34 + 851: 33 05 1b r5 = 0x1b + 854: 33 0a r10 = 0 + 856: 01 fallthrough + : @35 + 857: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 863: 33 01 1f r1 = 0x1f + 866: c6 10 0b i32 r11 = r0 >> r1 + 869: 64 b3 r3 = r11 + 871: 95 aa 01 r10 = r10 + 0x1 + 874: 33 02 02 r2 = 0x2 + 877: ab 2a ec jump 857 if r10 != r2 + : @36 + 880: 33 04 01 r4 = 0x1 + 883: ab 43 ea 01 jump 1373 if r3 != r4 + : @37 + 887: 33 05 1c r5 = 0x1c + 890: 33 0a r10 = 0 + 892: 01 fallthrough + : @38 + 893: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 899: 33 01 07 r1 = 0x7 + 902: c6 10 0b i32 r11 = r0 >> r1 + 905: 95 aa 01 r10 = r10 + 0x1 + 908: 33 02 02 r2 = 0x2 + 911: ab 2a ee jump 893 if r10 != r2 + : @39 + 914: 33 04 00 00 00 01 r4 = 0x1000000 + 920: ab 4b c5 01 jump 1373 if r11 != r4 + : @40 + 924: 33 05 1d r5 = 0x1d + 927: 33 0a r10 = 0 + 929: 01 fallthrough + : @41 + 930: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 936: 33 01 0e r1 = 0xe + 939: c6 10 0b i32 r11 = r0 >> r1 + 942: 95 aa 01 r10 = r10 + 0x1 + 945: 33 02 02 r2 = 0x2 + 948: ab 2a ee jump 930 if r10 != r2 + : @42 + 951: 33 04 00 00 02 r4 = 0x20000 + 956: ab 4b a1 01 jump 1373 if r11 != r4 + : @43 + 960: 33 05 1e r5 = 0x1e + 963: 33 0a r10 = 0 + 965: 01 fallthrough + : @44 + 966: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 972: 33 01 1f r1 = 0x1f + 975: c6 10 0b i32 r11 = r0 >> r1 + 978: 95 aa 01 r10 = r10 + 0x1 + 981: 33 02 02 r2 = 0x2 + 984: ab 2a ee jump 966 if r10 != r2 + : @45 + 987: 33 04 01 r4 = 0x1 + 990: ab 4b 7f 01 jump 1373 if r11 != r4 + : @46 + 994: 33 05 1f r5 = 0x1f + 997: 33 0a r10 = 0 + 999: 01 fallthrough + : @47 + 1000: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 1006: 33 01 07 r1 = 0x7 + 1009: c6 10 0b i32 r11 = r0 >> r1 + 1012: 95 aa 01 r10 = r10 + 0x1 + 1015: 33 02 02 r2 = 0x2 + 1018: ab 2a ee jump 1000 if r10 != r2 + : @48 + 1021: 33 04 00 00 00 01 r4 = 0x1000000 + 1027: ab 4b 5a 01 jump 1373 if r11 != r4 + : @49 + 1031: 33 05 20 r5 = 0x20 + 1034: 33 0a r10 = 0 + 1036: 01 fallthrough + : @50 + 1037: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 1043: 33 01 0e r1 = 0xe + 1046: c6 10 0b i32 r11 = r0 >> r1 + 1049: 95 aa 01 r10 = r10 + 0x1 + 1052: 33 02 02 r2 = 0x2 + 1055: ab 2a ee jump 1037 if r10 != r2 + : @51 + 1058: 33 04 00 00 02 r4 = 0x20000 + 1063: ab 4b 36 01 jump 1373 if r11 != r4 + : @52 + 1067: 33 05 21 r5 = 0x21 + 1070: 33 0a r10 = 0 + 1072: 01 fallthrough + : @53 + 1073: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 1079: 33 01 1f r1 = 0x1f + 1082: c6 10 0b i32 r11 = r0 >> r1 + 1085: 95 aa 01 r10 = r10 + 0x1 + 1088: 33 02 02 r2 = 0x2 + 1091: ab 2a ee jump 1073 if r10 != r2 + : @54 + 1094: 33 04 01 r4 = 0x1 + 1097: ab 4b 14 01 jump 1373 if r11 != r4 + : @55 + 1101: 33 05 22 r5 = 0x22 + 1104: 33 0a r10 = 0 + 1106: 01 fallthrough + : @56 + 1107: 33 01 07 r1 = 0x7 + 1110: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 1116: c6 10 0b i32 r11 = r0 >> r1 + 1119: 95 aa 01 r10 = r10 + 0x1 + 1122: 33 02 02 r2 = 0x2 + 1125: ab 2a ee jump 1107 if r10 != r2 + : @57 + 1128: 33 04 00 00 00 01 r4 = 0x1000000 + 1134: ab 4b ef 00 jump 1373 if r11 != r4 + : @58 + 1138: 33 05 23 r5 = 0x23 + 1141: 33 0a r10 = 0 + 1143: 01 fallthrough + : @59 + 1144: 33 01 0e r1 = 0xe + 1147: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 1153: c6 10 0b i32 r11 = r0 >> r1 + 1156: 95 aa 01 r10 = r10 + 0x1 + 1159: 33 02 02 r2 = 0x2 + 1162: ab 2a ee jump 1144 if r10 != r2 + : @60 + 1165: 33 04 00 00 02 r4 = 0x20000 + 1170: ab 4b cb 00 jump 1373 if r11 != r4 + : @61 + 1174: 33 05 24 r5 = 0x24 + 1177: 33 0a r10 = 0 + 1179: 01 fallthrough + : @62 + 1180: 33 01 1f r1 = 0x1f + 1183: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 1189: c6 10 0b i32 r11 = r0 >> r1 + 1192: 95 aa 01 r10 = r10 + 0x1 + 1195: 33 02 02 r2 = 0x2 + 1198: ab 2a ee jump 1180 if r10 != r2 + : @63 + 1201: 33 04 01 r4 = 0x1 + 1204: ab 4b a9 00 jump 1373 if r11 != r4 + : @64 + 1208: 33 05 25 r5 = 0x25 + 1211: 33 0a r10 = 0 + 1213: 01 fallthrough + : @65 + 1214: 33 01 07 r1 = 0x7 + 1217: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 1223: c6 10 0b i32 r11 = r0 >> r1 + 1226: 95 aa 01 r10 = r10 + 0x1 + 1229: 33 02 02 r2 = 0x2 + 1232: ab 2a ee jump 1214 if r10 != r2 + : @66 + 1235: 33 04 00 00 00 01 r4 = 0x1000000 + 1241: ab 4b 84 00 jump 1373 if r11 != r4 + : @67 + 1245: 33 05 26 r5 = 0x26 + 1248: 33 0a r10 = 0 + 1250: 01 fallthrough + : @68 + 1251: 33 01 0e r1 = 0xe + 1254: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 1260: c6 10 0b i32 r11 = r0 >> r1 + 1263: 95 aa 01 r10 = r10 + 0x1 + 1266: 33 02 02 r2 = 0x2 + 1269: ab 2a ee jump 1251 if r10 != r2 + : @69 + 1272: 33 04 00 00 02 r4 = 0x20000 + 1277: ab 4b 60 jump 1373 if r11 != r4 + : @70 + 1280: 33 05 27 r5 = 0x27 + 1283: 33 0a r10 = 0 + 1285: 01 fallthrough + : @71 + 1286: 33 01 1f r1 = 0x1f + 1289: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 1295: c6 10 0b i32 r11 = r0 >> r1 + 1298: 95 aa 01 r10 = r10 + 0x1 + 1301: 33 02 02 r2 = 0x2 + 1304: ab 2a ee jump 1286 if r10 != r2 + : @72 + 1307: 33 04 01 r4 = 0x1 + 1310: ab 4b 3f jump 1373 if r11 != r4 + : @73 + 1313: 33 05 28 r5 = 0x28 + 1316: 33 00 0f r0 = 0xf + 1319: 91 01 i32 r1 = 0 >> r0 + 1321: 33 04 r4 = 0 + 1323: ab 41 32 jump 1373 if r1 != r4 + : @74 + 1326: 33 05 29 r5 = 0x29 + 1329: 33 00 20 r0 = 0x20 + 1332: 8b 01 i32 r1 = r0 >> 0 + 1334: 33 04 20 r4 = 0x20 + 1337: ab 41 24 jump 1373 if r1 != r4 + : @75 + 1340: 33 05 2a r5 = 0x2a + 1343: 33 00 r0 = 0 + 1345: 33 04 r4 = 0 + 1347: ab 40 1a jump 1373 if r0 != r4 + : @76 + 1350: 33 05 2b r5 = 0x2b + 1353: 33 00 00 04 r0 = 0x400 + 1357: 33 01 00 10 r1 = 0x1000 + 1361: 83 11 00 f8 i32 r1 = r1 + 0xfffffffffffff800 + 1365: 33 04 r4 = 0 + 1367: 52 04 06 jump 1373 if r4 != 0 + : @77 + 1370: 52 05 04 jump 1374 if r5 != 0 + : @78 + 1373: 00 trap + : @79 + 1374: 28 a2 fa jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r1 = 0x800 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0x1 (initially was 0x0) + * r5 = 0x2b (initially was 0x0) + * r9 = 0x20000 (initially was 0x0) + * r10 = 0x2 (initially was 0x0) + * r11 = 0x1 (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9514 + + +## riscv_rv64ui_sub + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 08 r8 = 0 + 18: 33 09 r9 = 0 + 20: c9 98 0b r11 = r8 - r9 + 23: 33 04 r4 = 0 + 25: ab 4b 8c 03 jump 933 if r11 != r4 + : @2 + 29: 33 05 03 r5 = 0x3 + 32: 33 08 01 r8 = 0x1 + 35: 33 09 01 r9 = 0x1 + 38: c9 98 0b r11 = r8 - r9 + 41: 33 04 r4 = 0 + 43: ab 4b 7a 03 jump 933 if r11 != r4 + : @3 + 47: 33 05 04 r5 = 0x4 + 50: 33 08 03 r8 = 0x3 + 53: 33 09 07 r9 = 0x7 + 56: c9 98 0b r11 = r8 - r9 + 59: 33 04 fc r4 = 0xfffffffffffffffc + 62: ab 4b 67 03 jump 933 if r11 != r4 + : @4 + 66: 33 05 05 r5 = 0x5 + 69: 33 08 r8 = 0 + 71: 33 09 00 80 r9 = 0xffffffffffff8000 + 75: c9 98 0b r11 = r8 - r9 + 78: 33 04 00 80 00 r4 = 0x8000 + 83: ab 4b 52 03 jump 933 if r11 != r4 + : @5 + 87: 33 05 06 r5 = 0x6 + 90: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 96: 33 09 r9 = 0 + 98: c9 98 0b r11 = r8 - r9 + 101: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 107: ab 4b 3a 03 jump 933 if r11 != r4 + : @6 + 111: 33 05 07 r5 = 0x7 + 114: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 120: 33 09 00 80 r9 = 0xffffffffffff8000 + 124: c9 98 0b r11 = r8 - r9 + 127: 33 04 00 80 00 80 r4 = 0xffffffff80008000 + 133: ab 4b 20 03 jump 933 if r11 != r4 + : @7 + 137: 33 05 08 r5 = 0x8 + 140: 33 08 r8 = 0 + 142: 33 09 00 80 00 r9 = 0x8000 + 147: 83 99 ff i32 r9 = r9 + 0xffffffffffffffff + 150: c9 98 0b r11 = r8 - r9 + 153: 33 04 00 80 r4 = 0xffffffffffff8000 + 157: 83 44 01 i32 r4 = r4 + 0x1 + 160: ab 4b 05 03 jump 933 if r11 != r4 + : @8 + 164: 33 05 09 r5 = 0x9 + 167: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 173: 83 88 ff i32 r8 = r8 + 0xffffffffffffffff + 176: 33 09 r9 = 0 + 178: c9 98 0b r11 = r8 - r9 + 181: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 187: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 190: ab 4b e7 02 jump 933 if r11 != r4 + : @9 + 194: 33 05 0a r5 = 0xa + 197: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 203: 83 88 ff i32 r8 = r8 + 0xffffffffffffffff + 206: 33 09 00 80 00 r9 = 0x8000 + 211: 83 99 ff i32 r9 = r9 + 0xffffffffffffffff + 214: c9 98 0b r11 = r8 - r9 + 217: 33 04 00 80 ff 7f r4 = 0x7fff8000 + 223: ab 4b c6 02 jump 933 if r11 != r4 + : @10 + 227: 33 05 0b r5 = 0xb + 230: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 236: 33 09 00 80 00 r9 = 0x8000 + 241: 83 99 ff i32 r9 = r9 + 0xffffffffffffffff + 244: c9 98 0b r11 = r8 - r9 + 247: 33 04 00 00 ff r4 = 0xffffffffffff0000 + 252: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 255: 97 44 0f r4 = r4 << 0xf + 258: 95 44 01 r4 = r4 + 0x1 + 261: ab 4b a0 02 jump 933 if r11 != r4 + : @11 + 265: 33 05 0c r5 = 0xc + 268: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 274: 83 88 ff i32 r8 = r8 + 0xffffffffffffffff + 277: 33 09 00 80 r9 = 0xffffffffffff8000 + 281: c9 98 0b r11 = r8 - r9 + 284: 33 04 00 00 01 r4 = 0x10000 + 289: 83 44 01 i32 r4 = r4 + 0x1 + 292: 97 44 0f r4 = r4 << 0xf + 295: 95 44 ff r4 = r4 + 0xffffffffffffffff + 298: ab 4b 7b 02 jump 933 if r11 != r4 + : @12 + 302: 33 05 0d r5 = 0xd + 305: 33 08 r8 = 0 + 307: 33 09 ff r9 = 0xffffffffffffffff + 310: c9 98 0b r11 = r8 - r9 + 313: 33 04 01 r4 = 0x1 + 316: ab 4b 69 02 jump 933 if r11 != r4 + : @13 + 320: 33 05 0e r5 = 0xe + 323: 33 08 ff r8 = 0xffffffffffffffff + 326: 33 09 01 r9 = 0x1 + 329: c9 98 0b r11 = r8 - r9 + 332: 33 04 fe r4 = 0xfffffffffffffffe + 335: ab 4b 56 02 jump 933 if r11 != r4 + : @14 + 339: 33 05 0f r5 = 0xf + 342: 33 08 ff r8 = 0xffffffffffffffff + 345: 33 09 ff r9 = 0xffffffffffffffff + 348: c9 98 0b r11 = r8 - r9 + 351: 33 04 r4 = 0 + 353: ab 4b 44 02 jump 933 if r11 != r4 + : @15 + 357: 33 05 10 r5 = 0x10 + 360: 33 08 0d r8 = 0xd + 363: 33 09 0b r9 = 0xb + 366: c9 98 08 r8 = r8 - r9 + 369: 33 04 02 r4 = 0x2 + 372: ab 48 31 02 jump 933 if r8 != r4 + : @16 + 376: 33 05 11 r5 = 0x11 + 379: 33 08 0e r8 = 0xe + 382: 33 09 0b r9 = 0xb + 385: c9 98 09 r9 = r8 - r9 + 388: 33 04 03 r4 = 0x3 + 391: ab 49 1e 02 jump 933 if r9 != r4 + : @17 + 395: 33 05 12 r5 = 0x12 + 398: 33 08 0d r8 = 0xd + 401: c9 88 08 r8 = r8 - r8 + 404: 33 04 r4 = 0 + 406: ab 48 0f 02 jump 933 if r8 != r4 + : @18 + 410: 33 05 13 r5 = 0x13 + 413: 33 0a r10 = 0 + 415: 01 fallthrough + : @19 + 416: 33 00 0d r0 = 0xd + 419: 33 01 0b r1 = 0xb + 422: c9 10 0b r11 = r0 - r1 + 425: 64 b3 r3 = r11 + 427: 95 aa 01 r10 = r10 + 0x1 + 430: 33 02 02 r2 = 0x2 + 433: ab 2a ef jump 416 if r10 != r2 + : @20 + 436: 33 04 02 r4 = 0x2 + 439: ab 43 ee 01 jump 933 if r3 != r4 + : @21 + 443: 33 05 14 r5 = 0x14 + 446: 33 0a r10 = 0 + 448: 01 fallthrough + : @22 + 449: 33 00 0e r0 = 0xe + 452: 33 01 0b r1 = 0xb + 455: c9 10 0b r11 = r0 - r1 + 458: 64 b3 r3 = r11 + 460: 95 aa 01 r10 = r10 + 0x1 + 463: 33 02 02 r2 = 0x2 + 466: ab 2a ef jump 449 if r10 != r2 + : @23 + 469: 33 04 03 r4 = 0x3 + 472: ab 43 cd 01 jump 933 if r3 != r4 + : @24 + 476: 33 05 15 r5 = 0x15 + 479: 33 0a r10 = 0 + 481: 01 fallthrough + : @25 + 482: 33 00 0f r0 = 0xf + 485: 33 01 0b r1 = 0xb + 488: c9 10 0b r11 = r0 - r1 + 491: 64 b3 r3 = r11 + 493: 95 aa 01 r10 = r10 + 0x1 + 496: 33 02 02 r2 = 0x2 + 499: ab 2a ef jump 482 if r10 != r2 + : @26 + 502: 33 04 04 r4 = 0x4 + 505: ab 43 ac 01 jump 933 if r3 != r4 + : @27 + 509: 33 05 16 r5 = 0x16 + 512: 33 0a r10 = 0 + 514: 01 fallthrough + : @28 + 515: 33 00 0d r0 = 0xd + 518: 33 01 0b r1 = 0xb + 521: c9 10 0b r11 = r0 - r1 + 524: 95 aa 01 r10 = r10 + 0x1 + 527: 33 02 02 r2 = 0x2 + 530: ab 2a f1 jump 515 if r10 != r2 + : @29 + 533: 33 04 02 r4 = 0x2 + 536: ab 4b 8d 01 jump 933 if r11 != r4 + : @30 + 540: 33 05 17 r5 = 0x17 + 543: 33 0a r10 = 0 + 545: 01 fallthrough + : @31 + 546: 33 00 0e r0 = 0xe + 549: 33 01 0b r1 = 0xb + 552: c9 10 0b r11 = r0 - r1 + 555: 95 aa 01 r10 = r10 + 0x1 + 558: 33 02 02 r2 = 0x2 + 561: ab 2a f1 jump 546 if r10 != r2 + : @32 + 564: 33 04 03 r4 = 0x3 + 567: ab 4b 6e 01 jump 933 if r11 != r4 + : @33 + 571: 33 05 18 r5 = 0x18 + 574: 33 0a r10 = 0 + 576: 01 fallthrough + : @34 + 577: 33 00 0f r0 = 0xf + 580: 33 01 0b r1 = 0xb + 583: c9 10 0b r11 = r0 - r1 + 586: 95 aa 01 r10 = r10 + 0x1 + 589: 33 02 02 r2 = 0x2 + 592: ab 2a f1 jump 577 if r10 != r2 + : @35 + 595: 33 04 04 r4 = 0x4 + 598: ab 4b 4f 01 jump 933 if r11 != r4 + : @36 + 602: 33 05 19 r5 = 0x19 + 605: 33 0a r10 = 0 + 607: 01 fallthrough + : @37 + 608: 33 00 0d r0 = 0xd + 611: 33 01 0b r1 = 0xb + 614: c9 10 0b r11 = r0 - r1 + 617: 95 aa 01 r10 = r10 + 0x1 + 620: 33 02 02 r2 = 0x2 + 623: ab 2a f1 jump 608 if r10 != r2 + : @38 + 626: 33 04 02 r4 = 0x2 + 629: ab 4b 30 01 jump 933 if r11 != r4 + : @39 + 633: 33 05 1a r5 = 0x1a + 636: 33 0a r10 = 0 + 638: 01 fallthrough + : @40 + 639: 33 00 0e r0 = 0xe + 642: 33 01 0b r1 = 0xb + 645: c9 10 0b r11 = r0 - r1 + 648: 95 aa 01 r10 = r10 + 0x1 + 651: 33 02 02 r2 = 0x2 + 654: ab 2a f1 jump 639 if r10 != r2 + : @41 + 657: 33 04 03 r4 = 0x3 + 660: ab 4b 11 01 jump 933 if r11 != r4 + : @42 + 664: 33 05 1b r5 = 0x1b + 667: 33 0a r10 = 0 + 669: 01 fallthrough + : @43 + 670: 33 00 0f r0 = 0xf + 673: 33 01 0b r1 = 0xb + 676: c9 10 0b r11 = r0 - r1 + 679: 95 aa 01 r10 = r10 + 0x1 + 682: 33 02 02 r2 = 0x2 + 685: ab 2a f1 jump 670 if r10 != r2 + : @44 + 688: 33 04 04 r4 = 0x4 + 691: ab 4b f2 00 jump 933 if r11 != r4 + : @45 + 695: 33 05 1c r5 = 0x1c + 698: 33 0a r10 = 0 + 700: 01 fallthrough + : @46 + 701: 33 01 0b r1 = 0xb + 704: 33 00 0d r0 = 0xd + 707: c9 10 0b r11 = r0 - r1 + 710: 95 aa 01 r10 = r10 + 0x1 + 713: 33 02 02 r2 = 0x2 + 716: ab 2a f1 jump 701 if r10 != r2 + : @47 + 719: 33 04 02 r4 = 0x2 + 722: ab 4b d3 00 jump 933 if r11 != r4 + : @48 + 726: 33 05 1d r5 = 0x1d + 729: 33 0a r10 = 0 + 731: 01 fallthrough + : @49 + 732: 33 01 0b r1 = 0xb + 735: 33 00 0e r0 = 0xe + 738: c9 10 0b r11 = r0 - r1 + 741: 95 aa 01 r10 = r10 + 0x1 + 744: 33 02 02 r2 = 0x2 + 747: ab 2a f1 jump 732 if r10 != r2 + : @50 + 750: 33 04 03 r4 = 0x3 + 753: ab 4b b4 00 jump 933 if r11 != r4 + : @51 + 757: 33 05 1e r5 = 0x1e + 760: 33 0a r10 = 0 + 762: 01 fallthrough + : @52 + 763: 33 01 0b r1 = 0xb + 766: 33 00 0f r0 = 0xf + 769: c9 10 0b r11 = r0 - r1 + 772: 95 aa 01 r10 = r10 + 0x1 + 775: 33 02 02 r2 = 0x2 + 778: ab 2a f1 jump 763 if r10 != r2 + : @53 + 781: 33 04 04 r4 = 0x4 + 784: ab 4b 95 00 jump 933 if r11 != r4 + : @54 + 788: 33 05 1f r5 = 0x1f + 791: 33 0a r10 = 0 + 793: 01 fallthrough + : @55 + 794: 33 01 0b r1 = 0xb + 797: 33 00 0d r0 = 0xd + 800: c9 10 0b r11 = r0 - r1 + 803: 95 aa 01 r10 = r10 + 0x1 + 806: 33 02 02 r2 = 0x2 + 809: ab 2a f1 jump 794 if r10 != r2 + : @56 + 812: 33 04 02 r4 = 0x2 + 815: ab 4b 76 jump 933 if r11 != r4 + : @57 + 818: 33 05 20 r5 = 0x20 + 821: 33 0a r10 = 0 + 823: 01 fallthrough + : @58 + 824: 33 01 0b r1 = 0xb + 827: 33 00 0e r0 = 0xe + 830: c9 10 0b r11 = r0 - r1 + 833: 95 aa 01 r10 = r10 + 0x1 + 836: 33 02 02 r2 = 0x2 + 839: ab 2a f1 jump 824 if r10 != r2 + : @59 + 842: 33 04 03 r4 = 0x3 + 845: ab 4b 58 jump 933 if r11 != r4 + : @60 + 848: 33 05 21 r5 = 0x21 + 851: 33 0a r10 = 0 + 853: 01 fallthrough + : @61 + 854: 33 01 0b r1 = 0xb + 857: 33 00 0f r0 = 0xf + 860: c9 10 0b r11 = r0 - r1 + 863: 95 aa 01 r10 = r10 + 0x1 + 866: 33 02 02 r2 = 0x2 + 869: ab 2a f1 jump 854 if r10 != r2 + : @62 + 872: 33 04 04 r4 = 0x4 + 875: ab 4b 3a jump 933 if r11 != r4 + : @63 + 878: 33 05 22 r5 = 0x22 + 881: 33 00 f1 r0 = 0xfffffffffffffff1 + 884: 9a 01 r1 = 0 - r0 + 886: 33 04 0f r4 = 0xf + 889: ab 41 2c jump 933 if r1 != r4 + : @64 + 892: 33 05 23 r5 = 0x23 + 895: 33 00 20 r0 = 0x20 + 898: 95 01 r1 = r0 + 0 + 900: 33 04 20 r4 = 0x20 + 903: ab 41 1e jump 933 if r1 != r4 + : @65 + 906: 33 05 24 r5 = 0x24 + 909: 33 00 r0 = 0 + 911: 33 04 r4 = 0 + 913: ab 40 14 jump 933 if r0 != r4 + : @66 + 916: 33 05 25 r5 = 0x25 + 919: 33 00 10 r0 = 0x10 + 922: 33 01 1e r1 = 0x1e + 925: 33 04 r4 = 0 + 927: 52 04 06 jump 933 if r4 != 0 + : @67 + 930: 52 05 04 jump 934 if r5 != 0 + : @68 + 933: 00 trap + : @69 + 934: 28 5a fc jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r1 = 0x1e (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0x4 (initially was 0x0) + * r5 = 0x25 (initially was 0x0) + * r9 = 0x3 (initially was 0x0) + * r10 = 0x2 (initially was 0x0) + * r11 = 0x4 (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9599 + + +## riscv_rv64ui_subw + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 08 r8 = 0 + 18: 33 09 r9 = 0 + 20: bf 98 0b i32 r11 = r8 - r9 + 23: 33 04 r4 = 0 + 25: ab 4b 82 03 jump 923 if r11 != r4 + : @2 + 29: 33 05 03 r5 = 0x3 + 32: 33 08 01 r8 = 0x1 + 35: 33 09 01 r9 = 0x1 + 38: bf 98 0b i32 r11 = r8 - r9 + 41: 33 04 r4 = 0 + 43: ab 4b 70 03 jump 923 if r11 != r4 + : @3 + 47: 33 05 04 r5 = 0x4 + 50: 33 08 03 r8 = 0x3 + 53: 33 09 07 r9 = 0x7 + 56: bf 98 0b i32 r11 = r8 - r9 + 59: 33 04 fc r4 = 0xfffffffffffffffc + 62: ab 4b 5d 03 jump 923 if r11 != r4 + : @4 + 66: 33 05 05 r5 = 0x5 + 69: 33 08 r8 = 0 + 71: 33 09 00 80 r9 = 0xffffffffffff8000 + 75: bf 98 0b i32 r11 = r8 - r9 + 78: 33 04 00 80 00 r4 = 0x8000 + 83: ab 4b 48 03 jump 923 if r11 != r4 + : @5 + 87: 33 05 06 r5 = 0x6 + 90: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 96: 33 09 r9 = 0 + 98: bf 98 0b i32 r11 = r8 - r9 + 101: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 107: ab 4b 30 03 jump 923 if r11 != r4 + : @6 + 111: 33 05 07 r5 = 0x7 + 114: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 120: 33 09 00 80 r9 = 0xffffffffffff8000 + 124: bf 98 0b i32 r11 = r8 - r9 + 127: 33 04 00 80 00 80 r4 = 0xffffffff80008000 + 133: ab 4b 16 03 jump 923 if r11 != r4 + : @7 + 137: 33 05 08 r5 = 0x8 + 140: 33 08 r8 = 0 + 142: 33 09 00 80 00 r9 = 0x8000 + 147: 83 99 ff i32 r9 = r9 + 0xffffffffffffffff + 150: bf 98 0b i32 r11 = r8 - r9 + 153: 33 04 00 80 r4 = 0xffffffffffff8000 + 157: 83 44 01 i32 r4 = r4 + 0x1 + 160: ab 4b fb 02 jump 923 if r11 != r4 + : @8 + 164: 33 05 09 r5 = 0x9 + 167: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 173: 83 88 ff i32 r8 = r8 + 0xffffffffffffffff + 176: 33 09 r9 = 0 + 178: bf 98 0b i32 r11 = r8 - r9 + 181: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 187: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 190: ab 4b dd 02 jump 923 if r11 != r4 + : @9 + 194: 33 05 0a r5 = 0xa + 197: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 203: 83 88 ff i32 r8 = r8 + 0xffffffffffffffff + 206: 33 09 00 80 00 r9 = 0x8000 + 211: 83 99 ff i32 r9 = r9 + 0xffffffffffffffff + 214: bf 98 0b i32 r11 = r8 - r9 + 217: 33 04 00 80 ff 7f r4 = 0x7fff8000 + 223: ab 4b bc 02 jump 923 if r11 != r4 + : @10 + 227: 33 05 0b r5 = 0xb + 230: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 236: 33 09 00 80 00 r9 = 0x8000 + 241: 83 99 ff i32 r9 = r9 + 0xffffffffffffffff + 244: bf 98 0b i32 r11 = r8 - r9 + 247: 33 04 00 80 ff 7f r4 = 0x7fff8000 + 253: 83 44 01 i32 r4 = r4 + 0x1 + 256: ab 4b 9b 02 jump 923 if r11 != r4 + : @11 + 260: 33 05 0c r5 = 0xc + 263: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 269: 83 88 ff i32 r8 = r8 + 0xffffffffffffffff + 272: 33 09 00 80 r9 = 0xffffffffffff8000 + 276: bf 98 0b i32 r11 = r8 - r9 + 279: 33 04 00 80 00 80 r4 = 0xffffffff80008000 + 285: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 288: ab 4b 7b 02 jump 923 if r11 != r4 + : @12 + 292: 33 05 0d r5 = 0xd + 295: 33 08 r8 = 0 + 297: 33 09 ff r9 = 0xffffffffffffffff + 300: bf 98 0b i32 r11 = r8 - r9 + 303: 33 04 01 r4 = 0x1 + 306: ab 4b 69 02 jump 923 if r11 != r4 + : @13 + 310: 33 05 0e r5 = 0xe + 313: 33 08 ff r8 = 0xffffffffffffffff + 316: 33 09 01 r9 = 0x1 + 319: bf 98 0b i32 r11 = r8 - r9 + 322: 33 04 fe r4 = 0xfffffffffffffffe + 325: ab 4b 56 02 jump 923 if r11 != r4 + : @14 + 329: 33 05 0f r5 = 0xf + 332: 33 08 ff r8 = 0xffffffffffffffff + 335: 33 09 ff r9 = 0xffffffffffffffff + 338: bf 98 0b i32 r11 = r8 - r9 + 341: 33 04 r4 = 0 + 343: ab 4b 44 02 jump 923 if r11 != r4 + : @15 + 347: 33 05 10 r5 = 0x10 + 350: 33 08 0d r8 = 0xd + 353: 33 09 0b r9 = 0xb + 356: bf 98 08 i32 r8 = r8 - r9 + 359: 33 04 02 r4 = 0x2 + 362: ab 48 31 02 jump 923 if r8 != r4 + : @16 + 366: 33 05 11 r5 = 0x11 + 369: 33 08 0e r8 = 0xe + 372: 33 09 0b r9 = 0xb + 375: bf 98 09 i32 r9 = r8 - r9 + 378: 33 04 03 r4 = 0x3 + 381: ab 49 1e 02 jump 923 if r9 != r4 + : @17 + 385: 33 05 12 r5 = 0x12 + 388: 33 08 0d r8 = 0xd + 391: bf 88 08 i32 r8 = r8 - r8 + 394: 33 04 r4 = 0 + 396: ab 48 0f 02 jump 923 if r8 != r4 + : @18 + 400: 33 05 13 r5 = 0x13 + 403: 33 0a r10 = 0 + 405: 01 fallthrough + : @19 + 406: 33 00 0d r0 = 0xd + 409: 33 01 0b r1 = 0xb + 412: bf 10 0b i32 r11 = r0 - r1 + 415: 64 b3 r3 = r11 + 417: 95 aa 01 r10 = r10 + 0x1 + 420: 33 02 02 r2 = 0x2 + 423: ab 2a ef jump 406 if r10 != r2 + : @20 + 426: 33 04 02 r4 = 0x2 + 429: ab 43 ee 01 jump 923 if r3 != r4 + : @21 + 433: 33 05 14 r5 = 0x14 + 436: 33 0a r10 = 0 + 438: 01 fallthrough + : @22 + 439: 33 00 0e r0 = 0xe + 442: 33 01 0b r1 = 0xb + 445: bf 10 0b i32 r11 = r0 - r1 + 448: 64 b3 r3 = r11 + 450: 95 aa 01 r10 = r10 + 0x1 + 453: 33 02 02 r2 = 0x2 + 456: ab 2a ef jump 439 if r10 != r2 + : @23 + 459: 33 04 03 r4 = 0x3 + 462: ab 43 cd 01 jump 923 if r3 != r4 + : @24 + 466: 33 05 15 r5 = 0x15 + 469: 33 0a r10 = 0 + 471: 01 fallthrough + : @25 + 472: 33 00 0f r0 = 0xf + 475: 33 01 0b r1 = 0xb + 478: bf 10 0b i32 r11 = r0 - r1 + 481: 64 b3 r3 = r11 + 483: 95 aa 01 r10 = r10 + 0x1 + 486: 33 02 02 r2 = 0x2 + 489: ab 2a ef jump 472 if r10 != r2 + : @26 + 492: 33 04 04 r4 = 0x4 + 495: ab 43 ac 01 jump 923 if r3 != r4 + : @27 + 499: 33 05 16 r5 = 0x16 + 502: 33 0a r10 = 0 + 504: 01 fallthrough + : @28 + 505: 33 00 0d r0 = 0xd + 508: 33 01 0b r1 = 0xb + 511: bf 10 0b i32 r11 = r0 - r1 + 514: 95 aa 01 r10 = r10 + 0x1 + 517: 33 02 02 r2 = 0x2 + 520: ab 2a f1 jump 505 if r10 != r2 + : @29 + 523: 33 04 02 r4 = 0x2 + 526: ab 4b 8d 01 jump 923 if r11 != r4 + : @30 + 530: 33 05 17 r5 = 0x17 + 533: 33 0a r10 = 0 + 535: 01 fallthrough + : @31 + 536: 33 00 0e r0 = 0xe + 539: 33 01 0b r1 = 0xb + 542: bf 10 0b i32 r11 = r0 - r1 + 545: 95 aa 01 r10 = r10 + 0x1 + 548: 33 02 02 r2 = 0x2 + 551: ab 2a f1 jump 536 if r10 != r2 + : @32 + 554: 33 04 03 r4 = 0x3 + 557: ab 4b 6e 01 jump 923 if r11 != r4 + : @33 + 561: 33 05 18 r5 = 0x18 + 564: 33 0a r10 = 0 + 566: 01 fallthrough + : @34 + 567: 33 00 0f r0 = 0xf + 570: 33 01 0b r1 = 0xb + 573: bf 10 0b i32 r11 = r0 - r1 + 576: 95 aa 01 r10 = r10 + 0x1 + 579: 33 02 02 r2 = 0x2 + 582: ab 2a f1 jump 567 if r10 != r2 + : @35 + 585: 33 04 04 r4 = 0x4 + 588: ab 4b 4f 01 jump 923 if r11 != r4 + : @36 + 592: 33 05 19 r5 = 0x19 + 595: 33 0a r10 = 0 + 597: 01 fallthrough + : @37 + 598: 33 00 0d r0 = 0xd + 601: 33 01 0b r1 = 0xb + 604: bf 10 0b i32 r11 = r0 - r1 + 607: 95 aa 01 r10 = r10 + 0x1 + 610: 33 02 02 r2 = 0x2 + 613: ab 2a f1 jump 598 if r10 != r2 + : @38 + 616: 33 04 02 r4 = 0x2 + 619: ab 4b 30 01 jump 923 if r11 != r4 + : @39 + 623: 33 05 1a r5 = 0x1a + 626: 33 0a r10 = 0 + 628: 01 fallthrough + : @40 + 629: 33 00 0e r0 = 0xe + 632: 33 01 0b r1 = 0xb + 635: bf 10 0b i32 r11 = r0 - r1 + 638: 95 aa 01 r10 = r10 + 0x1 + 641: 33 02 02 r2 = 0x2 + 644: ab 2a f1 jump 629 if r10 != r2 + : @41 + 647: 33 04 03 r4 = 0x3 + 650: ab 4b 11 01 jump 923 if r11 != r4 + : @42 + 654: 33 05 1b r5 = 0x1b + 657: 33 0a r10 = 0 + 659: 01 fallthrough + : @43 + 660: 33 00 0f r0 = 0xf + 663: 33 01 0b r1 = 0xb + 666: bf 10 0b i32 r11 = r0 - r1 + 669: 95 aa 01 r10 = r10 + 0x1 + 672: 33 02 02 r2 = 0x2 + 675: ab 2a f1 jump 660 if r10 != r2 + : @44 + 678: 33 04 04 r4 = 0x4 + 681: ab 4b f2 00 jump 923 if r11 != r4 + : @45 + 685: 33 05 1c r5 = 0x1c + 688: 33 0a r10 = 0 + 690: 01 fallthrough + : @46 + 691: 33 01 0b r1 = 0xb + 694: 33 00 0d r0 = 0xd + 697: bf 10 0b i32 r11 = r0 - r1 + 700: 95 aa 01 r10 = r10 + 0x1 + 703: 33 02 02 r2 = 0x2 + 706: ab 2a f1 jump 691 if r10 != r2 + : @47 + 709: 33 04 02 r4 = 0x2 + 712: ab 4b d3 00 jump 923 if r11 != r4 + : @48 + 716: 33 05 1d r5 = 0x1d + 719: 33 0a r10 = 0 + 721: 01 fallthrough + : @49 + 722: 33 01 0b r1 = 0xb + 725: 33 00 0e r0 = 0xe + 728: bf 10 0b i32 r11 = r0 - r1 + 731: 95 aa 01 r10 = r10 + 0x1 + 734: 33 02 02 r2 = 0x2 + 737: ab 2a f1 jump 722 if r10 != r2 + : @50 + 740: 33 04 03 r4 = 0x3 + 743: ab 4b b4 00 jump 923 if r11 != r4 + : @51 + 747: 33 05 1e r5 = 0x1e + 750: 33 0a r10 = 0 + 752: 01 fallthrough + : @52 + 753: 33 01 0b r1 = 0xb + 756: 33 00 0f r0 = 0xf + 759: bf 10 0b i32 r11 = r0 - r1 + 762: 95 aa 01 r10 = r10 + 0x1 + 765: 33 02 02 r2 = 0x2 + 768: ab 2a f1 jump 753 if r10 != r2 + : @53 + 771: 33 04 04 r4 = 0x4 + 774: ab 4b 95 00 jump 923 if r11 != r4 + : @54 + 778: 33 05 1f r5 = 0x1f + 781: 33 0a r10 = 0 + 783: 01 fallthrough + : @55 + 784: 33 01 0b r1 = 0xb + 787: 33 00 0d r0 = 0xd + 790: bf 10 0b i32 r11 = r0 - r1 + 793: 95 aa 01 r10 = r10 + 0x1 + 796: 33 02 02 r2 = 0x2 + 799: ab 2a f1 jump 784 if r10 != r2 + : @56 + 802: 33 04 02 r4 = 0x2 + 805: ab 4b 76 jump 923 if r11 != r4 + : @57 + 808: 33 05 20 r5 = 0x20 + 811: 33 0a r10 = 0 + 813: 01 fallthrough + : @58 + 814: 33 01 0b r1 = 0xb + 817: 33 00 0e r0 = 0xe + 820: bf 10 0b i32 r11 = r0 - r1 + 823: 95 aa 01 r10 = r10 + 0x1 + 826: 33 02 02 r2 = 0x2 + 829: ab 2a f1 jump 814 if r10 != r2 + : @59 + 832: 33 04 03 r4 = 0x3 + 835: ab 4b 58 jump 923 if r11 != r4 + : @60 + 838: 33 05 21 r5 = 0x21 + 841: 33 0a r10 = 0 + 843: 01 fallthrough + : @61 + 844: 33 01 0b r1 = 0xb + 847: 33 00 0f r0 = 0xf + 850: bf 10 0b i32 r11 = r0 - r1 + 853: 95 aa 01 r10 = r10 + 0x1 + 856: 33 02 02 r2 = 0x2 + 859: ab 2a f1 jump 844 if r10 != r2 + : @62 + 862: 33 04 04 r4 = 0x4 + 865: ab 4b 3a jump 923 if r11 != r4 + : @63 + 868: 33 05 22 r5 = 0x22 + 871: 33 00 f1 r0 = 0xfffffffffffffff1 + 874: 8d 01 i32 r1 = 0 - r0 + 876: 33 04 0f r4 = 0xf + 879: ab 41 2c jump 923 if r1 != r4 + : @64 + 882: 33 05 23 r5 = 0x23 + 885: 33 00 20 r0 = 0x20 + 888: 83 01 i32 r1 = r0 + 0 + 890: 33 04 20 r4 = 0x20 + 893: ab 41 1e jump 923 if r1 != r4 + : @65 + 896: 33 05 24 r5 = 0x24 + 899: 33 00 r0 = 0 + 901: 33 04 r4 = 0 + 903: ab 40 14 jump 923 if r0 != r4 + : @66 + 906: 33 05 25 r5 = 0x25 + 909: 33 00 10 r0 = 0x10 + 912: 33 01 1e r1 = 0x1e + 915: 33 04 r4 = 0 + 917: 52 04 06 jump 923 if r4 != 0 + : @67 + 920: 52 05 04 jump 924 if r5 != 0 + : @68 + 923: 00 trap + : @69 + 924: 28 64 fc jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r1 = 0x1e (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0x4 (initially was 0x0) + * r5 = 0x25 (initially was 0x0) + * r9 = 0x3 (initially was 0x0) + * r10 = 0x2 (initially was 0x0) + * r11 = 0x4 (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9603 + + +## riscv_rv64ui_sw + +Initial page map: + * RO: 0x10000-0x11000 (0x1000 bytes) + * RW: 0x30000-0x31000 (0x1000 bytes) + +Initial non-zero memory chunks: + * 0x10002-0x10003 (0x1 bytes) = [0x03] + * 0x10008-0x10009 (0x1 bytes) = [0x02] + * 0x10010-0x10011 (0x1 bytes) = [0x04] + * 0x10018-0x10019 (0x1 bytes) = [0x06] + * 0x10020-0x10021 (0x1 bytes) = [0x08] + * 0x10028-0x10029 (0x1 bytes) = [0x1c] + * 0x1002a-0x1002b (0x1 bytes) = [0x03] + * 0x10030-0x10031 (0x1 bytes) = [0x0a] + * 0x10038-0x10039 (0x1 bytes) = [0x0c] + * 0x10040-0x10041 (0x1 bytes) = [0x0e] + * 0x10048-0x10049 (0x1 bytes) = [0x10] + * 0x10050-0x10051 (0x1 bytes) = [0x20] + * 0x10052-0x10053 (0x1 bytes) = [0x03] + * 0x10058-0x10059 (0x1 bytes) = [0x24] + * 0x1005a-0x1005b (0x1 bytes) = [0x03] + * 0x30000-0x30028 (0x28 bytes) = [0xef, 0xbe, 0xad, 0xde, 0xef, 0xbe, 0xad, 0xde, 0xef, 0xbe, 0xad, 0xde, 0xef, 0xbe, 0xad, 0xde, 0xef, 0xbe, 0xad, 0xde, 0xef, 0xbe, 0xad, 0xde, 0xef, 0xbe, 0xad, 0xde, 0xef, 0xbe, 0xad, 0xde, 0xef, 0xbe, 0xad, 0xde, 0xef, 0xbe, 0xad, 0xde] + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 3a 01 00 00 01 r1 = u64 [0x10000] + 21: 33 00 00 00 aa 00 r0 = 0xaa0000 + 27: 83 00 aa 00 i32 r0 = r0 + 0xaa + 31: 3a 0c 08 00 01 r12 = u64 [0x10008] + 36: 7a 10 u32 [r1 + 0] = r0 + 38: 81 1b r11 = i32 [r1 + 0] + 40: 28 05 jump 45 + : @2 [@dyn 1] + 42: 64 0b r11 = r0 + 44: 01 fallthrough + : @3 + 45: 33 04 00 00 aa 00 r4 = 0xaa0000 + 51: 83 44 aa 00 i32 r4 = r4 + 0xaa + 55: ab 4b f1 03 jump 1064 if r11 != r4 + : @4 + 59: 33 05 03 r5 = 0x3 + 62: 3a 01 00 00 01 r1 = u64 [0x10000] + 67: 33 00 00 b0 00 aa r0 = 0xffffffffaa00b000 + 73: 83 00 00 fa i32 r0 = r0 + 0xfffffffffffffa00 + 77: 3a 0c 10 00 01 r12 = u64 [0x10010] + 82: 7a 10 04 u32 [r1 + 0x4] = r0 + 85: 81 1b 04 r11 = i32 [r1 + 0x4] + 88: 28 05 jump 93 + : @5 [@dyn 2] + 90: 64 0b r11 = r0 + 92: 01 fallthrough + : @6 + 93: 33 04 00 b0 00 aa r4 = 0xffffffffaa00b000 + 99: 83 44 00 fa i32 r4 = r4 + 0xfffffffffffffa00 + 103: ab 4b c1 03 jump 1064 if r11 != r4 + : @7 + 107: 33 05 04 r5 = 0x4 + 110: 3a 01 00 00 01 r1 = u64 [0x10000] + 115: 33 00 00 10 a0 0a r0 = 0xaa01000 + 121: 83 00 a0 fa i32 r0 = r0 + 0xfffffffffffffaa0 + 125: 3a 0c 18 00 01 r12 = u64 [0x10018] + 130: 7a 10 08 u32 [r1 + 0x8] = r0 + 133: 81 1b 08 r11 = i32 [r1 + 0x8] + 136: 28 05 jump 141 + : @8 [@dyn 3] + 138: 64 0b r11 = r0 + 140: 01 fallthrough + : @9 + 141: 33 04 00 10 a0 0a r4 = 0xaa01000 + 147: 83 44 a0 fa i32 r4 = r4 + 0xfffffffffffffaa0 + 151: ab 4b 91 03 jump 1064 if r11 != r4 + : @10 + 155: 33 05 05 r5 = 0x5 + 158: 3a 01 00 00 01 r1 = u64 [0x10000] + 163: 33 00 00 a0 0a a0 r0 = 0xffffffffa00aa000 + 169: 83 00 0a i32 r0 = r0 + 0xa + 172: 3a 0c 20 00 01 r12 = u64 [0x10020] + 177: 7a 10 0c u32 [r1 + 0xc] = r0 + 180: 81 1b 0c r11 = i32 [r1 + 0xc] + 183: 28 05 jump 188 + : @11 [@dyn 4] + 185: 64 0b r11 = r0 + 187: 01 fallthrough + : @12 + 188: 33 04 00 a0 0a a0 r4 = 0xffffffffa00aa000 + 194: 83 44 0a i32 r4 = r4 + 0xa + 197: ab 4b 63 03 jump 1064 if r11 != r4 + : @13 + 201: 33 05 06 r5 = 0x6 + 204: 3a 01 28 00 01 r1 = u64 [0x10028] + 209: 33 00 00 00 aa 00 r0 = 0xaa0000 + 215: 83 00 aa 00 i32 r0 = r0 + 0xaa + 219: 3a 0c 30 00 01 r12 = u64 [0x10030] + 224: 7a 10 f4 u32 [r1 + 0xfffffffffffffff4] = r0 + 227: 81 1b f4 r11 = i32 [r1 + 0xfffffffffffffff4] + 230: 28 05 jump 235 + : @14 [@dyn 5] + 232: 64 0b r11 = r0 + 234: 01 fallthrough + : @15 + 235: 33 04 00 00 aa 00 r4 = 0xaa0000 + 241: 83 44 aa 00 i32 r4 = r4 + 0xaa + 245: ab 4b 33 03 jump 1064 if r11 != r4 + : @16 + 249: 33 05 07 r5 = 0x7 + 252: 3a 01 28 00 01 r1 = u64 [0x10028] + 257: 33 00 00 b0 00 aa r0 = 0xffffffffaa00b000 + 263: 83 00 00 fa i32 r0 = r0 + 0xfffffffffffffa00 + 267: 3a 0c 38 00 01 r12 = u64 [0x10038] + 272: 7a 10 f8 u32 [r1 + 0xfffffffffffffff8] = r0 + 275: 81 1b f8 r11 = i32 [r1 + 0xfffffffffffffff8] + 278: 28 05 jump 283 + : @17 [@dyn 6] + 280: 64 0b r11 = r0 + 282: 01 fallthrough + : @18 + 283: 33 04 00 b0 00 aa r4 = 0xffffffffaa00b000 + 289: 83 44 00 fa i32 r4 = r4 + 0xfffffffffffffa00 + 293: ab 4b 03 03 jump 1064 if r11 != r4 + : @19 + 297: 33 05 08 r5 = 0x8 + 300: 3a 01 28 00 01 r1 = u64 [0x10028] + 305: 33 00 00 10 a0 0a r0 = 0xaa01000 + 311: 83 00 a0 fa i32 r0 = r0 + 0xfffffffffffffaa0 + 315: 3a 0c 40 00 01 r12 = u64 [0x10040] + 320: 7a 10 fc u32 [r1 + 0xfffffffffffffffc] = r0 + 323: 81 1b fc r11 = i32 [r1 + 0xfffffffffffffffc] + 326: 28 05 jump 331 + : @20 [@dyn 7] + 328: 64 0b r11 = r0 + 330: 01 fallthrough + : @21 + 331: 33 04 00 10 a0 0a r4 = 0xaa01000 + 337: 83 44 a0 fa i32 r4 = r4 + 0xfffffffffffffaa0 + 341: ab 4b d3 02 jump 1064 if r11 != r4 + : @22 + 345: 33 05 09 r5 = 0x9 + 348: 3a 01 28 00 01 r1 = u64 [0x10028] + 353: 33 00 00 a0 0a a0 r0 = 0xffffffffa00aa000 + 359: 83 00 0a i32 r0 = r0 + 0xa + 362: 3a 0c 48 00 01 r12 = u64 [0x10048] + 367: 7a 10 u32 [r1 + 0] = r0 + 369: 81 1b r11 = i32 [r1 + 0] + 371: 28 05 jump 376 + : @23 [@dyn 8] + 373: 64 0b r11 = r0 + 375: 01 fallthrough + : @24 + 376: 33 04 00 a0 0a a0 r4 = 0xffffffffa00aa000 + 382: 83 44 0a i32 r4 = r4 + 0xa + 385: ab 4b a7 02 jump 1064 if r11 != r4 + : @25 + 389: 33 05 0a r5 = 0xa + 392: 3a 00 50 00 01 r0 = u64 [0x10050] + 397: 33 01 00 50 34 12 r1 = 0x12345000 + 403: 83 11 78 06 i32 r1 = r1 + 0x678 + 407: 95 07 e0 r7 = r0 + 0xffffffffffffffe0 + 410: 7a 71 20 u32 [r7 + 0x20] = r1 + 413: 81 02 r2 = i32 [r0 + 0] + 415: 33 04 00 50 34 12 r4 = 0x12345000 + 421: 83 44 78 06 i32 r4 = r4 + 0x678 + 425: ab 42 7f 02 jump 1064 if r2 != r4 + : @26 + 429: 33 05 0b r5 = 0xb + 432: 3a 00 50 00 01 r0 = u64 [0x10050] + 437: 33 01 00 30 21 58 r1 = 0x58213000 + 443: 83 11 98 00 i32 r1 = r1 + 0x98 + 447: 95 00 fd r0 = r0 + 0xfffffffffffffffd + 450: 7a 01 07 u32 [r0 + 0x7] = r1 + 453: 3a 07 58 00 01 r7 = u64 [0x10058] + 458: 81 72 r2 = i32 [r7 + 0] + 460: 33 04 00 30 21 58 r4 = 0x58213000 + 466: 83 44 98 00 i32 r4 = r4 + 0x98 + 470: ab 42 52 02 jump 1064 if r2 != r4 + : @27 + 474: 33 05 0c r5 = 0xc + 477: 33 07 r7 = 0 + 479: 01 fallthrough + : @28 + 480: 33 0a 00 d0 bb aa r10 = 0xffffffffaabbd000 + 486: 83 aa dd fc i32 r10 = r10 + 0xfffffffffffffcdd + 490: 3a 09 00 00 01 r9 = u64 [0x10000] + 495: 7a 9a u32 [r9 + 0] = r10 + 497: 81 9b r11 = i32 [r9 + 0] + 499: 33 04 00 d0 bb aa r4 = 0xffffffffaabbd000 + 505: 83 44 dd fc i32 r4 = r4 + 0xfffffffffffffcdd + 509: ab 4b 2b 02 jump 1064 if r11 != r4 + : @29 + 513: 95 77 01 r7 = r7 + 0x1 + 516: 33 02 02 r2 = 0x2 + 519: ab 27 d9 jump 480 if r7 != r2 + : @30 + 522: 33 05 0d r5 = 0xd + 525: 33 07 r7 = 0 + 527: 01 fallthrough + : @31 + 528: 33 0a 00 c0 ab da r10 = 0xffffffffdaabc000 + 534: 83 aa cd fc i32 r10 = r10 + 0xfffffffffffffccd + 538: 3a 09 00 00 01 r9 = u64 [0x10000] + 543: 7a 9a 04 u32 [r9 + 0x4] = r10 + 546: 81 9b 04 r11 = i32 [r9 + 0x4] + 549: 33 04 00 c0 ab da r4 = 0xffffffffdaabc000 + 555: 83 44 cd fc i32 r4 = r4 + 0xfffffffffffffccd + 559: ab 4b f9 01 jump 1064 if r11 != r4 + : @32 + 563: 95 77 01 r7 = r7 + 0x1 + 566: 33 02 02 r2 = 0x2 + 569: ab 27 d7 jump 528 if r7 != r2 + : @33 + 572: 33 05 0e r5 = 0xe + 575: 33 07 r7 = 0 + 577: 01 fallthrough + : @34 + 578: 33 0a 00 c0 aa dd r10 = 0xffffffffddaac000 + 584: 83 aa cc fb i32 r10 = r10 + 0xfffffffffffffbcc + 588: 3a 09 00 00 01 r9 = u64 [0x10000] + 593: 7a 9a 08 u32 [r9 + 0x8] = r10 + 596: 81 9b 08 r11 = i32 [r9 + 0x8] + 599: 33 04 00 c0 aa dd r4 = 0xffffffffddaac000 + 605: 83 44 cc fb i32 r4 = r4 + 0xfffffffffffffbcc + 609: ab 4b c7 01 jump 1064 if r11 != r4 + : @35 + 613: 95 77 01 r7 = r7 + 0x1 + 616: 33 02 02 r2 = 0x2 + 619: ab 27 d7 jump 578 if r7 != r2 + : @36 + 622: 33 05 0f r5 = 0xf + 625: 33 07 r7 = 0 + 627: 01 fallthrough + : @37 + 628: 33 0a 00 b0 da cd r10 = 0xffffffffcddab000 + 634: 83 aa bc fb i32 r10 = r10 + 0xfffffffffffffbbc + 638: 3a 09 00 00 01 r9 = u64 [0x10000] + 643: 7a 9a 0c u32 [r9 + 0xc] = r10 + 646: 81 9b 0c r11 = i32 [r9 + 0xc] + 649: 33 04 00 b0 da cd r4 = 0xffffffffcddab000 + 655: 83 44 bc fb i32 r4 = r4 + 0xfffffffffffffbbc + 659: ab 4b 95 01 jump 1064 if r11 != r4 + : @38 + 663: 95 77 01 r7 = r7 + 0x1 + 666: 33 02 02 r2 = 0x2 + 669: ab 27 d7 jump 628 if r7 != r2 + : @39 + 672: 33 05 10 r5 = 0x10 + 675: 33 07 r7 = 0 + 677: 01 fallthrough + : @40 + 678: 33 0a 00 b0 dd cc r10 = 0xffffffffccddb000 + 684: 83 aa bb fa i32 r10 = r10 + 0xfffffffffffffabb + 688: 3a 09 00 00 01 r9 = u64 [0x10000] + 693: 7a 9a 10 u32 [r9 + 0x10] = r10 + 696: 81 9b 10 r11 = i32 [r9 + 0x10] + 699: 33 04 00 b0 dd cc r4 = 0xffffffffccddb000 + 705: 83 44 bb fa i32 r4 = r4 + 0xfffffffffffffabb + 709: ab 4b 63 01 jump 1064 if r11 != r4 + : @41 + 713: 95 77 01 r7 = r7 + 0x1 + 716: 33 02 02 r2 = 0x2 + 719: ab 27 d7 jump 678 if r7 != r2 + : @42 + 722: 33 05 11 r5 = 0x11 + 725: 33 07 r7 = 0 + 727: 01 fallthrough + : @43 + 728: 33 0a 00 e0 cd bc r10 = 0xffffffffbccde000 + 734: 83 aa ab fa i32 r10 = r10 + 0xfffffffffffffaab + 738: 3a 09 00 00 01 r9 = u64 [0x10000] + 743: 7a 9a 14 u32 [r9 + 0x14] = r10 + 746: 81 9b 14 r11 = i32 [r9 + 0x14] + 749: 33 04 00 e0 cd bc r4 = 0xffffffffbccde000 + 755: 83 44 ab fa i32 r4 = r4 + 0xfffffffffffffaab + 759: ab 4b 31 01 jump 1064 if r11 != r4 + : @44 + 763: 95 77 01 r7 = r7 + 0x1 + 766: 33 02 02 r2 = 0x2 + 769: ab 27 d7 jump 728 if r7 != r2 + : @45 + 772: 33 05 12 r5 = 0x12 + 775: 33 07 r7 = 0 + 777: 01 fallthrough + : @46 + 778: 3a 01 00 00 01 r1 = u64 [0x10000] + 783: 33 00 00 20 11 r0 = 0x112000 + 788: 83 00 33 02 i32 r0 = r0 + 0x233 + 792: 7a 10 u32 [r1 + 0] = r0 + 794: 81 1b r11 = i32 [r1 + 0] + 796: 33 04 00 20 11 r4 = 0x112000 + 801: 83 44 33 02 i32 r4 = r4 + 0x233 + 805: ab 4b 03 01 jump 1064 if r11 != r4 + : @47 + 809: 95 77 01 r7 = r7 + 0x1 + 812: 33 02 02 r2 = 0x2 + 815: ab 27 db jump 778 if r7 != r2 + : @48 + 818: 33 05 13 r5 = 0x13 + 821: 33 07 r7 = 0 + 823: 01 fallthrough + : @49 + 824: 3a 01 00 00 01 r1 = u64 [0x10000] + 829: 33 00 00 10 01 30 r0 = 0x30011000 + 835: 83 00 23 02 i32 r0 = r0 + 0x223 + 839: 7a 10 04 u32 [r1 + 0x4] = r0 + 842: 81 1b 04 r11 = i32 [r1 + 0x4] + 845: 33 04 00 10 01 30 r4 = 0x30011000 + 851: 83 44 23 02 i32 r4 = r4 + 0x223 + 855: ab 4b d1 00 jump 1064 if r11 != r4 + : @50 + 859: 95 77 01 r7 = r7 + 0x1 + 862: 33 02 02 r2 = 0x2 + 865: ab 27 d7 jump 824 if r7 != r2 + : @51 + 868: 33 05 14 r5 = 0x14 + 871: 33 07 r7 = 0 + 873: 01 fallthrough + : @52 + 874: 3a 01 00 00 01 r1 = u64 [0x10000] + 879: 33 00 00 10 00 33 r0 = 0x33001000 + 885: 83 00 22 01 i32 r0 = r0 + 0x122 + 889: 7a 10 08 u32 [r1 + 0x8] = r0 + 892: 81 1b 08 r11 = i32 [r1 + 0x8] + 895: 33 04 00 10 00 33 r4 = 0x33001000 + 901: 83 44 22 01 i32 r4 = r4 + 0x122 + 905: ab 4b 9f 00 jump 1064 if r11 != r4 + : @53 + 909: 95 77 01 r7 = r7 + 0x1 + 912: 33 02 02 r2 = 0x2 + 915: ab 27 d7 jump 874 if r7 != r2 + : @54 + 918: 33 05 15 r5 = 0x15 + 921: 33 07 r7 = 0 + 923: 01 fallthrough + : @55 + 924: 3a 01 00 00 01 r1 = u64 [0x10000] + 929: 33 00 00 00 30 23 r0 = 0x23300000 + 935: 83 00 12 01 i32 r0 = r0 + 0x112 + 939: 7a 10 0c u32 [r1 + 0xc] = r0 + 942: 81 1b 0c r11 = i32 [r1 + 0xc] + 945: 33 04 00 00 30 23 r4 = 0x23300000 + 951: 83 44 12 01 i32 r4 = r4 + 0x112 + 955: ab 4b 6d jump 1064 if r11 != r4 + : @56 + 958: 95 77 01 r7 = r7 + 0x1 + 961: 33 02 02 r2 = 0x2 + 964: ab 27 d8 jump 924 if r7 != r2 + : @57 + 967: 33 05 16 r5 = 0x16 + 970: 33 07 r7 = 0 + 972: 01 fallthrough + : @58 + 973: 3a 01 00 00 01 r1 = u64 [0x10000] + 978: 33 00 00 00 33 22 r0 = 0x22330000 + 984: 83 00 11 i32 r0 = r0 + 0x11 + 987: 7a 10 10 u32 [r1 + 0x10] = r0 + 990: 81 1b 10 r11 = i32 [r1 + 0x10] + 993: 33 04 00 00 33 22 r4 = 0x22330000 + 999: 83 44 11 i32 r4 = r4 + 0x11 + 1002: ab 4b 3e jump 1064 if r11 != r4 + : @59 + 1005: 95 77 01 r7 = r7 + 0x1 + 1008: 33 02 02 r2 = 0x2 + 1011: ab 27 da jump 973 if r7 != r2 + : @60 + 1014: 33 05 17 r5 = 0x17 + 1017: 33 07 r7 = 0 + 1019: 01 fallthrough + : @61 + 1020: 3a 01 00 00 01 r1 = u64 [0x10000] + 1025: 33 00 00 30 23 12 r0 = 0x12233000 + 1031: 83 00 01 i32 r0 = r0 + 0x1 + 1034: 7a 10 14 u32 [r1 + 0x14] = r0 + 1037: 81 1b 14 r11 = i32 [r1 + 0x14] + 1040: 33 04 00 30 23 12 r4 = 0x12233000 + 1046: 83 44 01 i32 r4 = r4 + 0x1 + 1049: ab 4b 0f jump 1064 if r11 != r4 + : @62 + 1052: 95 77 01 r7 = r7 + 0x1 + 1055: 33 02 02 r2 = 0x2 + 1058: ab 27 da jump 1020 if r7 != r2 + : @63 + 1061: 52 05 04 jump 1065 if r5 != 0 + : @64 + 1064: 00 trap + : @65 + 1065: 28 d7 fb jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r1 = 0x30000 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r4 = 0x12233001 (initially was 0x0) + * r5 = 0x17 (initially was 0x0) + * r7 = 0x2 (initially was 0x0) + * r9 = 0x30000 (initially was 0x0) + * r10 = 0xffffffffbccddaab (initially was 0x0) + * r11 = 0x12233001 (initially was 0x0) + * r12 = 0x10 (initially was 0x0) + +Final non-zero memory chunks: + * 0x10002-0x10003 (0x1 bytes) = [0x03] + * 0x10008-0x10009 (0x1 bytes) = [0x02] + * 0x10010-0x10011 (0x1 bytes) = [0x04] + * 0x10018-0x10019 (0x1 bytes) = [0x06] + * 0x10020-0x10021 (0x1 bytes) = [0x08] + * 0x10028-0x10029 (0x1 bytes) = [0x1c] + * 0x1002a-0x1002b (0x1 bytes) = [0x03] + * 0x10030-0x10031 (0x1 bytes) = [0x0a] + * 0x10038-0x10039 (0x1 bytes) = [0x0c] + * 0x10040-0x10041 (0x1 bytes) = [0x0e] + * 0x10048-0x10049 (0x1 bytes) = [0x10] + * 0x10050-0x10051 (0x1 bytes) = [0x20] + * 0x10052-0x10053 (0x1 bytes) = [0x03] + * 0x10058-0x10059 (0x1 bytes) = [0x24] + * 0x1005a-0x1005b (0x1 bytes) = [0x03] + * 0x30000-0x30003 (0x3 bytes) = [0x33, 0x22, 0x11] + * 0x30004-0x3000a (0x6 bytes) = [0x23, 0x12, 0x01, 0x30, 0x22, 0x11] + * 0x3000b-0x30011 (0x6 bytes) = [0x33, 0x12, 0x01, 0x30, 0x23, 0x11] + * 0x30012-0x30028 (0x16 bytes) = [0x33, 0x22, 0x01, 0x30, 0x23, 0x12, 0xa0, 0x0a, 0xa0, 0x0a, 0x0a, 0xa0, 0x0a, 0xa0, 0x78, 0x56, 0x34, 0x12, 0x98, 0x30, 0x21, 0x58] + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9585 + + +## riscv_rv64ui_xor + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 08 00 00 01 r8 = 0x10000 + 21: 83 88 01 ff i32 r8 = r8 + 0xffffffffffffff01 + 25: 97 88 10 r8 = r8 << 0x10 + 28: 95 88 00 ff r8 = r8 + 0xffffffffffffff00 + 32: 33 09 00 10 0f 0f r9 = 0xf0f1000 + 38: 83 99 0f ff i32 r9 = r9 + 0xffffffffffffff0f + 42: d3 98 0b r11 = r8 ^ r9 + 45: 33 04 00 00 0f r4 = 0xf0000 + 50: 83 44 ff 00 i32 r4 = r4 + 0xff + 54: 97 44 0c r4 = r4 << 0xc + 57: 95 44 0f r4 = r4 + 0xf + 60: ab 4b fa 04 jump 1334 if r11 != r4 + : @2 + 64: 33 05 03 r5 = 0x3 + 67: 33 08 00 10 f0 0f r8 = 0xff01000 + 73: 83 88 f0 i32 r8 = r8 + 0xfffffffffffffff0 + 76: 33 09 00 10 0f r9 = 0xf1000 + 81: 83 99 0f ff i32 r9 = r9 + 0xffffffffffffff0f + 85: 97 99 0c r9 = r9 << 0xc + 88: 95 99 f0 00 r9 = r9 + 0xf0 + 92: d3 98 0b r11 = r8 ^ r9 + 95: 33 04 00 00 01 r4 = 0x10000 + 100: 83 44 01 ff i32 r4 = r4 + 0xffffffffffffff01 + 104: 97 44 10 r4 = r4 << 0x10 + 107: 95 44 00 ff r4 = r4 + 0xffffffffffffff00 + 111: ab 4b c7 04 jump 1334 if r11 != r4 + : @3 + 115: 33 05 04 r5 = 0x4 + 118: 33 08 00 00 ff 00 r8 = 0xff0000 + 124: 83 88 ff 00 i32 r8 = r8 + 0xff + 128: 33 09 00 10 0f 0f r9 = 0xf0f1000 + 134: 83 99 0f ff i32 r9 = r9 + 0xffffffffffffff0f + 138: d3 98 0b r11 = r8 ^ r9 + 141: 33 04 00 10 f0 0f r4 = 0xff01000 + 147: 83 44 f0 i32 r4 = r4 + 0xfffffffffffffff0 + 150: ab 4b a0 04 jump 1334 if r11 != r4 + : @4 + 154: 33 05 05 r5 = 0x5 + 157: 33 08 00 00 0f r8 = 0xf0000 + 162: 83 88 ff 00 i32 r8 = r8 + 0xff + 166: 97 88 0c r8 = r8 << 0xc + 169: 95 88 0f r8 = r8 + 0xf + 172: 33 09 00 10 0f r9 = 0xf1000 + 177: 83 99 0f ff i32 r9 = r9 + 0xffffffffffffff0f + 181: 97 99 0c r9 = r9 << 0xc + 184: 95 99 f0 00 r9 = r9 + 0xf0 + 188: d3 98 0b r11 = r8 ^ r9 + 191: 33 04 00 00 ff 00 r4 = 0xff0000 + 197: 83 44 ff 00 i32 r4 = r4 + 0xff + 201: ab 4b 6d 04 jump 1334 if r11 != r4 + : @5 + 205: 33 05 06 r5 = 0x6 + 208: 33 08 00 00 01 r8 = 0x10000 + 213: 83 88 01 ff i32 r8 = r8 + 0xffffffffffffff01 + 217: 97 88 10 r8 = r8 << 0x10 + 220: 95 88 00 ff r8 = r8 + 0xffffffffffffff00 + 224: 33 09 00 10 0f 0f r9 = 0xf0f1000 + 230: 83 99 0f ff i32 r9 = r9 + 0xffffffffffffff0f + 234: d3 98 08 r8 = r8 ^ r9 + 237: 33 04 00 00 0f r4 = 0xf0000 + 242: 83 44 ff 00 i32 r4 = r4 + 0xff + 246: 97 44 0c r4 = r4 << 0xc + 249: 95 44 0f r4 = r4 + 0xf + 252: ab 48 3a 04 jump 1334 if r8 != r4 + : @6 + 256: 33 05 07 r5 = 0x7 + 259: 33 08 00 00 01 r8 = 0x10000 + 264: 83 88 01 ff i32 r8 = r8 + 0xffffffffffffff01 + 268: 97 88 10 r8 = r8 << 0x10 + 271: 95 88 00 ff r8 = r8 + 0xffffffffffffff00 + 275: 33 09 00 10 0f 0f r9 = 0xf0f1000 + 281: 83 99 0f ff i32 r9 = r9 + 0xffffffffffffff0f + 285: d3 98 09 r9 = r8 ^ r9 + 288: 33 04 00 00 0f r4 = 0xf0000 + 293: 83 44 ff 00 i32 r4 = r4 + 0xff + 297: 97 44 0c r4 = r4 << 0xc + 300: 95 44 0f r4 = r4 + 0xf + 303: ab 49 07 04 jump 1334 if r9 != r4 + : @7 + 307: 33 05 08 r5 = 0x8 + 310: 33 08 00 00 01 r8 = 0x10000 + 315: 83 88 01 ff i32 r8 = r8 + 0xffffffffffffff01 + 319: 97 88 10 r8 = r8 << 0x10 + 322: 95 88 00 ff r8 = r8 + 0xffffffffffffff00 + 326: d3 88 08 r8 = r8 ^ r8 + 329: 33 04 r4 = 0 + 331: ab 48 eb 03 jump 1334 if r8 != r4 + : @8 + 335: 33 05 09 r5 = 0x9 + 338: 33 0a r10 = 0 + 340: 01 fallthrough + : @9 + 341: 33 00 00 00 01 r0 = 0x10000 + 346: 83 00 01 ff i32 r0 = r0 + 0xffffffffffffff01 + 350: 97 00 10 r0 = r0 << 0x10 + 353: 95 00 00 ff r0 = r0 + 0xffffffffffffff00 + 357: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 363: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 367: d3 10 0b r11 = r0 ^ r1 + 370: 64 b3 r3 = r11 + 372: 95 aa 01 r10 = r10 + 0x1 + 375: 33 02 02 r2 = 0x2 + 378: ab 2a db jump 341 if r10 != r2 + : @10 + 381: 33 04 00 00 0f r4 = 0xf0000 + 386: 83 44 ff 00 i32 r4 = r4 + 0xff + 390: 97 44 0c r4 = r4 << 0xc + 393: 95 44 0f r4 = r4 + 0xf + 396: ab 43 aa 03 jump 1334 if r3 != r4 + : @11 + 400: 33 05 0a r5 = 0xa + 403: 33 0a r10 = 0 + 405: 01 fallthrough + : @12 + 406: 33 00 00 10 f0 0f r0 = 0xff01000 + 412: 83 00 f0 i32 r0 = r0 + 0xfffffffffffffff0 + 415: 33 01 00 10 0f r1 = 0xf1000 + 420: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 424: 97 11 0c r1 = r1 << 0xc + 427: 95 11 f0 00 r1 = r1 + 0xf0 + 431: d3 10 0b r11 = r0 ^ r1 + 434: 64 b3 r3 = r11 + 436: 95 aa 01 r10 = r10 + 0x1 + 439: 33 02 02 r2 = 0x2 + 442: ab 2a dc jump 406 if r10 != r2 + : @13 + 445: 33 04 00 00 01 r4 = 0x10000 + 450: 83 44 01 ff i32 r4 = r4 + 0xffffffffffffff01 + 454: 97 44 10 r4 = r4 << 0x10 + 457: 95 44 00 ff r4 = r4 + 0xffffffffffffff00 + 461: ab 43 69 03 jump 1334 if r3 != r4 + : @14 + 465: 33 05 0b r5 = 0xb + 468: 33 0a r10 = 0 + 470: 01 fallthrough + : @15 + 471: 33 00 00 00 ff 00 r0 = 0xff0000 + 477: 83 00 ff 00 i32 r0 = r0 + 0xff + 481: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 487: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 491: d3 10 0b r11 = r0 ^ r1 + 494: 64 b3 r3 = r11 + 496: 95 aa 01 r10 = r10 + 0x1 + 499: 33 02 02 r2 = 0x2 + 502: ab 2a e1 jump 471 if r10 != r2 + : @16 + 505: 33 04 00 10 f0 0f r4 = 0xff01000 + 511: 83 44 f0 i32 r4 = r4 + 0xfffffffffffffff0 + 514: ab 43 34 03 jump 1334 if r3 != r4 + : @17 + 518: 33 05 0c r5 = 0xc + 521: 33 0a r10 = 0 + 523: 01 fallthrough + : @18 + 524: 33 00 00 00 01 r0 = 0x10000 + 529: 83 00 01 ff i32 r0 = r0 + 0xffffffffffffff01 + 533: 97 00 10 r0 = r0 << 0x10 + 536: 95 00 00 ff r0 = r0 + 0xffffffffffffff00 + 540: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 546: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 550: d3 10 0b r11 = r0 ^ r1 + 553: 95 aa 01 r10 = r10 + 0x1 + 556: 33 02 02 r2 = 0x2 + 559: ab 2a dd jump 524 if r10 != r2 + : @19 + 562: 33 04 00 00 0f r4 = 0xf0000 + 567: 83 44 ff 00 i32 r4 = r4 + 0xff + 571: 97 44 0c r4 = r4 << 0xc + 574: 95 44 0f r4 = r4 + 0xf + 577: ab 4b f5 02 jump 1334 if r11 != r4 + : @20 + 581: 33 05 0d r5 = 0xd + 584: 33 0a r10 = 0 + 586: 01 fallthrough + : @21 + 587: 33 00 00 10 f0 0f r0 = 0xff01000 + 593: 83 00 f0 i32 r0 = r0 + 0xfffffffffffffff0 + 596: 33 01 00 10 0f r1 = 0xf1000 + 601: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 605: 97 11 0c r1 = r1 << 0xc + 608: 95 11 f0 00 r1 = r1 + 0xf0 + 612: d3 10 0b r11 = r0 ^ r1 + 615: 95 aa 01 r10 = r10 + 0x1 + 618: 33 02 02 r2 = 0x2 + 621: ab 2a de jump 587 if r10 != r2 + : @22 + 624: 33 04 00 00 01 r4 = 0x10000 + 629: 83 44 01 ff i32 r4 = r4 + 0xffffffffffffff01 + 633: 97 44 10 r4 = r4 << 0x10 + 636: 95 44 00 ff r4 = r4 + 0xffffffffffffff00 + 640: ab 4b b6 02 jump 1334 if r11 != r4 + : @23 + 644: 33 05 0e r5 = 0xe + 647: 33 0a r10 = 0 + 649: 01 fallthrough + : @24 + 650: 33 00 00 00 ff 00 r0 = 0xff0000 + 656: 83 00 ff 00 i32 r0 = r0 + 0xff + 660: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 666: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 670: d3 10 0b r11 = r0 ^ r1 + 673: 95 aa 01 r10 = r10 + 0x1 + 676: 33 02 02 r2 = 0x2 + 679: ab 2a e3 jump 650 if r10 != r2 + : @25 + 682: 33 04 00 10 f0 0f r4 = 0xff01000 + 688: 83 44 f0 i32 r4 = r4 + 0xfffffffffffffff0 + 691: ab 4b 83 02 jump 1334 if r11 != r4 + : @26 + 695: 33 05 0f r5 = 0xf + 698: 33 0a r10 = 0 + 700: 01 fallthrough + : @27 + 701: 33 00 00 00 01 r0 = 0x10000 + 706: 83 00 01 ff i32 r0 = r0 + 0xffffffffffffff01 + 710: 97 00 10 r0 = r0 << 0x10 + 713: 95 00 00 ff r0 = r0 + 0xffffffffffffff00 + 717: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 723: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 727: d3 10 0b r11 = r0 ^ r1 + 730: 95 aa 01 r10 = r10 + 0x1 + 733: 33 02 02 r2 = 0x2 + 736: ab 2a dd jump 701 if r10 != r2 + : @28 + 739: 33 04 00 00 0f r4 = 0xf0000 + 744: 83 44 ff 00 i32 r4 = r4 + 0xff + 748: 97 44 0c r4 = r4 << 0xc + 751: 95 44 0f r4 = r4 + 0xf + 754: ab 4b 44 02 jump 1334 if r11 != r4 + : @29 + 758: 33 05 10 r5 = 0x10 + 761: 33 0a r10 = 0 + 763: 01 fallthrough + : @30 + 764: 33 00 00 10 f0 0f r0 = 0xff01000 + 770: 83 00 f0 i32 r0 = r0 + 0xfffffffffffffff0 + 773: 33 01 00 10 0f r1 = 0xf1000 + 778: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 782: 97 11 0c r1 = r1 << 0xc + 785: 95 11 f0 00 r1 = r1 + 0xf0 + 789: d3 10 0b r11 = r0 ^ r1 + 792: 95 aa 01 r10 = r10 + 0x1 + 795: 33 02 02 r2 = 0x2 + 798: ab 2a de jump 764 if r10 != r2 + : @31 + 801: 33 04 00 00 01 r4 = 0x10000 + 806: 83 44 01 ff i32 r4 = r4 + 0xffffffffffffff01 + 810: 97 44 10 r4 = r4 << 0x10 + 813: 95 44 00 ff r4 = r4 + 0xffffffffffffff00 + 817: ab 4b 05 02 jump 1334 if r11 != r4 + : @32 + 821: 33 05 11 r5 = 0x11 + 824: 33 0a r10 = 0 + 826: 01 fallthrough + : @33 + 827: 33 00 00 00 ff 00 r0 = 0xff0000 + 833: 83 00 ff 00 i32 r0 = r0 + 0xff + 837: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 843: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 847: d3 10 0b r11 = r0 ^ r1 + 850: 95 aa 01 r10 = r10 + 0x1 + 853: 33 02 02 r2 = 0x2 + 856: ab 2a e3 jump 827 if r10 != r2 + : @34 + 859: 33 04 00 10 f0 0f r4 = 0xff01000 + 865: 83 44 f0 i32 r4 = r4 + 0xfffffffffffffff0 + 868: ab 4b d2 01 jump 1334 if r11 != r4 + : @35 + 872: 33 05 12 r5 = 0x12 + 875: 33 0a r10 = 0 + 877: 01 fallthrough + : @36 + 878: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 884: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 888: 33 00 00 00 01 r0 = 0x10000 + 893: 83 00 01 ff i32 r0 = r0 + 0xffffffffffffff01 + 897: 97 00 10 r0 = r0 << 0x10 + 900: 95 00 00 ff r0 = r0 + 0xffffffffffffff00 + 904: d3 10 0b r11 = r0 ^ r1 + 907: 95 aa 01 r10 = r10 + 0x1 + 910: 33 02 02 r2 = 0x2 + 913: ab 2a dd jump 878 if r10 != r2 + : @37 + 916: 33 04 00 00 0f r4 = 0xf0000 + 921: 83 44 ff 00 i32 r4 = r4 + 0xff + 925: 97 44 0c r4 = r4 << 0xc + 928: 95 44 0f r4 = r4 + 0xf + 931: ab 4b 93 01 jump 1334 if r11 != r4 + : @38 + 935: 33 05 13 r5 = 0x13 + 938: 33 0a r10 = 0 + 940: 01 fallthrough + : @39 + 941: 33 01 00 10 0f r1 = 0xf1000 + 946: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 950: 97 11 0c r1 = r1 << 0xc + 953: 95 11 f0 00 r1 = r1 + 0xf0 + 957: 33 00 00 10 f0 0f r0 = 0xff01000 + 963: 83 00 f0 i32 r0 = r0 + 0xfffffffffffffff0 + 966: d3 10 0b r11 = r0 ^ r1 + 969: 95 aa 01 r10 = r10 + 0x1 + 972: 33 02 02 r2 = 0x2 + 975: ab 2a de jump 941 if r10 != r2 + : @40 + 978: 33 04 00 00 01 r4 = 0x10000 + 983: 83 44 01 ff i32 r4 = r4 + 0xffffffffffffff01 + 987: 97 44 10 r4 = r4 << 0x10 + 990: 95 44 00 ff r4 = r4 + 0xffffffffffffff00 + 994: ab 4b 54 01 jump 1334 if r11 != r4 + : @41 + 998: 33 05 14 r5 = 0x14 + 1001: 33 0a r10 = 0 + 1003: 01 fallthrough + : @42 + 1004: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 1010: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 1014: 33 00 00 00 ff 00 r0 = 0xff0000 + 1020: 83 00 ff 00 i32 r0 = r0 + 0xff + 1024: d3 10 0b r11 = r0 ^ r1 + 1027: 95 aa 01 r10 = r10 + 0x1 + 1030: 33 02 02 r2 = 0x2 + 1033: ab 2a e3 jump 1004 if r10 != r2 + : @43 + 1036: 33 04 00 10 f0 0f r4 = 0xff01000 + 1042: 83 44 f0 i32 r4 = r4 + 0xfffffffffffffff0 + 1045: ab 4b 21 01 jump 1334 if r11 != r4 + : @44 + 1049: 33 05 15 r5 = 0x15 + 1052: 33 0a r10 = 0 + 1054: 01 fallthrough + : @45 + 1055: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 1061: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 1065: 33 00 00 00 01 r0 = 0x10000 + 1070: 83 00 01 ff i32 r0 = r0 + 0xffffffffffffff01 + 1074: 97 00 10 r0 = r0 << 0x10 + 1077: 95 00 00 ff r0 = r0 + 0xffffffffffffff00 + 1081: d3 10 0b r11 = r0 ^ r1 + 1084: 95 aa 01 r10 = r10 + 0x1 + 1087: 33 02 02 r2 = 0x2 + 1090: ab 2a dd jump 1055 if r10 != r2 + : @46 + 1093: 33 04 00 00 0f r4 = 0xf0000 + 1098: 83 44 ff 00 i32 r4 = r4 + 0xff + 1102: 97 44 0c r4 = r4 << 0xc + 1105: 95 44 0f r4 = r4 + 0xf + 1108: ab 4b e2 00 jump 1334 if r11 != r4 + : @47 + 1112: 33 05 16 r5 = 0x16 + 1115: 33 0a r10 = 0 + 1117: 01 fallthrough + : @48 + 1118: 33 01 00 10 0f r1 = 0xf1000 + 1123: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 1127: 97 11 0c r1 = r1 << 0xc + 1130: 95 11 f0 00 r1 = r1 + 0xf0 + 1134: 33 00 00 10 f0 0f r0 = 0xff01000 + 1140: 83 00 f0 i32 r0 = r0 + 0xfffffffffffffff0 + 1143: d3 10 0b r11 = r0 ^ r1 + 1146: 95 aa 01 r10 = r10 + 0x1 + 1149: 33 02 02 r2 = 0x2 + 1152: ab 2a de jump 1118 if r10 != r2 + : @49 + 1155: 33 04 00 00 01 r4 = 0x10000 + 1160: 83 44 01 ff i32 r4 = r4 + 0xffffffffffffff01 + 1164: 97 44 10 r4 = r4 << 0x10 + 1167: 95 44 00 ff r4 = r4 + 0xffffffffffffff00 + 1171: ab 4b a3 00 jump 1334 if r11 != r4 + : @50 + 1175: 33 05 17 r5 = 0x17 + 1178: 33 0a r10 = 0 + 1180: 01 fallthrough + : @51 + 1181: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 1187: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 1191: 33 00 00 00 ff 00 r0 = 0xff0000 + 1197: 83 00 ff 00 i32 r0 = r0 + 0xff + 1201: d3 10 0b r11 = r0 ^ r1 + 1204: 95 aa 01 r10 = r10 + 0x1 + 1207: 33 02 02 r2 = 0x2 + 1210: ab 2a e3 jump 1181 if r10 != r2 + : @52 + 1213: 33 04 00 10 f0 0f r4 = 0xff01000 + 1219: 83 44 f0 i32 r4 = r4 + 0xfffffffffffffff0 + 1222: ab 4b 70 jump 1334 if r11 != r4 + : @53 + 1225: 33 05 18 r5 = 0x18 + 1228: 33 00 00 00 01 r0 = 0x10000 + 1233: 83 00 01 ff i32 r0 = r0 + 0xffffffffffffff01 + 1237: 97 00 10 r0 = r0 << 0x10 + 1240: 95 00 00 ff r0 = r0 + 0xffffffffffffff00 + 1244: 85 01 r1 = r0 ^ 0 + 1246: 33 04 00 00 01 r4 = 0x10000 + 1251: 83 44 01 ff i32 r4 = r4 + 0xffffffffffffff01 + 1255: 97 44 10 r4 = r4 << 0x10 + 1258: 95 44 00 ff r4 = r4 + 0xffffffffffffff00 + 1262: ab 41 48 jump 1334 if r1 != r4 + : @54 + 1265: 33 05 19 r5 = 0x19 + 1268: 33 00 00 00 ff 00 r0 = 0xff0000 + 1274: 83 00 ff 00 i32 r0 = r0 + 0xff + 1278: 85 01 r1 = r0 ^ 0 + 1280: 33 04 00 00 ff 00 r4 = 0xff0000 + 1286: 83 44 ff 00 i32 r4 = r4 + 0xff + 1290: ab 41 2c jump 1334 if r1 != r4 + : @55 + 1293: 33 05 1a r5 = 0x1a + 1296: 33 00 r0 = 0 + 1298: 33 04 r4 = 0 + 1300: ab 40 22 jump 1334 if r0 != r4 + : @56 + 1303: 33 05 1b r5 = 0x1b + 1306: 33 00 00 10 11 11 r0 = 0x11111000 + 1312: 83 00 11 01 i32 r0 = r0 + 0x111 + 1316: 33 01 00 20 22 22 r1 = 0x22222000 + 1322: 83 11 22 02 i32 r1 = r1 + 0x222 + 1326: 33 04 r4 = 0 + 1328: 52 04 06 jump 1334 if r4 != 0 + : @57 + 1331: 52 05 04 jump 1335 if r5 != 0 + : @58 + 1334: 00 trap + : @59 + 1335: 28 c9 fa jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r1 = 0x22222222 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0xff00ff0 (initially was 0x0) + * r5 = 0x1b (initially was 0x0) + * r9 = 0xf00ff00f (initially was 0x0) + * r10 = 0x2 (initially was 0x0) + * r11 = 0xff00ff0 (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9487 + + +## riscv_rv64ui_xori + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 0a 00 10 ff 00 r10 = 0xff1000 + 22: 83 aa 00 ff i32 r10 = r10 + 0xffffffffffffff00 + 26: 85 ab 0f ff r11 = r10 ^ 0xffffffffffffff0f + 30: 33 04 00 f0 00 ff r4 = 0xffffffffff00f000 + 36: 83 44 0f i32 r4 = r4 + 0xf + 39: ab 4b 9c 01 jump 451 if r11 != r4 + : @2 + 43: 33 05 03 r5 = 0x3 + 46: 33 0a 00 10 f0 0f r10 = 0xff01000 + 52: 83 aa f0 i32 r10 = r10 + 0xfffffffffffffff0 + 55: 85 ab f0 00 r11 = r10 ^ 0xf0 + 59: 33 04 00 10 f0 0f r4 = 0xff01000 + 65: 83 44 00 ff i32 r4 = r4 + 0xffffffffffffff00 + 69: ab 4b 7e 01 jump 451 if r11 != r4 + : @3 + 73: 33 05 04 r5 = 0x4 + 76: 33 0a 00 10 ff 00 r10 = 0xff1000 + 82: 83 aa ff f8 i32 r10 = r10 + 0xfffffffffffff8ff + 86: 85 ab 0f 07 r11 = r10 ^ 0x70f + 90: 33 04 00 10 ff 00 r4 = 0xff1000 + 96: 83 44 f0 i32 r4 = r4 + 0xfffffffffffffff0 + 99: ab 4b 60 01 jump 451 if r11 != r4 + : @4 + 103: 33 05 05 r5 = 0x5 + 106: 33 0a 00 f0 0f f0 r10 = 0xfffffffff00ff000 + 112: 83 aa 0f i32 r10 = r10 + 0xf + 115: 85 ab f0 00 r11 = r10 ^ 0xf0 + 119: 33 04 00 f0 0f f0 r4 = 0xfffffffff00ff000 + 125: 83 44 ff 00 i32 r4 = r4 + 0xff + 129: ab 4b 42 01 jump 451 if r11 != r4 + : @5 + 133: 33 05 06 r5 = 0x6 + 136: 33 08 00 f0 00 ff r8 = 0xffffffffff00f000 + 142: 83 88 00 07 i32 r8 = r8 + 0x700 + 146: 85 88 0f 07 r8 = r8 ^ 0x70f + 150: 33 04 00 f0 00 ff r4 = 0xffffffffff00f000 + 156: 83 44 0f i32 r4 = r4 + 0xf + 159: ab 48 24 01 jump 451 if r8 != r4 + : @6 + 163: 33 05 07 r5 = 0x7 + 166: 33 09 r9 = 0 + 168: 01 fallthrough + : @7 + 169: 33 00 00 10 f0 0f r0 = 0xff01000 + 175: 83 00 f0 i32 r0 = r0 + 0xfffffffffffffff0 + 178: 85 0b f0 00 r11 = r0 ^ 0xf0 + 182: 64 b3 r3 = r11 + 184: 95 99 01 r9 = r9 + 0x1 + 187: 33 02 02 r2 = 0x2 + 190: ab 29 eb jump 169 if r9 != r2 + : @8 + 193: 33 04 00 10 f0 0f r4 = 0xff01000 + 199: 83 44 00 ff i32 r4 = r4 + 0xffffffffffffff00 + 203: ab 43 f8 00 jump 451 if r3 != r4 + : @9 + 207: 33 05 08 r5 = 0x8 + 210: 33 09 r9 = 0 + 212: 01 fallthrough + : @10 + 213: 33 00 00 10 ff 00 r0 = 0xff1000 + 219: 83 00 ff f8 i32 r0 = r0 + 0xfffffffffffff8ff + 223: 85 0b 0f 07 r11 = r0 ^ 0x70f + 227: 64 b3 r3 = r11 + 229: 95 99 01 r9 = r9 + 0x1 + 232: 33 02 02 r2 = 0x2 + 235: ab 29 ea jump 213 if r9 != r2 + : @11 + 238: 33 04 00 10 ff 00 r4 = 0xff1000 + 244: 83 44 f0 i32 r4 = r4 + 0xfffffffffffffff0 + 247: ab 43 cc 00 jump 451 if r3 != r4 + : @12 + 251: 33 05 09 r5 = 0x9 + 254: 33 09 r9 = 0 + 256: 01 fallthrough + : @13 + 257: 33 00 00 f0 0f f0 r0 = 0xfffffffff00ff000 + 263: 83 00 0f i32 r0 = r0 + 0xf + 266: 85 0b f0 00 r11 = r0 ^ 0xf0 + 270: 64 b3 r3 = r11 + 272: 95 99 01 r9 = r9 + 0x1 + 275: 33 02 02 r2 = 0x2 + 278: ab 29 eb jump 257 if r9 != r2 + : @14 + 281: 33 04 00 f0 0f f0 r4 = 0xfffffffff00ff000 + 287: 83 44 ff 00 i32 r4 = r4 + 0xff + 291: ab 43 a0 00 jump 451 if r3 != r4 + : @15 + 295: 33 05 0a r5 = 0xa + 298: 33 09 r9 = 0 + 300: 01 fallthrough + : @16 + 301: 33 00 00 10 f0 0f r0 = 0xff01000 + 307: 83 00 f0 i32 r0 = r0 + 0xfffffffffffffff0 + 310: 85 0b f0 00 r11 = r0 ^ 0xf0 + 314: 95 99 01 r9 = r9 + 0x1 + 317: 33 02 02 r2 = 0x2 + 320: ab 29 ed jump 301 if r9 != r2 + : @17 + 323: 33 04 00 10 f0 0f r4 = 0xff01000 + 329: 83 44 00 ff i32 r4 = r4 + 0xffffffffffffff00 + 333: ab 4b 76 jump 451 if r11 != r4 + : @18 + 336: 33 05 0b r5 = 0xb + 339: 33 09 r9 = 0 + 341: 01 fallthrough + : @19 + 342: 33 00 00 10 ff 00 r0 = 0xff1000 + 348: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 351: 85 0b 0f r11 = r0 ^ 0xf + 354: 95 99 01 r9 = r9 + 0x1 + 357: 33 02 02 r2 = 0x2 + 360: ab 29 ee jump 342 if r9 != r2 + : @20 + 363: 33 04 00 10 ff 00 r4 = 0xff1000 + 369: 83 44 f0 i32 r4 = r4 + 0xfffffffffffffff0 + 372: ab 4b 4f jump 451 if r11 != r4 + : @21 + 375: 33 05 0c r5 = 0xc + 378: 33 09 r9 = 0 + 380: 01 fallthrough + : @22 + 381: 33 00 00 f0 0f f0 r0 = 0xfffffffff00ff000 + 387: 83 00 0f i32 r0 = r0 + 0xf + 390: 85 0b f0 00 r11 = r0 ^ 0xf0 + 394: 95 99 01 r9 = r9 + 0x1 + 397: 33 02 02 r2 = 0x2 + 400: ab 29 ed jump 381 if r9 != r2 + : @23 + 403: 33 04 00 f0 0f f0 r4 = 0xfffffffff00ff000 + 409: 83 44 ff 00 i32 r4 = r4 + 0xff + 413: ab 4b 26 jump 451 if r11 != r4 + : @24 + 416: 33 05 0d r5 = 0xd + 419: 33 00 f0 00 r0 = 0xf0 + 423: 33 04 f0 00 r4 = 0xf0 + 427: ab 40 18 jump 451 if r0 != r4 + : @25 + 430: 33 05 0e r5 = 0xe + 433: 33 00 00 00 ff 00 r0 = 0xff0000 + 439: 83 00 ff 00 i32 r0 = r0 + 0xff + 443: 33 04 r4 = 0 + 445: 52 04 06 jump 451 if r4 != 0 + : @26 + 448: 52 05 04 jump 452 if r5 != 0 + : @27 + 451: 00 trap + : @28 + 452: 28 3c fe jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0xfffffffff00ff0ff (initially was 0x0) + * r5 = 0xe (initially was 0x0) + * r8 = 0xffffffffff00f00f (initially was 0x0) + * r9 = 0x2 (initially was 0x0) + * r10 = 0xfffffffff00ff00f (initially was 0x0) + * r11 = 0xfffffffff00ff0ff (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9836 + + +## riscv_rv64um_div + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 08 14 r8 = 0x14 + 19: 33 09 06 r9 = 0x6 + 22: cc 98 0b r11 = r8 /s r9 + 25: 33 04 03 r4 = 0x3 + 28: ab 4b a3 00 jump 191 if r11 != r4 + : @2 + 32: 33 05 03 r5 = 0x3 + 35: 33 08 ec r8 = 0xffffffffffffffec + 38: 33 09 06 r9 = 0x6 + 41: cc 98 0b r11 = r8 /s r9 + 44: 33 04 fd r4 = 0xfffffffffffffffd + 47: ab 4b 90 00 jump 191 if r11 != r4 + : @3 + 51: 33 05 04 r5 = 0x4 + 54: 33 08 14 r8 = 0x14 + 57: 33 09 fa r9 = 0xfffffffffffffffa + 60: cc 98 0b r11 = r8 /s r9 + 63: 33 04 fd r4 = 0xfffffffffffffffd + 66: ab 4b 7d jump 191 if r11 != r4 + : @4 + 69: 33 05 05 r5 = 0x5 + 72: 33 08 ec r8 = 0xffffffffffffffec + 75: 33 09 fa r9 = 0xfffffffffffffffa + 78: cc 98 0b r11 = r8 /s r9 + 81: 33 04 03 r4 = 0x3 + 84: ab 4b 6b jump 191 if r11 != r4 + : @5 + 87: 33 05 06 r5 = 0x6 + 90: 33 08 ff r8 = 0xffffffffffffffff + 93: 97 88 3f r8 = r8 << 0x3f + 96: 33 09 01 r9 = 0x1 + 99: cc 98 0b r11 = r8 /s r9 + 102: 33 04 ff r4 = 0xffffffffffffffff + 105: 97 44 3f r4 = r4 << 0x3f + 108: ab 4b 53 jump 191 if r11 != r4 + : @6 + 111: 33 05 07 r5 = 0x7 + 114: 33 08 ff r8 = 0xffffffffffffffff + 117: 97 88 3f r8 = r8 << 0x3f + 120: 33 09 ff r9 = 0xffffffffffffffff + 123: cc 98 0b r11 = r8 /s r9 + 126: 33 04 ff r4 = 0xffffffffffffffff + 129: 97 44 3f r4 = r4 << 0x3f + 132: ab 4b 3b jump 191 if r11 != r4 + : @7 + 135: 33 05 08 r5 = 0x8 + 138: 33 08 ff r8 = 0xffffffffffffffff + 141: 97 88 3f r8 = r8 << 0x3f + 144: 33 09 r9 = 0 + 146: cc 98 0b r11 = r8 /s r9 + 149: 33 04 ff r4 = 0xffffffffffffffff + 152: ab 4b 27 jump 191 if r11 != r4 + : @8 + 155: 33 05 09 r5 = 0x9 + 158: 33 08 01 r8 = 0x1 + 161: 33 09 r9 = 0 + 163: cc 98 0b r11 = r8 /s r9 + 166: 33 04 ff r4 = 0xffffffffffffffff + 169: ab 4b 16 jump 191 if r11 != r4 + : @9 + 172: 33 05 0a r5 = 0xa + 175: 33 08 r8 = 0 + 177: 33 09 r9 = 0 + 179: cc 98 0b r11 = r8 /s r9 + 182: 33 04 ff r4 = 0xffffffffffffffff + 185: ab 4b 06 jump 191 if r11 != r4 + : @10 + 188: 52 05 04 jump 192 if r5 != 0 + : @11 + 191: 00 trap + : @12 + 192: 28 40 ff jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r4 = 0xffffffffffffffff (initially was 0x0) + * r5 = 0xa (initially was 0x0) + * r11 = 0xffffffffffffffff (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9935 + + +## riscv_rv64um_divu + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 08 14 r8 = 0x14 + 19: 33 09 06 r9 = 0x6 + 22: cb 98 0b r11 = r8 /u r9 + 25: 33 04 03 r4 = 0x3 + 28: ab 4b b9 00 jump 213 if r11 != r4 + : @2 + 32: 33 05 03 r5 = 0x3 + 35: 33 08 ec r8 = 0xffffffffffffffec + 38: 33 09 06 r9 = 0x6 + 41: cb 98 0b r11 = r8 /u r9 + 44: 33 04 00 b0 aa 02 r4 = 0x2aab000 + 50: 83 44 ab fa i32 r4 = r4 + 0xfffffffffffffaab + 54: 97 44 0c r4 = r4 << 0xc + 57: 95 44 ab fa r4 = r4 + 0xfffffffffffffaab + 61: 97 44 0c r4 = r4 << 0xc + 64: 95 44 ab fa r4 = r4 + 0xfffffffffffffaab + 68: 97 44 0c r4 = r4 << 0xc + 71: 95 44 a7 fa r4 = r4 + 0xfffffffffffffaa7 + 75: ab 4b 8a 00 jump 213 if r11 != r4 + : @3 + 79: 33 05 04 r5 = 0x4 + 82: 33 08 14 r8 = 0x14 + 85: 33 09 fa r9 = 0xfffffffffffffffa + 88: cb 98 0b r11 = r8 /u r9 + 91: 33 04 r4 = 0 + 93: ab 4b 78 jump 213 if r11 != r4 + : @4 + 96: 33 05 05 r5 = 0x5 + 99: 33 08 ec r8 = 0xffffffffffffffec + 102: 33 09 fa r9 = 0xfffffffffffffffa + 105: cb 98 0b r11 = r8 /u r9 + 108: 33 04 r4 = 0 + 110: ab 4b 67 jump 213 if r11 != r4 + : @5 + 113: 33 05 06 r5 = 0x6 + 116: 33 08 ff r8 = 0xffffffffffffffff + 119: 97 88 3f r8 = r8 << 0x3f + 122: 33 09 01 r9 = 0x1 + 125: cb 98 0b r11 = r8 /u r9 + 128: 33 04 ff r4 = 0xffffffffffffffff + 131: 97 44 3f r4 = r4 << 0x3f + 134: ab 4b 4f jump 213 if r11 != r4 + : @6 + 137: 33 05 07 r5 = 0x7 + 140: 33 08 ff r8 = 0xffffffffffffffff + 143: 97 88 3f r8 = r8 << 0x3f + 146: 33 09 ff r9 = 0xffffffffffffffff + 149: cb 98 0b r11 = r8 /u r9 + 152: 33 04 r4 = 0 + 154: ab 4b 3b jump 213 if r11 != r4 + : @7 + 157: 33 05 08 r5 = 0x8 + 160: 33 08 ff r8 = 0xffffffffffffffff + 163: 97 88 3f r8 = r8 << 0x3f + 166: 33 09 r9 = 0 + 168: cb 98 0b r11 = r8 /u r9 + 171: 33 04 ff r4 = 0xffffffffffffffff + 174: ab 4b 27 jump 213 if r11 != r4 + : @8 + 177: 33 05 09 r5 = 0x9 + 180: 33 08 01 r8 = 0x1 + 183: 33 09 r9 = 0 + 185: cb 98 0b r11 = r8 /u r9 + 188: 33 04 ff r4 = 0xffffffffffffffff + 191: ab 4b 16 jump 213 if r11 != r4 + : @9 + 194: 33 05 0a r5 = 0xa + 197: 33 08 r8 = 0 + 199: 33 09 r9 = 0 + 201: cb 98 0b r11 = r8 /u r9 + 204: 33 04 ff r4 = 0xffffffffffffffff + 207: ab 4b 06 jump 213 if r11 != r4 + : @10 + 210: 52 05 04 jump 214 if r5 != 0 + : @11 + 213: 00 trap + : @12 + 214: 28 2a ff jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r4 = 0xffffffffffffffff (initially was 0x0) + * r5 = 0xa (initially was 0x0) + * r11 = 0xffffffffffffffff (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9929 + + +## riscv_rv64um_divuw + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 08 14 r8 = 0x14 + 19: 33 09 06 r9 = 0x6 + 22: c1 98 0b i32 r11 = r8 /u r9 + 25: 33 04 03 r4 = 0x3 + 28: ab 4b aa 00 jump 198 if r11 != r4 + : @2 + 32: 33 05 03 r5 = 0x3 + 35: 33 08 01 r8 = 0x1 + 38: 97 88 20 r8 = r8 << 0x20 + 41: 95 88 ec r8 = r8 + 0xffffffffffffffec + 44: 33 09 06 r9 = 0x6 + 47: c1 98 0b i32 r11 = r8 /u r9 + 50: 33 04 00 b0 aa 2a r4 = 0x2aaab000 + 56: 83 44 a7 fa i32 r4 = r4 + 0xfffffffffffffaa7 + 60: ab 4b 8a 00 jump 198 if r11 != r4 + : @3 + 64: 33 05 04 r5 = 0x4 + 67: 33 08 14 r8 = 0x14 + 70: 33 09 fa r9 = 0xfffffffffffffffa + 73: c1 98 0b i32 r11 = r8 /u r9 + 76: 33 04 r4 = 0 + 78: ab 4b 78 jump 198 if r11 != r4 + : @4 + 81: 33 05 05 r5 = 0x5 + 84: 33 08 ec r8 = 0xffffffffffffffec + 87: 33 09 fa r9 = 0xfffffffffffffffa + 90: c1 98 0b i32 r11 = r8 /u r9 + 93: 33 04 r4 = 0 + 95: ab 4b 67 jump 198 if r11 != r4 + : @5 + 98: 33 05 06 r5 = 0x6 + 101: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 107: 33 09 01 r9 = 0x1 + 110: c1 98 0b i32 r11 = r8 /u r9 + 113: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 119: ab 4b 4f jump 198 if r11 != r4 + : @6 + 122: 33 05 07 r5 = 0x7 + 125: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 131: 33 09 ff r9 = 0xffffffffffffffff + 134: c1 98 0b i32 r11 = r8 /u r9 + 137: 33 04 r4 = 0 + 139: ab 4b 3b jump 198 if r11 != r4 + : @7 + 142: 33 05 08 r5 = 0x8 + 145: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 151: 33 09 r9 = 0 + 153: c1 98 0b i32 r11 = r8 /u r9 + 156: 33 04 ff r4 = 0xffffffffffffffff + 159: ab 4b 27 jump 198 if r11 != r4 + : @8 + 162: 33 05 09 r5 = 0x9 + 165: 33 08 01 r8 = 0x1 + 168: 33 09 r9 = 0 + 170: c1 98 0b i32 r11 = r8 /u r9 + 173: 33 04 ff r4 = 0xffffffffffffffff + 176: ab 4b 16 jump 198 if r11 != r4 + : @9 + 179: 33 05 0a r5 = 0xa + 182: 33 08 r8 = 0 + 184: 33 09 r9 = 0 + 186: c1 98 0b i32 r11 = r8 /u r9 + 189: 33 04 ff r4 = 0xffffffffffffffff + 192: ab 4b 06 jump 198 if r11 != r4 + : @10 + 195: 52 05 04 jump 199 if r5 != 0 + : @11 + 198: 00 trap + : @12 + 199: 28 39 ff jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r4 = 0xffffffffffffffff (initially was 0x0) + * r5 = 0xa (initially was 0x0) + * r11 = 0xffffffffffffffff (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9937 + + +## riscv_rv64um_divw + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 08 14 r8 = 0x14 + 19: 33 09 06 r9 = 0x6 + 22: c2 98 0b i32 r11 = r8 /s r9 + 25: 33 04 03 r4 = 0x3 + 28: ab 4b a3 00 jump 191 if r11 != r4 + : @2 + 32: 33 05 03 r5 = 0x3 + 35: 33 08 ec r8 = 0xffffffffffffffec + 38: 33 09 06 r9 = 0x6 + 41: c2 98 0b i32 r11 = r8 /s r9 + 44: 33 04 fd r4 = 0xfffffffffffffffd + 47: ab 4b 90 00 jump 191 if r11 != r4 + : @3 + 51: 33 05 04 r5 = 0x4 + 54: 33 08 14 r8 = 0x14 + 57: 33 09 fa r9 = 0xfffffffffffffffa + 60: c2 98 0b i32 r11 = r8 /s r9 + 63: 33 04 fd r4 = 0xfffffffffffffffd + 66: ab 4b 7d jump 191 if r11 != r4 + : @4 + 69: 33 05 05 r5 = 0x5 + 72: 33 08 ec r8 = 0xffffffffffffffec + 75: 33 09 fa r9 = 0xfffffffffffffffa + 78: c2 98 0b i32 r11 = r8 /s r9 + 81: 33 04 03 r4 = 0x3 + 84: ab 4b 6b jump 191 if r11 != r4 + : @5 + 87: 33 05 06 r5 = 0x6 + 90: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 96: 33 09 01 r9 = 0x1 + 99: c2 98 0b i32 r11 = r8 /s r9 + 102: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 108: ab 4b 53 jump 191 if r11 != r4 + : @6 + 111: 33 05 07 r5 = 0x7 + 114: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 120: 33 09 ff r9 = 0xffffffffffffffff + 123: c2 98 0b i32 r11 = r8 /s r9 + 126: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 132: ab 4b 3b jump 191 if r11 != r4 + : @7 + 135: 33 05 08 r5 = 0x8 + 138: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 144: 33 09 r9 = 0 + 146: c2 98 0b i32 r11 = r8 /s r9 + 149: 33 04 ff r4 = 0xffffffffffffffff + 152: ab 4b 27 jump 191 if r11 != r4 + : @8 + 155: 33 05 09 r5 = 0x9 + 158: 33 08 01 r8 = 0x1 + 161: 33 09 r9 = 0 + 163: c2 98 0b i32 r11 = r8 /s r9 + 166: 33 04 ff r4 = 0xffffffffffffffff + 169: ab 4b 16 jump 191 if r11 != r4 + : @9 + 172: 33 05 0a r5 = 0xa + 175: 33 08 r8 = 0 + 177: 33 09 r9 = 0 + 179: c2 98 0b i32 r11 = r8 /s r9 + 182: 33 04 ff r4 = 0xffffffffffffffff + 185: ab 4b 06 jump 191 if r11 != r4 + : @10 + 188: 52 05 04 jump 192 if r5 != 0 + : @11 + 191: 00 trap + : @12 + 192: 28 40 ff jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r4 = 0xffffffffffffffff (initially was 0x0) + * r5 = 0xa (initially was 0x0) + * r11 = 0xffffffffffffffff (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9940 + + +## riscv_rv64um_mul + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 20 r5 = 0x20 + 16: 33 08 00 80 00 r8 = 0x8000 + 21: 83 88 00 fe i32 r8 = r8 + 0xfffffffffffffe00 + 25: 33 09 00 70 db 06 r9 = 0x6db7000 + 31: 83 99 b7 fd i32 r9 = r9 + 0xfffffffffffffdb7 + 35: 97 99 0c r9 = r9 << 0xc + 38: 95 99 b7 fd r9 = r9 + 0xfffffffffffffdb7 + 42: 97 99 0c r9 = r9 << 0xc + 45: 95 99 b7 fd r9 = r9 + 0xfffffffffffffdb7 + 49: 97 99 0c r9 = r9 << 0xc + 52: 95 99 b7 fd r9 = r9 + 0xfffffffffffffdb7 + 56: ca 98 0b r11 = r8 * r9 + 59: 33 04 00 10 r4 = 0x1000 + 63: 83 44 00 02 i32 r4 = r4 + 0x200 + 67: ab 4b 7a 03 jump 957 if r11 != r4 + : @2 + 71: 33 05 21 r5 = 0x21 + 74: 33 08 00 80 00 r8 = 0x8000 + 79: 83 88 c0 i32 r8 = r8 + 0xffffffffffffffc0 + 82: 33 09 00 70 db 06 r9 = 0x6db7000 + 88: 83 99 b7 fd i32 r9 = r9 + 0xfffffffffffffdb7 + 92: 97 99 0c r9 = r9 << 0xc + 95: 95 99 b7 fd r9 = r9 + 0xfffffffffffffdb7 + 99: 97 99 0c r9 = r9 << 0xc + 102: 95 99 b7 fd r9 = r9 + 0xfffffffffffffdb7 + 106: 97 99 0c r9 = r9 << 0xc + 109: 95 99 b7 fd r9 = r9 + 0xfffffffffffffdb7 + 113: ca 98 0b r11 = r8 * r9 + 116: 33 04 00 10 r4 = 0x1000 + 120: 83 44 40 02 i32 r4 = r4 + 0x240 + 124: ab 4b 41 03 jump 957 if r11 != r4 + : @3 + 128: 33 05 02 r5 = 0x2 + 131: 33 08 r8 = 0 + 133: 33 09 r9 = 0 + 135: ca 98 0b r11 = r8 * r9 + 138: 33 04 r4 = 0 + 140: ab 4b 31 03 jump 957 if r11 != r4 + : @4 + 144: 33 05 03 r5 = 0x3 + 147: 33 08 01 r8 = 0x1 + 150: 33 09 01 r9 = 0x1 + 153: ca 98 0b r11 = r8 * r9 + 156: 33 04 01 r4 = 0x1 + 159: ab 4b 1e 03 jump 957 if r11 != r4 + : @5 + 163: 33 05 04 r5 = 0x4 + 166: 33 08 03 r8 = 0x3 + 169: 33 09 07 r9 = 0x7 + 172: ca 98 0b r11 = r8 * r9 + 175: 33 04 15 r4 = 0x15 + 178: ab 4b 0b 03 jump 957 if r11 != r4 + : @6 + 182: 33 05 05 r5 = 0x5 + 185: 33 08 r8 = 0 + 187: 33 09 00 80 r9 = 0xffffffffffff8000 + 191: ca 98 0b r11 = r8 * r9 + 194: 33 04 r4 = 0 + 196: ab 4b f9 02 jump 957 if r11 != r4 + : @7 + 200: 33 05 06 r5 = 0x6 + 203: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 209: 33 09 r9 = 0 + 211: ca 98 0b r11 = r8 * r9 + 214: 33 04 r4 = 0 + 216: ab 4b e5 02 jump 957 if r11 != r4 + : @8 + 220: 33 05 07 r5 = 0x7 + 223: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 229: 33 09 00 80 r9 = 0xffffffffffff8000 + 233: ca 98 0b r11 = r8 * r9 + 236: 33 04 01 r4 = 0x1 + 239: 97 44 2e r4 = r4 << 0x2e + 242: ab 4b cb 02 jump 957 if r11 != r4 + : @9 + 246: 33 05 1e r5 = 0x1e + 249: 33 08 00 b0 aa fa r8 = 0xfffffffffaaab000 + 255: 83 88 ab fa i32 r8 = r8 + 0xfffffffffffffaab + 259: 97 88 0c r8 = r8 << 0xc + 262: 95 88 ab fa r8 = r8 + 0xfffffffffffffaab + 266: 97 88 0c r8 = r8 << 0xc + 269: 95 88 ab fa r8 = r8 + 0xfffffffffffffaab + 273: 97 88 0c r8 = r8 << 0xc + 276: 95 88 ab fa r8 = r8 + 0xfffffffffffffaab + 280: 33 09 00 00 03 r9 = 0x30000 + 285: 83 99 7d fe i32 r9 = r9 + 0xfffffffffffffe7d + 289: ca 98 0b r11 = r8 * r9 + 292: 33 04 00 00 01 r4 = 0x10000 + 297: 83 44 7f ff i32 r4 = r4 + 0xffffffffffffff7f + 301: ab 4b 90 02 jump 957 if r11 != r4 + : @10 + 305: 33 05 1f r5 = 0x1f + 308: 33 08 00 00 03 r8 = 0x30000 + 313: 83 88 7d fe i32 r8 = r8 + 0xfffffffffffffe7d + 317: 33 09 00 b0 aa fa r9 = 0xfffffffffaaab000 + 323: 83 99 ab fa i32 r9 = r9 + 0xfffffffffffffaab + 327: 97 99 0c r9 = r9 << 0xc + 330: 95 99 ab fa r9 = r9 + 0xfffffffffffffaab + 334: 97 99 0c r9 = r9 << 0xc + 337: 95 99 ab fa r9 = r9 + 0xfffffffffffffaab + 341: 97 99 0c r9 = r9 << 0xc + 344: 95 99 ab fa r9 = r9 + 0xfffffffffffffaab + 348: ca 98 0b r11 = r8 * r9 + 351: 33 04 00 00 01 r4 = 0x10000 + 356: 83 44 7f ff i32 r4 = r4 + 0xffffffffffffff7f + 360: ab 4b 55 02 jump 957 if r11 != r4 + : @11 + 364: 33 05 08 r5 = 0x8 + 367: 33 08 0d r8 = 0xd + 370: 33 09 0b r9 = 0xb + 373: ca 98 08 r8 = r8 * r9 + 376: 33 04 8f 00 r4 = 0x8f + 380: ab 48 41 02 jump 957 if r8 != r4 + : @12 + 384: 33 05 09 r5 = 0x9 + 387: 33 08 0e r8 = 0xe + 390: 33 09 0b r9 = 0xb + 393: ca 98 09 r9 = r8 * r9 + 396: 33 04 9a 00 r4 = 0x9a + 400: ab 49 2d 02 jump 957 if r9 != r4 + : @13 + 404: 33 05 0a r5 = 0xa + 407: 33 08 0d r8 = 0xd + 410: ca 88 08 r8 = r8 * r8 + 413: 33 04 a9 00 r4 = 0xa9 + 417: ab 48 1c 02 jump 957 if r8 != r4 + : @14 + 421: 33 05 0b r5 = 0xb + 424: 33 0a r10 = 0 + 426: 01 fallthrough + : @15 + 427: 33 00 0d r0 = 0xd + 430: 33 01 0b r1 = 0xb + 433: ca 10 0b r11 = r0 * r1 + 436: 64 b3 r3 = r11 + 438: 95 aa 01 r10 = r10 + 0x1 + 441: 33 02 02 r2 = 0x2 + 444: ab 2a ef jump 427 if r10 != r2 + : @16 + 447: 33 04 8f 00 r4 = 0x8f + 451: ab 43 fa 01 jump 957 if r3 != r4 + : @17 + 455: 33 05 0c r5 = 0xc + 458: 33 0a r10 = 0 + 460: 01 fallthrough + : @18 + 461: 33 00 0e r0 = 0xe + 464: 33 01 0b r1 = 0xb + 467: ca 10 0b r11 = r0 * r1 + 470: 64 b3 r3 = r11 + 472: 95 aa 01 r10 = r10 + 0x1 + 475: 33 02 02 r2 = 0x2 + 478: ab 2a ef jump 461 if r10 != r2 + : @19 + 481: 33 04 9a 00 r4 = 0x9a + 485: ab 43 d8 01 jump 957 if r3 != r4 + : @20 + 489: 33 05 0d r5 = 0xd + 492: 33 0a r10 = 0 + 494: 01 fallthrough + : @21 + 495: 33 00 0f r0 = 0xf + 498: 33 01 0b r1 = 0xb + 501: ca 10 0b r11 = r0 * r1 + 504: 64 b3 r3 = r11 + 506: 95 aa 01 r10 = r10 + 0x1 + 509: 33 02 02 r2 = 0x2 + 512: ab 2a ef jump 495 if r10 != r2 + : @22 + 515: 33 04 a5 00 r4 = 0xa5 + 519: ab 43 b6 01 jump 957 if r3 != r4 + : @23 + 523: 33 05 0e r5 = 0xe + 526: 33 0a r10 = 0 + 528: 01 fallthrough + : @24 + 529: 33 00 0d r0 = 0xd + 532: 33 01 0b r1 = 0xb + 535: ca 10 0b r11 = r0 * r1 + 538: 95 aa 01 r10 = r10 + 0x1 + 541: 33 02 02 r2 = 0x2 + 544: ab 2a f1 jump 529 if r10 != r2 + : @25 + 547: 33 04 8f 00 r4 = 0x8f + 551: ab 4b 96 01 jump 957 if r11 != r4 + : @26 + 555: 33 05 0f r5 = 0xf + 558: 33 0a r10 = 0 + 560: 01 fallthrough + : @27 + 561: 33 00 0e r0 = 0xe + 564: 33 01 0b r1 = 0xb + 567: ca 10 0b r11 = r0 * r1 + 570: 95 aa 01 r10 = r10 + 0x1 + 573: 33 02 02 r2 = 0x2 + 576: ab 2a f1 jump 561 if r10 != r2 + : @28 + 579: 33 04 9a 00 r4 = 0x9a + 583: ab 4b 76 01 jump 957 if r11 != r4 + : @29 + 587: 33 05 10 r5 = 0x10 + 590: 33 0a r10 = 0 + 592: 01 fallthrough + : @30 + 593: 33 00 0f r0 = 0xf + 596: 33 01 0b r1 = 0xb + 599: ca 10 0b r11 = r0 * r1 + 602: 95 aa 01 r10 = r10 + 0x1 + 605: 33 02 02 r2 = 0x2 + 608: ab 2a f1 jump 593 if r10 != r2 + : @31 + 611: 33 04 a5 00 r4 = 0xa5 + 615: ab 4b 56 01 jump 957 if r11 != r4 + : @32 + 619: 33 05 11 r5 = 0x11 + 622: 33 0a r10 = 0 + 624: 01 fallthrough + : @33 + 625: 33 00 0d r0 = 0xd + 628: 33 01 0b r1 = 0xb + 631: ca 10 0b r11 = r0 * r1 + 634: 95 aa 01 r10 = r10 + 0x1 + 637: 33 02 02 r2 = 0x2 + 640: ab 2a f1 jump 625 if r10 != r2 + : @34 + 643: 33 04 8f 00 r4 = 0x8f + 647: ab 4b 36 01 jump 957 if r11 != r4 + : @35 + 651: 33 05 12 r5 = 0x12 + 654: 33 0a r10 = 0 + 656: 01 fallthrough + : @36 + 657: 33 00 0e r0 = 0xe + 660: 33 01 0b r1 = 0xb + 663: ca 10 0b r11 = r0 * r1 + 666: 95 aa 01 r10 = r10 + 0x1 + 669: 33 02 02 r2 = 0x2 + 672: ab 2a f1 jump 657 if r10 != r2 + : @37 + 675: 33 04 9a 00 r4 = 0x9a + 679: ab 4b 16 01 jump 957 if r11 != r4 + : @38 + 683: 33 05 13 r5 = 0x13 + 686: 33 0a r10 = 0 + 688: 01 fallthrough + : @39 + 689: 33 00 0f r0 = 0xf + 692: 33 01 0b r1 = 0xb + 695: ca 10 0b r11 = r0 * r1 + 698: 95 aa 01 r10 = r10 + 0x1 + 701: 33 02 02 r2 = 0x2 + 704: ab 2a f1 jump 689 if r10 != r2 + : @40 + 707: 33 04 a5 00 r4 = 0xa5 + 711: ab 4b f6 00 jump 957 if r11 != r4 + : @41 + 715: 33 05 14 r5 = 0x14 + 718: 33 0a r10 = 0 + 720: 01 fallthrough + : @42 + 721: 33 01 0b r1 = 0xb + 724: 33 00 0d r0 = 0xd + 727: ca 10 0b r11 = r0 * r1 + 730: 95 aa 01 r10 = r10 + 0x1 + 733: 33 02 02 r2 = 0x2 + 736: ab 2a f1 jump 721 if r10 != r2 + : @43 + 739: 33 04 8f 00 r4 = 0x8f + 743: ab 4b d6 00 jump 957 if r11 != r4 + : @44 + 747: 33 05 15 r5 = 0x15 + 750: 33 0a r10 = 0 + 752: 01 fallthrough + : @45 + 753: 33 01 0b r1 = 0xb + 756: 33 00 0e r0 = 0xe + 759: ca 10 0b r11 = r0 * r1 + 762: 95 aa 01 r10 = r10 + 0x1 + 765: 33 02 02 r2 = 0x2 + 768: ab 2a f1 jump 753 if r10 != r2 + : @46 + 771: 33 04 9a 00 r4 = 0x9a + 775: ab 4b b6 00 jump 957 if r11 != r4 + : @47 + 779: 33 05 16 r5 = 0x16 + 782: 33 0a r10 = 0 + 784: 01 fallthrough + : @48 + 785: 33 01 0b r1 = 0xb + 788: 33 00 0f r0 = 0xf + 791: ca 10 0b r11 = r0 * r1 + 794: 95 aa 01 r10 = r10 + 0x1 + 797: 33 02 02 r2 = 0x2 + 800: ab 2a f1 jump 785 if r10 != r2 + : @49 + 803: 33 04 a5 00 r4 = 0xa5 + 807: ab 4b 96 00 jump 957 if r11 != r4 + : @50 + 811: 33 05 17 r5 = 0x17 + 814: 33 0a r10 = 0 + 816: 01 fallthrough + : @51 + 817: 33 01 0b r1 = 0xb + 820: 33 00 0d r0 = 0xd + 823: ca 10 0b r11 = r0 * r1 + 826: 95 aa 01 r10 = r10 + 0x1 + 829: 33 02 02 r2 = 0x2 + 832: ab 2a f1 jump 817 if r10 != r2 + : @52 + 835: 33 04 8f 00 r4 = 0x8f + 839: ab 4b 76 jump 957 if r11 != r4 + : @53 + 842: 33 05 18 r5 = 0x18 + 845: 33 0a r10 = 0 + 847: 01 fallthrough + : @54 + 848: 33 01 0b r1 = 0xb + 851: 33 00 0e r0 = 0xe + 854: ca 10 0b r11 = r0 * r1 + 857: 95 aa 01 r10 = r10 + 0x1 + 860: 33 02 02 r2 = 0x2 + 863: ab 2a f1 jump 848 if r10 != r2 + : @55 + 866: 33 04 9a 00 r4 = 0x9a + 870: ab 4b 57 jump 957 if r11 != r4 + : @56 + 873: 33 05 19 r5 = 0x19 + 876: 33 0a r10 = 0 + 878: 01 fallthrough + : @57 + 879: 33 01 0b r1 = 0xb + 882: 33 00 0f r0 = 0xf + 885: ca 10 0b r11 = r0 * r1 + 888: 95 aa 01 r10 = r10 + 0x1 + 891: 33 02 02 r2 = 0x2 + 894: ab 2a f1 jump 879 if r10 != r2 + : @58 + 897: 33 04 a5 00 r4 = 0xa5 + 901: ab 4b 38 jump 957 if r11 != r4 + : @59 + 904: 33 05 1a r5 = 0x1a + 907: 33 00 1f r0 = 0x1f + 910: 96 01 r1 = r0 * 0 + 912: 33 04 r4 = 0 + 914: ab 41 2b jump 957 if r1 != r4 + : @60 + 917: 33 05 1b r5 = 0x1b + 920: 33 00 20 r0 = 0x20 + 923: 96 01 r1 = r0 * 0 + 925: 33 04 r4 = 0 + 927: ab 41 1e jump 957 if r1 != r4 + : @61 + 930: 33 05 1c r5 = 0x1c + 933: 33 00 r0 = 0 + 935: 33 04 r4 = 0 + 937: ab 40 14 jump 957 if r0 != r4 + : @62 + 940: 33 05 1d r5 = 0x1d + 943: 33 00 21 r0 = 0x21 + 946: 33 01 22 r1 = 0x22 + 949: 33 04 r4 = 0 + 951: 52 04 06 jump 957 if r4 != 0 + : @63 + 954: 52 05 04 jump 958 if r5 != 0 + : @64 + 957: 00 trap + : @65 + 958: 28 42 fc jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r1 = 0x22 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0xa5 (initially was 0x0) + * r5 = 0x1d (initially was 0x0) + * r8 = 0xa9 (initially was 0x0) + * r9 = 0x9a (initially was 0x0) + * r10 = 0x2 (initially was 0x0) + * r11 = 0xa5 (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9600 + + +## riscv_rv64um_mulh + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 08 r8 = 0 + 18: 33 09 r9 = 0 + 20: d5 98 0b r11 = r8 mulh r9 + 23: 33 04 r4 = 0 + 25: ab 4b 2b 03 jump 836 if r11 != r4 + : @2 + 29: 33 05 03 r5 = 0x3 + 32: 33 08 01 r8 = 0x1 + 35: 33 09 01 r9 = 0x1 + 38: d5 98 0b r11 = r8 mulh r9 + 41: 33 04 r4 = 0 + 43: ab 4b 19 03 jump 836 if r11 != r4 + : @3 + 47: 33 05 04 r5 = 0x4 + 50: 33 08 03 r8 = 0x3 + 53: 33 09 07 r9 = 0x7 + 56: d5 98 0b r11 = r8 mulh r9 + 59: 33 04 r4 = 0 + 61: ab 4b 07 03 jump 836 if r11 != r4 + : @4 + 65: 33 05 05 r5 = 0x5 + 68: 33 08 r8 = 0 + 70: 33 09 00 80 r9 = 0xffffffffffff8000 + 74: d5 98 0b r11 = r8 mulh r9 + 77: 33 04 r4 = 0 + 79: ab 4b f5 02 jump 836 if r11 != r4 + : @5 + 83: 33 05 06 r5 = 0x6 + 86: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 92: 33 09 r9 = 0 + 94: d5 98 0b r11 = r8 mulh r9 + 97: 33 04 r4 = 0 + 99: ab 4b e1 02 jump 836 if r11 != r4 + : @6 + 103: 33 05 07 r5 = 0x7 + 106: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 112: 33 09 00 80 r9 = 0xffffffffffff8000 + 116: d5 98 0b r11 = r8 mulh r9 + 119: 33 04 r4 = 0 + 121: ab 4b cb 02 jump 836 if r11 != r4 + : @7 + 125: 33 05 08 r5 = 0x8 + 128: 33 08 0d r8 = 0xd + 131: 97 88 20 r8 = r8 << 0x20 + 134: 33 09 0b r9 = 0xb + 137: 97 99 20 r9 = r9 << 0x20 + 140: d5 98 08 r8 = r8 mulh r9 + 143: 33 04 8f 00 r4 = 0x8f + 147: ab 48 b1 02 jump 836 if r8 != r4 + : @8 + 151: 33 05 09 r5 = 0x9 + 154: 33 08 07 r8 = 0x7 + 157: 97 88 21 r8 = r8 << 0x21 + 160: 33 09 0b r9 = 0xb + 163: 97 99 20 r9 = r9 << 0x20 + 166: d5 98 09 r9 = r8 mulh r9 + 169: 33 04 9a 00 r4 = 0x9a + 173: ab 49 97 02 jump 836 if r9 != r4 + : @9 + 177: 33 05 0a r5 = 0xa + 180: 33 08 0d r8 = 0xd + 183: 97 88 20 r8 = r8 << 0x20 + 186: d5 88 08 r8 = r8 mulh r8 + 189: 33 04 a9 00 r4 = 0xa9 + 193: ab 48 83 02 jump 836 if r8 != r4 + : @10 + 197: 33 05 0b r5 = 0xb + 200: 33 0a r10 = 0 + 202: 01 fallthrough + : @11 + 203: 33 00 0d r0 = 0xd + 206: 97 00 20 r0 = r0 << 0x20 + 209: 33 01 0b r1 = 0xb + 212: 97 11 20 r1 = r1 << 0x20 + 215: d5 10 0b r11 = r0 mulh r1 + 218: 64 b3 r3 = r11 + 220: 95 aa 01 r10 = r10 + 0x1 + 223: 33 02 02 r2 = 0x2 + 226: ab 2a e9 jump 203 if r10 != r2 + : @12 + 229: 33 04 8f 00 r4 = 0x8f + 233: ab 43 5b 02 jump 836 if r3 != r4 + : @13 + 237: 33 05 0c r5 = 0xc + 240: 33 0a r10 = 0 + 242: 01 fallthrough + : @14 + 243: 33 00 07 r0 = 0x7 + 246: 97 00 21 r0 = r0 << 0x21 + 249: 33 01 0b r1 = 0xb + 252: 97 11 20 r1 = r1 << 0x20 + 255: d5 10 0b r11 = r0 mulh r1 + 258: 64 b3 r3 = r11 + 260: 95 aa 01 r10 = r10 + 0x1 + 263: 33 02 02 r2 = 0x2 + 266: ab 2a e9 jump 243 if r10 != r2 + : @15 + 269: 33 04 9a 00 r4 = 0x9a + 273: ab 43 33 02 jump 836 if r3 != r4 + : @16 + 277: 33 05 0d r5 = 0xd + 280: 33 0a r10 = 0 + 282: 01 fallthrough + : @17 + 283: 33 00 0f r0 = 0xf + 286: 97 00 20 r0 = r0 << 0x20 + 289: 33 01 0b r1 = 0xb + 292: 97 11 20 r1 = r1 << 0x20 + 295: d5 10 0b r11 = r0 mulh r1 + 298: 64 b3 r3 = r11 + 300: 95 aa 01 r10 = r10 + 0x1 + 303: 33 02 02 r2 = 0x2 + 306: ab 2a e9 jump 283 if r10 != r2 + : @18 + 309: 33 04 a5 00 r4 = 0xa5 + 313: ab 43 0b 02 jump 836 if r3 != r4 + : @19 + 317: 33 05 0e r5 = 0xe + 320: 33 0a r10 = 0 + 322: 01 fallthrough + : @20 + 323: 33 00 0d r0 = 0xd + 326: 97 00 20 r0 = r0 << 0x20 + 329: 33 01 0b r1 = 0xb + 332: 97 11 20 r1 = r1 << 0x20 + 335: d5 10 0b r11 = r0 mulh r1 + 338: 95 aa 01 r10 = r10 + 0x1 + 341: 33 02 02 r2 = 0x2 + 344: ab 2a eb jump 323 if r10 != r2 + : @21 + 347: 33 04 8f 00 r4 = 0x8f + 351: ab 4b e5 01 jump 836 if r11 != r4 + : @22 + 355: 33 05 0f r5 = 0xf + 358: 33 0a r10 = 0 + 360: 01 fallthrough + : @23 + 361: 33 00 07 r0 = 0x7 + 364: 97 00 21 r0 = r0 << 0x21 + 367: 33 01 0b r1 = 0xb + 370: 97 11 20 r1 = r1 << 0x20 + 373: d5 10 0b r11 = r0 mulh r1 + 376: 95 aa 01 r10 = r10 + 0x1 + 379: 33 02 02 r2 = 0x2 + 382: ab 2a eb jump 361 if r10 != r2 + : @24 + 385: 33 04 9a 00 r4 = 0x9a + 389: ab 4b bf 01 jump 836 if r11 != r4 + : @25 + 393: 33 05 10 r5 = 0x10 + 396: 33 0a r10 = 0 + 398: 01 fallthrough + : @26 + 399: 33 00 0f r0 = 0xf + 402: 97 00 20 r0 = r0 << 0x20 + 405: 33 01 0b r1 = 0xb + 408: 97 11 20 r1 = r1 << 0x20 + 411: d5 10 0b r11 = r0 mulh r1 + 414: 95 aa 01 r10 = r10 + 0x1 + 417: 33 02 02 r2 = 0x2 + 420: ab 2a eb jump 399 if r10 != r2 + : @27 + 423: 33 04 a5 00 r4 = 0xa5 + 427: ab 4b 99 01 jump 836 if r11 != r4 + : @28 + 431: 33 05 11 r5 = 0x11 + 434: 33 0a r10 = 0 + 436: 01 fallthrough + : @29 + 437: 33 00 0d r0 = 0xd + 440: 97 00 20 r0 = r0 << 0x20 + 443: 33 01 0b r1 = 0xb + 446: 97 11 20 r1 = r1 << 0x20 + 449: d5 10 0b r11 = r0 mulh r1 + 452: 95 aa 01 r10 = r10 + 0x1 + 455: 33 02 02 r2 = 0x2 + 458: ab 2a eb jump 437 if r10 != r2 + : @30 + 461: 33 04 8f 00 r4 = 0x8f + 465: ab 4b 73 01 jump 836 if r11 != r4 + : @31 + 469: 33 05 12 r5 = 0x12 + 472: 33 0a r10 = 0 + 474: 01 fallthrough + : @32 + 475: 33 00 07 r0 = 0x7 + 478: 97 00 21 r0 = r0 << 0x21 + 481: 33 01 0b r1 = 0xb + 484: 97 11 20 r1 = r1 << 0x20 + 487: d5 10 0b r11 = r0 mulh r1 + 490: 95 aa 01 r10 = r10 + 0x1 + 493: 33 02 02 r2 = 0x2 + 496: ab 2a eb jump 475 if r10 != r2 + : @33 + 499: 33 04 9a 00 r4 = 0x9a + 503: ab 4b 4d 01 jump 836 if r11 != r4 + : @34 + 507: 33 05 13 r5 = 0x13 + 510: 33 0a r10 = 0 + 512: 01 fallthrough + : @35 + 513: 33 00 0f r0 = 0xf + 516: 97 00 20 r0 = r0 << 0x20 + 519: 33 01 0b r1 = 0xb + 522: 97 11 20 r1 = r1 << 0x20 + 525: d5 10 0b r11 = r0 mulh r1 + 528: 95 aa 01 r10 = r10 + 0x1 + 531: 33 02 02 r2 = 0x2 + 534: ab 2a eb jump 513 if r10 != r2 + : @36 + 537: 33 04 a5 00 r4 = 0xa5 + 541: ab 4b 27 01 jump 836 if r11 != r4 + : @37 + 545: 33 05 14 r5 = 0x14 + 548: 33 0a r10 = 0 + 550: 01 fallthrough + : @38 + 551: 33 01 0b r1 = 0xb + 554: 97 11 20 r1 = r1 << 0x20 + 557: 33 00 0d r0 = 0xd + 560: 97 00 20 r0 = r0 << 0x20 + 563: d5 10 0b r11 = r0 mulh r1 + 566: 95 aa 01 r10 = r10 + 0x1 + 569: 33 02 02 r2 = 0x2 + 572: ab 2a eb jump 551 if r10 != r2 + : @39 + 575: 33 04 8f 00 r4 = 0x8f + 579: ab 4b 01 01 jump 836 if r11 != r4 + : @40 + 583: 33 05 15 r5 = 0x15 + 586: 33 0a r10 = 0 + 588: 01 fallthrough + : @41 + 589: 33 01 0b r1 = 0xb + 592: 97 11 20 r1 = r1 << 0x20 + 595: 33 00 07 r0 = 0x7 + 598: 97 00 21 r0 = r0 << 0x21 + 601: d5 10 0b r11 = r0 mulh r1 + 604: 95 aa 01 r10 = r10 + 0x1 + 607: 33 02 02 r2 = 0x2 + 610: ab 2a eb jump 589 if r10 != r2 + : @42 + 613: 33 04 9a 00 r4 = 0x9a + 617: ab 4b db 00 jump 836 if r11 != r4 + : @43 + 621: 33 05 16 r5 = 0x16 + 624: 33 0a r10 = 0 + 626: 01 fallthrough + : @44 + 627: 33 01 0b r1 = 0xb + 630: 97 11 20 r1 = r1 << 0x20 + 633: 33 00 0f r0 = 0xf + 636: 97 00 20 r0 = r0 << 0x20 + 639: d5 10 0b r11 = r0 mulh r1 + 642: 95 aa 01 r10 = r10 + 0x1 + 645: 33 02 02 r2 = 0x2 + 648: ab 2a eb jump 627 if r10 != r2 + : @45 + 651: 33 04 a5 00 r4 = 0xa5 + 655: ab 4b b5 00 jump 836 if r11 != r4 + : @46 + 659: 33 05 17 r5 = 0x17 + 662: 33 0a r10 = 0 + 664: 01 fallthrough + : @47 + 665: 33 01 0b r1 = 0xb + 668: 97 11 20 r1 = r1 << 0x20 + 671: 33 00 0d r0 = 0xd + 674: 97 00 20 r0 = r0 << 0x20 + 677: d5 10 0b r11 = r0 mulh r1 + 680: 95 aa 01 r10 = r10 + 0x1 + 683: 33 02 02 r2 = 0x2 + 686: ab 2a eb jump 665 if r10 != r2 + : @48 + 689: 33 04 8f 00 r4 = 0x8f + 693: ab 4b 8f 00 jump 836 if r11 != r4 + : @49 + 697: 33 05 18 r5 = 0x18 + 700: 33 0a r10 = 0 + 702: 01 fallthrough + : @50 + 703: 33 01 0b r1 = 0xb + 706: 97 11 20 r1 = r1 << 0x20 + 709: 33 00 07 r0 = 0x7 + 712: 97 00 21 r0 = r0 << 0x21 + 715: d5 10 0b r11 = r0 mulh r1 + 718: 95 aa 01 r10 = r10 + 0x1 + 721: 33 02 02 r2 = 0x2 + 724: ab 2a eb jump 703 if r10 != r2 + : @51 + 727: 33 04 9a 00 r4 = 0x9a + 731: ab 4b 69 jump 836 if r11 != r4 + : @52 + 734: 33 05 19 r5 = 0x19 + 737: 33 0a r10 = 0 + 739: 01 fallthrough + : @53 + 740: 33 01 0b r1 = 0xb + 743: 97 11 20 r1 = r1 << 0x20 + 746: 33 00 0f r0 = 0xf + 749: 97 00 20 r0 = r0 << 0x20 + 752: d5 10 0b r11 = r0 mulh r1 + 755: 95 aa 01 r10 = r10 + 0x1 + 758: 33 02 02 r2 = 0x2 + 761: ab 2a eb jump 740 if r10 != r2 + : @54 + 764: 33 04 a5 00 r4 = 0xa5 + 768: ab 4b 44 jump 836 if r11 != r4 + : @55 + 771: 33 05 1a r5 = 0x1a + 774: 33 00 1f r0 = 0x1f + 777: 97 00 20 r0 = r0 << 0x20 + 780: 33 01 r1 = 0 + 782: 33 04 r4 = 0 + 784: ab 41 34 jump 836 if r1 != r4 + : @56 + 787: 33 05 1b r5 = 0x1b + 790: 33 00 01 r0 = 0x1 + 793: 97 00 25 r0 = r0 << 0x25 + 796: 33 01 r1 = 0 + 798: 33 04 r4 = 0 + 800: ab 41 24 jump 836 if r1 != r4 + : @57 + 803: 33 05 1c r5 = 0x1c + 806: 33 00 r0 = 0 + 808: 33 04 r4 = 0 + 810: ab 40 1a jump 836 if r0 != r4 + : @58 + 813: 33 05 1d r5 = 0x1d + 816: 33 00 21 r0 = 0x21 + 819: 97 00 20 r0 = r0 << 0x20 + 822: 33 01 11 r1 = 0x11 + 825: 97 11 21 r1 = r1 << 0x21 + 828: 33 04 r4 = 0 + 830: 52 04 06 jump 836 if r4 != 0 + : @59 + 833: 52 05 04 jump 837 if r5 != 0 + : @60 + 836: 00 trap + : @61 + 837: 28 bb fc jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r1 = 0x2200000000 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0xa5 (initially was 0x0) + * r5 = 0x1d (initially was 0x0) + * r8 = 0xa9 (initially was 0x0) + * r9 = 0x9a (initially was 0x0) + * r10 = 0x2 (initially was 0x0) + * r11 = 0xa5 (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9592 + + +## riscv_rv64um_mulhsu + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 08 r8 = 0 + 18: 33 09 r9 = 0 + 20: d7 98 0b r11 = r8 mulhsu r9 + 23: 33 04 r4 = 0 + 25: ab 4b 2f 03 jump 840 if r11 != r4 + : @2 + 29: 33 05 03 r5 = 0x3 + 32: 33 08 01 r8 = 0x1 + 35: 33 09 01 r9 = 0x1 + 38: d7 98 0b r11 = r8 mulhsu r9 + 41: 33 04 r4 = 0 + 43: ab 4b 1d 03 jump 840 if r11 != r4 + : @3 + 47: 33 05 04 r5 = 0x4 + 50: 33 08 03 r8 = 0x3 + 53: 33 09 07 r9 = 0x7 + 56: d7 98 0b r11 = r8 mulhsu r9 + 59: 33 04 r4 = 0 + 61: ab 4b 0b 03 jump 840 if r11 != r4 + : @4 + 65: 33 05 05 r5 = 0x5 + 68: 33 08 r8 = 0 + 70: 33 09 00 80 r9 = 0xffffffffffff8000 + 74: d7 98 0b r11 = r8 mulhsu r9 + 77: 33 04 r4 = 0 + 79: ab 4b f9 02 jump 840 if r11 != r4 + : @5 + 83: 33 05 06 r5 = 0x6 + 86: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 92: 33 09 r9 = 0 + 94: d7 98 0b r11 = r8 mulhsu r9 + 97: 33 04 r4 = 0 + 99: ab 4b e5 02 jump 840 if r11 != r4 + : @6 + 103: 33 05 07 r5 = 0x7 + 106: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 112: 33 09 00 80 r9 = 0xffffffffffff8000 + 116: d7 98 0b r11 = r8 mulhsu r9 + 119: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 125: ab 4b cb 02 jump 840 if r11 != r4 + : @7 + 129: 33 05 08 r5 = 0x8 + 132: 33 08 0d r8 = 0xd + 135: 97 88 20 r8 = r8 << 0x20 + 138: 33 09 0b r9 = 0xb + 141: 97 99 20 r9 = r9 << 0x20 + 144: d7 98 08 r8 = r8 mulhsu r9 + 147: 33 04 8f 00 r4 = 0x8f + 151: ab 48 b1 02 jump 840 if r8 != r4 + : @8 + 155: 33 05 09 r5 = 0x9 + 158: 33 08 07 r8 = 0x7 + 161: 97 88 21 r8 = r8 << 0x21 + 164: 33 09 0b r9 = 0xb + 167: 97 99 20 r9 = r9 << 0x20 + 170: d7 98 09 r9 = r8 mulhsu r9 + 173: 33 04 9a 00 r4 = 0x9a + 177: ab 49 97 02 jump 840 if r9 != r4 + : @9 + 181: 33 05 0a r5 = 0xa + 184: 33 08 0d r8 = 0xd + 187: 97 88 20 r8 = r8 << 0x20 + 190: d7 88 08 r8 = r8 mulhsu r8 + 193: 33 04 a9 00 r4 = 0xa9 + 197: ab 48 83 02 jump 840 if r8 != r4 + : @10 + 201: 33 05 0b r5 = 0xb + 204: 33 0a r10 = 0 + 206: 01 fallthrough + : @11 + 207: 33 00 0d r0 = 0xd + 210: 97 00 20 r0 = r0 << 0x20 + 213: 33 01 0b r1 = 0xb + 216: 97 11 20 r1 = r1 << 0x20 + 219: d7 10 0b r11 = r0 mulhsu r1 + 222: 64 b3 r3 = r11 + 224: 95 aa 01 r10 = r10 + 0x1 + 227: 33 02 02 r2 = 0x2 + 230: ab 2a e9 jump 207 if r10 != r2 + : @12 + 233: 33 04 8f 00 r4 = 0x8f + 237: ab 43 5b 02 jump 840 if r3 != r4 + : @13 + 241: 33 05 0c r5 = 0xc + 244: 33 0a r10 = 0 + 246: 01 fallthrough + : @14 + 247: 33 00 07 r0 = 0x7 + 250: 97 00 21 r0 = r0 << 0x21 + 253: 33 01 0b r1 = 0xb + 256: 97 11 20 r1 = r1 << 0x20 + 259: d7 10 0b r11 = r0 mulhsu r1 + 262: 64 b3 r3 = r11 + 264: 95 aa 01 r10 = r10 + 0x1 + 267: 33 02 02 r2 = 0x2 + 270: ab 2a e9 jump 247 if r10 != r2 + : @15 + 273: 33 04 9a 00 r4 = 0x9a + 277: ab 43 33 02 jump 840 if r3 != r4 + : @16 + 281: 33 05 0d r5 = 0xd + 284: 33 0a r10 = 0 + 286: 01 fallthrough + : @17 + 287: 33 00 0f r0 = 0xf + 290: 97 00 20 r0 = r0 << 0x20 + 293: 33 01 0b r1 = 0xb + 296: 97 11 20 r1 = r1 << 0x20 + 299: d7 10 0b r11 = r0 mulhsu r1 + 302: 64 b3 r3 = r11 + 304: 95 aa 01 r10 = r10 + 0x1 + 307: 33 02 02 r2 = 0x2 + 310: ab 2a e9 jump 287 if r10 != r2 + : @18 + 313: 33 04 a5 00 r4 = 0xa5 + 317: ab 43 0b 02 jump 840 if r3 != r4 + : @19 + 321: 33 05 0e r5 = 0xe + 324: 33 0a r10 = 0 + 326: 01 fallthrough + : @20 + 327: 33 00 0d r0 = 0xd + 330: 97 00 20 r0 = r0 << 0x20 + 333: 33 01 0b r1 = 0xb + 336: 97 11 20 r1 = r1 << 0x20 + 339: d7 10 0b r11 = r0 mulhsu r1 + 342: 95 aa 01 r10 = r10 + 0x1 + 345: 33 02 02 r2 = 0x2 + 348: ab 2a eb jump 327 if r10 != r2 + : @21 + 351: 33 04 8f 00 r4 = 0x8f + 355: ab 4b e5 01 jump 840 if r11 != r4 + : @22 + 359: 33 05 0f r5 = 0xf + 362: 33 0a r10 = 0 + 364: 01 fallthrough + : @23 + 365: 33 00 07 r0 = 0x7 + 368: 97 00 21 r0 = r0 << 0x21 + 371: 33 01 0b r1 = 0xb + 374: 97 11 20 r1 = r1 << 0x20 + 377: d7 10 0b r11 = r0 mulhsu r1 + 380: 95 aa 01 r10 = r10 + 0x1 + 383: 33 02 02 r2 = 0x2 + 386: ab 2a eb jump 365 if r10 != r2 + : @24 + 389: 33 04 9a 00 r4 = 0x9a + 393: ab 4b bf 01 jump 840 if r11 != r4 + : @25 + 397: 33 05 10 r5 = 0x10 + 400: 33 0a r10 = 0 + 402: 01 fallthrough + : @26 + 403: 33 00 0f r0 = 0xf + 406: 97 00 20 r0 = r0 << 0x20 + 409: 33 01 0b r1 = 0xb + 412: 97 11 20 r1 = r1 << 0x20 + 415: d7 10 0b r11 = r0 mulhsu r1 + 418: 95 aa 01 r10 = r10 + 0x1 + 421: 33 02 02 r2 = 0x2 + 424: ab 2a eb jump 403 if r10 != r2 + : @27 + 427: 33 04 a5 00 r4 = 0xa5 + 431: ab 4b 99 01 jump 840 if r11 != r4 + : @28 + 435: 33 05 11 r5 = 0x11 + 438: 33 0a r10 = 0 + 440: 01 fallthrough + : @29 + 441: 33 00 0d r0 = 0xd + 444: 97 00 20 r0 = r0 << 0x20 + 447: 33 01 0b r1 = 0xb + 450: 97 11 20 r1 = r1 << 0x20 + 453: d7 10 0b r11 = r0 mulhsu r1 + 456: 95 aa 01 r10 = r10 + 0x1 + 459: 33 02 02 r2 = 0x2 + 462: ab 2a eb jump 441 if r10 != r2 + : @30 + 465: 33 04 8f 00 r4 = 0x8f + 469: ab 4b 73 01 jump 840 if r11 != r4 + : @31 + 473: 33 05 12 r5 = 0x12 + 476: 33 0a r10 = 0 + 478: 01 fallthrough + : @32 + 479: 33 00 07 r0 = 0x7 + 482: 97 00 21 r0 = r0 << 0x21 + 485: 33 01 0b r1 = 0xb + 488: 97 11 20 r1 = r1 << 0x20 + 491: d7 10 0b r11 = r0 mulhsu r1 + 494: 95 aa 01 r10 = r10 + 0x1 + 497: 33 02 02 r2 = 0x2 + 500: ab 2a eb jump 479 if r10 != r2 + : @33 + 503: 33 04 9a 00 r4 = 0x9a + 507: ab 4b 4d 01 jump 840 if r11 != r4 + : @34 + 511: 33 05 13 r5 = 0x13 + 514: 33 0a r10 = 0 + 516: 01 fallthrough + : @35 + 517: 33 00 0f r0 = 0xf + 520: 97 00 20 r0 = r0 << 0x20 + 523: 33 01 0b r1 = 0xb + 526: 97 11 20 r1 = r1 << 0x20 + 529: d7 10 0b r11 = r0 mulhsu r1 + 532: 95 aa 01 r10 = r10 + 0x1 + 535: 33 02 02 r2 = 0x2 + 538: ab 2a eb jump 517 if r10 != r2 + : @36 + 541: 33 04 a5 00 r4 = 0xa5 + 545: ab 4b 27 01 jump 840 if r11 != r4 + : @37 + 549: 33 05 14 r5 = 0x14 + 552: 33 0a r10 = 0 + 554: 01 fallthrough + : @38 + 555: 33 01 0b r1 = 0xb + 558: 97 11 20 r1 = r1 << 0x20 + 561: 33 00 0d r0 = 0xd + 564: 97 00 20 r0 = r0 << 0x20 + 567: d7 10 0b r11 = r0 mulhsu r1 + 570: 95 aa 01 r10 = r10 + 0x1 + 573: 33 02 02 r2 = 0x2 + 576: ab 2a eb jump 555 if r10 != r2 + : @39 + 579: 33 04 8f 00 r4 = 0x8f + 583: ab 4b 01 01 jump 840 if r11 != r4 + : @40 + 587: 33 05 15 r5 = 0x15 + 590: 33 0a r10 = 0 + 592: 01 fallthrough + : @41 + 593: 33 01 0b r1 = 0xb + 596: 97 11 20 r1 = r1 << 0x20 + 599: 33 00 07 r0 = 0x7 + 602: 97 00 21 r0 = r0 << 0x21 + 605: d7 10 0b r11 = r0 mulhsu r1 + 608: 95 aa 01 r10 = r10 + 0x1 + 611: 33 02 02 r2 = 0x2 + 614: ab 2a eb jump 593 if r10 != r2 + : @42 + 617: 33 04 9a 00 r4 = 0x9a + 621: ab 4b db 00 jump 840 if r11 != r4 + : @43 + 625: 33 05 16 r5 = 0x16 + 628: 33 0a r10 = 0 + 630: 01 fallthrough + : @44 + 631: 33 01 0b r1 = 0xb + 634: 97 11 20 r1 = r1 << 0x20 + 637: 33 00 0f r0 = 0xf + 640: 97 00 20 r0 = r0 << 0x20 + 643: d7 10 0b r11 = r0 mulhsu r1 + 646: 95 aa 01 r10 = r10 + 0x1 + 649: 33 02 02 r2 = 0x2 + 652: ab 2a eb jump 631 if r10 != r2 + : @45 + 655: 33 04 a5 00 r4 = 0xa5 + 659: ab 4b b5 00 jump 840 if r11 != r4 + : @46 + 663: 33 05 17 r5 = 0x17 + 666: 33 0a r10 = 0 + 668: 01 fallthrough + : @47 + 669: 33 01 0b r1 = 0xb + 672: 97 11 20 r1 = r1 << 0x20 + 675: 33 00 0d r0 = 0xd + 678: 97 00 20 r0 = r0 << 0x20 + 681: d7 10 0b r11 = r0 mulhsu r1 + 684: 95 aa 01 r10 = r10 + 0x1 + 687: 33 02 02 r2 = 0x2 + 690: ab 2a eb jump 669 if r10 != r2 + : @48 + 693: 33 04 8f 00 r4 = 0x8f + 697: ab 4b 8f 00 jump 840 if r11 != r4 + : @49 + 701: 33 05 18 r5 = 0x18 + 704: 33 0a r10 = 0 + 706: 01 fallthrough + : @50 + 707: 33 01 0b r1 = 0xb + 710: 97 11 20 r1 = r1 << 0x20 + 713: 33 00 07 r0 = 0x7 + 716: 97 00 21 r0 = r0 << 0x21 + 719: d7 10 0b r11 = r0 mulhsu r1 + 722: 95 aa 01 r10 = r10 + 0x1 + 725: 33 02 02 r2 = 0x2 + 728: ab 2a eb jump 707 if r10 != r2 + : @51 + 731: 33 04 9a 00 r4 = 0x9a + 735: ab 4b 69 jump 840 if r11 != r4 + : @52 + 738: 33 05 19 r5 = 0x19 + 741: 33 0a r10 = 0 + 743: 01 fallthrough + : @53 + 744: 33 01 0b r1 = 0xb + 747: 97 11 20 r1 = r1 << 0x20 + 750: 33 00 0f r0 = 0xf + 753: 97 00 20 r0 = r0 << 0x20 + 756: d7 10 0b r11 = r0 mulhsu r1 + 759: 95 aa 01 r10 = r10 + 0x1 + 762: 33 02 02 r2 = 0x2 + 765: ab 2a eb jump 744 if r10 != r2 + : @54 + 768: 33 04 a5 00 r4 = 0xa5 + 772: ab 4b 44 jump 840 if r11 != r4 + : @55 + 775: 33 05 1a r5 = 0x1a + 778: 33 00 1f r0 = 0x1f + 781: 97 00 20 r0 = r0 << 0x20 + 784: 33 01 r1 = 0 + 786: 33 04 r4 = 0 + 788: ab 41 34 jump 840 if r1 != r4 + : @56 + 791: 33 05 1b r5 = 0x1b + 794: 33 00 01 r0 = 0x1 + 797: 97 00 25 r0 = r0 << 0x25 + 800: 33 01 r1 = 0 + 802: 33 04 r4 = 0 + 804: ab 41 24 jump 840 if r1 != r4 + : @57 + 807: 33 05 1c r5 = 0x1c + 810: 33 00 r0 = 0 + 812: 33 04 r4 = 0 + 814: ab 40 1a jump 840 if r0 != r4 + : @58 + 817: 33 05 1d r5 = 0x1d + 820: 33 00 21 r0 = 0x21 + 823: 97 00 20 r0 = r0 << 0x20 + 826: 33 01 11 r1 = 0x11 + 829: 97 11 21 r1 = r1 << 0x21 + 832: 33 04 r4 = 0 + 834: 52 04 06 jump 840 if r4 != 0 + : @59 + 837: 52 05 04 jump 841 if r5 != 0 + : @60 + 840: 00 trap + : @61 + 841: 28 b7 fc jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r1 = 0x2200000000 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0xa5 (initially was 0x0) + * r5 = 0x1d (initially was 0x0) + * r8 = 0xa9 (initially was 0x0) + * r9 = 0x9a (initially was 0x0) + * r10 = 0x2 (initially was 0x0) + * r11 = 0xa5 (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9592 + + +## riscv_rv64um_mulhu + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 08 r8 = 0 + 18: 33 09 r9 = 0 + 20: d6 98 0b r11 = r8 mulhu r9 + 23: 33 04 r4 = 0 + 25: ab 4b aa 03 jump 963 if r11 != r4 + : @2 + 29: 33 05 03 r5 = 0x3 + 32: 33 08 01 r8 = 0x1 + 35: 33 09 01 r9 = 0x1 + 38: d6 98 0b r11 = r8 mulhu r9 + 41: 33 04 r4 = 0 + 43: ab 4b 98 03 jump 963 if r11 != r4 + : @3 + 47: 33 05 04 r5 = 0x4 + 50: 33 08 03 r8 = 0x3 + 53: 33 09 07 r9 = 0x7 + 56: d6 98 0b r11 = r8 mulhu r9 + 59: 33 04 r4 = 0 + 61: ab 4b 86 03 jump 963 if r11 != r4 + : @4 + 65: 33 05 05 r5 = 0x5 + 68: 33 08 r8 = 0 + 70: 33 09 00 80 r9 = 0xffffffffffff8000 + 74: d6 98 0b r11 = r8 mulhu r9 + 77: 33 04 r4 = 0 + 79: ab 4b 74 03 jump 963 if r11 != r4 + : @5 + 83: 33 05 06 r5 = 0x6 + 86: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 92: 33 09 r9 = 0 + 94: d6 98 0b r11 = r8 mulhu r9 + 97: 33 04 r4 = 0 + 99: ab 4b 60 03 jump 963 if r11 != r4 + : @6 + 103: 33 05 07 r5 = 0x7 + 106: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 112: 33 09 00 80 r9 = 0xffffffffffff8000 + 116: d6 98 0b r11 = r8 mulhu r9 + 119: 33 04 00 00 ff r4 = 0xffffffffffff0000 + 124: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 127: 97 44 0f r4 = r4 << 0xf + 130: ab 4b 41 03 jump 963 if r11 != r4 + : @7 + 134: 33 05 1e r5 = 0x1e + 137: 33 08 00 b0 aa fa r8 = 0xfffffffffaaab000 + 143: 83 88 ab fa i32 r8 = r8 + 0xfffffffffffffaab + 147: 97 88 0c r8 = r8 << 0xc + 150: 95 88 ab fa r8 = r8 + 0xfffffffffffffaab + 154: 97 88 0c r8 = r8 << 0xc + 157: 95 88 ab fa r8 = r8 + 0xfffffffffffffaab + 161: 97 88 0c r8 = r8 << 0xc + 164: 95 88 ab fa r8 = r8 + 0xfffffffffffffaab + 168: 33 09 00 00 03 r9 = 0x30000 + 173: 83 99 7d fe i32 r9 = r9 + 0xfffffffffffffe7d + 177: d6 98 0b r11 = r8 mulhu r9 + 180: 33 04 00 00 02 r4 = 0x20000 + 185: 83 44 fe fe i32 r4 = r4 + 0xfffffffffffffefe + 189: ab 4b 06 03 jump 963 if r11 != r4 + : @8 + 193: 33 05 1f r5 = 0x1f + 196: 33 08 00 00 03 r8 = 0x30000 + 201: 83 88 7d fe i32 r8 = r8 + 0xfffffffffffffe7d + 205: 33 09 00 b0 aa fa r9 = 0xfffffffffaaab000 + 211: 83 99 ab fa i32 r9 = r9 + 0xfffffffffffffaab + 215: 97 99 0c r9 = r9 << 0xc + 218: 95 99 ab fa r9 = r9 + 0xfffffffffffffaab + 222: 97 99 0c r9 = r9 << 0xc + 225: 95 99 ab fa r9 = r9 + 0xfffffffffffffaab + 229: 97 99 0c r9 = r9 << 0xc + 232: 95 99 ab fa r9 = r9 + 0xfffffffffffffaab + 236: d6 98 0b r11 = r8 mulhu r9 + 239: 33 04 00 00 02 r4 = 0x20000 + 244: 83 44 fe fe i32 r4 = r4 + 0xfffffffffffffefe + 248: ab 4b cb 02 jump 963 if r11 != r4 + : @9 + 252: 33 05 08 r5 = 0x8 + 255: 33 08 0d r8 = 0xd + 258: 97 88 20 r8 = r8 << 0x20 + 261: 33 09 0b r9 = 0xb + 264: 97 99 20 r9 = r9 << 0x20 + 267: d6 98 08 r8 = r8 mulhu r9 + 270: 33 04 8f 00 r4 = 0x8f + 274: ab 48 b1 02 jump 963 if r8 != r4 + : @10 + 278: 33 05 09 r5 = 0x9 + 281: 33 08 07 r8 = 0x7 + 284: 97 88 21 r8 = r8 << 0x21 + 287: 33 09 0b r9 = 0xb + 290: 97 99 20 r9 = r9 << 0x20 + 293: d6 98 09 r9 = r8 mulhu r9 + 296: 33 04 9a 00 r4 = 0x9a + 300: ab 49 97 02 jump 963 if r9 != r4 + : @11 + 304: 33 05 0a r5 = 0xa + 307: 33 08 0d r8 = 0xd + 310: 97 88 20 r8 = r8 << 0x20 + 313: d6 88 08 r8 = r8 mulhu r8 + 316: 33 04 a9 00 r4 = 0xa9 + 320: ab 48 83 02 jump 963 if r8 != r4 + : @12 + 324: 33 05 0b r5 = 0xb + 327: 33 0a r10 = 0 + 329: 01 fallthrough + : @13 + 330: 33 00 0d r0 = 0xd + 333: 97 00 20 r0 = r0 << 0x20 + 336: 33 01 0b r1 = 0xb + 339: 97 11 20 r1 = r1 << 0x20 + 342: d6 10 0b r11 = r0 mulhu r1 + 345: 64 b3 r3 = r11 + 347: 95 aa 01 r10 = r10 + 0x1 + 350: 33 02 02 r2 = 0x2 + 353: ab 2a e9 jump 330 if r10 != r2 + : @14 + 356: 33 04 8f 00 r4 = 0x8f + 360: ab 43 5b 02 jump 963 if r3 != r4 + : @15 + 364: 33 05 0c r5 = 0xc + 367: 33 0a r10 = 0 + 369: 01 fallthrough + : @16 + 370: 33 00 07 r0 = 0x7 + 373: 97 00 21 r0 = r0 << 0x21 + 376: 33 01 0b r1 = 0xb + 379: 97 11 20 r1 = r1 << 0x20 + 382: d6 10 0b r11 = r0 mulhu r1 + 385: 64 b3 r3 = r11 + 387: 95 aa 01 r10 = r10 + 0x1 + 390: 33 02 02 r2 = 0x2 + 393: ab 2a e9 jump 370 if r10 != r2 + : @17 + 396: 33 04 9a 00 r4 = 0x9a + 400: ab 43 33 02 jump 963 if r3 != r4 + : @18 + 404: 33 05 0d r5 = 0xd + 407: 33 0a r10 = 0 + 409: 01 fallthrough + : @19 + 410: 33 00 0f r0 = 0xf + 413: 97 00 20 r0 = r0 << 0x20 + 416: 33 01 0b r1 = 0xb + 419: 97 11 20 r1 = r1 << 0x20 + 422: d6 10 0b r11 = r0 mulhu r1 + 425: 64 b3 r3 = r11 + 427: 95 aa 01 r10 = r10 + 0x1 + 430: 33 02 02 r2 = 0x2 + 433: ab 2a e9 jump 410 if r10 != r2 + : @20 + 436: 33 04 a5 00 r4 = 0xa5 + 440: ab 43 0b 02 jump 963 if r3 != r4 + : @21 + 444: 33 05 0e r5 = 0xe + 447: 33 0a r10 = 0 + 449: 01 fallthrough + : @22 + 450: 33 00 0d r0 = 0xd + 453: 97 00 20 r0 = r0 << 0x20 + 456: 33 01 0b r1 = 0xb + 459: 97 11 20 r1 = r1 << 0x20 + 462: d6 10 0b r11 = r0 mulhu r1 + 465: 95 aa 01 r10 = r10 + 0x1 + 468: 33 02 02 r2 = 0x2 + 471: ab 2a eb jump 450 if r10 != r2 + : @23 + 474: 33 04 8f 00 r4 = 0x8f + 478: ab 4b e5 01 jump 963 if r11 != r4 + : @24 + 482: 33 05 0f r5 = 0xf + 485: 33 0a r10 = 0 + 487: 01 fallthrough + : @25 + 488: 33 00 07 r0 = 0x7 + 491: 97 00 21 r0 = r0 << 0x21 + 494: 33 01 0b r1 = 0xb + 497: 97 11 20 r1 = r1 << 0x20 + 500: d6 10 0b r11 = r0 mulhu r1 + 503: 95 aa 01 r10 = r10 + 0x1 + 506: 33 02 02 r2 = 0x2 + 509: ab 2a eb jump 488 if r10 != r2 + : @26 + 512: 33 04 9a 00 r4 = 0x9a + 516: ab 4b bf 01 jump 963 if r11 != r4 + : @27 + 520: 33 05 10 r5 = 0x10 + 523: 33 0a r10 = 0 + 525: 01 fallthrough + : @28 + 526: 33 00 0f r0 = 0xf + 529: 97 00 20 r0 = r0 << 0x20 + 532: 33 01 0b r1 = 0xb + 535: 97 11 20 r1 = r1 << 0x20 + 538: d6 10 0b r11 = r0 mulhu r1 + 541: 95 aa 01 r10 = r10 + 0x1 + 544: 33 02 02 r2 = 0x2 + 547: ab 2a eb jump 526 if r10 != r2 + : @29 + 550: 33 04 a5 00 r4 = 0xa5 + 554: ab 4b 99 01 jump 963 if r11 != r4 + : @30 + 558: 33 05 11 r5 = 0x11 + 561: 33 0a r10 = 0 + 563: 01 fallthrough + : @31 + 564: 33 00 0d r0 = 0xd + 567: 97 00 20 r0 = r0 << 0x20 + 570: 33 01 0b r1 = 0xb + 573: 97 11 20 r1 = r1 << 0x20 + 576: d6 10 0b r11 = r0 mulhu r1 + 579: 95 aa 01 r10 = r10 + 0x1 + 582: 33 02 02 r2 = 0x2 + 585: ab 2a eb jump 564 if r10 != r2 + : @32 + 588: 33 04 8f 00 r4 = 0x8f + 592: ab 4b 73 01 jump 963 if r11 != r4 + : @33 + 596: 33 05 12 r5 = 0x12 + 599: 33 0a r10 = 0 + 601: 01 fallthrough + : @34 + 602: 33 00 07 r0 = 0x7 + 605: 97 00 21 r0 = r0 << 0x21 + 608: 33 01 0b r1 = 0xb + 611: 97 11 20 r1 = r1 << 0x20 + 614: d6 10 0b r11 = r0 mulhu r1 + 617: 95 aa 01 r10 = r10 + 0x1 + 620: 33 02 02 r2 = 0x2 + 623: ab 2a eb jump 602 if r10 != r2 + : @35 + 626: 33 04 9a 00 r4 = 0x9a + 630: ab 4b 4d 01 jump 963 if r11 != r4 + : @36 + 634: 33 05 13 r5 = 0x13 + 637: 33 0a r10 = 0 + 639: 01 fallthrough + : @37 + 640: 33 00 0f r0 = 0xf + 643: 97 00 20 r0 = r0 << 0x20 + 646: 33 01 0b r1 = 0xb + 649: 97 11 20 r1 = r1 << 0x20 + 652: d6 10 0b r11 = r0 mulhu r1 + 655: 95 aa 01 r10 = r10 + 0x1 + 658: 33 02 02 r2 = 0x2 + 661: ab 2a eb jump 640 if r10 != r2 + : @38 + 664: 33 04 a5 00 r4 = 0xa5 + 668: ab 4b 27 01 jump 963 if r11 != r4 + : @39 + 672: 33 05 14 r5 = 0x14 + 675: 33 0a r10 = 0 + 677: 01 fallthrough + : @40 + 678: 33 01 0b r1 = 0xb + 681: 97 11 20 r1 = r1 << 0x20 + 684: 33 00 0d r0 = 0xd + 687: 97 00 20 r0 = r0 << 0x20 + 690: d6 10 0b r11 = r0 mulhu r1 + 693: 95 aa 01 r10 = r10 + 0x1 + 696: 33 02 02 r2 = 0x2 + 699: ab 2a eb jump 678 if r10 != r2 + : @41 + 702: 33 04 8f 00 r4 = 0x8f + 706: ab 4b 01 01 jump 963 if r11 != r4 + : @42 + 710: 33 05 15 r5 = 0x15 + 713: 33 0a r10 = 0 + 715: 01 fallthrough + : @43 + 716: 33 01 0b r1 = 0xb + 719: 97 11 20 r1 = r1 << 0x20 + 722: 33 00 07 r0 = 0x7 + 725: 97 00 21 r0 = r0 << 0x21 + 728: d6 10 0b r11 = r0 mulhu r1 + 731: 95 aa 01 r10 = r10 + 0x1 + 734: 33 02 02 r2 = 0x2 + 737: ab 2a eb jump 716 if r10 != r2 + : @44 + 740: 33 04 9a 00 r4 = 0x9a + 744: ab 4b db 00 jump 963 if r11 != r4 + : @45 + 748: 33 05 16 r5 = 0x16 + 751: 33 0a r10 = 0 + 753: 01 fallthrough + : @46 + 754: 33 01 0b r1 = 0xb + 757: 97 11 20 r1 = r1 << 0x20 + 760: 33 00 0f r0 = 0xf + 763: 97 00 20 r0 = r0 << 0x20 + 766: d6 10 0b r11 = r0 mulhu r1 + 769: 95 aa 01 r10 = r10 + 0x1 + 772: 33 02 02 r2 = 0x2 + 775: ab 2a eb jump 754 if r10 != r2 + : @47 + 778: 33 04 a5 00 r4 = 0xa5 + 782: ab 4b b5 00 jump 963 if r11 != r4 + : @48 + 786: 33 05 17 r5 = 0x17 + 789: 33 0a r10 = 0 + 791: 01 fallthrough + : @49 + 792: 33 01 0b r1 = 0xb + 795: 97 11 20 r1 = r1 << 0x20 + 798: 33 00 0d r0 = 0xd + 801: 97 00 20 r0 = r0 << 0x20 + 804: d6 10 0b r11 = r0 mulhu r1 + 807: 95 aa 01 r10 = r10 + 0x1 + 810: 33 02 02 r2 = 0x2 + 813: ab 2a eb jump 792 if r10 != r2 + : @50 + 816: 33 04 8f 00 r4 = 0x8f + 820: ab 4b 8f 00 jump 963 if r11 != r4 + : @51 + 824: 33 05 18 r5 = 0x18 + 827: 33 0a r10 = 0 + 829: 01 fallthrough + : @52 + 830: 33 01 0b r1 = 0xb + 833: 97 11 20 r1 = r1 << 0x20 + 836: 33 00 07 r0 = 0x7 + 839: 97 00 21 r0 = r0 << 0x21 + 842: d6 10 0b r11 = r0 mulhu r1 + 845: 95 aa 01 r10 = r10 + 0x1 + 848: 33 02 02 r2 = 0x2 + 851: ab 2a eb jump 830 if r10 != r2 + : @53 + 854: 33 04 9a 00 r4 = 0x9a + 858: ab 4b 69 jump 963 if r11 != r4 + : @54 + 861: 33 05 19 r5 = 0x19 + 864: 33 0a r10 = 0 + 866: 01 fallthrough + : @55 + 867: 33 01 0b r1 = 0xb + 870: 97 11 20 r1 = r1 << 0x20 + 873: 33 00 0f r0 = 0xf + 876: 97 00 20 r0 = r0 << 0x20 + 879: d6 10 0b r11 = r0 mulhu r1 + 882: 95 aa 01 r10 = r10 + 0x1 + 885: 33 02 02 r2 = 0x2 + 888: ab 2a eb jump 867 if r10 != r2 + : @56 + 891: 33 04 a5 00 r4 = 0xa5 + 895: ab 4b 44 jump 963 if r11 != r4 + : @57 + 898: 33 05 1a r5 = 0x1a + 901: 33 00 1f r0 = 0x1f + 904: 97 00 20 r0 = r0 << 0x20 + 907: 33 01 r1 = 0 + 909: 33 04 r4 = 0 + 911: ab 41 34 jump 963 if r1 != r4 + : @58 + 914: 33 05 1b r5 = 0x1b + 917: 33 00 01 r0 = 0x1 + 920: 97 00 25 r0 = r0 << 0x25 + 923: 33 01 r1 = 0 + 925: 33 04 r4 = 0 + 927: ab 41 24 jump 963 if r1 != r4 + : @59 + 930: 33 05 1c r5 = 0x1c + 933: 33 00 r0 = 0 + 935: 33 04 r4 = 0 + 937: ab 40 1a jump 963 if r0 != r4 + : @60 + 940: 33 05 1d r5 = 0x1d + 943: 33 00 21 r0 = 0x21 + 946: 97 00 20 r0 = r0 << 0x20 + 949: 33 01 11 r1 = 0x11 + 952: 97 11 21 r1 = r1 << 0x21 + 955: 33 04 r4 = 0 + 957: 52 04 06 jump 963 if r4 != 0 + : @61 + 960: 52 05 04 jump 964 if r5 != 0 + : @62 + 963: 00 trap + : @63 + 964: 28 3c fc jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r1 = 0x2200000000 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0xa5 (initially was 0x0) + * r5 = 0x1d (initially was 0x0) + * r8 = 0xa9 (initially was 0x0) + * r9 = 0x9a (initially was 0x0) + * r10 = 0x2 (initially was 0x0) + * r11 = 0xa5 (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9560 + + +## riscv_rv64um_mulw + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 08 r8 = 0 + 18: 33 09 r9 = 0 + 20: c0 98 0b i32 r11 = r8 * r9 + 23: 33 04 r4 = 0 + 25: ab 4b b7 02 jump 720 if r11 != r4 + : @2 + 29: 33 05 03 r5 = 0x3 + 32: 33 08 01 r8 = 0x1 + 35: 33 09 01 r9 = 0x1 + 38: c0 98 0b i32 r11 = r8 * r9 + 41: 33 04 01 r4 = 0x1 + 44: ab 4b a4 02 jump 720 if r11 != r4 + : @3 + 48: 33 05 04 r5 = 0x4 + 51: 33 08 03 r8 = 0x3 + 54: 33 09 07 r9 = 0x7 + 57: c0 98 0b i32 r11 = r8 * r9 + 60: 33 04 15 r4 = 0x15 + 63: ab 4b 91 02 jump 720 if r11 != r4 + : @4 + 67: 33 05 05 r5 = 0x5 + 70: 33 08 r8 = 0 + 72: 33 09 00 80 r9 = 0xffffffffffff8000 + 76: c0 98 0b i32 r11 = r8 * r9 + 79: 33 04 r4 = 0 + 81: ab 4b 7f 02 jump 720 if r11 != r4 + : @5 + 85: 33 05 06 r5 = 0x6 + 88: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 94: 33 09 r9 = 0 + 96: c0 98 0b i32 r11 = r8 * r9 + 99: 33 04 r4 = 0 + 101: ab 4b 6b 02 jump 720 if r11 != r4 + : @6 + 105: 33 05 07 r5 = 0x7 + 108: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 114: 33 09 00 80 r9 = 0xffffffffffff8000 + 118: c0 98 0b i32 r11 = r8 * r9 + 121: 33 04 r4 = 0 + 123: ab 4b 55 02 jump 720 if r11 != r4 + : @7 + 127: 33 05 08 r5 = 0x8 + 130: 33 08 0d r8 = 0xd + 133: 33 09 0b r9 = 0xb + 136: c0 98 08 i32 r8 = r8 * r9 + 139: 33 04 8f 00 r4 = 0x8f + 143: ab 48 41 02 jump 720 if r8 != r4 + : @8 + 147: 33 05 09 r5 = 0x9 + 150: 33 08 0e r8 = 0xe + 153: 33 09 0b r9 = 0xb + 156: c0 98 09 i32 r9 = r8 * r9 + 159: 33 04 9a 00 r4 = 0x9a + 163: ab 49 2d 02 jump 720 if r9 != r4 + : @9 + 167: 33 05 0a r5 = 0xa + 170: 33 08 0d r8 = 0xd + 173: c0 88 08 i32 r8 = r8 * r8 + 176: 33 04 a9 00 r4 = 0xa9 + 180: ab 48 1c 02 jump 720 if r8 != r4 + : @10 + 184: 33 05 0b r5 = 0xb + 187: 33 0a r10 = 0 + 189: 01 fallthrough + : @11 + 190: 33 00 0d r0 = 0xd + 193: 33 01 0b r1 = 0xb + 196: c0 10 0b i32 r11 = r0 * r1 + 199: 64 b3 r3 = r11 + 201: 95 aa 01 r10 = r10 + 0x1 + 204: 33 02 02 r2 = 0x2 + 207: ab 2a ef jump 190 if r10 != r2 + : @12 + 210: 33 04 8f 00 r4 = 0x8f + 214: ab 43 fa 01 jump 720 if r3 != r4 + : @13 + 218: 33 05 0c r5 = 0xc + 221: 33 0a r10 = 0 + 223: 01 fallthrough + : @14 + 224: 33 00 0e r0 = 0xe + 227: 33 01 0b r1 = 0xb + 230: c0 10 0b i32 r11 = r0 * r1 + 233: 64 b3 r3 = r11 + 235: 95 aa 01 r10 = r10 + 0x1 + 238: 33 02 02 r2 = 0x2 + 241: ab 2a ef jump 224 if r10 != r2 + : @15 + 244: 33 04 9a 00 r4 = 0x9a + 248: ab 43 d8 01 jump 720 if r3 != r4 + : @16 + 252: 33 05 0d r5 = 0xd + 255: 33 0a r10 = 0 + 257: 01 fallthrough + : @17 + 258: 33 00 0f r0 = 0xf + 261: 33 01 0b r1 = 0xb + 264: c0 10 0b i32 r11 = r0 * r1 + 267: 64 b3 r3 = r11 + 269: 95 aa 01 r10 = r10 + 0x1 + 272: 33 02 02 r2 = 0x2 + 275: ab 2a ef jump 258 if r10 != r2 + : @18 + 278: 33 04 a5 00 r4 = 0xa5 + 282: ab 43 b6 01 jump 720 if r3 != r4 + : @19 + 286: 33 05 0e r5 = 0xe + 289: 33 0a r10 = 0 + 291: 01 fallthrough + : @20 + 292: 33 00 0d r0 = 0xd + 295: 33 01 0b r1 = 0xb + 298: c0 10 0b i32 r11 = r0 * r1 + 301: 95 aa 01 r10 = r10 + 0x1 + 304: 33 02 02 r2 = 0x2 + 307: ab 2a f1 jump 292 if r10 != r2 + : @21 + 310: 33 04 8f 00 r4 = 0x8f + 314: ab 4b 96 01 jump 720 if r11 != r4 + : @22 + 318: 33 05 0f r5 = 0xf + 321: 33 0a r10 = 0 + 323: 01 fallthrough + : @23 + 324: 33 00 0e r0 = 0xe + 327: 33 01 0b r1 = 0xb + 330: c0 10 0b i32 r11 = r0 * r1 + 333: 95 aa 01 r10 = r10 + 0x1 + 336: 33 02 02 r2 = 0x2 + 339: ab 2a f1 jump 324 if r10 != r2 + : @24 + 342: 33 04 9a 00 r4 = 0x9a + 346: ab 4b 76 01 jump 720 if r11 != r4 + : @25 + 350: 33 05 10 r5 = 0x10 + 353: 33 0a r10 = 0 + 355: 01 fallthrough + : @26 + 356: 33 00 0f r0 = 0xf + 359: 33 01 0b r1 = 0xb + 362: c0 10 0b i32 r11 = r0 * r1 + 365: 95 aa 01 r10 = r10 + 0x1 + 368: 33 02 02 r2 = 0x2 + 371: ab 2a f1 jump 356 if r10 != r2 + : @27 + 374: 33 04 a5 00 r4 = 0xa5 + 378: ab 4b 56 01 jump 720 if r11 != r4 + : @28 + 382: 33 05 11 r5 = 0x11 + 385: 33 0a r10 = 0 + 387: 01 fallthrough + : @29 + 388: 33 00 0d r0 = 0xd + 391: 33 01 0b r1 = 0xb + 394: c0 10 0b i32 r11 = r0 * r1 + 397: 95 aa 01 r10 = r10 + 0x1 + 400: 33 02 02 r2 = 0x2 + 403: ab 2a f1 jump 388 if r10 != r2 + : @30 + 406: 33 04 8f 00 r4 = 0x8f + 410: ab 4b 36 01 jump 720 if r11 != r4 + : @31 + 414: 33 05 12 r5 = 0x12 + 417: 33 0a r10 = 0 + 419: 01 fallthrough + : @32 + 420: 33 00 0e r0 = 0xe + 423: 33 01 0b r1 = 0xb + 426: c0 10 0b i32 r11 = r0 * r1 + 429: 95 aa 01 r10 = r10 + 0x1 + 432: 33 02 02 r2 = 0x2 + 435: ab 2a f1 jump 420 if r10 != r2 + : @33 + 438: 33 04 9a 00 r4 = 0x9a + 442: ab 4b 16 01 jump 720 if r11 != r4 + : @34 + 446: 33 05 13 r5 = 0x13 + 449: 33 0a r10 = 0 + 451: 01 fallthrough + : @35 + 452: 33 00 0f r0 = 0xf + 455: 33 01 0b r1 = 0xb + 458: c0 10 0b i32 r11 = r0 * r1 + 461: 95 aa 01 r10 = r10 + 0x1 + 464: 33 02 02 r2 = 0x2 + 467: ab 2a f1 jump 452 if r10 != r2 + : @36 + 470: 33 04 a5 00 r4 = 0xa5 + 474: ab 4b f6 00 jump 720 if r11 != r4 + : @37 + 478: 33 05 14 r5 = 0x14 + 481: 33 0a r10 = 0 + 483: 01 fallthrough + : @38 + 484: 33 01 0b r1 = 0xb + 487: 33 00 0d r0 = 0xd + 490: c0 10 0b i32 r11 = r0 * r1 + 493: 95 aa 01 r10 = r10 + 0x1 + 496: 33 02 02 r2 = 0x2 + 499: ab 2a f1 jump 484 if r10 != r2 + : @39 + 502: 33 04 8f 00 r4 = 0x8f + 506: ab 4b d6 00 jump 720 if r11 != r4 + : @40 + 510: 33 05 15 r5 = 0x15 + 513: 33 0a r10 = 0 + 515: 01 fallthrough + : @41 + 516: 33 01 0b r1 = 0xb + 519: 33 00 0e r0 = 0xe + 522: c0 10 0b i32 r11 = r0 * r1 + 525: 95 aa 01 r10 = r10 + 0x1 + 528: 33 02 02 r2 = 0x2 + 531: ab 2a f1 jump 516 if r10 != r2 + : @42 + 534: 33 04 9a 00 r4 = 0x9a + 538: ab 4b b6 00 jump 720 if r11 != r4 + : @43 + 542: 33 05 16 r5 = 0x16 + 545: 33 0a r10 = 0 + 547: 01 fallthrough + : @44 + 548: 33 01 0b r1 = 0xb + 551: 33 00 0f r0 = 0xf + 554: c0 10 0b i32 r11 = r0 * r1 + 557: 95 aa 01 r10 = r10 + 0x1 + 560: 33 02 02 r2 = 0x2 + 563: ab 2a f1 jump 548 if r10 != r2 + : @45 + 566: 33 04 a5 00 r4 = 0xa5 + 570: ab 4b 96 00 jump 720 if r11 != r4 + : @46 + 574: 33 05 17 r5 = 0x17 + 577: 33 0a r10 = 0 + 579: 01 fallthrough + : @47 + 580: 33 01 0b r1 = 0xb + 583: 33 00 0d r0 = 0xd + 586: c0 10 0b i32 r11 = r0 * r1 + 589: 95 aa 01 r10 = r10 + 0x1 + 592: 33 02 02 r2 = 0x2 + 595: ab 2a f1 jump 580 if r10 != r2 + : @48 + 598: 33 04 8f 00 r4 = 0x8f + 602: ab 4b 76 jump 720 if r11 != r4 + : @49 + 605: 33 05 18 r5 = 0x18 + 608: 33 0a r10 = 0 + 610: 01 fallthrough + : @50 + 611: 33 01 0b r1 = 0xb + 614: 33 00 0e r0 = 0xe + 617: c0 10 0b i32 r11 = r0 * r1 + 620: 95 aa 01 r10 = r10 + 0x1 + 623: 33 02 02 r2 = 0x2 + 626: ab 2a f1 jump 611 if r10 != r2 + : @51 + 629: 33 04 9a 00 r4 = 0x9a + 633: ab 4b 57 jump 720 if r11 != r4 + : @52 + 636: 33 05 19 r5 = 0x19 + 639: 33 0a r10 = 0 + 641: 01 fallthrough + : @53 + 642: 33 01 0b r1 = 0xb + 645: 33 00 0f r0 = 0xf + 648: c0 10 0b i32 r11 = r0 * r1 + 651: 95 aa 01 r10 = r10 + 0x1 + 654: 33 02 02 r2 = 0x2 + 657: ab 2a f1 jump 642 if r10 != r2 + : @54 + 660: 33 04 a5 00 r4 = 0xa5 + 664: ab 4b 38 jump 720 if r11 != r4 + : @55 + 667: 33 05 1a r5 = 0x1a + 670: 33 00 1f r0 = 0x1f + 673: 87 01 i32 r1 = r0 * 0 + 675: 33 04 r4 = 0 + 677: ab 41 2b jump 720 if r1 != r4 + : @56 + 680: 33 05 1b r5 = 0x1b + 683: 33 00 20 r0 = 0x20 + 686: 87 01 i32 r1 = r0 * 0 + 688: 33 04 r4 = 0 + 690: ab 41 1e jump 720 if r1 != r4 + : @57 + 693: 33 05 1c r5 = 0x1c + 696: 33 00 r0 = 0 + 698: 33 04 r4 = 0 + 700: ab 40 14 jump 720 if r0 != r4 + : @58 + 703: 33 05 1d r5 = 0x1d + 706: 33 00 21 r0 = 0x21 + 709: 33 01 22 r1 = 0x22 + 712: 33 04 r4 = 0 + 714: 52 04 06 jump 720 if r4 != 0 + : @59 + 717: 52 05 04 jump 721 if r5 != 0 + : @60 + 720: 00 trap + : @61 + 721: 28 2f fd jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r1 = 0x22 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0xa5 (initially was 0x0) + * r5 = 0x1d (initially was 0x0) + * r8 = 0xa9 (initially was 0x0) + * r9 = 0x9a (initially was 0x0) + * r10 = 0x2 (initially was 0x0) + * r11 = 0xa5 (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9661 + + +## riscv_rv64um_rem + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 08 14 r8 = 0x14 + 19: 33 09 06 r9 = 0x6 + 22: ce 98 0b r11 = r8 %s r9 + 25: 33 04 02 r4 = 0x2 + 28: ab 4b 9d 00 jump 185 if r11 != r4 + : @2 + 32: 33 05 03 r5 = 0x3 + 35: 33 08 ec r8 = 0xffffffffffffffec + 38: 33 09 06 r9 = 0x6 + 41: ce 98 0b r11 = r8 %s r9 + 44: 33 04 fe r4 = 0xfffffffffffffffe + 47: ab 4b 8a 00 jump 185 if r11 != r4 + : @3 + 51: 33 05 04 r5 = 0x4 + 54: 33 08 14 r8 = 0x14 + 57: 33 09 fa r9 = 0xfffffffffffffffa + 60: ce 98 0b r11 = r8 %s r9 + 63: 33 04 02 r4 = 0x2 + 66: ab 4b 77 jump 185 if r11 != r4 + : @4 + 69: 33 05 05 r5 = 0x5 + 72: 33 08 ec r8 = 0xffffffffffffffec + 75: 33 09 fa r9 = 0xfffffffffffffffa + 78: ce 98 0b r11 = r8 %s r9 + 81: 33 04 fe r4 = 0xfffffffffffffffe + 84: ab 4b 65 jump 185 if r11 != r4 + : @5 + 87: 33 05 06 r5 = 0x6 + 90: 33 08 ff r8 = 0xffffffffffffffff + 93: 97 88 3f r8 = r8 << 0x3f + 96: 33 09 01 r9 = 0x1 + 99: ce 98 0b r11 = r8 %s r9 + 102: 33 04 r4 = 0 + 104: ab 4b 51 jump 185 if r11 != r4 + : @6 + 107: 33 05 07 r5 = 0x7 + 110: 33 08 ff r8 = 0xffffffffffffffff + 113: 97 88 3f r8 = r8 << 0x3f + 116: 33 09 ff r9 = 0xffffffffffffffff + 119: ce 98 0b r11 = r8 %s r9 + 122: 33 04 r4 = 0 + 124: ab 4b 3d jump 185 if r11 != r4 + : @7 + 127: 33 05 08 r5 = 0x8 + 130: 33 08 ff r8 = 0xffffffffffffffff + 133: 97 88 3f r8 = r8 << 0x3f + 136: 33 09 r9 = 0 + 138: ce 98 0b r11 = r8 %s r9 + 141: 33 04 ff r4 = 0xffffffffffffffff + 144: 97 44 3f r4 = r4 << 0x3f + 147: ab 4b 26 jump 185 if r11 != r4 + : @8 + 150: 33 05 09 r5 = 0x9 + 153: 33 08 01 r8 = 0x1 + 156: 33 09 r9 = 0 + 158: ce 98 0b r11 = r8 %s r9 + 161: 33 04 01 r4 = 0x1 + 164: ab 4b 15 jump 185 if r11 != r4 + : @9 + 167: 33 05 0a r5 = 0xa + 170: 33 08 r8 = 0 + 172: 33 09 r9 = 0 + 174: ce 98 0b r11 = r8 %s r9 + 177: 33 04 r4 = 0 + 179: ab 4b 06 jump 185 if r11 != r4 + : @10 + 182: 52 05 04 jump 186 if r5 != 0 + : @11 + 185: 00 trap + : @12 + 186: 28 46 ff jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r5 = 0xa (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9936 + + +## riscv_rv64um_remu + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 08 14 r8 = 0x14 + 19: 33 09 06 r9 = 0x6 + 22: cd 98 0b r11 = r8 %u r9 + 25: 33 04 02 r4 = 0x2 + 28: ab 4b a1 00 jump 189 if r11 != r4 + : @2 + 32: 33 05 03 r5 = 0x3 + 35: 33 08 ec r8 = 0xffffffffffffffec + 38: 33 09 06 r9 = 0x6 + 41: cd 98 0b r11 = r8 %u r9 + 44: 33 04 02 r4 = 0x2 + 47: ab 4b 8e 00 jump 189 if r11 != r4 + : @3 + 51: 33 05 04 r5 = 0x4 + 54: 33 08 14 r8 = 0x14 + 57: 33 09 fa r9 = 0xfffffffffffffffa + 60: cd 98 0b r11 = r8 %u r9 + 63: 33 04 14 r4 = 0x14 + 66: ab 4b 7b jump 189 if r11 != r4 + : @4 + 69: 33 05 05 r5 = 0x5 + 72: 33 08 ec r8 = 0xffffffffffffffec + 75: 33 09 fa r9 = 0xfffffffffffffffa + 78: cd 98 0b r11 = r8 %u r9 + 81: 33 04 ec r4 = 0xffffffffffffffec + 84: ab 4b 69 jump 189 if r11 != r4 + : @5 + 87: 33 05 06 r5 = 0x6 + 90: 33 08 ff r8 = 0xffffffffffffffff + 93: 97 88 3f r8 = r8 << 0x3f + 96: 33 09 01 r9 = 0x1 + 99: cd 98 0b r11 = r8 %u r9 + 102: 33 04 r4 = 0 + 104: ab 4b 55 jump 189 if r11 != r4 + : @6 + 107: 33 05 07 r5 = 0x7 + 110: 33 08 ff r8 = 0xffffffffffffffff + 113: 97 88 3f r8 = r8 << 0x3f + 116: 33 09 ff r9 = 0xffffffffffffffff + 119: cd 98 0b r11 = r8 %u r9 + 122: 33 04 ff r4 = 0xffffffffffffffff + 125: 97 44 3f r4 = r4 << 0x3f + 128: ab 4b 3d jump 189 if r11 != r4 + : @7 + 131: 33 05 08 r5 = 0x8 + 134: 33 08 ff r8 = 0xffffffffffffffff + 137: 97 88 3f r8 = r8 << 0x3f + 140: 33 09 r9 = 0 + 142: cd 98 0b r11 = r8 %u r9 + 145: 33 04 ff r4 = 0xffffffffffffffff + 148: 97 44 3f r4 = r4 << 0x3f + 151: ab 4b 26 jump 189 if r11 != r4 + : @8 + 154: 33 05 09 r5 = 0x9 + 157: 33 08 01 r8 = 0x1 + 160: 33 09 r9 = 0 + 162: cd 98 0b r11 = r8 %u r9 + 165: 33 04 01 r4 = 0x1 + 168: ab 4b 15 jump 189 if r11 != r4 + : @9 + 171: 33 05 0a r5 = 0xa + 174: 33 08 r8 = 0 + 176: 33 09 r9 = 0 + 178: cd 98 0b r11 = r8 %u r9 + 181: 33 04 r4 = 0 + 183: ab 4b 06 jump 189 if r11 != r4 + : @10 + 186: 52 05 04 jump 190 if r5 != 0 + : @11 + 189: 00 trap + : @12 + 190: 28 42 ff jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r5 = 0xa (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9935 + + +## riscv_rv64um_remuw + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 08 14 r8 = 0x14 + 19: 33 09 06 r9 = 0x6 + 22: c3 98 0b i32 r11 = r8 %u r9 + 25: 33 04 02 r4 = 0x2 + 28: ab 4b a1 00 jump 189 if r11 != r4 + : @2 + 32: 33 05 03 r5 = 0x3 + 35: 33 08 ec r8 = 0xffffffffffffffec + 38: 33 09 06 r9 = 0x6 + 41: c3 98 0b i32 r11 = r8 %u r9 + 44: 33 04 02 r4 = 0x2 + 47: ab 4b 8e 00 jump 189 if r11 != r4 + : @3 + 51: 33 05 04 r5 = 0x4 + 54: 33 08 14 r8 = 0x14 + 57: 33 09 fa r9 = 0xfffffffffffffffa + 60: c3 98 0b i32 r11 = r8 %u r9 + 63: 33 04 14 r4 = 0x14 + 66: ab 4b 7b jump 189 if r11 != r4 + : @4 + 69: 33 05 05 r5 = 0x5 + 72: 33 08 ec r8 = 0xffffffffffffffec + 75: 33 09 fa r9 = 0xfffffffffffffffa + 78: c3 98 0b i32 r11 = r8 %u r9 + 81: 33 04 ec r4 = 0xffffffffffffffec + 84: ab 4b 69 jump 189 if r11 != r4 + : @5 + 87: 33 05 06 r5 = 0x6 + 90: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 96: 33 09 01 r9 = 0x1 + 99: c3 98 0b i32 r11 = r8 %u r9 + 102: 33 04 r4 = 0 + 104: ab 4b 55 jump 189 if r11 != r4 + : @6 + 107: 33 05 07 r5 = 0x7 + 110: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 116: 33 09 ff r9 = 0xffffffffffffffff + 119: c3 98 0b i32 r11 = r8 %u r9 + 122: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 128: ab 4b 3d jump 189 if r11 != r4 + : @7 + 131: 33 05 08 r5 = 0x8 + 134: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 140: 33 09 r9 = 0 + 142: c3 98 0b i32 r11 = r8 %u r9 + 145: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 151: ab 4b 26 jump 189 if r11 != r4 + : @8 + 154: 33 05 09 r5 = 0x9 + 157: 33 08 01 r8 = 0x1 + 160: 33 09 r9 = 0 + 162: c3 98 0b i32 r11 = r8 %u r9 + 165: 33 04 01 r4 = 0x1 + 168: ab 4b 15 jump 189 if r11 != r4 + : @9 + 171: 33 05 0a r5 = 0xa + 174: 33 08 r8 = 0 + 176: 33 09 r9 = 0 + 178: c3 98 0b i32 r11 = r8 %u r9 + 181: 33 04 r4 = 0 + 183: ab 4b 06 jump 189 if r11 != r4 + : @10 + 186: 52 05 04 jump 190 if r5 != 0 + : @11 + 189: 00 trap + : @12 + 190: 28 42 ff jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r5 = 0xa (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9940 + + +## riscv_rv64um_remw + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 08 14 r8 = 0x14 + 19: 33 09 06 r9 = 0x6 + 22: c4 98 0b i32 r11 = r8 %s r9 + 25: 33 04 02 r4 = 0x2 + 28: ab 4b b1 00 jump 205 if r11 != r4 + : @2 + 32: 33 05 03 r5 = 0x3 + 35: 33 08 ec r8 = 0xffffffffffffffec + 38: 33 09 06 r9 = 0x6 + 41: c4 98 0b i32 r11 = r8 %s r9 + 44: 33 04 fe r4 = 0xfffffffffffffffe + 47: ab 4b 9e 00 jump 205 if r11 != r4 + : @3 + 51: 33 05 04 r5 = 0x4 + 54: 33 08 14 r8 = 0x14 + 57: 33 09 fa r9 = 0xfffffffffffffffa + 60: c4 98 0b i32 r11 = r8 %s r9 + 63: 33 04 02 r4 = 0x2 + 66: ab 4b 8b 00 jump 205 if r11 != r4 + : @4 + 70: 33 05 05 r5 = 0x5 + 73: 33 08 ec r8 = 0xffffffffffffffec + 76: 33 09 fa r9 = 0xfffffffffffffffa + 79: c4 98 0b i32 r11 = r8 %s r9 + 82: 33 04 fe r4 = 0xfffffffffffffffe + 85: ab 4b 78 jump 205 if r11 != r4 + : @5 + 88: 33 05 06 r5 = 0x6 + 91: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 97: 33 09 01 r9 = 0x1 + 100: c4 98 0b i32 r11 = r8 %s r9 + 103: 33 04 r4 = 0 + 105: ab 4b 64 jump 205 if r11 != r4 + : @6 + 108: 33 05 07 r5 = 0x7 + 111: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 117: 33 09 ff r9 = 0xffffffffffffffff + 120: c4 98 0b i32 r11 = r8 %s r9 + 123: 33 04 r4 = 0 + 125: ab 4b 50 jump 205 if r11 != r4 + : @7 + 128: 33 05 08 r5 = 0x8 + 131: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 137: 33 09 r9 = 0 + 139: c4 98 0b i32 r11 = r8 %s r9 + 142: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 148: ab 4b 39 jump 205 if r11 != r4 + : @8 + 151: 33 05 09 r5 = 0x9 + 154: 33 08 01 r8 = 0x1 + 157: 33 09 r9 = 0 + 159: c4 98 0b i32 r11 = r8 %s r9 + 162: 33 04 01 r4 = 0x1 + 165: ab 4b 28 jump 205 if r11 != r4 + : @9 + 168: 33 05 0a r5 = 0xa + 171: 33 08 r8 = 0 + 173: 33 09 r9 = 0 + 175: c4 98 0b i32 r11 = r8 %s r9 + 178: 33 04 r4 = 0 + 180: ab 4b 19 jump 205 if r11 != r4 + : @10 + 183: 33 05 0b r5 = 0xb + 186: 33 08 97 f8 r8 = 0xfffffffffffff897 + 190: 33 09 r9 = 0 + 192: c4 98 0b i32 r11 = r8 %s r9 + 195: 33 04 97 f8 r4 = 0xfffffffffffff897 + 199: ab 4b 06 jump 205 if r11 != r4 + : @11 + 202: 52 05 04 jump 206 if r5 != 0 + : @12 + 205: 00 trap + : @13 + 206: 28 32 ff jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r4 = 0xfffffffffffff897 (initially was 0x0) + * r5 = 0xb (initially was 0x0) + * r8 = 0xfffffffffffff897 (initially was 0x0) + * r11 = 0xfffffffffffff897 (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9934 + + +## riscv_rv64uzbb_andn + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 08 00 00 01 ff r8 = 0xffffffffff010000 + 22: 83 88 00 ff i32 r8 = r8 + 0xffffffffffffff00 + 26: 33 09 00 10 0f 0f r9 = 0xf0f1000 + 32: 83 99 0f ff i32 r9 = r9 + 0xffffffffffffff0f + 36: e0 98 0b r11 = r8 & ~r9 + 39: 33 04 00 f0 00 f0 r4 = 0xfffffffff000f000 + 45: ab 4b 3b 05 jump 1384 if r11 != r4 + : @2 + 49: 33 05 03 r5 = 0x3 + 52: 33 08 00 10 f0 0f r8 = 0xff01000 + 58: 83 88 f0 i32 r8 = r8 + 0xfffffffffffffff0 + 61: 33 09 00 f0 f0 f0 r9 = 0xfffffffff0f0f000 + 67: 83 99 f0 00 i32 r9 = r9 + 0xf0 + 71: e0 98 0b r11 = r8 & ~r9 + 74: 33 04 00 10 00 0f r4 = 0xf001000 + 80: 83 44 00 ff i32 r4 = r4 + 0xffffffffffffff00 + 84: ab 4b 14 05 jump 1384 if r11 != r4 + : @3 + 88: 33 05 04 r5 = 0x4 + 91: 33 08 00 00 ff 00 r8 = 0xff0000 + 97: 83 88 ff 00 i32 r8 = r8 + 0xff + 101: 33 09 00 10 0f 0f r9 = 0xf0f1000 + 107: 83 99 0f ff i32 r9 = r9 + 0xffffffffffffff0f + 111: e0 98 0b r11 = r8 & ~r9 + 114: 33 04 00 00 f0 00 r4 = 0xf00000 + 120: 83 44 f0 00 i32 r4 = r4 + 0xf0 + 124: ab 4b ec 04 jump 1384 if r11 != r4 + : @4 + 128: 33 05 05 r5 = 0x5 + 131: 33 08 00 f0 0f f0 r8 = 0xfffffffff00ff000 + 137: 83 88 0f i32 r8 = r8 + 0xf + 140: 33 09 00 f0 f0 f0 r9 = 0xfffffffff0f0f000 + 146: 83 99 f0 00 i32 r9 = r9 + 0xf0 + 150: e0 98 0b r11 = r8 & ~r9 + 153: 33 04 00 00 0f r4 = 0xf0000 + 158: 83 44 0f i32 r4 = r4 + 0xf + 161: ab 4b c7 04 jump 1384 if r11 != r4 + : @5 + 165: 33 05 32 r5 = 0x32 + 168: 33 08 00 00 01 r8 = 0x10000 + 173: 83 88 01 ff i32 r8 = r8 + 0xffffffffffffff01 + 177: 97 88 10 r8 = r8 << 0x10 + 180: 95 88 01 ff r8 = r8 + 0xffffffffffffff01 + 184: 97 88 10 r8 = r8 << 0x10 + 187: 95 88 01 ff r8 = r8 + 0xffffffffffffff01 + 191: 97 88 0c r8 = r8 << 0xc + 194: 95 88 f0 r8 = r8 + 0xfffffffffffffff0 + 197: 33 09 00 10 0f ff r9 = 0xffffffffff0f1000 + 203: 83 99 0f ff i32 r9 = r9 + 0xffffffffffffff0f + 207: 97 99 0c r9 = r9 << 0xc + 210: 95 99 f1 00 r9 = r9 + 0xf1 + 214: 97 99 0c r9 = r9 << 0xc + 217: 95 99 0f ff r9 = r9 + 0xffffffffffffff0f + 221: 97 99 0c r9 = r9 << 0xc + 224: 95 99 f0 00 r9 = r9 + 0xf0 + 228: e0 98 0b r11 = r8 & ~r9 + 231: 33 04 00 00 0f r4 = 0xf0000 + 236: 83 44 0f i32 r4 = r4 + 0xf + 239: 97 44 10 r4 = r4 << 0x10 + 242: 95 44 0f r4 = r4 + 0xf + 245: 97 44 0c r4 = r4 << 0xc + 248: 95 44 01 r4 = r4 + 0x1 + 251: 97 44 0c r4 = r4 << 0xc + 254: 95 44 00 ff r4 = r4 + 0xffffffffffffff00 + 258: ab 4b 66 04 jump 1384 if r11 != r4 + : @6 + 262: 33 05 33 r5 = 0x33 + 265: 33 08 00 00 ff 00 r8 = 0xff0000 + 271: 83 88 ff 00 i32 r8 = r8 + 0xff + 275: 97 88 10 r8 = r8 << 0x10 + 278: 95 88 ff 00 r8 = r8 + 0xff + 282: 97 88 10 r8 = r8 << 0x10 + 285: 95 88 ff 00 r8 = r8 + 0xff + 289: 33 09 00 f0 f0 00 r9 = 0xf0f000 + 295: 83 99 f1 00 i32 r9 = r9 + 0xf1 + 299: 97 99 0c r9 = r9 << 0xc + 302: 95 99 0f ff r9 = r9 + 0xffffffffffffff0f + 306: 97 99 0c r9 = r9 << 0xc + 309: 95 99 f1 00 r9 = r9 + 0xf1 + 313: 97 99 0c r9 = r9 << 0xc + 316: 95 99 0f ff r9 = r9 + 0xffffffffffffff0f + 320: e0 98 0b r11 = r8 & ~r9 + 323: 33 04 00 00 0f r4 = 0xf0000 + 328: 83 44 0f i32 r4 = r4 + 0xf + 331: 97 44 10 r4 = r4 << 0x10 + 334: 95 44 0f r4 = r4 + 0xf + 337: 97 44 14 r4 = r4 << 0x14 + 340: 95 44 f0 00 r4 = r4 + 0xf0 + 344: ab 4b 10 04 jump 1384 if r11 != r4 + : @7 + 348: 33 05 34 r5 = 0x34 + 351: 33 08 00 00 ff r8 = 0xffffffffffff0000 + 356: 83 88 ff 00 i32 r8 = r8 + 0xff + 360: 97 88 10 r8 = r8 << 0x10 + 363: 95 88 ff 00 r8 = r8 + 0xff + 367: 97 88 10 r8 = r8 << 0x10 + 370: 95 88 ff 00 r8 = r8 + 0xff + 374: 97 88 0c r8 = r8 << 0xc + 377: 95 88 0f r8 = r8 + 0xf + 380: 33 09 00 10 0f ff r9 = 0xffffffffff0f1000 + 386: 83 99 0f ff i32 r9 = r9 + 0xffffffffffffff0f + 390: 97 99 0c r9 = r9 << 0xc + 393: 95 99 f1 00 r9 = r9 + 0xf1 + 397: 97 99 0c r9 = r9 << 0xc + 400: 95 99 0f ff r9 = r9 + 0xffffffffffffff0f + 404: 97 99 0c r9 = r9 << 0xc + 407: 95 99 f0 00 r9 = r9 + 0xf0 + 411: e0 98 0b r11 = r8 & ~r9 + 414: 33 04 00 00 0f r4 = 0xf0000 + 419: 83 44 0f i32 r4 = r4 + 0xf + 422: 97 44 10 r4 = r4 << 0x10 + 425: 95 44 0f r4 = r4 + 0xf + 428: 97 44 10 r4 = r4 << 0x10 + 431: 95 44 0f r4 = r4 + 0xf + 434: ab 4b b6 03 jump 1384 if r11 != r4 + : @8 + 438: 33 05 06 r5 = 0x6 + 441: 33 08 00 00 01 ff r8 = 0xffffffffff010000 + 447: 83 88 00 ff i32 r8 = r8 + 0xffffffffffffff00 + 451: 33 09 00 10 0f 0f r9 = 0xf0f1000 + 457: 83 99 0f ff i32 r9 = r9 + 0xffffffffffffff0f + 461: e0 98 08 r8 = r8 & ~r9 + 464: 33 04 00 f0 00 f0 r4 = 0xfffffffff000f000 + 470: ab 48 92 03 jump 1384 if r8 != r4 + : @9 + 474: 33 05 07 r5 = 0x7 + 477: 33 08 00 10 f0 0f r8 = 0xff01000 + 483: 83 88 f0 i32 r8 = r8 + 0xfffffffffffffff0 + 486: 33 09 00 f0 f0 f0 r9 = 0xfffffffff0f0f000 + 492: 83 99 f0 00 i32 r9 = r9 + 0xf0 + 496: e0 98 09 r9 = r8 & ~r9 + 499: 33 04 00 10 00 0f r4 = 0xf001000 + 505: 83 44 00 ff i32 r4 = r4 + 0xffffffffffffff00 + 509: ab 49 6b 03 jump 1384 if r9 != r4 + : @10 + 513: 33 05 08 r5 = 0x8 + 516: 33 08 00 00 01 ff r8 = 0xffffffffff010000 + 522: 83 88 00 ff i32 r8 = r8 + 0xffffffffffffff00 + 526: e0 88 08 r8 = r8 & ~r8 + 529: 33 04 r4 = 0 + 531: ab 48 55 03 jump 1384 if r8 != r4 + : @11 + 535: 33 05 09 r5 = 0x9 + 538: 33 0a r10 = 0 + 540: 01 fallthrough + : @12 + 541: 33 00 00 00 01 ff r0 = 0xffffffffff010000 + 547: 83 00 00 ff i32 r0 = r0 + 0xffffffffffffff00 + 551: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 557: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 561: e0 10 0b r11 = r0 & ~r1 + 564: 64 b3 r3 = r11 + 566: 95 aa 01 r10 = r10 + 0x1 + 569: 33 02 02 r2 = 0x2 + 572: ab 2a e1 jump 541 if r10 != r2 + : @13 + 575: 33 04 00 f0 00 f0 r4 = 0xfffffffff000f000 + 581: ab 43 23 03 jump 1384 if r3 != r4 + : @14 + 585: 33 05 0a r5 = 0xa + 588: 33 0a r10 = 0 + 590: 01 fallthrough + : @15 + 591: 33 00 00 10 f0 0f r0 = 0xff01000 + 597: 83 00 f0 i32 r0 = r0 + 0xfffffffffffffff0 + 600: 33 01 00 f0 f0 f0 r1 = 0xfffffffff0f0f000 + 606: 83 11 f0 00 i32 r1 = r1 + 0xf0 + 610: e0 10 0b r11 = r0 & ~r1 + 613: 64 b3 r3 = r11 + 615: 95 aa 01 r10 = r10 + 0x1 + 618: 33 02 02 r2 = 0x2 + 621: ab 2a e2 jump 591 if r10 != r2 + : @16 + 624: 33 04 00 10 00 0f r4 = 0xf001000 + 630: 83 44 00 ff i32 r4 = r4 + 0xffffffffffffff00 + 634: ab 43 ee 02 jump 1384 if r3 != r4 + : @17 + 638: 33 05 0b r5 = 0xb + 641: 33 0a r10 = 0 + 643: 01 fallthrough + : @18 + 644: 33 00 00 00 ff 00 r0 = 0xff0000 + 650: 83 00 ff 00 i32 r0 = r0 + 0xff + 654: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 660: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 664: e0 10 0b r11 = r0 & ~r1 + 667: 64 b3 r3 = r11 + 669: 95 aa 01 r10 = r10 + 0x1 + 672: 33 02 02 r2 = 0x2 + 675: ab 2a e1 jump 644 if r10 != r2 + : @19 + 678: 33 04 00 00 f0 00 r4 = 0xf00000 + 684: 83 44 f0 00 i32 r4 = r4 + 0xf0 + 688: ab 43 b8 02 jump 1384 if r3 != r4 + : @20 + 692: 33 05 0c r5 = 0xc + 695: 33 0a r10 = 0 + 697: 01 fallthrough + : @21 + 698: 33 00 00 00 01 ff r0 = 0xffffffffff010000 + 704: 83 00 00 ff i32 r0 = r0 + 0xffffffffffffff00 + 708: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 714: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 718: e0 10 0b r11 = r0 & ~r1 + 721: 95 aa 01 r10 = r10 + 0x1 + 724: 33 02 02 r2 = 0x2 + 727: ab 2a e3 jump 698 if r10 != r2 + : @22 + 730: 33 04 00 f0 00 f0 r4 = 0xfffffffff000f000 + 736: ab 4b 88 02 jump 1384 if r11 != r4 + : @23 + 740: 33 05 0d r5 = 0xd + 743: 33 0a r10 = 0 + 745: 01 fallthrough + : @24 + 746: 33 00 00 10 f0 0f r0 = 0xff01000 + 752: 83 00 f0 i32 r0 = r0 + 0xfffffffffffffff0 + 755: 33 01 00 f0 f0 f0 r1 = 0xfffffffff0f0f000 + 761: 83 11 f0 00 i32 r1 = r1 + 0xf0 + 765: e0 10 0b r11 = r0 & ~r1 + 768: 95 aa 01 r10 = r10 + 0x1 + 771: 33 02 02 r2 = 0x2 + 774: ab 2a e4 jump 746 if r10 != r2 + : @25 + 777: 33 04 00 10 00 0f r4 = 0xf001000 + 783: 83 44 00 ff i32 r4 = r4 + 0xffffffffffffff00 + 787: ab 4b 55 02 jump 1384 if r11 != r4 + : @26 + 791: 33 05 0e r5 = 0xe + 794: 33 0a r10 = 0 + 796: 01 fallthrough + : @27 + 797: 33 00 00 00 ff 00 r0 = 0xff0000 + 803: 83 00 ff 00 i32 r0 = r0 + 0xff + 807: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 813: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 817: e0 10 0b r11 = r0 & ~r1 + 820: 95 aa 01 r10 = r10 + 0x1 + 823: 33 02 02 r2 = 0x2 + 826: ab 2a e3 jump 797 if r10 != r2 + : @28 + 829: 33 04 00 00 f0 00 r4 = 0xf00000 + 835: 83 44 f0 00 i32 r4 = r4 + 0xf0 + 839: ab 4b 21 02 jump 1384 if r11 != r4 + : @29 + 843: 33 05 0f r5 = 0xf + 846: 33 0a r10 = 0 + 848: 01 fallthrough + : @30 + 849: 33 00 00 00 01 ff r0 = 0xffffffffff010000 + 855: 83 00 00 ff i32 r0 = r0 + 0xffffffffffffff00 + 859: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 865: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 869: e0 10 0b r11 = r0 & ~r1 + 872: 95 aa 01 r10 = r10 + 0x1 + 875: 33 02 02 r2 = 0x2 + 878: ab 2a e3 jump 849 if r10 != r2 + : @31 + 881: 33 04 00 f0 00 f0 r4 = 0xfffffffff000f000 + 887: ab 4b f1 01 jump 1384 if r11 != r4 + : @32 + 891: 33 05 10 r5 = 0x10 + 894: 33 0a r10 = 0 + 896: 01 fallthrough + : @33 + 897: 33 00 00 10 f0 0f r0 = 0xff01000 + 903: 83 00 f0 i32 r0 = r0 + 0xfffffffffffffff0 + 906: 33 01 00 f0 f0 f0 r1 = 0xfffffffff0f0f000 + 912: 83 11 f0 00 i32 r1 = r1 + 0xf0 + 916: e0 10 0b r11 = r0 & ~r1 + 919: 95 aa 01 r10 = r10 + 0x1 + 922: 33 02 02 r2 = 0x2 + 925: ab 2a e4 jump 897 if r10 != r2 + : @34 + 928: 33 04 00 10 00 0f r4 = 0xf001000 + 934: 83 44 00 ff i32 r4 = r4 + 0xffffffffffffff00 + 938: ab 4b be 01 jump 1384 if r11 != r4 + : @35 + 942: 33 05 11 r5 = 0x11 + 945: 33 0a r10 = 0 + 947: 01 fallthrough + : @36 + 948: 33 00 00 00 ff 00 r0 = 0xff0000 + 954: 83 00 ff 00 i32 r0 = r0 + 0xff + 958: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 964: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 968: e0 10 0b r11 = r0 & ~r1 + 971: 95 aa 01 r10 = r10 + 0x1 + 974: 33 02 02 r2 = 0x2 + 977: ab 2a e3 jump 948 if r10 != r2 + : @37 + 980: 33 04 00 00 f0 00 r4 = 0xf00000 + 986: 83 44 f0 00 i32 r4 = r4 + 0xf0 + 990: ab 4b 8a 01 jump 1384 if r11 != r4 + : @38 + 994: 33 05 12 r5 = 0x12 + 997: 33 0a r10 = 0 + 999: 01 fallthrough + : @39 + 1000: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 1006: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 1010: 33 00 00 00 01 ff r0 = 0xffffffffff010000 + 1016: 83 00 00 ff i32 r0 = r0 + 0xffffffffffffff00 + 1020: e0 10 0b r11 = r0 & ~r1 + 1023: 95 aa 01 r10 = r10 + 0x1 + 1026: 33 02 02 r2 = 0x2 + 1029: ab 2a e3 jump 1000 if r10 != r2 + : @40 + 1032: 33 04 00 f0 00 f0 r4 = 0xfffffffff000f000 + 1038: ab 4b 5a 01 jump 1384 if r11 != r4 + : @41 + 1042: 33 05 13 r5 = 0x13 + 1045: 33 0a r10 = 0 + 1047: 01 fallthrough + : @42 + 1048: 33 01 00 f0 f0 f0 r1 = 0xfffffffff0f0f000 + 1054: 83 11 f0 00 i32 r1 = r1 + 0xf0 + 1058: 33 00 00 10 f0 0f r0 = 0xff01000 + 1064: 83 00 f0 i32 r0 = r0 + 0xfffffffffffffff0 + 1067: e0 10 0b r11 = r0 & ~r1 + 1070: 95 aa 01 r10 = r10 + 0x1 + 1073: 33 02 02 r2 = 0x2 + 1076: ab 2a e4 jump 1048 if r10 != r2 + : @43 + 1079: 33 04 00 10 00 0f r4 = 0xf001000 + 1085: 83 44 00 ff i32 r4 = r4 + 0xffffffffffffff00 + 1089: ab 4b 27 01 jump 1384 if r11 != r4 + : @44 + 1093: 33 05 14 r5 = 0x14 + 1096: 33 0a r10 = 0 + 1098: 01 fallthrough + : @45 + 1099: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 1105: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 1109: 33 00 00 00 ff 00 r0 = 0xff0000 + 1115: 83 00 ff 00 i32 r0 = r0 + 0xff + 1119: e0 10 0b r11 = r0 & ~r1 + 1122: 95 aa 01 r10 = r10 + 0x1 + 1125: 33 02 02 r2 = 0x2 + 1128: ab 2a e3 jump 1099 if r10 != r2 + : @46 + 1131: 33 04 00 00 f0 00 r4 = 0xf00000 + 1137: 83 44 f0 00 i32 r4 = r4 + 0xf0 + 1141: ab 4b f3 00 jump 1384 if r11 != r4 + : @47 + 1145: 33 05 15 r5 = 0x15 + 1148: 33 0a r10 = 0 + 1150: 01 fallthrough + : @48 + 1151: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 1157: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 1161: 33 00 00 00 01 ff r0 = 0xffffffffff010000 + 1167: 83 00 00 ff i32 r0 = r0 + 0xffffffffffffff00 + 1171: e0 10 0b r11 = r0 & ~r1 + 1174: 95 aa 01 r10 = r10 + 0x1 + 1177: 33 02 02 r2 = 0x2 + 1180: ab 2a e3 jump 1151 if r10 != r2 + : @49 + 1183: 33 04 00 f0 00 f0 r4 = 0xfffffffff000f000 + 1189: ab 4b c3 00 jump 1384 if r11 != r4 + : @50 + 1193: 33 05 16 r5 = 0x16 + 1196: 33 0a r10 = 0 + 1198: 01 fallthrough + : @51 + 1199: 33 01 00 f0 f0 f0 r1 = 0xfffffffff0f0f000 + 1205: 83 11 f0 00 i32 r1 = r1 + 0xf0 + 1209: 33 00 00 10 f0 0f r0 = 0xff01000 + 1215: 83 00 f0 i32 r0 = r0 + 0xfffffffffffffff0 + 1218: e0 10 0b r11 = r0 & ~r1 + 1221: 95 aa 01 r10 = r10 + 0x1 + 1224: 33 02 02 r2 = 0x2 + 1227: ab 2a e4 jump 1199 if r10 != r2 + : @52 + 1230: 33 04 00 10 00 0f r4 = 0xf001000 + 1236: 83 44 00 ff i32 r4 = r4 + 0xffffffffffffff00 + 1240: ab 4b 90 00 jump 1384 if r11 != r4 + : @53 + 1244: 33 05 17 r5 = 0x17 + 1247: 33 0a r10 = 0 + 1249: 01 fallthrough + : @54 + 1250: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 1256: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 1260: 33 00 00 00 ff 00 r0 = 0xff0000 + 1266: 83 00 ff 00 i32 r0 = r0 + 0xff + 1270: e0 10 0b r11 = r0 & ~r1 + 1273: 95 aa 01 r10 = r10 + 0x1 + 1276: 33 02 02 r2 = 0x2 + 1279: ab 2a e3 jump 1250 if r10 != r2 + : @55 + 1282: 33 04 00 00 f0 00 r4 = 0xf00000 + 1288: 83 44 f0 00 i32 r4 = r4 + 0xf0 + 1292: ab 4b 5c jump 1384 if r11 != r4 + : @56 + 1295: 33 05 18 r5 = 0x18 + 1298: 33 00 00 00 01 ff r0 = 0xffffffffff010000 + 1304: 83 00 00 ff i32 r0 = r0 + 0xffffffffffffff00 + 1308: 33 01 r1 = 0 + 1310: 33 04 r4 = 0 + 1312: ab 41 48 jump 1384 if r1 != r4 + : @57 + 1315: 33 05 19 r5 = 0x19 + 1318: 33 00 00 00 ff 00 r0 = 0xff0000 + 1324: 83 00 ff 00 i32 r0 = r0 + 0xff + 1328: 64 01 r1 = r0 + 1330: 33 04 00 00 ff 00 r4 = 0xff0000 + 1336: 83 44 ff 00 i32 r4 = r4 + 0xff + 1340: ab 41 2c jump 1384 if r1 != r4 + : @58 + 1343: 33 05 1a r5 = 0x1a + 1346: 33 00 r0 = 0 + 1348: 33 04 r4 = 0 + 1350: ab 40 22 jump 1384 if r0 != r4 + : @59 + 1353: 33 05 1b r5 = 0x1b + 1356: 33 00 00 10 11 11 r0 = 0x11111000 + 1362: 83 00 11 01 i32 r0 = r0 + 0x111 + 1366: 33 01 00 20 22 22 r1 = 0x22222000 + 1372: 83 11 22 02 i32 r1 = r1 + 0x222 + 1376: 33 04 r4 = 0 + 1378: 52 04 06 jump 1384 if r4 != 0 + : @60 + 1381: 52 05 04 jump 1385 if r5 != 0 + : @61 + 1384: 00 trap + : @62 + 1385: 28 97 fa jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r1 = 0x22222222 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0xf000f0 (initially was 0x0) + * r5 = 0x1b (initially was 0x0) + * r9 = 0xf000f00 (initially was 0x0) + * r10 = 0x2 (initially was 0x0) + * r11 = 0xf000f0 (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9506 + + +## riscv_rv64uzbb_clz + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 00 r0 = 0 + 18: 68 0b r11 = clz r0 + 20: 33 04 40 r4 = 0x40 + 23: ab 4b fb 01 jump 530 if r11 != r4 + : @2 + 27: 33 05 03 r5 = 0x3 + 30: 33 00 01 r0 = 0x1 + 33: 68 0b r11 = clz r0 + 35: 33 04 3f r4 = 0x3f + 38: ab 4b ec 01 jump 530 if r11 != r4 + : @3 + 42: 33 05 04 r5 = 0x4 + 45: 33 00 03 r0 = 0x3 + 48: 68 0b r11 = clz r0 + 50: 33 04 3e r4 = 0x3e + 53: ab 4b dd 01 jump 530 if r11 != r4 + : @4 + 57: 33 05 05 r5 = 0x5 + 60: 33 00 00 80 r0 = 0xffffffffffff8000 + 64: 68 0b r11 = clz r0 + 66: 33 04 r4 = 0 + 68: ab 4b ce 01 jump 530 if r11 != r4 + : @5 + 72: 33 05 06 r5 = 0x6 + 75: 33 00 00 00 80 00 r0 = 0x800000 + 81: 68 0b r11 = clz r0 + 83: 33 04 28 r4 = 0x28 + 86: ab 4b bc 01 jump 530 if r11 != r4 + : @6 + 90: 33 05 07 r5 = 0x7 + 93: 33 00 05 r0 = 0x5 + 96: 97 00 21 r0 = r0 << 0x21 + 99: 95 00 ff r0 = r0 + 0xffffffffffffffff + 102: 97 00 0f r0 = r0 << 0xf + 105: 68 0b r11 = clz r0 + 107: 33 04 0d r4 = 0xd + 110: ab 4b a4 01 jump 530 if r11 != r4 + : @7 + 114: 33 05 08 r5 = 0x8 + 117: 33 00 00 80 00 r0 = 0x8000 + 122: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 125: 68 0b r11 = clz r0 + 127: 33 04 31 r4 = 0x31 + 130: ab 4b 90 01 jump 530 if r11 != r4 + : @8 + 134: 33 05 09 r5 = 0x9 + 137: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 143: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 146: 68 0b r11 = clz r0 + 148: 33 04 21 r4 = 0x21 + 151: ab 4b 7b 01 jump 530 if r11 != r4 + : @9 + 155: 33 05 0a r5 = 0xa + 158: 33 00 00 00 08 r0 = 0x80000 + 163: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 166: 68 0b r11 = clz r0 + 168: 33 04 2d r4 = 0x2d + 171: ab 4b 67 01 jump 530 if r11 != r4 + : @10 + 175: 33 05 0b r5 = 0xb + 178: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 184: 68 0b r11 = clz r0 + 186: 33 04 r4 = 0 + 188: ab 4b 56 01 jump 530 if r11 != r4 + : @11 + 192: 33 05 0c r5 = 0xc + 195: 33 00 00 c0 ab 7f r0 = 0x7fabc000 + 201: 83 00 89 07 i32 r0 = r0 + 0x789 + 205: 97 00 0d r0 = r0 << 0xd + 208: 95 00 f5 01 r0 = r0 + 0x1f5 + 212: 97 00 0c r0 = r0 << 0xc + 215: 68 0b r11 = clz r0 + 217: 33 04 08 r4 = 0x8 + 220: ab 4b 36 01 jump 530 if r11 != r4 + : @12 + 224: 33 05 0d r5 = 0xd + 227: 33 00 ff r0 = 0xffffffffffffffff + 230: 97 00 3f r0 = r0 << 0x3f + 233: 68 0b r11 = clz r0 + 235: 33 04 r4 = 0 + 237: ab 4b 25 01 jump 530 if r11 != r4 + : @13 + 241: 33 05 0e r5 = 0xe + 244: 33 00 0e r0 = 0xe + 247: 68 0b r11 = clz r0 + 249: 33 04 3c r4 = 0x3c + 252: ab 4b 16 01 jump 530 if r11 != r4 + : @14 + 256: 33 05 0f r5 = 0xf + 259: 33 00 fd r0 = 0xfffffffffffffffd + 262: 97 00 20 r0 = r0 << 0x20 + 265: 95 00 19 r0 = r0 + 0x19 + 268: 97 00 11 r0 = r0 << 0x11 + 271: 95 00 01 04 r0 = r0 + 0x401 + 275: 97 00 0c r0 = r0 << 0xc + 278: 95 00 41 03 r0 = r0 + 0x341 + 282: 68 0b r11 = clz r0 + 284: 33 04 r4 = 0 + 286: ab 4b f4 00 jump 530 if r11 != r4 + : @15 + 290: 33 05 10 r5 = 0x10 + 293: 33 00 0d r0 = 0xd + 296: 68 00 r0 = clz r0 + 298: 33 04 3c r4 = 0x3c + 301: ab 40 e5 00 jump 530 if r0 != r4 + : @16 + 305: 33 05 11 r5 = 0x11 + 308: 33 00 0b r0 = 0xb + 311: 68 00 r0 = clz r0 + 313: 33 04 3c r4 = 0x3c + 316: ab 40 d6 00 jump 530 if r0 != r4 + : @17 + 320: 33 05 12 r5 = 0x12 + 323: 33 0a r10 = 0 + 325: 01 fallthrough + : @18 + 326: 33 00 0d r0 = 0xd + 329: 68 0b r11 = clz r0 + 331: 64 b3 r3 = r11 + 333: 95 aa 01 r10 = r10 + 0x1 + 336: 33 02 02 r2 = 0x2 + 339: ab 2a f3 jump 326 if r10 != r2 + : @19 + 342: 33 04 3c r4 = 0x3c + 345: ab 43 b9 00 jump 530 if r3 != r4 + : @20 + 349: 33 05 1d r5 = 0x1d + 352: 33 0a r10 = 0 + 354: 01 fallthrough + : @21 + 355: 33 00 13 r0 = 0x13 + 358: 68 0b r11 = clz r0 + 360: 64 b3 r3 = r11 + 362: 95 aa 01 r10 = r10 + 0x1 + 365: 33 02 02 r2 = 0x2 + 368: ab 2a f3 jump 355 if r10 != r2 + : @22 + 371: 33 04 3b r4 = 0x3b + 374: ab 43 9c 00 jump 530 if r3 != r4 + : @23 + 378: 33 05 14 r5 = 0x14 + 381: 33 0a r10 = 0 + 383: 01 fallthrough + : @24 + 384: 33 00 22 r0 = 0x22 + 387: 68 0b r11 = clz r0 + 389: 64 b3 r3 = r11 + 391: 95 aa 01 r10 = r10 + 0x1 + 394: 33 02 02 r2 = 0x2 + 397: ab 2a f3 jump 384 if r10 != r2 + : @25 + 400: 33 04 3a r4 = 0x3a + 403: ab 43 7f jump 530 if r3 != r4 + : @26 + 406: 33 05 15 r5 = 0x15 + 409: 33 00 00 80 0f 07 r0 = 0x70f8000 + 415: 68 0b r11 = clz r0 + 417: 33 04 25 r4 = 0x25 + 420: ab 4b 6e jump 530 if r11 != r4 + : @27 + 423: 33 05 16 r5 = 0x16 + 426: 33 00 00 80 00 08 r0 = 0x8008000 + 432: 68 0b r11 = clz r0 + 434: 33 04 24 r4 = 0x24 + 437: ab 4b 5d jump 530 if r11 != r4 + : @28 + 440: 33 05 17 r5 = 0x17 + 443: 33 00 00 80 00 18 r0 = 0x18008000 + 449: 68 0b r11 = clz r0 + 451: 33 04 23 r4 = 0x23 + 454: ab 4b 4c jump 530 if r11 != r4 + : @29 + 457: 33 05 18 r5 = 0x18 + 460: 33 00 00 00 06 r0 = 0x60000 + 465: 83 00 01 i32 r0 = r0 + 0x1 + 468: 97 00 0f r0 = r0 << 0xf + 471: 95 00 ff r0 = r0 + 0xffffffffffffffff + 474: 68 0b r11 = clz r0 + 476: 33 04 1e r4 = 0x1e + 479: ab 4b 33 jump 530 if r11 != r4 + : @30 + 482: 33 05 19 r5 = 0x19 + 485: 33 00 0f r0 = 0xf + 488: 97 00 1f r0 = r0 << 0x1f + 491: 95 00 ff r0 = r0 + 0xffffffffffffffff + 494: 68 0b r11 = clz r0 + 496: 33 04 1d r4 = 0x1d + 499: ab 4b 1f jump 530 if r11 != r4 + : @31 + 502: 33 05 1a r5 = 0x1a + 505: 33 00 00 e0 01 r0 = 0x1e000 + 510: 83 00 01 i32 r0 = r0 + 0x1 + 513: 97 00 13 r0 = r0 << 0x13 + 516: 95 00 ff r0 = r0 + 0xffffffffffffffff + 519: 68 0b r11 = clz r0 + 521: 33 04 1c r4 = 0x1c + 524: ab 4b 06 jump 530 if r11 != r4 + : @32 + 527: 52 05 04 jump 531 if r5 != 0 + : @33 + 530: 00 trap + : @34 + 531: 28 ed fd jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0x3a (initially was 0x0) + * r4 = 0x1c (initially was 0x0) + * r5 = 0x1a (initially was 0x0) + * r10 = 0x2 (initially was 0x0) + * r11 = 0x1c (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9808 + + +## riscv_rv64uzbb_clzw + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 00 r0 = 0 + 18: 69 0b i32 r11 = clz r0 + 20: 33 04 20 r4 = 0x20 + 23: ab 4b db 01 jump 498 if r11 != r4 + : @2 + 27: 33 05 03 r5 = 0x3 + 30: 33 00 01 r0 = 0x1 + 33: 69 0b i32 r11 = clz r0 + 35: 33 04 1f r4 = 0x1f + 38: ab 4b cc 01 jump 498 if r11 != r4 + : @3 + 42: 33 05 04 r5 = 0x4 + 45: 33 00 03 r0 = 0x3 + 48: 69 0b i32 r11 = clz r0 + 50: 33 04 1e r4 = 0x1e + 53: ab 4b bd 01 jump 498 if r11 != r4 + : @4 + 57: 33 05 05 r5 = 0x5 + 60: 33 00 00 00 02 r0 = 0x20000 + 65: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 68: 97 00 0f r0 = r0 << 0xf + 71: 69 0b i32 r11 = clz r0 + 73: 33 04 r4 = 0 + 75: ab 4b a7 01 jump 498 if r11 != r4 + : @5 + 79: 33 05 06 r5 = 0x6 + 82: 33 00 00 00 80 00 r0 = 0x800000 + 88: 69 0b i32 r11 = clz r0 + 90: 33 04 08 r4 = 0x8 + 93: ab 4b 95 01 jump 498 if r11 != r4 + : @6 + 97: 33 05 07 r5 = 0x7 + 100: 33 00 00 00 02 r0 = 0x20000 + 105: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 108: 97 00 0f r0 = r0 << 0xf + 111: 69 0b i32 r11 = clz r0 + 113: 33 04 r4 = 0 + 115: ab 4b 7f 01 jump 498 if r11 != r4 + : @7 + 119: 33 05 08 r5 = 0x8 + 122: 33 00 00 80 00 r0 = 0x8000 + 127: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 130: 69 0b i32 r11 = clz r0 + 132: 33 04 11 r4 = 0x11 + 135: ab 4b 6b 01 jump 498 if r11 != r4 + : @8 + 139: 33 05 09 r5 = 0x9 + 142: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 148: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 151: 69 0b i32 r11 = clz r0 + 153: 33 04 01 r4 = 0x1 + 156: ab 4b 56 01 jump 498 if r11 != r4 + : @9 + 160: 33 05 0a r5 = 0xa + 163: 33 00 00 00 08 r0 = 0x80000 + 168: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 171: 69 0b i32 r11 = clz r0 + 173: 33 04 0d r4 = 0xd + 176: ab 4b 42 01 jump 498 if r11 != r4 + : @10 + 180: 33 05 0b r5 = 0xb + 183: 33 00 01 r0 = 0x1 + 186: 97 00 1f r0 = r0 << 0x1f + 189: 69 0b i32 r11 = clz r0 + 191: 33 04 r4 = 0 + 193: ab 4b 31 01 jump 498 if r11 != r4 + : @11 + 197: 33 05 0c r5 = 0xc + 200: 33 00 00 50 1f 12 r0 = 0x121f5000 + 206: 69 0b i32 r11 = clz r0 + 208: 33 04 03 r4 = 0x3 + 211: ab 4b 1f 01 jump 498 if r11 != r4 + : @12 + 215: 33 05 0d r5 = 0xd + 218: 33 00 00 00 00 04 r0 = 0x4000000 + 224: 69 0b i32 r11 = clz r0 + 226: 33 04 05 r4 = 0x5 + 229: ab 4b 0d 01 jump 498 if r11 != r4 + : @13 + 233: 33 05 0e r5 = 0xe + 236: 33 00 0e r0 = 0xe + 239: 69 0b i32 r11 = clz r0 + 241: 33 04 1c r4 = 0x1c + 244: ab 4b fe 00 jump 498 if r11 != r4 + : @14 + 248: 33 05 0f r5 = 0xf + 251: 33 00 00 10 40 20 r0 = 0x20401000 + 257: 83 00 41 03 i32 r0 = r0 + 0x341 + 261: 69 0b i32 r11 = clz r0 + 263: 33 04 02 r4 = 0x2 + 266: ab 4b e8 00 jump 498 if r11 != r4 + : @15 + 270: 33 05 10 r5 = 0x10 + 273: 33 00 0d r0 = 0xd + 276: 69 00 i32 r0 = clz r0 + 278: 33 04 1c r4 = 0x1c + 281: ab 40 d9 00 jump 498 if r0 != r4 + : @16 + 285: 33 05 11 r5 = 0x11 + 288: 33 00 0b r0 = 0xb + 291: 69 00 i32 r0 = clz r0 + 293: 33 04 1c r4 = 0x1c + 296: ab 40 ca 00 jump 498 if r0 != r4 + : @17 + 300: 33 05 12 r5 = 0x12 + 303: 33 0a r10 = 0 + 305: 01 fallthrough + : @18 + 306: 33 00 0d r0 = 0xd + 309: 69 0b i32 r11 = clz r0 + 311: 64 b3 r3 = r11 + 313: 95 aa 01 r10 = r10 + 0x1 + 316: 33 02 02 r2 = 0x2 + 319: ab 2a f3 jump 306 if r10 != r2 + : @19 + 322: 33 04 1c r4 = 0x1c + 325: ab 43 ad 00 jump 498 if r3 != r4 + : @20 + 329: 33 05 1d r5 = 0x1d + 332: 33 0a r10 = 0 + 334: 01 fallthrough + : @21 + 335: 33 00 13 r0 = 0x13 + 338: 69 0b i32 r11 = clz r0 + 340: 64 b3 r3 = r11 + 342: 95 aa 01 r10 = r10 + 0x1 + 345: 33 02 02 r2 = 0x2 + 348: ab 2a f3 jump 335 if r10 != r2 + : @22 + 351: 33 04 1b r4 = 0x1b + 354: ab 43 90 00 jump 498 if r3 != r4 + : @23 + 358: 33 05 14 r5 = 0x14 + 361: 33 0a r10 = 0 + 363: 01 fallthrough + : @24 + 364: 33 00 22 r0 = 0x22 + 367: 69 0b i32 r11 = clz r0 + 369: 64 b3 r3 = r11 + 371: 95 aa 01 r10 = r10 + 0x1 + 374: 33 02 02 r2 = 0x2 + 377: ab 2a f3 jump 364 if r10 != r2 + : @25 + 380: 33 04 1a r4 = 0x1a + 383: ab 43 73 jump 498 if r3 != r4 + : @26 + 386: 33 05 15 r5 = 0x15 + 389: 33 00 00 80 0f 07 r0 = 0x70f8000 + 395: 69 0b i32 r11 = clz r0 + 397: 33 04 05 r4 = 0x5 + 400: ab 4b 62 jump 498 if r11 != r4 + : @27 + 403: 33 05 16 r5 = 0x16 + 406: 33 00 00 80 00 08 r0 = 0x8008000 + 412: 69 0b i32 r11 = clz r0 + 414: 33 04 04 r4 = 0x4 + 417: ab 4b 51 jump 498 if r11 != r4 + : @28 + 420: 33 05 17 r5 = 0x17 + 423: 33 00 00 80 00 18 r0 = 0x18008000 + 429: 69 0b i32 r11 = clz r0 + 431: 33 04 03 r4 = 0x3 + 434: ab 4b 40 jump 498 if r11 != r4 + : @29 + 437: 33 05 18 r5 = 0x18 + 440: 33 00 00 80 00 r0 = 0x8000 + 445: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 448: 69 0b i32 r11 = clz r0 + 450: 33 04 11 r4 = 0x11 + 453: ab 4b 2d jump 498 if r11 != r4 + : @30 + 456: 33 05 19 r5 = 0x19 + 459: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 465: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 468: 69 0b i32 r11 = clz r0 + 470: 33 04 01 r4 = 0x1 + 473: ab 4b 19 jump 498 if r11 != r4 + : @31 + 476: 33 05 1a r5 = 0x1a + 479: 33 00 00 00 08 r0 = 0x80000 + 484: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 487: 69 0b i32 r11 = clz r0 + 489: 33 04 0d r4 = 0xd + 492: ab 4b 06 jump 498 if r11 != r4 + : @32 + 495: 52 05 04 jump 499 if r5 != 0 + : @33 + 498: 00 trap + : @34 + 499: 28 0d fe jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0x1a (initially was 0x0) + * r4 = 0xd (initially was 0x0) + * r5 = 0x1a (initially was 0x0) + * r10 = 0x2 (initially was 0x0) + * r11 = 0xd (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9821 + + +## riscv_rv64uzbb_cpop + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 00 r0 = 0 + 18: 66 0b r11 = cpop r0 + 20: 33 04 r4 = 0 + 22: ab 4b fe 01 jump 532 if r11 != r4 + : @2 + 26: 33 05 03 r5 = 0x3 + 29: 33 00 01 r0 = 0x1 + 32: 66 0b r11 = cpop r0 + 34: 33 04 01 r4 = 0x1 + 37: ab 4b ef 01 jump 532 if r11 != r4 + : @3 + 41: 33 05 04 r5 = 0x4 + 44: 33 00 03 r0 = 0x3 + 47: 66 0b r11 = cpop r0 + 49: 33 04 02 r4 = 0x2 + 52: ab 4b e0 01 jump 532 if r11 != r4 + : @4 + 56: 33 05 05 r5 = 0x5 + 59: 33 00 00 80 r0 = 0xffffffffffff8000 + 63: 66 0b r11 = cpop r0 + 65: 33 04 31 r4 = 0x31 + 68: ab 4b d0 01 jump 532 if r11 != r4 + : @5 + 72: 33 05 06 r5 = 0x6 + 75: 33 00 00 00 80 00 r0 = 0x800000 + 81: 66 0b r11 = cpop r0 + 83: 33 04 01 r4 = 0x1 + 86: ab 4b be 01 jump 532 if r11 != r4 + : @6 + 90: 33 05 07 r5 = 0x7 + 93: 33 00 05 r0 = 0x5 + 96: 97 00 21 r0 = r0 << 0x21 + 99: 95 00 ff r0 = r0 + 0xffffffffffffffff + 102: 97 00 0f r0 = r0 << 0xf + 105: 66 0b r11 = cpop r0 + 107: 33 04 22 r4 = 0x22 + 110: ab 4b a6 01 jump 532 if r11 != r4 + : @7 + 114: 33 05 08 r5 = 0x8 + 117: 33 00 00 80 00 r0 = 0x8000 + 122: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 125: 66 0b r11 = cpop r0 + 127: 33 04 0f r4 = 0xf + 130: ab 4b 92 01 jump 532 if r11 != r4 + : @8 + 134: 33 05 09 r5 = 0x9 + 137: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 143: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 146: 66 0b r11 = cpop r0 + 148: 33 04 1f r4 = 0x1f + 151: ab 4b 7d 01 jump 532 if r11 != r4 + : @9 + 155: 33 05 0a r5 = 0xa + 158: 33 00 00 00 08 r0 = 0x80000 + 163: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 166: 66 0b r11 = cpop r0 + 168: 33 04 13 r4 = 0x13 + 171: ab 4b 69 01 jump 532 if r11 != r4 + : @10 + 175: 33 05 0b r5 = 0xb + 178: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 184: 66 0b r11 = cpop r0 + 186: 33 04 21 r4 = 0x21 + 189: ab 4b 57 01 jump 532 if r11 != r4 + : @11 + 193: 33 05 0c r5 = 0xc + 196: 33 00 00 c0 ab 7f r0 = 0x7fabc000 + 202: 83 00 89 07 i32 r0 = r0 + 0x789 + 206: 97 00 0d r0 = r0 << 0xd + 209: 95 00 f5 01 r0 = r0 + 0x1f5 + 213: 97 00 0c r0 = r0 << 0xc + 216: 66 0b r11 = cpop r0 + 218: 33 04 1b r4 = 0x1b + 221: ab 4b 37 01 jump 532 if r11 != r4 + : @12 + 225: 33 05 0d r5 = 0xd + 228: 33 00 ff r0 = 0xffffffffffffffff + 231: 97 00 3f r0 = r0 << 0x3f + 234: 66 0b r11 = cpop r0 + 236: 33 04 01 r4 = 0x1 + 239: ab 4b 25 01 jump 532 if r11 != r4 + : @13 + 243: 33 05 0e r5 = 0xe + 246: 33 00 0e r0 = 0xe + 249: 66 0b r11 = cpop r0 + 251: 33 04 03 r4 = 0x3 + 254: ab 4b 16 01 jump 532 if r11 != r4 + : @14 + 258: 33 05 0f r5 = 0xf + 261: 33 00 fd r0 = 0xfffffffffffffffd + 264: 97 00 20 r0 = r0 << 0x20 + 267: 95 00 19 r0 = r0 + 0x19 + 270: 97 00 11 r0 = r0 << 0x11 + 273: 95 00 01 04 r0 = r0 + 0x401 + 277: 97 00 0c r0 = r0 << 0xc + 280: 95 00 41 03 r0 = r0 + 0x341 + 284: 66 0b r11 = cpop r0 + 286: 33 04 0b r4 = 0xb + 289: ab 4b f3 00 jump 532 if r11 != r4 + : @15 + 293: 33 05 10 r5 = 0x10 + 296: 33 00 0d r0 = 0xd + 299: 66 00 r0 = cpop r0 + 301: 33 04 03 r4 = 0x3 + 304: ab 40 e4 00 jump 532 if r0 != r4 + : @16 + 308: 33 05 11 r5 = 0x11 + 311: 33 00 0b r0 = 0xb + 314: 66 00 r0 = cpop r0 + 316: 33 04 03 r4 = 0x3 + 319: ab 40 d5 00 jump 532 if r0 != r4 + : @17 + 323: 33 05 12 r5 = 0x12 + 326: 33 0a r10 = 0 + 328: 01 fallthrough + : @18 + 329: 33 00 0d r0 = 0xd + 332: 66 0b r11 = cpop r0 + 334: 64 b3 r3 = r11 + 336: 95 aa 01 r10 = r10 + 0x1 + 339: 33 02 02 r2 = 0x2 + 342: ab 2a f3 jump 329 if r10 != r2 + : @19 + 345: 33 04 03 r4 = 0x3 + 348: ab 43 b8 00 jump 532 if r3 != r4 + : @20 + 352: 33 05 1d r5 = 0x1d + 355: 33 0a r10 = 0 + 357: 01 fallthrough + : @21 + 358: 33 00 13 r0 = 0x13 + 361: 66 0b r11 = cpop r0 + 363: 64 b3 r3 = r11 + 365: 95 aa 01 r10 = r10 + 0x1 + 368: 33 02 02 r2 = 0x2 + 371: ab 2a f3 jump 358 if r10 != r2 + : @22 + 374: 33 04 03 r4 = 0x3 + 377: ab 43 9b 00 jump 532 if r3 != r4 + : @23 + 381: 33 05 14 r5 = 0x14 + 384: 33 0a r10 = 0 + 386: 01 fallthrough + : @24 + 387: 33 00 22 r0 = 0x22 + 390: 66 0b r11 = cpop r0 + 392: 64 b3 r3 = r11 + 394: 95 aa 01 r10 = r10 + 0x1 + 397: 33 02 02 r2 = 0x2 + 400: ab 2a f3 jump 387 if r10 != r2 + : @25 + 403: 33 04 02 r4 = 0x2 + 406: ab 43 7e jump 532 if r3 != r4 + : @26 + 409: 33 05 15 r5 = 0x15 + 412: 33 00 00 80 7f r0 = 0x7f8000 + 417: 66 0b r11 = cpop r0 + 419: 33 04 08 r4 = 0x8 + 422: ab 4b 6e jump 532 if r11 != r4 + : @27 + 425: 33 05 16 r5 = 0x16 + 428: 33 00 00 80 80 00 r0 = 0x808000 + 434: 66 0b r11 = cpop r0 + 436: 33 04 02 r4 = 0x2 + 439: ab 4b 5d jump 532 if r11 != r4 + : @28 + 442: 33 05 17 r5 = 0x17 + 445: 33 00 00 80 80 01 r0 = 0x1808000 + 451: 66 0b r11 = cpop r0 + 453: 33 04 03 r4 = 0x3 + 456: ab 4b 4c jump 532 if r11 != r4 + : @29 + 459: 33 05 18 r5 = 0x18 + 462: 33 00 00 00 06 r0 = 0x60000 + 467: 83 00 01 i32 r0 = r0 + 0x1 + 470: 97 00 0f r0 = r0 << 0xf + 473: 95 00 ff r0 = r0 + 0xffffffffffffffff + 476: 66 0b r11 = cpop r0 + 478: 33 04 11 r4 = 0x11 + 481: ab 4b 33 jump 532 if r11 != r4 + : @30 + 484: 33 05 19 r5 = 0x19 + 487: 33 00 0f r0 = 0xf + 490: 97 00 1f r0 = r0 << 0x1f + 493: 95 00 ff r0 = r0 + 0xffffffffffffffff + 496: 66 0b r11 = cpop r0 + 498: 33 04 22 r4 = 0x22 + 501: ab 4b 1f jump 532 if r11 != r4 + : @31 + 504: 33 05 1a r5 = 0x1a + 507: 33 00 00 e0 01 r0 = 0x1e000 + 512: 83 00 01 i32 r0 = r0 + 0x1 + 515: 97 00 13 r0 = r0 << 0x13 + 518: 95 00 ff r0 = r0 + 0xffffffffffffffff + 521: 66 0b r11 = cpop r0 + 523: 33 04 17 r4 = 0x17 + 526: ab 4b 06 jump 532 if r11 != r4 + : @32 + 529: 52 05 04 jump 533 if r5 != 0 + : @33 + 532: 00 trap + : @34 + 533: 28 eb fd jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0x2 (initially was 0x0) + * r4 = 0x17 (initially was 0x0) + * r5 = 0x1a (initially was 0x0) + * r10 = 0x2 (initially was 0x0) + * r11 = 0x17 (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9808 + + +## riscv_rv64uzbb_cpopw + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 00 r0 = 0 + 18: 67 0b i32 r11 = cpop r0 + 20: 33 04 r4 = 0 + 22: ab 4b d9 01 jump 495 if r11 != r4 + : @2 + 26: 33 05 03 r5 = 0x3 + 29: 33 00 01 r0 = 0x1 + 32: 67 0b i32 r11 = cpop r0 + 34: 33 04 01 r4 = 0x1 + 37: ab 4b ca 01 jump 495 if r11 != r4 + : @3 + 41: 33 05 04 r5 = 0x4 + 44: 33 00 03 r0 = 0x3 + 47: 67 0b i32 r11 = cpop r0 + 49: 33 04 02 r4 = 0x2 + 52: ab 4b bb 01 jump 495 if r11 != r4 + : @4 + 56: 33 05 05 r5 = 0x5 + 59: 33 00 00 00 02 r0 = 0x20000 + 64: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 67: 97 00 0f r0 = r0 << 0xf + 70: 67 0b i32 r11 = cpop r0 + 72: 33 04 11 r4 = 0x11 + 75: ab 4b a4 01 jump 495 if r11 != r4 + : @5 + 79: 33 05 06 r5 = 0x6 + 82: 33 00 00 00 80 00 r0 = 0x800000 + 88: 67 0b i32 r11 = cpop r0 + 90: 33 04 01 r4 = 0x1 + 93: ab 4b 92 01 jump 495 if r11 != r4 + : @6 + 97: 33 05 07 r5 = 0x7 + 100: 33 00 00 00 08 r0 = 0x80000 + 105: 83 00 fb i32 r0 = r0 + 0xfffffffffffffffb + 108: 97 00 0d r0 = r0 << 0xd + 111: 67 0b i32 r11 = cpop r0 + 113: 33 04 12 r4 = 0x12 + 116: ab 4b 7b 01 jump 495 if r11 != r4 + : @7 + 120: 33 05 08 r5 = 0x8 + 123: 33 00 00 80 00 r0 = 0x8000 + 128: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 131: 67 0b i32 r11 = cpop r0 + 133: 33 04 0f r4 = 0xf + 136: ab 4b 67 01 jump 495 if r11 != r4 + : @8 + 140: 33 05 09 r5 = 0x9 + 143: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 149: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 152: 67 0b i32 r11 = cpop r0 + 154: 33 04 1f r4 = 0x1f + 157: ab 4b 52 01 jump 495 if r11 != r4 + : @9 + 161: 33 05 0a r5 = 0xa + 164: 33 00 00 00 08 r0 = 0x80000 + 169: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 172: 67 0b i32 r11 = cpop r0 + 174: 33 04 13 r4 = 0x13 + 177: ab 4b 3e 01 jump 495 if r11 != r4 + : @10 + 181: 33 05 0b r5 = 0xb + 184: 33 00 01 r0 = 0x1 + 187: 97 00 1f r0 = r0 << 0x1f + 190: 67 0b i32 r11 = cpop r0 + 192: 33 04 01 r4 = 0x1 + 195: ab 4b 2c 01 jump 495 if r11 != r4 + : @11 + 199: 33 05 0c r5 = 0xc + 202: 33 00 00 50 1f 12 r0 = 0x121f5000 + 208: 67 0b i32 r11 = cpop r0 + 210: 33 04 09 r4 = 0x9 + 213: ab 4b 1a 01 jump 495 if r11 != r4 + : @12 + 217: 33 05 0d r5 = 0xd + 220: 33 00 r0 = 0 + 222: 67 0b i32 r11 = cpop r0 + 224: 33 04 r4 = 0 + 226: ab 4b 0d 01 jump 495 if r11 != r4 + : @13 + 230: 33 05 0e r5 = 0xe + 233: 33 00 0e r0 = 0xe + 236: 67 0b i32 r11 = cpop r0 + 238: 33 04 03 r4 = 0x3 + 241: ab 4b fe 00 jump 495 if r11 != r4 + : @14 + 245: 33 05 0f r5 = 0xf + 248: 33 00 00 10 40 20 r0 = 0x20401000 + 254: 83 00 41 03 i32 r0 = r0 + 0x341 + 258: 67 0b i32 r11 = cpop r0 + 260: 33 04 07 r4 = 0x7 + 263: ab 4b e8 00 jump 495 if r11 != r4 + : @15 + 267: 33 05 10 r5 = 0x10 + 270: 33 00 0d r0 = 0xd + 273: 67 00 i32 r0 = cpop r0 + 275: 33 04 03 r4 = 0x3 + 278: ab 40 d9 00 jump 495 if r0 != r4 + : @16 + 282: 33 05 11 r5 = 0x11 + 285: 33 00 0b r0 = 0xb + 288: 67 00 i32 r0 = cpop r0 + 290: 33 04 03 r4 = 0x3 + 293: ab 40 ca 00 jump 495 if r0 != r4 + : @17 + 297: 33 05 12 r5 = 0x12 + 300: 33 0a r10 = 0 + 302: 01 fallthrough + : @18 + 303: 33 00 0d r0 = 0xd + 306: 67 0b i32 r11 = cpop r0 + 308: 64 b3 r3 = r11 + 310: 95 aa 01 r10 = r10 + 0x1 + 313: 33 02 02 r2 = 0x2 + 316: ab 2a f3 jump 303 if r10 != r2 + : @19 + 319: 33 04 03 r4 = 0x3 + 322: ab 43 ad 00 jump 495 if r3 != r4 + : @20 + 326: 33 05 1d r5 = 0x1d + 329: 33 0a r10 = 0 + 331: 01 fallthrough + : @21 + 332: 33 00 13 r0 = 0x13 + 335: 67 0b i32 r11 = cpop r0 + 337: 64 b3 r3 = r11 + 339: 95 aa 01 r10 = r10 + 0x1 + 342: 33 02 02 r2 = 0x2 + 345: ab 2a f3 jump 332 if r10 != r2 + : @22 + 348: 33 04 03 r4 = 0x3 + 351: ab 43 90 00 jump 495 if r3 != r4 + : @23 + 355: 33 05 14 r5 = 0x14 + 358: 33 0a r10 = 0 + 360: 01 fallthrough + : @24 + 361: 33 00 22 r0 = 0x22 + 364: 67 0b i32 r11 = cpop r0 + 366: 64 b3 r3 = r11 + 368: 95 aa 01 r10 = r10 + 0x1 + 371: 33 02 02 r2 = 0x2 + 374: ab 2a f3 jump 361 if r10 != r2 + : @25 + 377: 33 04 02 r4 = 0x2 + 380: ab 43 73 jump 495 if r3 != r4 + : @26 + 383: 33 05 15 r5 = 0x15 + 386: 33 00 00 80 7f r0 = 0x7f8000 + 391: 67 0b i32 r11 = cpop r0 + 393: 33 04 08 r4 = 0x8 + 396: ab 4b 63 jump 495 if r11 != r4 + : @27 + 399: 33 05 16 r5 = 0x16 + 402: 33 00 00 80 80 00 r0 = 0x808000 + 408: 67 0b i32 r11 = cpop r0 + 410: 33 04 02 r4 = 0x2 + 413: ab 4b 52 jump 495 if r11 != r4 + : @28 + 416: 33 05 17 r5 = 0x17 + 419: 33 00 00 80 80 01 r0 = 0x1808000 + 425: 67 0b i32 r11 = cpop r0 + 427: 33 04 03 r4 = 0x3 + 430: ab 4b 41 jump 495 if r11 != r4 + : @29 + 433: 33 05 18 r5 = 0x18 + 436: 33 00 00 80 00 30 r0 = 0x30008000 + 442: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 445: 67 0b i32 r11 = cpop r0 + 447: 33 04 11 r4 = 0x11 + 450: ab 4b 2d jump 495 if r11 != r4 + : @30 + 453: 33 05 19 r5 = 0x19 + 456: 33 00 00 00 00 78 r0 = 0x78000000 + 462: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 465: 67 0b i32 r11 = cpop r0 + 467: 33 04 1e r4 = 0x1e + 470: ab 4b 19 jump 495 if r11 != r4 + : @31 + 473: 33 05 1a r5 = 0x1a + 476: 33 00 00 00 08 r0 = 0x80000 + 481: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 484: 67 0b i32 r11 = cpop r0 + 486: 33 04 13 r4 = 0x13 + 489: ab 4b 06 jump 495 if r11 != r4 + : @32 + 492: 52 05 04 jump 496 if r5 != 0 + : @33 + 495: 00 trap + : @34 + 496: 28 10 fe jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0x2 (initially was 0x0) + * r4 = 0x13 (initially was 0x0) + * r5 = 0x1a (initially was 0x0) + * r10 = 0x2 (initially was 0x0) + * r11 = 0x13 (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9821 + + +## riscv_rv64uzbb_ctz + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 00 r0 = 0 + 18: 6a 0b r11 = ctz r0 + 20: 33 04 40 r4 = 0x40 + 23: ab 4b f1 01 jump 520 if r11 != r4 + : @2 + 27: 33 05 03 r5 = 0x3 + 30: 33 00 01 r0 = 0x1 + 33: 6a 0b r11 = ctz r0 + 35: 33 04 r4 = 0 + 37: ab 4b e3 01 jump 520 if r11 != r4 + : @3 + 41: 33 05 04 r5 = 0x4 + 44: 33 00 03 r0 = 0x3 + 47: 6a 0b r11 = ctz r0 + 49: 33 04 r4 = 0 + 51: ab 4b d5 01 jump 520 if r11 != r4 + : @4 + 55: 33 05 05 r5 = 0x5 + 58: 33 00 00 80 r0 = 0xffffffffffff8000 + 62: 6a 0b r11 = ctz r0 + 64: 33 04 0f r4 = 0xf + 67: ab 4b c5 01 jump 520 if r11 != r4 + : @5 + 71: 33 05 06 r5 = 0x6 + 74: 33 00 00 00 80 00 r0 = 0x800000 + 80: 6a 0b r11 = ctz r0 + 82: 33 04 17 r4 = 0x17 + 85: ab 4b b3 01 jump 520 if r11 != r4 + : @6 + 89: 33 05 07 r5 = 0x7 + 92: 33 00 05 r0 = 0x5 + 95: 97 00 21 r0 = r0 << 0x21 + 98: 95 00 ff r0 = r0 + 0xffffffffffffffff + 101: 97 00 0f r0 = r0 << 0xf + 104: 6a 0b r11 = ctz r0 + 106: 33 04 0f r4 = 0xf + 109: ab 4b 9b 01 jump 520 if r11 != r4 + : @7 + 113: 33 05 08 r5 = 0x8 + 116: 33 00 00 80 00 r0 = 0x8000 + 121: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 124: 6a 0b r11 = ctz r0 + 126: 33 04 r4 = 0 + 128: ab 4b 88 01 jump 520 if r11 != r4 + : @8 + 132: 33 05 09 r5 = 0x9 + 135: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 141: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 144: 6a 0b r11 = ctz r0 + 146: 33 04 r4 = 0 + 148: ab 4b 74 01 jump 520 if r11 != r4 + : @9 + 152: 33 05 0a r5 = 0xa + 155: 33 00 00 00 08 r0 = 0x80000 + 160: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 163: 6a 0b r11 = ctz r0 + 165: 33 04 r4 = 0 + 167: ab 4b 61 01 jump 520 if r11 != r4 + : @10 + 171: 33 05 0b r5 = 0xb + 174: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 180: 6a 0b r11 = ctz r0 + 182: 33 04 1f r4 = 0x1f + 185: ab 4b 4f 01 jump 520 if r11 != r4 + : @11 + 189: 33 05 0c r5 = 0xc + 192: 33 00 00 c0 ab 7f r0 = 0x7fabc000 + 198: 83 00 89 07 i32 r0 = r0 + 0x789 + 202: 97 00 0d r0 = r0 << 0xd + 205: 95 00 f5 01 r0 = r0 + 0x1f5 + 209: 97 00 0c r0 = r0 << 0xc + 212: 6a 0b r11 = ctz r0 + 214: 33 04 0c r4 = 0xc + 217: ab 4b 2f 01 jump 520 if r11 != r4 + : @12 + 221: 33 05 0d r5 = 0xd + 224: 33 00 ff r0 = 0xffffffffffffffff + 227: 97 00 3f r0 = r0 << 0x3f + 230: 6a 0b r11 = ctz r0 + 232: 33 04 3f r4 = 0x3f + 235: ab 4b 1d 01 jump 520 if r11 != r4 + : @13 + 239: 33 05 0e r5 = 0xe + 242: 33 00 0e r0 = 0xe + 245: 6a 0b r11 = ctz r0 + 247: 33 04 01 r4 = 0x1 + 250: ab 4b 0e 01 jump 520 if r11 != r4 + : @14 + 254: 33 05 0f r5 = 0xf + 257: 33 00 fd r0 = 0xfffffffffffffffd + 260: 97 00 20 r0 = r0 << 0x20 + 263: 95 00 19 r0 = r0 + 0x19 + 266: 97 00 11 r0 = r0 << 0x11 + 269: 95 00 01 04 r0 = r0 + 0x401 + 273: 97 00 0c r0 = r0 << 0xc + 276: 95 00 41 03 r0 = r0 + 0x341 + 280: 6a 0b r11 = ctz r0 + 282: 33 04 r4 = 0 + 284: ab 4b ec 00 jump 520 if r11 != r4 + : @15 + 288: 33 05 10 r5 = 0x10 + 291: 33 00 0d r0 = 0xd + 294: 6a 00 r0 = ctz r0 + 296: 33 04 r4 = 0 + 298: ab 40 de 00 jump 520 if r0 != r4 + : @16 + 302: 33 05 11 r5 = 0x11 + 305: 33 00 0b r0 = 0xb + 308: 6a 00 r0 = ctz r0 + 310: 33 04 r4 = 0 + 312: ab 40 d0 00 jump 520 if r0 != r4 + : @17 + 316: 33 05 12 r5 = 0x12 + 319: 33 0a r10 = 0 + 321: 01 fallthrough + : @18 + 322: 33 00 0d r0 = 0xd + 325: 6a 0b r11 = ctz r0 + 327: 64 b3 r3 = r11 + 329: 95 aa 01 r10 = r10 + 0x1 + 332: 33 02 02 r2 = 0x2 + 335: ab 2a f3 jump 322 if r10 != r2 + : @19 + 338: 33 04 r4 = 0 + 340: ab 43 b4 00 jump 520 if r3 != r4 + : @20 + 344: 33 05 1d r5 = 0x1d + 347: 33 0a r10 = 0 + 349: 01 fallthrough + : @21 + 350: 33 00 13 r0 = 0x13 + 353: 6a 0b r11 = ctz r0 + 355: 64 b3 r3 = r11 + 357: 95 aa 01 r10 = r10 + 0x1 + 360: 33 02 02 r2 = 0x2 + 363: ab 2a f3 jump 350 if r10 != r2 + : @22 + 366: 33 04 r4 = 0 + 368: ab 43 98 00 jump 520 if r3 != r4 + : @23 + 372: 33 05 14 r5 = 0x14 + 375: 33 0a r10 = 0 + 377: 01 fallthrough + : @24 + 378: 33 00 22 r0 = 0x22 + 381: 6a 0b r11 = ctz r0 + 383: 64 b3 r3 = r11 + 385: 95 aa 01 r10 = r10 + 0x1 + 388: 33 02 02 r2 = 0x2 + 391: ab 2a f3 jump 378 if r10 != r2 + : @25 + 394: 33 04 01 r4 = 0x1 + 397: ab 43 7b jump 520 if r3 != r4 + : @26 + 400: 33 05 15 r5 = 0x15 + 403: 33 00 00 80 7f r0 = 0x7f8000 + 408: 6a 0b r11 = ctz r0 + 410: 33 04 0f r4 = 0xf + 413: ab 4b 6b jump 520 if r11 != r4 + : @27 + 416: 33 05 16 r5 = 0x16 + 419: 33 00 00 80 80 00 r0 = 0x808000 + 425: 6a 0b r11 = ctz r0 + 427: 33 04 0f r4 = 0xf + 430: ab 4b 5a jump 520 if r11 != r4 + : @28 + 433: 33 05 17 r5 = 0x17 + 436: 33 00 00 90 80 01 r0 = 0x1809000 + 442: 6a 0b r11 = ctz r0 + 444: 33 04 0c r4 = 0xc + 447: ab 4b 49 jump 520 if r11 != r4 + : @29 + 450: 33 05 18 r5 = 0x18 + 453: 33 00 00 00 06 r0 = 0x60000 + 458: 83 00 01 i32 r0 = r0 + 0x1 + 461: 97 00 0f r0 = r0 << 0xf + 464: 95 00 ff r0 = r0 + 0xffffffffffffffff + 467: 6a 0b r11 = ctz r0 + 469: 33 04 r4 = 0 + 471: ab 4b 31 jump 520 if r11 != r4 + : @30 + 474: 33 05 19 r5 = 0x19 + 477: 33 00 0f r0 = 0xf + 480: 97 00 1f r0 = r0 << 0x1f + 483: 95 00 ff r0 = r0 + 0xffffffffffffffff + 486: 6a 0b r11 = ctz r0 + 488: 33 04 r4 = 0 + 490: ab 4b 1e jump 520 if r11 != r4 + : @31 + 493: 33 05 1a r5 = 0x1a + 496: 33 00 00 e0 01 r0 = 0x1e000 + 501: 83 00 01 i32 r0 = r0 + 0x1 + 504: 97 00 13 r0 = r0 << 0x13 + 507: 95 00 ff r0 = r0 + 0xffffffffffffffff + 510: 6a 0b r11 = ctz r0 + 512: 33 04 r4 = 0 + 514: ab 4b 06 jump 520 if r11 != r4 + : @32 + 517: 52 05 04 jump 521 if r5 != 0 + : @33 + 520: 00 trap + : @34 + 521: 28 f7 fd jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0x1 (initially was 0x0) + * r5 = 0x1a (initially was 0x0) + * r10 = 0x2 (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9808 + + +## riscv_rv64uzbb_ctzw + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 00 r0 = 0 + 18: 6b 0b i32 r11 = ctz r0 + 20: 33 04 20 r4 = 0x20 + 23: ab 4b d0 01 jump 487 if r11 != r4 + : @2 + 27: 33 05 03 r5 = 0x3 + 30: 33 00 01 r0 = 0x1 + 33: 6b 0b i32 r11 = ctz r0 + 35: 33 04 r4 = 0 + 37: ab 4b c2 01 jump 487 if r11 != r4 + : @3 + 41: 33 05 04 r5 = 0x4 + 44: 33 00 03 r0 = 0x3 + 47: 6b 0b i32 r11 = ctz r0 + 49: 33 04 r4 = 0 + 51: ab 4b b4 01 jump 487 if r11 != r4 + : @4 + 55: 33 05 05 r5 = 0x5 + 58: 33 00 00 00 02 r0 = 0x20000 + 63: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 66: 97 00 0f r0 = r0 << 0xf + 69: 6b 0b i32 r11 = ctz r0 + 71: 33 04 0f r4 = 0xf + 74: ab 4b 9d 01 jump 487 if r11 != r4 + : @5 + 78: 33 05 06 r5 = 0x6 + 81: 33 00 00 00 80 00 r0 = 0x800000 + 87: 6b 0b i32 r11 = ctz r0 + 89: 33 04 17 r4 = 0x17 + 92: ab 4b 8b 01 jump 487 if r11 != r4 + : @6 + 96: 33 05 07 r5 = 0x7 + 99: 33 00 00 00 02 r0 = 0x20000 + 104: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 107: 97 00 0f r0 = r0 << 0xf + 110: 6b 0b i32 r11 = ctz r0 + 112: 33 04 0f r4 = 0xf + 115: ab 4b 74 01 jump 487 if r11 != r4 + : @7 + 119: 33 05 08 r5 = 0x8 + 122: 33 00 00 80 00 r0 = 0x8000 + 127: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 130: 6b 0b i32 r11 = ctz r0 + 132: 33 04 r4 = 0 + 134: ab 4b 61 01 jump 487 if r11 != r4 + : @8 + 138: 33 05 09 r5 = 0x9 + 141: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 147: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 150: 6b 0b i32 r11 = ctz r0 + 152: 33 04 r4 = 0 + 154: ab 4b 4d 01 jump 487 if r11 != r4 + : @9 + 158: 33 05 0a r5 = 0xa + 161: 33 00 00 00 08 r0 = 0x80000 + 166: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 169: 6b 0b i32 r11 = ctz r0 + 171: 33 04 r4 = 0 + 173: ab 4b 3a 01 jump 487 if r11 != r4 + : @10 + 177: 33 05 0b r5 = 0xb + 180: 33 00 01 r0 = 0x1 + 183: 97 00 1f r0 = r0 << 0x1f + 186: 6b 0b i32 r11 = ctz r0 + 188: 33 04 1f r4 = 0x1f + 191: ab 4b 28 01 jump 487 if r11 != r4 + : @11 + 195: 33 05 0c r5 = 0xc + 198: 33 00 00 50 1f 12 r0 = 0x121f5000 + 204: 6b 0b i32 r11 = ctz r0 + 206: 33 04 0c r4 = 0xc + 209: ab 4b 16 01 jump 487 if r11 != r4 + : @12 + 213: 33 05 0d r5 = 0xd + 216: 33 00 03 r0 = 0x3 + 219: 97 00 1e r0 = r0 << 0x1e + 222: 6b 0b i32 r11 = ctz r0 + 224: 33 04 1e r4 = 0x1e + 227: ab 4b 04 01 jump 487 if r11 != r4 + : @13 + 231: 33 05 0e r5 = 0xe + 234: 33 00 0e r0 = 0xe + 237: 6b 0b i32 r11 = ctz r0 + 239: 33 04 01 r4 = 0x1 + 242: ab 4b f5 00 jump 487 if r11 != r4 + : @14 + 246: 33 05 0f r5 = 0xf + 249: 33 00 00 10 40 20 r0 = 0x20401000 + 255: 83 00 41 03 i32 r0 = r0 + 0x341 + 259: 6b 0b i32 r11 = ctz r0 + 261: 33 04 r4 = 0 + 263: ab 4b e0 00 jump 487 if r11 != r4 + : @15 + 267: 33 05 10 r5 = 0x10 + 270: 33 00 0d r0 = 0xd + 273: 6b 00 i32 r0 = ctz r0 + 275: 33 04 r4 = 0 + 277: ab 40 d2 00 jump 487 if r0 != r4 + : @16 + 281: 33 05 11 r5 = 0x11 + 284: 33 00 0b r0 = 0xb + 287: 6b 00 i32 r0 = ctz r0 + 289: 33 04 r4 = 0 + 291: ab 40 c4 00 jump 487 if r0 != r4 + : @17 + 295: 33 05 12 r5 = 0x12 + 298: 33 0a r10 = 0 + 300: 01 fallthrough + : @18 + 301: 33 00 0d r0 = 0xd + 304: 6b 0b i32 r11 = ctz r0 + 306: 64 b3 r3 = r11 + 308: 95 aa 01 r10 = r10 + 0x1 + 311: 33 02 02 r2 = 0x2 + 314: ab 2a f3 jump 301 if r10 != r2 + : @19 + 317: 33 04 r4 = 0 + 319: ab 43 a8 00 jump 487 if r3 != r4 + : @20 + 323: 33 05 1d r5 = 0x1d + 326: 33 0a r10 = 0 + 328: 01 fallthrough + : @21 + 329: 33 00 13 r0 = 0x13 + 332: 6b 0b i32 r11 = ctz r0 + 334: 64 b3 r3 = r11 + 336: 95 aa 01 r10 = r10 + 0x1 + 339: 33 02 02 r2 = 0x2 + 342: ab 2a f3 jump 329 if r10 != r2 + : @22 + 345: 33 04 r4 = 0 + 347: ab 43 8c 00 jump 487 if r3 != r4 + : @23 + 351: 33 05 14 r5 = 0x14 + 354: 33 0a r10 = 0 + 356: 01 fallthrough + : @24 + 357: 33 00 22 r0 = 0x22 + 360: 6b 0b i32 r11 = ctz r0 + 362: 64 b3 r3 = r11 + 364: 95 aa 01 r10 = r10 + 0x1 + 367: 33 02 02 r2 = 0x2 + 370: ab 2a f3 jump 357 if r10 != r2 + : @25 + 373: 33 04 01 r4 = 0x1 + 376: ab 43 6f jump 487 if r3 != r4 + : @26 + 379: 33 05 15 r5 = 0x15 + 382: 33 00 00 80 7f r0 = 0x7f8000 + 387: 6b 0b i32 r11 = ctz r0 + 389: 33 04 0f r4 = 0xf + 392: ab 4b 5f jump 487 if r11 != r4 + : @27 + 395: 33 05 16 r5 = 0x16 + 398: 33 00 00 80 80 00 r0 = 0x808000 + 404: 6b 0b i32 r11 = ctz r0 + 406: 33 04 0f r4 = 0xf + 409: ab 4b 4e jump 487 if r11 != r4 + : @28 + 412: 33 05 17 r5 = 0x17 + 415: 33 00 00 90 80 01 r0 = 0x1809000 + 421: 6b 0b i32 r11 = ctz r0 + 423: 33 04 0c r4 = 0xc + 426: ab 4b 3d jump 487 if r11 != r4 + : @29 + 429: 33 05 18 r5 = 0x18 + 432: 33 00 00 80 00 r0 = 0x8000 + 437: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 440: 6b 0b i32 r11 = ctz r0 + 442: 33 04 r4 = 0 + 444: ab 4b 2b jump 487 if r11 != r4 + : @30 + 447: 33 05 19 r5 = 0x19 + 450: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 456: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 459: 6b 0b i32 r11 = ctz r0 + 461: 33 04 r4 = 0 + 463: ab 4b 18 jump 487 if r11 != r4 + : @31 + 466: 33 05 1a r5 = 0x1a + 469: 33 00 00 00 08 r0 = 0x80000 + 474: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 477: 6b 0b i32 r11 = ctz r0 + 479: 33 04 r4 = 0 + 481: ab 4b 06 jump 487 if r11 != r4 + : @32 + 484: 52 05 04 jump 488 if r5 != 0 + : @33 + 487: 00 trap + : @34 + 488: 28 18 fe jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0x1 (initially was 0x0) + * r5 = 0x1a (initially was 0x0) + * r10 = 0x2 (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9820 + + +## riscv_rv64uzbb_max + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 08 r8 = 0 + 18: 33 09 r9 = 0 + 20: e3 98 0b r11 = maxs(r8, r9) + 23: 33 04 r4 = 0 + 25: ab 4b ad 03 jump 966 if r11 != r4 + : @2 + 29: 33 05 03 r5 = 0x3 + 32: 33 08 01 r8 = 0x1 + 35: 33 09 01 r9 = 0x1 + 38: e3 98 0b r11 = maxs(r8, r9) + 41: 33 04 01 r4 = 0x1 + 44: ab 4b 9a 03 jump 966 if r11 != r4 + : @3 + 48: 33 05 04 r5 = 0x4 + 51: 33 08 03 r8 = 0x3 + 54: 33 09 07 r9 = 0x7 + 57: e3 98 0b r11 = maxs(r8, r9) + 60: 33 04 07 r4 = 0x7 + 63: ab 4b 87 03 jump 966 if r11 != r4 + : @4 + 67: 33 05 05 r5 = 0x5 + 70: 33 08 07 r8 = 0x7 + 73: 33 09 03 r9 = 0x3 + 76: e3 98 0b r11 = maxs(r8, r9) + 79: 33 04 07 r4 = 0x7 + 82: ab 4b 74 03 jump 966 if r11 != r4 + : @5 + 86: 33 05 06 r5 = 0x6 + 89: 33 08 r8 = 0 + 91: 33 09 00 80 r9 = 0xffffffffffff8000 + 95: e3 98 0b r11 = maxs(r8, r9) + 98: 33 04 r4 = 0 + 100: ab 4b 62 03 jump 966 if r11 != r4 + : @6 + 104: 33 05 07 r5 = 0x7 + 107: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 113: 33 09 r9 = 0 + 115: e3 98 0b r11 = maxs(r8, r9) + 118: 33 04 r4 = 0 + 120: ab 4b 4e 03 jump 966 if r11 != r4 + : @7 + 124: 33 05 08 r5 = 0x8 + 127: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 133: 33 09 00 80 r9 = 0xffffffffffff8000 + 137: e3 98 0b r11 = maxs(r8, r9) + 140: 33 04 00 80 r4 = 0xffffffffffff8000 + 144: ab 4b 36 03 jump 966 if r11 != r4 + : @8 + 148: 33 05 09 r5 = 0x9 + 151: 33 08 r8 = 0 + 153: 33 09 00 80 00 r9 = 0x8000 + 158: 83 99 ff i32 r9 = r9 + 0xffffffffffffffff + 161: e3 98 0b r11 = maxs(r8, r9) + 164: 33 04 00 80 00 r4 = 0x8000 + 169: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 172: ab 4b 1a 03 jump 966 if r11 != r4 + : @9 + 176: 33 05 0a r5 = 0xa + 179: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 185: 83 88 ff i32 r8 = r8 + 0xffffffffffffffff + 188: 33 09 r9 = 0 + 190: e3 98 0b r11 = maxs(r8, r9) + 193: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 199: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 202: ab 4b fc 02 jump 966 if r11 != r4 + : @10 + 206: 33 05 0b r5 = 0xb + 209: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 215: 83 88 ff i32 r8 = r8 + 0xffffffffffffffff + 218: 33 09 00 80 00 r9 = 0x8000 + 223: 83 99 ff i32 r9 = r9 + 0xffffffffffffffff + 226: e3 98 0b r11 = maxs(r8, r9) + 229: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 235: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 238: ab 4b d8 02 jump 966 if r11 != r4 + : @11 + 242: 33 05 0c r5 = 0xc + 245: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 251: 33 09 00 80 00 r9 = 0x8000 + 256: 83 99 ff i32 r9 = r9 + 0xffffffffffffffff + 259: e3 98 0b r11 = maxs(r8, r9) + 262: 33 04 00 80 00 r4 = 0x8000 + 267: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 270: ab 4b b8 02 jump 966 if r11 != r4 + : @12 + 274: 33 05 0d r5 = 0xd + 277: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 283: 83 88 ff i32 r8 = r8 + 0xffffffffffffffff + 286: 33 09 00 80 r9 = 0xffffffffffff8000 + 290: e3 98 0b r11 = maxs(r8, r9) + 293: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 299: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 302: ab 4b 98 02 jump 966 if r11 != r4 + : @13 + 306: 33 05 0e r5 = 0xe + 309: 33 08 r8 = 0 + 311: 33 09 ff r9 = 0xffffffffffffffff + 314: e3 98 0b r11 = maxs(r8, r9) + 317: 33 04 r4 = 0 + 319: ab 4b 87 02 jump 966 if r11 != r4 + : @14 + 323: 33 05 0f r5 = 0xf + 326: 33 08 ff r8 = 0xffffffffffffffff + 329: 33 09 01 r9 = 0x1 + 332: e3 98 0b r11 = maxs(r8, r9) + 335: 33 04 01 r4 = 0x1 + 338: ab 4b 74 02 jump 966 if r11 != r4 + : @15 + 342: 33 05 10 r5 = 0x10 + 345: 33 08 ff r8 = 0xffffffffffffffff + 348: 33 09 ff r9 = 0xffffffffffffffff + 351: e3 98 0b r11 = maxs(r8, r9) + 354: 33 04 ff r4 = 0xffffffffffffffff + 357: ab 4b 61 02 jump 966 if r11 != r4 + : @16 + 361: 33 05 11 r5 = 0x11 + 364: 33 08 0e r8 = 0xe + 367: 33 09 0d r9 = 0xd + 370: e3 98 08 r8 = maxs(r8, r9) + 373: 33 04 0e r4 = 0xe + 376: ab 48 4e 02 jump 966 if r8 != r4 + : @17 + 380: 33 05 12 r5 = 0x12 + 383: 33 08 0b r8 = 0xb + 386: 33 09 0d r9 = 0xd + 389: e3 98 09 r9 = maxs(r8, r9) + 392: 33 04 0d r4 = 0xd + 395: ab 49 3b 02 jump 966 if r9 != r4 + : @18 + 399: 33 05 13 r5 = 0x13 + 402: 33 08 0d r8 = 0xd + 405: e3 88 08 r8 = maxs(r8, r8) + 408: 33 04 0d r4 = 0xd + 411: ab 48 2b 02 jump 966 if r8 != r4 + : @19 + 415: 33 05 14 r5 = 0x14 + 418: 33 0a r10 = 0 + 420: 01 fallthrough + : @20 + 421: 33 00 0b r0 = 0xb + 424: 33 01 0d r1 = 0xd + 427: e3 10 0b r11 = maxs(r0, r1) + 430: 64 b3 r3 = r11 + 432: 95 aa 01 r10 = r10 + 0x1 + 435: 33 02 02 r2 = 0x2 + 438: ab 2a ef jump 421 if r10 != r2 + : @21 + 441: 33 04 0d r4 = 0xd + 444: ab 43 0a 02 jump 966 if r3 != r4 + : @22 + 448: 33 05 15 r5 = 0x15 + 451: 33 0a r10 = 0 + 453: 01 fallthrough + : @23 + 454: 33 00 0e r0 = 0xe + 457: 33 01 0d r1 = 0xd + 460: e3 10 0b r11 = maxs(r0, r1) + 463: 64 b3 r3 = r11 + 465: 95 aa 01 r10 = r10 + 0x1 + 468: 33 02 02 r2 = 0x2 + 471: ab 2a ef jump 454 if r10 != r2 + : @24 + 474: 33 04 0e r4 = 0xe + 477: ab 43 e9 01 jump 966 if r3 != r4 + : @25 + 481: 33 05 16 r5 = 0x16 + 484: 33 0a r10 = 0 + 486: 01 fallthrough + : @26 + 487: 33 00 0c r0 = 0xc + 490: 33 01 0d r1 = 0xd + 493: e3 10 0b r11 = maxs(r0, r1) + 496: 64 b3 r3 = r11 + 498: 95 aa 01 r10 = r10 + 0x1 + 501: 33 02 02 r2 = 0x2 + 504: ab 2a ef jump 487 if r10 != r2 + : @27 + 507: 33 04 0d r4 = 0xd + 510: ab 43 c8 01 jump 966 if r3 != r4 + : @28 + 514: 33 05 17 r5 = 0x17 + 517: 33 0a r10 = 0 + 519: 01 fallthrough + : @29 + 520: 33 00 0e r0 = 0xe + 523: 33 01 0d r1 = 0xd + 526: e3 10 0b r11 = maxs(r0, r1) + 529: 95 aa 01 r10 = r10 + 0x1 + 532: 33 02 02 r2 = 0x2 + 535: ab 2a f1 jump 520 if r10 != r2 + : @30 + 538: 33 04 0e r4 = 0xe + 541: ab 4b a9 01 jump 966 if r11 != r4 + : @31 + 545: 33 05 18 r5 = 0x18 + 548: 33 0a r10 = 0 + 550: 01 fallthrough + : @32 + 551: 33 00 0b r0 = 0xb + 554: 33 01 0d r1 = 0xd + 557: e3 10 0b r11 = maxs(r0, r1) + 560: 95 aa 01 r10 = r10 + 0x1 + 563: 33 02 02 r2 = 0x2 + 566: ab 2a f1 jump 551 if r10 != r2 + : @33 + 569: 33 04 0d r4 = 0xd + 572: ab 4b 8a 01 jump 966 if r11 != r4 + : @34 + 576: 33 05 19 r5 = 0x19 + 579: 33 0a r10 = 0 + 581: 01 fallthrough + : @35 + 582: 33 00 0f r0 = 0xf + 585: 33 01 0d r1 = 0xd + 588: e3 10 0b r11 = maxs(r0, r1) + 591: 95 aa 01 r10 = r10 + 0x1 + 594: 33 02 02 r2 = 0x2 + 597: ab 2a f1 jump 582 if r10 != r2 + : @36 + 600: 33 04 0f r4 = 0xf + 603: ab 4b 6b 01 jump 966 if r11 != r4 + : @37 + 607: 33 05 1a r5 = 0x1a + 610: 33 0a r10 = 0 + 612: 01 fallthrough + : @38 + 613: 33 00 0a r0 = 0xa + 616: 33 01 0d r1 = 0xd + 619: e3 10 0b r11 = maxs(r0, r1) + 622: 95 aa 01 r10 = r10 + 0x1 + 625: 33 02 02 r2 = 0x2 + 628: ab 2a f1 jump 613 if r10 != r2 + : @39 + 631: 33 04 0d r4 = 0xd + 634: ab 4b 4c 01 jump 966 if r11 != r4 + : @40 + 638: 33 05 1b r5 = 0x1b + 641: 33 0a r10 = 0 + 643: 01 fallthrough + : @41 + 644: 33 00 10 r0 = 0x10 + 647: 33 01 0d r1 = 0xd + 650: e3 10 0b r11 = maxs(r0, r1) + 653: 95 aa 01 r10 = r10 + 0x1 + 656: 33 02 02 r2 = 0x2 + 659: ab 2a f1 jump 644 if r10 != r2 + : @42 + 662: 33 04 10 r4 = 0x10 + 665: ab 4b 2d 01 jump 966 if r11 != r4 + : @43 + 669: 33 05 1c r5 = 0x1c + 672: 33 0a r10 = 0 + 674: 01 fallthrough + : @44 + 675: 33 00 09 r0 = 0x9 + 678: 33 01 0d r1 = 0xd + 681: e3 10 0b r11 = maxs(r0, r1) + 684: 95 aa 01 r10 = r10 + 0x1 + 687: 33 02 02 r2 = 0x2 + 690: ab 2a f1 jump 675 if r10 != r2 + : @45 + 693: 33 04 0d r4 = 0xd + 696: ab 4b 0e 01 jump 966 if r11 != r4 + : @46 + 700: 33 05 1d r5 = 0x1d + 703: 33 0a r10 = 0 + 705: 01 fallthrough + : @47 + 706: 33 01 0d r1 = 0xd + 709: 33 00 11 r0 = 0x11 + 712: e3 10 0b r11 = maxs(r0, r1) + 715: 95 aa 01 r10 = r10 + 0x1 + 718: 33 02 02 r2 = 0x2 + 721: ab 2a f1 jump 706 if r10 != r2 + : @48 + 724: 33 04 11 r4 = 0x11 + 727: ab 4b ef 00 jump 966 if r11 != r4 + : @49 + 731: 33 05 1e r5 = 0x1e + 734: 33 0a r10 = 0 + 736: 01 fallthrough + : @50 + 737: 33 01 0d r1 = 0xd + 740: 33 00 08 r0 = 0x8 + 743: e3 10 0b r11 = maxs(r0, r1) + 746: 95 aa 01 r10 = r10 + 0x1 + 749: 33 02 02 r2 = 0x2 + 752: ab 2a f1 jump 737 if r10 != r2 + : @51 + 755: 33 04 0d r4 = 0xd + 758: ab 4b d0 00 jump 966 if r11 != r4 + : @52 + 762: 33 05 1f r5 = 0x1f + 765: 33 0a r10 = 0 + 767: 01 fallthrough + : @53 + 768: 33 01 0d r1 = 0xd + 771: 33 00 12 r0 = 0x12 + 774: e3 10 0b r11 = maxs(r0, r1) + 777: 95 aa 01 r10 = r10 + 0x1 + 780: 33 02 02 r2 = 0x2 + 783: ab 2a f1 jump 768 if r10 != r2 + : @54 + 786: 33 04 12 r4 = 0x12 + 789: ab 4b b1 00 jump 966 if r11 != r4 + : @55 + 793: 33 05 20 r5 = 0x20 + 796: 33 0a r10 = 0 + 798: 01 fallthrough + : @56 + 799: 33 01 0d r1 = 0xd + 802: 33 00 07 r0 = 0x7 + 805: e3 10 0b r11 = maxs(r0, r1) + 808: 95 aa 01 r10 = r10 + 0x1 + 811: 33 02 02 r2 = 0x2 + 814: ab 2a f1 jump 799 if r10 != r2 + : @57 + 817: 33 04 0d r4 = 0xd + 820: ab 4b 92 00 jump 966 if r11 != r4 + : @58 + 824: 33 05 21 r5 = 0x21 + 827: 33 0a r10 = 0 + 829: 01 fallthrough + : @59 + 830: 33 01 0d r1 = 0xd + 833: 33 00 13 r0 = 0x13 + 836: e3 10 0b r11 = maxs(r0, r1) + 839: 95 aa 01 r10 = r10 + 0x1 + 842: 33 02 02 r2 = 0x2 + 845: ab 2a f1 jump 830 if r10 != r2 + : @60 + 848: 33 04 13 r4 = 0x13 + 851: ab 4b 73 jump 966 if r11 != r4 + : @61 + 854: 33 05 22 r5 = 0x22 + 857: 33 0a r10 = 0 + 859: 01 fallthrough + : @62 + 860: 33 01 0d r1 = 0xd + 863: 33 00 06 r0 = 0x6 + 866: e3 10 0b r11 = maxs(r0, r1) + 869: 95 aa 01 r10 = r10 + 0x1 + 872: 33 02 02 r2 = 0x2 + 875: ab 2a f1 jump 860 if r10 != r2 + : @63 + 878: 33 04 0d r4 = 0xd + 881: ab 4b 55 jump 966 if r11 != r4 + : @64 + 884: 33 05 23 r5 = 0x23 + 887: 33 00 ff r0 = 0xffffffffffffffff + 890: 3e 02 00 00 02 u64 [0x20000] = r2 + 895: 89 02 r2 = r0 s 0 + 925: 64 01 r1 = r0 + 927: 93 21 r1 = 0 if r2 == 0 + 929: 3a 02 00 00 02 r2 = u64 [0x20000] + 934: 33 04 r4 = 0 + 936: ab 41 1e jump 966 if r1 != r4 + : @66 + 939: 33 05 25 r5 = 0x25 + 942: 33 00 r0 = 0 + 944: 33 04 r4 = 0 + 946: ab 40 14 jump 966 if r0 != r4 + : @67 + 949: 33 05 26 r5 = 0x26 + 952: 33 00 10 r0 = 0x10 + 955: 33 01 1e r1 = 0x1e + 958: 33 04 r4 = 0 + 960: 52 04 06 jump 966 if r4 != 0 + : @68 + 963: 52 05 04 jump 967 if r5 != 0 + : @69 + 966: 00 trap + : @70 + 967: 28 39 fc jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r1 = 0x1e (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0xd (initially was 0x0) + * r5 = 0x26 (initially was 0x0) + * r8 = 0xd (initially was 0x0) + * r9 = 0xd (initially was 0x0) + * r10 = 0x2 (initially was 0x0) + * r11 = 0xd (initially was 0x0) + +Final non-zero memory chunks: + * 0x20000-0x20001 (0x1 bytes) = [0x02] + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9588 + + +## riscv_rv64uzbb_maxu + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 08 r8 = 0 + 18: 33 09 r9 = 0 + 20: e4 98 0b r11 = maxu(r8, r9) + 23: 33 04 r4 = 0 + 25: ab 4b e5 03 jump 1022 if r11 != r4 + : @2 + 29: 33 05 03 r5 = 0x3 + 32: 33 08 01 r8 = 0x1 + 35: 33 09 01 r9 = 0x1 + 38: e4 98 0b r11 = maxu(r8, r9) + 41: 33 04 01 r4 = 0x1 + 44: ab 4b d2 03 jump 1022 if r11 != r4 + : @3 + 48: 33 05 04 r5 = 0x4 + 51: 33 08 03 r8 = 0x3 + 54: 33 09 07 r9 = 0x7 + 57: e4 98 0b r11 = maxu(r8, r9) + 60: 33 04 07 r4 = 0x7 + 63: ab 4b bf 03 jump 1022 if r11 != r4 + : @4 + 67: 33 05 05 r5 = 0x5 + 70: 33 08 07 r8 = 0x7 + 73: 33 09 03 r9 = 0x3 + 76: e4 98 0b r11 = maxu(r8, r9) + 79: 33 04 07 r4 = 0x7 + 82: ab 4b ac 03 jump 1022 if r11 != r4 + : @5 + 86: 33 05 06 r5 = 0x6 + 89: 33 08 r8 = 0 + 91: 33 09 00 00 02 r9 = 0x20000 + 96: 83 99 ff i32 r9 = r9 + 0xffffffffffffffff + 99: 97 99 0f r9 = r9 << 0xf + 102: e4 98 0b r11 = maxu(r8, r9) + 105: 33 04 00 00 02 r4 = 0x20000 + 110: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 113: 97 44 0f r4 = r4 << 0xf + 116: ab 4b 8a 03 jump 1022 if r11 != r4 + : @6 + 120: 33 05 07 r5 = 0x7 + 123: 33 08 01 r8 = 0x1 + 126: 97 88 1f r8 = r8 << 0x1f + 129: 33 09 r9 = 0 + 131: e4 98 0b r11 = maxu(r8, r9) + 134: 33 04 01 r4 = 0x1 + 137: 97 44 1f r4 = r4 << 0x1f + 140: ab 4b 72 03 jump 1022 if r11 != r4 + : @7 + 144: 33 05 08 r5 = 0x8 + 147: 33 08 01 r8 = 0x1 + 150: 97 88 1f r8 = r8 << 0x1f + 153: 33 09 00 00 02 r9 = 0x20000 + 158: 83 99 ff i32 r9 = r9 + 0xffffffffffffffff + 161: 97 99 0f r9 = r9 << 0xf + 164: e4 98 0b r11 = maxu(r8, r9) + 167: 33 04 00 00 02 r4 = 0x20000 + 172: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 175: 97 44 0f r4 = r4 << 0xf + 178: ab 4b 4c 03 jump 1022 if r11 != r4 + : @8 + 182: 33 05 09 r5 = 0x9 + 185: 33 08 r8 = 0 + 187: 33 09 00 80 00 r9 = 0x8000 + 192: 83 99 ff i32 r9 = r9 + 0xffffffffffffffff + 195: e4 98 0b r11 = maxu(r8, r9) + 198: 33 04 00 80 00 r4 = 0x8000 + 203: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 206: ab 4b 30 03 jump 1022 if r11 != r4 + : @9 + 210: 33 05 0a r5 = 0xa + 213: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 219: 83 88 ff i32 r8 = r8 + 0xffffffffffffffff + 222: 33 09 r9 = 0 + 224: e4 98 0b r11 = maxu(r8, r9) + 227: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 233: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 236: ab 4b 12 03 jump 1022 if r11 != r4 + : @10 + 240: 33 05 0b r5 = 0xb + 243: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 249: 83 88 ff i32 r8 = r8 + 0xffffffffffffffff + 252: 33 09 00 80 00 r9 = 0x8000 + 257: 83 99 ff i32 r9 = r9 + 0xffffffffffffffff + 260: e4 98 0b r11 = maxu(r8, r9) + 263: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 269: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 272: ab 4b ee 02 jump 1022 if r11 != r4 + : @11 + 276: 33 05 0c r5 = 0xc + 279: 33 08 01 r8 = 0x1 + 282: 97 88 1f r8 = r8 << 0x1f + 285: 33 09 00 80 00 r9 = 0x8000 + 290: 83 99 ff i32 r9 = r9 + 0xffffffffffffffff + 293: e4 98 0b r11 = maxu(r8, r9) + 296: 33 04 01 r4 = 0x1 + 299: 97 44 1f r4 = r4 << 0x1f + 302: ab 4b d0 02 jump 1022 if r11 != r4 + : @12 + 306: 33 05 0d r5 = 0xd + 309: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 315: 83 88 ff i32 r8 = r8 + 0xffffffffffffffff + 318: 33 09 00 00 02 r9 = 0x20000 + 323: 83 99 ff i32 r9 = r9 + 0xffffffffffffffff + 326: 97 99 0f r9 = r9 << 0xf + 329: e4 98 0b r11 = maxu(r8, r9) + 332: 33 04 00 00 02 r4 = 0x20000 + 337: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 340: 97 44 0f r4 = r4 << 0xf + 343: ab 4b a7 02 jump 1022 if r11 != r4 + : @13 + 347: 33 05 0e r5 = 0xe + 350: 33 08 r8 = 0 + 352: 33 09 01 r9 = 0x1 + 355: 97 99 20 r9 = r9 << 0x20 + 358: 95 99 ff r9 = r9 + 0xffffffffffffffff + 361: e4 98 0b r11 = maxu(r8, r9) + 364: 33 04 01 r4 = 0x1 + 367: 97 44 20 r4 = r4 << 0x20 + 370: 95 44 ff r4 = r4 + 0xffffffffffffffff + 373: ab 4b 89 02 jump 1022 if r11 != r4 + : @14 + 377: 33 05 0f r5 = 0xf + 380: 33 08 01 r8 = 0x1 + 383: 97 88 20 r8 = r8 << 0x20 + 386: 95 88 ff r8 = r8 + 0xffffffffffffffff + 389: 33 09 01 r9 = 0x1 + 392: e4 98 0b r11 = maxu(r8, r9) + 395: 33 04 01 r4 = 0x1 + 398: 97 44 20 r4 = r4 << 0x20 + 401: 95 44 ff r4 = r4 + 0xffffffffffffffff + 404: ab 4b 6a 02 jump 1022 if r11 != r4 + : @15 + 408: 33 05 10 r5 = 0x10 + 411: 33 08 01 r8 = 0x1 + 414: 97 88 20 r8 = r8 << 0x20 + 417: 95 88 ff r8 = r8 + 0xffffffffffffffff + 420: 33 09 01 r9 = 0x1 + 423: 97 99 20 r9 = r9 << 0x20 + 426: 95 99 ff r9 = r9 + 0xffffffffffffffff + 429: e4 98 0b r11 = maxu(r8, r9) + 432: 33 04 01 r4 = 0x1 + 435: 97 44 20 r4 = r4 << 0x20 + 438: 95 44 ff r4 = r4 + 0xffffffffffffffff + 441: ab 4b 45 02 jump 1022 if r11 != r4 + : @16 + 445: 33 05 11 r5 = 0x11 + 448: 33 08 0e r8 = 0xe + 451: 33 09 0d r9 = 0xd + 454: e4 98 08 r8 = maxu(r8, r9) + 457: 33 04 0e r4 = 0xe + 460: ab 48 32 02 jump 1022 if r8 != r4 + : @17 + 464: 33 05 12 r5 = 0x12 + 467: 33 08 0b r8 = 0xb + 470: 33 09 0d r9 = 0xd + 473: e4 98 09 r9 = maxu(r8, r9) + 476: 33 04 0d r4 = 0xd + 479: ab 49 1f 02 jump 1022 if r9 != r4 + : @18 + 483: 33 05 13 r5 = 0x13 + 486: 33 08 0d r8 = 0xd + 489: e4 88 08 r8 = maxu(r8, r8) + 492: 33 04 0d r4 = 0xd + 495: ab 48 0f 02 jump 1022 if r8 != r4 + : @19 + 499: 33 05 14 r5 = 0x14 + 502: 33 0a r10 = 0 + 504: 01 fallthrough + : @20 + 505: 33 00 0b r0 = 0xb + 508: 33 01 0d r1 = 0xd + 511: e4 10 0b r11 = maxu(r0, r1) + 514: 64 b3 r3 = r11 + 516: 95 aa 01 r10 = r10 + 0x1 + 519: 33 02 02 r2 = 0x2 + 522: ab 2a ef jump 505 if r10 != r2 + : @21 + 525: 33 04 0d r4 = 0xd + 528: ab 43 ee 01 jump 1022 if r3 != r4 + : @22 + 532: 33 05 15 r5 = 0x15 + 535: 33 0a r10 = 0 + 537: 01 fallthrough + : @23 + 538: 33 00 0e r0 = 0xe + 541: 33 01 0d r1 = 0xd + 544: e4 10 0b r11 = maxu(r0, r1) + 547: 64 b3 r3 = r11 + 549: 95 aa 01 r10 = r10 + 0x1 + 552: 33 02 02 r2 = 0x2 + 555: ab 2a ef jump 538 if r10 != r2 + : @24 + 558: 33 04 0e r4 = 0xe + 561: ab 43 cd 01 jump 1022 if r3 != r4 + : @25 + 565: 33 05 16 r5 = 0x16 + 568: 33 0a r10 = 0 + 570: 01 fallthrough + : @26 + 571: 33 00 0c r0 = 0xc + 574: 33 01 0d r1 = 0xd + 577: e4 10 0b r11 = maxu(r0, r1) + 580: 64 b3 r3 = r11 + 582: 95 aa 01 r10 = r10 + 0x1 + 585: 33 02 02 r2 = 0x2 + 588: ab 2a ef jump 571 if r10 != r2 + : @27 + 591: 33 04 0d r4 = 0xd + 594: ab 43 ac 01 jump 1022 if r3 != r4 + : @28 + 598: 33 05 17 r5 = 0x17 + 601: 33 0a r10 = 0 + 603: 01 fallthrough + : @29 + 604: 33 00 0e r0 = 0xe + 607: 33 01 0d r1 = 0xd + 610: e4 10 0b r11 = maxu(r0, r1) + 613: 95 aa 01 r10 = r10 + 0x1 + 616: 33 02 02 r2 = 0x2 + 619: ab 2a f1 jump 604 if r10 != r2 + : @30 + 622: 33 04 0e r4 = 0xe + 625: ab 4b 8d 01 jump 1022 if r11 != r4 + : @31 + 629: 33 05 18 r5 = 0x18 + 632: 33 0a r10 = 0 + 634: 01 fallthrough + : @32 + 635: 33 00 0b r0 = 0xb + 638: 33 01 0d r1 = 0xd + 641: e4 10 0b r11 = maxu(r0, r1) + 644: 95 aa 01 r10 = r10 + 0x1 + 647: 33 02 02 r2 = 0x2 + 650: ab 2a f1 jump 635 if r10 != r2 + : @33 + 653: 33 04 0d r4 = 0xd + 656: ab 4b 6e 01 jump 1022 if r11 != r4 + : @34 + 660: 33 05 19 r5 = 0x19 + 663: 33 0a r10 = 0 + 665: 01 fallthrough + : @35 + 666: 33 00 0f r0 = 0xf + 669: 33 01 0d r1 = 0xd + 672: e4 10 0b r11 = maxu(r0, r1) + 675: 95 aa 01 r10 = r10 + 0x1 + 678: 33 02 02 r2 = 0x2 + 681: ab 2a f1 jump 666 if r10 != r2 + : @36 + 684: 33 04 0f r4 = 0xf + 687: ab 4b 4f 01 jump 1022 if r11 != r4 + : @37 + 691: 33 05 1a r5 = 0x1a + 694: 33 0a r10 = 0 + 696: 01 fallthrough + : @38 + 697: 33 00 0a r0 = 0xa + 700: 33 01 0d r1 = 0xd + 703: e4 10 0b r11 = maxu(r0, r1) + 706: 95 aa 01 r10 = r10 + 0x1 + 709: 33 02 02 r2 = 0x2 + 712: ab 2a f1 jump 697 if r10 != r2 + : @39 + 715: 33 04 0d r4 = 0xd + 718: ab 4b 30 01 jump 1022 if r11 != r4 + : @40 + 722: 33 05 1b r5 = 0x1b + 725: 33 0a r10 = 0 + 727: 01 fallthrough + : @41 + 728: 33 00 10 r0 = 0x10 + 731: 33 01 0d r1 = 0xd + 734: e4 10 0b r11 = maxu(r0, r1) + 737: 95 aa 01 r10 = r10 + 0x1 + 740: 33 02 02 r2 = 0x2 + 743: ab 2a f1 jump 728 if r10 != r2 + : @42 + 746: 33 04 10 r4 = 0x10 + 749: ab 4b 11 01 jump 1022 if r11 != r4 + : @43 + 753: 33 05 1c r5 = 0x1c + 756: 33 0a r10 = 0 + 758: 01 fallthrough + : @44 + 759: 33 00 09 r0 = 0x9 + 762: 33 01 0d r1 = 0xd + 765: e4 10 0b r11 = maxu(r0, r1) + 768: 95 aa 01 r10 = r10 + 0x1 + 771: 33 02 02 r2 = 0x2 + 774: ab 2a f1 jump 759 if r10 != r2 + : @45 + 777: 33 04 0d r4 = 0xd + 780: ab 4b f2 00 jump 1022 if r11 != r4 + : @46 + 784: 33 05 1d r5 = 0x1d + 787: 33 0a r10 = 0 + 789: 01 fallthrough + : @47 + 790: 33 01 0d r1 = 0xd + 793: 33 00 11 r0 = 0x11 + 796: e4 10 0b r11 = maxu(r0, r1) + 799: 95 aa 01 r10 = r10 + 0x1 + 802: 33 02 02 r2 = 0x2 + 805: ab 2a f1 jump 790 if r10 != r2 + : @48 + 808: 33 04 11 r4 = 0x11 + 811: ab 4b d3 00 jump 1022 if r11 != r4 + : @49 + 815: 33 05 1e r5 = 0x1e + 818: 33 0a r10 = 0 + 820: 01 fallthrough + : @50 + 821: 33 01 0d r1 = 0xd + 824: 33 00 08 r0 = 0x8 + 827: e4 10 0b r11 = maxu(r0, r1) + 830: 95 aa 01 r10 = r10 + 0x1 + 833: 33 02 02 r2 = 0x2 + 836: ab 2a f1 jump 821 if r10 != r2 + : @51 + 839: 33 04 0d r4 = 0xd + 842: ab 4b b4 00 jump 1022 if r11 != r4 + : @52 + 846: 33 05 1f r5 = 0x1f + 849: 33 0a r10 = 0 + 851: 01 fallthrough + : @53 + 852: 33 01 0d r1 = 0xd + 855: 33 00 12 r0 = 0x12 + 858: e4 10 0b r11 = maxu(r0, r1) + 861: 95 aa 01 r10 = r10 + 0x1 + 864: 33 02 02 r2 = 0x2 + 867: ab 2a f1 jump 852 if r10 != r2 + : @54 + 870: 33 04 12 r4 = 0x12 + 873: ab 4b 95 00 jump 1022 if r11 != r4 + : @55 + 877: 33 05 20 r5 = 0x20 + 880: 33 0a r10 = 0 + 882: 01 fallthrough + : @56 + 883: 33 01 0d r1 = 0xd + 886: 33 00 07 r0 = 0x7 + 889: e4 10 0b r11 = maxu(r0, r1) + 892: 95 aa 01 r10 = r10 + 0x1 + 895: 33 02 02 r2 = 0x2 + 898: ab 2a f1 jump 883 if r10 != r2 + : @57 + 901: 33 04 0d r4 = 0xd + 904: ab 4b 76 jump 1022 if r11 != r4 + : @58 + 907: 33 05 21 r5 = 0x21 + 910: 33 0a r10 = 0 + 912: 01 fallthrough + : @59 + 913: 33 01 0d r1 = 0xd + 916: 33 00 13 r0 = 0x13 + 919: e4 10 0b r11 = maxu(r0, r1) + 922: 95 aa 01 r10 = r10 + 0x1 + 925: 33 02 02 r2 = 0x2 + 928: ab 2a f1 jump 913 if r10 != r2 + : @60 + 931: 33 04 13 r4 = 0x13 + 934: ab 4b 58 jump 1022 if r11 != r4 + : @61 + 937: 33 05 22 r5 = 0x22 + 940: 33 0a r10 = 0 + 942: 01 fallthrough + : @62 + 943: 33 01 0d r1 = 0xd + 946: 33 00 06 r0 = 0x6 + 949: e4 10 0b r11 = maxu(r0, r1) + 952: 95 aa 01 r10 = r10 + 0x1 + 955: 33 02 02 r2 = 0x2 + 958: ab 2a f1 jump 943 if r10 != r2 + : @63 + 961: 33 04 0d r4 = 0xd + 964: ab 4b 3a jump 1022 if r11 != r4 + : @64 + 967: 33 05 23 r5 = 0x23 + 970: 33 00 ff r0 = 0xffffffffffffffff + 973: 64 01 r1 = r0 + 975: 33 04 ff r4 = 0xffffffffffffffff + 978: ab 41 2c jump 1022 if r1 != r4 + : @65 + 981: 33 05 24 r5 = 0x24 + 984: 33 00 ff r0 = 0xffffffffffffffff + 987: 64 01 r1 = r0 + 989: 33 04 ff r4 = 0xffffffffffffffff + 992: ab 41 1e jump 1022 if r1 != r4 + : @66 + 995: 33 05 25 r5 = 0x25 + 998: 33 00 r0 = 0 + 1000: 33 04 r4 = 0 + 1002: ab 40 14 jump 1022 if r0 != r4 + : @67 + 1005: 33 05 26 r5 = 0x26 + 1008: 33 00 10 r0 = 0x10 + 1011: 33 01 1e r1 = 0x1e + 1014: 33 04 r4 = 0 + 1016: 52 04 06 jump 1022 if r4 != 0 + : @68 + 1019: 52 05 04 jump 1023 if r5 != 0 + : @69 + 1022: 00 trap + : @70 + 1023: 28 01 fc jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r1 = 0x1e (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0xd (initially was 0x0) + * r5 = 0x26 (initially was 0x0) + * r8 = 0xd (initially was 0x0) + * r9 = 0xd (initially was 0x0) + * r10 = 0x2 (initially was 0x0) + * r11 = 0xd (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9567 + + +## riscv_rv64uzbb_min + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 08 r8 = 0 + 18: 33 09 r9 = 0 + 20: e5 98 0b r11 = mins(r8, r9) + 23: 33 04 r4 = 0 + 25: ab 4b a3 03 jump 956 if r11 != r4 + : @2 + 29: 33 05 03 r5 = 0x3 + 32: 33 08 01 r8 = 0x1 + 35: 33 09 01 r9 = 0x1 + 38: e5 98 0b r11 = mins(r8, r9) + 41: 33 04 01 r4 = 0x1 + 44: ab 4b 90 03 jump 956 if r11 != r4 + : @3 + 48: 33 05 04 r5 = 0x4 + 51: 33 08 03 r8 = 0x3 + 54: 33 09 07 r9 = 0x7 + 57: e5 98 0b r11 = mins(r8, r9) + 60: 33 04 03 r4 = 0x3 + 63: ab 4b 7d 03 jump 956 if r11 != r4 + : @4 + 67: 33 05 05 r5 = 0x5 + 70: 33 08 07 r8 = 0x7 + 73: 33 09 03 r9 = 0x3 + 76: e5 98 0b r11 = mins(r8, r9) + 79: 33 04 03 r4 = 0x3 + 82: ab 4b 6a 03 jump 956 if r11 != r4 + : @5 + 86: 33 05 06 r5 = 0x6 + 89: 33 08 r8 = 0 + 91: 33 09 00 80 r9 = 0xffffffffffff8000 + 95: e5 98 0b r11 = mins(r8, r9) + 98: 33 04 00 80 r4 = 0xffffffffffff8000 + 102: ab 4b 56 03 jump 956 if r11 != r4 + : @6 + 106: 33 05 07 r5 = 0x7 + 109: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 115: 33 09 r9 = 0 + 117: e5 98 0b r11 = mins(r8, r9) + 120: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 126: ab 4b 3e 03 jump 956 if r11 != r4 + : @7 + 130: 33 05 08 r5 = 0x8 + 133: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 139: 33 09 00 80 r9 = 0xffffffffffff8000 + 143: e5 98 0b r11 = mins(r8, r9) + 146: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 152: ab 4b 24 03 jump 956 if r11 != r4 + : @8 + 156: 33 05 09 r5 = 0x9 + 159: 33 08 r8 = 0 + 161: 33 09 00 80 00 r9 = 0x8000 + 166: 83 99 ff i32 r9 = r9 + 0xffffffffffffffff + 169: e5 98 0b r11 = mins(r8, r9) + 172: 33 04 r4 = 0 + 174: ab 4b 0e 03 jump 956 if r11 != r4 + : @9 + 178: 33 05 0a r5 = 0xa + 181: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 187: 83 88 ff i32 r8 = r8 + 0xffffffffffffffff + 190: 33 09 r9 = 0 + 192: e5 98 0b r11 = mins(r8, r9) + 195: 33 04 r4 = 0 + 197: ab 4b f7 02 jump 956 if r11 != r4 + : @10 + 201: 33 05 0b r5 = 0xb + 204: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 210: 83 88 ff i32 r8 = r8 + 0xffffffffffffffff + 213: 33 09 00 80 00 r9 = 0x8000 + 218: 83 99 ff i32 r9 = r9 + 0xffffffffffffffff + 221: e5 98 0b r11 = mins(r8, r9) + 224: 33 04 00 80 00 r4 = 0x8000 + 229: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 232: ab 4b d4 02 jump 956 if r11 != r4 + : @11 + 236: 33 05 0c r5 = 0xc + 239: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 245: 33 09 00 80 00 r9 = 0x8000 + 250: 83 99 ff i32 r9 = r9 + 0xffffffffffffffff + 253: e5 98 0b r11 = mins(r8, r9) + 256: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 262: ab 4b b6 02 jump 956 if r11 != r4 + : @12 + 266: 33 05 0d r5 = 0xd + 269: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 275: 83 88 ff i32 r8 = r8 + 0xffffffffffffffff + 278: 33 09 00 80 r9 = 0xffffffffffff8000 + 282: e5 98 0b r11 = mins(r8, r9) + 285: 33 04 00 80 r4 = 0xffffffffffff8000 + 289: ab 4b 9b 02 jump 956 if r11 != r4 + : @13 + 293: 33 05 0e r5 = 0xe + 296: 33 08 r8 = 0 + 298: 33 09 ff r9 = 0xffffffffffffffff + 301: e5 98 0b r11 = mins(r8, r9) + 304: 33 04 ff r4 = 0xffffffffffffffff + 307: ab 4b 89 02 jump 956 if r11 != r4 + : @14 + 311: 33 05 0f r5 = 0xf + 314: 33 08 ff r8 = 0xffffffffffffffff + 317: 33 09 01 r9 = 0x1 + 320: e5 98 0b r11 = mins(r8, r9) + 323: 33 04 ff r4 = 0xffffffffffffffff + 326: ab 4b 76 02 jump 956 if r11 != r4 + : @15 + 330: 33 05 10 r5 = 0x10 + 333: 33 08 ff r8 = 0xffffffffffffffff + 336: 33 09 ff r9 = 0xffffffffffffffff + 339: e5 98 0b r11 = mins(r8, r9) + 342: 33 04 ff r4 = 0xffffffffffffffff + 345: ab 4b 63 02 jump 956 if r11 != r4 + : @16 + 349: 33 05 11 r5 = 0x11 + 352: 33 08 0e r8 = 0xe + 355: 33 09 0d r9 = 0xd + 358: e5 98 08 r8 = mins(r8, r9) + 361: 33 04 0d r4 = 0xd + 364: ab 48 50 02 jump 956 if r8 != r4 + : @17 + 368: 33 05 12 r5 = 0x12 + 371: 33 08 0b r8 = 0xb + 374: 33 09 0d r9 = 0xd + 377: e5 98 09 r9 = mins(r8, r9) + 380: 33 04 0b r4 = 0xb + 383: ab 49 3d 02 jump 956 if r9 != r4 + : @18 + 387: 33 05 13 r5 = 0x13 + 390: 33 08 0d r8 = 0xd + 393: e5 88 08 r8 = mins(r8, r8) + 396: 33 04 0d r4 = 0xd + 399: ab 48 2d 02 jump 956 if r8 != r4 + : @19 + 403: 33 05 14 r5 = 0x14 + 406: 33 0a r10 = 0 + 408: 01 fallthrough + : @20 + 409: 33 00 0b r0 = 0xb + 412: 33 01 0d r1 = 0xd + 415: e5 10 0b r11 = mins(r0, r1) + 418: 64 b3 r3 = r11 + 420: 95 aa 01 r10 = r10 + 0x1 + 423: 33 02 02 r2 = 0x2 + 426: ab 2a ef jump 409 if r10 != r2 + : @21 + 429: 33 04 0b r4 = 0xb + 432: ab 43 0c 02 jump 956 if r3 != r4 + : @22 + 436: 33 05 15 r5 = 0x15 + 439: 33 0a r10 = 0 + 441: 01 fallthrough + : @23 + 442: 33 00 0e r0 = 0xe + 445: 33 01 0d r1 = 0xd + 448: e5 10 0b r11 = mins(r0, r1) + 451: 64 b3 r3 = r11 + 453: 95 aa 01 r10 = r10 + 0x1 + 456: 33 02 02 r2 = 0x2 + 459: ab 2a ef jump 442 if r10 != r2 + : @24 + 462: 33 04 0d r4 = 0xd + 465: ab 43 eb 01 jump 956 if r3 != r4 + : @25 + 469: 33 05 16 r5 = 0x16 + 472: 33 0a r10 = 0 + 474: 01 fallthrough + : @26 + 475: 33 00 0c r0 = 0xc + 478: 33 01 0d r1 = 0xd + 481: e5 10 0b r11 = mins(r0, r1) + 484: 64 b3 r3 = r11 + 486: 95 aa 01 r10 = r10 + 0x1 + 489: 33 02 02 r2 = 0x2 + 492: ab 2a ef jump 475 if r10 != r2 + : @27 + 495: 33 04 0c r4 = 0xc + 498: ab 43 ca 01 jump 956 if r3 != r4 + : @28 + 502: 33 05 17 r5 = 0x17 + 505: 33 0a r10 = 0 + 507: 01 fallthrough + : @29 + 508: 33 00 0e r0 = 0xe + 511: 33 01 0d r1 = 0xd + 514: e5 10 0b r11 = mins(r0, r1) + 517: 95 aa 01 r10 = r10 + 0x1 + 520: 33 02 02 r2 = 0x2 + 523: ab 2a f1 jump 508 if r10 != r2 + : @30 + 526: 33 04 0d r4 = 0xd + 529: ab 4b ab 01 jump 956 if r11 != r4 + : @31 + 533: 33 05 18 r5 = 0x18 + 536: 33 0a r10 = 0 + 538: 01 fallthrough + : @32 + 539: 33 00 0b r0 = 0xb + 542: 33 01 0d r1 = 0xd + 545: e5 10 0b r11 = mins(r0, r1) + 548: 95 aa 01 r10 = r10 + 0x1 + 551: 33 02 02 r2 = 0x2 + 554: ab 2a f1 jump 539 if r10 != r2 + : @33 + 557: 33 04 0b r4 = 0xb + 560: ab 4b 8c 01 jump 956 if r11 != r4 + : @34 + 564: 33 05 19 r5 = 0x19 + 567: 33 0a r10 = 0 + 569: 01 fallthrough + : @35 + 570: 33 00 0f r0 = 0xf + 573: 33 01 0d r1 = 0xd + 576: e5 10 0b r11 = mins(r0, r1) + 579: 95 aa 01 r10 = r10 + 0x1 + 582: 33 02 02 r2 = 0x2 + 585: ab 2a f1 jump 570 if r10 != r2 + : @36 + 588: 33 04 0d r4 = 0xd + 591: ab 4b 6d 01 jump 956 if r11 != r4 + : @37 + 595: 33 05 1a r5 = 0x1a + 598: 33 0a r10 = 0 + 600: 01 fallthrough + : @38 + 601: 33 00 0a r0 = 0xa + 604: 33 01 0d r1 = 0xd + 607: e5 10 0b r11 = mins(r0, r1) + 610: 95 aa 01 r10 = r10 + 0x1 + 613: 33 02 02 r2 = 0x2 + 616: ab 2a f1 jump 601 if r10 != r2 + : @39 + 619: 33 04 0a r4 = 0xa + 622: ab 4b 4e 01 jump 956 if r11 != r4 + : @40 + 626: 33 05 1b r5 = 0x1b + 629: 33 0a r10 = 0 + 631: 01 fallthrough + : @41 + 632: 33 00 10 r0 = 0x10 + 635: 33 01 0d r1 = 0xd + 638: e5 10 0b r11 = mins(r0, r1) + 641: 95 aa 01 r10 = r10 + 0x1 + 644: 33 02 02 r2 = 0x2 + 647: ab 2a f1 jump 632 if r10 != r2 + : @42 + 650: 33 04 0d r4 = 0xd + 653: ab 4b 2f 01 jump 956 if r11 != r4 + : @43 + 657: 33 05 1c r5 = 0x1c + 660: 33 0a r10 = 0 + 662: 01 fallthrough + : @44 + 663: 33 00 09 r0 = 0x9 + 666: 33 01 0d r1 = 0xd + 669: e5 10 0b r11 = mins(r0, r1) + 672: 95 aa 01 r10 = r10 + 0x1 + 675: 33 02 02 r2 = 0x2 + 678: ab 2a f1 jump 663 if r10 != r2 + : @45 + 681: 33 04 09 r4 = 0x9 + 684: ab 4b 10 01 jump 956 if r11 != r4 + : @46 + 688: 33 05 1d r5 = 0x1d + 691: 33 0a r10 = 0 + 693: 01 fallthrough + : @47 + 694: 33 01 0d r1 = 0xd + 697: 33 00 11 r0 = 0x11 + 700: e5 10 0b r11 = mins(r0, r1) + 703: 95 aa 01 r10 = r10 + 0x1 + 706: 33 02 02 r2 = 0x2 + 709: ab 2a f1 jump 694 if r10 != r2 + : @48 + 712: 33 04 0d r4 = 0xd + 715: ab 4b f1 00 jump 956 if r11 != r4 + : @49 + 719: 33 05 1e r5 = 0x1e + 722: 33 0a r10 = 0 + 724: 01 fallthrough + : @50 + 725: 33 01 0d r1 = 0xd + 728: 33 00 08 r0 = 0x8 + 731: e5 10 0b r11 = mins(r0, r1) + 734: 95 aa 01 r10 = r10 + 0x1 + 737: 33 02 02 r2 = 0x2 + 740: ab 2a f1 jump 725 if r10 != r2 + : @51 + 743: 33 04 08 r4 = 0x8 + 746: ab 4b d2 00 jump 956 if r11 != r4 + : @52 + 750: 33 05 1f r5 = 0x1f + 753: 33 0a r10 = 0 + 755: 01 fallthrough + : @53 + 756: 33 01 0d r1 = 0xd + 759: 33 00 12 r0 = 0x12 + 762: e5 10 0b r11 = mins(r0, r1) + 765: 95 aa 01 r10 = r10 + 0x1 + 768: 33 02 02 r2 = 0x2 + 771: ab 2a f1 jump 756 if r10 != r2 + : @54 + 774: 33 04 0d r4 = 0xd + 777: ab 4b b3 00 jump 956 if r11 != r4 + : @55 + 781: 33 05 20 r5 = 0x20 + 784: 33 0a r10 = 0 + 786: 01 fallthrough + : @56 + 787: 33 01 0d r1 = 0xd + 790: 33 00 07 r0 = 0x7 + 793: e5 10 0b r11 = mins(r0, r1) + 796: 95 aa 01 r10 = r10 + 0x1 + 799: 33 02 02 r2 = 0x2 + 802: ab 2a f1 jump 787 if r10 != r2 + : @57 + 805: 33 04 07 r4 = 0x7 + 808: ab 4b 94 00 jump 956 if r11 != r4 + : @58 + 812: 33 05 21 r5 = 0x21 + 815: 33 0a r10 = 0 + 817: 01 fallthrough + : @59 + 818: 33 01 0d r1 = 0xd + 821: 33 00 13 r0 = 0x13 + 824: e5 10 0b r11 = mins(r0, r1) + 827: 95 aa 01 r10 = r10 + 0x1 + 830: 33 02 02 r2 = 0x2 + 833: ab 2a f1 jump 818 if r10 != r2 + : @60 + 836: 33 04 0d r4 = 0xd + 839: ab 4b 75 jump 956 if r11 != r4 + : @61 + 842: 33 05 22 r5 = 0x22 + 845: 33 0a r10 = 0 + 847: 01 fallthrough + : @62 + 848: 33 01 0d r1 = 0xd + 851: 33 00 06 r0 = 0x6 + 854: e5 10 0b r11 = mins(r0, r1) + 857: 95 aa 01 r10 = r10 + 0x1 + 860: 33 02 02 r2 = 0x2 + 863: ab 2a f1 jump 848 if r10 != r2 + : @63 + 866: 33 04 06 r4 = 0x6 + 869: ab 4b 57 jump 956 if r11 != r4 + : @64 + 872: 33 05 23 r5 = 0x23 + 875: 33 00 ff r0 = 0xffffffffffffffff + 878: 3e 02 00 00 02 u64 [0x20000] = r2 + 883: 8f 02 r2 = r0 >s 0 + 885: 33 01 r1 = 0 + 887: da 20 01 r1 = r0 if r2 == 0 + 890: 3a 02 00 00 02 r2 = u64 [0x20000] + 895: 33 04 ff r4 = 0xffffffffffffffff + 898: ab 41 3a jump 956 if r1 != r4 + : @65 + 901: 33 05 24 r5 = 0x24 + 904: 33 00 ff r0 = 0xffffffffffffffff + 907: 3e 02 00 00 02 u64 [0x20000] = r2 + 912: 89 02 r2 = r0 9592 + + +## riscv_rv64uzbb_minu + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 08 r8 = 0 + 18: 33 09 r9 = 0 + 20: e6 98 0b r11 = minu(r8, r9) + 23: 33 04 r4 = 0 + 25: ab 4b b6 03 jump 975 if r11 != r4 + : @2 + 29: 33 05 03 r5 = 0x3 + 32: 33 08 01 r8 = 0x1 + 35: 33 09 01 r9 = 0x1 + 38: e6 98 0b r11 = minu(r8, r9) + 41: 33 04 01 r4 = 0x1 + 44: ab 4b a3 03 jump 975 if r11 != r4 + : @3 + 48: 33 05 04 r5 = 0x4 + 51: 33 08 03 r8 = 0x3 + 54: 33 09 07 r9 = 0x7 + 57: e6 98 0b r11 = minu(r8, r9) + 60: 33 04 03 r4 = 0x3 + 63: ab 4b 90 03 jump 975 if r11 != r4 + : @4 + 67: 33 05 05 r5 = 0x5 + 70: 33 08 07 r8 = 0x7 + 73: 33 09 03 r9 = 0x3 + 76: e6 98 0b r11 = minu(r8, r9) + 79: 33 04 03 r4 = 0x3 + 82: ab 4b 7d 03 jump 975 if r11 != r4 + : @5 + 86: 33 05 06 r5 = 0x6 + 89: 33 08 r8 = 0 + 91: 33 09 00 00 02 r9 = 0x20000 + 96: 83 99 ff i32 r9 = r9 + 0xffffffffffffffff + 99: 97 99 0f r9 = r9 << 0xf + 102: e6 98 0b r11 = minu(r8, r9) + 105: 33 04 r4 = 0 + 107: ab 4b 64 03 jump 975 if r11 != r4 + : @6 + 111: 33 05 07 r5 = 0x7 + 114: 33 08 01 r8 = 0x1 + 117: 97 88 1f r8 = r8 << 0x1f + 120: 33 09 r9 = 0 + 122: e6 98 0b r11 = minu(r8, r9) + 125: 33 04 r4 = 0 + 127: ab 4b 50 03 jump 975 if r11 != r4 + : @7 + 131: 33 05 08 r5 = 0x8 + 134: 33 08 01 r8 = 0x1 + 137: 97 88 1f r8 = r8 << 0x1f + 140: 33 09 00 00 02 r9 = 0x20000 + 145: 83 99 ff i32 r9 = r9 + 0xffffffffffffffff + 148: 97 99 0f r9 = r9 << 0xf + 151: e6 98 0b r11 = minu(r8, r9) + 154: 33 04 01 r4 = 0x1 + 157: 97 44 1f r4 = r4 << 0x1f + 160: ab 4b 2f 03 jump 975 if r11 != r4 + : @8 + 164: 33 05 09 r5 = 0x9 + 167: 33 08 r8 = 0 + 169: 33 09 00 80 00 r9 = 0x8000 + 174: 83 99 ff i32 r9 = r9 + 0xffffffffffffffff + 177: e6 98 0b r11 = minu(r8, r9) + 180: 33 04 r4 = 0 + 182: ab 4b 19 03 jump 975 if r11 != r4 + : @9 + 186: 33 05 0a r5 = 0xa + 189: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 195: 83 88 ff i32 r8 = r8 + 0xffffffffffffffff + 198: 33 09 r9 = 0 + 200: e6 98 0b r11 = minu(r8, r9) + 203: 33 04 r4 = 0 + 205: ab 4b 02 03 jump 975 if r11 != r4 + : @10 + 209: 33 05 0b r5 = 0xb + 212: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 218: 83 88 ff i32 r8 = r8 + 0xffffffffffffffff + 221: 33 09 00 80 00 r9 = 0x8000 + 226: 83 99 ff i32 r9 = r9 + 0xffffffffffffffff + 229: e6 98 0b r11 = minu(r8, r9) + 232: 33 04 00 80 00 r4 = 0x8000 + 237: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 240: ab 4b df 02 jump 975 if r11 != r4 + : @11 + 244: 33 05 0c r5 = 0xc + 247: 33 08 01 r8 = 0x1 + 250: 97 88 1f r8 = r8 << 0x1f + 253: 33 09 00 80 00 r9 = 0x8000 + 258: 83 99 ff i32 r9 = r9 + 0xffffffffffffffff + 261: e6 98 0b r11 = minu(r8, r9) + 264: 33 04 00 80 00 r4 = 0x8000 + 269: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 272: ab 4b bf 02 jump 975 if r11 != r4 + : @12 + 276: 33 05 0d r5 = 0xd + 279: 33 08 00 00 00 80 r8 = 0xffffffff80000000 + 285: 83 88 ff i32 r8 = r8 + 0xffffffffffffffff + 288: 33 09 00 00 02 r9 = 0x20000 + 293: 83 99 ff i32 r9 = r9 + 0xffffffffffffffff + 296: 97 99 0f r9 = r9 << 0xf + 299: e6 98 0b r11 = minu(r8, r9) + 302: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 308: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 311: ab 4b 98 02 jump 975 if r11 != r4 + : @13 + 315: 33 05 0e r5 = 0xe + 318: 33 08 r8 = 0 + 320: 33 09 01 r9 = 0x1 + 323: 97 99 20 r9 = r9 << 0x20 + 326: 95 99 ff r9 = r9 + 0xffffffffffffffff + 329: e6 98 0b r11 = minu(r8, r9) + 332: 33 04 r4 = 0 + 334: ab 4b 81 02 jump 975 if r11 != r4 + : @14 + 338: 33 05 0f r5 = 0xf + 341: 33 08 01 r8 = 0x1 + 344: 97 88 20 r8 = r8 << 0x20 + 347: 95 88 ff r8 = r8 + 0xffffffffffffffff + 350: 33 09 01 r9 = 0x1 + 353: e6 98 0b r11 = minu(r8, r9) + 356: 33 04 01 r4 = 0x1 + 359: ab 4b 68 02 jump 975 if r11 != r4 + : @15 + 363: 33 05 10 r5 = 0x10 + 366: 33 08 01 r8 = 0x1 + 369: 97 88 20 r8 = r8 << 0x20 + 372: 95 88 ff r8 = r8 + 0xffffffffffffffff + 375: 33 09 01 r9 = 0x1 + 378: 97 99 20 r9 = r9 << 0x20 + 381: 95 99 ff r9 = r9 + 0xffffffffffffffff + 384: e6 98 0b r11 = minu(r8, r9) + 387: 33 04 01 r4 = 0x1 + 390: 97 44 20 r4 = r4 << 0x20 + 393: 95 44 ff r4 = r4 + 0xffffffffffffffff + 396: ab 4b 43 02 jump 975 if r11 != r4 + : @16 + 400: 33 05 11 r5 = 0x11 + 403: 33 08 0e r8 = 0xe + 406: 33 09 0d r9 = 0xd + 409: e6 98 08 r8 = minu(r8, r9) + 412: 33 04 0d r4 = 0xd + 415: ab 48 30 02 jump 975 if r8 != r4 + : @17 + 419: 33 05 12 r5 = 0x12 + 422: 33 08 0b r8 = 0xb + 425: 33 09 0d r9 = 0xd + 428: e6 98 09 r9 = minu(r8, r9) + 431: 33 04 0b r4 = 0xb + 434: ab 49 1d 02 jump 975 if r9 != r4 + : @18 + 438: 33 05 13 r5 = 0x13 + 441: 33 08 0d r8 = 0xd + 444: e6 88 08 r8 = minu(r8, r8) + 447: 33 04 0d r4 = 0xd + 450: ab 48 0d 02 jump 975 if r8 != r4 + : @19 + 454: 33 05 14 r5 = 0x14 + 457: 33 0a r10 = 0 + 459: 01 fallthrough + : @20 + 460: 33 00 0b r0 = 0xb + 463: 33 01 0d r1 = 0xd + 466: e6 10 0b r11 = minu(r0, r1) + 469: 64 b3 r3 = r11 + 471: 95 aa 01 r10 = r10 + 0x1 + 474: 33 02 02 r2 = 0x2 + 477: ab 2a ef jump 460 if r10 != r2 + : @21 + 480: 33 04 0b r4 = 0xb + 483: ab 43 ec 01 jump 975 if r3 != r4 + : @22 + 487: 33 05 15 r5 = 0x15 + 490: 33 0a r10 = 0 + 492: 01 fallthrough + : @23 + 493: 33 00 0e r0 = 0xe + 496: 33 01 0d r1 = 0xd + 499: e6 10 0b r11 = minu(r0, r1) + 502: 64 b3 r3 = r11 + 504: 95 aa 01 r10 = r10 + 0x1 + 507: 33 02 02 r2 = 0x2 + 510: ab 2a ef jump 493 if r10 != r2 + : @24 + 513: 33 04 0d r4 = 0xd + 516: ab 43 cb 01 jump 975 if r3 != r4 + : @25 + 520: 33 05 16 r5 = 0x16 + 523: 33 0a r10 = 0 + 525: 01 fallthrough + : @26 + 526: 33 00 0c r0 = 0xc + 529: 33 01 0d r1 = 0xd + 532: e6 10 0b r11 = minu(r0, r1) + 535: 64 b3 r3 = r11 + 537: 95 aa 01 r10 = r10 + 0x1 + 540: 33 02 02 r2 = 0x2 + 543: ab 2a ef jump 526 if r10 != r2 + : @27 + 546: 33 04 0c r4 = 0xc + 549: ab 43 aa 01 jump 975 if r3 != r4 + : @28 + 553: 33 05 17 r5 = 0x17 + 556: 33 0a r10 = 0 + 558: 01 fallthrough + : @29 + 559: 33 00 0e r0 = 0xe + 562: 33 01 0d r1 = 0xd + 565: e6 10 0b r11 = minu(r0, r1) + 568: 95 aa 01 r10 = r10 + 0x1 + 571: 33 02 02 r2 = 0x2 + 574: ab 2a f1 jump 559 if r10 != r2 + : @30 + 577: 33 04 0d r4 = 0xd + 580: ab 4b 8b 01 jump 975 if r11 != r4 + : @31 + 584: 33 05 18 r5 = 0x18 + 587: 33 0a r10 = 0 + 589: 01 fallthrough + : @32 + 590: 33 00 0b r0 = 0xb + 593: 33 01 0d r1 = 0xd + 596: e6 10 0b r11 = minu(r0, r1) + 599: 95 aa 01 r10 = r10 + 0x1 + 602: 33 02 02 r2 = 0x2 + 605: ab 2a f1 jump 590 if r10 != r2 + : @33 + 608: 33 04 0b r4 = 0xb + 611: ab 4b 6c 01 jump 975 if r11 != r4 + : @34 + 615: 33 05 19 r5 = 0x19 + 618: 33 0a r10 = 0 + 620: 01 fallthrough + : @35 + 621: 33 00 0f r0 = 0xf + 624: 33 01 0d r1 = 0xd + 627: e6 10 0b r11 = minu(r0, r1) + 630: 95 aa 01 r10 = r10 + 0x1 + 633: 33 02 02 r2 = 0x2 + 636: ab 2a f1 jump 621 if r10 != r2 + : @36 + 639: 33 04 0d r4 = 0xd + 642: ab 4b 4d 01 jump 975 if r11 != r4 + : @37 + 646: 33 05 1a r5 = 0x1a + 649: 33 0a r10 = 0 + 651: 01 fallthrough + : @38 + 652: 33 00 0a r0 = 0xa + 655: 33 01 0d r1 = 0xd + 658: e6 10 0b r11 = minu(r0, r1) + 661: 95 aa 01 r10 = r10 + 0x1 + 664: 33 02 02 r2 = 0x2 + 667: ab 2a f1 jump 652 if r10 != r2 + : @39 + 670: 33 04 0a r4 = 0xa + 673: ab 4b 2e 01 jump 975 if r11 != r4 + : @40 + 677: 33 05 1b r5 = 0x1b + 680: 33 0a r10 = 0 + 682: 01 fallthrough + : @41 + 683: 33 00 10 r0 = 0x10 + 686: 33 01 0d r1 = 0xd + 689: e6 10 0b r11 = minu(r0, r1) + 692: 95 aa 01 r10 = r10 + 0x1 + 695: 33 02 02 r2 = 0x2 + 698: ab 2a f1 jump 683 if r10 != r2 + : @42 + 701: 33 04 0d r4 = 0xd + 704: ab 4b 0f 01 jump 975 if r11 != r4 + : @43 + 708: 33 05 1c r5 = 0x1c + 711: 33 0a r10 = 0 + 713: 01 fallthrough + : @44 + 714: 33 00 09 r0 = 0x9 + 717: 33 01 0d r1 = 0xd + 720: e6 10 0b r11 = minu(r0, r1) + 723: 95 aa 01 r10 = r10 + 0x1 + 726: 33 02 02 r2 = 0x2 + 729: ab 2a f1 jump 714 if r10 != r2 + : @45 + 732: 33 04 09 r4 = 0x9 + 735: ab 4b f0 00 jump 975 if r11 != r4 + : @46 + 739: 33 05 1d r5 = 0x1d + 742: 33 0a r10 = 0 + 744: 01 fallthrough + : @47 + 745: 33 01 0d r1 = 0xd + 748: 33 00 11 r0 = 0x11 + 751: e6 10 0b r11 = minu(r0, r1) + 754: 95 aa 01 r10 = r10 + 0x1 + 757: 33 02 02 r2 = 0x2 + 760: ab 2a f1 jump 745 if r10 != r2 + : @48 + 763: 33 04 0d r4 = 0xd + 766: ab 4b d1 00 jump 975 if r11 != r4 + : @49 + 770: 33 05 1e r5 = 0x1e + 773: 33 0a r10 = 0 + 775: 01 fallthrough + : @50 + 776: 33 01 0d r1 = 0xd + 779: 33 00 08 r0 = 0x8 + 782: e6 10 0b r11 = minu(r0, r1) + 785: 95 aa 01 r10 = r10 + 0x1 + 788: 33 02 02 r2 = 0x2 + 791: ab 2a f1 jump 776 if r10 != r2 + : @51 + 794: 33 04 08 r4 = 0x8 + 797: ab 4b b2 00 jump 975 if r11 != r4 + : @52 + 801: 33 05 1f r5 = 0x1f + 804: 33 0a r10 = 0 + 806: 01 fallthrough + : @53 + 807: 33 01 0d r1 = 0xd + 810: 33 00 12 r0 = 0x12 + 813: e6 10 0b r11 = minu(r0, r1) + 816: 95 aa 01 r10 = r10 + 0x1 + 819: 33 02 02 r2 = 0x2 + 822: ab 2a f1 jump 807 if r10 != r2 + : @54 + 825: 33 04 0d r4 = 0xd + 828: ab 4b 93 00 jump 975 if r11 != r4 + : @55 + 832: 33 05 20 r5 = 0x20 + 835: 33 0a r10 = 0 + 837: 01 fallthrough + : @56 + 838: 33 01 0d r1 = 0xd + 841: 33 00 07 r0 = 0x7 + 844: e6 10 0b r11 = minu(r0, r1) + 847: 95 aa 01 r10 = r10 + 0x1 + 850: 33 02 02 r2 = 0x2 + 853: ab 2a f1 jump 838 if r10 != r2 + : @57 + 856: 33 04 07 r4 = 0x7 + 859: ab 4b 74 jump 975 if r11 != r4 + : @58 + 862: 33 05 21 r5 = 0x21 + 865: 33 0a r10 = 0 + 867: 01 fallthrough + : @59 + 868: 33 01 0d r1 = 0xd + 871: 33 00 13 r0 = 0x13 + 874: e6 10 0b r11 = minu(r0, r1) + 877: 95 aa 01 r10 = r10 + 0x1 + 880: 33 02 02 r2 = 0x2 + 883: ab 2a f1 jump 868 if r10 != r2 + : @60 + 886: 33 04 0d r4 = 0xd + 889: ab 4b 56 jump 975 if r11 != r4 + : @61 + 892: 33 05 22 r5 = 0x22 + 895: 33 0a r10 = 0 + 897: 01 fallthrough + : @62 + 898: 33 01 0d r1 = 0xd + 901: 33 00 06 r0 = 0x6 + 904: e6 10 0b r11 = minu(r0, r1) + 907: 95 aa 01 r10 = r10 + 0x1 + 910: 33 02 02 r2 = 0x2 + 913: ab 2a f1 jump 898 if r10 != r2 + : @63 + 916: 33 04 06 r4 = 0x6 + 919: ab 4b 38 jump 975 if r11 != r4 + : @64 + 922: 33 05 23 r5 = 0x23 + 925: 33 00 ff r0 = 0xffffffffffffffff + 928: 33 01 r1 = 0 + 930: 33 04 r4 = 0 + 932: ab 41 2b jump 975 if r1 != r4 + : @65 + 935: 33 05 24 r5 = 0x24 + 938: 33 00 ff r0 = 0xffffffffffffffff + 941: 33 01 r1 = 0 + 943: 33 04 r4 = 0 + 945: ab 41 1e jump 975 if r1 != r4 + : @66 + 948: 33 05 25 r5 = 0x25 + 951: 33 00 r0 = 0 + 953: 33 04 r4 = 0 + 955: ab 40 14 jump 975 if r0 != r4 + : @67 + 958: 33 05 26 r5 = 0x26 + 961: 33 00 10 r0 = 0x10 + 964: 33 01 1e r1 = 0x1e + 967: 33 04 r4 = 0 + 969: 52 04 06 jump 975 if r4 != 0 + : @68 + 972: 52 05 04 jump 976 if r5 != 0 + : @69 + 975: 00 trap + : @70 + 976: 28 30 fc jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r1 = 0x1e (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0xc (initially was 0x0) + * r5 = 0x26 (initially was 0x0) + * r8 = 0xd (initially was 0x0) + * r9 = 0xb (initially was 0x0) + * r10 = 0x2 (initially was 0x0) + * r11 = 0x6 (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9578 + + +## riscv_rv64uzbb_orc_b + +Initial page map: + * RW: 0x20000-0x21000 (0x1000 bytes) + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 00 r0 = 0 + 18: 64 0b r11 = r0 + 20: 3e 03 00 00 02 u64 [0x20000] = r3 + 25: 3e 04 08 00 02 u64 [0x20008] = r4 + 30: 64 b3 r3 = r11 + 32: 33 00 ff 00 r0 = 0xff + 36: d4 03 04 r4 = r3 | r0 + 39: d2 0b 03 r3 = r11 & r0 + 42: db 34 0b r11 = r4 if r3 != 0 + 45: 64 b3 r3 = r11 + 47: 97 00 08 r0 = r0 << 0x8 + 50: d4 03 04 r4 = r3 | r0 + 53: d2 0b 03 r3 = r11 & r0 + 56: db 34 0b r11 = r4 if r3 != 0 + 59: 64 b4 r4 = r11 + 61: 97 00 08 r0 = r0 << 0x8 + 64: d4 04 04 r4 = r4 | r0 + 67: d2 0b 03 r3 = r11 & r0 + 70: db 34 0b r11 = r4 if r3 != 0 + 73: 64 b3 r3 = r11 + 75: 97 00 08 r0 = r0 << 0x8 + 78: d4 03 04 r4 = r3 | r0 + 81: d2 0b 03 r3 = r11 & r0 + 84: db 34 0b r11 = r4 if r3 != 0 + 87: 64 b3 r3 = r11 + 89: 97 00 08 r0 = r0 << 0x8 + 92: d4 03 04 r4 = r3 | r0 + 95: d2 0b 03 r3 = r11 & r0 + 98: db 34 0b r11 = r4 if r3 != 0 + 101: 64 b4 r4 = r11 + 103: 97 00 08 r0 = r0 << 0x8 + 106: d4 04 04 r4 = r4 | r0 + 109: d2 0b 03 r3 = r11 & r0 + 112: db 34 0b r11 = r4 if r3 != 0 + 115: 64 b3 r3 = r11 + 117: 97 00 08 r0 = r0 << 0x8 + 120: d4 03 04 r4 = r3 | r0 + 123: d2 0b 03 r3 = r11 & r0 + 126: db 34 0b r11 = r4 if r3 != 0 + 129: 64 b3 r3 = r11 + 131: 97 00 08 r0 = r0 << 0x8 + 134: d4 03 04 r4 = r3 | r0 + 137: d2 0b 03 r3 = r11 & r0 + 140: db 34 0b r11 = r4 if r3 != 0 + 143: 3a 03 00 00 02 r3 = u64 [0x20000] + 148: 3a 04 08 00 02 r4 = u64 [0x20008] + 153: 33 04 r4 = 0 + 155: ab 4b fe 0e jump 3993 if r11 != r4 + : @2 + 159: 33 05 03 r5 = 0x3 + 162: 33 00 01 r0 = 0x1 + 165: 64 0b r11 = r0 + 167: 3e 03 00 00 02 u64 [0x20000] = r3 + 172: 3e 04 08 00 02 u64 [0x20008] = r4 + 177: 64 b3 r3 = r11 + 179: 33 00 ff 00 r0 = 0xff + 183: d4 03 04 r4 = r3 | r0 + 186: d2 0b 03 r3 = r11 & r0 + 189: db 34 0b r11 = r4 if r3 != 0 + 192: 64 b3 r3 = r11 + 194: 97 00 08 r0 = r0 << 0x8 + 197: d4 03 04 r4 = r3 | r0 + 200: d2 0b 03 r3 = r11 & r0 + 203: db 34 0b r11 = r4 if r3 != 0 + 206: 64 b4 r4 = r11 + 208: 97 00 08 r0 = r0 << 0x8 + 211: d4 04 04 r4 = r4 | r0 + 214: d2 0b 03 r3 = r11 & r0 + 217: db 34 0b r11 = r4 if r3 != 0 + 220: 64 b3 r3 = r11 + 222: 97 00 08 r0 = r0 << 0x8 + 225: d4 03 04 r4 = r3 | r0 + 228: d2 0b 03 r3 = r11 & r0 + 231: db 34 0b r11 = r4 if r3 != 0 + 234: 64 b3 r3 = r11 + 236: 97 00 08 r0 = r0 << 0x8 + 239: d4 03 04 r4 = r3 | r0 + 242: d2 0b 03 r3 = r11 & r0 + 245: db 34 0b r11 = r4 if r3 != 0 + 248: 64 b4 r4 = r11 + 250: 97 00 08 r0 = r0 << 0x8 + 253: d4 04 04 r4 = r4 | r0 + 256: d2 0b 03 r3 = r11 & r0 + 259: db 34 0b r11 = r4 if r3 != 0 + 262: 64 b3 r3 = r11 + 264: 97 00 08 r0 = r0 << 0x8 + 267: d4 03 04 r4 = r3 | r0 + 270: d2 0b 03 r3 = r11 & r0 + 273: db 34 0b r11 = r4 if r3 != 0 + 276: 64 b3 r3 = r11 + 278: 97 00 08 r0 = r0 << 0x8 + 281: d4 03 04 r4 = r3 | r0 + 284: d2 0b 03 r3 = r11 & r0 + 287: db 34 0b r11 = r4 if r3 != 0 + 290: 3a 03 00 00 02 r3 = u64 [0x20000] + 295: 3a 04 08 00 02 r4 = u64 [0x20008] + 300: 33 04 ff 00 r4 = 0xff + 304: ab 4b 69 0e jump 3993 if r11 != r4 + : @3 + 308: 33 05 04 r5 = 0x4 + 311: 33 00 03 r0 = 0x3 + 314: 64 0b r11 = r0 + 316: 3e 03 00 00 02 u64 [0x20000] = r3 + 321: 3e 04 08 00 02 u64 [0x20008] = r4 + 326: 64 b3 r3 = r11 + 328: 33 00 ff 00 r0 = 0xff + 332: d4 03 04 r4 = r3 | r0 + 335: d2 0b 03 r3 = r11 & r0 + 338: db 34 0b r11 = r4 if r3 != 0 + 341: 64 b3 r3 = r11 + 343: 97 00 08 r0 = r0 << 0x8 + 346: d4 03 04 r4 = r3 | r0 + 349: d2 0b 03 r3 = r11 & r0 + 352: db 34 0b r11 = r4 if r3 != 0 + 355: 64 b4 r4 = r11 + 357: 97 00 08 r0 = r0 << 0x8 + 360: d4 04 04 r4 = r4 | r0 + 363: d2 0b 03 r3 = r11 & r0 + 366: db 34 0b r11 = r4 if r3 != 0 + 369: 64 b3 r3 = r11 + 371: 97 00 08 r0 = r0 << 0x8 + 374: d4 03 04 r4 = r3 | r0 + 377: d2 0b 03 r3 = r11 & r0 + 380: db 34 0b r11 = r4 if r3 != 0 + 383: 64 b3 r3 = r11 + 385: 97 00 08 r0 = r0 << 0x8 + 388: d4 03 04 r4 = r3 | r0 + 391: d2 0b 03 r3 = r11 & r0 + 394: db 34 0b r11 = r4 if r3 != 0 + 397: 64 b4 r4 = r11 + 399: 97 00 08 r0 = r0 << 0x8 + 402: d4 04 04 r4 = r4 | r0 + 405: d2 0b 03 r3 = r11 & r0 + 408: db 34 0b r11 = r4 if r3 != 0 + 411: 64 b3 r3 = r11 + 413: 97 00 08 r0 = r0 << 0x8 + 416: d4 03 04 r4 = r3 | r0 + 419: d2 0b 03 r3 = r11 & r0 + 422: db 34 0b r11 = r4 if r3 != 0 + 425: 64 b3 r3 = r11 + 427: 97 00 08 r0 = r0 << 0x8 + 430: d4 03 04 r4 = r3 | r0 + 433: d2 0b 03 r3 = r11 & r0 + 436: db 34 0b r11 = r4 if r3 != 0 + 439: 3a 03 00 00 02 r3 = u64 [0x20000] + 444: 3a 04 08 00 02 r4 = u64 [0x20008] + 449: 33 04 ff 00 r4 = 0xff + 453: ab 4b d4 0d jump 3993 if r11 != r4 + : @4 + 457: 33 05 05 r5 = 0x5 + 460: 33 00 00 80 r0 = 0xffffffffffff8000 + 464: 64 0b r11 = r0 + 466: 3e 03 00 00 02 u64 [0x20000] = r3 + 471: 3e 04 08 00 02 u64 [0x20008] = r4 + 476: 64 b3 r3 = r11 + 478: 33 00 ff 00 r0 = 0xff + 482: d4 03 04 r4 = r3 | r0 + 485: d2 0b 03 r3 = r11 & r0 + 488: db 34 0b r11 = r4 if r3 != 0 + 491: 64 b3 r3 = r11 + 493: 97 00 08 r0 = r0 << 0x8 + 496: d4 03 04 r4 = r3 | r0 + 499: d2 0b 03 r3 = r11 & r0 + 502: db 34 0b r11 = r4 if r3 != 0 + 505: 64 b4 r4 = r11 + 507: 97 00 08 r0 = r0 << 0x8 + 510: d4 04 04 r4 = r4 | r0 + 513: d2 0b 03 r3 = r11 & r0 + 516: db 34 0b r11 = r4 if r3 != 0 + 519: 64 b3 r3 = r11 + 521: 97 00 08 r0 = r0 << 0x8 + 524: d4 03 04 r4 = r3 | r0 + 527: d2 0b 03 r3 = r11 & r0 + 530: db 34 0b r11 = r4 if r3 != 0 + 533: 64 b3 r3 = r11 + 535: 97 00 08 r0 = r0 << 0x8 + 538: d4 03 04 r4 = r3 | r0 + 541: d2 0b 03 r3 = r11 & r0 + 544: db 34 0b r11 = r4 if r3 != 0 + 547: 64 b4 r4 = r11 + 549: 97 00 08 r0 = r0 << 0x8 + 552: d4 04 04 r4 = r4 | r0 + 555: d2 0b 03 r3 = r11 & r0 + 558: db 34 0b r11 = r4 if r3 != 0 + 561: 64 b3 r3 = r11 + 563: 97 00 08 r0 = r0 << 0x8 + 566: d4 03 04 r4 = r3 | r0 + 569: d2 0b 03 r3 = r11 & r0 + 572: db 34 0b r11 = r4 if r3 != 0 + 575: 64 b3 r3 = r11 + 577: 97 00 08 r0 = r0 << 0x8 + 580: d4 03 04 r4 = r3 | r0 + 583: d2 0b 03 r3 = r11 & r0 + 586: db 34 0b r11 = r4 if r3 != 0 + 589: 3a 03 00 00 02 r3 = u64 [0x20000] + 594: 3a 04 08 00 02 r4 = u64 [0x20008] + 599: 33 04 00 ff r4 = 0xffffffffffffff00 + 603: ab 4b 3e 0d jump 3993 if r11 != r4 + : @5 + 607: 33 05 06 r5 = 0x6 + 610: 33 00 00 00 80 00 r0 = 0x800000 + 616: 64 0b r11 = r0 + 618: 3e 03 00 00 02 u64 [0x20000] = r3 + 623: 3e 04 08 00 02 u64 [0x20008] = r4 + 628: 64 b3 r3 = r11 + 630: 33 00 ff 00 r0 = 0xff + 634: d4 03 04 r4 = r3 | r0 + 637: d2 0b 03 r3 = r11 & r0 + 640: db 34 0b r11 = r4 if r3 != 0 + 643: 64 b3 r3 = r11 + 645: 97 00 08 r0 = r0 << 0x8 + 648: d4 03 04 r4 = r3 | r0 + 651: d2 0b 03 r3 = r11 & r0 + 654: db 34 0b r11 = r4 if r3 != 0 + 657: 64 b4 r4 = r11 + 659: 97 00 08 r0 = r0 << 0x8 + 662: d4 04 04 r4 = r4 | r0 + 665: d2 0b 03 r3 = r11 & r0 + 668: db 34 0b r11 = r4 if r3 != 0 + 671: 64 b3 r3 = r11 + 673: 97 00 08 r0 = r0 << 0x8 + 676: d4 03 04 r4 = r3 | r0 + 679: d2 0b 03 r3 = r11 & r0 + 682: db 34 0b r11 = r4 if r3 != 0 + 685: 64 b3 r3 = r11 + 687: 97 00 08 r0 = r0 << 0x8 + 690: d4 03 04 r4 = r3 | r0 + 693: d2 0b 03 r3 = r11 & r0 + 696: db 34 0b r11 = r4 if r3 != 0 + 699: 64 b4 r4 = r11 + 701: 97 00 08 r0 = r0 << 0x8 + 704: d4 04 04 r4 = r4 | r0 + 707: d2 0b 03 r3 = r11 & r0 + 710: db 34 0b r11 = r4 if r3 != 0 + 713: 64 b3 r3 = r11 + 715: 97 00 08 r0 = r0 << 0x8 + 718: d4 03 04 r4 = r3 | r0 + 721: d2 0b 03 r3 = r11 & r0 + 724: db 34 0b r11 = r4 if r3 != 0 + 727: 64 b3 r3 = r11 + 729: 97 00 08 r0 = r0 << 0x8 + 732: d4 03 04 r4 = r3 | r0 + 735: d2 0b 03 r3 = r11 & r0 + 738: db 34 0b r11 = r4 if r3 != 0 + 741: 3a 03 00 00 02 r3 = u64 [0x20000] + 746: 3a 04 08 00 02 r4 = u64 [0x20008] + 751: 33 04 00 00 ff 00 r4 = 0xff0000 + 757: ab 4b a4 0c jump 3993 if r11 != r4 + : @6 + 761: 33 05 07 r5 = 0x7 + 764: 33 00 05 r0 = 0x5 + 767: 97 00 21 r0 = r0 << 0x21 + 770: 95 00 ff r0 = r0 + 0xffffffffffffffff + 773: 97 00 0f r0 = r0 << 0xf + 776: 64 0b r11 = r0 + 778: 3e 03 00 00 02 u64 [0x20000] = r3 + 783: 3e 04 08 00 02 u64 [0x20008] = r4 + 788: 64 b3 r3 = r11 + 790: 33 00 ff 00 r0 = 0xff + 794: d4 03 04 r4 = r3 | r0 + 797: d2 0b 03 r3 = r11 & r0 + 800: db 34 0b r11 = r4 if r3 != 0 + 803: 64 b3 r3 = r11 + 805: 97 00 08 r0 = r0 << 0x8 + 808: d4 03 04 r4 = r3 | r0 + 811: d2 0b 03 r3 = r11 & r0 + 814: db 34 0b r11 = r4 if r3 != 0 + 817: 64 b4 r4 = r11 + 819: 97 00 08 r0 = r0 << 0x8 + 822: d4 04 04 r4 = r4 | r0 + 825: d2 0b 03 r3 = r11 & r0 + 828: db 34 0b r11 = r4 if r3 != 0 + 831: 64 b3 r3 = r11 + 833: 97 00 08 r0 = r0 << 0x8 + 836: d4 03 04 r4 = r3 | r0 + 839: d2 0b 03 r3 = r11 & r0 + 842: db 34 0b r11 = r4 if r3 != 0 + 845: 64 b3 r3 = r11 + 847: 97 00 08 r0 = r0 << 0x8 + 850: d4 03 04 r4 = r3 | r0 + 853: d2 0b 03 r3 = r11 & r0 + 856: db 34 0b r11 = r4 if r3 != 0 + 859: 64 b4 r4 = r11 + 861: 97 00 08 r0 = r0 << 0x8 + 864: d4 04 04 r4 = r4 | r0 + 867: d2 0b 03 r3 = r11 & r0 + 870: db 34 0b r11 = r4 if r3 != 0 + 873: 64 b3 r3 = r11 + 875: 97 00 08 r0 = r0 << 0x8 + 878: d4 03 04 r4 = r3 | r0 + 881: d2 0b 03 r3 = r11 & r0 + 884: db 34 0b r11 = r4 if r3 != 0 + 887: 64 b3 r3 = r11 + 889: 97 00 08 r0 = r0 << 0x8 + 892: d4 03 04 r4 = r3 | r0 + 895: d2 0b 03 r3 = r11 & r0 + 898: db 34 0b r11 = r4 if r3 != 0 + 901: 3a 03 00 00 02 r3 = u64 [0x20000] + 906: 3a 04 08 00 02 r4 = u64 [0x20008] + 911: 33 04 01 r4 = 0x1 + 914: 97 44 38 r4 = r4 << 0x38 + 917: 95 44 00 ff r4 = r4 + 0xffffffffffffff00 + 921: ab 4b 00 0c jump 3993 if r11 != r4 + : @7 + 925: 33 05 08 r5 = 0x8 + 928: 33 00 00 80 00 r0 = 0x8000 + 933: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 936: 64 0b r11 = r0 + 938: 3e 03 00 00 02 u64 [0x20000] = r3 + 943: 3e 04 08 00 02 u64 [0x20008] = r4 + 948: 64 b3 r3 = r11 + 950: 33 00 ff 00 r0 = 0xff + 954: d4 03 04 r4 = r3 | r0 + 957: d2 0b 03 r3 = r11 & r0 + 960: db 34 0b r11 = r4 if r3 != 0 + 963: 64 b3 r3 = r11 + 965: 97 00 08 r0 = r0 << 0x8 + 968: d4 03 04 r4 = r3 | r0 + 971: d2 0b 03 r3 = r11 & r0 + 974: db 34 0b r11 = r4 if r3 != 0 + 977: 64 b4 r4 = r11 + 979: 97 00 08 r0 = r0 << 0x8 + 982: d4 04 04 r4 = r4 | r0 + 985: d2 0b 03 r3 = r11 & r0 + 988: db 34 0b r11 = r4 if r3 != 0 + 991: 64 b3 r3 = r11 + 993: 97 00 08 r0 = r0 << 0x8 + 996: d4 03 04 r4 = r3 | r0 + 999: d2 0b 03 r3 = r11 & r0 + 1002: db 34 0b r11 = r4 if r3 != 0 + 1005: 64 b3 r3 = r11 + 1007: 97 00 08 r0 = r0 << 0x8 + 1010: d4 03 04 r4 = r3 | r0 + 1013: d2 0b 03 r3 = r11 & r0 + 1016: db 34 0b r11 = r4 if r3 != 0 + 1019: 64 b4 r4 = r11 + 1021: 97 00 08 r0 = r0 << 0x8 + 1024: d4 04 04 r4 = r4 | r0 + 1027: d2 0b 03 r3 = r11 & r0 + 1030: db 34 0b r11 = r4 if r3 != 0 + 1033: 64 b3 r3 = r11 + 1035: 97 00 08 r0 = r0 << 0x8 + 1038: d4 03 04 r4 = r3 | r0 + 1041: d2 0b 03 r3 = r11 & r0 + 1044: db 34 0b r11 = r4 if r3 != 0 + 1047: 64 b3 r3 = r11 + 1049: 97 00 08 r0 = r0 << 0x8 + 1052: d4 03 04 r4 = r3 | r0 + 1055: d2 0b 03 r3 = r11 & r0 + 1058: db 34 0b r11 = r4 if r3 != 0 + 1061: 3a 03 00 00 02 r3 = u64 [0x20000] + 1066: 3a 04 08 00 02 r4 = u64 [0x20008] + 1071: 33 04 00 00 01 r4 = 0x10000 + 1076: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 1079: ab 4b 62 0b jump 3993 if r11 != r4 + : @8 + 1083: 33 05 09 r5 = 0x9 + 1086: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 1092: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 1095: 64 0b r11 = r0 + 1097: 3e 03 00 00 02 u64 [0x20000] = r3 + 1102: 3e 04 08 00 02 u64 [0x20008] = r4 + 1107: 64 b3 r3 = r11 + 1109: 33 00 ff 00 r0 = 0xff + 1113: d4 03 04 r4 = r3 | r0 + 1116: d2 0b 03 r3 = r11 & r0 + 1119: db 34 0b r11 = r4 if r3 != 0 + 1122: 64 b3 r3 = r11 + 1124: 97 00 08 r0 = r0 << 0x8 + 1127: d4 03 04 r4 = r3 | r0 + 1130: d2 0b 03 r3 = r11 & r0 + 1133: db 34 0b r11 = r4 if r3 != 0 + 1136: 64 b4 r4 = r11 + 1138: 97 00 08 r0 = r0 << 0x8 + 1141: d4 04 04 r4 = r4 | r0 + 1144: d2 0b 03 r3 = r11 & r0 + 1147: db 34 0b r11 = r4 if r3 != 0 + 1150: 64 b3 r3 = r11 + 1152: 97 00 08 r0 = r0 << 0x8 + 1155: d4 03 04 r4 = r3 | r0 + 1158: d2 0b 03 r3 = r11 & r0 + 1161: db 34 0b r11 = r4 if r3 != 0 + 1164: 64 b3 r3 = r11 + 1166: 97 00 08 r0 = r0 << 0x8 + 1169: d4 03 04 r4 = r3 | r0 + 1172: d2 0b 03 r3 = r11 & r0 + 1175: db 34 0b r11 = r4 if r3 != 0 + 1178: 64 b4 r4 = r11 + 1180: 97 00 08 r0 = r0 << 0x8 + 1183: d4 04 04 r4 = r4 | r0 + 1186: d2 0b 03 r3 = r11 & r0 + 1189: db 34 0b r11 = r4 if r3 != 0 + 1192: 64 b3 r3 = r11 + 1194: 97 00 08 r0 = r0 << 0x8 + 1197: d4 03 04 r4 = r3 | r0 + 1200: d2 0b 03 r3 = r11 & r0 + 1203: db 34 0b r11 = r4 if r3 != 0 + 1206: 64 b3 r3 = r11 + 1208: 97 00 08 r0 = r0 << 0x8 + 1211: d4 03 04 r4 = r3 | r0 + 1214: d2 0b 03 r3 = r11 & r0 + 1217: db 34 0b r11 = r4 if r3 != 0 + 1220: 3a 03 00 00 02 r3 = u64 [0x20000] + 1225: 3a 04 08 00 02 r4 = u64 [0x20008] + 1230: 33 04 01 r4 = 0x1 + 1233: 97 44 20 r4 = r4 << 0x20 + 1236: 95 44 ff r4 = r4 + 0xffffffffffffffff + 1239: ab 4b c2 0a jump 3993 if r11 != r4 + : @9 + 1243: 33 05 0a r5 = 0xa + 1246: 33 00 00 00 08 r0 = 0x80000 + 1251: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 1254: 64 0b r11 = r0 + 1256: 3e 03 00 00 02 u64 [0x20000] = r3 + 1261: 3e 04 08 00 02 u64 [0x20008] = r4 + 1266: 64 b3 r3 = r11 + 1268: 33 00 ff 00 r0 = 0xff + 1272: d4 03 04 r4 = r3 | r0 + 1275: d2 0b 03 r3 = r11 & r0 + 1278: db 34 0b r11 = r4 if r3 != 0 + 1281: 64 b3 r3 = r11 + 1283: 97 00 08 r0 = r0 << 0x8 + 1286: d4 03 04 r4 = r3 | r0 + 1289: d2 0b 03 r3 = r11 & r0 + 1292: db 34 0b r11 = r4 if r3 != 0 + 1295: 64 b4 r4 = r11 + 1297: 97 00 08 r0 = r0 << 0x8 + 1300: d4 04 04 r4 = r4 | r0 + 1303: d2 0b 03 r3 = r11 & r0 + 1306: db 34 0b r11 = r4 if r3 != 0 + 1309: 64 b3 r3 = r11 + 1311: 97 00 08 r0 = r0 << 0x8 + 1314: d4 03 04 r4 = r3 | r0 + 1317: d2 0b 03 r3 = r11 & r0 + 1320: db 34 0b r11 = r4 if r3 != 0 + 1323: 64 b3 r3 = r11 + 1325: 97 00 08 r0 = r0 << 0x8 + 1328: d4 03 04 r4 = r3 | r0 + 1331: d2 0b 03 r3 = r11 & r0 + 1334: db 34 0b r11 = r4 if r3 != 0 + 1337: 64 b4 r4 = r11 + 1339: 97 00 08 r0 = r0 << 0x8 + 1342: d4 04 04 r4 = r4 | r0 + 1345: d2 0b 03 r3 = r11 & r0 + 1348: db 34 0b r11 = r4 if r3 != 0 + 1351: 64 b3 r3 = r11 + 1353: 97 00 08 r0 = r0 << 0x8 + 1356: d4 03 04 r4 = r3 | r0 + 1359: d2 0b 03 r3 = r11 & r0 + 1362: db 34 0b r11 = r4 if r3 != 0 + 1365: 64 b3 r3 = r11 + 1367: 97 00 08 r0 = r0 << 0x8 + 1370: d4 03 04 r4 = r3 | r0 + 1373: d2 0b 03 r3 = r11 & r0 + 1376: db 34 0b r11 = r4 if r3 != 0 + 1379: 3a 03 00 00 02 r3 = u64 [0x20000] + 1384: 3a 04 08 00 02 r4 = u64 [0x20008] + 1389: 33 04 00 00 00 01 r4 = 0x1000000 + 1395: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 1398: ab 4b 23 0a jump 3993 if r11 != r4 + : @10 + 1402: 33 05 0b r5 = 0xb + 1405: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 1411: 64 0b r11 = r0 + 1413: 3e 03 00 00 02 u64 [0x20000] = r3 + 1418: 3e 04 08 00 02 u64 [0x20008] = r4 + 1423: 64 b3 r3 = r11 + 1425: 33 00 ff 00 r0 = 0xff + 1429: d4 03 04 r4 = r3 | r0 + 1432: d2 0b 03 r3 = r11 & r0 + 1435: db 34 0b r11 = r4 if r3 != 0 + 1438: 64 b3 r3 = r11 + 1440: 97 00 08 r0 = r0 << 0x8 + 1443: d4 03 04 r4 = r3 | r0 + 1446: d2 0b 03 r3 = r11 & r0 + 1449: db 34 0b r11 = r4 if r3 != 0 + 1452: 64 b4 r4 = r11 + 1454: 97 00 08 r0 = r0 << 0x8 + 1457: d4 04 04 r4 = r4 | r0 + 1460: d2 0b 03 r3 = r11 & r0 + 1463: db 34 0b r11 = r4 if r3 != 0 + 1466: 64 b3 r3 = r11 + 1468: 97 00 08 r0 = r0 << 0x8 + 1471: d4 03 04 r4 = r3 | r0 + 1474: d2 0b 03 r3 = r11 & r0 + 1477: db 34 0b r11 = r4 if r3 != 0 + 1480: 64 b3 r3 = r11 + 1482: 97 00 08 r0 = r0 << 0x8 + 1485: d4 03 04 r4 = r3 | r0 + 1488: d2 0b 03 r3 = r11 & r0 + 1491: db 34 0b r11 = r4 if r3 != 0 + 1494: 64 b4 r4 = r11 + 1496: 97 00 08 r0 = r0 << 0x8 + 1499: d4 04 04 r4 = r4 | r0 + 1502: d2 0b 03 r3 = r11 & r0 + 1505: db 34 0b r11 = r4 if r3 != 0 + 1508: 64 b3 r3 = r11 + 1510: 97 00 08 r0 = r0 << 0x8 + 1513: d4 03 04 r4 = r3 | r0 + 1516: d2 0b 03 r3 = r11 & r0 + 1519: db 34 0b r11 = r4 if r3 != 0 + 1522: 64 b3 r3 = r11 + 1524: 97 00 08 r0 = r0 << 0x8 + 1527: d4 03 04 r4 = r3 | r0 + 1530: d2 0b 03 r3 = r11 & r0 + 1533: db 34 0b r11 = r4 if r3 != 0 + 1536: 3a 03 00 00 02 r3 = u64 [0x20000] + 1541: 3a 04 08 00 02 r4 = u64 [0x20008] + 1546: 33 04 00 00 00 ff r4 = 0xffffffffff000000 + 1552: ab 4b 89 09 jump 3993 if r11 != r4 + : @11 + 1556: 33 05 0c r5 = 0xc + 1559: 33 00 00 c0 ab 7f r0 = 0x7fabc000 + 1565: 83 00 89 07 i32 r0 = r0 + 0x789 + 1569: 97 00 0d r0 = r0 << 0xd + 1572: 95 00 f5 01 r0 = r0 + 0x1f5 + 1576: 97 00 0c r0 = r0 << 0xc + 1579: 64 0b r11 = r0 + 1581: 3e 03 00 00 02 u64 [0x20000] = r3 + 1586: 3e 04 08 00 02 u64 [0x20008] = r4 + 1591: 64 b3 r3 = r11 + 1593: 33 00 ff 00 r0 = 0xff + 1597: d4 03 04 r4 = r3 | r0 + 1600: d2 0b 03 r3 = r11 & r0 + 1603: db 34 0b r11 = r4 if r3 != 0 + 1606: 64 b3 r3 = r11 + 1608: 97 00 08 r0 = r0 << 0x8 + 1611: d4 03 04 r4 = r3 | r0 + 1614: d2 0b 03 r3 = r11 & r0 + 1617: db 34 0b r11 = r4 if r3 != 0 + 1620: 64 b4 r4 = r11 + 1622: 97 00 08 r0 = r0 << 0x8 + 1625: d4 04 04 r4 = r4 | r0 + 1628: d2 0b 03 r3 = r11 & r0 + 1631: db 34 0b r11 = r4 if r3 != 0 + 1634: 64 b3 r3 = r11 + 1636: 97 00 08 r0 = r0 << 0x8 + 1639: d4 03 04 r4 = r3 | r0 + 1642: d2 0b 03 r3 = r11 & r0 + 1645: db 34 0b r11 = r4 if r3 != 0 + 1648: 64 b3 r3 = r11 + 1650: 97 00 08 r0 = r0 << 0x8 + 1653: d4 03 04 r4 = r3 | r0 + 1656: d2 0b 03 r3 = r11 & r0 + 1659: db 34 0b r11 = r4 if r3 != 0 + 1662: 64 b4 r4 = r11 + 1664: 97 00 08 r0 = r0 << 0x8 + 1667: d4 04 04 r4 = r4 | r0 + 1670: d2 0b 03 r3 = r11 & r0 + 1673: db 34 0b r11 = r4 if r3 != 0 + 1676: 64 b3 r3 = r11 + 1678: 97 00 08 r0 = r0 << 0x8 + 1681: d4 03 04 r4 = r3 | r0 + 1684: d2 0b 03 r3 = r11 & r0 + 1687: db 34 0b r11 = r4 if r3 != 0 + 1690: 64 b3 r3 = r11 + 1692: 97 00 08 r0 = r0 << 0x8 + 1695: d4 03 04 r4 = r3 | r0 + 1698: d2 0b 03 r3 = r11 & r0 + 1701: db 34 0b r11 = r4 if r3 != 0 + 1704: 3a 03 00 00 02 r3 = u64 [0x20000] + 1709: 3a 04 08 00 02 r4 = u64 [0x20008] + 1714: 33 04 01 r4 = 0x1 + 1717: 97 44 38 r4 = r4 << 0x38 + 1720: 95 44 00 ff r4 = r4 + 0xffffffffffffff00 + 1724: ab 4b dd 08 jump 3993 if r11 != r4 + : @12 + 1728: 33 05 0d r5 = 0xd + 1731: 33 00 ff r0 = 0xffffffffffffffff + 1734: 97 00 3f r0 = r0 << 0x3f + 1737: 64 0b r11 = r0 + 1739: 3e 03 00 00 02 u64 [0x20000] = r3 + 1744: 3e 04 08 00 02 u64 [0x20008] = r4 + 1749: 64 b3 r3 = r11 + 1751: 33 00 ff 00 r0 = 0xff + 1755: d4 03 04 r4 = r3 | r0 + 1758: d2 0b 03 r3 = r11 & r0 + 1761: db 34 0b r11 = r4 if r3 != 0 + 1764: 64 b3 r3 = r11 + 1766: 97 00 08 r0 = r0 << 0x8 + 1769: d4 03 04 r4 = r3 | r0 + 1772: d2 0b 03 r3 = r11 & r0 + 1775: db 34 0b r11 = r4 if r3 != 0 + 1778: 64 b4 r4 = r11 + 1780: 97 00 08 r0 = r0 << 0x8 + 1783: d4 04 04 r4 = r4 | r0 + 1786: d2 0b 03 r3 = r11 & r0 + 1789: db 34 0b r11 = r4 if r3 != 0 + 1792: 64 b3 r3 = r11 + 1794: 97 00 08 r0 = r0 << 0x8 + 1797: d4 03 04 r4 = r3 | r0 + 1800: d2 0b 03 r3 = r11 & r0 + 1803: db 34 0b r11 = r4 if r3 != 0 + 1806: 64 b3 r3 = r11 + 1808: 97 00 08 r0 = r0 << 0x8 + 1811: d4 03 04 r4 = r3 | r0 + 1814: d2 0b 03 r3 = r11 & r0 + 1817: db 34 0b r11 = r4 if r3 != 0 + 1820: 64 b4 r4 = r11 + 1822: 97 00 08 r0 = r0 << 0x8 + 1825: d4 04 04 r4 = r4 | r0 + 1828: d2 0b 03 r3 = r11 & r0 + 1831: db 34 0b r11 = r4 if r3 != 0 + 1834: 64 b3 r3 = r11 + 1836: 97 00 08 r0 = r0 << 0x8 + 1839: d4 03 04 r4 = r3 | r0 + 1842: d2 0b 03 r3 = r11 & r0 + 1845: db 34 0b r11 = r4 if r3 != 0 + 1848: 64 b3 r3 = r11 + 1850: 97 00 08 r0 = r0 << 0x8 + 1853: d4 03 04 r4 = r3 | r0 + 1856: d2 0b 03 r3 = r11 & r0 + 1859: db 34 0b r11 = r4 if r3 != 0 + 1862: 3a 03 00 00 02 r3 = u64 [0x20000] + 1867: 3a 04 08 00 02 r4 = u64 [0x20008] + 1872: 33 04 ff r4 = 0xffffffffffffffff + 1875: 97 44 38 r4 = r4 << 0x38 + 1878: ab 4b 43 08 jump 3993 if r11 != r4 + : @13 + 1882: 33 05 0e r5 = 0xe + 1885: 33 00 0e r0 = 0xe + 1888: 64 0b r11 = r0 + 1890: 3e 03 00 00 02 u64 [0x20000] = r3 + 1895: 3e 04 08 00 02 u64 [0x20008] = r4 + 1900: 64 b3 r3 = r11 + 1902: 33 00 ff 00 r0 = 0xff + 1906: d4 03 04 r4 = r3 | r0 + 1909: d2 0b 03 r3 = r11 & r0 + 1912: db 34 0b r11 = r4 if r3 != 0 + 1915: 64 b3 r3 = r11 + 1917: 97 00 08 r0 = r0 << 0x8 + 1920: d4 03 04 r4 = r3 | r0 + 1923: d2 0b 03 r3 = r11 & r0 + 1926: db 34 0b r11 = r4 if r3 != 0 + 1929: 64 b4 r4 = r11 + 1931: 97 00 08 r0 = r0 << 0x8 + 1934: d4 04 04 r4 = r4 | r0 + 1937: d2 0b 03 r3 = r11 & r0 + 1940: db 34 0b r11 = r4 if r3 != 0 + 1943: 64 b3 r3 = r11 + 1945: 97 00 08 r0 = r0 << 0x8 + 1948: d4 03 04 r4 = r3 | r0 + 1951: d2 0b 03 r3 = r11 & r0 + 1954: db 34 0b r11 = r4 if r3 != 0 + 1957: 64 b3 r3 = r11 + 1959: 97 00 08 r0 = r0 << 0x8 + 1962: d4 03 04 r4 = r3 | r0 + 1965: d2 0b 03 r3 = r11 & r0 + 1968: db 34 0b r11 = r4 if r3 != 0 + 1971: 64 b4 r4 = r11 + 1973: 97 00 08 r0 = r0 << 0x8 + 1976: d4 04 04 r4 = r4 | r0 + 1979: d2 0b 03 r3 = r11 & r0 + 1982: db 34 0b r11 = r4 if r3 != 0 + 1985: 64 b3 r3 = r11 + 1987: 97 00 08 r0 = r0 << 0x8 + 1990: d4 03 04 r4 = r3 | r0 + 1993: d2 0b 03 r3 = r11 & r0 + 1996: db 34 0b r11 = r4 if r3 != 0 + 1999: 64 b3 r3 = r11 + 2001: 97 00 08 r0 = r0 << 0x8 + 2004: d4 03 04 r4 = r3 | r0 + 2007: d2 0b 03 r3 = r11 & r0 + 2010: db 34 0b r11 = r4 if r3 != 0 + 2013: 3a 03 00 00 02 r3 = u64 [0x20000] + 2018: 3a 04 08 00 02 r4 = u64 [0x20008] + 2023: 33 04 ff 00 r4 = 0xff + 2027: ab 4b ae 07 jump 3993 if r11 != r4 + : @14 + 2031: 33 05 0f r5 = 0xf + 2034: 33 00 fd r0 = 0xfffffffffffffffd + 2037: 97 00 20 r0 = r0 << 0x20 + 2040: 95 00 19 r0 = r0 + 0x19 + 2043: 97 00 11 r0 = r0 << 0x11 + 2046: 95 00 01 04 r0 = r0 + 0x401 + 2050: 97 00 0c r0 = r0 << 0xc + 2053: 95 00 41 03 r0 = r0 + 0x341 + 2057: 64 0b r11 = r0 + 2059: 3e 03 00 00 02 u64 [0x20000] = r3 + 2064: 3e 04 08 00 02 u64 [0x20008] = r4 + 2069: 64 b3 r3 = r11 + 2071: 33 00 ff 00 r0 = 0xff + 2075: d4 03 04 r4 = r3 | r0 + 2078: d2 0b 03 r3 = r11 & r0 + 2081: db 34 0b r11 = r4 if r3 != 0 + 2084: 64 b3 r3 = r11 + 2086: 97 00 08 r0 = r0 << 0x8 + 2089: d4 03 04 r4 = r3 | r0 + 2092: d2 0b 03 r3 = r11 & r0 + 2095: db 34 0b r11 = r4 if r3 != 0 + 2098: 64 b4 r4 = r11 + 2100: 97 00 08 r0 = r0 << 0x8 + 2103: d4 04 04 r4 = r4 | r0 + 2106: d2 0b 03 r3 = r11 & r0 + 2109: db 34 0b r11 = r4 if r3 != 0 + 2112: 64 b3 r3 = r11 + 2114: 97 00 08 r0 = r0 << 0x8 + 2117: d4 03 04 r4 = r3 | r0 + 2120: d2 0b 03 r3 = r11 & r0 + 2123: db 34 0b r11 = r4 if r3 != 0 + 2126: 64 b3 r3 = r11 + 2128: 97 00 08 r0 = r0 << 0x8 + 2131: d4 03 04 r4 = r3 | r0 + 2134: d2 0b 03 r3 = r11 & r0 + 2137: db 34 0b r11 = r4 if r3 != 0 + 2140: 64 b4 r4 = r11 + 2142: 97 00 08 r0 = r0 << 0x8 + 2145: d4 04 04 r4 = r4 | r0 + 2148: d2 0b 03 r3 = r11 & r0 + 2151: db 34 0b r11 = r4 if r3 != 0 + 2154: 64 b3 r3 = r11 + 2156: 97 00 08 r0 = r0 << 0x8 + 2159: d4 03 04 r4 = r3 | r0 + 2162: d2 0b 03 r3 = r11 & r0 + 2165: db 34 0b r11 = r4 if r3 != 0 + 2168: 64 b3 r3 = r11 + 2170: 97 00 08 r0 = r0 << 0x8 + 2173: d4 03 04 r4 = r3 | r0 + 2176: d2 0b 03 r3 = r11 & r0 + 2179: db 34 0b r11 = r4 if r3 != 0 + 2182: 3a 03 00 00 02 r3 = u64 [0x20000] + 2187: 3a 04 08 00 02 r4 = u64 [0x20008] + 2192: 33 04 00 00 ff r4 = 0xffffffffffff0000 + 2197: 83 44 01 i32 r4 = r4 + 0x1 + 2200: 97 44 28 r4 = r4 << 0x28 + 2203: 95 44 ff r4 = r4 + 0xffffffffffffffff + 2206: ab 4b fb 06 jump 3993 if r11 != r4 + : @15 + 2210: 33 05 10 r5 = 0x10 + 2213: 33 00 0d r0 = 0xd + 2216: 3e 02 00 00 02 u64 [0x20000] = r2 + 2221: 3e 03 08 00 02 u64 [0x20008] = r3 + 2226: 3e 04 10 00 02 u64 [0x20010] = r4 + 2231: 64 02 r2 = r0 + 2233: 33 04 ff 00 r4 = 0xff + 2237: d4 42 03 r3 = r2 | r4 + 2240: d2 40 02 r2 = r0 & r4 + 2243: db 23 00 r0 = r3 if r2 != 0 + 2246: 64 03 r3 = r0 + 2248: 97 44 08 r4 = r4 << 0x8 + 2251: d4 43 03 r3 = r3 | r4 + 2254: d2 40 02 r2 = r0 & r4 + 2257: db 23 00 r0 = r3 if r2 != 0 + 2260: 64 02 r2 = r0 + 2262: 97 44 08 r4 = r4 << 0x8 + 2265: d4 42 03 r3 = r2 | r4 + 2268: d2 40 02 r2 = r0 & r4 + 2271: db 23 00 r0 = r3 if r2 != 0 + 2274: 64 02 r2 = r0 + 2276: 97 44 08 r4 = r4 << 0x8 + 2279: d4 42 03 r3 = r2 | r4 + 2282: d2 40 02 r2 = r0 & r4 + 2285: db 23 00 r0 = r3 if r2 != 0 + 2288: 64 03 r3 = r0 + 2290: 97 44 08 r4 = r4 << 0x8 + 2293: d4 43 03 r3 = r3 | r4 + 2296: d2 40 02 r2 = r0 & r4 + 2299: db 23 00 r0 = r3 if r2 != 0 + 2302: 64 02 r2 = r0 + 2304: 97 44 08 r4 = r4 << 0x8 + 2307: d4 42 03 r3 = r2 | r4 + 2310: d2 40 02 r2 = r0 & r4 + 2313: db 23 00 r0 = r3 if r2 != 0 + 2316: 64 02 r2 = r0 + 2318: 97 44 08 r4 = r4 << 0x8 + 2321: d4 42 03 r3 = r2 | r4 + 2324: d2 40 02 r2 = r0 & r4 + 2327: db 23 00 r0 = r3 if r2 != 0 + 2330: 64 02 r2 = r0 + 2332: 97 43 08 r3 = r4 << 0x8 + 2335: d4 32 04 r4 = r2 | r3 + 2338: d2 30 03 r3 = r0 & r3 + 2341: db 34 00 r0 = r4 if r3 != 0 + 2344: 3a 02 00 00 02 r2 = u64 [0x20000] + 2349: 3a 03 08 00 02 r3 = u64 [0x20008] + 2354: 3a 04 10 00 02 r4 = u64 [0x20010] + 2359: 33 04 ff 00 r4 = 0xff + 2363: ab 40 5e 06 jump 3993 if r0 != r4 + : @16 + 2367: 33 05 11 r5 = 0x11 + 2370: 33 00 0b r0 = 0xb + 2373: 3e 02 00 00 02 u64 [0x20000] = r2 + 2378: 3e 03 08 00 02 u64 [0x20008] = r3 + 2383: 3e 04 10 00 02 u64 [0x20010] = r4 + 2388: 64 02 r2 = r0 + 2390: 33 04 ff 00 r4 = 0xff + 2394: d4 42 03 r3 = r2 | r4 + 2397: d2 40 02 r2 = r0 & r4 + 2400: db 23 00 r0 = r3 if r2 != 0 + 2403: 64 03 r3 = r0 + 2405: 97 44 08 r4 = r4 << 0x8 + 2408: d4 43 03 r3 = r3 | r4 + 2411: d2 40 02 r2 = r0 & r4 + 2414: db 23 00 r0 = r3 if r2 != 0 + 2417: 64 02 r2 = r0 + 2419: 97 44 08 r4 = r4 << 0x8 + 2422: d4 42 03 r3 = r2 | r4 + 2425: d2 40 02 r2 = r0 & r4 + 2428: db 23 00 r0 = r3 if r2 != 0 + 2431: 64 02 r2 = r0 + 2433: 97 44 08 r4 = r4 << 0x8 + 2436: d4 42 03 r3 = r2 | r4 + 2439: d2 40 02 r2 = r0 & r4 + 2442: db 23 00 r0 = r3 if r2 != 0 + 2445: 64 03 r3 = r0 + 2447: 97 44 08 r4 = r4 << 0x8 + 2450: d4 43 03 r3 = r3 | r4 + 2453: d2 40 02 r2 = r0 & r4 + 2456: db 23 00 r0 = r3 if r2 != 0 + 2459: 64 02 r2 = r0 + 2461: 97 44 08 r4 = r4 << 0x8 + 2464: d4 42 03 r3 = r2 | r4 + 2467: d2 40 02 r2 = r0 & r4 + 2470: db 23 00 r0 = r3 if r2 != 0 + 2473: 64 02 r2 = r0 + 2475: 97 44 08 r4 = r4 << 0x8 + 2478: d4 42 03 r3 = r2 | r4 + 2481: d2 40 02 r2 = r0 & r4 + 2484: db 23 00 r0 = r3 if r2 != 0 + 2487: 64 02 r2 = r0 + 2489: 97 43 08 r3 = r4 << 0x8 + 2492: d4 32 04 r4 = r2 | r3 + 2495: d2 30 03 r3 = r0 & r3 + 2498: db 34 00 r0 = r4 if r3 != 0 + 2501: 3a 02 00 00 02 r2 = u64 [0x20000] + 2506: 3a 03 08 00 02 r3 = u64 [0x20008] + 2511: 3a 04 10 00 02 r4 = u64 [0x20010] + 2516: 33 04 ff 00 r4 = 0xff + 2520: ab 40 c1 05 jump 3993 if r0 != r4 + : @17 + 2524: 33 05 12 r5 = 0x12 + 2527: 33 0a r10 = 0 + 2529: 01 fallthrough + : @18 + 2530: 33 00 0d r0 = 0xd + 2533: 64 0b r11 = r0 + 2535: 3e 03 00 00 02 u64 [0x20000] = r3 + 2540: 3e 04 08 00 02 u64 [0x20008] = r4 + 2545: 64 b3 r3 = r11 + 2547: 33 00 ff 00 r0 = 0xff + 2551: d4 03 04 r4 = r3 | r0 + 2554: d2 0b 03 r3 = r11 & r0 + 2557: db 34 0b r11 = r4 if r3 != 0 + 2560: 64 b3 r3 = r11 + 2562: 97 00 08 r0 = r0 << 0x8 + 2565: d4 03 04 r4 = r3 | r0 + 2568: d2 0b 03 r3 = r11 & r0 + 2571: db 34 0b r11 = r4 if r3 != 0 + 2574: 64 b4 r4 = r11 + 2576: 97 00 08 r0 = r0 << 0x8 + 2579: d4 04 04 r4 = r4 | r0 + 2582: d2 0b 03 r3 = r11 & r0 + 2585: db 34 0b r11 = r4 if r3 != 0 + 2588: 64 b3 r3 = r11 + 2590: 97 00 08 r0 = r0 << 0x8 + 2593: d4 03 04 r4 = r3 | r0 + 2596: d2 0b 03 r3 = r11 & r0 + 2599: db 34 0b r11 = r4 if r3 != 0 + 2602: 64 b3 r3 = r11 + 2604: 97 00 08 r0 = r0 << 0x8 + 2607: d4 03 04 r4 = r3 | r0 + 2610: d2 0b 03 r3 = r11 & r0 + 2613: db 34 0b r11 = r4 if r3 != 0 + 2616: 64 b4 r4 = r11 + 2618: 97 00 08 r0 = r0 << 0x8 + 2621: d4 04 04 r4 = r4 | r0 + 2624: d2 0b 03 r3 = r11 & r0 + 2627: db 34 0b r11 = r4 if r3 != 0 + 2630: 64 b3 r3 = r11 + 2632: 97 00 08 r0 = r0 << 0x8 + 2635: d4 03 04 r4 = r3 | r0 + 2638: d2 0b 03 r3 = r11 & r0 + 2641: db 34 0b r11 = r4 if r3 != 0 + 2644: 64 b3 r3 = r11 + 2646: 97 00 08 r0 = r0 << 0x8 + 2649: d4 03 04 r4 = r3 | r0 + 2652: d2 0b 03 r3 = r11 & r0 + 2655: db 34 0b r11 = r4 if r3 != 0 + 2658: 3a 03 00 00 02 r3 = u64 [0x20000] + 2663: 3a 04 08 00 02 r4 = u64 [0x20008] + 2668: 64 b3 r3 = r11 + 2670: 95 aa 01 r10 = r10 + 0x1 + 2673: 33 02 02 r2 = 0x2 + 2676: ab 2a 6e ff jump 2530 if r10 != r2 + : @19 + 2680: 33 04 ff 00 r4 = 0xff + 2684: ab 43 1d 05 jump 3993 if r3 != r4 + : @20 + 2688: 33 05 1d r5 = 0x1d + 2691: 33 0a r10 = 0 + 2693: 01 fallthrough + : @21 + 2694: 33 00 13 r0 = 0x13 + 2697: 64 0b r11 = r0 + 2699: 3e 03 00 00 02 u64 [0x20000] = r3 + 2704: 3e 04 08 00 02 u64 [0x20008] = r4 + 2709: 64 b3 r3 = r11 + 2711: 33 00 ff 00 r0 = 0xff + 2715: d4 03 04 r4 = r3 | r0 + 2718: d2 0b 03 r3 = r11 & r0 + 2721: db 34 0b r11 = r4 if r3 != 0 + 2724: 64 b3 r3 = r11 + 2726: 97 00 08 r0 = r0 << 0x8 + 2729: d4 03 04 r4 = r3 | r0 + 2732: d2 0b 03 r3 = r11 & r0 + 2735: db 34 0b r11 = r4 if r3 != 0 + 2738: 64 b4 r4 = r11 + 2740: 97 00 08 r0 = r0 << 0x8 + 2743: d4 04 04 r4 = r4 | r0 + 2746: d2 0b 03 r3 = r11 & r0 + 2749: db 34 0b r11 = r4 if r3 != 0 + 2752: 64 b3 r3 = r11 + 2754: 97 00 08 r0 = r0 << 0x8 + 2757: d4 03 04 r4 = r3 | r0 + 2760: d2 0b 03 r3 = r11 & r0 + 2763: db 34 0b r11 = r4 if r3 != 0 + 2766: 64 b3 r3 = r11 + 2768: 97 00 08 r0 = r0 << 0x8 + 2771: d4 03 04 r4 = r3 | r0 + 2774: d2 0b 03 r3 = r11 & r0 + 2777: db 34 0b r11 = r4 if r3 != 0 + 2780: 64 b4 r4 = r11 + 2782: 97 00 08 r0 = r0 << 0x8 + 2785: d4 04 04 r4 = r4 | r0 + 2788: d2 0b 03 r3 = r11 & r0 + 2791: db 34 0b r11 = r4 if r3 != 0 + 2794: 64 b3 r3 = r11 + 2796: 97 00 08 r0 = r0 << 0x8 + 2799: d4 03 04 r4 = r3 | r0 + 2802: d2 0b 03 r3 = r11 & r0 + 2805: db 34 0b r11 = r4 if r3 != 0 + 2808: 64 b3 r3 = r11 + 2810: 97 00 08 r0 = r0 << 0x8 + 2813: d4 03 04 r4 = r3 | r0 + 2816: d2 0b 03 r3 = r11 & r0 + 2819: db 34 0b r11 = r4 if r3 != 0 + 2822: 3a 03 00 00 02 r3 = u64 [0x20000] + 2827: 3a 04 08 00 02 r4 = u64 [0x20008] + 2832: 64 b3 r3 = r11 + 2834: 95 aa 01 r10 = r10 + 0x1 + 2837: 33 02 02 r2 = 0x2 + 2840: ab 2a 6e ff jump 2694 if r10 != r2 + : @22 + 2844: 33 04 ff 00 r4 = 0xff + 2848: ab 43 79 04 jump 3993 if r3 != r4 + : @23 + 2852: 33 05 14 r5 = 0x14 + 2855: 33 0a r10 = 0 + 2857: 01 fallthrough + : @24 + 2858: 33 00 22 r0 = 0x22 + 2861: 64 0b r11 = r0 + 2863: 3e 03 00 00 02 u64 [0x20000] = r3 + 2868: 3e 04 08 00 02 u64 [0x20008] = r4 + 2873: 64 b3 r3 = r11 + 2875: 33 00 ff 00 r0 = 0xff + 2879: d4 03 04 r4 = r3 | r0 + 2882: d2 0b 03 r3 = r11 & r0 + 2885: db 34 0b r11 = r4 if r3 != 0 + 2888: 64 b3 r3 = r11 + 2890: 97 00 08 r0 = r0 << 0x8 + 2893: d4 03 04 r4 = r3 | r0 + 2896: d2 0b 03 r3 = r11 & r0 + 2899: db 34 0b r11 = r4 if r3 != 0 + 2902: 64 b4 r4 = r11 + 2904: 97 00 08 r0 = r0 << 0x8 + 2907: d4 04 04 r4 = r4 | r0 + 2910: d2 0b 03 r3 = r11 & r0 + 2913: db 34 0b r11 = r4 if r3 != 0 + 2916: 64 b3 r3 = r11 + 2918: 97 00 08 r0 = r0 << 0x8 + 2921: d4 03 04 r4 = r3 | r0 + 2924: d2 0b 03 r3 = r11 & r0 + 2927: db 34 0b r11 = r4 if r3 != 0 + 2930: 64 b3 r3 = r11 + 2932: 97 00 08 r0 = r0 << 0x8 + 2935: d4 03 04 r4 = r3 | r0 + 2938: d2 0b 03 r3 = r11 & r0 + 2941: db 34 0b r11 = r4 if r3 != 0 + 2944: 64 b4 r4 = r11 + 2946: 97 00 08 r0 = r0 << 0x8 + 2949: d4 04 04 r4 = r4 | r0 + 2952: d2 0b 03 r3 = r11 & r0 + 2955: db 34 0b r11 = r4 if r3 != 0 + 2958: 64 b3 r3 = r11 + 2960: 97 00 08 r0 = r0 << 0x8 + 2963: d4 03 04 r4 = r3 | r0 + 2966: d2 0b 03 r3 = r11 & r0 + 2969: db 34 0b r11 = r4 if r3 != 0 + 2972: 64 b3 r3 = r11 + 2974: 97 00 08 r0 = r0 << 0x8 + 2977: d4 03 04 r4 = r3 | r0 + 2980: d2 0b 03 r3 = r11 & r0 + 2983: db 34 0b r11 = r4 if r3 != 0 + 2986: 3a 03 00 00 02 r3 = u64 [0x20000] + 2991: 3a 04 08 00 02 r4 = u64 [0x20008] + 2996: 64 b3 r3 = r11 + 2998: 95 aa 01 r10 = r10 + 0x1 + 3001: 33 02 02 r2 = 0x2 + 3004: ab 2a 6e ff jump 2858 if r10 != r2 + : @25 + 3008: 33 04 ff 00 r4 = 0xff + 3012: ab 43 d5 03 jump 3993 if r3 != r4 + : @26 + 3016: 33 05 15 r5 = 0x15 + 3019: 33 00 00 80 7f r0 = 0x7f8000 + 3024: 64 0b r11 = r0 + 3026: 3e 03 00 00 02 u64 [0x20000] = r3 + 3031: 3e 04 08 00 02 u64 [0x20008] = r4 + 3036: 64 b3 r3 = r11 + 3038: 33 00 ff 00 r0 = 0xff + 3042: d4 03 04 r4 = r3 | r0 + 3045: d2 0b 03 r3 = r11 & r0 + 3048: db 34 0b r11 = r4 if r3 != 0 + 3051: 64 b3 r3 = r11 + 3053: 97 00 08 r0 = r0 << 0x8 + 3056: d4 03 04 r4 = r3 | r0 + 3059: d2 0b 03 r3 = r11 & r0 + 3062: db 34 0b r11 = r4 if r3 != 0 + 3065: 64 b4 r4 = r11 + 3067: 97 00 08 r0 = r0 << 0x8 + 3070: d4 04 04 r4 = r4 | r0 + 3073: d2 0b 03 r3 = r11 & r0 + 3076: db 34 0b r11 = r4 if r3 != 0 + 3079: 64 b3 r3 = r11 + 3081: 97 00 08 r0 = r0 << 0x8 + 3084: d4 03 04 r4 = r3 | r0 + 3087: d2 0b 03 r3 = r11 & r0 + 3090: db 34 0b r11 = r4 if r3 != 0 + 3093: 64 b3 r3 = r11 + 3095: 97 00 08 r0 = r0 << 0x8 + 3098: d4 03 04 r4 = r3 | r0 + 3101: d2 0b 03 r3 = r11 & r0 + 3104: db 34 0b r11 = r4 if r3 != 0 + 3107: 64 b4 r4 = r11 + 3109: 97 00 08 r0 = r0 << 0x8 + 3112: d4 04 04 r4 = r4 | r0 + 3115: d2 0b 03 r3 = r11 & r0 + 3118: db 34 0b r11 = r4 if r3 != 0 + 3121: 64 b3 r3 = r11 + 3123: 97 00 08 r0 = r0 << 0x8 + 3126: d4 03 04 r4 = r3 | r0 + 3129: d2 0b 03 r3 = r11 & r0 + 3132: db 34 0b r11 = r4 if r3 != 0 + 3135: 64 b3 r3 = r11 + 3137: 97 00 08 r0 = r0 << 0x8 + 3140: d4 03 04 r4 = r3 | r0 + 3143: d2 0b 03 r3 = r11 & r0 + 3146: db 34 0b r11 = r4 if r3 != 0 + 3149: 3a 03 00 00 02 r3 = u64 [0x20000] + 3154: 3a 04 08 00 02 r4 = u64 [0x20008] + 3159: 33 04 00 00 00 01 r4 = 0x1000000 + 3165: 83 44 00 ff i32 r4 = r4 + 0xffffffffffffff00 + 3169: ab 4b 38 03 jump 3993 if r11 != r4 + : @27 + 3173: 33 05 16 r5 = 0x16 + 3176: 33 00 00 80 80 00 r0 = 0x808000 + 3182: 64 0b r11 = r0 + 3184: 3e 03 00 00 02 u64 [0x20000] = r3 + 3189: 3e 04 08 00 02 u64 [0x20008] = r4 + 3194: 64 b3 r3 = r11 + 3196: 33 00 ff 00 r0 = 0xff + 3200: d4 03 04 r4 = r3 | r0 + 3203: d2 0b 03 r3 = r11 & r0 + 3206: db 34 0b r11 = r4 if r3 != 0 + 3209: 64 b3 r3 = r11 + 3211: 97 00 08 r0 = r0 << 0x8 + 3214: d4 03 04 r4 = r3 | r0 + 3217: d2 0b 03 r3 = r11 & r0 + 3220: db 34 0b r11 = r4 if r3 != 0 + 3223: 64 b4 r4 = r11 + 3225: 97 00 08 r0 = r0 << 0x8 + 3228: d4 04 04 r4 = r4 | r0 + 3231: d2 0b 03 r3 = r11 & r0 + 3234: db 34 0b r11 = r4 if r3 != 0 + 3237: 64 b3 r3 = r11 + 3239: 97 00 08 r0 = r0 << 0x8 + 3242: d4 03 04 r4 = r3 | r0 + 3245: d2 0b 03 r3 = r11 & r0 + 3248: db 34 0b r11 = r4 if r3 != 0 + 3251: 64 b3 r3 = r11 + 3253: 97 00 08 r0 = r0 << 0x8 + 3256: d4 03 04 r4 = r3 | r0 + 3259: d2 0b 03 r3 = r11 & r0 + 3262: db 34 0b r11 = r4 if r3 != 0 + 3265: 64 b4 r4 = r11 + 3267: 97 00 08 r0 = r0 << 0x8 + 3270: d4 04 04 r4 = r4 | r0 + 3273: d2 0b 03 r3 = r11 & r0 + 3276: db 34 0b r11 = r4 if r3 != 0 + 3279: 64 b3 r3 = r11 + 3281: 97 00 08 r0 = r0 << 0x8 + 3284: d4 03 04 r4 = r3 | r0 + 3287: d2 0b 03 r3 = r11 & r0 + 3290: db 34 0b r11 = r4 if r3 != 0 + 3293: 64 b3 r3 = r11 + 3295: 97 00 08 r0 = r0 << 0x8 + 3298: d4 03 04 r4 = r3 | r0 + 3301: d2 0b 03 r3 = r11 & r0 + 3304: db 34 0b r11 = r4 if r3 != 0 + 3307: 3a 03 00 00 02 r3 = u64 [0x20000] + 3312: 3a 04 08 00 02 r4 = u64 [0x20008] + 3317: 33 04 00 00 00 01 r4 = 0x1000000 + 3323: 83 44 00 ff i32 r4 = r4 + 0xffffffffffffff00 + 3327: ab 4b 9a 02 jump 3993 if r11 != r4 + : @28 + 3331: 33 05 17 r5 = 0x17 + 3334: 33 00 00 80 80 01 r0 = 0x1808000 + 3340: 64 0b r11 = r0 + 3342: 3e 03 00 00 02 u64 [0x20000] = r3 + 3347: 3e 04 08 00 02 u64 [0x20008] = r4 + 3352: 64 b3 r3 = r11 + 3354: 33 00 ff 00 r0 = 0xff + 3358: d4 03 04 r4 = r3 | r0 + 3361: d2 0b 03 r3 = r11 & r0 + 3364: db 34 0b r11 = r4 if r3 != 0 + 3367: 64 b3 r3 = r11 + 3369: 97 00 08 r0 = r0 << 0x8 + 3372: d4 03 04 r4 = r3 | r0 + 3375: d2 0b 03 r3 = r11 & r0 + 3378: db 34 0b r11 = r4 if r3 != 0 + 3381: 64 b4 r4 = r11 + 3383: 97 00 08 r0 = r0 << 0x8 + 3386: d4 04 04 r4 = r4 | r0 + 3389: d2 0b 03 r3 = r11 & r0 + 3392: db 34 0b r11 = r4 if r3 != 0 + 3395: 64 b3 r3 = r11 + 3397: 97 00 08 r0 = r0 << 0x8 + 3400: d4 03 04 r4 = r3 | r0 + 3403: d2 0b 03 r3 = r11 & r0 + 3406: db 34 0b r11 = r4 if r3 != 0 + 3409: 64 b3 r3 = r11 + 3411: 97 00 08 r0 = r0 << 0x8 + 3414: d4 03 04 r4 = r3 | r0 + 3417: d2 0b 03 r3 = r11 & r0 + 3420: db 34 0b r11 = r4 if r3 != 0 + 3423: 64 b4 r4 = r11 + 3425: 97 00 08 r0 = r0 << 0x8 + 3428: d4 04 04 r4 = r4 | r0 + 3431: d2 0b 03 r3 = r11 & r0 + 3434: db 34 0b r11 = r4 if r3 != 0 + 3437: 64 b3 r3 = r11 + 3439: 97 00 08 r0 = r0 << 0x8 + 3442: d4 03 04 r4 = r3 | r0 + 3445: d2 0b 03 r3 = r11 & r0 + 3448: db 34 0b r11 = r4 if r3 != 0 + 3451: 64 b3 r3 = r11 + 3453: 97 00 08 r0 = r0 << 0x8 + 3456: d4 03 04 r4 = r3 | r0 + 3459: d2 0b 03 r3 = r11 & r0 + 3462: db 34 0b r11 = r4 if r3 != 0 + 3465: 3a 03 00 00 02 r3 = u64 [0x20000] + 3470: 3a 04 08 00 02 r4 = u64 [0x20008] + 3475: 33 04 01 r4 = 0x1 + 3478: 97 44 20 r4 = r4 << 0x20 + 3481: 95 44 00 ff r4 = r4 + 0xffffffffffffff00 + 3485: ab 4b fc 01 jump 3993 if r11 != r4 + : @29 + 3489: 33 05 18 r5 = 0x18 + 3492: 33 00 00 00 06 r0 = 0x60000 + 3497: 83 00 01 i32 r0 = r0 + 0x1 + 3500: 97 00 0f r0 = r0 << 0xf + 3503: 95 00 ff r0 = r0 + 0xffffffffffffffff + 3506: 64 0b r11 = r0 + 3508: 3e 03 00 00 02 u64 [0x20000] = r3 + 3513: 3e 04 08 00 02 u64 [0x20008] = r4 + 3518: 64 b3 r3 = r11 + 3520: 33 00 ff 00 r0 = 0xff + 3524: d4 03 04 r4 = r3 | r0 + 3527: d2 0b 03 r3 = r11 & r0 + 3530: db 34 0b r11 = r4 if r3 != 0 + 3533: 64 b3 r3 = r11 + 3535: 97 00 08 r0 = r0 << 0x8 + 3538: d4 03 04 r4 = r3 | r0 + 3541: d2 0b 03 r3 = r11 & r0 + 3544: db 34 0b r11 = r4 if r3 != 0 + 3547: 64 b4 r4 = r11 + 3549: 97 00 08 r0 = r0 << 0x8 + 3552: d4 04 04 r4 = r4 | r0 + 3555: d2 0b 03 r3 = r11 & r0 + 3558: db 34 0b r11 = r4 if r3 != 0 + 3561: 64 b3 r3 = r11 + 3563: 97 00 08 r0 = r0 << 0x8 + 3566: d4 03 04 r4 = r3 | r0 + 3569: d2 0b 03 r3 = r11 & r0 + 3572: db 34 0b r11 = r4 if r3 != 0 + 3575: 64 b3 r3 = r11 + 3577: 97 00 08 r0 = r0 << 0x8 + 3580: d4 03 04 r4 = r3 | r0 + 3583: d2 0b 03 r3 = r11 & r0 + 3586: db 34 0b r11 = r4 if r3 != 0 + 3589: 64 b4 r4 = r11 + 3591: 97 00 08 r0 = r0 << 0x8 + 3594: d4 04 04 r4 = r4 | r0 + 3597: d2 0b 03 r3 = r11 & r0 + 3600: db 34 0b r11 = r4 if r3 != 0 + 3603: 64 b3 r3 = r11 + 3605: 97 00 08 r0 = r0 << 0x8 + 3608: d4 03 04 r4 = r3 | r0 + 3611: d2 0b 03 r3 = r11 & r0 + 3614: db 34 0b r11 = r4 if r3 != 0 + 3617: 64 b3 r3 = r11 + 3619: 97 00 08 r0 = r0 << 0x8 + 3622: d4 03 04 r4 = r3 | r0 + 3625: d2 0b 03 r3 = r11 & r0 + 3628: db 34 0b r11 = r4 if r3 != 0 + 3631: 3a 03 00 00 02 r3 = u64 [0x20000] + 3636: 3a 04 08 00 02 r4 = u64 [0x20008] + 3641: 33 04 00 00 ff 00 r4 = 0xff0000 + 3647: 83 44 01 i32 r4 = r4 + 0x1 + 3650: 97 44 10 r4 = r4 << 0x10 + 3653: 95 44 ff r4 = r4 + 0xffffffffffffffff + 3656: ab 4b 51 01 jump 3993 if r11 != r4 + : @30 + 3660: 33 05 19 r5 = 0x19 + 3663: 33 00 0f r0 = 0xf + 3666: 97 00 1f r0 = r0 << 0x1f + 3669: 95 00 ff r0 = r0 + 0xffffffffffffffff + 3672: 64 0b r11 = r0 + 3674: 3e 03 00 00 02 u64 [0x20000] = r3 + 3679: 3e 04 08 00 02 u64 [0x20008] = r4 + 3684: 64 b3 r3 = r11 + 3686: 33 00 ff 00 r0 = 0xff + 3690: d4 03 04 r4 = r3 | r0 + 3693: d2 0b 03 r3 = r11 & r0 + 3696: db 34 0b r11 = r4 if r3 != 0 + 3699: 64 b3 r3 = r11 + 3701: 97 00 08 r0 = r0 << 0x8 + 3704: d4 03 04 r4 = r3 | r0 + 3707: d2 0b 03 r3 = r11 & r0 + 3710: db 34 0b r11 = r4 if r3 != 0 + 3713: 64 b4 r4 = r11 + 3715: 97 00 08 r0 = r0 << 0x8 + 3718: d4 04 04 r4 = r4 | r0 + 3721: d2 0b 03 r3 = r11 & r0 + 3724: db 34 0b r11 = r4 if r3 != 0 + 3727: 64 b3 r3 = r11 + 3729: 97 00 08 r0 = r0 << 0x8 + 3732: d4 03 04 r4 = r3 | r0 + 3735: d2 0b 03 r3 = r11 & r0 + 3738: db 34 0b r11 = r4 if r3 != 0 + 3741: 64 b3 r3 = r11 + 3743: 97 00 08 r0 = r0 << 0x8 + 3746: d4 03 04 r4 = r3 | r0 + 3749: d2 0b 03 r3 = r11 & r0 + 3752: db 34 0b r11 = r4 if r3 != 0 + 3755: 64 b4 r4 = r11 + 3757: 97 00 08 r0 = r0 << 0x8 + 3760: d4 04 04 r4 = r4 | r0 + 3763: d2 0b 03 r3 = r11 & r0 + 3766: db 34 0b r11 = r4 if r3 != 0 + 3769: 64 b3 r3 = r11 + 3771: 97 00 08 r0 = r0 << 0x8 + 3774: d4 03 04 r4 = r3 | r0 + 3777: d2 0b 03 r3 = r11 & r0 + 3780: db 34 0b r11 = r4 if r3 != 0 + 3783: 64 b3 r3 = r11 + 3785: 97 00 08 r0 = r0 << 0x8 + 3788: d4 03 04 r4 = r3 | r0 + 3791: d2 0b 03 r3 = r11 & r0 + 3794: db 34 0b r11 = r4 if r3 != 0 + 3797: 3a 03 00 00 02 r3 = u64 [0x20000] + 3802: 3a 04 08 00 02 r4 = u64 [0x20008] + 3807: 33 04 01 r4 = 0x1 + 3810: 97 44 28 r4 = r4 << 0x28 + 3813: 95 44 ff r4 = r4 + 0xffffffffffffffff + 3816: ab 4b b1 00 jump 3993 if r11 != r4 + : @31 + 3820: 33 05 1a r5 = 0x1a + 3823: 33 00 00 e0 01 r0 = 0x1e000 + 3828: 83 00 01 i32 r0 = r0 + 0x1 + 3831: 97 00 13 r0 = r0 << 0x13 + 3834: 95 00 ff r0 = r0 + 0xffffffffffffffff + 3837: 64 0b r11 = r0 + 3839: 3e 03 00 00 02 u64 [0x20000] = r3 + 3844: 3e 04 08 00 02 u64 [0x20008] = r4 + 3849: 64 b3 r3 = r11 + 3851: 33 00 ff 00 r0 = 0xff + 3855: d4 03 04 r4 = r3 | r0 + 3858: d2 0b 03 r3 = r11 & r0 + 3861: db 34 0b r11 = r4 if r3 != 0 + 3864: 64 b3 r3 = r11 + 3866: 97 00 08 r0 = r0 << 0x8 + 3869: d4 03 04 r4 = r3 | r0 + 3872: d2 0b 03 r3 = r11 & r0 + 3875: db 34 0b r11 = r4 if r3 != 0 + 3878: 64 b4 r4 = r11 + 3880: 97 00 08 r0 = r0 << 0x8 + 3883: d4 04 04 r4 = r4 | r0 + 3886: d2 0b 03 r3 = r11 & r0 + 3889: db 34 0b r11 = r4 if r3 != 0 + 3892: 64 b3 r3 = r11 + 3894: 97 00 08 r0 = r0 << 0x8 + 3897: d4 03 04 r4 = r3 | r0 + 3900: d2 0b 03 r3 = r11 & r0 + 3903: db 34 0b r11 = r4 if r3 != 0 + 3906: 64 b3 r3 = r11 + 3908: 97 00 08 r0 = r0 << 0x8 + 3911: d4 03 04 r4 = r3 | r0 + 3914: d2 0b 03 r3 = r11 & r0 + 3917: db 34 0b r11 = r4 if r3 != 0 + 3920: 64 b4 r4 = r11 + 3922: 97 00 08 r0 = r0 << 0x8 + 3925: d4 04 04 r4 = r4 | r0 + 3928: d2 0b 03 r3 = r11 & r0 + 3931: db 34 0b r11 = r4 if r3 != 0 + 3934: 64 b3 r3 = r11 + 3936: 97 00 08 r0 = r0 << 0x8 + 3939: d4 03 04 r4 = r3 | r0 + 3942: d2 0b 03 r3 = r11 & r0 + 3945: db 34 0b r11 = r4 if r3 != 0 + 3948: 64 b3 r3 = r11 + 3950: 97 00 08 r0 = r0 << 0x8 + 3953: d4 03 04 r4 = r3 | r0 + 3956: d2 0b 03 r3 = r11 & r0 + 3959: db 34 0b r11 = r4 if r3 != 0 + 3962: 3a 03 00 00 02 r3 = u64 [0x20000] + 3967: 3a 04 08 00 02 r4 = u64 [0x20008] + 3972: 33 04 00 00 01 r4 = 0x10000 + 3977: 83 44 01 ff i32 r4 = r4 + 0xffffffffffffff01 + 3981: 97 44 18 r4 = r4 << 0x18 + 3984: 95 44 ff r4 = r4 + 0xffffffffffffffff + 3987: ab 4b 06 jump 3993 if r11 != r4 + : @32 + 3990: 52 05 04 jump 3994 if r5 != 0 + : @33 + 3993: 00 trap + : @34 + 3994: 28 66 f0 jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0xff (initially was 0x0) + * r4 = 0xff00ffffff (initially was 0x0) + * r5 = 0x1a (initially was 0x0) + * r10 = 0x2 (initially was 0x0) + * r11 = 0xff00ffffff (initially was 0x0) + +Final non-zero memory chunks: + * 0x20000-0x20001 (0x1 bytes) = [0xff] + * 0x20008-0x2000d (0x5 bytes) = [0xff, 0xff, 0xff, 0xff, 0xff] + * 0x20010-0x20011 (0x1 bytes) = [0xff] + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 8550 + + +## riscv_rv64uzbb_orn + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 08 00 00 01 ff r8 = 0xffffffffff010000 + 22: 83 88 00 ff i32 r8 = r8 + 0xffffffffffffff00 + 26: 33 09 00 10 0f 0f r9 = 0xf0f1000 + 32: 83 99 0f ff i32 r9 = r9 + 0xffffffffffffff0f + 36: e1 98 0b r11 = r8 | ~r9 + 39: 33 04 00 00 f1 r4 = 0xfffffffffff10000 + 44: 83 44 f0 i32 r4 = r4 + 0xfffffffffffffff0 + 47: ab 4b 4e 05 jump 1405 if r11 != r4 + : @2 + 51: 33 05 03 r5 = 0x3 + 54: 33 08 00 10 f0 0f r8 = 0xff01000 + 60: 83 88 f0 i32 r8 = r8 + 0xfffffffffffffff0 + 63: 33 09 00 f0 f0 f0 r9 = 0xfffffffff0f0f000 + 69: 83 99 f0 00 i32 r9 = r9 + 0xf0 + 73: e1 98 0b r11 = r8 | ~r9 + 76: 33 04 00 10 ff 0f r4 = 0xfff1000 + 82: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 85: ab 4b 28 05 jump 1405 if r11 != r4 + : @3 + 89: 33 05 04 r5 = 0x4 + 92: 33 08 00 00 ff 00 r8 = 0xff0000 + 98: 83 88 ff 00 i32 r8 = r8 + 0xff + 102: 33 09 00 10 0f 0f r9 = 0xf0f1000 + 108: 83 99 0f ff i32 r9 = r9 + 0xffffffffffffff0f + 112: e1 98 0b r11 = r8 | ~r9 + 115: 33 04 00 f0 ff f0 r4 = 0xfffffffff0fff000 + 121: 83 44 ff 00 i32 r4 = r4 + 0xff + 125: ab 4b 00 05 jump 1405 if r11 != r4 + : @4 + 129: 33 05 05 r5 = 0x5 + 132: 33 08 00 f0 0f f0 r8 = 0xfffffffff00ff000 + 138: 83 88 0f i32 r8 = r8 + 0xf + 141: 33 09 00 f0 f0 f0 r9 = 0xfffffffff0f0f000 + 147: 83 99 f0 00 i32 r9 = r9 + 0xf0 + 151: e1 98 0b r11 = r8 | ~r9 + 154: 33 04 00 00 10 ff r4 = 0xffffffffff100000 + 160: 83 44 0f ff i32 r4 = r4 + 0xffffffffffffff0f + 164: ab 4b d9 04 jump 1405 if r11 != r4 + : @5 + 168: 33 05 32 r5 = 0x32 + 171: 33 08 00 00 01 r8 = 0x10000 + 176: 83 88 01 ff i32 r8 = r8 + 0xffffffffffffff01 + 180: 97 88 10 r8 = r8 << 0x10 + 183: 95 88 01 ff r8 = r8 + 0xffffffffffffff01 + 187: 97 88 10 r8 = r8 << 0x10 + 190: 95 88 01 ff r8 = r8 + 0xffffffffffffff01 + 194: 97 88 0c r8 = r8 << 0xc + 197: 95 88 f0 r8 = r8 + 0xfffffffffffffff0 + 200: 33 09 00 10 0f ff r9 = 0xffffffffff0f1000 + 206: 83 99 0f ff i32 r9 = r9 + 0xffffffffffffff0f + 210: 97 99 0c r9 = r9 << 0xc + 213: 95 99 f1 00 r9 = r9 + 0xf1 + 217: 97 99 0c r9 = r9 << 0xc + 220: 95 99 0f ff r9 = r9 + 0xffffffffffffff0f + 224: 97 99 0c r9 = r9 << 0xc + 227: 95 99 f0 00 r9 = r9 + 0xf0 + 231: e1 98 0b r11 = r8 | ~r9 + 234: 33 04 00 00 01 r4 = 0x10000 + 239: 83 44 f1 i32 r4 = r4 + 0xfffffffffffffff1 + 242: 97 44 10 r4 = r4 << 0x10 + 245: 95 44 f1 r4 = r4 + 0xfffffffffffffff1 + 248: 97 44 10 r4 = r4 << 0x10 + 251: 95 44 f1 r4 = r4 + 0xfffffffffffffff1 + 254: 97 44 0c r4 = r4 << 0xc + 257: 95 44 ff r4 = r4 + 0xffffffffffffffff + 260: ab 4b 79 04 jump 1405 if r11 != r4 + : @6 + 264: 33 05 33 r5 = 0x33 + 267: 33 08 00 00 ff 00 r8 = 0xff0000 + 273: 83 88 ff 00 i32 r8 = r8 + 0xff + 277: 97 88 10 r8 = r8 << 0x10 + 280: 95 88 ff 00 r8 = r8 + 0xff + 284: 97 88 10 r8 = r8 << 0x10 + 287: 95 88 ff 00 r8 = r8 + 0xff + 291: 33 09 00 f0 f0 00 r9 = 0xf0f000 + 297: 83 99 f1 00 i32 r9 = r9 + 0xf1 + 301: 97 99 0c r9 = r9 << 0xc + 304: 95 99 0f ff r9 = r9 + 0xffffffffffffff0f + 308: 97 99 0c r9 = r9 << 0xc + 311: 95 99 f1 00 r9 = r9 + 0xf1 + 315: 97 99 0c r9 = r9 << 0xc + 318: 95 99 0f ff r9 = r9 + 0xffffffffffffff0f + 322: e1 98 0b r11 = r8 | ~r9 + 325: 33 04 00 00 f1 r4 = 0xfffffffffff10000 + 330: 83 44 f1 i32 r4 = r4 + 0xfffffffffffffff1 + 333: 97 44 10 r4 = r4 << 0x10 + 336: 95 44 f1 r4 = r4 + 0xfffffffffffffff1 + 339: 97 44 0c r4 = r4 << 0xc + 342: 95 44 ff r4 = r4 + 0xffffffffffffffff + 345: 97 44 0c r4 = r4 << 0xc + 348: 95 44 ff 00 r4 = r4 + 0xff + 352: ab 4b 1d 04 jump 1405 if r11 != r4 + : @7 + 356: 33 05 34 r5 = 0x34 + 359: 33 08 00 00 ff r8 = 0xffffffffffff0000 + 364: 83 88 ff 00 i32 r8 = r8 + 0xff + 368: 97 88 10 r8 = r8 << 0x10 + 371: 95 88 ff 00 r8 = r8 + 0xff + 375: 97 88 10 r8 = r8 << 0x10 + 378: 95 88 ff 00 r8 = r8 + 0xff + 382: 97 88 0c r8 = r8 << 0xc + 385: 95 88 0f r8 = r8 + 0xf + 388: 33 09 00 10 0f ff r9 = 0xffffffffff0f1000 + 394: 83 99 0f ff i32 r9 = r9 + 0xffffffffffffff0f + 398: 97 99 0c r9 = r9 << 0xc + 401: 95 99 f1 00 r9 = r9 + 0xf1 + 405: 97 99 0c r9 = r9 << 0xc + 408: 95 99 0f ff r9 = r9 + 0xffffffffffffff0f + 412: 97 99 0c r9 = r9 << 0xc + 415: 95 99 f0 00 r9 = r9 + 0xf0 + 419: e1 98 0b r11 = r8 | ~r9 + 422: 33 04 00 00 f1 r4 = 0xfffffffffff10000 + 427: 83 44 f1 i32 r4 = r4 + 0xfffffffffffffff1 + 430: 97 44 10 r4 = r4 << 0x10 + 433: 95 44 f1 r4 = r4 + 0xfffffffffffffff1 + 436: 97 44 14 r4 = r4 << 0x14 + 439: 95 44 0f ff r4 = r4 + 0xffffffffffffff0f + 443: ab 4b c2 03 jump 1405 if r11 != r4 + : @8 + 447: 33 05 06 r5 = 0x6 + 450: 33 08 00 00 01 ff r8 = 0xffffffffff010000 + 456: 83 88 00 ff i32 r8 = r8 + 0xffffffffffffff00 + 460: 33 09 00 10 0f 0f r9 = 0xf0f1000 + 466: 83 99 0f ff i32 r9 = r9 + 0xffffffffffffff0f + 470: e1 98 08 r8 = r8 | ~r9 + 473: 33 04 00 00 f1 r4 = 0xfffffffffff10000 + 478: 83 44 f0 i32 r4 = r4 + 0xfffffffffffffff0 + 481: ab 48 9c 03 jump 1405 if r8 != r4 + : @9 + 485: 33 05 07 r5 = 0x7 + 488: 33 08 00 00 01 ff r8 = 0xffffffffff010000 + 494: 83 88 00 ff i32 r8 = r8 + 0xffffffffffffff00 + 498: 33 09 00 10 0f 0f r9 = 0xf0f1000 + 504: 83 99 0f ff i32 r9 = r9 + 0xffffffffffffff0f + 508: e1 98 09 r9 = r8 | ~r9 + 511: 33 04 00 00 f1 r4 = 0xfffffffffff10000 + 516: 83 44 f0 i32 r4 = r4 + 0xfffffffffffffff0 + 519: ab 49 76 03 jump 1405 if r9 != r4 + : @10 + 523: 33 05 08 r5 = 0x8 + 526: 33 08 00 00 01 ff r8 = 0xffffffffff010000 + 532: 83 88 00 ff i32 r8 = r8 + 0xffffffffffffff00 + 536: e1 88 08 r8 = r8 | ~r8 + 539: 33 04 ff r4 = 0xffffffffffffffff + 542: ab 48 5f 03 jump 1405 if r8 != r4 + : @11 + 546: 33 05 09 r5 = 0x9 + 549: 33 0a r10 = 0 + 551: 01 fallthrough + : @12 + 552: 33 00 00 00 01 ff r0 = 0xffffffffff010000 + 558: 83 00 00 ff i32 r0 = r0 + 0xffffffffffffff00 + 562: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 568: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 572: e1 10 0b r11 = r0 | ~r1 + 575: 64 b3 r3 = r11 + 577: 95 aa 01 r10 = r10 + 0x1 + 580: 33 02 02 r2 = 0x2 + 583: ab 2a e1 jump 552 if r10 != r2 + : @13 + 586: 33 04 00 00 f1 r4 = 0xfffffffffff10000 + 591: 83 44 f0 i32 r4 = r4 + 0xfffffffffffffff0 + 594: ab 43 2b 03 jump 1405 if r3 != r4 + : @14 + 598: 33 05 0a r5 = 0xa + 601: 33 0a r10 = 0 + 603: 01 fallthrough + : @15 + 604: 33 00 00 10 f0 0f r0 = 0xff01000 + 610: 83 00 f0 i32 r0 = r0 + 0xfffffffffffffff0 + 613: 33 01 00 f0 f0 f0 r1 = 0xfffffffff0f0f000 + 619: 83 11 f0 00 i32 r1 = r1 + 0xf0 + 623: e1 10 0b r11 = r0 | ~r1 + 626: 64 b3 r3 = r11 + 628: 95 aa 01 r10 = r10 + 0x1 + 631: 33 02 02 r2 = 0x2 + 634: ab 2a e2 jump 604 if r10 != r2 + : @16 + 637: 33 04 00 10 ff 0f r4 = 0xfff1000 + 643: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 646: ab 43 f7 02 jump 1405 if r3 != r4 + : @17 + 650: 33 05 0b r5 = 0xb + 653: 33 0a r10 = 0 + 655: 01 fallthrough + : @18 + 656: 33 00 00 00 ff 00 r0 = 0xff0000 + 662: 83 00 ff 00 i32 r0 = r0 + 0xff + 666: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 672: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 676: e1 10 0b r11 = r0 | ~r1 + 679: 64 b3 r3 = r11 + 681: 95 aa 01 r10 = r10 + 0x1 + 684: 33 02 02 r2 = 0x2 + 687: ab 2a e1 jump 656 if r10 != r2 + : @19 + 690: 33 04 00 f0 ff f0 r4 = 0xfffffffff0fff000 + 696: 83 44 ff 00 i32 r4 = r4 + 0xff + 700: ab 43 c1 02 jump 1405 if r3 != r4 + : @20 + 704: 33 05 0c r5 = 0xc + 707: 33 0a r10 = 0 + 709: 01 fallthrough + : @21 + 710: 33 00 00 00 01 ff r0 = 0xffffffffff010000 + 716: 83 00 00 ff i32 r0 = r0 + 0xffffffffffffff00 + 720: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 726: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 730: e1 10 0b r11 = r0 | ~r1 + 733: 95 aa 01 r10 = r10 + 0x1 + 736: 33 02 02 r2 = 0x2 + 739: ab 2a e3 jump 710 if r10 != r2 + : @22 + 742: 33 04 00 00 f1 r4 = 0xfffffffffff10000 + 747: 83 44 f0 i32 r4 = r4 + 0xfffffffffffffff0 + 750: ab 4b 8f 02 jump 1405 if r11 != r4 + : @23 + 754: 33 05 0d r5 = 0xd + 757: 33 0a r10 = 0 + 759: 01 fallthrough + : @24 + 760: 33 00 00 10 f0 0f r0 = 0xff01000 + 766: 83 00 f0 i32 r0 = r0 + 0xfffffffffffffff0 + 769: 33 01 00 f0 f0 f0 r1 = 0xfffffffff0f0f000 + 775: 83 11 f0 00 i32 r1 = r1 + 0xf0 + 779: e1 10 0b r11 = r0 | ~r1 + 782: 95 aa 01 r10 = r10 + 0x1 + 785: 33 02 02 r2 = 0x2 + 788: ab 2a e4 jump 760 if r10 != r2 + : @25 + 791: 33 04 00 10 ff 0f r4 = 0xfff1000 + 797: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 800: ab 4b 5d 02 jump 1405 if r11 != r4 + : @26 + 804: 33 05 0e r5 = 0xe + 807: 33 0a r10 = 0 + 809: 01 fallthrough + : @27 + 810: 33 00 00 00 ff 00 r0 = 0xff0000 + 816: 83 00 ff 00 i32 r0 = r0 + 0xff + 820: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 826: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 830: e1 10 0b r11 = r0 | ~r1 + 833: 95 aa 01 r10 = r10 + 0x1 + 836: 33 02 02 r2 = 0x2 + 839: ab 2a e3 jump 810 if r10 != r2 + : @28 + 842: 33 04 00 f0 ff f0 r4 = 0xfffffffff0fff000 + 848: 83 44 ff 00 i32 r4 = r4 + 0xff + 852: ab 4b 29 02 jump 1405 if r11 != r4 + : @29 + 856: 33 05 0f r5 = 0xf + 859: 33 0a r10 = 0 + 861: 01 fallthrough + : @30 + 862: 33 00 00 00 01 ff r0 = 0xffffffffff010000 + 868: 83 00 00 ff i32 r0 = r0 + 0xffffffffffffff00 + 872: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 878: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 882: e1 10 0b r11 = r0 | ~r1 + 885: 95 aa 01 r10 = r10 + 0x1 + 888: 33 02 02 r2 = 0x2 + 891: ab 2a e3 jump 862 if r10 != r2 + : @31 + 894: 33 04 00 00 f1 r4 = 0xfffffffffff10000 + 899: 83 44 f0 i32 r4 = r4 + 0xfffffffffffffff0 + 902: ab 4b f7 01 jump 1405 if r11 != r4 + : @32 + 906: 33 05 10 r5 = 0x10 + 909: 33 0a r10 = 0 + 911: 01 fallthrough + : @33 + 912: 33 00 00 10 f0 0f r0 = 0xff01000 + 918: 83 00 f0 i32 r0 = r0 + 0xfffffffffffffff0 + 921: 33 01 00 f0 f0 f0 r1 = 0xfffffffff0f0f000 + 927: 83 11 f0 00 i32 r1 = r1 + 0xf0 + 931: e1 10 0b r11 = r0 | ~r1 + 934: 95 aa 01 r10 = r10 + 0x1 + 937: 33 02 02 r2 = 0x2 + 940: ab 2a e4 jump 912 if r10 != r2 + : @34 + 943: 33 04 00 10 ff 0f r4 = 0xfff1000 + 949: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 952: ab 4b c5 01 jump 1405 if r11 != r4 + : @35 + 956: 33 05 11 r5 = 0x11 + 959: 33 0a r10 = 0 + 961: 01 fallthrough + : @36 + 962: 33 00 00 00 ff 00 r0 = 0xff0000 + 968: 83 00 ff 00 i32 r0 = r0 + 0xff + 972: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 978: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 982: e1 10 0b r11 = r0 | ~r1 + 985: 95 aa 01 r10 = r10 + 0x1 + 988: 33 02 02 r2 = 0x2 + 991: ab 2a e3 jump 962 if r10 != r2 + : @37 + 994: 33 04 00 f0 ff f0 r4 = 0xfffffffff0fff000 + 1000: 83 44 ff 00 i32 r4 = r4 + 0xff + 1004: ab 4b 91 01 jump 1405 if r11 != r4 + : @38 + 1008: 33 05 12 r5 = 0x12 + 1011: 33 0a r10 = 0 + 1013: 01 fallthrough + : @39 + 1014: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 1020: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 1024: 33 00 00 00 01 ff r0 = 0xffffffffff010000 + 1030: 83 00 00 ff i32 r0 = r0 + 0xffffffffffffff00 + 1034: e1 10 0b r11 = r0 | ~r1 + 1037: 95 aa 01 r10 = r10 + 0x1 + 1040: 33 02 02 r2 = 0x2 + 1043: ab 2a e3 jump 1014 if r10 != r2 + : @40 + 1046: 33 04 00 00 f1 r4 = 0xfffffffffff10000 + 1051: 83 44 f0 i32 r4 = r4 + 0xfffffffffffffff0 + 1054: ab 4b 5f 01 jump 1405 if r11 != r4 + : @41 + 1058: 33 05 13 r5 = 0x13 + 1061: 33 0a r10 = 0 + 1063: 01 fallthrough + : @42 + 1064: 33 01 00 f0 f0 f0 r1 = 0xfffffffff0f0f000 + 1070: 83 11 f0 00 i32 r1 = r1 + 0xf0 + 1074: 33 00 00 10 f0 0f r0 = 0xff01000 + 1080: 83 00 f0 i32 r0 = r0 + 0xfffffffffffffff0 + 1083: e1 10 0b r11 = r0 | ~r1 + 1086: 95 aa 01 r10 = r10 + 0x1 + 1089: 33 02 02 r2 = 0x2 + 1092: ab 2a e4 jump 1064 if r10 != r2 + : @43 + 1095: 33 04 00 10 ff 0f r4 = 0xfff1000 + 1101: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 1104: ab 4b 2d 01 jump 1405 if r11 != r4 + : @44 + 1108: 33 05 14 r5 = 0x14 + 1111: 33 0a r10 = 0 + 1113: 01 fallthrough + : @45 + 1114: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 1120: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 1124: 33 00 00 00 ff 00 r0 = 0xff0000 + 1130: 83 00 ff 00 i32 r0 = r0 + 0xff + 1134: e1 10 0b r11 = r0 | ~r1 + 1137: 95 aa 01 r10 = r10 + 0x1 + 1140: 33 02 02 r2 = 0x2 + 1143: ab 2a e3 jump 1114 if r10 != r2 + : @46 + 1146: 33 04 00 f0 ff f0 r4 = 0xfffffffff0fff000 + 1152: 83 44 ff 00 i32 r4 = r4 + 0xff + 1156: ab 4b f9 00 jump 1405 if r11 != r4 + : @47 + 1160: 33 05 15 r5 = 0x15 + 1163: 33 0a r10 = 0 + 1165: 01 fallthrough + : @48 + 1166: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 1172: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 1176: 33 00 00 00 01 ff r0 = 0xffffffffff010000 + 1182: 83 00 00 ff i32 r0 = r0 + 0xffffffffffffff00 + 1186: e1 10 0b r11 = r0 | ~r1 + 1189: 95 aa 01 r10 = r10 + 0x1 + 1192: 33 02 02 r2 = 0x2 + 1195: ab 2a e3 jump 1166 if r10 != r2 + : @49 + 1198: 33 04 00 00 f1 r4 = 0xfffffffffff10000 + 1203: 83 44 f0 i32 r4 = r4 + 0xfffffffffffffff0 + 1206: ab 4b c7 00 jump 1405 if r11 != r4 + : @50 + 1210: 33 05 16 r5 = 0x16 + 1213: 33 0a r10 = 0 + 1215: 01 fallthrough + : @51 + 1216: 33 01 00 f0 f0 f0 r1 = 0xfffffffff0f0f000 + 1222: 83 11 f0 00 i32 r1 = r1 + 0xf0 + 1226: 33 00 00 10 f0 0f r0 = 0xff01000 + 1232: 83 00 f0 i32 r0 = r0 + 0xfffffffffffffff0 + 1235: e1 10 0b r11 = r0 | ~r1 + 1238: 95 aa 01 r10 = r10 + 0x1 + 1241: 33 02 02 r2 = 0x2 + 1244: ab 2a e4 jump 1216 if r10 != r2 + : @52 + 1247: 33 04 00 10 ff 0f r4 = 0xfff1000 + 1253: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 1256: ab 4b 95 00 jump 1405 if r11 != r4 + : @53 + 1260: 33 05 17 r5 = 0x17 + 1263: 33 0a r10 = 0 + 1265: 01 fallthrough + : @54 + 1266: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 1272: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 1276: 33 00 00 00 ff 00 r0 = 0xff0000 + 1282: 83 00 ff 00 i32 r0 = r0 + 0xff + 1286: e1 10 0b r11 = r0 | ~r1 + 1289: 95 aa 01 r10 = r10 + 0x1 + 1292: 33 02 02 r2 = 0x2 + 1295: ab 2a e3 jump 1266 if r10 != r2 + : @55 + 1298: 33 04 00 f0 ff f0 r4 = 0xfffffffff0fff000 + 1304: 83 44 ff 00 i32 r4 = r4 + 0xff + 1308: ab 4b 61 jump 1405 if r11 != r4 + : @56 + 1311: 33 05 18 r5 = 0x18 + 1314: 33 00 00 00 01 ff r0 = 0xffffffffff010000 + 1320: 83 00 00 ff i32 r0 = r0 + 0xffffffffffffff00 + 1324: 85 01 ff r1 = r0 ^ 0xffffffffffffffff + 1327: 33 04 00 00 ff 00 r4 = 0xff0000 + 1333: 83 44 ff 00 i32 r4 = r4 + 0xff + 1337: ab 41 44 jump 1405 if r1 != r4 + : @57 + 1340: 33 05 19 r5 = 0x19 + 1343: 33 00 00 00 ff 00 r0 = 0xff0000 + 1349: 83 00 ff 00 i32 r0 = r0 + 0xff + 1353: 33 01 ff r1 = 0xffffffffffffffff + 1356: 33 04 ff r4 = 0xffffffffffffffff + 1359: ab 41 2e jump 1405 if r1 != r4 + : @58 + 1362: 33 05 1a r5 = 0x1a + 1365: 33 00 ff r0 = 0xffffffffffffffff + 1368: 33 04 ff r4 = 0xffffffffffffffff + 1371: ab 40 22 jump 1405 if r0 != r4 + : @59 + 1374: 33 05 1b r5 = 0x1b + 1377: 33 00 00 10 11 11 r0 = 0x11111000 + 1383: 83 00 11 01 i32 r0 = r0 + 0x111 + 1387: 33 01 00 20 22 22 r1 = 0x22222000 + 1393: 83 11 22 02 i32 r1 = r1 + 0x222 + 1397: 33 04 r4 = 0 + 1399: 52 04 06 jump 1405 if r4 != 0 + : @60 + 1402: 52 05 04 jump 1406 if r5 != 0 + : @61 + 1405: 00 trap + : @62 + 1406: 28 82 fa jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r1 = 0x22222222 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0xfffffffff0fff0ff (initially was 0x0) + * r5 = 0x1b (initially was 0x0) + * r8 = 0xffffffffffffffff (initially was 0x0) + * r9 = 0xfffffffffff0fff0 (initially was 0x0) + * r10 = 0x2 (initially was 0x0) + * r11 = 0xfffffffff0fff0ff (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9497 + + +## riscv_rv64uzbb_rev8 + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 00 r0 = 0 + 18: 6f 0b r11 = reverse r0 + 20: 33 04 r4 = 0 + 22: ab 4b 9e 02 jump 692 if r11 != r4 + : @2 + 26: 33 05 03 r5 = 0x3 + 29: 33 00 01 r0 = 0x1 + 32: 6f 0b r11 = reverse r0 + 34: 33 04 01 r4 = 0x1 + 37: 97 44 38 r4 = r4 << 0x38 + 40: ab 4b 8c 02 jump 692 if r11 != r4 + : @3 + 44: 33 05 04 r5 = 0x4 + 47: 33 00 03 r0 = 0x3 + 50: 6f 0b r11 = reverse r0 + 52: 33 04 03 r4 = 0x3 + 55: 97 44 38 r4 = r4 << 0x38 + 58: ab 4b 7a 02 jump 692 if r11 != r4 + : @4 + 62: 33 05 05 r5 = 0x5 + 65: 33 00 00 80 r0 = 0xffffffffffff8000 + 69: 6f 0b r11 = reverse r0 + 71: 33 04 81 00 r4 = 0x81 + 75: 97 44 30 r4 = r4 << 0x30 + 78: 95 44 ff r4 = r4 + 0xffffffffffffffff + 81: ab 4b 63 02 jump 692 if r11 != r4 + : @5 + 85: 33 05 06 r5 = 0x6 + 88: 33 00 00 00 80 00 r0 = 0x800000 + 94: 6f 0b r11 = reverse r0 + 96: 33 04 01 r4 = 0x1 + 99: 97 44 2f r4 = r4 << 0x2f + 102: ab 4b 4e 02 jump 692 if r11 != r4 + : @6 + 106: 33 05 07 r5 = 0x7 + 109: 33 00 05 r0 = 0x5 + 112: 97 00 21 r0 = r0 << 0x21 + 115: 95 00 ff r0 = r0 + 0xffffffffffffffff + 118: 97 00 0f r0 = r0 << 0xf + 121: 6f 0b r11 = reverse r0 + 123: 33 04 81 00 r4 = 0x81 + 127: 97 44 20 r4 = r4 << 0x20 + 130: 95 44 ff r4 = r4 + 0xffffffffffffffff + 133: 97 44 10 r4 = r4 << 0x10 + 136: 95 44 00 04 r4 = r4 + 0x400 + 140: ab 4b 28 02 jump 692 if r11 != r4 + : @7 + 144: 33 05 08 r5 = 0x8 + 147: 33 00 00 80 00 r0 = 0x8000 + 152: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 155: 6f 0b r11 = reverse r0 + 157: 33 04 7f ff r4 = 0xffffffffffffff7f + 161: 97 44 30 r4 = r4 << 0x30 + 164: ab 4b 10 02 jump 692 if r11 != r4 + : @8 + 168: 33 05 09 r5 = 0x9 + 171: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 177: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 180: 6f 0b r11 = reverse r0 + 182: 33 04 7f ff r4 = 0xffffffffffffff7f + 186: 97 44 20 r4 = r4 << 0x20 + 189: ab 4b f7 01 jump 692 if r11 != r4 + : @9 + 193: 33 05 0a r5 = 0xa + 196: 33 00 00 00 08 r0 = 0x80000 + 201: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 204: 6f 0b r11 = reverse r0 + 206: 33 04 07 ff r4 = 0xffffffffffffff07 + 210: 97 44 28 r4 = r4 << 0x28 + 213: ab 4b df 01 jump 692 if r11 != r4 + : @10 + 217: 33 05 0b r5 = 0xb + 220: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 226: 6f 0b r11 = reverse r0 + 228: 33 04 81 00 r4 = 0x81 + 232: 97 44 20 r4 = r4 << 0x20 + 235: 95 44 ff r4 = r4 + 0xffffffffffffffff + 238: ab 4b c6 01 jump 692 if r11 != r4 + : @11 + 242: 33 05 0c r5 = 0xc + 245: 33 00 00 c0 ab 7f r0 = 0x7fabc000 + 251: 83 00 89 07 i32 r0 = r0 + 0x789 + 255: 97 00 0d r0 = r0 << 0xd + 258: 95 00 f5 01 r0 = r0 + 0x1f5 + 262: 97 00 0c r0 = r0 << 0xc + 265: 6f 0b r11 = reverse r0 + 267: 33 04 00 40 a0 00 r4 = 0xa04000 + 273: 83 44 25 fe i32 r4 = r4 + 0xfffffffffffffe25 + 277: 97 44 0c r4 = r4 << 0xc + 280: 95 44 eb 01 r4 = r4 + 0x1eb + 284: 97 44 13 r4 = r4 << 0x13 + 287: 95 44 00 ff r4 = r4 + 0xffffffffffffff00 + 291: ab 4b 91 01 jump 692 if r11 != r4 + : @12 + 295: 33 05 0d r5 = 0xd + 298: 33 00 ff r0 = 0xffffffffffffffff + 301: 97 00 3f r0 = r0 << 0x3f + 304: 6f 0b r11 = reverse r0 + 306: 33 04 80 00 r4 = 0x80 + 310: ab 4b 7e 01 jump 692 if r11 != r4 + : @13 + 314: 33 05 0e r5 = 0xe + 317: 33 00 0e r0 = 0xe + 320: 6f 0b r11 = reverse r0 + 322: 33 04 07 r4 = 0x7 + 325: 97 44 39 r4 = r4 << 0x39 + 328: ab 4b 6c 01 jump 692 if r11 != r4 + : @14 + 332: 33 05 0f r5 = 0xf + 335: 33 00 fd r0 = 0xfffffffffffffffd + 338: 97 00 20 r0 = r0 << 0x20 + 341: 95 00 19 r0 = r0 + 0x19 + 344: 97 00 11 r0 = r0 << 0x11 + 347: 95 00 01 04 r0 = r0 + 0x401 + 351: 97 00 0c r0 = r0 << 0xc + 354: 95 00 41 03 r0 = r0 + 0x341 + 358: 6f 0b r11 = reverse r0 + 360: 33 04 00 a0 08 02 r4 = 0x208a000 + 366: 83 44 01 fa i32 r4 = r4 + 0xfffffffffffffa01 + 370: 97 44 0d r4 = r4 << 0xd + 373: 95 44 03 r4 = r4 + 0x3 + 376: 97 44 18 r4 = r4 << 0x18 + 379: 95 44 a0 00 r4 = r4 + 0xa0 + 383: ab 4b 35 01 jump 692 if r11 != r4 + : @15 + 387: 33 05 10 r5 = 0x10 + 390: 33 00 0d r0 = 0xd + 393: 6f 00 r0 = reverse r0 + 395: 33 04 0d r4 = 0xd + 398: 97 44 38 r4 = r4 << 0x38 + 401: ab 40 23 01 jump 692 if r0 != r4 + : @16 + 405: 33 05 11 r5 = 0x11 + 408: 33 00 0b r0 = 0xb + 411: 6f 00 r0 = reverse r0 + 413: 33 04 0b r4 = 0xb + 416: 97 44 38 r4 = r4 << 0x38 + 419: ab 40 11 01 jump 692 if r0 != r4 + : @17 + 423: 33 05 12 r5 = 0x12 + 426: 33 0a r10 = 0 + 428: 01 fallthrough + : @18 + 429: 33 00 0d r0 = 0xd + 432: 6f 0b r11 = reverse r0 + 434: 64 b3 r3 = r11 + 436: 95 aa 01 r10 = r10 + 0x1 + 439: 33 02 02 r2 = 0x2 + 442: ab 2a f3 jump 429 if r10 != r2 + : @19 + 445: 33 04 0d r4 = 0xd + 448: 97 44 38 r4 = r4 << 0x38 + 451: ab 43 f1 00 jump 692 if r3 != r4 + : @20 + 455: 33 05 1d r5 = 0x1d + 458: 33 0a r10 = 0 + 460: 01 fallthrough + : @21 + 461: 33 00 13 r0 = 0x13 + 464: 6f 0b r11 = reverse r0 + 466: 64 b3 r3 = r11 + 468: 95 aa 01 r10 = r10 + 0x1 + 471: 33 02 02 r2 = 0x2 + 474: ab 2a f3 jump 461 if r10 != r2 + : @22 + 477: 33 04 13 r4 = 0x13 + 480: 97 44 38 r4 = r4 << 0x38 + 483: ab 43 d1 00 jump 692 if r3 != r4 + : @23 + 487: 33 05 14 r5 = 0x14 + 490: 33 0a r10 = 0 + 492: 01 fallthrough + : @24 + 493: 33 00 22 r0 = 0x22 + 496: 6f 0b r11 = reverse r0 + 498: 64 b3 r3 = r11 + 500: 95 aa 01 r10 = r10 + 0x1 + 503: 33 02 02 r2 = 0x2 + 506: ab 2a f3 jump 493 if r10 != r2 + : @25 + 509: 33 04 11 r4 = 0x11 + 512: 97 44 39 r4 = r4 << 0x39 + 515: ab 43 b1 00 jump 692 if r3 != r4 + : @26 + 519: 33 05 15 r5 = 0x15 + 522: 33 00 00 80 7f r0 = 0x7f8000 + 527: 6f 0b r11 = reverse r0 + 529: 33 04 00 80 00 r4 = 0x8000 + 534: 83 44 7f i32 r4 = r4 + 0x7f + 537: 97 44 28 r4 = r4 << 0x28 + 540: ab 4b 98 00 jump 692 if r11 != r4 + : @27 + 544: 33 05 16 r5 = 0x16 + 547: 33 00 00 80 80 00 r0 = 0x808000 + 553: 6f 0b r11 = reverse r0 + 555: 33 04 01 01 r4 = 0x101 + 559: 97 44 2f r4 = r4 << 0x2f + 562: ab 4b 82 00 jump 692 if r11 != r4 + : @28 + 566: 33 05 17 r5 = 0x17 + 569: 33 00 00 80 80 01 r0 = 0x1808000 + 575: 6f 0b r11 = reverse r0 + 577: 33 04 00 80 80 00 r4 = 0x808000 + 583: 83 44 01 i32 r4 = r4 + 0x1 + 586: 97 44 20 r4 = r4 << 0x20 + 589: ab 4b 67 jump 692 if r11 != r4 + : @29 + 592: 33 05 18 r5 = 0x18 + 595: 33 00 00 00 06 r0 = 0x60000 + 600: 83 00 01 i32 r0 = r0 + 0x1 + 603: 97 00 0f r0 = r0 << 0xf + 606: 95 00 ff r0 = r0 + 0xffffffffffffffff + 609: 6f 0b r11 = reverse r0 + 611: 33 04 7f ff r4 = 0xffffffffffffff7f + 615: 97 44 18 r4 = r4 << 0x18 + 618: 95 44 03 r4 = r4 + 0x3 + 621: 97 44 18 r4 = r4 << 0x18 + 624: ab 4b 44 jump 692 if r11 != r4 + : @30 + 627: 33 05 19 r5 = 0x19 + 630: 33 00 0f r0 = 0xf + 633: 97 00 1f r0 = r0 << 0x1f + 636: 95 00 ff r0 = r0 + 0xffffffffffffffff + 639: 6f 0b r11 = reverse r0 + 641: 33 04 00 80 r4 = 0xffffffffffff8000 + 645: 83 44 07 ff i32 r4 = r4 + 0xffffffffffffff07 + 649: 97 44 18 r4 = r4 << 0x18 + 652: ab 4b 28 jump 692 if r11 != r4 + : @31 + 655: 33 05 1a r5 = 0x1a + 658: 33 00 00 e0 01 r0 = 0x1e000 + 663: 83 00 01 i32 r0 = r0 + 0x1 + 666: 97 00 13 r0 = r0 << 0x13 + 669: 95 00 ff r0 = r0 + 0xffffffffffffffff + 672: 6f 0b r11 = reverse r0 + 674: 33 04 00 00 07 ff r4 = 0xffffffffff070000 + 680: 83 44 0f i32 r4 = r4 + 0xf + 683: 97 44 18 r4 = r4 << 0x18 + 686: ab 4b 06 jump 692 if r11 != r4 + : @32 + 689: 52 05 04 jump 693 if r5 != 0 + : @33 + 692: 00 trap + : @34 + 693: 28 4b fd jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0x2200000000000000 (initially was 0x0) + * r4 = 0xffff07000f000000 (initially was 0x0) + * r5 = 0x1a (initially was 0x0) + * r10 = 0x2 (initially was 0x0) + * r11 = 0xffff07000f000000 (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9766 + + +## riscv_rv64uzbb_rol + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 08 01 r8 = 0x1 + 19: 33 09 r9 = 0 + 21: dc 98 0b r11 = r8 < 9515 + + +## riscv_rv64uzbb_rolw + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 08 01 r8 = 0x1 + 19: 33 09 r9 = 0 + 21: dd 98 0b i32 r11 = r8 < 9516 + + +## riscv_rv64uzbb_ror + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 08 01 r8 = 0x1 + 19: 33 09 r9 = 0 + 21: de 98 0b r11 = r8 >>r r9 + 24: 33 04 01 r4 = 0x1 + 27: ab 4b 0b 05 jump 1318 if r11 != r4 + : @2 + 31: 33 05 03 r5 = 0x3 + 34: 33 08 01 r8 = 0x1 + 37: 33 09 01 r9 = 0x1 + 40: de 98 0b r11 = r8 >>r r9 + 43: 33 04 ff r4 = 0xffffffffffffffff + 46: 97 44 3f r4 = r4 << 0x3f + 49: ab 4b f5 04 jump 1318 if r11 != r4 + : @3 + 53: 33 05 04 r5 = 0x4 + 56: 33 08 01 r8 = 0x1 + 59: 33 09 07 r9 = 0x7 + 62: de 98 0b r11 = r8 >>r r9 + 65: 33 04 01 r4 = 0x1 + 68: 97 44 39 r4 = r4 << 0x39 + 71: ab 4b df 04 jump 1318 if r11 != r4 + : @4 + 75: 33 05 05 r5 = 0x5 + 78: 33 08 01 r8 = 0x1 + 81: 33 09 0e r9 = 0xe + 84: de 98 0b r11 = r8 >>r r9 + 87: 33 04 01 r4 = 0x1 + 90: 97 44 32 r4 = r4 << 0x32 + 93: ab 4b c9 04 jump 1318 if r11 != r4 + : @5 + 97: 33 05 06 r5 = 0x6 + 100: 33 08 01 r8 = 0x1 + 103: 33 09 1f r9 = 0x1f + 106: de 98 0b r11 = r8 >>r r9 + 109: 33 04 01 r4 = 0x1 + 112: 97 44 21 r4 = r4 << 0x21 + 115: ab 4b b3 04 jump 1318 if r11 != r4 + : @6 + 119: 33 05 07 r5 = 0x7 + 122: 33 08 ff r8 = 0xffffffffffffffff + 125: 33 09 r9 = 0 + 127: de 98 0b r11 = r8 >>r r9 + 130: 33 04 ff r4 = 0xffffffffffffffff + 133: ab 4b a1 04 jump 1318 if r11 != r4 + : @7 + 137: 33 05 08 r5 = 0x8 + 140: 33 08 ff r8 = 0xffffffffffffffff + 143: 33 09 01 r9 = 0x1 + 146: de 98 0b r11 = r8 >>r r9 + 149: 33 04 ff r4 = 0xffffffffffffffff + 152: ab 4b 8e 04 jump 1318 if r11 != r4 + : @8 + 156: 33 05 09 r5 = 0x9 + 159: 33 08 ff r8 = 0xffffffffffffffff + 162: 33 09 07 r9 = 0x7 + 165: de 98 0b r11 = r8 >>r r9 + 168: 33 04 ff r4 = 0xffffffffffffffff + 171: ab 4b 7b 04 jump 1318 if r11 != r4 + : @9 + 175: 33 05 0a r5 = 0xa + 178: 33 08 ff r8 = 0xffffffffffffffff + 181: 33 09 0e r9 = 0xe + 184: de 98 0b r11 = r8 >>r r9 + 187: 33 04 ff r4 = 0xffffffffffffffff + 190: ab 4b 68 04 jump 1318 if r11 != r4 + : @10 + 194: 33 05 0b r5 = 0xb + 197: 33 08 ff r8 = 0xffffffffffffffff + 200: 33 09 1f r9 = 0x1f + 203: de 98 0b r11 = r8 >>r r9 + 206: 33 04 ff r4 = 0xffffffffffffffff + 209: ab 4b 55 04 jump 1318 if r11 != r4 + : @11 + 213: 33 05 0c r5 = 0xc + 216: 33 08 00 20 21 21 r8 = 0x21212000 + 222: 83 88 21 01 i32 r8 = r8 + 0x121 + 226: 33 09 r9 = 0 + 228: de 98 0b r11 = r8 >>r r9 + 231: 33 04 00 20 21 21 r4 = 0x21212000 + 237: 83 44 21 01 i32 r4 = r4 + 0x121 + 241: ab 4b 35 04 jump 1318 if r11 != r4 + : @12 + 245: 33 05 0d r5 = 0xd + 248: 33 08 00 20 21 21 r8 = 0x21212000 + 254: 83 88 21 01 i32 r8 = r8 + 0x121 + 258: 33 09 01 r9 = 0x1 + 261: de 98 0b r11 = r8 >>r r9 + 264: 33 04 ff r4 = 0xffffffffffffffff + 267: 97 44 27 r4 = r4 << 0x27 + 270: 95 44 11 r4 = r4 + 0x11 + 273: 97 44 0c r4 = r4 << 0xc + 276: 95 44 09 f9 r4 = r4 + 0xfffffffffffff909 + 280: 97 44 0c r4 = r4 << 0xc + 283: 95 44 90 00 r4 = r4 + 0x90 + 287: ab 4b 07 04 jump 1318 if r11 != r4 + : @13 + 291: 33 05 0e r5 = 0xe + 294: 33 08 00 20 21 21 r8 = 0x21212000 + 300: 83 88 21 01 i32 r8 = r8 + 0x121 + 304: 33 09 07 r9 = 0x7 + 307: de 98 0b r11 = r8 >>r r9 + 310: 33 04 21 r4 = 0x21 + 313: 97 44 2b r4 = r4 << 0x2b + 316: 95 44 09 01 r4 = r4 + 0x109 + 320: 97 44 0e r4 = r4 << 0xe + 323: 95 44 42 02 r4 = r4 + 0x242 + 327: ab 4b df 03 jump 1318 if r11 != r4 + : @14 + 331: 33 05 0f r5 = 0xf + 334: 33 08 00 20 21 21 r8 = 0x21212000 + 340: 83 88 21 01 i32 r8 = r8 + 0x121 + 344: 33 09 0e r9 = 0xe + 347: de 98 0b r11 = r8 >>r r9 + 350: 33 04 00 e0 r4 = 0xffffffffffffe000 + 354: 83 44 21 01 i32 r4 = r4 + 0x121 + 358: 97 44 23 r4 = r4 << 0x23 + 361: 95 44 01 r4 = r4 + 0x1 + 364: 97 44 0f r4 = r4 << 0xf + 367: 95 44 84 04 r4 = r4 + 0x484 + 371: ab 4b b3 03 jump 1318 if r11 != r4 + : @15 + 375: 33 05 10 r5 = 0x10 + 378: 33 08 00 20 21 21 r8 = 0x21212000 + 384: 83 88 21 01 i32 r8 = r8 + 0x121 + 388: 33 09 1f r9 = 0x1f + 391: de 98 0b r11 = r8 >>r r9 + 394: 33 04 00 20 21 21 r4 = 0x21212000 + 400: 83 44 21 01 i32 r4 = r4 + 0x121 + 404: 97 44 21 r4 = r4 << 0x21 + 407: ab 4b 8f 03 jump 1318 if r11 != r4 + : @16 + 411: 33 05 11 r5 = 0x11 + 414: 33 08 00 20 21 21 r8 = 0x21212000 + 420: 83 88 21 01 i32 r8 = r8 + 0x121 + 424: 33 09 c0 r9 = 0xffffffffffffffc0 + 427: de 98 0b r11 = r8 >>r r9 + 430: 33 04 00 20 21 21 r4 = 0x21212000 + 436: 83 44 21 01 i32 r4 = r4 + 0x121 + 440: ab 4b 6e 03 jump 1318 if r11 != r4 + : @17 + 444: 33 05 12 r5 = 0x12 + 447: 33 08 00 20 21 21 r8 = 0x21212000 + 453: 83 88 21 01 i32 r8 = r8 + 0x121 + 457: 33 09 c1 r9 = 0xffffffffffffffc1 + 460: de 98 0b r11 = r8 >>r r9 + 463: 33 04 ff r4 = 0xffffffffffffffff + 466: 97 44 27 r4 = r4 << 0x27 + 469: 95 44 11 r4 = r4 + 0x11 + 472: 97 44 0c r4 = r4 << 0xc + 475: 95 44 09 f9 r4 = r4 + 0xfffffffffffff909 + 479: 97 44 0c r4 = r4 << 0xc + 482: 95 44 90 00 r4 = r4 + 0x90 + 486: ab 4b 40 03 jump 1318 if r11 != r4 + : @18 + 490: 33 05 13 r5 = 0x13 + 493: 33 08 00 20 21 21 r8 = 0x21212000 + 499: 83 88 21 01 i32 r8 = r8 + 0x121 + 503: 33 09 c7 r9 = 0xffffffffffffffc7 + 506: de 98 0b r11 = r8 >>r r9 + 509: 33 04 21 r4 = 0x21 + 512: 97 44 2b r4 = r4 << 0x2b + 515: 95 44 09 01 r4 = r4 + 0x109 + 519: 97 44 0e r4 = r4 << 0xe + 522: 95 44 42 02 r4 = r4 + 0x242 + 526: ab 4b 18 03 jump 1318 if r11 != r4 + : @19 + 530: 33 05 14 r5 = 0x14 + 533: 33 08 00 20 21 21 r8 = 0x21212000 + 539: 83 88 21 01 i32 r8 = r8 + 0x121 + 543: 33 09 ce r9 = 0xffffffffffffffce + 546: de 98 0b r11 = r8 >>r r9 + 549: 33 04 00 e0 r4 = 0xffffffffffffe000 + 553: 83 44 21 01 i32 r4 = r4 + 0x121 + 557: 97 44 23 r4 = r4 << 0x23 + 560: 95 44 01 r4 = r4 + 0x1 + 563: 97 44 0f r4 = r4 << 0xf + 566: 95 44 84 04 r4 = r4 + 0x484 + 570: ab 4b ec 02 jump 1318 if r11 != r4 + : @20 + 574: 33 05 15 r5 = 0x15 + 577: 33 08 00 20 21 21 r8 = 0x21212000 + 583: 83 88 21 01 i32 r8 = r8 + 0x121 + 587: 33 09 ff r9 = 0xffffffffffffffff + 590: de 98 0b r11 = r8 >>r r9 + 593: 33 04 00 40 42 42 r4 = 0x42424000 + 599: 83 44 42 02 i32 r4 = r4 + 0x242 + 603: ab 4b cb 02 jump 1318 if r11 != r4 + : @21 + 607: 33 05 32 r5 = 0x32 + 610: 33 08 01 r8 = 0x1 + 613: 33 09 3f r9 = 0x3f + 616: de 98 0b r11 = r8 >>r r9 + 619: 33 04 02 r4 = 0x2 + 622: ab 4b b8 02 jump 1318 if r11 != r4 + : @22 + 626: 33 05 33 r5 = 0x33 + 629: 33 08 ff r8 = 0xffffffffffffffff + 632: 33 09 27 r9 = 0x27 + 635: de 98 0b r11 = r8 >>r r9 + 638: 33 04 ff r4 = 0xffffffffffffffff + 641: ab 4b a5 02 jump 1318 if r11 != r4 + : @23 + 645: 33 05 34 r5 = 0x34 + 648: 33 08 00 20 21 21 r8 = 0x21212000 + 654: 83 88 21 01 i32 r8 = r8 + 0x121 + 658: 33 09 2b r9 = 0x2b + 661: de 98 0b r11 = r8 >>r r9 + 664: 33 04 00 20 21 21 r4 = 0x21212000 + 670: 83 44 21 01 i32 r4 = r4 + 0x121 + 674: 97 44 15 r4 = r4 << 0x15 + 677: ab 4b 81 02 jump 1318 if r11 != r4 + : @24 + 681: 33 05 16 r5 = 0x16 + 684: 33 08 01 r8 = 0x1 + 687: 33 09 07 r9 = 0x7 + 690: de 98 08 r8 = r8 >>r r9 + 693: 33 04 01 r4 = 0x1 + 696: 97 44 39 r4 = r4 << 0x39 + 699: ab 48 6b 02 jump 1318 if r8 != r4 + : @25 + 703: 33 05 17 r5 = 0x17 + 706: 33 08 01 r8 = 0x1 + 709: 33 09 0e r9 = 0xe + 712: de 98 09 r9 = r8 >>r r9 + 715: 33 04 01 r4 = 0x1 + 718: 97 44 32 r4 = r4 << 0x32 + 721: ab 49 55 02 jump 1318 if r9 != r4 + : @26 + 725: 33 05 18 r5 = 0x18 + 728: 33 08 03 r8 = 0x3 + 731: de 88 08 r8 = r8 >>r r8 + 734: 33 04 03 r4 = 0x3 + 737: 97 44 3d r4 = r4 << 0x3d + 740: ab 48 42 02 jump 1318 if r8 != r4 + : @27 + 744: 33 05 19 r5 = 0x19 + 747: 33 0a r10 = 0 + 749: 01 fallthrough + : @28 + 750: 33 00 01 r0 = 0x1 + 753: 33 01 07 r1 = 0x7 + 756: de 10 0b r11 = r0 >>r r1 + 759: 64 b3 r3 = r11 + 761: 95 aa 01 r10 = r10 + 0x1 + 764: 33 02 02 r2 = 0x2 + 767: ab 2a ef jump 750 if r10 != r2 + : @29 + 770: 33 04 01 r4 = 0x1 + 773: 97 44 39 r4 = r4 << 0x39 + 776: ab 43 1e 02 jump 1318 if r3 != r4 + : @30 + 780: 33 05 1a r5 = 0x1a + 783: 33 0a r10 = 0 + 785: 01 fallthrough + : @31 + 786: 33 00 01 r0 = 0x1 + 789: 33 01 0e r1 = 0xe + 792: de 10 0b r11 = r0 >>r r1 + 795: 64 b3 r3 = r11 + 797: 95 aa 01 r10 = r10 + 0x1 + 800: 33 02 02 r2 = 0x2 + 803: ab 2a ef jump 786 if r10 != r2 + : @32 + 806: 33 04 01 r4 = 0x1 + 809: 97 44 32 r4 = r4 << 0x32 + 812: ab 43 fa 01 jump 1318 if r3 != r4 + : @33 + 816: 33 05 1b r5 = 0x1b + 819: 33 0a r10 = 0 + 821: 01 fallthrough + : @34 + 822: 33 00 01 r0 = 0x1 + 825: 33 01 1f r1 = 0x1f + 828: de 10 0b r11 = r0 >>r r1 + 831: 64 b3 r3 = r11 + 833: 95 aa 01 r10 = r10 + 0x1 + 836: 33 02 02 r2 = 0x2 + 839: ab 2a ef jump 822 if r10 != r2 + : @35 + 842: 33 04 01 r4 = 0x1 + 845: 97 44 21 r4 = r4 << 0x21 + 848: ab 43 d6 01 jump 1318 if r3 != r4 + : @36 + 852: 33 05 1c r5 = 0x1c + 855: 33 0a r10 = 0 + 857: 01 fallthrough + : @37 + 858: 33 00 01 r0 = 0x1 + 861: 33 01 07 r1 = 0x7 + 864: de 10 0b r11 = r0 >>r r1 + 867: 95 aa 01 r10 = r10 + 0x1 + 870: 33 02 02 r2 = 0x2 + 873: ab 2a f1 jump 858 if r10 != r2 + : @38 + 876: 33 04 01 r4 = 0x1 + 879: 97 44 39 r4 = r4 << 0x39 + 882: ab 4b b4 01 jump 1318 if r11 != r4 + : @39 + 886: 33 05 1d r5 = 0x1d + 889: 33 0a r10 = 0 + 891: 01 fallthrough + : @40 + 892: 33 00 01 r0 = 0x1 + 895: 33 01 0e r1 = 0xe + 898: de 10 0b r11 = r0 >>r r1 + 901: 95 aa 01 r10 = r10 + 0x1 + 904: 33 02 02 r2 = 0x2 + 907: ab 2a f1 jump 892 if r10 != r2 + : @41 + 910: 33 04 01 r4 = 0x1 + 913: 97 44 32 r4 = r4 << 0x32 + 916: ab 4b 92 01 jump 1318 if r11 != r4 + : @42 + 920: 33 05 1e r5 = 0x1e + 923: 33 0a r10 = 0 + 925: 01 fallthrough + : @43 + 926: 33 00 01 r0 = 0x1 + 929: 33 01 1f r1 = 0x1f + 932: de 10 0b r11 = r0 >>r r1 + 935: 95 aa 01 r10 = r10 + 0x1 + 938: 33 02 02 r2 = 0x2 + 941: ab 2a f1 jump 926 if r10 != r2 + : @44 + 944: 33 04 01 r4 = 0x1 + 947: 97 44 21 r4 = r4 << 0x21 + 950: ab 4b 70 01 jump 1318 if r11 != r4 + : @45 + 954: 33 05 1f r5 = 0x1f + 957: 33 0a r10 = 0 + 959: 01 fallthrough + : @46 + 960: 33 00 01 r0 = 0x1 + 963: 33 01 07 r1 = 0x7 + 966: de 10 0b r11 = r0 >>r r1 + 969: 95 aa 01 r10 = r10 + 0x1 + 972: 33 02 02 r2 = 0x2 + 975: ab 2a f1 jump 960 if r10 != r2 + : @47 + 978: 33 04 01 r4 = 0x1 + 981: 97 44 39 r4 = r4 << 0x39 + 984: ab 4b 4e 01 jump 1318 if r11 != r4 + : @48 + 988: 33 05 20 r5 = 0x20 + 991: 33 0a r10 = 0 + 993: 01 fallthrough + : @49 + 994: 33 00 01 r0 = 0x1 + 997: 33 01 0e r1 = 0xe + 1000: de 10 0b r11 = r0 >>r r1 + 1003: 95 aa 01 r10 = r10 + 0x1 + 1006: 33 02 02 r2 = 0x2 + 1009: ab 2a f1 jump 994 if r10 != r2 + : @50 + 1012: 33 04 01 r4 = 0x1 + 1015: 97 44 32 r4 = r4 << 0x32 + 1018: ab 4b 2c 01 jump 1318 if r11 != r4 + : @51 + 1022: 33 05 21 r5 = 0x21 + 1025: 33 0a r10 = 0 + 1027: 01 fallthrough + : @52 + 1028: 33 00 01 r0 = 0x1 + 1031: 33 01 1f r1 = 0x1f + 1034: de 10 0b r11 = r0 >>r r1 + 1037: 95 aa 01 r10 = r10 + 0x1 + 1040: 33 02 02 r2 = 0x2 + 1043: ab 2a f1 jump 1028 if r10 != r2 + : @53 + 1046: 33 04 01 r4 = 0x1 + 1049: 97 44 21 r4 = r4 << 0x21 + 1052: ab 4b 0a 01 jump 1318 if r11 != r4 + : @54 + 1056: 33 05 22 r5 = 0x22 + 1059: 33 0a r10 = 0 + 1061: 01 fallthrough + : @55 + 1062: 33 01 07 r1 = 0x7 + 1065: 33 00 01 r0 = 0x1 + 1068: de 10 0b r11 = r0 >>r r1 + 1071: 95 aa 01 r10 = r10 + 0x1 + 1074: 33 02 02 r2 = 0x2 + 1077: ab 2a f1 jump 1062 if r10 != r2 + : @56 + 1080: 33 04 01 r4 = 0x1 + 1083: 97 44 39 r4 = r4 << 0x39 + 1086: ab 4b e8 00 jump 1318 if r11 != r4 + : @57 + 1090: 33 05 23 r5 = 0x23 + 1093: 33 0a r10 = 0 + 1095: 01 fallthrough + : @58 + 1096: 33 01 0e r1 = 0xe + 1099: 33 00 01 r0 = 0x1 + 1102: de 10 0b r11 = r0 >>r r1 + 1105: 95 aa 01 r10 = r10 + 0x1 + 1108: 33 02 02 r2 = 0x2 + 1111: ab 2a f1 jump 1096 if r10 != r2 + : @59 + 1114: 33 04 01 r4 = 0x1 + 1117: 97 44 32 r4 = r4 << 0x32 + 1120: ab 4b c6 00 jump 1318 if r11 != r4 + : @60 + 1124: 33 05 24 r5 = 0x24 + 1127: 33 0a r10 = 0 + 1129: 01 fallthrough + : @61 + 1130: 33 01 1f r1 = 0x1f + 1133: 33 00 01 r0 = 0x1 + 1136: de 10 0b r11 = r0 >>r r1 + 1139: 95 aa 01 r10 = r10 + 0x1 + 1142: 33 02 02 r2 = 0x2 + 1145: ab 2a f1 jump 1130 if r10 != r2 + : @62 + 1148: 33 04 01 r4 = 0x1 + 1151: 97 44 21 r4 = r4 << 0x21 + 1154: ab 4b a4 00 jump 1318 if r11 != r4 + : @63 + 1158: 33 05 25 r5 = 0x25 + 1161: 33 0a r10 = 0 + 1163: 01 fallthrough + : @64 + 1164: 33 01 07 r1 = 0x7 + 1167: 33 00 01 r0 = 0x1 + 1170: de 10 0b r11 = r0 >>r r1 + 1173: 95 aa 01 r10 = r10 + 0x1 + 1176: 33 02 02 r2 = 0x2 + 1179: ab 2a f1 jump 1164 if r10 != r2 + : @65 + 1182: 33 04 01 r4 = 0x1 + 1185: 97 44 39 r4 = r4 << 0x39 + 1188: ab 4b 82 00 jump 1318 if r11 != r4 + : @66 + 1192: 33 05 26 r5 = 0x26 + 1195: 33 0a r10 = 0 + 1197: 01 fallthrough + : @67 + 1198: 33 01 0e r1 = 0xe + 1201: 33 00 01 r0 = 0x1 + 1204: de 10 0b r11 = r0 >>r r1 + 1207: 95 aa 01 r10 = r10 + 0x1 + 1210: 33 02 02 r2 = 0x2 + 1213: ab 2a f1 jump 1198 if r10 != r2 + : @68 + 1216: 33 04 01 r4 = 0x1 + 1219: 97 44 32 r4 = r4 << 0x32 + 1222: ab 4b 60 jump 1318 if r11 != r4 + : @69 + 1225: 33 05 27 r5 = 0x27 + 1228: 33 0a r10 = 0 + 1230: 01 fallthrough + : @70 + 1231: 33 01 1f r1 = 0x1f + 1234: 33 00 01 r0 = 0x1 + 1237: de 10 0b r11 = r0 >>r r1 + 1240: 95 aa 01 r10 = r10 + 0x1 + 1243: 33 02 02 r2 = 0x2 + 1246: ab 2a f1 jump 1231 if r10 != r2 + : @71 + 1249: 33 04 01 r4 = 0x1 + 1252: 97 44 21 r4 = r4 << 0x21 + 1255: ab 4b 3f jump 1318 if r11 != r4 + : @72 + 1258: 33 05 28 r5 = 0x28 + 1261: 33 00 0f r0 = 0xf + 1264: 9f 01 r1 = 0 >>r r0 + 1266: 33 04 r4 = 0 + 1268: ab 41 32 jump 1318 if r1 != r4 + : @73 + 1271: 33 05 29 r5 = 0x29 + 1274: 33 00 20 r0 = 0x20 + 1277: 9e 01 r1 = r0 >>r 0 + 1279: 33 04 20 r4 = 0x20 + 1282: ab 41 24 jump 1318 if r1 != r4 + : @74 + 1285: 33 05 2a r5 = 0x2a + 1288: 33 00 r0 = 0 + 1290: 33 04 r4 = 0 + 1292: ab 40 1a jump 1318 if r0 != r4 + : @75 + 1295: 33 05 2b r5 = 0x2b + 1298: 33 00 00 04 r0 = 0x400 + 1302: 33 01 00 10 r1 = 0x1000 + 1306: 83 11 00 f8 i32 r1 = r1 + 0xfffffffffffff800 + 1310: 33 04 r4 = 0 + 1312: 52 04 06 jump 1318 if r4 != 0 + : @76 + 1315: 52 05 04 jump 1319 if r5 != 0 + : @77 + 1318: 00 trap + : @78 + 1319: 28 d9 fa jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r1 = 0x800 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0x200000000 (initially was 0x0) + * r5 = 0x2b (initially was 0x0) + * r8 = 0x6000000000000000 (initially was 0x0) + * r9 = 0x4000000000000 (initially was 0x0) + * r10 = 0x2 (initially was 0x0) + * r11 = 0x200000000 (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9488 + + +## riscv_rv64uzbb_rori + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 0a 01 r10 = 0x1 + 19: 9e ab r11 = r10 >>r 0 + 21: 33 04 01 r4 = 0x1 + 24: ab 4b 7e 02 jump 662 if r11 != r4 + : @2 + 28: 33 05 03 r5 = 0x3 + 31: 33 0a 01 r10 = 0x1 + 34: 9e ab 01 r11 = r10 >>r 0x1 + 37: 33 04 ff r4 = 0xffffffffffffffff + 40: 97 44 3f r4 = r4 << 0x3f + 43: ab 4b 6b 02 jump 662 if r11 != r4 + : @3 + 47: 33 05 04 r5 = 0x4 + 50: 33 0a 01 r10 = 0x1 + 53: 9e ab 07 r11 = r10 >>r 0x7 + 56: 33 04 01 r4 = 0x1 + 59: 97 44 39 r4 = r4 << 0x39 + 62: ab 4b 58 02 jump 662 if r11 != r4 + : @4 + 66: 33 05 05 r5 = 0x5 + 69: 33 0a 01 r10 = 0x1 + 72: 9e ab 0e r11 = r10 >>r 0xe + 75: 33 04 01 r4 = 0x1 + 78: 97 44 32 r4 = r4 << 0x32 + 81: ab 4b 45 02 jump 662 if r11 != r4 + : @5 + 85: 33 05 06 r5 = 0x6 + 88: 33 0a 01 r10 = 0x1 + 91: 9e ab 1f r11 = r10 >>r 0x1f + 94: 33 04 01 r4 = 0x1 + 97: 97 44 21 r4 = r4 << 0x21 + 100: ab 4b 32 02 jump 662 if r11 != r4 + : @6 + 104: 33 05 07 r5 = 0x7 + 107: 33 0a ff r10 = 0xffffffffffffffff + 110: 9e ab r11 = r10 >>r 0 + 112: 33 04 ff r4 = 0xffffffffffffffff + 115: ab 4b 23 02 jump 662 if r11 != r4 + : @7 + 119: 33 05 08 r5 = 0x8 + 122: 33 0a ff r10 = 0xffffffffffffffff + 125: 9e ab 01 r11 = r10 >>r 0x1 + 128: 33 04 ff r4 = 0xffffffffffffffff + 131: ab 4b 13 02 jump 662 if r11 != r4 + : @8 + 135: 33 05 09 r5 = 0x9 + 138: 33 0a ff r10 = 0xffffffffffffffff + 141: 9e ab 07 r11 = r10 >>r 0x7 + 144: 33 04 ff r4 = 0xffffffffffffffff + 147: ab 4b 03 02 jump 662 if r11 != r4 + : @9 + 151: 33 05 0a r5 = 0xa + 154: 33 0a ff r10 = 0xffffffffffffffff + 157: 9e ab 0e r11 = r10 >>r 0xe + 160: 33 04 ff r4 = 0xffffffffffffffff + 163: ab 4b f3 01 jump 662 if r11 != r4 + : @10 + 167: 33 05 0b r5 = 0xb + 170: 33 0a ff r10 = 0xffffffffffffffff + 173: 9e ab 1f r11 = r10 >>r 0x1f + 176: 33 04 ff r4 = 0xffffffffffffffff + 179: ab 4b e3 01 jump 662 if r11 != r4 + : @11 + 183: 33 05 0c r5 = 0xc + 186: 33 0a 00 20 21 21 r10 = 0x21212000 + 192: 83 aa 21 01 i32 r10 = r10 + 0x121 + 196: 9e ab r11 = r10 >>r 0 + 198: 33 04 00 20 21 21 r4 = 0x21212000 + 204: 83 44 21 01 i32 r4 = r4 + 0x121 + 208: ab 4b c6 01 jump 662 if r11 != r4 + : @12 + 212: 33 05 0d r5 = 0xd + 215: 33 0a 00 20 21 21 r10 = 0x21212000 + 221: 83 aa 21 01 i32 r10 = r10 + 0x121 + 225: 9e ab 01 r11 = r10 >>r 0x1 + 228: 33 04 ff r4 = 0xffffffffffffffff + 231: 97 44 27 r4 = r4 << 0x27 + 234: 95 44 11 r4 = r4 + 0x11 + 237: 97 44 0c r4 = r4 << 0xc + 240: 95 44 09 f9 r4 = r4 + 0xfffffffffffff909 + 244: 97 44 0c r4 = r4 << 0xc + 247: 95 44 90 00 r4 = r4 + 0x90 + 251: ab 4b 9b 01 jump 662 if r11 != r4 + : @13 + 255: 33 05 0e r5 = 0xe + 258: 33 0a 00 20 21 21 r10 = 0x21212000 + 264: 83 aa 21 01 i32 r10 = r10 + 0x121 + 268: 9e ab 07 r11 = r10 >>r 0x7 + 271: 33 04 21 r4 = 0x21 + 274: 97 44 2b r4 = r4 << 0x2b + 277: 95 44 09 01 r4 = r4 + 0x109 + 281: 97 44 0e r4 = r4 << 0xe + 284: 95 44 42 02 r4 = r4 + 0x242 + 288: ab 4b 76 01 jump 662 if r11 != r4 + : @14 + 292: 33 05 0f r5 = 0xf + 295: 33 0a 00 20 21 21 r10 = 0x21212000 + 301: 83 aa 21 01 i32 r10 = r10 + 0x121 + 305: 9e ab 0e r11 = r10 >>r 0xe + 308: 33 04 00 e0 r4 = 0xffffffffffffe000 + 312: 83 44 21 01 i32 r4 = r4 + 0x121 + 316: 97 44 23 r4 = r4 << 0x23 + 319: 95 44 01 r4 = r4 + 0x1 + 322: 97 44 0f r4 = r4 << 0xf + 325: 95 44 84 04 r4 = r4 + 0x484 + 329: ab 4b 4d 01 jump 662 if r11 != r4 + : @15 + 333: 33 05 10 r5 = 0x10 + 336: 33 0a 00 20 21 21 r10 = 0x21212000 + 342: 83 aa 21 01 i32 r10 = r10 + 0x121 + 346: 9e ab 1f r11 = r10 >>r 0x1f + 349: 33 04 00 20 21 21 r4 = 0x21212000 + 355: 83 44 21 01 i32 r4 = r4 + 0x121 + 359: 97 44 21 r4 = r4 << 0x21 + 362: ab 4b 2c 01 jump 662 if r11 != r4 + : @16 + 366: 33 05 11 r5 = 0x11 + 369: 33 0a 01 r10 = 0x1 + 372: 9e ab 3f r11 = r10 >>r 0x3f + 375: 33 04 02 r4 = 0x2 + 378: ab 4b 1c 01 jump 662 if r11 != r4 + : @17 + 382: 33 05 12 r5 = 0x12 + 385: 33 0a ff r10 = 0xffffffffffffffff + 388: 9e ab 27 r11 = r10 >>r 0x27 + 391: 33 04 ff r4 = 0xffffffffffffffff + 394: ab 4b 0c 01 jump 662 if r11 != r4 + : @18 + 398: 33 05 13 r5 = 0x13 + 401: 33 0a 00 20 21 21 r10 = 0x21212000 + 407: 83 aa 21 01 i32 r10 = r10 + 0x121 + 411: 9e ab 2b r11 = r10 >>r 0x2b + 414: 33 04 00 20 21 21 r4 = 0x21212000 + 420: 83 44 21 01 i32 r4 = r4 + 0x121 + 424: 97 44 15 r4 = r4 << 0x15 + 427: ab 4b eb 00 jump 662 if r11 != r4 + : @19 + 431: 33 05 14 r5 = 0x14 + 434: 33 08 01 r8 = 0x1 + 437: 9e 88 07 r8 = r8 >>r 0x7 + 440: 33 04 01 r4 = 0x1 + 443: 97 44 39 r4 = r4 << 0x39 + 446: ab 48 d8 00 jump 662 if r8 != r4 + : @20 + 450: 33 05 15 r5 = 0x15 + 453: 33 09 r9 = 0 + 455: 01 fallthrough + : @21 + 456: 33 00 01 r0 = 0x1 + 459: 9e 0b 07 r11 = r0 >>r 0x7 + 462: 64 b3 r3 = r11 + 464: 95 99 01 r9 = r9 + 0x1 + 467: 33 02 02 r2 = 0x2 + 470: ab 29 f2 jump 456 if r9 != r2 + : @22 + 473: 33 04 01 r4 = 0x1 + 476: 97 44 39 r4 = r4 << 0x39 + 479: ab 43 b7 00 jump 662 if r3 != r4 + : @23 + 483: 33 05 16 r5 = 0x16 + 486: 33 09 r9 = 0 + 488: 01 fallthrough + : @24 + 489: 33 00 01 r0 = 0x1 + 492: 9e 0b 0e r11 = r0 >>r 0xe + 495: 64 b3 r3 = r11 + 497: 95 99 01 r9 = r9 + 0x1 + 500: 33 02 02 r2 = 0x2 + 503: ab 29 f2 jump 489 if r9 != r2 + : @25 + 506: 33 04 01 r4 = 0x1 + 509: 97 44 32 r4 = r4 << 0x32 + 512: ab 43 96 00 jump 662 if r3 != r4 + : @26 + 516: 33 05 17 r5 = 0x17 + 519: 33 09 r9 = 0 + 521: 01 fallthrough + : @27 + 522: 33 00 01 r0 = 0x1 + 525: 9e 0b 1f r11 = r0 >>r 0x1f + 528: 64 b3 r3 = r11 + 530: 95 99 01 r9 = r9 + 0x1 + 533: 33 02 02 r2 = 0x2 + 536: ab 29 f2 jump 522 if r9 != r2 + : @28 + 539: 33 04 01 r4 = 0x1 + 542: 97 44 21 r4 = r4 << 0x21 + 545: ab 43 75 jump 662 if r3 != r4 + : @29 + 548: 33 05 18 r5 = 0x18 + 551: 33 09 r9 = 0 + 553: 01 fallthrough + : @30 + 554: 33 00 01 r0 = 0x1 + 557: 9e 0b 07 r11 = r0 >>r 0x7 + 560: 95 99 01 r9 = r9 + 0x1 + 563: 33 02 02 r2 = 0x2 + 566: ab 29 f4 jump 554 if r9 != r2 + : @31 + 569: 33 04 01 r4 = 0x1 + 572: 97 44 39 r4 = r4 << 0x39 + 575: ab 4b 57 jump 662 if r11 != r4 + : @32 + 578: 33 05 19 r5 = 0x19 + 581: 33 09 r9 = 0 + 583: 01 fallthrough + : @33 + 584: 33 00 01 r0 = 0x1 + 587: 9e 0b 0e r11 = r0 >>r 0xe + 590: 95 99 01 r9 = r9 + 0x1 + 593: 33 02 02 r2 = 0x2 + 596: ab 29 f4 jump 584 if r9 != r2 + : @34 + 599: 33 04 01 r4 = 0x1 + 602: 97 44 32 r4 = r4 << 0x32 + 605: ab 4b 39 jump 662 if r11 != r4 + : @35 + 608: 33 05 1a r5 = 0x1a + 611: 33 09 r9 = 0 + 613: 01 fallthrough + : @36 + 614: 33 00 01 r0 = 0x1 + 617: 9e 0b 1f r11 = r0 >>r 0x1f + 620: 95 99 01 r9 = r9 + 0x1 + 623: 33 02 02 r2 = 0x2 + 626: ab 29 f4 jump 614 if r9 != r2 + : @37 + 629: 33 04 01 r4 = 0x1 + 632: 97 44 21 r4 = r4 << 0x21 + 635: ab 4b 1b jump 662 if r11 != r4 + : @38 + 638: 33 05 1b r5 = 0x1b + 641: 33 00 r0 = 0 + 643: 33 04 r4 = 0 + 645: ab 40 11 jump 662 if r0 != r4 + : @39 + 648: 33 05 1c r5 = 0x1c + 651: 33 00 21 r0 = 0x21 + 654: 33 04 r4 = 0 + 656: 52 04 06 jump 662 if r4 != 0 + : @40 + 659: 52 05 04 jump 663 if r5 != 0 + : @41 + 662: 00 trap + : @42 + 663: 28 69 fd jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0x200000000 (initially was 0x0) + * r5 = 0x1c (initially was 0x0) + * r8 = 0x200000000000000 (initially was 0x0) + * r9 = 0x2 (initially was 0x0) + * r10 = 0x21212121 (initially was 0x0) + * r11 = 0x200000000 (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9758 + + +## riscv_rv64uzbb_roriw + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 0a 01 r10 = 0x1 + 19: a0 ab i32 r11 = r10 >>r 0 + 21: 33 04 01 r4 = 0x1 + 24: ab 4b 0f 02 jump 551 if r11 != r4 + : @2 + 28: 33 05 03 r5 = 0x3 + 31: 33 0a 01 r10 = 0x1 + 34: a0 ab 01 i32 r11 = r10 >>r 0x1 + 37: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 43: ab 4b fc 01 jump 551 if r11 != r4 + : @3 + 47: 33 05 04 r5 = 0x4 + 50: 33 0a 01 r10 = 0x1 + 53: a0 ab 07 i32 r11 = r10 >>r 0x7 + 56: 33 04 00 00 00 02 r4 = 0x2000000 + 62: ab 4b e9 01 jump 551 if r11 != r4 + : @4 + 66: 33 05 05 r5 = 0x5 + 69: 33 0a 01 r10 = 0x1 + 72: a0 ab 0e i32 r11 = r10 >>r 0xe + 75: 33 04 00 00 04 r4 = 0x40000 + 80: ab 4b d7 01 jump 551 if r11 != r4 + : @5 + 84: 33 05 06 r5 = 0x6 + 87: 33 0a 01 r10 = 0x1 + 90: a0 ab 1f i32 r11 = r10 >>r 0x1f + 93: 33 04 02 r4 = 0x2 + 96: ab 4b c7 01 jump 551 if r11 != r4 + : @6 + 100: 33 05 07 r5 = 0x7 + 103: 33 0a ff r10 = 0xffffffffffffffff + 106: a0 ab i32 r11 = r10 >>r 0 + 108: 33 04 ff r4 = 0xffffffffffffffff + 111: ab 4b b8 01 jump 551 if r11 != r4 + : @7 + 115: 33 05 08 r5 = 0x8 + 118: 33 0a ff r10 = 0xffffffffffffffff + 121: a0 ab 01 i32 r11 = r10 >>r 0x1 + 124: 33 04 ff r4 = 0xffffffffffffffff + 127: ab 4b a8 01 jump 551 if r11 != r4 + : @8 + 131: 33 05 09 r5 = 0x9 + 134: 33 0a ff r10 = 0xffffffffffffffff + 137: a0 ab 07 i32 r11 = r10 >>r 0x7 + 140: 33 04 ff r4 = 0xffffffffffffffff + 143: ab 4b 98 01 jump 551 if r11 != r4 + : @9 + 147: 33 05 0a r5 = 0xa + 150: 33 0a ff r10 = 0xffffffffffffffff + 153: a0 ab 0e i32 r11 = r10 >>r 0xe + 156: 33 04 ff r4 = 0xffffffffffffffff + 159: ab 4b 88 01 jump 551 if r11 != r4 + : @10 + 163: 33 05 0b r5 = 0xb + 166: 33 0a ff r10 = 0xffffffffffffffff + 169: a0 ab 1f i32 r11 = r10 >>r 0x1f + 172: 33 04 ff r4 = 0xffffffffffffffff + 175: ab 4b 78 01 jump 551 if r11 != r4 + : @11 + 179: 33 05 0c r5 = 0xc + 182: 33 0a 00 20 21 21 r10 = 0x21212000 + 188: 83 aa 21 01 i32 r10 = r10 + 0x121 + 192: a0 ab i32 r11 = r10 >>r 0 + 194: 33 04 00 20 21 21 r4 = 0x21212000 + 200: 83 44 21 01 i32 r4 = r4 + 0x121 + 204: ab 4b 5b 01 jump 551 if r11 != r4 + : @12 + 208: 33 05 0d r5 = 0xd + 211: 33 0a 00 20 21 21 r10 = 0x21212000 + 217: 83 aa 21 01 i32 r10 = r10 + 0x121 + 221: a0 ab 01 i32 r11 = r10 >>r 0x1 + 224: 33 04 00 90 90 90 r4 = 0xffffffff90909000 + 230: 83 44 90 00 i32 r4 = r4 + 0x90 + 234: ab 4b 3d 01 jump 551 if r11 != r4 + : @13 + 238: 33 05 0e r5 = 0xe + 241: 33 0a 00 20 21 21 r10 = 0x21212000 + 247: 83 aa 21 01 i32 r10 = r10 + 0x121 + 251: a0 ab 07 i32 r11 = r10 >>r 0x7 + 254: 33 04 00 40 42 42 r4 = 0x42424000 + 260: 83 44 42 02 i32 r4 = r4 + 0x242 + 264: ab 4b 1f 01 jump 551 if r11 != r4 + : @14 + 268: 33 05 0f r5 = 0xf + 271: 33 0a 00 20 21 21 r10 = 0x21212000 + 277: 83 aa 21 01 i32 r10 = r10 + 0x121 + 281: a0 ab 0e i32 r11 = r10 >>r 0xe + 284: 33 04 00 80 84 84 r4 = 0xffffffff84848000 + 290: 83 44 84 04 i32 r4 = r4 + 0x484 + 294: ab 4b 01 01 jump 551 if r11 != r4 + : @15 + 298: 33 05 10 r5 = 0x10 + 301: 33 0a 00 20 21 21 r10 = 0x21212000 + 307: 83 aa 21 01 i32 r10 = r10 + 0x121 + 311: a0 ab 1f i32 r11 = r10 >>r 0x1f + 314: 33 04 00 40 42 42 r4 = 0x42424000 + 320: 83 44 42 02 i32 r4 = r4 + 0x242 + 324: ab 4b e3 00 jump 551 if r11 != r4 + : @16 + 328: 33 05 14 r5 = 0x14 + 331: 33 08 01 r8 = 0x1 + 334: a0 88 07 i32 r8 = r8 >>r 0x7 + 337: 33 04 00 00 00 02 r4 = 0x2000000 + 343: ab 48 d0 00 jump 551 if r8 != r4 + : @17 + 347: 33 05 15 r5 = 0x15 + 350: 33 09 r9 = 0 + 352: 01 fallthrough + : @18 + 353: 33 00 01 r0 = 0x1 + 356: a0 0b 07 i32 r11 = r0 >>r 0x7 + 359: 64 b3 r3 = r11 + 361: 95 99 01 r9 = r9 + 0x1 + 364: 33 02 02 r2 = 0x2 + 367: ab 29 f2 jump 353 if r9 != r2 + : @19 + 370: 33 04 00 00 00 02 r4 = 0x2000000 + 376: ab 43 af 00 jump 551 if r3 != r4 + : @20 + 380: 33 05 16 r5 = 0x16 + 383: 33 09 r9 = 0 + 385: 01 fallthrough + : @21 + 386: 33 00 01 r0 = 0x1 + 389: a0 0b 0e i32 r11 = r0 >>r 0xe + 392: 64 b3 r3 = r11 + 394: 95 99 01 r9 = r9 + 0x1 + 397: 33 02 02 r2 = 0x2 + 400: ab 29 f2 jump 386 if r9 != r2 + : @22 + 403: 33 04 00 00 04 r4 = 0x40000 + 408: ab 43 8f 00 jump 551 if r3 != r4 + : @23 + 412: 33 05 17 r5 = 0x17 + 415: 33 09 r9 = 0 + 417: 01 fallthrough + : @24 + 418: 33 00 01 r0 = 0x1 + 421: a0 0b 1f i32 r11 = r0 >>r 0x1f + 424: 64 b3 r3 = r11 + 426: 95 99 01 r9 = r9 + 0x1 + 429: 33 02 02 r2 = 0x2 + 432: ab 29 f2 jump 418 if r9 != r2 + : @25 + 435: 33 04 02 r4 = 0x2 + 438: ab 43 71 jump 551 if r3 != r4 + : @26 + 441: 33 05 18 r5 = 0x18 + 444: 33 09 r9 = 0 + 446: 01 fallthrough + : @27 + 447: 33 00 01 r0 = 0x1 + 450: a0 0b 07 i32 r11 = r0 >>r 0x7 + 453: 95 99 01 r9 = r9 + 0x1 + 456: 33 02 02 r2 = 0x2 + 459: ab 29 f4 jump 447 if r9 != r2 + : @28 + 462: 33 04 00 00 00 02 r4 = 0x2000000 + 468: ab 4b 53 jump 551 if r11 != r4 + : @29 + 471: 33 05 19 r5 = 0x19 + 474: 33 09 r9 = 0 + 476: 01 fallthrough + : @30 + 477: 33 00 01 r0 = 0x1 + 480: a0 0b 0e i32 r11 = r0 >>r 0xe + 483: 95 99 01 r9 = r9 + 0x1 + 486: 33 02 02 r2 = 0x2 + 489: ab 29 f4 jump 477 if r9 != r2 + : @31 + 492: 33 04 00 00 04 r4 = 0x40000 + 497: ab 4b 36 jump 551 if r11 != r4 + : @32 + 500: 33 05 1a r5 = 0x1a + 503: 33 09 r9 = 0 + 505: 01 fallthrough + : @33 + 506: 33 00 01 r0 = 0x1 + 509: a0 0b 1f i32 r11 = r0 >>r 0x1f + 512: 95 99 01 r9 = r9 + 0x1 + 515: 33 02 02 r2 = 0x2 + 518: ab 29 f4 jump 506 if r9 != r2 + : @34 + 521: 33 04 02 r4 = 0x2 + 524: ab 4b 1b jump 551 if r11 != r4 + : @35 + 527: 33 05 1b r5 = 0x1b + 530: 33 00 r0 = 0 + 532: 33 04 r4 = 0 + 534: ab 40 11 jump 551 if r0 != r4 + : @36 + 537: 33 05 1c r5 = 0x1c + 540: 33 00 21 r0 = 0x21 + 543: 33 04 r4 = 0 + 545: 52 04 06 jump 551 if r4 != 0 + : @37 + 548: 52 05 04 jump 552 if r5 != 0 + : @38 + 551: 00 trap + : @39 + 552: 28 d8 fd jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0x2 (initially was 0x0) + * r5 = 0x1c (initially was 0x0) + * r8 = 0x2000000 (initially was 0x0) + * r9 = 0x2 (initially was 0x0) + * r10 = 0x21212121 (initially was 0x0) + * r11 = 0x2 (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9800 + + +## riscv_rv64uzbb_rorw + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 08 01 r8 = 0x1 + 19: 33 09 r9 = 0 + 21: df 98 0b i32 r11 = r8 >>r r9 + 24: 33 04 01 r4 = 0x1 + 27: ab 4b 66 04 jump 1153 if r11 != r4 + : @2 + 31: 33 05 03 r5 = 0x3 + 34: 33 08 01 r8 = 0x1 + 37: 33 09 01 r9 = 0x1 + 40: df 98 0b i32 r11 = r8 >>r r9 + 43: 33 04 00 00 00 80 r4 = 0xffffffff80000000 + 49: ab 4b 50 04 jump 1153 if r11 != r4 + : @3 + 53: 33 05 04 r5 = 0x4 + 56: 33 08 01 r8 = 0x1 + 59: 33 09 07 r9 = 0x7 + 62: df 98 0b i32 r11 = r8 >>r r9 + 65: 33 04 00 00 00 02 r4 = 0x2000000 + 71: ab 4b 3a 04 jump 1153 if r11 != r4 + : @4 + 75: 33 05 05 r5 = 0x5 + 78: 33 08 01 r8 = 0x1 + 81: 33 09 0e r9 = 0xe + 84: df 98 0b i32 r11 = r8 >>r r9 + 87: 33 04 00 00 04 r4 = 0x40000 + 92: ab 4b 25 04 jump 1153 if r11 != r4 + : @5 + 96: 33 05 06 r5 = 0x6 + 99: 33 08 01 r8 = 0x1 + 102: 33 09 1f r9 = 0x1f + 105: df 98 0b i32 r11 = r8 >>r r9 + 108: 33 04 02 r4 = 0x2 + 111: ab 4b 12 04 jump 1153 if r11 != r4 + : @6 + 115: 33 05 07 r5 = 0x7 + 118: 33 08 ff r8 = 0xffffffffffffffff + 121: 33 09 r9 = 0 + 123: df 98 0b i32 r11 = r8 >>r r9 + 126: 33 04 ff r4 = 0xffffffffffffffff + 129: ab 4b 00 04 jump 1153 if r11 != r4 + : @7 + 133: 33 05 08 r5 = 0x8 + 136: 33 08 ff r8 = 0xffffffffffffffff + 139: 33 09 01 r9 = 0x1 + 142: df 98 0b i32 r11 = r8 >>r r9 + 145: 33 04 ff r4 = 0xffffffffffffffff + 148: ab 4b ed 03 jump 1153 if r11 != r4 + : @8 + 152: 33 05 09 r5 = 0x9 + 155: 33 08 ff r8 = 0xffffffffffffffff + 158: 33 09 07 r9 = 0x7 + 161: df 98 0b i32 r11 = r8 >>r r9 + 164: 33 04 ff r4 = 0xffffffffffffffff + 167: ab 4b da 03 jump 1153 if r11 != r4 + : @9 + 171: 33 05 0a r5 = 0xa + 174: 33 08 ff r8 = 0xffffffffffffffff + 177: 33 09 0e r9 = 0xe + 180: df 98 0b i32 r11 = r8 >>r r9 + 183: 33 04 ff r4 = 0xffffffffffffffff + 186: ab 4b c7 03 jump 1153 if r11 != r4 + : @10 + 190: 33 05 0b r5 = 0xb + 193: 33 08 ff r8 = 0xffffffffffffffff + 196: 33 09 1f r9 = 0x1f + 199: df 98 0b i32 r11 = r8 >>r r9 + 202: 33 04 ff r4 = 0xffffffffffffffff + 205: ab 4b b4 03 jump 1153 if r11 != r4 + : @11 + 209: 33 05 0c r5 = 0xc + 212: 33 08 00 20 21 21 r8 = 0x21212000 + 218: 83 88 21 01 i32 r8 = r8 + 0x121 + 222: 33 09 r9 = 0 + 224: df 98 0b i32 r11 = r8 >>r r9 + 227: 33 04 00 20 21 21 r4 = 0x21212000 + 233: 83 44 21 01 i32 r4 = r4 + 0x121 + 237: ab 4b 94 03 jump 1153 if r11 != r4 + : @12 + 241: 33 05 0d r5 = 0xd + 244: 33 08 00 20 21 21 r8 = 0x21212000 + 250: 83 88 21 01 i32 r8 = r8 + 0x121 + 254: 33 09 01 r9 = 0x1 + 257: df 98 0b i32 r11 = r8 >>r r9 + 260: 33 04 00 90 90 90 r4 = 0xffffffff90909000 + 266: 83 44 90 00 i32 r4 = r4 + 0x90 + 270: ab 4b 73 03 jump 1153 if r11 != r4 + : @13 + 274: 33 05 0e r5 = 0xe + 277: 33 08 00 20 21 21 r8 = 0x21212000 + 283: 83 88 21 01 i32 r8 = r8 + 0x121 + 287: 33 09 07 r9 = 0x7 + 290: df 98 0b i32 r11 = r8 >>r r9 + 293: 33 04 00 40 42 42 r4 = 0x42424000 + 299: 83 44 42 02 i32 r4 = r4 + 0x242 + 303: ab 4b 52 03 jump 1153 if r11 != r4 + : @14 + 307: 33 05 0f r5 = 0xf + 310: 33 08 00 20 21 21 r8 = 0x21212000 + 316: 83 88 21 01 i32 r8 = r8 + 0x121 + 320: 33 09 0e r9 = 0xe + 323: df 98 0b i32 r11 = r8 >>r r9 + 326: 33 04 00 80 84 84 r4 = 0xffffffff84848000 + 332: 83 44 84 04 i32 r4 = r4 + 0x484 + 336: ab 4b 31 03 jump 1153 if r11 != r4 + : @15 + 340: 33 05 10 r5 = 0x10 + 343: 33 08 00 20 21 21 r8 = 0x21212000 + 349: 83 88 21 01 i32 r8 = r8 + 0x121 + 353: 33 09 1f r9 = 0x1f + 356: df 98 0b i32 r11 = r8 >>r r9 + 359: 33 04 00 40 42 42 r4 = 0x42424000 + 365: 83 44 42 02 i32 r4 = r4 + 0x242 + 369: ab 4b 10 03 jump 1153 if r11 != r4 + : @16 + 373: 33 05 11 r5 = 0x11 + 376: 33 08 00 20 21 21 r8 = 0x21212000 + 382: 83 88 21 01 i32 r8 = r8 + 0x121 + 386: 33 09 c0 r9 = 0xffffffffffffffc0 + 389: df 98 0b i32 r11 = r8 >>r r9 + 392: 33 04 00 20 21 21 r4 = 0x21212000 + 398: 83 44 21 01 i32 r4 = r4 + 0x121 + 402: ab 4b ef 02 jump 1153 if r11 != r4 + : @17 + 406: 33 05 12 r5 = 0x12 + 409: 33 08 00 20 21 21 r8 = 0x21212000 + 415: 83 88 21 01 i32 r8 = r8 + 0x121 + 419: 33 09 c1 r9 = 0xffffffffffffffc1 + 422: df 98 0b i32 r11 = r8 >>r r9 + 425: 33 04 00 90 90 90 r4 = 0xffffffff90909000 + 431: 83 44 90 00 i32 r4 = r4 + 0x90 + 435: ab 4b ce 02 jump 1153 if r11 != r4 + : @18 + 439: 33 05 13 r5 = 0x13 + 442: 33 08 00 20 21 21 r8 = 0x21212000 + 448: 83 88 21 01 i32 r8 = r8 + 0x121 + 452: 33 09 c7 r9 = 0xffffffffffffffc7 + 455: df 98 0b i32 r11 = r8 >>r r9 + 458: 33 04 00 40 42 42 r4 = 0x42424000 + 464: 83 44 42 02 i32 r4 = r4 + 0x242 + 468: ab 4b ad 02 jump 1153 if r11 != r4 + : @19 + 472: 33 05 14 r5 = 0x14 + 475: 33 08 00 20 21 21 r8 = 0x21212000 + 481: 83 88 21 01 i32 r8 = r8 + 0x121 + 485: 33 09 ce r9 = 0xffffffffffffffce + 488: df 98 0b i32 r11 = r8 >>r r9 + 491: 33 04 00 80 84 84 r4 = 0xffffffff84848000 + 497: 83 44 84 04 i32 r4 = r4 + 0x484 + 501: ab 4b 8c 02 jump 1153 if r11 != r4 + : @20 + 505: 33 05 15 r5 = 0x15 + 508: 33 08 00 20 21 21 r8 = 0x21212000 + 514: 83 88 21 01 i32 r8 = r8 + 0x121 + 518: 33 09 ff r9 = 0xffffffffffffffff + 521: df 98 0b i32 r11 = r8 >>r r9 + 524: 33 04 00 40 42 42 r4 = 0x42424000 + 530: 83 44 42 02 i32 r4 = r4 + 0x242 + 534: ab 4b 6b 02 jump 1153 if r11 != r4 + : @21 + 538: 33 05 16 r5 = 0x16 + 541: 33 08 01 r8 = 0x1 + 544: 33 09 07 r9 = 0x7 + 547: df 98 08 i32 r8 = r8 >>r r9 + 550: 33 04 00 00 00 02 r4 = 0x2000000 + 556: ab 48 55 02 jump 1153 if r8 != r4 + : @22 + 560: 33 05 17 r5 = 0x17 + 563: 33 08 01 r8 = 0x1 + 566: 33 09 0e r9 = 0xe + 569: df 98 09 i32 r9 = r8 >>r r9 + 572: 33 04 00 00 04 r4 = 0x40000 + 577: ab 49 40 02 jump 1153 if r9 != r4 + : @23 + 581: 33 05 18 r5 = 0x18 + 584: 33 08 03 r8 = 0x3 + 587: df 88 08 i32 r8 = r8 >>r r8 + 590: 33 04 00 00 00 60 r4 = 0x60000000 + 596: ab 48 2d 02 jump 1153 if r8 != r4 + : @24 + 600: 33 05 19 r5 = 0x19 + 603: 33 0a r10 = 0 + 605: 01 fallthrough + : @25 + 606: 33 00 01 r0 = 0x1 + 609: 33 01 07 r1 = 0x7 + 612: df 10 0b i32 r11 = r0 >>r r1 + 615: 64 b3 r3 = r11 + 617: 95 aa 01 r10 = r10 + 0x1 + 620: 33 02 02 r2 = 0x2 + 623: ab 2a ef jump 606 if r10 != r2 + : @26 + 626: 33 04 00 00 00 02 r4 = 0x2000000 + 632: ab 43 09 02 jump 1153 if r3 != r4 + : @27 + 636: 33 05 1a r5 = 0x1a + 639: 33 0a r10 = 0 + 641: 01 fallthrough + : @28 + 642: 33 00 01 r0 = 0x1 + 645: 33 01 0e r1 = 0xe + 648: df 10 0b i32 r11 = r0 >>r r1 + 651: 64 b3 r3 = r11 + 653: 95 aa 01 r10 = r10 + 0x1 + 656: 33 02 02 r2 = 0x2 + 659: ab 2a ef jump 642 if r10 != r2 + : @29 + 662: 33 04 00 00 04 r4 = 0x40000 + 667: ab 43 e6 01 jump 1153 if r3 != r4 + : @30 + 671: 33 05 1b r5 = 0x1b + 674: 33 0a r10 = 0 + 676: 01 fallthrough + : @31 + 677: 33 00 01 r0 = 0x1 + 680: 33 01 1f r1 = 0x1f + 683: df 10 0b i32 r11 = r0 >>r r1 + 686: 64 b3 r3 = r11 + 688: 95 aa 01 r10 = r10 + 0x1 + 691: 33 02 02 r2 = 0x2 + 694: ab 2a ef jump 677 if r10 != r2 + : @32 + 697: 33 04 02 r4 = 0x2 + 700: ab 43 c5 01 jump 1153 if r3 != r4 + : @33 + 704: 33 05 1c r5 = 0x1c + 707: 33 0a r10 = 0 + 709: 01 fallthrough + : @34 + 710: 33 00 01 r0 = 0x1 + 713: 33 01 07 r1 = 0x7 + 716: df 10 0b i32 r11 = r0 >>r r1 + 719: 95 aa 01 r10 = r10 + 0x1 + 722: 33 02 02 r2 = 0x2 + 725: ab 2a f1 jump 710 if r10 != r2 + : @35 + 728: 33 04 00 00 00 02 r4 = 0x2000000 + 734: ab 4b a3 01 jump 1153 if r11 != r4 + : @36 + 738: 33 05 1d r5 = 0x1d + 741: 33 0a r10 = 0 + 743: 01 fallthrough + : @37 + 744: 33 00 01 r0 = 0x1 + 747: 33 01 0e r1 = 0xe + 750: df 10 0b i32 r11 = r0 >>r r1 + 753: 95 aa 01 r10 = r10 + 0x1 + 756: 33 02 02 r2 = 0x2 + 759: ab 2a f1 jump 744 if r10 != r2 + : @38 + 762: 33 04 00 00 04 r4 = 0x40000 + 767: ab 4b 82 01 jump 1153 if r11 != r4 + : @39 + 771: 33 05 1e r5 = 0x1e + 774: 33 0a r10 = 0 + 776: 01 fallthrough + : @40 + 777: 33 00 01 r0 = 0x1 + 780: 33 01 1f r1 = 0x1f + 783: df 10 0b i32 r11 = r0 >>r r1 + 786: 95 aa 01 r10 = r10 + 0x1 + 789: 33 02 02 r2 = 0x2 + 792: ab 2a f1 jump 777 if r10 != r2 + : @41 + 795: 33 04 02 r4 = 0x2 + 798: ab 4b 63 01 jump 1153 if r11 != r4 + : @42 + 802: 33 05 1f r5 = 0x1f + 805: 33 0a r10 = 0 + 807: 01 fallthrough + : @43 + 808: 33 00 01 r0 = 0x1 + 811: 33 01 07 r1 = 0x7 + 814: df 10 0b i32 r11 = r0 >>r r1 + 817: 95 aa 01 r10 = r10 + 0x1 + 820: 33 02 02 r2 = 0x2 + 823: ab 2a f1 jump 808 if r10 != r2 + : @44 + 826: 33 04 00 00 00 02 r4 = 0x2000000 + 832: ab 4b 41 01 jump 1153 if r11 != r4 + : @45 + 836: 33 05 20 r5 = 0x20 + 839: 33 0a r10 = 0 + 841: 01 fallthrough + : @46 + 842: 33 00 01 r0 = 0x1 + 845: 33 01 0e r1 = 0xe + 848: df 10 0b i32 r11 = r0 >>r r1 + 851: 95 aa 01 r10 = r10 + 0x1 + 854: 33 02 02 r2 = 0x2 + 857: ab 2a f1 jump 842 if r10 != r2 + : @47 + 860: 33 04 00 00 04 r4 = 0x40000 + 865: ab 4b 20 01 jump 1153 if r11 != r4 + : @48 + 869: 33 05 21 r5 = 0x21 + 872: 33 0a r10 = 0 + 874: 01 fallthrough + : @49 + 875: 33 00 01 r0 = 0x1 + 878: 33 01 1f r1 = 0x1f + 881: df 10 0b i32 r11 = r0 >>r r1 + 884: 95 aa 01 r10 = r10 + 0x1 + 887: 33 02 02 r2 = 0x2 + 890: ab 2a f1 jump 875 if r10 != r2 + : @50 + 893: 33 04 02 r4 = 0x2 + 896: ab 4b 01 01 jump 1153 if r11 != r4 + : @51 + 900: 33 05 22 r5 = 0x22 + 903: 33 0a r10 = 0 + 905: 01 fallthrough + : @52 + 906: 33 01 07 r1 = 0x7 + 909: 33 00 01 r0 = 0x1 + 912: df 10 0b i32 r11 = r0 >>r r1 + 915: 95 aa 01 r10 = r10 + 0x1 + 918: 33 02 02 r2 = 0x2 + 921: ab 2a f1 jump 906 if r10 != r2 + : @53 + 924: 33 04 00 00 00 02 r4 = 0x2000000 + 930: ab 4b df 00 jump 1153 if r11 != r4 + : @54 + 934: 33 05 23 r5 = 0x23 + 937: 33 0a r10 = 0 + 939: 01 fallthrough + : @55 + 940: 33 01 0e r1 = 0xe + 943: 33 00 01 r0 = 0x1 + 946: df 10 0b i32 r11 = r0 >>r r1 + 949: 95 aa 01 r10 = r10 + 0x1 + 952: 33 02 02 r2 = 0x2 + 955: ab 2a f1 jump 940 if r10 != r2 + : @56 + 958: 33 04 00 00 04 r4 = 0x40000 + 963: ab 4b be 00 jump 1153 if r11 != r4 + : @57 + 967: 33 05 24 r5 = 0x24 + 970: 33 0a r10 = 0 + 972: 01 fallthrough + : @58 + 973: 33 01 1f r1 = 0x1f + 976: 33 00 01 r0 = 0x1 + 979: df 10 0b i32 r11 = r0 >>r r1 + 982: 95 aa 01 r10 = r10 + 0x1 + 985: 33 02 02 r2 = 0x2 + 988: ab 2a f1 jump 973 if r10 != r2 + : @59 + 991: 33 04 02 r4 = 0x2 + 994: ab 4b 9f 00 jump 1153 if r11 != r4 + : @60 + 998: 33 05 25 r5 = 0x25 + 1001: 33 0a r10 = 0 + 1003: 01 fallthrough + : @61 + 1004: 33 01 07 r1 = 0x7 + 1007: 33 00 01 r0 = 0x1 + 1010: df 10 0b i32 r11 = r0 >>r r1 + 1013: 95 aa 01 r10 = r10 + 0x1 + 1016: 33 02 02 r2 = 0x2 + 1019: ab 2a f1 jump 1004 if r10 != r2 + : @62 + 1022: 33 04 00 00 00 02 r4 = 0x2000000 + 1028: ab 4b 7d jump 1153 if r11 != r4 + : @63 + 1031: 33 05 26 r5 = 0x26 + 1034: 33 0a r10 = 0 + 1036: 01 fallthrough + : @64 + 1037: 33 01 0e r1 = 0xe + 1040: 33 00 01 r0 = 0x1 + 1043: df 10 0b i32 r11 = r0 >>r r1 + 1046: 95 aa 01 r10 = r10 + 0x1 + 1049: 33 02 02 r2 = 0x2 + 1052: ab 2a f1 jump 1037 if r10 != r2 + : @65 + 1055: 33 04 00 00 04 r4 = 0x40000 + 1060: ab 4b 5d jump 1153 if r11 != r4 + : @66 + 1063: 33 05 27 r5 = 0x27 + 1066: 33 0a r10 = 0 + 1068: 01 fallthrough + : @67 + 1069: 33 01 1f r1 = 0x1f + 1072: 33 00 01 r0 = 0x1 + 1075: df 10 0b i32 r11 = r0 >>r r1 + 1078: 95 aa 01 r10 = r10 + 0x1 + 1081: 33 02 02 r2 = 0x2 + 1084: ab 2a f1 jump 1069 if r10 != r2 + : @68 + 1087: 33 04 02 r4 = 0x2 + 1090: ab 4b 3f jump 1153 if r11 != r4 + : @69 + 1093: 33 05 28 r5 = 0x28 + 1096: 33 00 0f r0 = 0xf + 1099: a1 01 i32 r1 = 0 >>r r0 + 1101: 33 04 r4 = 0 + 1103: ab 41 32 jump 1153 if r1 != r4 + : @70 + 1106: 33 05 29 r5 = 0x29 + 1109: 33 00 20 r0 = 0x20 + 1112: 83 01 i32 r1 = r0 + 0 + 1114: 33 04 20 r4 = 0x20 + 1117: ab 41 24 jump 1153 if r1 != r4 + : @71 + 1120: 33 05 2a r5 = 0x2a + 1123: 33 00 r0 = 0 + 1125: 33 04 r4 = 0 + 1127: ab 40 1a jump 1153 if r0 != r4 + : @72 + 1130: 33 05 2b r5 = 0x2b + 1133: 33 00 00 04 r0 = 0x400 + 1137: 33 01 00 10 r1 = 0x1000 + 1141: 83 11 00 f8 i32 r1 = r1 + 0xfffffffffffff800 + 1145: 33 04 r4 = 0 + 1147: 52 04 06 jump 1153 if r4 != 0 + : @73 + 1150: 52 05 04 jump 1154 if r5 != 0 + : @74 + 1153: 00 trap + : @75 + 1154: 28 7e fb jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r1 = 0x800 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0x2 (initially was 0x0) + * r5 = 0x2b (initially was 0x0) + * r8 = 0x60000000 (initially was 0x0) + * r9 = 0x40000 (initially was 0x0) + * r10 = 0x2 (initially was 0x0) + * r11 = 0x2 (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9556 + + +## riscv_rv64uzbb_sext_b + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 00 r0 = 0 + 18: 6c 0b r11 = sext.b r0 + 20: 33 04 r4 = 0 + 22: ab 4b f5 01 jump 523 if r11 != r4 + : @2 + 26: 33 05 03 r5 = 0x3 + 29: 33 00 01 r0 = 0x1 + 32: 6c 0b r11 = sext.b r0 + 34: 33 04 01 r4 = 0x1 + 37: ab 4b e6 01 jump 523 if r11 != r4 + : @3 + 41: 33 05 04 r5 = 0x4 + 44: 33 00 03 r0 = 0x3 + 47: 6c 0b r11 = sext.b r0 + 49: 33 04 03 r4 = 0x3 + 52: ab 4b d7 01 jump 523 if r11 != r4 + : @4 + 56: 33 05 05 r5 = 0x5 + 59: 33 00 00 80 r0 = 0xffffffffffff8000 + 63: 6c 0b r11 = sext.b r0 + 65: 33 04 r4 = 0 + 67: ab 4b c8 01 jump 523 if r11 != r4 + : @5 + 71: 33 05 06 r5 = 0x6 + 74: 33 00 00 00 80 00 r0 = 0x800000 + 80: 6c 0b r11 = sext.b r0 + 82: 33 04 r4 = 0 + 84: ab 4b b7 01 jump 523 if r11 != r4 + : @6 + 88: 33 05 07 r5 = 0x7 + 91: 33 00 05 r0 = 0x5 + 94: 97 00 21 r0 = r0 << 0x21 + 97: 95 00 ff r0 = r0 + 0xffffffffffffffff + 100: 97 00 0f r0 = r0 << 0xf + 103: 6c 0b r11 = sext.b r0 + 105: 33 04 r4 = 0 + 107: ab 4b a0 01 jump 523 if r11 != r4 + : @7 + 111: 33 05 08 r5 = 0x8 + 114: 33 00 00 80 00 r0 = 0x8000 + 119: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 122: 6c 0b r11 = sext.b r0 + 124: 33 04 ff r4 = 0xffffffffffffffff + 127: ab 4b 8c 01 jump 523 if r11 != r4 + : @8 + 131: 33 05 09 r5 = 0x9 + 134: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 140: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 143: 6c 0b r11 = sext.b r0 + 145: 33 04 ff r4 = 0xffffffffffffffff + 148: ab 4b 77 01 jump 523 if r11 != r4 + : @9 + 152: 33 05 0a r5 = 0xa + 155: 33 00 00 00 08 r0 = 0x80000 + 160: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 163: 6c 0b r11 = sext.b r0 + 165: 33 04 ff r4 = 0xffffffffffffffff + 168: ab 4b 63 01 jump 523 if r11 != r4 + : @10 + 172: 33 05 0b r5 = 0xb + 175: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 181: 6c 0b r11 = sext.b r0 + 183: 33 04 r4 = 0 + 185: ab 4b 52 01 jump 523 if r11 != r4 + : @11 + 189: 33 05 0c r5 = 0xc + 192: 33 00 00 c0 ab 7f r0 = 0x7fabc000 + 198: 83 00 89 07 i32 r0 = r0 + 0x789 + 202: 97 00 0d r0 = r0 << 0xd + 205: 95 00 f5 01 r0 = r0 + 0x1f5 + 209: 97 00 0c r0 = r0 << 0xc + 212: 6c 0b r11 = sext.b r0 + 214: 33 04 r4 = 0 + 216: ab 4b 33 01 jump 523 if r11 != r4 + : @12 + 220: 33 05 0d r5 = 0xd + 223: 33 00 ff r0 = 0xffffffffffffffff + 226: 97 00 3f r0 = r0 << 0x3f + 229: 6c 0b r11 = sext.b r0 + 231: 33 04 r4 = 0 + 233: ab 4b 22 01 jump 523 if r11 != r4 + : @13 + 237: 33 05 0e r5 = 0xe + 240: 33 00 0e r0 = 0xe + 243: 6c 0b r11 = sext.b r0 + 245: 33 04 0e r4 = 0xe + 248: ab 4b 13 01 jump 523 if r11 != r4 + : @14 + 252: 33 05 0f r5 = 0xf + 255: 33 00 fd r0 = 0xfffffffffffffffd + 258: 97 00 20 r0 = r0 << 0x20 + 261: 95 00 19 r0 = r0 + 0x19 + 264: 97 00 11 r0 = r0 << 0x11 + 267: 95 00 01 04 r0 = r0 + 0x401 + 271: 97 00 0c r0 = r0 << 0xc + 274: 95 00 41 03 r0 = r0 + 0x341 + 278: 6c 0b r11 = sext.b r0 + 280: 33 04 41 r4 = 0x41 + 283: ab 4b f0 00 jump 523 if r11 != r4 + : @15 + 287: 33 05 10 r5 = 0x10 + 290: 33 00 0d r0 = 0xd + 293: 6c 00 r0 = sext.b r0 + 295: 33 04 0d r4 = 0xd + 298: ab 40 e1 00 jump 523 if r0 != r4 + : @16 + 302: 33 05 11 r5 = 0x11 + 305: 33 00 0b r0 = 0xb + 308: 6c 00 r0 = sext.b r0 + 310: 33 04 0b r4 = 0xb + 313: ab 40 d2 00 jump 523 if r0 != r4 + : @17 + 317: 33 05 12 r5 = 0x12 + 320: 33 0a r10 = 0 + 322: 01 fallthrough + : @18 + 323: 33 00 0d r0 = 0xd + 326: 6c 0b r11 = sext.b r0 + 328: 64 b3 r3 = r11 + 330: 95 aa 01 r10 = r10 + 0x1 + 333: 33 02 02 r2 = 0x2 + 336: ab 2a f3 jump 323 if r10 != r2 + : @19 + 339: 33 04 0d r4 = 0xd + 342: ab 43 b5 00 jump 523 if r3 != r4 + : @20 + 346: 33 05 1d r5 = 0x1d + 349: 33 0a r10 = 0 + 351: 01 fallthrough + : @21 + 352: 33 00 13 r0 = 0x13 + 355: 6c 0b r11 = sext.b r0 + 357: 64 b3 r3 = r11 + 359: 95 aa 01 r10 = r10 + 0x1 + 362: 33 02 02 r2 = 0x2 + 365: ab 2a f3 jump 352 if r10 != r2 + : @22 + 368: 33 04 13 r4 = 0x13 + 371: ab 43 98 00 jump 523 if r3 != r4 + : @23 + 375: 33 05 14 r5 = 0x14 + 378: 33 0a r10 = 0 + 380: 01 fallthrough + : @24 + 381: 33 00 22 r0 = 0x22 + 384: 6c 0b r11 = sext.b r0 + 386: 64 b3 r3 = r11 + 388: 95 aa 01 r10 = r10 + 0x1 + 391: 33 02 02 r2 = 0x2 + 394: ab 2a f3 jump 381 if r10 != r2 + : @25 + 397: 33 04 22 r4 = 0x22 + 400: ab 43 7b jump 523 if r3 != r4 + : @26 + 403: 33 05 15 r5 = 0x15 + 406: 33 00 00 80 7f r0 = 0x7f8000 + 411: 6c 0b r11 = sext.b r0 + 413: 33 04 r4 = 0 + 415: ab 4b 6c jump 523 if r11 != r4 + : @27 + 418: 33 05 16 r5 = 0x16 + 421: 33 00 00 80 80 00 r0 = 0x808000 + 427: 6c 0b r11 = sext.b r0 + 429: 33 04 r4 = 0 + 431: ab 4b 5c jump 523 if r11 != r4 + : @28 + 434: 33 05 17 r5 = 0x17 + 437: 33 00 00 80 80 01 r0 = 0x1808000 + 443: 6c 0b r11 = sext.b r0 + 445: 33 04 r4 = 0 + 447: ab 4b 4c jump 523 if r11 != r4 + : @29 + 450: 33 05 18 r5 = 0x18 + 453: 33 00 00 00 06 r0 = 0x60000 + 458: 83 00 01 i32 r0 = r0 + 0x1 + 461: 97 00 0f r0 = r0 << 0xf + 464: 95 00 ff r0 = r0 + 0xffffffffffffffff + 467: 6c 0b r11 = sext.b r0 + 469: 33 04 ff r4 = 0xffffffffffffffff + 472: ab 4b 33 jump 523 if r11 != r4 + : @30 + 475: 33 05 19 r5 = 0x19 + 478: 33 00 0f r0 = 0xf + 481: 97 00 1f r0 = r0 << 0x1f + 484: 95 00 ff r0 = r0 + 0xffffffffffffffff + 487: 6c 0b r11 = sext.b r0 + 489: 33 04 ff r4 = 0xffffffffffffffff + 492: ab 4b 1f jump 523 if r11 != r4 + : @31 + 495: 33 05 1a r5 = 0x1a + 498: 33 00 00 e0 01 r0 = 0x1e000 + 503: 83 00 01 i32 r0 = r0 + 0x1 + 506: 97 00 13 r0 = r0 << 0x13 + 509: 95 00 ff r0 = r0 + 0xffffffffffffffff + 512: 6c 0b r11 = sext.b r0 + 514: 33 04 ff r4 = 0xffffffffffffffff + 517: ab 4b 06 jump 523 if r11 != r4 + : @32 + 520: 52 05 04 jump 524 if r5 != 0 + : @33 + 523: 00 trap + : @34 + 524: 28 f4 fd jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0x22 (initially was 0x0) + * r4 = 0xffffffffffffffff (initially was 0x0) + * r5 = 0x1a (initially was 0x0) + * r10 = 0x2 (initially was 0x0) + * r11 = 0xffffffffffffffff (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9808 + + +## riscv_rv64uzbb_sext_h + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 00 r0 = 0 + 18: 6d 0b r11 = sext.h r0 + 20: 33 04 r4 = 0 + 22: ab 4b 11 02 jump 551 if r11 != r4 + : @2 + 26: 33 05 03 r5 = 0x3 + 29: 33 00 01 r0 = 0x1 + 32: 6d 0b r11 = sext.h r0 + 34: 33 04 01 r4 = 0x1 + 37: ab 4b 02 02 jump 551 if r11 != r4 + : @3 + 41: 33 05 04 r5 = 0x4 + 44: 33 00 03 r0 = 0x3 + 47: 6d 0b r11 = sext.h r0 + 49: 33 04 03 r4 = 0x3 + 52: ab 4b f3 01 jump 551 if r11 != r4 + : @4 + 56: 33 05 05 r5 = 0x5 + 59: 33 00 00 80 r0 = 0xffffffffffff8000 + 63: 6d 0b r11 = sext.h r0 + 65: 33 04 00 80 r4 = 0xffffffffffff8000 + 69: ab 4b e2 01 jump 551 if r11 != r4 + : @5 + 73: 33 05 06 r5 = 0x6 + 76: 33 00 00 00 80 00 r0 = 0x800000 + 82: 6d 0b r11 = sext.h r0 + 84: 33 04 r4 = 0 + 86: ab 4b d1 01 jump 551 if r11 != r4 + : @6 + 90: 33 05 07 r5 = 0x7 + 93: 33 00 05 r0 = 0x5 + 96: 97 00 21 r0 = r0 << 0x21 + 99: 95 00 ff r0 = r0 + 0xffffffffffffffff + 102: 97 00 0f r0 = r0 << 0xf + 105: 6d 0b r11 = sext.h r0 + 107: 33 04 00 80 r4 = 0xffffffffffff8000 + 111: ab 4b b8 01 jump 551 if r11 != r4 + : @7 + 115: 33 05 08 r5 = 0x8 + 118: 33 00 00 80 00 r0 = 0x8000 + 123: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 126: 6d 0b r11 = sext.h r0 + 128: 33 04 00 80 00 r4 = 0x8000 + 133: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 136: ab 4b 9f 01 jump 551 if r11 != r4 + : @8 + 140: 33 05 09 r5 = 0x9 + 143: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 149: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 152: 6d 0b r11 = sext.h r0 + 154: 33 04 ff r4 = 0xffffffffffffffff + 157: ab 4b 8a 01 jump 551 if r11 != r4 + : @9 + 161: 33 05 0a r5 = 0xa + 164: 33 00 00 00 08 r0 = 0x80000 + 169: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 172: 6d 0b r11 = sext.h r0 + 174: 33 04 ff r4 = 0xffffffffffffffff + 177: ab 4b 76 01 jump 551 if r11 != r4 + : @10 + 181: 33 05 0b r5 = 0xb + 184: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 190: 6d 0b r11 = sext.h r0 + 192: 33 04 r4 = 0 + 194: ab 4b 65 01 jump 551 if r11 != r4 + : @11 + 198: 33 05 0c r5 = 0xc + 201: 33 00 00 c0 ab 7f r0 = 0x7fabc000 + 207: 83 00 89 07 i32 r0 = r0 + 0x789 + 211: 97 00 0d r0 = r0 << 0xd + 214: 95 00 f5 01 r0 = r0 + 0x1f5 + 218: 97 00 0c r0 = r0 << 0xc + 221: 6d 0b r11 = sext.h r0 + 223: 33 04 00 50 r4 = 0x5000 + 227: ab 4b 44 01 jump 551 if r11 != r4 + : @12 + 231: 33 05 0d r5 = 0xd + 234: 33 00 ff r0 = 0xffffffffffffffff + 237: 97 00 3f r0 = r0 << 0x3f + 240: 6d 0b r11 = sext.h r0 + 242: 33 04 r4 = 0 + 244: ab 4b 33 01 jump 551 if r11 != r4 + : @13 + 248: 33 05 0e r5 = 0xe + 251: 33 00 0e r0 = 0xe + 254: 6d 0b r11 = sext.h r0 + 256: 33 04 0e r4 = 0xe + 259: ab 4b 24 01 jump 551 if r11 != r4 + : @14 + 263: 33 05 0f r5 = 0xf + 266: 33 00 fd r0 = 0xfffffffffffffffd + 269: 97 00 20 r0 = r0 << 0x20 + 272: 95 00 19 r0 = r0 + 0x19 + 275: 97 00 11 r0 = r0 << 0x11 + 278: 95 00 01 04 r0 = r0 + 0x401 + 282: 97 00 0c r0 = r0 << 0xc + 285: 95 00 41 03 r0 = r0 + 0x341 + 289: 6d 0b r11 = sext.h r0 + 291: 33 04 00 10 r4 = 0x1000 + 295: 83 44 41 03 i32 r4 = r4 + 0x341 + 299: ab 4b fc 00 jump 551 if r11 != r4 + : @15 + 303: 33 05 10 r5 = 0x10 + 306: 33 00 0d r0 = 0xd + 309: 6d 00 r0 = sext.h r0 + 311: 33 04 0d r4 = 0xd + 314: ab 40 ed 00 jump 551 if r0 != r4 + : @16 + 318: 33 05 11 r5 = 0x11 + 321: 33 00 0b r0 = 0xb + 324: 6d 00 r0 = sext.h r0 + 326: 33 04 0b r4 = 0xb + 329: ab 40 de 00 jump 551 if r0 != r4 + : @17 + 333: 33 05 12 r5 = 0x12 + 336: 33 0a r10 = 0 + 338: 01 fallthrough + : @18 + 339: 33 00 0d r0 = 0xd + 342: 6d 0b r11 = sext.h r0 + 344: 64 b3 r3 = r11 + 346: 95 aa 01 r10 = r10 + 0x1 + 349: 33 02 02 r2 = 0x2 + 352: ab 2a f3 jump 339 if r10 != r2 + : @19 + 355: 33 04 0d r4 = 0xd + 358: ab 43 c1 00 jump 551 if r3 != r4 + : @20 + 362: 33 05 1d r5 = 0x1d + 365: 33 0a r10 = 0 + 367: 01 fallthrough + : @21 + 368: 33 00 13 r0 = 0x13 + 371: 6d 0b r11 = sext.h r0 + 373: 64 b3 r3 = r11 + 375: 95 aa 01 r10 = r10 + 0x1 + 378: 33 02 02 r2 = 0x2 + 381: ab 2a f3 jump 368 if r10 != r2 + : @22 + 384: 33 04 13 r4 = 0x13 + 387: ab 43 a4 00 jump 551 if r3 != r4 + : @23 + 391: 33 05 14 r5 = 0x14 + 394: 33 0a r10 = 0 + 396: 01 fallthrough + : @24 + 397: 33 00 22 r0 = 0x22 + 400: 6d 0b r11 = sext.h r0 + 402: 64 b3 r3 = r11 + 404: 95 aa 01 r10 = r10 + 0x1 + 407: 33 02 02 r2 = 0x2 + 410: ab 2a f3 jump 397 if r10 != r2 + : @25 + 413: 33 04 22 r4 = 0x22 + 416: ab 43 87 00 jump 551 if r3 != r4 + : @26 + 420: 33 05 15 r5 = 0x15 + 423: 33 00 00 80 7f r0 = 0x7f8000 + 428: 6d 0b r11 = sext.h r0 + 430: 33 04 00 80 r4 = 0xffffffffffff8000 + 434: ab 4b 75 jump 551 if r11 != r4 + : @27 + 437: 33 05 16 r5 = 0x16 + 440: 33 00 00 80 80 00 r0 = 0x808000 + 446: 6d 0b r11 = sext.h r0 + 448: 33 04 00 80 r4 = 0xffffffffffff8000 + 452: ab 4b 63 jump 551 if r11 != r4 + : @28 + 455: 33 05 17 r5 = 0x17 + 458: 33 00 00 80 80 01 r0 = 0x1808000 + 464: 6d 0b r11 = sext.h r0 + 466: 33 04 00 80 r4 = 0xffffffffffff8000 + 470: ab 4b 51 jump 551 if r11 != r4 + : @29 + 473: 33 05 18 r5 = 0x18 + 476: 33 00 00 00 06 r0 = 0x60000 + 481: 83 00 01 i32 r0 = r0 + 0x1 + 484: 97 00 0f r0 = r0 << 0xf + 487: 95 00 ff r0 = r0 + 0xffffffffffffffff + 490: 6d 0b r11 = sext.h r0 + 492: 33 04 00 80 00 r4 = 0x8000 + 497: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 500: ab 4b 33 jump 551 if r11 != r4 + : @30 + 503: 33 05 19 r5 = 0x19 + 506: 33 00 0f r0 = 0xf + 509: 97 00 1f r0 = r0 << 0x1f + 512: 95 00 ff r0 = r0 + 0xffffffffffffffff + 515: 6d 0b r11 = sext.h r0 + 517: 33 04 ff r4 = 0xffffffffffffffff + 520: ab 4b 1f jump 551 if r11 != r4 + : @31 + 523: 33 05 1a r5 = 0x1a + 526: 33 00 00 e0 01 r0 = 0x1e000 + 531: 83 00 01 i32 r0 = r0 + 0x1 + 534: 97 00 13 r0 = r0 << 0x13 + 537: 95 00 ff r0 = r0 + 0xffffffffffffffff + 540: 6d 0b r11 = sext.h r0 + 542: 33 04 ff r4 = 0xffffffffffffffff + 545: ab 4b 06 jump 551 if r11 != r4 + : @32 + 548: 52 05 04 jump 552 if r5 != 0 + : @33 + 551: 00 trap + : @34 + 552: 28 d8 fd jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0x22 (initially was 0x0) + * r4 = 0xffffffffffffffff (initially was 0x0) + * r5 = 0x1a (initially was 0x0) + * r10 = 0x2 (initially was 0x0) + * r11 = 0xffffffffffffffff (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9805 + + +## riscv_rv64uzbb_xnor + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 08 00 00 01 ff r8 = 0xffffffffff010000 + 22: 83 88 00 ff i32 r8 = r8 + 0xffffffffffffff00 + 26: 33 09 00 10 0f 0f r9 = 0xf0f1000 + 32: 83 99 0f ff i32 r9 = r9 + 0xffffffffffffff0f + 36: e2 98 0b r11 = ~(r8 ^ r9) + 39: 33 04 00 10 f0 0f r4 = 0xff01000 + 45: 83 44 f0 i32 r4 = r4 + 0xfffffffffffffff0 + 48: ab 4b 5f 05 jump 1423 if r11 != r4 + : @2 + 52: 33 05 03 r5 = 0x3 + 55: 33 08 00 10 f0 0f r8 = 0xff01000 + 61: 83 88 f0 i32 r8 = r8 + 0xfffffffffffffff0 + 64: 33 09 00 f0 f0 f0 r9 = 0xfffffffff0f0f000 + 70: 83 99 f0 00 i32 r9 = r9 + 0xf0 + 74: e2 98 0b r11 = ~(r8 ^ r9) + 77: 33 04 00 00 ff 00 r4 = 0xff0000 + 83: 83 44 ff 00 i32 r4 = r4 + 0xff + 87: ab 4b 38 05 jump 1423 if r11 != r4 + : @3 + 91: 33 05 04 r5 = 0x4 + 94: 33 08 00 00 ff 00 r8 = 0xff0000 + 100: 83 88 ff 00 i32 r8 = r8 + 0xff + 104: 33 09 00 10 0f 0f r9 = 0xf0f1000 + 110: 83 99 0f ff i32 r9 = r9 + 0xffffffffffffff0f + 114: e2 98 0b r11 = ~(r8 ^ r9) + 117: 33 04 00 f0 0f f0 r4 = 0xfffffffff00ff000 + 123: 83 44 0f i32 r4 = r4 + 0xf + 126: ab 4b 11 05 jump 1423 if r11 != r4 + : @4 + 130: 33 05 05 r5 = 0x5 + 133: 33 08 00 f0 0f f0 r8 = 0xfffffffff00ff000 + 139: 83 88 0f i32 r8 = r8 + 0xf + 142: 33 09 00 f0 f0 f0 r9 = 0xfffffffff0f0f000 + 148: 83 99 f0 00 i32 r9 = r9 + 0xf0 + 152: e2 98 0b r11 = ~(r8 ^ r9) + 155: 33 04 00 00 01 ff r4 = 0xffffffffff010000 + 161: 83 44 00 ff i32 r4 = r4 + 0xffffffffffffff00 + 165: ab 4b ea 04 jump 1423 if r11 != r4 + : @5 + 169: 33 05 32 r5 = 0x32 + 172: 33 08 00 00 01 r8 = 0x10000 + 177: 83 88 01 ff i32 r8 = r8 + 0xffffffffffffff01 + 181: 97 88 10 r8 = r8 << 0x10 + 184: 95 88 01 ff r8 = r8 + 0xffffffffffffff01 + 188: 97 88 10 r8 = r8 << 0x10 + 191: 95 88 01 ff r8 = r8 + 0xffffffffffffff01 + 195: 97 88 0c r8 = r8 << 0xc + 198: 95 88 f0 r8 = r8 + 0xfffffffffffffff0 + 201: 33 09 00 10 0f ff r9 = 0xffffffffff0f1000 + 207: 83 99 0f ff i32 r9 = r9 + 0xffffffffffffff0f + 211: 97 99 0c r9 = r9 << 0xc + 214: 95 99 f1 00 r9 = r9 + 0xf1 + 218: 97 99 0c r9 = r9 << 0xc + 221: 95 99 0f ff r9 = r9 + 0xffffffffffffff0f + 225: 97 99 0c r9 = r9 << 0xc + 228: 95 99 f0 00 r9 = r9 + 0xf0 + 232: e2 98 0b r11 = ~(r8 ^ r9) + 235: 33 04 00 00 ff 00 r4 = 0xff0000 + 241: 83 44 ff 00 i32 r4 = r4 + 0xff + 245: 97 44 10 r4 = r4 << 0x10 + 248: 95 44 ff 00 r4 = r4 + 0xff + 252: 97 44 10 r4 = r4 << 0x10 + 255: 95 44 ff 00 r4 = r4 + 0xff + 259: ab 4b 8c 04 jump 1423 if r11 != r4 + : @6 + 263: 33 05 33 r5 = 0x33 + 266: 33 08 00 00 ff 00 r8 = 0xff0000 + 272: 83 88 ff 00 i32 r8 = r8 + 0xff + 276: 97 88 10 r8 = r8 << 0x10 + 279: 95 88 ff 00 r8 = r8 + 0xff + 283: 97 88 10 r8 = r8 << 0x10 + 286: 95 88 ff 00 r8 = r8 + 0xff + 290: 33 09 00 f0 f0 00 r9 = 0xf0f000 + 296: 83 99 f1 00 i32 r9 = r9 + 0xf1 + 300: 97 99 0c r9 = r9 << 0xc + 303: 95 99 0f ff r9 = r9 + 0xffffffffffffff0f + 307: 97 99 0c r9 = r9 << 0xc + 310: 95 99 f1 00 r9 = r9 + 0xf1 + 314: 97 99 0c r9 = r9 << 0xc + 317: 95 99 0f ff r9 = r9 + 0xffffffffffffff0f + 321: e2 98 0b r11 = ~(r8 ^ r9) + 324: 33 04 00 00 ff r4 = 0xffffffffffff0000 + 329: 83 44 ff 00 i32 r4 = r4 + 0xff + 333: 97 44 10 r4 = r4 << 0x10 + 336: 95 44 ff 00 r4 = r4 + 0xff + 340: 97 44 10 r4 = r4 << 0x10 + 343: 95 44 ff 00 r4 = r4 + 0xff + 347: 97 44 0c r4 = r4 << 0xc + 350: 95 44 0f r4 = r4 + 0xf + 353: ab 4b 2e 04 jump 1423 if r11 != r4 + : @7 + 357: 33 05 34 r5 = 0x34 + 360: 33 08 00 00 ff r8 = 0xffffffffffff0000 + 365: 83 88 ff 00 i32 r8 = r8 + 0xff + 369: 97 88 10 r8 = r8 << 0x10 + 372: 95 88 ff 00 r8 = r8 + 0xff + 376: 97 88 10 r8 = r8 << 0x10 + 379: 95 88 ff 00 r8 = r8 + 0xff + 383: 97 88 0c r8 = r8 << 0xc + 386: 95 88 0f r8 = r8 + 0xf + 389: 33 09 00 10 0f ff r9 = 0xffffffffff0f1000 + 395: 83 99 0f ff i32 r9 = r9 + 0xffffffffffffff0f + 399: 97 99 0c r9 = r9 << 0xc + 402: 95 99 f1 00 r9 = r9 + 0xf1 + 406: 97 99 0c r9 = r9 << 0xc + 409: 95 99 0f ff r9 = r9 + 0xffffffffffffff0f + 413: 97 99 0c r9 = r9 << 0xc + 416: 95 99 f0 00 r9 = r9 + 0xf0 + 420: e2 98 0b r11 = ~(r8 ^ r9) + 423: 33 04 00 00 01 ff r4 = 0xffffffffff010000 + 429: 83 44 01 ff i32 r4 = r4 + 0xffffffffffffff01 + 433: 97 44 10 r4 = r4 << 0x10 + 436: 95 44 01 ff r4 = r4 + 0xffffffffffffff01 + 440: 97 44 10 r4 = r4 << 0x10 + 443: 95 44 00 ff r4 = r4 + 0xffffffffffffff00 + 447: ab 4b d0 03 jump 1423 if r11 != r4 + : @8 + 451: 33 05 06 r5 = 0x6 + 454: 33 08 00 00 01 ff r8 = 0xffffffffff010000 + 460: 83 88 00 ff i32 r8 = r8 + 0xffffffffffffff00 + 464: 33 09 00 10 0f 0f r9 = 0xf0f1000 + 470: 83 99 0f ff i32 r9 = r9 + 0xffffffffffffff0f + 474: e2 98 08 r8 = ~(r8 ^ r9) + 477: 33 04 00 10 f0 0f r4 = 0xff01000 + 483: 83 44 f0 i32 r4 = r4 + 0xfffffffffffffff0 + 486: ab 48 a9 03 jump 1423 if r8 != r4 + : @9 + 490: 33 05 07 r5 = 0x7 + 493: 33 08 00 00 01 ff r8 = 0xffffffffff010000 + 499: 83 88 00 ff i32 r8 = r8 + 0xffffffffffffff00 + 503: 33 09 00 10 0f 0f r9 = 0xf0f1000 + 509: 83 99 0f ff i32 r9 = r9 + 0xffffffffffffff0f + 513: e2 98 09 r9 = ~(r8 ^ r9) + 516: 33 04 00 10 f0 0f r4 = 0xff01000 + 522: 83 44 f0 i32 r4 = r4 + 0xfffffffffffffff0 + 525: ab 49 82 03 jump 1423 if r9 != r4 + : @10 + 529: 33 05 08 r5 = 0x8 + 532: 33 08 00 00 01 ff r8 = 0xffffffffff010000 + 538: 83 88 00 ff i32 r8 = r8 + 0xffffffffffffff00 + 542: e2 88 08 r8 = ~(r8 ^ r8) + 545: 33 04 ff r4 = 0xffffffffffffffff + 548: ab 48 6b 03 jump 1423 if r8 != r4 + : @11 + 552: 33 05 09 r5 = 0x9 + 555: 33 0a r10 = 0 + 557: 01 fallthrough + : @12 + 558: 33 00 00 00 01 ff r0 = 0xffffffffff010000 + 564: 83 00 00 ff i32 r0 = r0 + 0xffffffffffffff00 + 568: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 574: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 578: e2 10 0b r11 = ~(r0 ^ r1) + 581: 64 b3 r3 = r11 + 583: 95 aa 01 r10 = r10 + 0x1 + 586: 33 02 02 r2 = 0x2 + 589: ab 2a e1 jump 558 if r10 != r2 + : @13 + 592: 33 04 00 10 f0 0f r4 = 0xff01000 + 598: 83 44 f0 i32 r4 = r4 + 0xfffffffffffffff0 + 601: ab 43 36 03 jump 1423 if r3 != r4 + : @14 + 605: 33 05 0a r5 = 0xa + 608: 33 0a r10 = 0 + 610: 01 fallthrough + : @15 + 611: 33 00 00 10 f0 0f r0 = 0xff01000 + 617: 83 00 f0 i32 r0 = r0 + 0xfffffffffffffff0 + 620: 33 01 00 f0 f0 f0 r1 = 0xfffffffff0f0f000 + 626: 83 11 f0 00 i32 r1 = r1 + 0xf0 + 630: e2 10 0b r11 = ~(r0 ^ r1) + 633: 64 b3 r3 = r11 + 635: 95 aa 01 r10 = r10 + 0x1 + 638: 33 02 02 r2 = 0x2 + 641: ab 2a e2 jump 611 if r10 != r2 + : @16 + 644: 33 04 00 00 ff 00 r4 = 0xff0000 + 650: 83 44 ff 00 i32 r4 = r4 + 0xff + 654: ab 43 01 03 jump 1423 if r3 != r4 + : @17 + 658: 33 05 0b r5 = 0xb + 661: 33 0a r10 = 0 + 663: 01 fallthrough + : @18 + 664: 33 00 00 00 ff 00 r0 = 0xff0000 + 670: 83 00 ff 00 i32 r0 = r0 + 0xff + 674: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 680: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 684: e2 10 0b r11 = ~(r0 ^ r1) + 687: 64 b3 r3 = r11 + 689: 95 aa 01 r10 = r10 + 0x1 + 692: 33 02 02 r2 = 0x2 + 695: ab 2a e1 jump 664 if r10 != r2 + : @19 + 698: 33 04 00 f0 0f f0 r4 = 0xfffffffff00ff000 + 704: 83 44 0f i32 r4 = r4 + 0xf + 707: ab 43 cc 02 jump 1423 if r3 != r4 + : @20 + 711: 33 05 0c r5 = 0xc + 714: 33 0a r10 = 0 + 716: 01 fallthrough + : @21 + 717: 33 00 00 00 01 ff r0 = 0xffffffffff010000 + 723: 83 00 00 ff i32 r0 = r0 + 0xffffffffffffff00 + 727: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 733: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 737: e2 10 0b r11 = ~(r0 ^ r1) + 740: 95 aa 01 r10 = r10 + 0x1 + 743: 33 02 02 r2 = 0x2 + 746: ab 2a e3 jump 717 if r10 != r2 + : @22 + 749: 33 04 00 10 f0 0f r4 = 0xff01000 + 755: 83 44 f0 i32 r4 = r4 + 0xfffffffffffffff0 + 758: ab 4b 99 02 jump 1423 if r11 != r4 + : @23 + 762: 33 05 0d r5 = 0xd + 765: 33 0a r10 = 0 + 767: 01 fallthrough + : @24 + 768: 33 00 00 10 f0 0f r0 = 0xff01000 + 774: 83 00 f0 i32 r0 = r0 + 0xfffffffffffffff0 + 777: 33 01 00 f0 f0 f0 r1 = 0xfffffffff0f0f000 + 783: 83 11 f0 00 i32 r1 = r1 + 0xf0 + 787: e2 10 0b r11 = ~(r0 ^ r1) + 790: 95 aa 01 r10 = r10 + 0x1 + 793: 33 02 02 r2 = 0x2 + 796: ab 2a e4 jump 768 if r10 != r2 + : @25 + 799: 33 04 00 00 ff 00 r4 = 0xff0000 + 805: 83 44 ff 00 i32 r4 = r4 + 0xff + 809: ab 4b 66 02 jump 1423 if r11 != r4 + : @26 + 813: 33 05 0e r5 = 0xe + 816: 33 0a r10 = 0 + 818: 01 fallthrough + : @27 + 819: 33 00 00 00 ff 00 r0 = 0xff0000 + 825: 83 00 ff 00 i32 r0 = r0 + 0xff + 829: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 835: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 839: e2 10 0b r11 = ~(r0 ^ r1) + 842: 95 aa 01 r10 = r10 + 0x1 + 845: 33 02 02 r2 = 0x2 + 848: ab 2a e3 jump 819 if r10 != r2 + : @28 + 851: 33 04 00 f0 0f f0 r4 = 0xfffffffff00ff000 + 857: 83 44 0f i32 r4 = r4 + 0xf + 860: ab 4b 33 02 jump 1423 if r11 != r4 + : @29 + 864: 33 05 0f r5 = 0xf + 867: 33 0a r10 = 0 + 869: 01 fallthrough + : @30 + 870: 33 00 00 00 01 ff r0 = 0xffffffffff010000 + 876: 83 00 00 ff i32 r0 = r0 + 0xffffffffffffff00 + 880: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 886: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 890: e2 10 0b r11 = ~(r0 ^ r1) + 893: 95 aa 01 r10 = r10 + 0x1 + 896: 33 02 02 r2 = 0x2 + 899: ab 2a e3 jump 870 if r10 != r2 + : @31 + 902: 33 04 00 10 f0 0f r4 = 0xff01000 + 908: 83 44 f0 i32 r4 = r4 + 0xfffffffffffffff0 + 911: ab 4b 00 02 jump 1423 if r11 != r4 + : @32 + 915: 33 05 10 r5 = 0x10 + 918: 33 0a r10 = 0 + 920: 01 fallthrough + : @33 + 921: 33 00 00 10 f0 0f r0 = 0xff01000 + 927: 83 00 f0 i32 r0 = r0 + 0xfffffffffffffff0 + 930: 33 01 00 f0 f0 f0 r1 = 0xfffffffff0f0f000 + 936: 83 11 f0 00 i32 r1 = r1 + 0xf0 + 940: e2 10 0b r11 = ~(r0 ^ r1) + 943: 95 aa 01 r10 = r10 + 0x1 + 946: 33 02 02 r2 = 0x2 + 949: ab 2a e4 jump 921 if r10 != r2 + : @34 + 952: 33 04 00 00 ff 00 r4 = 0xff0000 + 958: 83 44 ff 00 i32 r4 = r4 + 0xff + 962: ab 4b cd 01 jump 1423 if r11 != r4 + : @35 + 966: 33 05 11 r5 = 0x11 + 969: 33 0a r10 = 0 + 971: 01 fallthrough + : @36 + 972: 33 00 00 00 ff 00 r0 = 0xff0000 + 978: 83 00 ff 00 i32 r0 = r0 + 0xff + 982: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 988: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 992: e2 10 0b r11 = ~(r0 ^ r1) + 995: 95 aa 01 r10 = r10 + 0x1 + 998: 33 02 02 r2 = 0x2 + 1001: ab 2a e3 jump 972 if r10 != r2 + : @37 + 1004: 33 04 00 f0 0f f0 r4 = 0xfffffffff00ff000 + 1010: 83 44 0f i32 r4 = r4 + 0xf + 1013: ab 4b 9a 01 jump 1423 if r11 != r4 + : @38 + 1017: 33 05 12 r5 = 0x12 + 1020: 33 0a r10 = 0 + 1022: 01 fallthrough + : @39 + 1023: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 1029: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 1033: 33 00 00 00 01 ff r0 = 0xffffffffff010000 + 1039: 83 00 00 ff i32 r0 = r0 + 0xffffffffffffff00 + 1043: e2 10 0b r11 = ~(r0 ^ r1) + 1046: 95 aa 01 r10 = r10 + 0x1 + 1049: 33 02 02 r2 = 0x2 + 1052: ab 2a e3 jump 1023 if r10 != r2 + : @40 + 1055: 33 04 00 10 f0 0f r4 = 0xff01000 + 1061: 83 44 f0 i32 r4 = r4 + 0xfffffffffffffff0 + 1064: ab 4b 67 01 jump 1423 if r11 != r4 + : @41 + 1068: 33 05 13 r5 = 0x13 + 1071: 33 0a r10 = 0 + 1073: 01 fallthrough + : @42 + 1074: 33 01 00 f0 f0 f0 r1 = 0xfffffffff0f0f000 + 1080: 83 11 f0 00 i32 r1 = r1 + 0xf0 + 1084: 33 00 00 10 f0 0f r0 = 0xff01000 + 1090: 83 00 f0 i32 r0 = r0 + 0xfffffffffffffff0 + 1093: e2 10 0b r11 = ~(r0 ^ r1) + 1096: 95 aa 01 r10 = r10 + 0x1 + 1099: 33 02 02 r2 = 0x2 + 1102: ab 2a e4 jump 1074 if r10 != r2 + : @43 + 1105: 33 04 00 00 ff 00 r4 = 0xff0000 + 1111: 83 44 ff 00 i32 r4 = r4 + 0xff + 1115: ab 4b 34 01 jump 1423 if r11 != r4 + : @44 + 1119: 33 05 14 r5 = 0x14 + 1122: 33 0a r10 = 0 + 1124: 01 fallthrough + : @45 + 1125: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 1131: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 1135: 33 00 00 00 ff 00 r0 = 0xff0000 + 1141: 83 00 ff 00 i32 r0 = r0 + 0xff + 1145: e2 10 0b r11 = ~(r0 ^ r1) + 1148: 95 aa 01 r10 = r10 + 0x1 + 1151: 33 02 02 r2 = 0x2 + 1154: ab 2a e3 jump 1125 if r10 != r2 + : @46 + 1157: 33 04 00 f0 0f f0 r4 = 0xfffffffff00ff000 + 1163: 83 44 0f i32 r4 = r4 + 0xf + 1166: ab 4b 01 01 jump 1423 if r11 != r4 + : @47 + 1170: 33 05 15 r5 = 0x15 + 1173: 33 0a r10 = 0 + 1175: 01 fallthrough + : @48 + 1176: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 1182: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 1186: 33 00 00 00 01 ff r0 = 0xffffffffff010000 + 1192: 83 00 00 ff i32 r0 = r0 + 0xffffffffffffff00 + 1196: e2 10 0b r11 = ~(r0 ^ r1) + 1199: 95 aa 01 r10 = r10 + 0x1 + 1202: 33 02 02 r2 = 0x2 + 1205: ab 2a e3 jump 1176 if r10 != r2 + : @49 + 1208: 33 04 00 10 f0 0f r4 = 0xff01000 + 1214: 83 44 f0 i32 r4 = r4 + 0xfffffffffffffff0 + 1217: ab 4b ce 00 jump 1423 if r11 != r4 + : @50 + 1221: 33 05 16 r5 = 0x16 + 1224: 33 0a r10 = 0 + 1226: 01 fallthrough + : @51 + 1227: 33 01 00 f0 f0 f0 r1 = 0xfffffffff0f0f000 + 1233: 83 11 f0 00 i32 r1 = r1 + 0xf0 + 1237: 33 00 00 10 f0 0f r0 = 0xff01000 + 1243: 83 00 f0 i32 r0 = r0 + 0xfffffffffffffff0 + 1246: e2 10 0b r11 = ~(r0 ^ r1) + 1249: 95 aa 01 r10 = r10 + 0x1 + 1252: 33 02 02 r2 = 0x2 + 1255: ab 2a e4 jump 1227 if r10 != r2 + : @52 + 1258: 33 04 00 00 ff 00 r4 = 0xff0000 + 1264: 83 44 ff 00 i32 r4 = r4 + 0xff + 1268: ab 4b 9b 00 jump 1423 if r11 != r4 + : @53 + 1272: 33 05 17 r5 = 0x17 + 1275: 33 0a r10 = 0 + 1277: 01 fallthrough + : @54 + 1278: 33 01 00 10 0f 0f r1 = 0xf0f1000 + 1284: 83 11 0f ff i32 r1 = r1 + 0xffffffffffffff0f + 1288: 33 00 00 00 ff 00 r0 = 0xff0000 + 1294: 83 00 ff 00 i32 r0 = r0 + 0xff + 1298: e2 10 0b r11 = ~(r0 ^ r1) + 1301: 95 aa 01 r10 = r10 + 0x1 + 1304: 33 02 02 r2 = 0x2 + 1307: ab 2a e3 jump 1278 if r10 != r2 + : @55 + 1310: 33 04 00 f0 0f f0 r4 = 0xfffffffff00ff000 + 1316: 83 44 0f i32 r4 = r4 + 0xf + 1319: ab 4b 68 jump 1423 if r11 != r4 + : @56 + 1322: 33 05 18 r5 = 0x18 + 1325: 33 00 00 00 01 ff r0 = 0xffffffffff010000 + 1331: 83 00 00 ff i32 r0 = r0 + 0xffffffffffffff00 + 1335: 85 01 ff r1 = r0 ^ 0xffffffffffffffff + 1338: 33 04 00 00 ff 00 r4 = 0xff0000 + 1344: 83 44 ff 00 i32 r4 = r4 + 0xff + 1348: ab 41 4b jump 1423 if r1 != r4 + : @57 + 1351: 33 05 19 r5 = 0x19 + 1354: 33 00 00 00 ff 00 r0 = 0xff0000 + 1360: 83 00 ff 00 i32 r0 = r0 + 0xff + 1364: 85 01 ff r1 = r0 ^ 0xffffffffffffffff + 1367: 33 04 00 00 01 ff r4 = 0xffffffffff010000 + 1373: 83 44 00 ff i32 r4 = r4 + 0xffffffffffffff00 + 1377: ab 41 2e jump 1423 if r1 != r4 + : @58 + 1380: 33 05 1a r5 = 0x1a + 1383: 33 00 ff r0 = 0xffffffffffffffff + 1386: 33 04 ff r4 = 0xffffffffffffffff + 1389: ab 40 22 jump 1423 if r0 != r4 + : @59 + 1392: 33 05 1b r5 = 0x1b + 1395: 33 00 00 10 11 11 r0 = 0x11111000 + 1401: 83 00 11 01 i32 r0 = r0 + 0x111 + 1405: 33 01 00 20 22 22 r1 = 0x22222000 + 1411: 83 11 22 02 i32 r1 = r1 + 0x222 + 1415: 33 04 r4 = 0 + 1417: 52 04 06 jump 1423 if r4 != 0 + : @60 + 1420: 52 05 04 jump 1424 if r5 != 0 + : @61 + 1423: 00 trap + : @62 + 1424: 28 70 fa jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r1 = 0x22222222 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0xfffffffff00ff00f (initially was 0x0) + * r5 = 0x1b (initially was 0x0) + * r8 = 0xffffffffffffffff (initially was 0x0) + * r9 = 0xff00ff0 (initially was 0x0) + * r10 = 0x2 (initially was 0x0) + * r11 = 0xfffffffff00ff00f (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9498 + + +## riscv_rv64uzbb_zext_h + +``` + : @0 + 0: 33 00 00 00 01 r0 = 0x10000 + 5: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 8: 97 00 10 r0 = r0 << 0x10 + 11: 32 00 jump [r0 + 0] + : @1 + 13: 33 05 02 r5 = 0x2 + 16: 33 00 r0 = 0 + 18: 6e 0b r11 = zext.h r0 + 20: 33 04 r4 = 0 + 22: ab 4b 2b 02 jump 577 if r11 != r4 + : @2 + 26: 33 05 03 r5 = 0x3 + 29: 33 00 01 r0 = 0x1 + 32: 6e 0b r11 = zext.h r0 + 34: 33 04 01 r4 = 0x1 + 37: ab 4b 1c 02 jump 577 if r11 != r4 + : @3 + 41: 33 05 04 r5 = 0x4 + 44: 33 00 03 r0 = 0x3 + 47: 6e 0b r11 = zext.h r0 + 49: 33 04 03 r4 = 0x3 + 52: ab 4b 0d 02 jump 577 if r11 != r4 + : @4 + 56: 33 05 05 r5 = 0x5 + 59: 33 00 00 80 r0 = 0xffffffffffff8000 + 63: 6e 0b r11 = zext.h r0 + 65: 33 04 00 80 00 r4 = 0x8000 + 70: ab 4b fb 01 jump 577 if r11 != r4 + : @5 + 74: 33 05 06 r5 = 0x6 + 77: 33 00 00 00 80 00 r0 = 0x800000 + 83: 6e 0b r11 = zext.h r0 + 85: 33 04 r4 = 0 + 87: ab 4b ea 01 jump 577 if r11 != r4 + : @6 + 91: 33 05 07 r5 = 0x7 + 94: 33 00 05 r0 = 0x5 + 97: 97 00 21 r0 = r0 << 0x21 + 100: 95 00 ff r0 = r0 + 0xffffffffffffffff + 103: 97 00 0f r0 = r0 << 0xf + 106: 6e 0b r11 = zext.h r0 + 108: 33 04 00 80 00 r4 = 0x8000 + 113: ab 4b d0 01 jump 577 if r11 != r4 + : @7 + 117: 33 05 08 r5 = 0x8 + 120: 33 00 00 80 00 r0 = 0x8000 + 125: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 128: 6e 0b r11 = zext.h r0 + 130: 33 04 00 80 00 r4 = 0x8000 + 135: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 138: ab 4b b7 01 jump 577 if r11 != r4 + : @8 + 142: 33 05 09 r5 = 0x9 + 145: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 151: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 154: 6e 0b r11 = zext.h r0 + 156: 33 04 00 00 01 r4 = 0x10000 + 161: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 164: ab 4b 9d 01 jump 577 if r11 != r4 + : @9 + 168: 33 05 0a r5 = 0xa + 171: 33 00 00 00 08 r0 = 0x80000 + 176: 83 00 ff i32 r0 = r0 + 0xffffffffffffffff + 179: 6e 0b r11 = zext.h r0 + 181: 33 04 00 00 01 r4 = 0x10000 + 186: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 189: ab 4b 84 01 jump 577 if r11 != r4 + : @10 + 193: 33 05 0b r5 = 0xb + 196: 33 00 00 00 00 80 r0 = 0xffffffff80000000 + 202: 6e 0b r11 = zext.h r0 + 204: 33 04 r4 = 0 + 206: ab 4b 73 01 jump 577 if r11 != r4 + : @11 + 210: 33 05 0c r5 = 0xc + 213: 33 00 00 c0 ab 7f r0 = 0x7fabc000 + 219: 83 00 89 07 i32 r0 = r0 + 0x789 + 223: 97 00 0d r0 = r0 << 0xd + 226: 95 00 f5 01 r0 = r0 + 0x1f5 + 230: 97 00 0c r0 = r0 << 0xc + 233: 6e 0b r11 = zext.h r0 + 235: 33 04 00 50 r4 = 0x5000 + 239: ab 4b 52 01 jump 577 if r11 != r4 + : @12 + 243: 33 05 0d r5 = 0xd + 246: 33 00 ff r0 = 0xffffffffffffffff + 249: 97 00 3f r0 = r0 << 0x3f + 252: 6e 0b r11 = zext.h r0 + 254: 33 04 r4 = 0 + 256: ab 4b 41 01 jump 577 if r11 != r4 + : @13 + 260: 33 05 0e r5 = 0xe + 263: 33 00 0e r0 = 0xe + 266: 6e 0b r11 = zext.h r0 + 268: 33 04 0e r4 = 0xe + 271: ab 4b 32 01 jump 577 if r11 != r4 + : @14 + 275: 33 05 0f r5 = 0xf + 278: 33 00 fd r0 = 0xfffffffffffffffd + 281: 97 00 20 r0 = r0 << 0x20 + 284: 95 00 19 r0 = r0 + 0x19 + 287: 97 00 11 r0 = r0 << 0x11 + 290: 95 00 01 04 r0 = r0 + 0x401 + 294: 97 00 0c r0 = r0 << 0xc + 297: 95 00 41 03 r0 = r0 + 0x341 + 301: 6e 0b r11 = zext.h r0 + 303: 33 04 00 10 r4 = 0x1000 + 307: 83 44 41 03 i32 r4 = r4 + 0x341 + 311: ab 4b 0a 01 jump 577 if r11 != r4 + : @15 + 315: 33 05 10 r5 = 0x10 + 318: 33 00 0d r0 = 0xd + 321: 6e 00 r0 = zext.h r0 + 323: 33 04 0d r4 = 0xd + 326: ab 40 fb 00 jump 577 if r0 != r4 + : @16 + 330: 33 05 11 r5 = 0x11 + 333: 33 00 0b r0 = 0xb + 336: 6e 00 r0 = zext.h r0 + 338: 33 04 0b r4 = 0xb + 341: ab 40 ec 00 jump 577 if r0 != r4 + : @17 + 345: 33 05 12 r5 = 0x12 + 348: 33 0a r10 = 0 + 350: 01 fallthrough + : @18 + 351: 33 00 0d r0 = 0xd + 354: 6e 0b r11 = zext.h r0 + 356: 64 b3 r3 = r11 + 358: 95 aa 01 r10 = r10 + 0x1 + 361: 33 02 02 r2 = 0x2 + 364: ab 2a f3 jump 351 if r10 != r2 + : @19 + 367: 33 04 0d r4 = 0xd + 370: ab 43 cf 00 jump 577 if r3 != r4 + : @20 + 374: 33 05 1d r5 = 0x1d + 377: 33 0a r10 = 0 + 379: 01 fallthrough + : @21 + 380: 33 00 13 r0 = 0x13 + 383: 6e 0b r11 = zext.h r0 + 385: 64 b3 r3 = r11 + 387: 95 aa 01 r10 = r10 + 0x1 + 390: 33 02 02 r2 = 0x2 + 393: ab 2a f3 jump 380 if r10 != r2 + : @22 + 396: 33 04 13 r4 = 0x13 + 399: ab 43 b2 00 jump 577 if r3 != r4 + : @23 + 403: 33 05 14 r5 = 0x14 + 406: 33 0a r10 = 0 + 408: 01 fallthrough + : @24 + 409: 33 00 22 r0 = 0x22 + 412: 6e 0b r11 = zext.h r0 + 414: 64 b3 r3 = r11 + 416: 95 aa 01 r10 = r10 + 0x1 + 419: 33 02 02 r2 = 0x2 + 422: ab 2a f3 jump 409 if r10 != r2 + : @25 + 425: 33 04 22 r4 = 0x22 + 428: ab 43 95 00 jump 577 if r3 != r4 + : @26 + 432: 33 05 15 r5 = 0x15 + 435: 33 00 00 80 7f r0 = 0x7f8000 + 440: 6e 0b r11 = zext.h r0 + 442: 33 04 00 80 00 r4 = 0x8000 + 447: ab 4b 82 00 jump 577 if r11 != r4 + : @27 + 451: 33 05 16 r5 = 0x16 + 454: 33 00 00 80 80 00 r0 = 0x808000 + 460: 6e 0b r11 = zext.h r0 + 462: 33 04 00 80 00 r4 = 0x8000 + 467: ab 4b 6e jump 577 if r11 != r4 + : @28 + 470: 33 05 17 r5 = 0x17 + 473: 33 00 00 80 80 01 r0 = 0x1808000 + 479: 6e 0b r11 = zext.h r0 + 481: 33 04 00 80 00 r4 = 0x8000 + 486: ab 4b 5b jump 577 if r11 != r4 + : @29 + 489: 33 05 18 r5 = 0x18 + 492: 33 00 00 00 06 r0 = 0x60000 + 497: 83 00 01 i32 r0 = r0 + 0x1 + 500: 97 00 0f r0 = r0 << 0xf + 503: 95 00 ff r0 = r0 + 0xffffffffffffffff + 506: 6e 0b r11 = zext.h r0 + 508: 33 04 00 80 00 r4 = 0x8000 + 513: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 516: ab 4b 3d jump 577 if r11 != r4 + : @30 + 519: 33 05 19 r5 = 0x19 + 522: 33 00 0f r0 = 0xf + 525: 97 00 1f r0 = r0 << 0x1f + 528: 95 00 ff r0 = r0 + 0xffffffffffffffff + 531: 6e 0b r11 = zext.h r0 + 533: 33 04 00 00 01 r4 = 0x10000 + 538: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 541: ab 4b 24 jump 577 if r11 != r4 + : @31 + 544: 33 05 1a r5 = 0x1a + 547: 33 00 00 e0 01 r0 = 0x1e000 + 552: 83 00 01 i32 r0 = r0 + 0x1 + 555: 97 00 13 r0 = r0 << 0x13 + 558: 95 00 ff r0 = r0 + 0xffffffffffffffff + 561: 6e 0b r11 = zext.h r0 + 563: 33 04 00 00 01 r4 = 0x10000 + 568: 83 44 ff i32 r4 = r4 + 0xffffffffffffffff + 571: ab 4b 06 jump 577 if r11 != r4 + : @32 + 574: 52 05 04 jump 578 if r5 != 0 + : @33 + 577: 00 trap + : @34 + 578: 28 be fd jump 0 +``` + +Registers after execution (only changed registers): + * r0 = 0xffff0000 (initially was 0x0) + * r2 = 0x2 (initially was 0x0) + * r3 = 0x22 (initially was 0x0) + * r4 = 0xffff (initially was 0x0) + * r5 = 0x1a (initially was 0x0) + * r10 = 0x2 (initially was 0x0) + * r11 = 0xffff (initially was 0x0) + +Program should end with: halt + +Final value of the program counter: 11 + +Gas consumed: 10000 -> 9801 + + diff --git a/pvm/programs/gas_basic_consume_all.json b/pvm/programs/gas_basic_consume_all.json new file mode 100644 index 00000000..13aa3f9a --- /dev/null +++ b/pvm/programs/gas_basic_consume_all.json @@ -0,0 +1,49 @@ +{ + "name": "gas_basic_consume_all", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 2, + "program": [ + 0, + 0, + 2, + 100, + 0, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 2, + "expected-memory": [], + "expected-gas": 0 +} \ No newline at end of file diff --git a/pvm/programs/inst_add_32.json b/pvm/programs/inst_add_32.json new file mode 100644 index 00000000..f449de32 --- /dev/null +++ b/pvm/programs/inst_add_32.json @@ -0,0 +1,50 @@ +{ + "name": "inst_add_32", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 190, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 3, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_add_32_with_overflow.json b/pvm/programs/inst_add_32_with_overflow.json new file mode 100644 index 00000000..1d3a0bc0 --- /dev/null +++ b/pvm/programs/inst_add_32_with_overflow.json @@ -0,0 +1,50 @@ +{ + "name": "inst_add_32_with_overflow", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18446744073709551615, + 2, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 190, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18446744073709551615, + 2, + 1, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_add_32_with_truncation.json b/pvm/programs/inst_add_32_with_truncation.json new file mode 100644 index 00000000..03a37059 --- /dev/null +++ b/pvm/programs/inst_add_32_with_truncation.json @@ -0,0 +1,50 @@ +{ + "name": "inst_add_32_with_truncation", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3689348814169248017, + 3689348814169248017, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 190, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3689348814169248017, + 3689348814169248017, + 572662306, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_add_32_with_truncation_and_sign_extension.json b/pvm/programs/inst_add_32_with_truncation_and_sign_extension.json new file mode 100644 index 00000000..4319e4b2 --- /dev/null +++ b/pvm/programs/inst_add_32_with_truncation_and_sign_extension.json @@ -0,0 +1,50 @@ +{ + "name": "inst_add_32_with_truncation_and_sign_extension", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3689348814455579170, + 3689348815600903782, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 190, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3689348814455579170, + 3689348815600903782, + 18446744071705233544, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_add_64.json b/pvm/programs/inst_add_64.json new file mode 100644 index 00000000..e272ee4f --- /dev/null +++ b/pvm/programs/inst_add_64.json @@ -0,0 +1,50 @@ +{ + "name": "inst_add_64", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 200, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 3, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_add_64_with_overflow.json b/pvm/programs/inst_add_64_with_overflow.json new file mode 100644 index 00000000..a442305f --- /dev/null +++ b/pvm/programs/inst_add_64_with_overflow.json @@ -0,0 +1,50 @@ +{ + "name": "inst_add_64_with_overflow", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18446744073709551615, + 2, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 200, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18446744073709551615, + 2, + 1, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_add_imm_32.json b/pvm/programs/inst_add_imm_32.json new file mode 100644 index 00000000..9dc54801 --- /dev/null +++ b/pvm/programs/inst_add_imm_32.json @@ -0,0 +1,50 @@ +{ + "name": "inst_add_imm_32", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 131, + 121, + 2, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 3, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_add_imm_32_with_truncation.json b/pvm/programs/inst_add_imm_32_with_truncation.json new file mode 100644 index 00000000..ac65af0a --- /dev/null +++ b/pvm/programs/inst_add_imm_32_with_truncation.json @@ -0,0 +1,53 @@ +{ + "name": "inst_add_imm_32_with_truncation", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3689348814169248017, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 6, + 131, + 121, + 17, + 17, + 17, + 17, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3689348814169248017, + 0, + 572662306, + 0, + 0, + 0 + ], + "expected-pc": 6, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_add_imm_32_with_truncation_and_sign_extension.json b/pvm/programs/inst_add_imm_32_with_truncation_and_sign_extension.json new file mode 100644 index 00000000..5372eb3f --- /dev/null +++ b/pvm/programs/inst_add_imm_32_with_truncation_and_sign_extension.json @@ -0,0 +1,53 @@ +{ + "name": "inst_add_imm_32_with_truncation_and_sign_extension", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3689348814455579170, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 6, + 131, + 121, + 102, + 102, + 102, + 102, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3689348814455579170, + 0, + 18446744071705233544, + 0, + 0, + 0 + ], + "expected-pc": 6, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_add_imm_64.json b/pvm/programs/inst_add_imm_64.json new file mode 100644 index 00000000..86e36f34 --- /dev/null +++ b/pvm/programs/inst_add_imm_64.json @@ -0,0 +1,50 @@ +{ + "name": "inst_add_imm_64", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1229782938247303441, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 149, + 121, + 2, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1229782938247303441, + 0, + 1229782938247303443, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_and.json b/pvm/programs/inst_and.json new file mode 100644 index 00000000..893d4fc4 --- /dev/null +++ b/pvm/programs/inst_and.json @@ -0,0 +1,50 @@ +{ + "name": "inst_and", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5, + 3, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 210, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5, + 3, + 1, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_and_imm.json b/pvm/programs/inst_and_imm.json new file mode 100644 index 00000000..552f5855 --- /dev/null +++ b/pvm/programs/inst_and_imm.json @@ -0,0 +1,50 @@ +{ + "name": "inst_and_imm", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 132, + 121, + 3, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5, + 0, + 1, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_branch_eq_imm_nok.json b/pvm/programs/inst_branch_eq_imm_nok.json new file mode 100644 index 00000000..8e5c013e --- /dev/null +++ b/pvm/programs/inst_branch_eq_imm_nok.json @@ -0,0 +1,69 @@ +{ + "name": "inst_branch_eq_imm_nok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 20, + 51, + 7, + 210, + 4, + 81, + 39, + 211, + 4, + 6, + 0, + 20, + 7, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 17, + 6, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1234, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 9, + "expected-memory": [], + "expected-gas": 9997 +} \ No newline at end of file diff --git a/pvm/programs/inst_branch_eq_imm_ok.json b/pvm/programs/inst_branch_eq_imm_ok.json new file mode 100644 index 00000000..bfcf6727 --- /dev/null +++ b/pvm/programs/inst_branch_eq_imm_ok.json @@ -0,0 +1,69 @@ +{ + "name": "inst_branch_eq_imm_ok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 20, + 51, + 7, + 210, + 4, + 81, + 39, + 210, + 4, + 6, + 0, + 20, + 7, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 17, + 6, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3735928559, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 20, + "expected-memory": [], + "expected-gas": 9996 +} \ No newline at end of file diff --git a/pvm/programs/inst_branch_eq_nok.json b/pvm/programs/inst_branch_eq_nok.json new file mode 100644 index 00000000..b7a979c2 --- /dev/null +++ b/pvm/programs/inst_branch_eq_nok.json @@ -0,0 +1,71 @@ +{ + "name": "inst_branch_eq_nok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 22, + 51, + 7, + 210, + 4, + 51, + 8, + 211, + 4, + 170, + 135, + 4, + 0, + 20, + 7, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 17, + 25, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1234, + 1235, + 0, + 0, + 0, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9996 +} \ No newline at end of file diff --git a/pvm/programs/inst_branch_eq_ok.json b/pvm/programs/inst_branch_eq_ok.json new file mode 100644 index 00000000..6fca5be4 --- /dev/null +++ b/pvm/programs/inst_branch_eq_ok.json @@ -0,0 +1,71 @@ +{ + "name": "inst_branch_eq_ok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 22, + 51, + 7, + 210, + 4, + 51, + 8, + 210, + 4, + 170, + 135, + 4, + 0, + 20, + 7, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 17, + 25, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3735928559, + 1234, + 0, + 0, + 0, + 0 + ], + "expected-pc": 22, + "expected-memory": [], + "expected-gas": 9995 +} \ No newline at end of file diff --git a/pvm/programs/inst_branch_greater_or_equal_signed_imm_nok.json b/pvm/programs/inst_branch_greater_or_equal_signed_imm_nok.json new file mode 100644 index 00000000..8233c65d --- /dev/null +++ b/pvm/programs/inst_branch_greater_or_equal_signed_imm_nok.json @@ -0,0 +1,67 @@ +{ + "name": "inst_branch_greater_or_equal_signed_imm_nok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 18, + 51, + 7, + 246, + 89, + 23, + 10, + 5, + 0, + 20, + 7, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 137, + 1, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18446744073709551606, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 7, + "expected-memory": [], + "expected-gas": 9997 +} \ No newline at end of file diff --git a/pvm/programs/inst_branch_greater_or_equal_signed_imm_ok.json b/pvm/programs/inst_branch_greater_or_equal_signed_imm_ok.json new file mode 100644 index 00000000..cec8e91e --- /dev/null +++ b/pvm/programs/inst_branch_greater_or_equal_signed_imm_ok.json @@ -0,0 +1,67 @@ +{ + "name": "inst_branch_greater_or_equal_signed_imm_ok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 18, + 51, + 7, + 10, + 89, + 23, + 246, + 5, + 0, + 20, + 7, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 137, + 1, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3735928559, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 18, + "expected-memory": [], + "expected-gas": 9996 +} \ No newline at end of file diff --git a/pvm/programs/inst_branch_greater_or_equal_signed_nok.json b/pvm/programs/inst_branch_greater_or_equal_signed_nok.json new file mode 100644 index 00000000..7f3755ae --- /dev/null +++ b/pvm/programs/inst_branch_greater_or_equal_signed_nok.json @@ -0,0 +1,69 @@ +{ + "name": "inst_branch_greater_or_equal_signed_nok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 20, + 51, + 7, + 246, + 51, + 8, + 10, + 175, + 135, + 4, + 0, + 20, + 7, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 73, + 6, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18446744073709551606, + 10, + 0, + 0, + 0, + 0 + ], + "expected-pc": 9, + "expected-memory": [], + "expected-gas": 9996 +} \ No newline at end of file diff --git a/pvm/programs/inst_branch_greater_or_equal_signed_ok.json b/pvm/programs/inst_branch_greater_or_equal_signed_ok.json new file mode 100644 index 00000000..1833ffd9 --- /dev/null +++ b/pvm/programs/inst_branch_greater_or_equal_signed_ok.json @@ -0,0 +1,69 @@ +{ + "name": "inst_branch_greater_or_equal_signed_ok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 20, + 51, + 7, + 10, + 51, + 8, + 246, + 175, + 135, + 4, + 0, + 20, + 7, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 73, + 6, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3735928559, + 18446744073709551606, + 0, + 0, + 0, + 0 + ], + "expected-pc": 20, + "expected-memory": [], + "expected-gas": 9995 +} \ No newline at end of file diff --git a/pvm/programs/inst_branch_greater_or_equal_unsigned_imm_nok.json b/pvm/programs/inst_branch_greater_or_equal_unsigned_imm_nok.json new file mode 100644 index 00000000..03ac6bf6 --- /dev/null +++ b/pvm/programs/inst_branch_greater_or_equal_unsigned_imm_nok.json @@ -0,0 +1,67 @@ +{ + "name": "inst_branch_greater_or_equal_unsigned_imm_nok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 18, + 51, + 7, + 10, + 85, + 23, + 246, + 5, + 0, + 20, + 7, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 137, + 1, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 7, + "expected-memory": [], + "expected-gas": 9997 +} \ No newline at end of file diff --git a/pvm/programs/inst_branch_greater_or_equal_unsigned_imm_ok.json b/pvm/programs/inst_branch_greater_or_equal_unsigned_imm_ok.json new file mode 100644 index 00000000..54afe337 --- /dev/null +++ b/pvm/programs/inst_branch_greater_or_equal_unsigned_imm_ok.json @@ -0,0 +1,67 @@ +{ + "name": "inst_branch_greater_or_equal_unsigned_imm_ok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 18, + 51, + 7, + 246, + 85, + 23, + 10, + 5, + 0, + 20, + 7, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 137, + 1, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3735928559, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 18, + "expected-memory": [], + "expected-gas": 9996 +} \ No newline at end of file diff --git a/pvm/programs/inst_branch_greater_or_equal_unsigned_nok.json b/pvm/programs/inst_branch_greater_or_equal_unsigned_nok.json new file mode 100644 index 00000000..a478d577 --- /dev/null +++ b/pvm/programs/inst_branch_greater_or_equal_unsigned_nok.json @@ -0,0 +1,69 @@ +{ + "name": "inst_branch_greater_or_equal_unsigned_nok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 20, + 51, + 7, + 10, + 51, + 8, + 246, + 174, + 135, + 4, + 0, + 20, + 7, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 73, + 6, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10, + 18446744073709551606, + 0, + 0, + 0, + 0 + ], + "expected-pc": 9, + "expected-memory": [], + "expected-gas": 9996 +} \ No newline at end of file diff --git a/pvm/programs/inst_branch_greater_or_equal_unsigned_ok.json b/pvm/programs/inst_branch_greater_or_equal_unsigned_ok.json new file mode 100644 index 00000000..3c372cb3 --- /dev/null +++ b/pvm/programs/inst_branch_greater_or_equal_unsigned_ok.json @@ -0,0 +1,69 @@ +{ + "name": "inst_branch_greater_or_equal_unsigned_ok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 20, + 51, + 7, + 246, + 51, + 8, + 10, + 174, + 135, + 4, + 0, + 20, + 7, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 73, + 6, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3735928559, + 10, + 0, + 0, + 0, + 0 + ], + "expected-pc": 20, + "expected-memory": [], + "expected-gas": 9995 +} \ No newline at end of file diff --git a/pvm/programs/inst_branch_greater_signed_imm_nok.json b/pvm/programs/inst_branch_greater_signed_imm_nok.json new file mode 100644 index 00000000..d587e693 --- /dev/null +++ b/pvm/programs/inst_branch_greater_signed_imm_nok.json @@ -0,0 +1,67 @@ +{ + "name": "inst_branch_greater_signed_imm_nok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 18, + 51, + 7, + 246, + 90, + 23, + 10, + 5, + 0, + 20, + 7, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 137, + 1, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18446744073709551606, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 7, + "expected-memory": [], + "expected-gas": 9997 +} \ No newline at end of file diff --git a/pvm/programs/inst_branch_greater_signed_imm_ok.json b/pvm/programs/inst_branch_greater_signed_imm_ok.json new file mode 100644 index 00000000..8d52c94a --- /dev/null +++ b/pvm/programs/inst_branch_greater_signed_imm_ok.json @@ -0,0 +1,67 @@ +{ + "name": "inst_branch_greater_signed_imm_ok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 18, + 51, + 7, + 10, + 90, + 23, + 246, + 5, + 0, + 20, + 7, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 137, + 1, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3735928559, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 18, + "expected-memory": [], + "expected-gas": 9996 +} \ No newline at end of file diff --git a/pvm/programs/inst_branch_greater_unsigned_imm_nok.json b/pvm/programs/inst_branch_greater_unsigned_imm_nok.json new file mode 100644 index 00000000..00395ce2 --- /dev/null +++ b/pvm/programs/inst_branch_greater_unsigned_imm_nok.json @@ -0,0 +1,67 @@ +{ + "name": "inst_branch_greater_unsigned_imm_nok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 18, + 51, + 7, + 10, + 86, + 23, + 246, + 5, + 0, + 20, + 7, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 137, + 1, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 7, + "expected-memory": [], + "expected-gas": 9997 +} \ No newline at end of file diff --git a/pvm/programs/inst_branch_greater_unsigned_imm_ok.json b/pvm/programs/inst_branch_greater_unsigned_imm_ok.json new file mode 100644 index 00000000..0ad183e6 --- /dev/null +++ b/pvm/programs/inst_branch_greater_unsigned_imm_ok.json @@ -0,0 +1,67 @@ +{ + "name": "inst_branch_greater_unsigned_imm_ok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 18, + 51, + 7, + 246, + 86, + 23, + 10, + 5, + 0, + 20, + 7, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 137, + 1, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3735928559, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 18, + "expected-memory": [], + "expected-gas": 9996 +} \ No newline at end of file diff --git a/pvm/programs/inst_branch_less_or_equal_signed_imm_nok.json b/pvm/programs/inst_branch_less_or_equal_signed_imm_nok.json new file mode 100644 index 00000000..77089784 --- /dev/null +++ b/pvm/programs/inst_branch_less_or_equal_signed_imm_nok.json @@ -0,0 +1,67 @@ +{ + "name": "inst_branch_less_or_equal_signed_imm_nok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 18, + 51, + 7, + 10, + 88, + 23, + 246, + 5, + 0, + 20, + 7, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 137, + 1, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 7, + "expected-memory": [], + "expected-gas": 9997 +} \ No newline at end of file diff --git a/pvm/programs/inst_branch_less_or_equal_signed_imm_ok.json b/pvm/programs/inst_branch_less_or_equal_signed_imm_ok.json new file mode 100644 index 00000000..d68c6418 --- /dev/null +++ b/pvm/programs/inst_branch_less_or_equal_signed_imm_ok.json @@ -0,0 +1,67 @@ +{ + "name": "inst_branch_less_or_equal_signed_imm_ok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 18, + 51, + 7, + 246, + 88, + 23, + 10, + 5, + 0, + 20, + 7, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 137, + 1, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3735928559, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 18, + "expected-memory": [], + "expected-gas": 9996 +} \ No newline at end of file diff --git a/pvm/programs/inst_branch_less_or_equal_unsigned_imm_nok.json b/pvm/programs/inst_branch_less_or_equal_unsigned_imm_nok.json new file mode 100644 index 00000000..9200c5be --- /dev/null +++ b/pvm/programs/inst_branch_less_or_equal_unsigned_imm_nok.json @@ -0,0 +1,67 @@ +{ + "name": "inst_branch_less_or_equal_unsigned_imm_nok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 18, + 51, + 7, + 246, + 84, + 23, + 10, + 5, + 0, + 20, + 7, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 137, + 1, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18446744073709551606, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 7, + "expected-memory": [], + "expected-gas": 9997 +} \ No newline at end of file diff --git a/pvm/programs/inst_branch_less_or_equal_unsigned_imm_ok.json b/pvm/programs/inst_branch_less_or_equal_unsigned_imm_ok.json new file mode 100644 index 00000000..b60f26f4 --- /dev/null +++ b/pvm/programs/inst_branch_less_or_equal_unsigned_imm_ok.json @@ -0,0 +1,67 @@ +{ + "name": "inst_branch_less_or_equal_unsigned_imm_ok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 18, + 51, + 7, + 10, + 84, + 23, + 246, + 5, + 0, + 20, + 7, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 137, + 1, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3735928559, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 18, + "expected-memory": [], + "expected-gas": 9996 +} \ No newline at end of file diff --git a/pvm/programs/inst_branch_less_signed_imm_nok.json b/pvm/programs/inst_branch_less_signed_imm_nok.json new file mode 100644 index 00000000..3028d442 --- /dev/null +++ b/pvm/programs/inst_branch_less_signed_imm_nok.json @@ -0,0 +1,67 @@ +{ + "name": "inst_branch_less_signed_imm_nok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 18, + 51, + 7, + 10, + 87, + 23, + 245, + 5, + 0, + 20, + 7, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 137, + 1, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 7, + "expected-memory": [], + "expected-gas": 9997 +} \ No newline at end of file diff --git a/pvm/programs/inst_branch_less_signed_imm_ok.json b/pvm/programs/inst_branch_less_signed_imm_ok.json new file mode 100644 index 00000000..0cfae81e --- /dev/null +++ b/pvm/programs/inst_branch_less_signed_imm_ok.json @@ -0,0 +1,67 @@ +{ + "name": "inst_branch_less_signed_imm_ok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 18, + 51, + 7, + 246, + 87, + 23, + 10, + 5, + 0, + 20, + 7, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 137, + 1, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3735928559, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 18, + "expected-memory": [], + "expected-gas": 9996 +} \ No newline at end of file diff --git a/pvm/programs/inst_branch_less_signed_nok.json b/pvm/programs/inst_branch_less_signed_nok.json new file mode 100644 index 00000000..42c49f3b --- /dev/null +++ b/pvm/programs/inst_branch_less_signed_nok.json @@ -0,0 +1,69 @@ +{ + "name": "inst_branch_less_signed_nok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 20, + 51, + 7, + 10, + 51, + 8, + 246, + 173, + 135, + 4, + 0, + 20, + 7, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 73, + 6, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10, + 18446744073709551606, + 0, + 0, + 0, + 0 + ], + "expected-pc": 9, + "expected-memory": [], + "expected-gas": 9996 +} \ No newline at end of file diff --git a/pvm/programs/inst_branch_less_signed_ok.json b/pvm/programs/inst_branch_less_signed_ok.json new file mode 100644 index 00000000..5d8de5f4 --- /dev/null +++ b/pvm/programs/inst_branch_less_signed_ok.json @@ -0,0 +1,69 @@ +{ + "name": "inst_branch_less_signed_ok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 20, + 51, + 7, + 246, + 51, + 8, + 10, + 173, + 135, + 4, + 0, + 20, + 7, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 73, + 6, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3735928559, + 10, + 0, + 0, + 0, + 0 + ], + "expected-pc": 20, + "expected-memory": [], + "expected-gas": 9995 +} \ No newline at end of file diff --git a/pvm/programs/inst_branch_less_unsigned_imm_nok.json b/pvm/programs/inst_branch_less_unsigned_imm_nok.json new file mode 100644 index 00000000..b3dc940c --- /dev/null +++ b/pvm/programs/inst_branch_less_unsigned_imm_nok.json @@ -0,0 +1,67 @@ +{ + "name": "inst_branch_less_unsigned_imm_nok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 18, + 51, + 7, + 246, + 83, + 23, + 10, + 5, + 0, + 20, + 7, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 137, + 1, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18446744073709551606, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 7, + "expected-memory": [], + "expected-gas": 9997 +} \ No newline at end of file diff --git a/pvm/programs/inst_branch_less_unsigned_imm_ok.json b/pvm/programs/inst_branch_less_unsigned_imm_ok.json new file mode 100644 index 00000000..eca76f11 --- /dev/null +++ b/pvm/programs/inst_branch_less_unsigned_imm_ok.json @@ -0,0 +1,67 @@ +{ + "name": "inst_branch_less_unsigned_imm_ok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 18, + 51, + 7, + 10, + 83, + 23, + 246, + 5, + 0, + 20, + 7, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 137, + 1, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3735928559, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 18, + "expected-memory": [], + "expected-gas": 9996 +} \ No newline at end of file diff --git a/pvm/programs/inst_branch_less_unsigned_nok.json b/pvm/programs/inst_branch_less_unsigned_nok.json new file mode 100644 index 00000000..873170c4 --- /dev/null +++ b/pvm/programs/inst_branch_less_unsigned_nok.json @@ -0,0 +1,69 @@ +{ + "name": "inst_branch_less_unsigned_nok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 20, + 51, + 7, + 246, + 51, + 8, + 10, + 172, + 135, + 4, + 0, + 20, + 7, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 73, + 6, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18446744073709551606, + 10, + 0, + 0, + 0, + 0 + ], + "expected-pc": 9, + "expected-memory": [], + "expected-gas": 9996 +} \ No newline at end of file diff --git a/pvm/programs/inst_branch_less_unsigned_ok.json b/pvm/programs/inst_branch_less_unsigned_ok.json new file mode 100644 index 00000000..f9294c2b --- /dev/null +++ b/pvm/programs/inst_branch_less_unsigned_ok.json @@ -0,0 +1,69 @@ +{ + "name": "inst_branch_less_unsigned_ok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 20, + 51, + 7, + 10, + 51, + 8, + 246, + 172, + 135, + 4, + 0, + 20, + 7, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 73, + 6, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3735928559, + 18446744073709551606, + 0, + 0, + 0, + 0 + ], + "expected-pc": 20, + "expected-memory": [], + "expected-gas": 9995 +} \ No newline at end of file diff --git a/pvm/programs/inst_branch_not_eq_imm_nok.json b/pvm/programs/inst_branch_not_eq_imm_nok.json new file mode 100644 index 00000000..34b9f1f0 --- /dev/null +++ b/pvm/programs/inst_branch_not_eq_imm_nok.json @@ -0,0 +1,69 @@ +{ + "name": "inst_branch_not_eq_imm_nok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 20, + 51, + 7, + 210, + 4, + 82, + 39, + 210, + 4, + 6, + 0, + 20, + 7, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 17, + 6, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1234, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 9, + "expected-memory": [], + "expected-gas": 9997 +} \ No newline at end of file diff --git a/pvm/programs/inst_branch_not_eq_imm_ok.json b/pvm/programs/inst_branch_not_eq_imm_ok.json new file mode 100644 index 00000000..01431ef7 --- /dev/null +++ b/pvm/programs/inst_branch_not_eq_imm_ok.json @@ -0,0 +1,69 @@ +{ + "name": "inst_branch_not_eq_imm_ok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 20, + 51, + 7, + 210, + 4, + 82, + 39, + 211, + 4, + 6, + 0, + 20, + 7, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 17, + 6, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3735928559, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 20, + "expected-memory": [], + "expected-gas": 9996 +} \ No newline at end of file diff --git a/pvm/programs/inst_branch_not_eq_nok.json b/pvm/programs/inst_branch_not_eq_nok.json new file mode 100644 index 00000000..7baa6a52 --- /dev/null +++ b/pvm/programs/inst_branch_not_eq_nok.json @@ -0,0 +1,71 @@ +{ + "name": "inst_branch_not_eq_nok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 22, + 51, + 7, + 210, + 4, + 51, + 8, + 210, + 4, + 171, + 135, + 4, + 0, + 20, + 7, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 17, + 25, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1234, + 1234, + 0, + 0, + 0, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9996 +} \ No newline at end of file diff --git a/pvm/programs/inst_branch_not_eq_ok.json b/pvm/programs/inst_branch_not_eq_ok.json new file mode 100644 index 00000000..aafd1c4d --- /dev/null +++ b/pvm/programs/inst_branch_not_eq_ok.json @@ -0,0 +1,71 @@ +{ + "name": "inst_branch_not_eq_ok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 22, + 51, + 7, + 210, + 4, + 51, + 8, + 211, + 4, + 171, + 135, + 4, + 0, + 20, + 7, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 17, + 25, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3735928559, + 1235, + 0, + 0, + 0, + 0 + ], + "expected-pc": 22, + "expected-memory": [], + "expected-gas": 9995 +} \ No newline at end of file diff --git a/pvm/programs/inst_cmov_if_zero_imm_nok.json b/pvm/programs/inst_cmov_if_zero_imm_nok.json new file mode 100644 index 00000000..8fed0a0c --- /dev/null +++ b/pvm/programs/inst_cmov_if_zero_imm_nok.json @@ -0,0 +1,50 @@ +{ + "name": "inst_cmov_if_zero_imm_nok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 147, + 167, + 100, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_cmov_if_zero_imm_ok.json b/pvm/programs/inst_cmov_if_zero_imm_ok.json new file mode 100644 index 00000000..4acbf4af --- /dev/null +++ b/pvm/programs/inst_cmov_if_zero_imm_ok.json @@ -0,0 +1,50 @@ +{ + "name": "inst_cmov_if_zero_imm_ok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 147, + 167, + 100, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 100, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_cmov_if_zero_nok.json b/pvm/programs/inst_cmov_if_zero_nok.json new file mode 100644 index 00000000..c39d3542 --- /dev/null +++ b/pvm/programs/inst_cmov_if_zero_nok.json @@ -0,0 +1,50 @@ +{ + "name": "inst_cmov_if_zero_nok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 100, + 0, + 1, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 218, + 168, + 7, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 100, + 0, + 1, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_cmov_if_zero_ok.json b/pvm/programs/inst_cmov_if_zero_ok.json new file mode 100644 index 00000000..5ab334f1 --- /dev/null +++ b/pvm/programs/inst_cmov_if_zero_ok.json @@ -0,0 +1,50 @@ +{ + "name": "inst_cmov_if_zero_ok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 100, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 218, + 168, + 7, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 100, + 100, + 0, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_div_signed_32.json b/pvm/programs/inst_div_signed_32.json new file mode 100644 index 00000000..6551a6b8 --- /dev/null +++ b/pvm/programs/inst_div_signed_32.json @@ -0,0 +1,50 @@ +{ + "name": "inst_div_signed_32", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2147483664, + 7, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 194, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2147483664, + 7, + 18446744073402768240, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_div_signed_32_by_zero.json b/pvm/programs/inst_div_signed_32_by_zero.json new file mode 100644 index 00000000..3439985b --- /dev/null +++ b/pvm/programs/inst_div_signed_32_by_zero.json @@ -0,0 +1,50 @@ +{ + "name": "inst_div_signed_32_by_zero", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2147483664, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 194, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2147483664, + 0, + 18446744073709551615, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_div_signed_32_with_overflow.json b/pvm/programs/inst_div_signed_32_with_overflow.json new file mode 100644 index 00000000..033f90c4 --- /dev/null +++ b/pvm/programs/inst_div_signed_32_with_overflow.json @@ -0,0 +1,50 @@ +{ + "name": "inst_div_signed_32_with_overflow", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2147483648, + 4294967295, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 194, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2147483648, + 4294967295, + 18446744071562067968, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_div_signed_64.json b/pvm/programs/inst_div_signed_64.json new file mode 100644 index 00000000..423db451 --- /dev/null +++ b/pvm/programs/inst_div_signed_64.json @@ -0,0 +1,50 @@ +{ + "name": "inst_div_signed_64", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9223372036854775824, + 7, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 204, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9223372036854775824, + 7, + 17129119497016012218, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_div_signed_64_by_zero.json b/pvm/programs/inst_div_signed_64_by_zero.json new file mode 100644 index 00000000..b18128c2 --- /dev/null +++ b/pvm/programs/inst_div_signed_64_by_zero.json @@ -0,0 +1,50 @@ +{ + "name": "inst_div_signed_64_by_zero", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2147483664, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 204, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2147483664, + 0, + 18446744073709551615, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_div_signed_64_with_overflow.json b/pvm/programs/inst_div_signed_64_with_overflow.json new file mode 100644 index 00000000..2eea078a --- /dev/null +++ b/pvm/programs/inst_div_signed_64_with_overflow.json @@ -0,0 +1,50 @@ +{ + "name": "inst_div_signed_64_with_overflow", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9223372036854775808, + 18446744073709551615, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 204, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9223372036854775808, + 18446744073709551615, + 9223372036854775808, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_div_unsigned_32.json b/pvm/programs/inst_div_unsigned_32.json new file mode 100644 index 00000000..6d44a245 --- /dev/null +++ b/pvm/programs/inst_div_unsigned_32.json @@ -0,0 +1,50 @@ +{ + "name": "inst_div_unsigned_32", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2147483664, + 7, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 193, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2147483664, + 7, + 306783380, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_div_unsigned_32_by_zero.json b/pvm/programs/inst_div_unsigned_32_by_zero.json new file mode 100644 index 00000000..8aa98745 --- /dev/null +++ b/pvm/programs/inst_div_unsigned_32_by_zero.json @@ -0,0 +1,50 @@ +{ + "name": "inst_div_unsigned_32_by_zero", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2147483664, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 193, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2147483664, + 0, + 18446744073709551615, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_div_unsigned_32_with_overflow.json b/pvm/programs/inst_div_unsigned_32_with_overflow.json new file mode 100644 index 00000000..855dedc7 --- /dev/null +++ b/pvm/programs/inst_div_unsigned_32_with_overflow.json @@ -0,0 +1,50 @@ +{ + "name": "inst_div_unsigned_32_with_overflow", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2147483648, + 4294967295, + 4660, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 193, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2147483648, + 4294967295, + 0, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_div_unsigned_64.json b/pvm/programs/inst_div_unsigned_64.json new file mode 100644 index 00000000..699e58d6 --- /dev/null +++ b/pvm/programs/inst_div_unsigned_64.json @@ -0,0 +1,50 @@ +{ + "name": "inst_div_unsigned_64", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9223372036854775824, + 7, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 203, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9223372036854775824, + 7, + 1317624576693539403, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_div_unsigned_64_by_zero.json b/pvm/programs/inst_div_unsigned_64_by_zero.json new file mode 100644 index 00000000..a933cce3 --- /dev/null +++ b/pvm/programs/inst_div_unsigned_64_by_zero.json @@ -0,0 +1,50 @@ +{ + "name": "inst_div_unsigned_64_by_zero", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9223372036854775824, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 203, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9223372036854775824, + 0, + 18446744073709551615, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_div_unsigned_64_with_overflow.json b/pvm/programs/inst_div_unsigned_64_with_overflow.json new file mode 100644 index 00000000..ab01eea3 --- /dev/null +++ b/pvm/programs/inst_div_unsigned_64_with_overflow.json @@ -0,0 +1,50 @@ +{ + "name": "inst_div_unsigned_64_with_overflow", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9223372036854775808, + 18446744073709551615, + 4660, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 203, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9223372036854775808, + 18446744073709551615, + 0, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_fallthrough.json b/pvm/programs/inst_fallthrough.json new file mode 100644 index 00000000..1f220928 --- /dev/null +++ b/pvm/programs/inst_fallthrough.json @@ -0,0 +1,48 @@ +{ + "name": "inst_fallthrough", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 1, + 1, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 1, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_jump.json b/pvm/programs/inst_jump.json new file mode 100644 index 00000000..94a33065 --- /dev/null +++ b/pvm/programs/inst_jump.json @@ -0,0 +1,66 @@ +{ + "name": "inst_jump", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 17, + 51, + 7, + 210, + 4, + 40, + 3, + 0, + 20, + 7, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 209, + 0, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3735928559, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 17, + "expected-memory": [], + "expected-gas": 9996 +} \ No newline at end of file diff --git a/pvm/programs/inst_jump_indirect_invalid_djump_to_zero_nok.json b/pvm/programs/inst_jump_indirect_invalid_djump_to_zero_nok.json new file mode 100644 index 00000000..1a51b051 --- /dev/null +++ b/pvm/programs/inst_jump_indirect_invalid_djump_to_zero_nok.json @@ -0,0 +1,49 @@ +{ + "name": "inst_jump_indirect_invalid_djump_to_zero_nok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 2, + 50, + 7, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 0, + "expected-memory": [], + "expected-gas": 9999 +} \ No newline at end of file diff --git a/pvm/programs/inst_jump_indirect_misaligned_djump_with_offset_nok.json b/pvm/programs/inst_jump_indirect_misaligned_djump_with_offset_nok.json new file mode 100644 index 00000000..265e2665 --- /dev/null +++ b/pvm/programs/inst_jump_indirect_misaligned_djump_with_offset_nok.json @@ -0,0 +1,67 @@ +{ + "name": "inst_jump_indirect_misaligned_djump_with_offset_nok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 1, + 1, + 17, + 7, + 51, + 7, + 2, + 50, + 7, + 1, + 0, + 20, + 8, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 201, + 0, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_jump_indirect_misaligned_djump_without_offset_nok.json b/pvm/programs/inst_jump_indirect_misaligned_djump_without_offset_nok.json new file mode 100644 index 00000000..8b754b95 --- /dev/null +++ b/pvm/programs/inst_jump_indirect_misaligned_djump_without_offset_nok.json @@ -0,0 +1,69 @@ +{ + "name": "inst_jump_indirect_misaligned_djump_without_offset_nok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 1, + 1, + 19, + 9, + 51, + 7, + 2, + 149, + 119, + 1, + 50, + 7, + 0, + 20, + 8, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 73, + 3, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 6, + "expected-memory": [], + "expected-gas": 9997 +} \ No newline at end of file diff --git a/pvm/programs/inst_jump_indirect_with_offset_ok.json b/pvm/programs/inst_jump_indirect_with_offset_ok.json new file mode 100644 index 00000000..043c4659 --- /dev/null +++ b/pvm/programs/inst_jump_indirect_with_offset_ok.json @@ -0,0 +1,70 @@ +{ + "name": "inst_jump_indirect_with_offset_ok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 1, + 1, + 20, + 10, + 51, + 7, + 2, + 149, + 119, + 156, + 50, + 7, + 100, + 0, + 20, + 8, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 73, + 6, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18446744073709551518, + 3735928559, + 0, + 0, + 0, + 0 + ], + "expected-pc": 20, + "expected-memory": [], + "expected-gas": 9995 +} \ No newline at end of file diff --git a/pvm/programs/inst_jump_indirect_without_offset_ok.json b/pvm/programs/inst_jump_indirect_without_offset_ok.json new file mode 100644 index 00000000..dcad2922 --- /dev/null +++ b/pvm/programs/inst_jump_indirect_without_offset_ok.json @@ -0,0 +1,65 @@ +{ + "name": "inst_jump_indirect_without_offset_ok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 1, + 1, + 16, + 6, + 51, + 7, + 2, + 50, + 7, + 0, + 20, + 8, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 105, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 3735928559, + 0, + 0, + 0, + 0 + ], + "expected-pc": 16, + "expected-memory": [], + "expected-gas": 9996 +} \ No newline at end of file diff --git a/pvm/programs/inst_load_i16.json b/pvm/programs/inst_load_i16.json new file mode 100644 index 00000000..2f7633bd --- /dev/null +++ b/pvm/programs/inst_load_i16.json @@ -0,0 +1,74 @@ +{ + "name": "inst_load_i16", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3735928559, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 131072, + "contents": [ + 129, + 130 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 5, + 55, + 7, + 0, + 0, + 2, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18446744073709519489, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 5, + "expected-memory": [ + { + "address": 131072, + "contents": [ + 129, + 130 + ] + } + ], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_load_i32.json b/pvm/programs/inst_load_i32.json new file mode 100644 index 00000000..f3fe69a9 --- /dev/null +++ b/pvm/programs/inst_load_i32.json @@ -0,0 +1,78 @@ +{ + "name": "inst_load_i32", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3735928559, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 131072, + "contents": [ + 129, + 130, + 131, + 132 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 5, + 57, + 7, + 0, + 0, + 2, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18446744071637795457, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 5, + "expected-memory": [ + { + "address": 131072, + "contents": [ + 129, + 130, + 131, + 132 + ] + } + ], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_load_i8.json b/pvm/programs/inst_load_i8.json new file mode 100644 index 00000000..51e99cb8 --- /dev/null +++ b/pvm/programs/inst_load_i8.json @@ -0,0 +1,72 @@ +{ + "name": "inst_load_i8", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3735928559, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 131072, + "contents": [ + 129 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 5, + 53, + 7, + 0, + 0, + 2, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18446744073709551489, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 5, + "expected-memory": [ + { + "address": 131072, + "contents": [ + 129 + ] + } + ], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_load_imm.json b/pvm/programs/inst_load_imm.json new file mode 100644 index 00000000..4f828487 --- /dev/null +++ b/pvm/programs/inst_load_imm.json @@ -0,0 +1,58 @@ +{ + "name": "inst_load_imm", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 10, + 20, + 7, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 1, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3735928559, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 10, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_load_imm_64.json b/pvm/programs/inst_load_imm_64.json new file mode 100644 index 00000000..dc8b2df7 --- /dev/null +++ b/pvm/programs/inst_load_imm_64.json @@ -0,0 +1,58 @@ +{ + "name": "inst_load_imm_64", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 10, + 20, + 7, + 239, + 190, + 173, + 222, + 239, + 190, + 173, + 222, + 1, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16045690984833335023, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 10, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_load_imm_and_jump.json b/pvm/programs/inst_load_imm_and_jump.json new file mode 100644 index 00000000..f0fced3e --- /dev/null +++ b/pvm/programs/inst_load_imm_and_jump.json @@ -0,0 +1,64 @@ +{ + "name": "inst_load_imm_and_jump", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 16, + 80, + 39, + 210, + 4, + 6, + 0, + 20, + 8, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 97, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1234, + 3735928559, + 0, + 0, + 0, + 0 + ], + "expected-pc": 16, + "expected-memory": [], + "expected-gas": 9997 +} \ No newline at end of file diff --git a/pvm/programs/inst_load_imm_and_jump_indirect_different_regs_with_offset_ok.json b/pvm/programs/inst_load_imm_and_jump_indirect_different_regs_with_offset_ok.json new file mode 100644 index 00000000..ba46e33f --- /dev/null +++ b/pvm/programs/inst_load_imm_and_jump_indirect_different_regs_with_offset_ok.json @@ -0,0 +1,73 @@ +{ + "name": "inst_load_imm_and_jump_indirect_different_regs_with_offset_ok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 1, + 1, + 23, + 13, + 51, + 7, + 2, + 149, + 119, + 156, + 180, + 120, + 2, + 210, + 4, + 100, + 0, + 20, + 9, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 73, + 48, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18446744073709551518, + 1234, + 3735928559, + 0, + 0, + 0 + ], + "expected-pc": 23, + "expected-memory": [], + "expected-gas": 9995 +} \ No newline at end of file diff --git a/pvm/programs/inst_load_imm_and_jump_indirect_different_regs_without_offset_ok.json b/pvm/programs/inst_load_imm_and_jump_indirect_different_regs_without_offset_ok.json new file mode 100644 index 00000000..ea2ff40d --- /dev/null +++ b/pvm/programs/inst_load_imm_and_jump_indirect_different_regs_without_offset_ok.json @@ -0,0 +1,69 @@ +{ + "name": "inst_load_imm_and_jump_indirect_different_regs_without_offset_ok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 1, + 1, + 19, + 9, + 51, + 7, + 2, + 180, + 120, + 2, + 210, + 4, + 0, + 20, + 9, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 9, + 3, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1234, + 3735928559, + 0, + 0, + 0 + ], + "expected-pc": 19, + "expected-memory": [], + "expected-gas": 9996 +} \ No newline at end of file diff --git a/pvm/programs/inst_load_imm_and_jump_indirect_invalid_djump_to_zero_different_regs_without_offset_nok.json b/pvm/programs/inst_load_imm_and_jump_indirect_invalid_djump_to_zero_different_regs_without_offset_nok.json new file mode 100644 index 00000000..2b0a9a39 --- /dev/null +++ b/pvm/programs/inst_load_imm_and_jump_indirect_invalid_djump_to_zero_different_regs_without_offset_nok.json @@ -0,0 +1,64 @@ +{ + "name": "inst_load_imm_and_jump_indirect_invalid_djump_to_zero_different_regs_without_offset_nok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 16, + 180, + 120, + 2, + 210, + 4, + 0, + 20, + 9, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 97, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1234, + 0, + 0, + 0, + 0 + ], + "expected-pc": 0, + "expected-memory": [], + "expected-gas": 9999 +} \ No newline at end of file diff --git a/pvm/programs/inst_load_imm_and_jump_indirect_invalid_djump_to_zero_same_regs_without_offset_nok.json b/pvm/programs/inst_load_imm_and_jump_indirect_invalid_djump_to_zero_same_regs_without_offset_nok.json new file mode 100644 index 00000000..ddf8a2ce --- /dev/null +++ b/pvm/programs/inst_load_imm_and_jump_indirect_invalid_djump_to_zero_same_regs_without_offset_nok.json @@ -0,0 +1,64 @@ +{ + "name": "inst_load_imm_and_jump_indirect_invalid_djump_to_zero_same_regs_without_offset_nok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 16, + 180, + 119, + 2, + 210, + 4, + 0, + 20, + 9, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 97, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1234, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 0, + "expected-memory": [], + "expected-gas": 9999 +} \ No newline at end of file diff --git a/pvm/programs/inst_load_imm_and_jump_indirect_misaligned_djump_different_regs_with_offset_nok.json b/pvm/programs/inst_load_imm_and_jump_indirect_misaligned_djump_different_regs_with_offset_nok.json new file mode 100644 index 00000000..efcc2889 --- /dev/null +++ b/pvm/programs/inst_load_imm_and_jump_indirect_misaligned_djump_different_regs_with_offset_nok.json @@ -0,0 +1,70 @@ +{ + "name": "inst_load_imm_and_jump_indirect_misaligned_djump_different_regs_with_offset_nok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 1, + 1, + 20, + 10, + 51, + 7, + 2, + 180, + 120, + 2, + 210, + 4, + 1, + 0, + 20, + 9, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 9, + 6, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1234, + 0, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_load_imm_and_jump_indirect_misaligned_djump_different_regs_without_offset_nok.json b/pvm/programs/inst_load_imm_and_jump_indirect_misaligned_djump_different_regs_without_offset_nok.json new file mode 100644 index 00000000..99ded804 --- /dev/null +++ b/pvm/programs/inst_load_imm_and_jump_indirect_misaligned_djump_different_regs_without_offset_nok.json @@ -0,0 +1,72 @@ +{ + "name": "inst_load_imm_and_jump_indirect_misaligned_djump_different_regs_without_offset_nok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 1, + 1, + 22, + 12, + 51, + 7, + 2, + 149, + 119, + 1, + 180, + 120, + 2, + 210, + 4, + 0, + 20, + 9, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 73, + 24, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3, + 1234, + 0, + 0, + 0, + 0 + ], + "expected-pc": 6, + "expected-memory": [], + "expected-gas": 9997 +} \ No newline at end of file diff --git a/pvm/programs/inst_load_imm_and_jump_indirect_misaligned_djump_same_regs_with_offset_nok.json b/pvm/programs/inst_load_imm_and_jump_indirect_misaligned_djump_same_regs_with_offset_nok.json new file mode 100644 index 00000000..e8e84f47 --- /dev/null +++ b/pvm/programs/inst_load_imm_and_jump_indirect_misaligned_djump_same_regs_with_offset_nok.json @@ -0,0 +1,70 @@ +{ + "name": "inst_load_imm_and_jump_indirect_misaligned_djump_same_regs_with_offset_nok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 1, + 1, + 20, + 10, + 51, + 7, + 2, + 180, + 119, + 2, + 210, + 4, + 1, + 0, + 20, + 9, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 9, + 6, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1234, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_load_imm_and_jump_indirect_misaligned_djump_same_regs_without_offset_nok.json b/pvm/programs/inst_load_imm_and_jump_indirect_misaligned_djump_same_regs_without_offset_nok.json new file mode 100644 index 00000000..f3a30eaa --- /dev/null +++ b/pvm/programs/inst_load_imm_and_jump_indirect_misaligned_djump_same_regs_without_offset_nok.json @@ -0,0 +1,72 @@ +{ + "name": "inst_load_imm_and_jump_indirect_misaligned_djump_same_regs_without_offset_nok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 1, + 1, + 22, + 12, + 51, + 7, + 2, + 149, + 119, + 1, + 180, + 119, + 2, + 210, + 4, + 0, + 20, + 9, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 73, + 24, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1234, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 6, + "expected-memory": [], + "expected-gas": 9997 +} \ No newline at end of file diff --git a/pvm/programs/inst_load_imm_and_jump_indirect_same_regs_with_offset_ok.json b/pvm/programs/inst_load_imm_and_jump_indirect_same_regs_with_offset_ok.json new file mode 100644 index 00000000..233754a5 --- /dev/null +++ b/pvm/programs/inst_load_imm_and_jump_indirect_same_regs_with_offset_ok.json @@ -0,0 +1,73 @@ +{ + "name": "inst_load_imm_and_jump_indirect_same_regs_with_offset_ok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 1, + 1, + 23, + 13, + 51, + 7, + 2, + 149, + 119, + 156, + 180, + 119, + 2, + 210, + 4, + 100, + 0, + 20, + 9, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 73, + 48, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1234, + 0, + 3735928559, + 0, + 0, + 0 + ], + "expected-pc": 23, + "expected-memory": [], + "expected-gas": 9995 +} \ No newline at end of file diff --git a/pvm/programs/inst_load_imm_and_jump_indirect_same_regs_without_offset_ok.json b/pvm/programs/inst_load_imm_and_jump_indirect_same_regs_without_offset_ok.json new file mode 100644 index 00000000..81a5dee6 --- /dev/null +++ b/pvm/programs/inst_load_imm_and_jump_indirect_same_regs_without_offset_ok.json @@ -0,0 +1,69 @@ +{ + "name": "inst_load_imm_and_jump_indirect_same_regs_without_offset_ok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 1, + 1, + 19, + 9, + 51, + 7, + 2, + 180, + 119, + 2, + 210, + 4, + 0, + 20, + 9, + 239, + 190, + 173, + 222, + 0, + 0, + 0, + 0, + 9, + 3, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1234, + 0, + 3735928559, + 0, + 0, + 0 + ], + "expected-pc": 19, + "expected-memory": [], + "expected-gas": 9996 +} \ No newline at end of file diff --git a/pvm/programs/inst_load_indirect_i16_with_offset.json b/pvm/programs/inst_load_indirect_i16_with_offset.json new file mode 100644 index 00000000..0e5bee71 --- /dev/null +++ b/pvm/programs/inst_load_indirect_i16_with_offset.json @@ -0,0 +1,76 @@ +{ + "name": "inst_load_indirect_i16_with_offset", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 131072, + "contents": [ + 129, + 130, + 131, + 132 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 127, + 120, + 1, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 18446744073709519746, + 0, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [ + { + "address": 131072, + "contents": [ + 129, + 130, + 131, + 132 + ] + } + ], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_load_indirect_i16_without_offset.json b/pvm/programs/inst_load_indirect_i16_without_offset.json new file mode 100644 index 00000000..48814122 --- /dev/null +++ b/pvm/programs/inst_load_indirect_i16_without_offset.json @@ -0,0 +1,75 @@ +{ + "name": "inst_load_indirect_i16_without_offset", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 131072, + "contents": [ + 129, + 130, + 131, + 132 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 2, + 127, + 120, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 18446744073709519489, + 0, + 0, + 0, + 0 + ], + "expected-pc": 2, + "expected-memory": [ + { + "address": 131072, + "contents": [ + 129, + 130, + 131, + 132 + ] + } + ], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_load_indirect_i32_with_offset.json b/pvm/programs/inst_load_indirect_i32_with_offset.json new file mode 100644 index 00000000..74f0e5fe --- /dev/null +++ b/pvm/programs/inst_load_indirect_i32_with_offset.json @@ -0,0 +1,78 @@ +{ + "name": "inst_load_indirect_i32_with_offset", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 131072, + "contents": [ + 129, + 130, + 131, + 132, + 133 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 129, + 120, + 1, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 18446744071654638466, + 0, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [ + { + "address": 131072, + "contents": [ + 129, + 130, + 131, + 132, + 133 + ] + } + ], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_load_indirect_i32_without_offset.json b/pvm/programs/inst_load_indirect_i32_without_offset.json new file mode 100644 index 00000000..36fcf4a7 --- /dev/null +++ b/pvm/programs/inst_load_indirect_i32_without_offset.json @@ -0,0 +1,77 @@ +{ + "name": "inst_load_indirect_i32_without_offset", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 131072, + "contents": [ + 129, + 130, + 131, + 132, + 133 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 2, + 129, + 120, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 18446744071637795457, + 0, + 0, + 0, + 0 + ], + "expected-pc": 2, + "expected-memory": [ + { + "address": 131072, + "contents": [ + 129, + 130, + 131, + 132, + 133 + ] + } + ], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_load_indirect_i8_with_offset.json b/pvm/programs/inst_load_indirect_i8_with_offset.json new file mode 100644 index 00000000..15d65fd5 --- /dev/null +++ b/pvm/programs/inst_load_indirect_i8_with_offset.json @@ -0,0 +1,76 @@ +{ + "name": "inst_load_indirect_i8_with_offset", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 131072, + "contents": [ + 129, + 130, + 131, + 132 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 125, + 120, + 1, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 18446744073709551490, + 0, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [ + { + "address": 131072, + "contents": [ + 129, + 130, + 131, + 132 + ] + } + ], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_load_indirect_i8_without_offset.json b/pvm/programs/inst_load_indirect_i8_without_offset.json new file mode 100644 index 00000000..71588957 --- /dev/null +++ b/pvm/programs/inst_load_indirect_i8_without_offset.json @@ -0,0 +1,75 @@ +{ + "name": "inst_load_indirect_i8_without_offset", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 131072, + "contents": [ + 129, + 130, + 131, + 132 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 2, + 125, + 120, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 18446744073709551489, + 0, + 0, + 0, + 0 + ], + "expected-pc": 2, + "expected-memory": [ + { + "address": 131072, + "contents": [ + 129, + 130, + 131, + 132 + ] + } + ], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_load_indirect_u16_with_offset.json b/pvm/programs/inst_load_indirect_u16_with_offset.json new file mode 100644 index 00000000..fa8dd273 --- /dev/null +++ b/pvm/programs/inst_load_indirect_u16_with_offset.json @@ -0,0 +1,76 @@ +{ + "name": "inst_load_indirect_u16_with_offset", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 131072, + "contents": [ + 129, + 130, + 131, + 132 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 126, + 120, + 1, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 33666, + 0, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [ + { + "address": 131072, + "contents": [ + 129, + 130, + 131, + 132 + ] + } + ], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_load_indirect_u16_without_offset.json b/pvm/programs/inst_load_indirect_u16_without_offset.json new file mode 100644 index 00000000..58a09c85 --- /dev/null +++ b/pvm/programs/inst_load_indirect_u16_without_offset.json @@ -0,0 +1,75 @@ +{ + "name": "inst_load_indirect_u16_without_offset", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 131072, + "contents": [ + 129, + 130, + 131, + 132 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 2, + 126, + 120, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 33409, + 0, + 0, + 0, + 0 + ], + "expected-pc": 2, + "expected-memory": [ + { + "address": 131072, + "contents": [ + 129, + 130, + 131, + 132 + ] + } + ], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_load_indirect_u32_with_offset.json b/pvm/programs/inst_load_indirect_u32_with_offset.json new file mode 100644 index 00000000..2bda1444 --- /dev/null +++ b/pvm/programs/inst_load_indirect_u32_with_offset.json @@ -0,0 +1,78 @@ +{ + "name": "inst_load_indirect_u32_with_offset", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 131072, + "contents": [ + 17, + 34, + 51, + 68, + 85 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 128, + 120, + 1, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 1430532898, + 0, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [ + { + "address": 131072, + "contents": [ + 17, + 34, + 51, + 68, + 85 + ] + } + ], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_load_indirect_u32_without_offset.json b/pvm/programs/inst_load_indirect_u32_without_offset.json new file mode 100644 index 00000000..ca140b64 --- /dev/null +++ b/pvm/programs/inst_load_indirect_u32_without_offset.json @@ -0,0 +1,77 @@ +{ + "name": "inst_load_indirect_u32_without_offset", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 131072, + "contents": [ + 17, + 34, + 51, + 68, + 85 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 2, + 128, + 120, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 1144201745, + 0, + 0, + 0, + 0 + ], + "expected-pc": 2, + "expected-memory": [ + { + "address": 131072, + "contents": [ + 17, + 34, + 51, + 68, + 85 + ] + } + ], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_load_indirect_u64_with_offset.json b/pvm/programs/inst_load_indirect_u64_with_offset.json new file mode 100644 index 00000000..eafa9973 --- /dev/null +++ b/pvm/programs/inst_load_indirect_u64_with_offset.json @@ -0,0 +1,86 @@ +{ + "name": "inst_load_indirect_u64_with_offset", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 131072, + "contents": [ + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 130, + 120, + 1, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 9910319991864198018, + 0, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [ + { + "address": 131072, + "contents": [ + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137 + ] + } + ], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_load_indirect_u64_without_offset.json b/pvm/programs/inst_load_indirect_u64_without_offset.json new file mode 100644 index 00000000..67014e7b --- /dev/null +++ b/pvm/programs/inst_load_indirect_u64_without_offset.json @@ -0,0 +1,85 @@ +{ + "name": "inst_load_indirect_u64_without_offset", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 131072, + "contents": [ + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 2, + 130, + 120, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 9837979819026121345, + 0, + 0, + 0, + 0 + ], + "expected-pc": 2, + "expected-memory": [ + { + "address": 131072, + "contents": [ + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137 + ] + } + ], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_load_indirect_u8_with_offset.json b/pvm/programs/inst_load_indirect_u8_with_offset.json new file mode 100644 index 00000000..b8a72656 --- /dev/null +++ b/pvm/programs/inst_load_indirect_u8_with_offset.json @@ -0,0 +1,76 @@ +{ + "name": "inst_load_indirect_u8_with_offset", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 131072, + "contents": [ + 129, + 130, + 131, + 132 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 124, + 120, + 1, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 130, + 0, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [ + { + "address": 131072, + "contents": [ + 129, + 130, + 131, + 132 + ] + } + ], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_load_indirect_u8_without_offset.json b/pvm/programs/inst_load_indirect_u8_without_offset.json new file mode 100644 index 00000000..937f6e35 --- /dev/null +++ b/pvm/programs/inst_load_indirect_u8_without_offset.json @@ -0,0 +1,75 @@ +{ + "name": "inst_load_indirect_u8_without_offset", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 131072, + "contents": [ + 129, + 130, + 131, + 132 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 2, + 124, + 120, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 129, + 0, + 0, + 0, + 0 + ], + "expected-pc": 2, + "expected-memory": [ + { + "address": 131072, + "contents": [ + 129, + 130, + 131, + 132 + ] + } + ], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_load_u16.json b/pvm/programs/inst_load_u16.json new file mode 100644 index 00000000..bba179e6 --- /dev/null +++ b/pvm/programs/inst_load_u16.json @@ -0,0 +1,78 @@ +{ + "name": "inst_load_u16", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3735928559, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 131072, + "contents": [ + 18, + 52, + 86, + 120 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 5, + 54, + 7, + 0, + 0, + 2, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 13330, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 5, + "expected-memory": [ + { + "address": 131072, + "contents": [ + 18, + 52, + 86, + 120 + ] + } + ], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_load_u32.json b/pvm/programs/inst_load_u32.json new file mode 100644 index 00000000..53aba9ad --- /dev/null +++ b/pvm/programs/inst_load_u32.json @@ -0,0 +1,78 @@ +{ + "name": "inst_load_u32", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3735928559, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 131072, + "contents": [ + 18, + 52, + 86, + 120 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 5, + 56, + 7, + 0, + 0, + 2, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2018915346, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 5, + "expected-memory": [ + { + "address": 131072, + "contents": [ + 18, + 52, + 86, + 120 + ] + } + ], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_load_u64.json b/pvm/programs/inst_load_u64.json new file mode 100644 index 00000000..aac7dec9 --- /dev/null +++ b/pvm/programs/inst_load_u64.json @@ -0,0 +1,86 @@ +{ + "name": "inst_load_u64", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3735928559, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 131072, + "contents": [ + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 5, + 58, + 7, + 0, + 0, + 2, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9837979819026121345, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 5, + "expected-memory": [ + { + "address": 131072, + "contents": [ + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136 + ] + } + ], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_load_u8.json b/pvm/programs/inst_load_u8.json new file mode 100644 index 00000000..e528b92b --- /dev/null +++ b/pvm/programs/inst_load_u8.json @@ -0,0 +1,78 @@ +{ + "name": "inst_load_u8", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3735928559, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 131072, + "contents": [ + 18, + 52, + 86, + 120 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 5, + 52, + 7, + 0, + 0, + 2, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 5, + "expected-memory": [ + { + "address": 131072, + "contents": [ + 18, + 52, + 86, + 120 + ] + } + ], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_move_reg.json b/pvm/programs/inst_move_reg.json new file mode 100644 index 00000000..6494882c --- /dev/null +++ b/pvm/programs/inst_move_reg.json @@ -0,0 +1,49 @@ +{ + "name": "inst_move_reg", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 2, + 100, + 121, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0 + ], + "expected-pc": 2, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_mul_32.json b/pvm/programs/inst_mul_32.json new file mode 100644 index 00000000..a37698d2 --- /dev/null +++ b/pvm/programs/inst_mul_32.json @@ -0,0 +1,50 @@ +{ + "name": "inst_mul_32", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3, + 7, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 192, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3, + 7, + 21, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_mul_64.json b/pvm/programs/inst_mul_64.json new file mode 100644 index 00000000..7c18c8cb --- /dev/null +++ b/pvm/programs/inst_mul_64.json @@ -0,0 +1,50 @@ +{ + "name": "inst_mul_64", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3, + 7, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 202, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3, + 7, + 21, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_mul_imm_32.json b/pvm/programs/inst_mul_imm_32.json new file mode 100644 index 00000000..73cd6f21 --- /dev/null +++ b/pvm/programs/inst_mul_imm_32.json @@ -0,0 +1,50 @@ +{ + "name": "inst_mul_imm_32", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 135, + 121, + 7, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3, + 0, + 21, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_mul_imm_64.json b/pvm/programs/inst_mul_imm_64.json new file mode 100644 index 00000000..4ef7e8be --- /dev/null +++ b/pvm/programs/inst_mul_imm_64.json @@ -0,0 +1,50 @@ +{ + "name": "inst_mul_imm_64", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 150, + 121, + 7, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3, + 0, + 21, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_negate_and_add_imm_32.json b/pvm/programs/inst_negate_and_add_imm_32.json new file mode 100644 index 00000000..74385d6d --- /dev/null +++ b/pvm/programs/inst_negate_and_add_imm_32.json @@ -0,0 +1,50 @@ +{ + "name": "inst_negate_and_add_imm_32", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 141, + 137, + 1, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 18446744073709551615, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_negate_and_add_imm_64.json b/pvm/programs/inst_negate_and_add_imm_64.json new file mode 100644 index 00000000..53dd32b0 --- /dev/null +++ b/pvm/programs/inst_negate_and_add_imm_64.json @@ -0,0 +1,50 @@ +{ + "name": "inst_negate_and_add_imm_64", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 154, + 137, + 1, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 18446744073709551615, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_or.json b/pvm/programs/inst_or.json new file mode 100644 index 00000000..31a44c61 --- /dev/null +++ b/pvm/programs/inst_or.json @@ -0,0 +1,50 @@ +{ + "name": "inst_or", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5, + 3, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 212, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5, + 3, + 7, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_or_imm.json b/pvm/programs/inst_or_imm.json new file mode 100644 index 00000000..125999a8 --- /dev/null +++ b/pvm/programs/inst_or_imm.json @@ -0,0 +1,50 @@ +{ + "name": "inst_or_imm", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 134, + 121, + 3, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5, + 0, + 7, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_rem_signed_32.json b/pvm/programs/inst_rem_signed_32.json new file mode 100644 index 00000000..bceab49c --- /dev/null +++ b/pvm/programs/inst_rem_signed_32.json @@ -0,0 +1,50 @@ +{ + "name": "inst_rem_signed_32", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2147483665, + 7, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 196, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2147483665, + 7, + 18446744073709551610, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_rem_signed_32_by_zero.json b/pvm/programs/inst_rem_signed_32_by_zero.json new file mode 100644 index 00000000..65658e8f --- /dev/null +++ b/pvm/programs/inst_rem_signed_32_by_zero.json @@ -0,0 +1,50 @@ +{ + "name": "inst_rem_signed_32_by_zero", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2147483664, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 196, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2147483664, + 0, + 18446744071562067984, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_rem_signed_32_with_overflow.json b/pvm/programs/inst_rem_signed_32_with_overflow.json new file mode 100644 index 00000000..bffa3f82 --- /dev/null +++ b/pvm/programs/inst_rem_signed_32_with_overflow.json @@ -0,0 +1,50 @@ +{ + "name": "inst_rem_signed_32_with_overflow", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2147483648, + 4294967295, + 3735928559, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 196, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2147483648, + 4294967295, + 0, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_rem_signed_64.json b/pvm/programs/inst_rem_signed_64.json new file mode 100644 index 00000000..5c264453 --- /dev/null +++ b/pvm/programs/inst_rem_signed_64.json @@ -0,0 +1,50 @@ +{ + "name": "inst_rem_signed_64", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9223372036854775825, + 7, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 206, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9223372036854775825, + 7, + 18446744073709551611, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_rem_signed_64_by_zero.json b/pvm/programs/inst_rem_signed_64_by_zero.json new file mode 100644 index 00000000..781d4f6b --- /dev/null +++ b/pvm/programs/inst_rem_signed_64_by_zero.json @@ -0,0 +1,50 @@ +{ + "name": "inst_rem_signed_64_by_zero", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2147483664, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 206, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2147483664, + 0, + 2147483664, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_rem_signed_64_with_overflow.json b/pvm/programs/inst_rem_signed_64_with_overflow.json new file mode 100644 index 00000000..1eae1c71 --- /dev/null +++ b/pvm/programs/inst_rem_signed_64_with_overflow.json @@ -0,0 +1,50 @@ +{ + "name": "inst_rem_signed_64_with_overflow", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9223372036854775808, + 18446744073709551615, + 3735928559, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 206, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9223372036854775808, + 18446744073709551615, + 0, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_rem_unsigned_32.json b/pvm/programs/inst_rem_unsigned_32.json new file mode 100644 index 00000000..74220b5a --- /dev/null +++ b/pvm/programs/inst_rem_unsigned_32.json @@ -0,0 +1,50 @@ +{ + "name": "inst_rem_unsigned_32", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2147483664, + 7, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 195, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2147483664, + 7, + 4, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_rem_unsigned_32_by_zero.json b/pvm/programs/inst_rem_unsigned_32_by_zero.json new file mode 100644 index 00000000..dffdab57 --- /dev/null +++ b/pvm/programs/inst_rem_unsigned_32_by_zero.json @@ -0,0 +1,50 @@ +{ + "name": "inst_rem_unsigned_32_by_zero", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2147483664, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 195, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2147483664, + 0, + 18446744071562067984, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_rem_unsigned_64.json b/pvm/programs/inst_rem_unsigned_64.json new file mode 100644 index 00000000..72892ccb --- /dev/null +++ b/pvm/programs/inst_rem_unsigned_64.json @@ -0,0 +1,50 @@ +{ + "name": "inst_rem_unsigned_64", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9223372036854775824, + 7, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 205, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9223372036854775824, + 7, + 3, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_rem_unsigned_64_by_zero.json b/pvm/programs/inst_rem_unsigned_64_by_zero.json new file mode 100644 index 00000000..16415ceb --- /dev/null +++ b/pvm/programs/inst_rem_unsigned_64_by_zero.json @@ -0,0 +1,50 @@ +{ + "name": "inst_rem_unsigned_64_by_zero", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9223372036854775824, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 205, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9223372036854775824, + 0, + 9223372036854775824, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_ret_halt.json b/pvm/programs/inst_ret_halt.json new file mode 100644 index 00000000..a28b89fc --- /dev/null +++ b/pvm/programs/inst_ret_halt.json @@ -0,0 +1,49 @@ +{ + "name": "inst_ret_halt", + "initial-regs": [ + 4294901760, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 2, + 50, + 0, + 1 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 0, + "expected-memory": [], + "expected-gas": 9999 +} \ No newline at end of file diff --git a/pvm/programs/inst_ret_invalid.json b/pvm/programs/inst_ret_invalid.json new file mode 100644 index 00000000..899e7004 --- /dev/null +++ b/pvm/programs/inst_ret_invalid.json @@ -0,0 +1,49 @@ +{ + "name": "inst_ret_invalid", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 2, + 50, + 0, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 0, + "expected-memory": [], + "expected-gas": 9999 +} \ No newline at end of file diff --git a/pvm/programs/inst_set_greater_than_signed_imm_0.json b/pvm/programs/inst_set_greater_than_signed_imm_0.json new file mode 100644 index 00000000..7aee329a --- /dev/null +++ b/pvm/programs/inst_set_greater_than_signed_imm_0.json @@ -0,0 +1,50 @@ +{ + "name": "inst_set_greater_than_signed_imm_0", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18446744073709551606, + 0, + 3735928559, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 143, + 121, + 10, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18446744073709551606, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_set_greater_than_signed_imm_1.json b/pvm/programs/inst_set_greater_than_signed_imm_1.json new file mode 100644 index 00000000..cd4e29ea --- /dev/null +++ b/pvm/programs/inst_set_greater_than_signed_imm_1.json @@ -0,0 +1,50 @@ +{ + "name": "inst_set_greater_than_signed_imm_1", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 143, + 121, + 246, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10, + 0, + 1, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_set_greater_than_unsigned_imm_0.json b/pvm/programs/inst_set_greater_than_unsigned_imm_0.json new file mode 100644 index 00000000..8529f504 --- /dev/null +++ b/pvm/programs/inst_set_greater_than_unsigned_imm_0.json @@ -0,0 +1,50 @@ +{ + "name": "inst_set_greater_than_unsigned_imm_0", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10, + 0, + 3735928559, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 142, + 121, + 246, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_set_greater_than_unsigned_imm_1.json b/pvm/programs/inst_set_greater_than_unsigned_imm_1.json new file mode 100644 index 00000000..7703a7cf --- /dev/null +++ b/pvm/programs/inst_set_greater_than_unsigned_imm_1.json @@ -0,0 +1,50 @@ +{ + "name": "inst_set_greater_than_unsigned_imm_1", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18446744073709551606, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 142, + 121, + 10, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18446744073709551606, + 0, + 1, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_set_less_than_signed_0.json b/pvm/programs/inst_set_less_than_signed_0.json new file mode 100644 index 00000000..4655ba90 --- /dev/null +++ b/pvm/programs/inst_set_less_than_signed_0.json @@ -0,0 +1,50 @@ +{ + "name": "inst_set_less_than_signed_0", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10, + 18446744073709551606, + 3735928559, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 217, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10, + 18446744073709551606, + 0, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_set_less_than_signed_1.json b/pvm/programs/inst_set_less_than_signed_1.json new file mode 100644 index 00000000..adabe561 --- /dev/null +++ b/pvm/programs/inst_set_less_than_signed_1.json @@ -0,0 +1,50 @@ +{ + "name": "inst_set_less_than_signed_1", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18446744073709551606, + 10, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 217, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18446744073709551606, + 10, + 1, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_set_less_than_signed_imm_0.json b/pvm/programs/inst_set_less_than_signed_imm_0.json new file mode 100644 index 00000000..a68e31b5 --- /dev/null +++ b/pvm/programs/inst_set_less_than_signed_imm_0.json @@ -0,0 +1,50 @@ +{ + "name": "inst_set_less_than_signed_imm_0", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10, + 0, + 3735928559, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 137, + 121, + 246, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_set_less_than_signed_imm_1.json b/pvm/programs/inst_set_less_than_signed_imm_1.json new file mode 100644 index 00000000..cacf9ece --- /dev/null +++ b/pvm/programs/inst_set_less_than_signed_imm_1.json @@ -0,0 +1,50 @@ +{ + "name": "inst_set_less_than_signed_imm_1", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18446744073709551606, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 137, + 121, + 10, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18446744073709551606, + 0, + 1, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_set_less_than_unsigned_0.json b/pvm/programs/inst_set_less_than_unsigned_0.json new file mode 100644 index 00000000..8474e655 --- /dev/null +++ b/pvm/programs/inst_set_less_than_unsigned_0.json @@ -0,0 +1,50 @@ +{ + "name": "inst_set_less_than_unsigned_0", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18446744073709551606, + 10, + 3735928559, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 216, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18446744073709551606, + 10, + 0, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_set_less_than_unsigned_1.json b/pvm/programs/inst_set_less_than_unsigned_1.json new file mode 100644 index 00000000..71020dbf --- /dev/null +++ b/pvm/programs/inst_set_less_than_unsigned_1.json @@ -0,0 +1,50 @@ +{ + "name": "inst_set_less_than_unsigned_1", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10, + 18446744073709551606, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 216, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10, + 18446744073709551606, + 1, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_set_less_than_unsigned_imm_0.json b/pvm/programs/inst_set_less_than_unsigned_imm_0.json new file mode 100644 index 00000000..345f4ffa --- /dev/null +++ b/pvm/programs/inst_set_less_than_unsigned_imm_0.json @@ -0,0 +1,50 @@ +{ + "name": "inst_set_less_than_unsigned_imm_0", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18446744073709551606, + 0, + 3735928559, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 136, + 121, + 10, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18446744073709551606, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_set_less_than_unsigned_imm_1.json b/pvm/programs/inst_set_less_than_unsigned_imm_1.json new file mode 100644 index 00000000..cc7d23bc --- /dev/null +++ b/pvm/programs/inst_set_less_than_unsigned_imm_1.json @@ -0,0 +1,50 @@ +{ + "name": "inst_set_less_than_unsigned_imm_1", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 136, + 121, + 246, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10, + 0, + 1, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_shift_arithmetic_right_32.json b/pvm/programs/inst_shift_arithmetic_right_32.json new file mode 100644 index 00000000..c6193f58 --- /dev/null +++ b/pvm/programs/inst_shift_arithmetic_right_32.json @@ -0,0 +1,50 @@ +{ + "name": "inst_shift_arithmetic_right_32", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2147483765, + 3, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 199, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2147483765, + 3, + 18446744073441116174, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_shift_arithmetic_right_32_with_overflow.json b/pvm/programs/inst_shift_arithmetic_right_32_with_overflow.json new file mode 100644 index 00000000..c0b918e8 --- /dev/null +++ b/pvm/programs/inst_shift_arithmetic_right_32_with_overflow.json @@ -0,0 +1,50 @@ +{ + "name": "inst_shift_arithmetic_right_32_with_overflow", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2147483765, + 33, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 199, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2147483765, + 33, + 18446744072635809850, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_shift_arithmetic_right_64.json b/pvm/programs/inst_shift_arithmetic_right_64.json new file mode 100644 index 00000000..3c164b9f --- /dev/null +++ b/pvm/programs/inst_shift_arithmetic_right_64.json @@ -0,0 +1,50 @@ +{ + "name": "inst_shift_arithmetic_right_64", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9223372036854775925, + 3, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 209, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9223372036854775925, + 3, + 17293822569102704654, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_shift_arithmetic_right_64_with_overflow.json b/pvm/programs/inst_shift_arithmetic_right_64_with_overflow.json new file mode 100644 index 00000000..7a7271a7 --- /dev/null +++ b/pvm/programs/inst_shift_arithmetic_right_64_with_overflow.json @@ -0,0 +1,50 @@ +{ + "name": "inst_shift_arithmetic_right_64_with_overflow", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9223372036854775925, + 65, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 209, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9223372036854775925, + 65, + 13835058055282163770, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_shift_arithmetic_right_imm_32.json b/pvm/programs/inst_shift_arithmetic_right_imm_32.json new file mode 100644 index 00000000..21fc0193 --- /dev/null +++ b/pvm/programs/inst_shift_arithmetic_right_imm_32.json @@ -0,0 +1,50 @@ +{ + "name": "inst_shift_arithmetic_right_imm_32", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2147483765, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 140, + 121, + 3, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2147483765, + 0, + 18446744073441116174, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_shift_arithmetic_right_imm_64.json b/pvm/programs/inst_shift_arithmetic_right_imm_64.json new file mode 100644 index 00000000..b819f584 --- /dev/null +++ b/pvm/programs/inst_shift_arithmetic_right_imm_64.json @@ -0,0 +1,50 @@ +{ + "name": "inst_shift_arithmetic_right_imm_64", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18446744071562068085, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 153, + 121, + 3, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18446744071562068085, + 0, + 18446744073441116174, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_shift_arithmetic_right_imm_alt_32.json b/pvm/programs/inst_shift_arithmetic_right_imm_alt_32.json new file mode 100644 index 00000000..ad6cc16d --- /dev/null +++ b/pvm/programs/inst_shift_arithmetic_right_imm_alt_32.json @@ -0,0 +1,52 @@ +{ + "name": "inst_shift_arithmetic_right_imm_alt_32", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 5, + 146, + 137, + 1, + 0, + 255, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3, + 18446744073709543424, + 0, + 0, + 0 + ], + "expected-pc": 5, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_shift_arithmetic_right_imm_alt_64.json b/pvm/programs/inst_shift_arithmetic_right_imm_alt_64.json new file mode 100644 index 00000000..d8cf8ac0 --- /dev/null +++ b/pvm/programs/inst_shift_arithmetic_right_imm_alt_64.json @@ -0,0 +1,52 @@ +{ + "name": "inst_shift_arithmetic_right_imm_alt_64", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 5, + 157, + 137, + 1, + 0, + 255, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3, + 18446744073709543424, + 0, + 0, + 0 + ], + "expected-pc": 5, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_shift_logical_left_32.json b/pvm/programs/inst_shift_logical_left_32.json new file mode 100644 index 00000000..d4c472cf --- /dev/null +++ b/pvm/programs/inst_shift_logical_left_32.json @@ -0,0 +1,50 @@ +{ + "name": "inst_shift_logical_left_32", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2147483765, + 3, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 197, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2147483765, + 3, + 936, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_shift_logical_left_32_with_overflow.json b/pvm/programs/inst_shift_logical_left_32_with_overflow.json new file mode 100644 index 00000000..7dc076fb --- /dev/null +++ b/pvm/programs/inst_shift_logical_left_32_with_overflow.json @@ -0,0 +1,50 @@ +{ + "name": "inst_shift_logical_left_32_with_overflow", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2147483765, + 33, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 197, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2147483765, + 33, + 234, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_shift_logical_left_64.json b/pvm/programs/inst_shift_logical_left_64.json new file mode 100644 index 00000000..1daf1e9c --- /dev/null +++ b/pvm/programs/inst_shift_logical_left_64.json @@ -0,0 +1,50 @@ +{ + "name": "inst_shift_logical_left_64", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9223372036854775925, + 3, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 207, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9223372036854775925, + 3, + 936, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_shift_logical_left_64_with_overflow.json b/pvm/programs/inst_shift_logical_left_64_with_overflow.json new file mode 100644 index 00000000..2bb617bd --- /dev/null +++ b/pvm/programs/inst_shift_logical_left_64_with_overflow.json @@ -0,0 +1,50 @@ +{ + "name": "inst_shift_logical_left_64_with_overflow", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9223372036854775925, + 65, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 207, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9223372036854775925, + 65, + 234, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_shift_logical_left_imm_32.json b/pvm/programs/inst_shift_logical_left_imm_32.json new file mode 100644 index 00000000..299727ca --- /dev/null +++ b/pvm/programs/inst_shift_logical_left_imm_32.json @@ -0,0 +1,50 @@ +{ + "name": "inst_shift_logical_left_imm_32", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2147483765, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 138, + 121, + 3, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2147483765, + 0, + 936, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_shift_logical_left_imm_64.json b/pvm/programs/inst_shift_logical_left_imm_64.json new file mode 100644 index 00000000..ceab9c7a --- /dev/null +++ b/pvm/programs/inst_shift_logical_left_imm_64.json @@ -0,0 +1,50 @@ +{ + "name": "inst_shift_logical_left_imm_64", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9223372036854775925, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 151, + 121, + 3, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9223372036854775925, + 0, + 936, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_shift_logical_left_imm_alt_32.json b/pvm/programs/inst_shift_logical_left_imm_alt_32.json new file mode 100644 index 00000000..b226dd12 --- /dev/null +++ b/pvm/programs/inst_shift_logical_left_imm_alt_32.json @@ -0,0 +1,52 @@ +{ + "name": "inst_shift_logical_left_imm_alt_32", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 5, + 144, + 137, + 1, + 0, + 255, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3, + 18446744073709027336, + 0, + 0, + 0 + ], + "expected-pc": 5, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_shift_logical_left_imm_alt_64.json b/pvm/programs/inst_shift_logical_left_imm_alt_64.json new file mode 100644 index 00000000..d8d3b6e5 --- /dev/null +++ b/pvm/programs/inst_shift_logical_left_imm_alt_64.json @@ -0,0 +1,52 @@ +{ + "name": "inst_shift_logical_left_imm_alt_64", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 5, + 155, + 137, + 1, + 0, + 255, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3, + 18446744073709027336, + 0, + 0, + 0 + ], + "expected-pc": 5, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_shift_logical_right_32.json b/pvm/programs/inst_shift_logical_right_32.json new file mode 100644 index 00000000..a8af4340 --- /dev/null +++ b/pvm/programs/inst_shift_logical_right_32.json @@ -0,0 +1,50 @@ +{ + "name": "inst_shift_logical_right_32", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2147483765, + 3, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 198, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2147483765, + 3, + 268435470, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_shift_logical_right_32_with_overflow.json b/pvm/programs/inst_shift_logical_right_32_with_overflow.json new file mode 100644 index 00000000..59164c41 --- /dev/null +++ b/pvm/programs/inst_shift_logical_right_32_with_overflow.json @@ -0,0 +1,50 @@ +{ + "name": "inst_shift_logical_right_32_with_overflow", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2147483765, + 33, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 198, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2147483765, + 33, + 1073741882, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_shift_logical_right_64.json b/pvm/programs/inst_shift_logical_right_64.json new file mode 100644 index 00000000..49e054ef --- /dev/null +++ b/pvm/programs/inst_shift_logical_right_64.json @@ -0,0 +1,50 @@ +{ + "name": "inst_shift_logical_right_64", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9223372036854775925, + 3, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 208, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9223372036854775925, + 3, + 1152921504606846990, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_shift_logical_right_64_with_overflow.json b/pvm/programs/inst_shift_logical_right_64_with_overflow.json new file mode 100644 index 00000000..3774a40e --- /dev/null +++ b/pvm/programs/inst_shift_logical_right_64_with_overflow.json @@ -0,0 +1,50 @@ +{ + "name": "inst_shift_logical_right_64_with_overflow", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9223372036854775925, + 65, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 208, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9223372036854775925, + 65, + 4611686018427387962, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_shift_logical_right_imm_32.json b/pvm/programs/inst_shift_logical_right_imm_32.json new file mode 100644 index 00000000..d8c8dd0a --- /dev/null +++ b/pvm/programs/inst_shift_logical_right_imm_32.json @@ -0,0 +1,50 @@ +{ + "name": "inst_shift_logical_right_imm_32", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2147483765, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 139, + 121, + 3, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2147483765, + 0, + 268435470, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_shift_logical_right_imm_64.json b/pvm/programs/inst_shift_logical_right_imm_64.json new file mode 100644 index 00000000..67b20969 --- /dev/null +++ b/pvm/programs/inst_shift_logical_right_imm_64.json @@ -0,0 +1,50 @@ +{ + "name": "inst_shift_logical_right_imm_64", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9223372036854775925, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 152, + 121, + 3, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9223372036854775925, + 0, + 1152921504606846990, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_shift_logical_right_imm_alt_32.json b/pvm/programs/inst_shift_logical_right_imm_alt_32.json new file mode 100644 index 00000000..c9ca145d --- /dev/null +++ b/pvm/programs/inst_shift_logical_right_imm_alt_32.json @@ -0,0 +1,52 @@ +{ + "name": "inst_shift_logical_right_imm_alt_32", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 5, + 145, + 137, + 1, + 0, + 255, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3, + 536862720, + 0, + 0, + 0 + ], + "expected-pc": 5, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_shift_logical_right_imm_alt_64.json b/pvm/programs/inst_shift_logical_right_imm_alt_64.json new file mode 100644 index 00000000..b2a7c00a --- /dev/null +++ b/pvm/programs/inst_shift_logical_right_imm_alt_64.json @@ -0,0 +1,52 @@ +{ + "name": "inst_shift_logical_right_imm_alt_64", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 5, + 156, + 137, + 1, + 0, + 255, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3, + 2305843009213685760, + 0, + 0, + 0 + ], + "expected-pc": 5, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_store_imm_indirect_u16_with_offset_nok.json b/pvm/programs/inst_store_imm_indirect_u16_with_offset_nok.json new file mode 100644 index 00000000..79251e99 --- /dev/null +++ b/pvm/programs/inst_store_imm_indirect_u16_with_offset_nok.json @@ -0,0 +1,59 @@ +{ + "name": "inst_store_imm_indirect_u16_with_offset_nok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 135166, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 5, + 71, + 23, + 1, + 52, + 18, + 1 + ], + "expected-status": "page-fault", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 135166, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 0, + "expected-memory": [], + "expected-gas": 9998, + "expected-page-fault-address": 135168 +} \ No newline at end of file diff --git a/pvm/programs/inst_store_imm_indirect_u16_with_offset_ok.json b/pvm/programs/inst_store_imm_indirect_u16_with_offset_ok.json new file mode 100644 index 00000000..7dce3b4c --- /dev/null +++ b/pvm/programs/inst_store_imm_indirect_u16_with_offset_ok.json @@ -0,0 +1,67 @@ +{ + "name": "inst_store_imm_indirect_u16_with_offset_ok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 134910, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 6, + 71, + 39, + 0, + 1, + 52, + 18, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 134910, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 6, + "expected-memory": [ + { + "address": 135166, + "contents": [ + 52, + 18 + ] + } + ], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_store_imm_indirect_u16_without_offset_ok.json b/pvm/programs/inst_store_imm_indirect_u16_without_offset_ok.json new file mode 100644 index 00000000..ae3e9f20 --- /dev/null +++ b/pvm/programs/inst_store_imm_indirect_u16_without_offset_ok.json @@ -0,0 +1,65 @@ +{ + "name": "inst_store_imm_indirect_u16_without_offset_ok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 135166, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 4, + 71, + 7, + 52, + 18, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 135166, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 4, + "expected-memory": [ + { + "address": 135166, + "contents": [ + 52, + 18 + ] + } + ], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_store_imm_indirect_u32_with_offset_nok.json b/pvm/programs/inst_store_imm_indirect_u32_with_offset_nok.json new file mode 100644 index 00000000..97c1fe84 --- /dev/null +++ b/pvm/programs/inst_store_imm_indirect_u32_with_offset_nok.json @@ -0,0 +1,61 @@ +{ + "name": "inst_store_imm_indirect_u32_with_offset_nok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 135164, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 7, + 72, + 23, + 1, + 120, + 86, + 52, + 18, + 1 + ], + "expected-status": "page-fault", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 135164, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 0, + "expected-memory": [], + "expected-gas": 9998, + "expected-page-fault-address": 135168 +} \ No newline at end of file diff --git a/pvm/programs/inst_store_imm_indirect_u32_with_offset_ok.json b/pvm/programs/inst_store_imm_indirect_u32_with_offset_ok.json new file mode 100644 index 00000000..bbdc5502 --- /dev/null +++ b/pvm/programs/inst_store_imm_indirect_u32_with_offset_ok.json @@ -0,0 +1,71 @@ +{ + "name": "inst_store_imm_indirect_u32_with_offset_ok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 134908, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 8, + 72, + 39, + 0, + 1, + 120, + 86, + 52, + 18, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 134908, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 8, + "expected-memory": [ + { + "address": 135164, + "contents": [ + 120, + 86, + 52, + 18 + ] + } + ], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_store_imm_indirect_u32_without_offset_ok.json b/pvm/programs/inst_store_imm_indirect_u32_without_offset_ok.json new file mode 100644 index 00000000..55cb6ef1 --- /dev/null +++ b/pvm/programs/inst_store_imm_indirect_u32_without_offset_ok.json @@ -0,0 +1,69 @@ +{ + "name": "inst_store_imm_indirect_u32_without_offset_ok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 135164, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 6, + 72, + 7, + 120, + 86, + 52, + 18, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 135164, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 6, + "expected-memory": [ + { + "address": 135164, + "contents": [ + 120, + 86, + 52, + 18 + ] + } + ], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_store_imm_indirect_u64_with_offset_nok.json b/pvm/programs/inst_store_imm_indirect_u64_with_offset_nok.json new file mode 100644 index 00000000..c840a33d --- /dev/null +++ b/pvm/programs/inst_store_imm_indirect_u64_with_offset_nok.json @@ -0,0 +1,61 @@ +{ + "name": "inst_store_imm_indirect_u64_with_offset_nok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 135160, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 7, + 73, + 23, + 1, + 170, + 153, + 136, + 119, + 1 + ], + "expected-status": "page-fault", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 135160, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 0, + "expected-memory": [], + "expected-gas": 9998, + "expected-page-fault-address": 135168 +} \ No newline at end of file diff --git a/pvm/programs/inst_store_imm_indirect_u64_with_offset_ok.json b/pvm/programs/inst_store_imm_indirect_u64_with_offset_ok.json new file mode 100644 index 00000000..e7ad81ae --- /dev/null +++ b/pvm/programs/inst_store_imm_indirect_u64_with_offset_ok.json @@ -0,0 +1,71 @@ +{ + "name": "inst_store_imm_indirect_u64_with_offset_ok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 134904, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 8, + 73, + 39, + 0, + 1, + 170, + 153, + 136, + 119, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 134904, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 8, + "expected-memory": [ + { + "address": 135160, + "contents": [ + 170, + 153, + 136, + 119 + ] + } + ], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_store_imm_indirect_u64_without_offset_ok.json b/pvm/programs/inst_store_imm_indirect_u64_without_offset_ok.json new file mode 100644 index 00000000..1e3d747e --- /dev/null +++ b/pvm/programs/inst_store_imm_indirect_u64_without_offset_ok.json @@ -0,0 +1,69 @@ +{ + "name": "inst_store_imm_indirect_u64_without_offset_ok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 135160, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 6, + 73, + 7, + 170, + 153, + 136, + 119, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 135160, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 6, + "expected-memory": [ + { + "address": 135160, + "contents": [ + 170, + 153, + 136, + 119 + ] + } + ], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_store_imm_indirect_u8_with_offset_nok.json b/pvm/programs/inst_store_imm_indirect_u8_with_offset_nok.json new file mode 100644 index 00000000..1838e639 --- /dev/null +++ b/pvm/programs/inst_store_imm_indirect_u8_with_offset_nok.json @@ -0,0 +1,58 @@ +{ + "name": "inst_store_imm_indirect_u8_with_offset_nok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 135167, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 4, + 70, + 23, + 1, + 18, + 1 + ], + "expected-status": "page-fault", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 135167, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 0, + "expected-memory": [], + "expected-gas": 9998, + "expected-page-fault-address": 135168 +} \ No newline at end of file diff --git a/pvm/programs/inst_store_imm_indirect_u8_with_offset_ok.json b/pvm/programs/inst_store_imm_indirect_u8_with_offset_ok.json new file mode 100644 index 00000000..de882406 --- /dev/null +++ b/pvm/programs/inst_store_imm_indirect_u8_with_offset_ok.json @@ -0,0 +1,65 @@ +{ + "name": "inst_store_imm_indirect_u8_with_offset_ok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 134911, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 5, + 70, + 39, + 0, + 1, + 18, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 134911, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 5, + "expected-memory": [ + { + "address": 135167, + "contents": [ + 18 + ] + } + ], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_store_imm_indirect_u8_without_offset_ok.json b/pvm/programs/inst_store_imm_indirect_u8_without_offset_ok.json new file mode 100644 index 00000000..0a0f570a --- /dev/null +++ b/pvm/programs/inst_store_imm_indirect_u8_without_offset_ok.json @@ -0,0 +1,63 @@ +{ + "name": "inst_store_imm_indirect_u8_without_offset_ok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 135167, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 70, + 7, + 18, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 135167, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [ + { + "address": 135167, + "contents": [ + 18 + ] + } + ], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_store_imm_u16.json b/pvm/programs/inst_store_imm_u16.json new file mode 100644 index 00000000..125a6d96 --- /dev/null +++ b/pvm/programs/inst_store_imm_u16.json @@ -0,0 +1,68 @@ +{ + "name": "inst_store_imm_u16", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 7, + 31, + 3, + 0, + 0, + 2, + 52, + 18, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 7, + "expected-memory": [ + { + "address": 131072, + "contents": [ + 52, + 18 + ] + } + ], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_store_imm_u32.json b/pvm/programs/inst_store_imm_u32.json new file mode 100644 index 00000000..84cc0b75 --- /dev/null +++ b/pvm/programs/inst_store_imm_u32.json @@ -0,0 +1,73 @@ +{ + "name": "inst_store_imm_u32", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 9, + 32, + 3, + 0, + 0, + 2, + 120, + 86, + 52, + 18, + 1, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 9, + "expected-memory": [ + { + "address": 131072, + "contents": [ + 120, + 86, + 52, + 18 + ] + } + ], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_store_imm_u64.json b/pvm/programs/inst_store_imm_u64.json new file mode 100644 index 00000000..52019174 --- /dev/null +++ b/pvm/programs/inst_store_imm_u64.json @@ -0,0 +1,73 @@ +{ + "name": "inst_store_imm_u64", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 9, + 33, + 3, + 0, + 0, + 2, + 120, + 86, + 52, + 18, + 1, + 0 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 9, + "expected-memory": [ + { + "address": 131072, + "contents": [ + 120, + 86, + 52, + 18 + ] + } + ], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_store_imm_u8.json b/pvm/programs/inst_store_imm_u8.json new file mode 100644 index 00000000..477c7984 --- /dev/null +++ b/pvm/programs/inst_store_imm_u8.json @@ -0,0 +1,66 @@ +{ + "name": "inst_store_imm_u8", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 6, + 30, + 3, + 0, + 0, + 2, + 18, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 6, + "expected-memory": [ + { + "address": 131072, + "contents": [ + 18 + ] + } + ], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_store_imm_u8_trap_inaccessible.json b/pvm/programs/inst_store_imm_u8_trap_inaccessible.json new file mode 100644 index 00000000..d52900ad --- /dev/null +++ b/pvm/programs/inst_store_imm_u8_trap_inaccessible.json @@ -0,0 +1,54 @@ +{ + "name": "inst_store_imm_u8_trap_inaccessible", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 6, + 30, + 3, + 0, + 0, + 2, + 18, + 1 + ], + "expected-status": "page-fault", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 0, + "expected-memory": [], + "expected-gas": 9998, + "expected-page-fault-address": 131072 +} \ No newline at end of file diff --git a/pvm/programs/inst_store_indirect_u16_with_offset_nok.json b/pvm/programs/inst_store_indirect_u16_with_offset_nok.json new file mode 100644 index 00000000..dcd3c78c --- /dev/null +++ b/pvm/programs/inst_store_indirect_u16_with_offset_nok.json @@ -0,0 +1,58 @@ +{ + "name": "inst_store_indirect_u16_with_offset_nok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 305419896, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 4, + 121, + 120, + 1, + 16, + 1 + ], + "expected-status": "page-fault", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 305419896, + 0, + 0, + 0, + 0 + ], + "expected-pc": 0, + "expected-memory": [], + "expected-gas": 9998, + "expected-page-fault-address": 135168 +} \ No newline at end of file diff --git a/pvm/programs/inst_store_indirect_u16_with_offset_ok.json b/pvm/programs/inst_store_indirect_u16_with_offset_ok.json new file mode 100644 index 00000000..1170fe61 --- /dev/null +++ b/pvm/programs/inst_store_indirect_u16_with_offset_ok.json @@ -0,0 +1,64 @@ +{ + "name": "inst_store_indirect_u16_with_offset_ok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 305419896, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 121, + 120, + 10, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 305419896, + 0, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [ + { + "address": 131082, + "contents": [ + 120, + 86 + ] + } + ], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_store_indirect_u16_without_offset_ok.json b/pvm/programs/inst_store_indirect_u16_without_offset_ok.json new file mode 100644 index 00000000..51190fd5 --- /dev/null +++ b/pvm/programs/inst_store_indirect_u16_without_offset_ok.json @@ -0,0 +1,63 @@ +{ + "name": "inst_store_indirect_u16_without_offset_ok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 305419896, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 2, + 121, + 120, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 305419896, + 0, + 0, + 0, + 0 + ], + "expected-pc": 2, + "expected-memory": [ + { + "address": 131072, + "contents": [ + 120, + 86 + ] + } + ], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_store_indirect_u32_with_offset_nok.json b/pvm/programs/inst_store_indirect_u32_with_offset_nok.json new file mode 100644 index 00000000..bb272bb1 --- /dev/null +++ b/pvm/programs/inst_store_indirect_u32_with_offset_nok.json @@ -0,0 +1,58 @@ +{ + "name": "inst_store_indirect_u32_with_offset_nok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 305419896, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 4, + 122, + 120, + 1, + 16, + 1 + ], + "expected-status": "page-fault", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 305419896, + 0, + 0, + 0, + 0 + ], + "expected-pc": 0, + "expected-memory": [], + "expected-gas": 9998, + "expected-page-fault-address": 135168 +} \ No newline at end of file diff --git a/pvm/programs/inst_store_indirect_u32_with_offset_ok.json b/pvm/programs/inst_store_indirect_u32_with_offset_ok.json new file mode 100644 index 00000000..69431567 --- /dev/null +++ b/pvm/programs/inst_store_indirect_u32_with_offset_ok.json @@ -0,0 +1,66 @@ +{ + "name": "inst_store_indirect_u32_with_offset_ok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 305419896, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 122, + 120, + 10, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 305419896, + 0, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [ + { + "address": 131082, + "contents": [ + 120, + 86, + 52, + 18 + ] + } + ], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_store_indirect_u32_without_offset_ok.json b/pvm/programs/inst_store_indirect_u32_without_offset_ok.json new file mode 100644 index 00000000..91371f7a --- /dev/null +++ b/pvm/programs/inst_store_indirect_u32_without_offset_ok.json @@ -0,0 +1,65 @@ +{ + "name": "inst_store_indirect_u32_without_offset_ok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 305419896, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 2, + 122, + 120, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 305419896, + 0, + 0, + 0, + 0 + ], + "expected-pc": 2, + "expected-memory": [ + { + "address": 131072, + "contents": [ + 120, + 86, + 52, + 18 + ] + } + ], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_store_indirect_u64_with_offset_nok.json b/pvm/programs/inst_store_indirect_u64_with_offset_nok.json new file mode 100644 index 00000000..bb2e7039 --- /dev/null +++ b/pvm/programs/inst_store_indirect_u64_with_offset_nok.json @@ -0,0 +1,58 @@ +{ + "name": "inst_store_indirect_u64_with_offset_nok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 9332165983064197000, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 4, + 123, + 120, + 1, + 16, + 1 + ], + "expected-status": "page-fault", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 9332165983064197000, + 0, + 0, + 0, + 0 + ], + "expected-pc": 0, + "expected-memory": [], + "expected-gas": 9998, + "expected-page-fault-address": 135168 +} \ No newline at end of file diff --git a/pvm/programs/inst_store_indirect_u64_with_offset_ok.json b/pvm/programs/inst_store_indirect_u64_with_offset_ok.json new file mode 100644 index 00000000..0e971e01 --- /dev/null +++ b/pvm/programs/inst_store_indirect_u64_with_offset_ok.json @@ -0,0 +1,70 @@ +{ + "name": "inst_store_indirect_u64_with_offset_ok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 9332165983064197000, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 123, + 120, + 10, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 9332165983064197000, + 0, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [ + { + "address": 131082, + "contents": [ + 136, + 135, + 134, + 133, + 132, + 131, + 130, + 129 + ] + } + ], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_store_indirect_u64_without_offset_ok.json b/pvm/programs/inst_store_indirect_u64_without_offset_ok.json new file mode 100644 index 00000000..52e7fc7c --- /dev/null +++ b/pvm/programs/inst_store_indirect_u64_without_offset_ok.json @@ -0,0 +1,69 @@ +{ + "name": "inst_store_indirect_u64_without_offset_ok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 9332165983064197000, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 2, + 123, + 120, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 9332165983064197000, + 0, + 0, + 0, + 0 + ], + "expected-pc": 2, + "expected-memory": [ + { + "address": 131072, + "contents": [ + 136, + 135, + 134, + 133, + 132, + 131, + 130, + 129 + ] + } + ], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_store_indirect_u8_with_offset_nok.json b/pvm/programs/inst_store_indirect_u8_with_offset_nok.json new file mode 100644 index 00000000..06a84c98 --- /dev/null +++ b/pvm/programs/inst_store_indirect_u8_with_offset_nok.json @@ -0,0 +1,58 @@ +{ + "name": "inst_store_indirect_u8_with_offset_nok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 305419896, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 4, + 120, + 120, + 1, + 16, + 1 + ], + "expected-status": "page-fault", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 305419896, + 0, + 0, + 0, + 0 + ], + "expected-pc": 0, + "expected-memory": [], + "expected-gas": 9998, + "expected-page-fault-address": 135168 +} \ No newline at end of file diff --git a/pvm/programs/inst_store_indirect_u8_with_offset_ok.json b/pvm/programs/inst_store_indirect_u8_with_offset_ok.json new file mode 100644 index 00000000..e88b9958 --- /dev/null +++ b/pvm/programs/inst_store_indirect_u8_with_offset_ok.json @@ -0,0 +1,63 @@ +{ + "name": "inst_store_indirect_u8_with_offset_ok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 305419896, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 120, + 120, + 10, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 305419896, + 0, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [ + { + "address": 131082, + "contents": [ + 120 + ] + } + ], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_store_indirect_u8_without_offset_ok.json b/pvm/programs/inst_store_indirect_u8_without_offset_ok.json new file mode 100644 index 00000000..33f0d40f --- /dev/null +++ b/pvm/programs/inst_store_indirect_u8_without_offset_ok.json @@ -0,0 +1,62 @@ +{ + "name": "inst_store_indirect_u8_without_offset_ok", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 305419896, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 2, + 120, + 120, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131072, + 305419896, + 0, + 0, + 0, + 0 + ], + "expected-pc": 2, + "expected-memory": [ + { + "address": 131072, + "contents": [ + 120 + ] + } + ], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_store_u16.json b/pvm/programs/inst_store_u16.json new file mode 100644 index 00000000..10788dd8 --- /dev/null +++ b/pvm/programs/inst_store_u16.json @@ -0,0 +1,66 @@ +{ + "name": "inst_store_u16", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 305419896, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 5, + 60, + 7, + 0, + 0, + 2, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 305419896, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 5, + "expected-memory": [ + { + "address": 131072, + "contents": [ + 120, + 86 + ] + } + ], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_store_u32.json b/pvm/programs/inst_store_u32.json new file mode 100644 index 00000000..22f9332d --- /dev/null +++ b/pvm/programs/inst_store_u32.json @@ -0,0 +1,68 @@ +{ + "name": "inst_store_u32", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 305419896, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 5, + 61, + 7, + 0, + 0, + 2, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 305419896, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 5, + "expected-memory": [ + { + "address": 131072, + "contents": [ + 120, + 86, + 52, + 18 + ] + } + ], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_store_u64.json b/pvm/programs/inst_store_u64.json new file mode 100644 index 00000000..233fcf19 --- /dev/null +++ b/pvm/programs/inst_store_u64.json @@ -0,0 +1,72 @@ +{ + "name": "inst_store_u64", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9332165983064197000, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 5, + 62, + 7, + 0, + 0, + 2, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9332165983064197000, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 5, + "expected-memory": [ + { + "address": 131072, + "contents": [ + 136, + 135, + 134, + 133, + 132, + 131, + 130, + 129 + ] + } + ], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_store_u8.json b/pvm/programs/inst_store_u8.json new file mode 100644 index 00000000..0926f27b --- /dev/null +++ b/pvm/programs/inst_store_u8.json @@ -0,0 +1,65 @@ +{ + "name": "inst_store_u8", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 305419896, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 5, + 59, + 7, + 0, + 0, + 2, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 305419896, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 5, + "expected-memory": [ + { + "address": 131072, + "contents": [ + 120 + ] + } + ], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_sub_32.json b/pvm/programs/inst_sub_32.json new file mode 100644 index 00000000..252e9b86 --- /dev/null +++ b/pvm/programs/inst_sub_32.json @@ -0,0 +1,50 @@ +{ + "name": "inst_sub_32", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 191, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_sub_32_with_overflow.json b/pvm/programs/inst_sub_32_with_overflow.json new file mode 100644 index 00000000..f9dbc28b --- /dev/null +++ b/pvm/programs/inst_sub_32_with_overflow.json @@ -0,0 +1,50 @@ +{ + "name": "inst_sub_32_with_overflow", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 4, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 191, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 4, + 18446744073709551614, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_sub_64.json b/pvm/programs/inst_sub_64.json new file mode 100644 index 00000000..70756cf7 --- /dev/null +++ b/pvm/programs/inst_sub_64.json @@ -0,0 +1,50 @@ +{ + "name": "inst_sub_64", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 201, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1, + 1, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_sub_64_with_overflow.json b/pvm/programs/inst_sub_64_with_overflow.json new file mode 100644 index 00000000..48c2ac6d --- /dev/null +++ b/pvm/programs/inst_sub_64_with_overflow.json @@ -0,0 +1,50 @@ +{ + "name": "inst_sub_64_with_overflow", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 4, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 201, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 4, + 18446744073709551614, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_sub_imm_32.json b/pvm/programs/inst_sub_imm_32.json new file mode 100644 index 00000000..dae7a3f0 --- /dev/null +++ b/pvm/programs/inst_sub_imm_32.json @@ -0,0 +1,50 @@ +{ + "name": "inst_sub_imm_32", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 131, + 121, + 255, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_sub_imm_64.json b/pvm/programs/inst_sub_imm_64.json new file mode 100644 index 00000000..7a37fc5d --- /dev/null +++ b/pvm/programs/inst_sub_imm_64.json @@ -0,0 +1,50 @@ +{ + "name": "inst_sub_imm_64", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 149, + 121, + 255, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_trap.json b/pvm/programs/inst_trap.json new file mode 100644 index 00000000..5a338fc5 --- /dev/null +++ b/pvm/programs/inst_trap.json @@ -0,0 +1,48 @@ +{ + "name": "inst_trap", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 1, + 0, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 0, + "expected-memory": [], + "expected-gas": 9999 +} \ No newline at end of file diff --git a/pvm/programs/inst_xor.json b/pvm/programs/inst_xor.json new file mode 100644 index 00000000..95c97424 --- /dev/null +++ b/pvm/programs/inst_xor.json @@ -0,0 +1,50 @@ +{ + "name": "inst_xor", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5, + 3, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 211, + 135, + 9, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5, + 3, + 6, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/inst_xor_imm.json b/pvm/programs/inst_xor_imm.json new file mode 100644 index 00000000..626e3301 --- /dev/null +++ b/pvm/programs/inst_xor_imm.json @@ -0,0 +1,50 @@ +{ + "name": "inst_xor_imm", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 0, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 3, + 133, + 121, + 3, + 1 + ], + "expected-status": "panic", + "expected-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5, + 0, + 6, + 0, + 0, + 0 + ], + "expected-pc": 3, + "expected-memory": [], + "expected-gas": 9998 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ua_amoadd_d.json b/pvm/programs/riscv_rv64ua_amoadd_d.json new file mode 100644 index 00000000..2a3c0ea1 --- /dev/null +++ b/pvm/programs/riscv_rv64ua_amoadd_d.json @@ -0,0 +1,249 @@ +{ + "name": "riscv_rv64ua_amoadd_d", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [ + { + "address": 65536, + "length": 4096, + "is-writable": false + }, + { + "address": 196608, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 65536, + "contents": [ + 8 + ] + }, + { + "address": 65538, + "contents": [ + 3 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 128, + 136, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 7, + 0, + 0, + 0, + 128, + 51, + 8, + 0, + 248, + 58, + 10, + 0, + 0, + 1, + 123, + 167, + 130, + 171, + 62, + 2, + 0, + 0, + 3, + 200, + 139, + 2, + 123, + 162, + 58, + 2, + 0, + 0, + 3, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 76, + 51, + 5, + 3, + 130, + 172, + 51, + 4, + 255, + 151, + 68, + 31, + 149, + 68, + 0, + 248, + 171, + 76, + 58, + 51, + 5, + 4, + 130, + 171, + 62, + 2, + 0, + 0, + 3, + 200, + 139, + 2, + 123, + 162, + 58, + 2, + 0, + 0, + 3, + 51, + 4, + 255, + 151, + 68, + 31, + 149, + 68, + 0, + 248, + 171, + 75, + 25, + 51, + 5, + 5, + 130, + 172, + 51, + 4, + 0, + 0, + 248, + 131, + 68, + 255, + 151, + 68, + 12, + 171, + 76, + 6, + 82, + 5, + 4, + 0, + 40, + 123, + 255, + 33, + 41, + 65, + 132, + 10, + 41, + 4, + 73, + 73, + 36, + 133, + 20, + 146, + 72, + 10, + 73, + 50 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 0, + 0, + 18446744071562063872, + 5, + 0, + 18446744071562067968, + 18446744073709549568, + 0, + 196616, + 18446744071562065920, + 18446744071562063872 + ], + "expected-pc": 11, + "expected-memory": [ + { + "address": 65536, + "contents": [ + 8 + ] + }, + { + "address": 65538, + "contents": [ + 3 + ] + }, + { + "address": 196617, + "contents": [ + 240, + 255, + 127, + 255, + 255, + 255, + 255 + ] + } + ], + "expected-gas": 9960 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ua_amoadd_w.json b/pvm/programs/riscv_rv64ua_amoadd_w.json new file mode 100644 index 00000000..01eb2715 --- /dev/null +++ b/pvm/programs/riscv_rv64ua_amoadd_w.json @@ -0,0 +1,266 @@ +{ + "name": "riscv_rv64ua_amoadd_w", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [ + { + "address": 65536, + "length": 4096, + "is-writable": false + }, + { + "address": 196608, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 65536, + "contents": [ + 8 + ] + }, + { + "address": 65538, + "contents": [ + 3 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 128, + 147, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 7, + 0, + 0, + 0, + 128, + 51, + 8, + 0, + 248, + 58, + 10, + 0, + 0, + 1, + 122, + 167, + 62, + 4, + 0, + 0, + 3, + 151, + 132, + 32, + 153, + 68, + 32, + 129, + 171, + 190, + 75, + 4, + 122, + 164, + 58, + 4, + 0, + 0, + 3, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 81, + 51, + 5, + 3, + 129, + 172, + 51, + 4, + 0, + 0, + 0, + 128, + 131, + 68, + 0, + 248, + 171, + 76, + 63, + 51, + 5, + 4, + 51, + 8, + 0, + 0, + 0, + 128, + 62, + 4, + 0, + 0, + 3, + 151, + 132, + 32, + 153, + 68, + 32, + 129, + 171, + 190, + 75, + 4, + 122, + 164, + 58, + 4, + 0, + 0, + 3, + 51, + 4, + 0, + 0, + 0, + 128, + 131, + 68, + 0, + 248, + 171, + 75, + 18, + 51, + 5, + 5, + 129, + 172, + 51, + 4, + 0, + 248, + 171, + 76, + 6, + 82, + 5, + 4, + 0, + 40, + 112, + 255, + 33, + 41, + 65, + 132, + 66, + 82, + 10, + 65, + 82, + 16, + 73, + 16, + 146, + 82, + 8, + 34, + 41, + 146, + 1 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 0, + 0, + 18446744073709549568, + 5, + 0, + 18446744071562067968, + 18446744071562067968, + 0, + 196616, + 2147481600, + 18446744073709549568 + ], + "expected-pc": 11, + "expected-memory": [ + { + "address": 65536, + "contents": [ + 8 + ] + }, + { + "address": 65538, + "contents": [ + 3 + ] + }, + { + "address": 196609, + "contents": [ + 248, + 255, + 127 + ] + }, + { + "address": 196617, + "contents": [ + 248, + 255, + 255 + ] + } + ], + "expected-gas": 9959 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ua_amoand_d.json b/pvm/programs/riscv_rv64ua_amoand_d.json new file mode 100644 index 00000000..5105f9e3 --- /dev/null +++ b/pvm/programs/riscv_rv64ua_amoand_d.json @@ -0,0 +1,234 @@ +{ + "name": "riscv_rv64ua_amoand_d", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [ + { + "address": 65536, + "length": 4096, + "is-writable": false + }, + { + "address": 196608, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 65536, + "contents": [ + 8 + ] + }, + { + "address": 65538, + "contents": [ + 3 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 128, + 128, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 7, + 0, + 0, + 0, + 128, + 51, + 8, + 0, + 248, + 58, + 10, + 0, + 0, + 1, + 123, + 167, + 130, + 171, + 62, + 2, + 0, + 0, + 3, + 210, + 139, + 2, + 123, + 162, + 58, + 2, + 0, + 0, + 3, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 69, + 51, + 5, + 3, + 130, + 172, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 76, + 55, + 51, + 5, + 4, + 51, + 8, + 1, + 151, + 136, + 31, + 130, + 171, + 62, + 2, + 0, + 0, + 3, + 210, + 139, + 2, + 123, + 162, + 58, + 2, + 0, + 0, + 3, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 20, + 51, + 5, + 5, + 130, + 172, + 51, + 4, + 1, + 151, + 68, + 31, + 171, + 76, + 6, + 82, + 5, + 4, + 0, + 40, + 130, + 33, + 41, + 65, + 132, + 10, + 41, + 4, + 73, + 65, + 146, + 20, + 82, + 8, + 146, + 146, + 100 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 0, + 0, + 2147483648, + 5, + 0, + 18446744071562067968, + 2147483648, + 0, + 196616, + 18446744071562067968, + 2147483648 + ], + "expected-pc": 11, + "expected-memory": [ + { + "address": 65536, + "contents": [ + 8 + ] + }, + { + "address": 65538, + "contents": [ + 3 + ] + }, + { + "address": 196619, + "contents": [ + 128 + ] + } + ], + "expected-gas": 9963 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ua_amoand_w.json b/pvm/programs/riscv_rv64ua_amoand_w.json new file mode 100644 index 00000000..1b2a241f --- /dev/null +++ b/pvm/programs/riscv_rv64ua_amoand_w.json @@ -0,0 +1,259 @@ +{ + "name": "riscv_rv64ua_amoand_w", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [ + { + "address": 65536, + "length": 4096, + "is-writable": false + }, + { + "address": 196608, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 65536, + "contents": [ + 8 + ] + }, + { + "address": 65538, + "contents": [ + 3 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 128, + 141, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 7, + 0, + 0, + 0, + 128, + 51, + 8, + 0, + 248, + 58, + 10, + 0, + 0, + 1, + 122, + 167, + 62, + 4, + 0, + 0, + 3, + 151, + 132, + 32, + 153, + 68, + 32, + 129, + 171, + 210, + 75, + 4, + 122, + 164, + 58, + 4, + 0, + 0, + 3, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 75, + 51, + 5, + 3, + 129, + 172, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 76, + 61, + 51, + 5, + 4, + 51, + 8, + 1, + 151, + 136, + 31, + 62, + 4, + 0, + 0, + 3, + 151, + 132, + 32, + 153, + 68, + 32, + 129, + 171, + 210, + 75, + 4, + 122, + 164, + 58, + 4, + 0, + 0, + 3, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 20, + 51, + 5, + 5, + 129, + 172, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 76, + 6, + 82, + 5, + 4, + 0, + 40, + 118, + 255, + 33, + 41, + 65, + 132, + 66, + 82, + 10, + 65, + 82, + 144, + 36, + 33, + 41, + 133, + 32, + 41, + 72, + 6 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 0, + 0, + 18446744071562067968, + 5, + 0, + 18446744071562067968, + 2147483648, + 0, + 196616, + 18446744071562067968, + 18446744071562067968 + ], + "expected-pc": 11, + "expected-memory": [ + { + "address": 65536, + "contents": [ + 8 + ] + }, + { + "address": 65538, + "contents": [ + 3 + ] + }, + { + "address": 196611, + "contents": [ + 128, + 255, + 255, + 255, + 255 + ] + }, + { + "address": 196619, + "contents": [ + 128 + ] + } + ], + "expected-gas": 9960 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ua_amomax_d.json b/pvm/programs/riscv_rv64ua_amomax_d.json new file mode 100644 index 00000000..849574dd --- /dev/null +++ b/pvm/programs/riscv_rv64ua_amomax_d.json @@ -0,0 +1,258 @@ +{ + "name": "riscv_rv64ua_amomax_d", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [ + { + "address": 65536, + "length": 4096, + "is-writable": false + }, + { + "address": 196608, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 65536, + "contents": [ + 16 + ] + }, + { + "address": 65538, + "contents": [ + 3 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 128, + 149, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 7, + 0, + 0, + 0, + 128, + 51, + 8, + 0, + 248, + 58, + 10, + 0, + 0, + 1, + 123, + 167, + 130, + 171, + 62, + 2, + 0, + 0, + 3, + 62, + 3, + 8, + 0, + 3, + 217, + 184, + 2, + 100, + 179, + 218, + 40, + 3, + 123, + 163, + 58, + 2, + 0, + 0, + 3, + 58, + 3, + 8, + 0, + 3, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 74, + 51, + 5, + 3, + 130, + 172, + 51, + 4, + 0, + 248, + 171, + 76, + 62, + 51, + 5, + 4, + 51, + 8, + 1, + 73, + 10, + 130, + 171, + 62, + 2, + 0, + 0, + 3, + 62, + 3, + 8, + 0, + 3, + 217, + 184, + 2, + 100, + 179, + 218, + 40, + 3, + 123, + 163, + 58, + 2, + 0, + 0, + 3, + 58, + 3, + 8, + 0, + 3, + 51, + 4, + 171, + 75, + 17, + 51, + 5, + 5, + 130, + 172, + 51, + 4, + 1, + 171, + 76, + 6, + 82, + 5, + 4, + 0, + 40, + 110, + 255, + 33, + 41, + 65, + 132, + 10, + 33, + 165, + 16, + 130, + 164, + 72, + 82, + 33, + 164, + 20, + 66, + 73, + 73, + 6 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 0, + 0, + 1, + 5, + 0, + 18446744071562067968, + 1, + 0, + 196624, + 0, + 1 + ], + "expected-pc": 11, + "expected-memory": [ + { + "address": 65536, + "contents": [ + 16 + ] + }, + { + "address": 65538, + "contents": [ + 3 + ] + }, + { + "address": 196624, + "contents": [ + 1 + ] + } + ], + "expected-gas": 9956 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ua_amomax_w.json b/pvm/programs/riscv_rv64ua_amomax_w.json new file mode 100644 index 00000000..ef154e3b --- /dev/null +++ b/pvm/programs/riscv_rv64ua_amomax_w.json @@ -0,0 +1,397 @@ +{ + "name": "riscv_rv64ua_amomax_w", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [ + { + "address": 65536, + "length": 4096, + "is-writable": false + }, + { + "address": 196608, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 65536, + "contents": [ + 24 + ] + }, + { + "address": 65538, + "contents": [ + 3 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 129, + 11, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 7, + 0, + 0, + 0, + 128, + 51, + 8, + 0, + 248, + 58, + 10, + 0, + 0, + 1, + 122, + 167, + 62, + 2, + 0, + 0, + 3, + 62, + 3, + 8, + 0, + 3, + 62, + 4, + 16, + 0, + 3, + 151, + 130, + 32, + 153, + 36, + 32, + 129, + 171, + 217, + 180, + 2, + 100, + 179, + 218, + 36, + 3, + 122, + 163, + 58, + 2, + 0, + 0, + 3, + 58, + 3, + 8, + 0, + 3, + 58, + 4, + 16, + 0, + 3, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 176, + 0, + 51, + 5, + 3, + 129, + 172, + 51, + 4, + 0, + 248, + 171, + 76, + 163, + 0, + 51, + 5, + 4, + 51, + 8, + 1, + 72, + 10, + 62, + 2, + 0, + 0, + 3, + 62, + 3, + 8, + 0, + 3, + 62, + 4, + 16, + 0, + 3, + 151, + 130, + 32, + 153, + 36, + 32, + 129, + 171, + 217, + 180, + 2, + 100, + 179, + 218, + 36, + 3, + 122, + 163, + 58, + 2, + 0, + 0, + 3, + 58, + 3, + 8, + 0, + 3, + 58, + 4, + 16, + 0, + 3, + 51, + 4, + 171, + 75, + 101, + 51, + 5, + 5, + 129, + 172, + 51, + 4, + 1, + 171, + 76, + 90, + 51, + 5, + 6, + 51, + 7, + 1, + 51, + 8, + 1, + 151, + 136, + 31, + 58, + 10, + 0, + 0, + 1, + 122, + 167, + 62, + 2, + 0, + 0, + 3, + 62, + 3, + 8, + 0, + 3, + 62, + 4, + 16, + 0, + 3, + 151, + 130, + 32, + 153, + 36, + 32, + 129, + 171, + 217, + 180, + 2, + 100, + 179, + 218, + 36, + 3, + 122, + 163, + 58, + 2, + 0, + 0, + 3, + 58, + 3, + 8, + 0, + 3, + 58, + 4, + 16, + 0, + 3, + 51, + 4, + 1, + 171, + 75, + 17, + 51, + 5, + 7, + 129, + 172, + 51, + 4, + 1, + 171, + 76, + 6, + 82, + 5, + 4, + 0, + 40, + 248, + 254, + 33, + 41, + 65, + 132, + 66, + 8, + 73, + 41, + 133, + 16, + 130, + 72, + 17, + 73, + 33, + 132, + 164, + 148, + 66, + 8, + 37, + 37, + 73, + 18, + 10, + 33, + 36, + 165, + 20, + 66, + 72, + 82, + 146, + 1 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 0, + 0, + 1, + 7, + 0, + 1, + 2147483648, + 0, + 196632, + 1, + 1 + ], + "expected-pc": 11, + "expected-memory": [ + { + "address": 65536, + "contents": [ + 24 + ] + }, + { + "address": 65538, + "contents": [ + 3 + ] + }, + { + "address": 196624, + "contents": [ + 1 + ] + }, + { + "address": 196632, + "contents": [ + 1 + ] + } + ], + "expected-gas": 9923 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ua_amomaxu_d.json b/pvm/programs/riscv_rv64ua_amomaxu_d.json new file mode 100644 index 00000000..d849eaa5 --- /dev/null +++ b/pvm/programs/riscv_rv64ua_amomaxu_d.json @@ -0,0 +1,265 @@ +{ + "name": "riscv_rv64ua_amomaxu_d", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [ + { + "address": 65536, + "length": 4096, + "is-writable": false + }, + { + "address": 196608, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 65536, + "contents": [ + 16 + ] + }, + { + "address": 65538, + "contents": [ + 3 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 128, + 149, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 7, + 0, + 0, + 0, + 128, + 51, + 8, + 0, + 248, + 58, + 10, + 0, + 0, + 1, + 123, + 167, + 130, + 171, + 62, + 2, + 0, + 0, + 3, + 62, + 3, + 8, + 0, + 3, + 216, + 184, + 2, + 100, + 179, + 218, + 40, + 3, + 123, + 163, + 58, + 2, + 0, + 0, + 3, + 58, + 3, + 8, + 0, + 3, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 74, + 51, + 5, + 3, + 130, + 172, + 51, + 4, + 0, + 248, + 171, + 76, + 62, + 51, + 5, + 4, + 51, + 8, + 255, + 73, + 10, + 130, + 171, + 62, + 2, + 0, + 0, + 3, + 62, + 3, + 8, + 0, + 3, + 216, + 184, + 2, + 100, + 179, + 218, + 40, + 3, + 123, + 163, + 58, + 2, + 0, + 0, + 3, + 58, + 3, + 8, + 0, + 3, + 51, + 4, + 171, + 75, + 17, + 51, + 5, + 5, + 130, + 172, + 51, + 4, + 255, + 171, + 76, + 6, + 82, + 5, + 4, + 0, + 40, + 110, + 255, + 33, + 41, + 65, + 132, + 10, + 33, + 165, + 16, + 130, + 164, + 72, + 82, + 33, + 164, + 20, + 66, + 73, + 73, + 6 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 0, + 0, + 18446744073709551615, + 5, + 0, + 18446744071562067968, + 18446744073709551615, + 0, + 196624, + 0, + 18446744073709551615 + ], + "expected-pc": 11, + "expected-memory": [ + { + "address": 65536, + "contents": [ + 16 + ] + }, + { + "address": 65538, + "contents": [ + 3 + ] + }, + { + "address": 196624, + "contents": [ + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255 + ] + } + ], + "expected-gas": 9956 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ua_amomaxu_w.json b/pvm/programs/riscv_rv64ua_amomaxu_w.json new file mode 100644 index 00000000..dd5fd870 --- /dev/null +++ b/pvm/programs/riscv_rv64ua_amomaxu_w.json @@ -0,0 +1,399 @@ +{ + "name": "riscv_rv64ua_amomaxu_w", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [ + { + "address": 65536, + "length": 4096, + "is-writable": false + }, + { + "address": 196608, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 65536, + "contents": [ + 24 + ] + }, + { + "address": 65538, + "contents": [ + 3 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 129, + 11, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 7, + 0, + 0, + 0, + 128, + 51, + 8, + 0, + 248, + 58, + 10, + 0, + 0, + 1, + 122, + 167, + 62, + 2, + 0, + 0, + 3, + 62, + 3, + 8, + 0, + 3, + 62, + 4, + 16, + 0, + 3, + 151, + 130, + 32, + 153, + 36, + 32, + 129, + 171, + 216, + 180, + 2, + 100, + 179, + 218, + 36, + 3, + 122, + 163, + 58, + 2, + 0, + 0, + 3, + 58, + 3, + 8, + 0, + 3, + 58, + 4, + 16, + 0, + 3, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 176, + 0, + 51, + 5, + 3, + 129, + 172, + 51, + 4, + 0, + 248, + 171, + 76, + 163, + 0, + 51, + 5, + 4, + 51, + 8, + 255, + 72, + 10, + 62, + 2, + 0, + 0, + 3, + 62, + 3, + 8, + 0, + 3, + 62, + 4, + 16, + 0, + 3, + 151, + 130, + 32, + 153, + 36, + 32, + 129, + 171, + 216, + 180, + 2, + 100, + 179, + 218, + 36, + 3, + 122, + 163, + 58, + 2, + 0, + 0, + 3, + 58, + 3, + 8, + 0, + 3, + 58, + 4, + 16, + 0, + 3, + 51, + 4, + 171, + 75, + 101, + 51, + 5, + 5, + 129, + 172, + 51, + 4, + 255, + 171, + 76, + 90, + 51, + 5, + 6, + 51, + 7, + 1, + 51, + 8, + 255, + 151, + 136, + 63, + 58, + 10, + 0, + 0, + 1, + 122, + 167, + 62, + 2, + 0, + 0, + 3, + 62, + 3, + 8, + 0, + 3, + 62, + 4, + 16, + 0, + 3, + 151, + 130, + 32, + 153, + 36, + 32, + 129, + 171, + 216, + 180, + 2, + 100, + 179, + 218, + 36, + 3, + 122, + 163, + 58, + 2, + 0, + 0, + 3, + 58, + 3, + 8, + 0, + 3, + 58, + 4, + 16, + 0, + 3, + 51, + 4, + 1, + 171, + 75, + 17, + 51, + 5, + 7, + 129, + 172, + 51, + 4, + 1, + 171, + 76, + 6, + 82, + 5, + 4, + 0, + 40, + 248, + 254, + 33, + 41, + 65, + 132, + 66, + 8, + 73, + 41, + 133, + 16, + 130, + 72, + 17, + 73, + 33, + 132, + 164, + 148, + 66, + 8, + 37, + 37, + 73, + 18, + 10, + 33, + 36, + 165, + 20, + 66, + 72, + 82, + 146, + 1 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 0, + 0, + 1, + 7, + 0, + 1, + 9223372036854775808, + 0, + 196632, + 1, + 1 + ], + "expected-pc": 11, + "expected-memory": [ + { + "address": 65536, + "contents": [ + 24 + ] + }, + { + "address": 65538, + "contents": [ + 3 + ] + }, + { + "address": 196624, + "contents": [ + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 1 + ] + } + ], + "expected-gas": 9923 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ua_amomin_d.json b/pvm/programs/riscv_rv64ua_amomin_d.json new file mode 100644 index 00000000..22d59b39 --- /dev/null +++ b/pvm/programs/riscv_rv64ua_amomin_d.json @@ -0,0 +1,267 @@ +{ + "name": "riscv_rv64ua_amomin_d", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [ + { + "address": 65536, + "length": 4096, + "is-writable": false + }, + { + "address": 196608, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 65536, + "contents": [ + 16 + ] + }, + { + "address": 65538, + "contents": [ + 3 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 128, + 151, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 7, + 0, + 0, + 0, + 128, + 51, + 8, + 0, + 248, + 58, + 10, + 0, + 0, + 1, + 123, + 167, + 130, + 171, + 62, + 2, + 0, + 0, + 3, + 62, + 3, + 8, + 0, + 3, + 217, + 139, + 2, + 100, + 179, + 218, + 40, + 3, + 123, + 163, + 58, + 2, + 0, + 0, + 3, + 58, + 3, + 8, + 0, + 3, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 76, + 51, + 5, + 3, + 130, + 172, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 76, + 62, + 51, + 5, + 4, + 51, + 8, + 255, + 73, + 10, + 130, + 171, + 62, + 2, + 0, + 0, + 3, + 62, + 3, + 8, + 0, + 3, + 217, + 139, + 2, + 100, + 179, + 218, + 40, + 3, + 123, + 163, + 58, + 2, + 0, + 0, + 3, + 58, + 3, + 8, + 0, + 3, + 51, + 4, + 171, + 75, + 17, + 51, + 5, + 5, + 130, + 172, + 51, + 4, + 255, + 171, + 76, + 6, + 82, + 5, + 4, + 0, + 40, + 108, + 255, + 33, + 41, + 65, + 132, + 10, + 33, + 165, + 16, + 130, + 164, + 32, + 73, + 133, + 144, + 82, + 8, + 37, + 37, + 25 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 0, + 0, + 18446744073709551615, + 5, + 0, + 18446744071562067968, + 18446744073709551615, + 0, + 196624, + 0, + 18446744073709551615 + ], + "expected-pc": 11, + "expected-memory": [ + { + "address": 65536, + "contents": [ + 16 + ] + }, + { + "address": 65538, + "contents": [ + 3 + ] + }, + { + "address": 196624, + "contents": [ + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255 + ] + } + ], + "expected-gas": 9956 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ua_amomin_w.json b/pvm/programs/riscv_rv64ua_amomin_w.json new file mode 100644 index 00000000..21396281 --- /dev/null +++ b/pvm/programs/riscv_rv64ua_amomin_w.json @@ -0,0 +1,409 @@ +{ + "name": "riscv_rv64ua_amomin_w", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [ + { + "address": 65536, + "length": 4096, + "is-writable": false + }, + { + "address": 196608, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 65536, + "contents": [ + 24 + ] + }, + { + "address": 65538, + "contents": [ + 3 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 129, + 16, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 7, + 0, + 0, + 0, + 128, + 51, + 8, + 0, + 248, + 58, + 10, + 0, + 0, + 1, + 122, + 167, + 62, + 2, + 0, + 0, + 3, + 62, + 3, + 8, + 0, + 3, + 62, + 4, + 16, + 0, + 3, + 151, + 130, + 32, + 153, + 36, + 32, + 129, + 171, + 217, + 75, + 2, + 100, + 179, + 218, + 36, + 3, + 122, + 163, + 58, + 2, + 0, + 0, + 3, + 58, + 3, + 8, + 0, + 3, + 58, + 4, + 16, + 0, + 3, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 181, + 0, + 51, + 5, + 3, + 129, + 172, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 76, + 166, + 0, + 51, + 5, + 4, + 51, + 8, + 255, + 72, + 10, + 62, + 2, + 0, + 0, + 3, + 62, + 3, + 8, + 0, + 3, + 62, + 4, + 16, + 0, + 3, + 151, + 130, + 32, + 153, + 36, + 32, + 129, + 171, + 217, + 75, + 2, + 100, + 179, + 218, + 36, + 3, + 122, + 163, + 58, + 2, + 0, + 0, + 3, + 58, + 3, + 8, + 0, + 3, + 58, + 4, + 16, + 0, + 3, + 51, + 4, + 171, + 75, + 104, + 51, + 5, + 5, + 129, + 172, + 51, + 4, + 255, + 171, + 76, + 93, + 51, + 5, + 6, + 51, + 7, + 1, + 51, + 8, + 1, + 151, + 136, + 31, + 58, + 10, + 0, + 0, + 1, + 122, + 167, + 62, + 2, + 0, + 0, + 3, + 62, + 3, + 8, + 0, + 3, + 62, + 4, + 16, + 0, + 3, + 151, + 130, + 32, + 153, + 36, + 32, + 129, + 171, + 217, + 75, + 2, + 100, + 179, + 218, + 36, + 3, + 122, + 163, + 58, + 2, + 0, + 0, + 3, + 58, + 3, + 8, + 0, + 3, + 58, + 4, + 16, + 0, + 3, + 51, + 4, + 1, + 171, + 75, + 20, + 51, + 5, + 7, + 129, + 172, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 76, + 6, + 82, + 5, + 4, + 0, + 40, + 243, + 254, + 33, + 41, + 65, + 132, + 66, + 8, + 73, + 41, + 133, + 16, + 130, + 72, + 65, + 36, + 133, + 16, + 146, + 82, + 10, + 33, + 148, + 148, + 36, + 73, + 40, + 132, + 144, + 148, + 82, + 8, + 33, + 73, + 65, + 50 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 0, + 0, + 18446744071562067968, + 7, + 0, + 1, + 2147483648, + 0, + 196632, + 1, + 18446744071562067968 + ], + "expected-pc": 11, + "expected-memory": [ + { + "address": 65536, + "contents": [ + 24 + ] + }, + { + "address": 65538, + "contents": [ + 3 + ] + }, + { + "address": 196624, + "contents": [ + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255 + ] + }, + { + "address": 196635, + "contents": [ + 128 + ] + } + ], + "expected-gas": 9923 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ua_amominu_d.json b/pvm/programs/riscv_rv64ua_amominu_d.json new file mode 100644 index 00000000..39362188 --- /dev/null +++ b/pvm/programs/riscv_rv64ua_amominu_d.json @@ -0,0 +1,253 @@ +{ + "name": "riscv_rv64ua_amominu_d", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [ + { + "address": 65536, + "length": 4096, + "is-writable": false + }, + { + "address": 196608, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 65536, + "contents": [ + 16 + ] + }, + { + "address": 65538, + "contents": [ + 3 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 128, + 150, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 7, + 0, + 0, + 0, + 128, + 51, + 8, + 0, + 248, + 58, + 10, + 0, + 0, + 1, + 123, + 167, + 130, + 171, + 62, + 2, + 0, + 0, + 3, + 62, + 3, + 8, + 0, + 3, + 216, + 139, + 2, + 100, + 179, + 218, + 40, + 3, + 123, + 163, + 58, + 2, + 0, + 0, + 3, + 58, + 3, + 8, + 0, + 3, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 75, + 51, + 5, + 3, + 130, + 172, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 76, + 61, + 51, + 5, + 4, + 51, + 8, + 255, + 73, + 10, + 130, + 171, + 62, + 2, + 0, + 0, + 3, + 62, + 3, + 8, + 0, + 3, + 216, + 139, + 2, + 100, + 179, + 218, + 40, + 3, + 123, + 163, + 58, + 2, + 0, + 0, + 3, + 58, + 3, + 8, + 0, + 3, + 51, + 4, + 171, + 75, + 16, + 51, + 5, + 5, + 130, + 172, + 51, + 4, + 171, + 76, + 6, + 82, + 5, + 4, + 0, + 40, + 109, + 255, + 33, + 41, + 65, + 132, + 10, + 33, + 165, + 16, + 130, + 164, + 32, + 73, + 133, + 144, + 82, + 8, + 37, + 149, + 12 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 0, + 0, + 0, + 5, + 0, + 18446744071562067968, + 18446744073709551615, + 0, + 196624, + 0, + 0 + ], + "expected-pc": 11, + "expected-memory": [ + { + "address": 65536, + "contents": [ + 16 + ] + }, + { + "address": 65538, + "contents": [ + 3 + ] + } + ], + "expected-gas": 9956 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ua_amominu_w.json b/pvm/programs/riscv_rv64ua_amominu_w.json new file mode 100644 index 00000000..9f3a27b6 --- /dev/null +++ b/pvm/programs/riscv_rv64ua_amominu_w.json @@ -0,0 +1,385 @@ +{ + "name": "riscv_rv64ua_amominu_w", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [ + { + "address": 65536, + "length": 4096, + "is-writable": false + }, + { + "address": 196608, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 65536, + "contents": [ + 24 + ] + }, + { + "address": 65538, + "contents": [ + 3 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 129, + 11, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 7, + 0, + 0, + 0, + 128, + 51, + 8, + 0, + 248, + 58, + 10, + 0, + 0, + 1, + 122, + 167, + 62, + 2, + 0, + 0, + 3, + 62, + 3, + 8, + 0, + 3, + 62, + 4, + 16, + 0, + 3, + 151, + 130, + 32, + 153, + 36, + 32, + 129, + 171, + 216, + 75, + 2, + 100, + 179, + 218, + 36, + 3, + 122, + 163, + 58, + 2, + 0, + 0, + 3, + 58, + 3, + 8, + 0, + 3, + 58, + 4, + 16, + 0, + 3, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 176, + 0, + 51, + 5, + 3, + 129, + 172, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 76, + 161, + 0, + 51, + 5, + 4, + 51, + 8, + 255, + 72, + 10, + 62, + 2, + 0, + 0, + 3, + 62, + 3, + 8, + 0, + 3, + 62, + 4, + 16, + 0, + 3, + 151, + 130, + 32, + 153, + 36, + 32, + 129, + 171, + 216, + 75, + 2, + 100, + 179, + 218, + 36, + 3, + 122, + 163, + 58, + 2, + 0, + 0, + 3, + 58, + 3, + 8, + 0, + 3, + 58, + 4, + 16, + 0, + 3, + 51, + 4, + 171, + 75, + 99, + 51, + 5, + 5, + 129, + 172, + 51, + 4, + 171, + 76, + 89, + 51, + 5, + 6, + 51, + 7, + 1, + 51, + 8, + 255, + 151, + 136, + 63, + 58, + 10, + 0, + 0, + 1, + 122, + 167, + 62, + 2, + 0, + 0, + 3, + 62, + 3, + 8, + 0, + 3, + 62, + 4, + 16, + 0, + 3, + 151, + 130, + 32, + 153, + 36, + 32, + 129, + 171, + 216, + 75, + 2, + 100, + 179, + 218, + 36, + 3, + 122, + 163, + 58, + 2, + 0, + 0, + 3, + 58, + 3, + 8, + 0, + 3, + 58, + 4, + 16, + 0, + 3, + 51, + 4, + 1, + 171, + 75, + 16, + 51, + 5, + 7, + 129, + 172, + 51, + 4, + 171, + 76, + 6, + 82, + 5, + 4, + 0, + 40, + 248, + 254, + 33, + 41, + 65, + 132, + 66, + 8, + 73, + 41, + 133, + 16, + 130, + 72, + 65, + 36, + 133, + 16, + 146, + 82, + 10, + 33, + 148, + 84, + 146, + 36, + 20, + 66, + 72, + 74, + 41, + 132, + 144, + 164, + 146, + 1 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 0, + 0, + 0, + 7, + 0, + 1, + 9223372036854775808, + 0, + 196632, + 1, + 0 + ], + "expected-pc": 11, + "expected-memory": [ + { + "address": 65536, + "contents": [ + 24 + ] + }, + { + "address": 65538, + "contents": [ + 3 + ] + } + ], + "expected-gas": 9923 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ua_amoor_d.json b/pvm/programs/riscv_rv64ua_amoor_d.json new file mode 100644 index 00000000..a545248e --- /dev/null +++ b/pvm/programs/riscv_rv64ua_amoor_d.json @@ -0,0 +1,230 @@ +{ + "name": "riscv_rv64ua_amoor_d", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [ + { + "address": 65536, + "length": 4096, + "is-writable": false + }, + { + "address": 196608, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 65536, + "contents": [ + 8 + ] + }, + { + "address": 65538, + "contents": [ + 3 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 119, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 7, + 0, + 0, + 0, + 128, + 51, + 8, + 0, + 248, + 58, + 10, + 0, + 0, + 1, + 123, + 167, + 130, + 171, + 62, + 2, + 0, + 0, + 3, + 212, + 139, + 2, + 123, + 162, + 58, + 2, + 0, + 0, + 3, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 60, + 51, + 5, + 3, + 130, + 172, + 51, + 4, + 0, + 248, + 171, + 76, + 48, + 51, + 5, + 4, + 51, + 8, + 1, + 130, + 171, + 62, + 2, + 0, + 0, + 3, + 212, + 139, + 2, + 123, + 162, + 58, + 2, + 0, + 0, + 3, + 51, + 4, + 0, + 248, + 171, + 75, + 18, + 51, + 5, + 5, + 130, + 172, + 51, + 4, + 1, + 248, + 171, + 76, + 6, + 82, + 5, + 4, + 0, + 40, + 139, + 33, + 41, + 65, + 132, + 10, + 41, + 4, + 73, + 145, + 164, + 144, + 66, + 36, + 69, + 50 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 0, + 0, + 18446744073709549569, + 5, + 0, + 18446744071562067968, + 1, + 0, + 196616, + 18446744073709549568, + 18446744073709549569 + ], + "expected-pc": 11, + "expected-memory": [ + { + "address": 65536, + "contents": [ + 8 + ] + }, + { + "address": 65538, + "contents": [ + 3 + ] + }, + { + "address": 196616, + "contents": [ + 1, + 248, + 255, + 255, + 255, + 255, + 255, + 255 + ] + } + ], + "expected-gas": 9965 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ua_amoor_w.json b/pvm/programs/riscv_rv64ua_amoor_w.json new file mode 100644 index 00000000..5f27812b --- /dev/null +++ b/pvm/programs/riscv_rv64ua_amoor_w.json @@ -0,0 +1,249 @@ +{ + "name": "riscv_rv64ua_amoor_w", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [ + { + "address": 65536, + "length": 4096, + "is-writable": false + }, + { + "address": 196608, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 65536, + "contents": [ + 8 + ] + }, + { + "address": 65538, + "contents": [ + 3 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 128, + 132, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 7, + 0, + 0, + 0, + 128, + 51, + 8, + 0, + 248, + 58, + 10, + 0, + 0, + 1, + 122, + 167, + 62, + 4, + 0, + 0, + 3, + 151, + 132, + 32, + 153, + 68, + 32, + 129, + 171, + 212, + 75, + 4, + 122, + 164, + 58, + 4, + 0, + 0, + 3, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 66, + 51, + 5, + 3, + 129, + 172, + 51, + 4, + 0, + 248, + 171, + 76, + 54, + 51, + 5, + 4, + 51, + 8, + 1, + 62, + 4, + 0, + 0, + 3, + 151, + 132, + 32, + 153, + 68, + 32, + 129, + 171, + 212, + 75, + 4, + 122, + 164, + 58, + 4, + 0, + 0, + 3, + 51, + 4, + 0, + 248, + 171, + 75, + 18, + 51, + 5, + 5, + 129, + 172, + 51, + 4, + 1, + 248, + 171, + 76, + 6, + 82, + 5, + 4, + 0, + 40, + 127, + 255, + 33, + 41, + 65, + 132, + 66, + 82, + 10, + 65, + 82, + 36, + 9, + 73, + 41, + 68, + 82, + 36, + 3 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 0, + 0, + 18446744073709549569, + 5, + 0, + 18446744071562067968, + 1, + 0, + 196616, + 18446744073709549568, + 18446744073709549569 + ], + "expected-pc": 11, + "expected-memory": [ + { + "address": 65536, + "contents": [ + 8 + ] + }, + { + "address": 65538, + "contents": [ + 3 + ] + }, + { + "address": 196609, + "contents": [ + 248, + 255, + 255, + 255, + 255, + 255, + 255, + 1, + 248, + 255, + 255 + ] + } + ], + "expected-gas": 9961 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ua_amoswap_d.json b/pvm/programs/riscv_rv64ua_amoswap_d.json new file mode 100644 index 00000000..6a1ac1b1 --- /dev/null +++ b/pvm/programs/riscv_rv64ua_amoswap_d.json @@ -0,0 +1,227 @@ +{ + "name": "riscv_rv64ua_amoswap_d", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [ + { + "address": 65536, + "length": 4096, + "is-writable": false + }, + { + "address": 196608, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 65536, + "contents": [ + 8 + ] + }, + { + "address": 65538, + "contents": [ + 3 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 122, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 7, + 0, + 0, + 0, + 128, + 51, + 8, + 0, + 248, + 58, + 10, + 0, + 0, + 1, + 123, + 167, + 130, + 171, + 62, + 2, + 0, + 0, + 3, + 149, + 130, + 123, + 162, + 58, + 2, + 0, + 0, + 3, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 64, + 51, + 5, + 3, + 130, + 172, + 51, + 4, + 0, + 248, + 171, + 76, + 52, + 51, + 5, + 4, + 51, + 8, + 1, + 151, + 136, + 31, + 130, + 171, + 62, + 2, + 0, + 0, + 3, + 149, + 130, + 123, + 162, + 58, + 2, + 0, + 0, + 3, + 51, + 4, + 0, + 248, + 171, + 75, + 20, + 51, + 5, + 5, + 130, + 172, + 51, + 4, + 1, + 151, + 68, + 31, + 171, + 76, + 6, + 82, + 5, + 4, + 0, + 40, + 136, + 33, + 41, + 65, + 132, + 10, + 21, + 130, + 164, + 72, + 146, + 66, + 133, + 72, + 74, + 146, + 1 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 0, + 0, + 2147483648, + 5, + 0, + 18446744071562067968, + 2147483648, + 0, + 196616, + 18446744073709549568, + 2147483648 + ], + "expected-pc": 11, + "expected-memory": [ + { + "address": 65536, + "contents": [ + 8 + ] + }, + { + "address": 65538, + "contents": [ + 3 + ] + }, + { + "address": 196619, + "contents": [ + 128 + ] + } + ], + "expected-gas": 9963 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ua_amoswap_w.json b/pvm/programs/riscv_rv64ua_amoswap_w.json new file mode 100644 index 00000000..cc9db9b3 --- /dev/null +++ b/pvm/programs/riscv_rv64ua_amoswap_w.json @@ -0,0 +1,254 @@ +{ + "name": "riscv_rv64ua_amoswap_w", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [ + { + "address": 65536, + "length": 4096, + "is-writable": false + }, + { + "address": 196608, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 65536, + "contents": [ + 8 + ] + }, + { + "address": 65538, + "contents": [ + 3 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 128, + 135, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 7, + 0, + 0, + 0, + 128, + 51, + 8, + 0, + 248, + 58, + 10, + 0, + 0, + 1, + 122, + 167, + 62, + 4, + 0, + 0, + 3, + 151, + 132, + 32, + 153, + 68, + 32, + 129, + 171, + 131, + 68, + 122, + 164, + 58, + 4, + 0, + 0, + 3, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 70, + 51, + 5, + 3, + 129, + 172, + 51, + 4, + 0, + 248, + 171, + 76, + 58, + 51, + 5, + 4, + 51, + 8, + 1, + 151, + 136, + 31, + 62, + 4, + 0, + 0, + 3, + 151, + 132, + 32, + 153, + 68, + 32, + 129, + 171, + 131, + 68, + 122, + 164, + 58, + 4, + 0, + 0, + 3, + 51, + 4, + 0, + 248, + 171, + 75, + 20, + 51, + 5, + 5, + 129, + 172, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 76, + 6, + 82, + 5, + 4, + 0, + 40, + 124, + 255, + 33, + 41, + 65, + 132, + 66, + 82, + 133, + 32, + 41, + 146, + 36, + 36, + 85, + 136, + 164, + 32, + 25 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 0, + 0, + 18446744071562067968, + 5, + 0, + 18446744071562067968, + 2147483648, + 0, + 196616, + 18446744073709549568, + 18446744071562067968 + ], + "expected-pc": 11, + "expected-memory": [ + { + "address": 65536, + "contents": [ + 8 + ] + }, + { + "address": 65538, + "contents": [ + 3 + ] + }, + { + "address": 196609, + "contents": [ + 248, + 255, + 255, + 255, + 255, + 255, + 255 + ] + }, + { + "address": 196619, + "contents": [ + 128 + ] + } + ], + "expected-gas": 9960 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ua_amoxor_d.json b/pvm/programs/riscv_rv64ua_amoxor_d.json new file mode 100644 index 00000000..16ef066b --- /dev/null +++ b/pvm/programs/riscv_rv64ua_amoxor_d.json @@ -0,0 +1,249 @@ +{ + "name": "riscv_rv64ua_amoxor_d", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [ + { + "address": 65536, + "length": 4096, + "is-writable": false + }, + { + "address": 196608, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 65536, + "contents": [ + 8 + ] + }, + { + "address": 65538, + "contents": [ + 3 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 128, + 138, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 7, + 0, + 0, + 0, + 128, + 51, + 8, + 0, + 248, + 58, + 10, + 0, + 0, + 1, + 123, + 167, + 130, + 171, + 62, + 2, + 0, + 0, + 3, + 211, + 139, + 2, + 123, + 162, + 58, + 2, + 0, + 0, + 3, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 78, + 51, + 5, + 3, + 130, + 172, + 51, + 4, + 0, + 0, + 0, + 128, + 131, + 68, + 0, + 248, + 171, + 76, + 60, + 51, + 5, + 4, + 51, + 8, + 1, + 130, + 171, + 62, + 2, + 0, + 0, + 3, + 211, + 139, + 2, + 123, + 162, + 58, + 2, + 0, + 0, + 3, + 51, + 4, + 0, + 0, + 0, + 128, + 131, + 68, + 0, + 248, + 171, + 75, + 24, + 51, + 5, + 5, + 130, + 172, + 51, + 4, + 0, + 0, + 0, + 128, + 131, + 68, + 1, + 248, + 171, + 76, + 6, + 82, + 5, + 4, + 0, + 40, + 121, + 255, + 33, + 41, + 65, + 132, + 10, + 41, + 4, + 73, + 65, + 36, + 41, + 164, + 16, + 68, + 82, + 16, + 201, + 0 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 0, + 0, + 2147481601, + 5, + 0, + 18446744071562067968, + 1, + 0, + 196616, + 2147481600, + 2147481601 + ], + "expected-pc": 11, + "expected-memory": [ + { + "address": 65536, + "contents": [ + 8 + ] + }, + { + "address": 65538, + "contents": [ + 3 + ] + }, + { + "address": 196616, + "contents": [ + 1, + 248, + 255, + 127 + ] + } + ], + "expected-gas": 9962 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ua_amoxor_w.json b/pvm/programs/riscv_rv64ua_amoxor_w.json new file mode 100644 index 00000000..a6373166 --- /dev/null +++ b/pvm/programs/riscv_rv64ua_amoxor_w.json @@ -0,0 +1,277 @@ +{ + "name": "riscv_rv64ua_amoxor_w", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [ + { + "address": 65536, + "length": 4096, + "is-writable": false + }, + { + "address": 196608, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 65536, + "contents": [ + 8 + ] + }, + { + "address": 65538, + "contents": [ + 3 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 128, + 156, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 7, + 0, + 0, + 0, + 128, + 51, + 8, + 0, + 248, + 58, + 10, + 0, + 0, + 1, + 122, + 167, + 62, + 4, + 0, + 0, + 3, + 151, + 132, + 32, + 153, + 68, + 32, + 129, + 171, + 211, + 75, + 4, + 122, + 164, + 58, + 4, + 0, + 0, + 3, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 90, + 51, + 5, + 3, + 129, + 172, + 51, + 4, + 0, + 0, + 0, + 128, + 131, + 68, + 0, + 248, + 171, + 76, + 72, + 51, + 5, + 4, + 51, + 8, + 3, + 151, + 136, + 30, + 149, + 136, + 1, + 62, + 4, + 0, + 0, + 3, + 151, + 132, + 32, + 153, + 68, + 32, + 129, + 171, + 211, + 75, + 4, + 122, + 164, + 58, + 4, + 0, + 0, + 3, + 51, + 4, + 0, + 0, + 0, + 128, + 131, + 68, + 0, + 248, + 171, + 75, + 24, + 51, + 5, + 5, + 129, + 172, + 51, + 4, + 0, + 0, + 0, + 192, + 131, + 68, + 1, + 248, + 171, + 76, + 6, + 82, + 5, + 4, + 0, + 40, + 103, + 255, + 33, + 41, + 65, + 132, + 66, + 82, + 10, + 65, + 82, + 16, + 73, + 146, + 144, + 148, + 66, + 16, + 73, + 65, + 36, + 3 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 0, + 0, + 18446744072635807745, + 5, + 0, + 18446744071562067968, + 3221225473, + 0, + 196616, + 2147481600, + 18446744072635807745 + ], + "expected-pc": 11, + "expected-memory": [ + { + "address": 65536, + "contents": [ + 8 + ] + }, + { + "address": 65538, + "contents": [ + 3 + ] + }, + { + "address": 196609, + "contents": [ + 248, + 255, + 127 + ] + }, + { + "address": 196616, + "contents": [ + 1, + 248, + 255, + 191 + ] + } + ], + "expected-gas": 9956 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64uc_rvc.json b/pvm/programs/riscv_rv64uc_rvc.json new file mode 100644 index 00000000..690a73cf --- /dev/null +++ b/pvm/programs/riscv_rv64uc_rvc.json @@ -0,0 +1,931 @@ +{ + "name": "riscv_rv64uc_rvc", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [ + { + "address": 65536, + "length": 4096, + "is-writable": false + }, + { + "address": 196608, + "length": 8192, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 65538, + "contents": [ + 3 + ] + }, + { + "address": 65544, + "contents": [ + 2 + ] + }, + { + "address": 65552, + "contents": [ + 6 + ] + }, + { + "address": 196608, + "contents": [ + 16, + 50, + 84, + 118, + 152, + 186, + 220, + 254, + 16, + 50, + 84, + 118, + 152, + 186, + 220, + 254 + ] + } + ], + "initial-gas": 10000, + "program": [ + 3, + 2, + 130, + 187, + 45, + 2, + 65, + 2, + 67, + 2, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 11, + 2, + 51, + 8, + 154, + 2, + 51, + 11, + 2, + 1, + 149, + 136, + 1, + 51, + 4, + 155, + 2, + 171, + 72, + 152, + 2, + 51, + 1, + 0, + 16, + 131, + 17, + 52, + 2, + 51, + 11, + 3, + 149, + 23, + 252, + 3, + 51, + 4, + 0, + 16, + 131, + 68, + 48, + 6, + 171, + 71, + 125, + 2, + 51, + 11, + 4, + 149, + 17, + 240, + 1, + 51, + 4, + 0, + 16, + 131, + 68, + 36, + 4, + 171, + 65, + 106, + 2, + 51, + 11, + 5, + 149, + 17, + 0, + 254, + 51, + 4, + 0, + 16, + 131, + 68, + 36, + 2, + 171, + 65, + 87, + 2, + 58, + 8, + 0, + 0, + 1, + 51, + 11, + 6, + 129, + 135, + 4, + 149, + 119, + 1, + 122, + 135, + 4, + 129, + 137, + 4, + 51, + 4, + 0, + 192, + 220, + 254, + 131, + 68, + 153, + 250, + 171, + 73, + 53, + 2, + 51, + 11, + 7, + 130, + 135, + 149, + 119, + 1, + 123, + 135, + 130, + 137, + 51, + 4, + 0, + 224, + 246, + 131, + 68, + 213, + 5, + 151, + 68, + 12, + 149, + 68, + 187, + 252, + 151, + 68, + 13, + 149, + 68, + 67, + 5, + 151, + 68, + 12, + 149, + 68, + 17, + 2, + 171, + 73, + 7, + 2, + 51, + 11, + 8, + 51, + 7, + 1, + 149, + 119, + 240, + 51, + 4, + 241, + 171, + 71, + 247, + 1, + 51, + 11, + 9, + 51, + 12, + 1, + 51, + 12, + 240, + 51, + 4, + 240, + 171, + 76, + 231, + 1, + 51, + 11, + 10, + 130, + 135, + 131, + 119, + 255, + 51, + 4, + 0, + 48, + 84, + 118, + 131, + 68, + 16, + 2, + 171, + 71, + 209, + 1, + 51, + 11, + 11, + 51, + 5, + 0, + 16, + 254, + 153, + 85, + 12, + 51, + 4, + 225, + 171, + 69, + 191, + 1, + 51, + 11, + 12, + 51, + 5, + 0, + 16, + 254, + 152, + 85, + 12, + 51, + 4, + 1, + 151, + 68, + 52, + 149, + 68, + 225, + 171, + 69, + 167, + 1, + 51, + 11, + 14, + 51, + 5, + 254, + 132, + 85, + 239, + 51, + 4, + 238, + 171, + 69, + 151, + 1, + 51, + 11, + 15, + 51, + 6, + 20, + 51, + 7, + 6, + 201, + 118, + 6, + 51, + 4, + 14, + 171, + 70, + 132, + 1, + 51, + 11, + 16, + 51, + 6, + 20, + 51, + 7, + 6, + 211, + 118, + 6, + 51, + 4, + 18, + 171, + 70, + 113, + 1, + 51, + 11, + 17, + 51, + 6, + 20, + 51, + 7, + 6, + 212, + 118, + 6, + 51, + 4, + 22, + 171, + 70, + 94, + 1, + 51, + 11, + 18, + 51, + 6, + 20, + 51, + 7, + 6, + 210, + 118, + 6, + 51, + 4, + 4, + 171, + 70, + 75, + 1, + 51, + 11, + 19, + 51, + 6, + 0, + 0, + 0, + 128, + 131, + 102, + 255, + 51, + 7, + 255, + 191, + 118, + 6, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 70, + 47, + 1, + 51, + 11, + 20, + 51, + 6, + 0, + 0, + 0, + 128, + 131, + 102, + 255, + 51, + 7, + 1, + 190, + 118, + 6, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 70, + 19, + 1, + 51, + 11, + 21, + 51, + 5, + 0, + 16, + 131, + 85, + 52, + 2, + 151, + 85, + 4, + 51, + 4, + 0, + 32, + 1, + 131, + 68, + 64, + 3, + 171, + 69, + 248, + 0, + 51, + 11, + 30, + 51, + 0, + 1, + 51, + 4, + 171, + 64, + 236, + 0, + 51, + 11, + 31, + 51, + 7, + 81, + 7, + 5, + 40, + 4, + 40, + 5, + 40, + 220, + 0, + 51, + 4, + 82, + 4, + 215, + 0, + 51, + 11, + 32, + 51, + 7, + 1, + 82, + 7, + 5, + 40, + 4, + 40, + 5, + 40, + 198, + 0, + 51, + 4, + 82, + 4, + 193, + 0, + 51, + 11, + 33, + 51, + 7, + 1, + 81, + 7, + 5, + 40, + 5, + 40, + 178, + 0, + 51, + 4, + 82, + 4, + 173, + 0, + 51, + 11, + 34, + 51, + 7, + 82, + 7, + 5, + 40, + 5, + 40, + 159, + 0, + 51, + 4, + 82, + 4, + 154, + 0, + 51, + 11, + 35, + 58, + 2, + 8, + 0, + 1, + 51, + 0, + 50, + 2, + 51, + 4, + 171, + 64, + 136, + 0, + 51, + 11, + 36, + 58, + 2, + 16, + 0, + 1, + 51, + 0, + 180, + 32, + 1, + 4, + 40, + 4, + 40, + 4, + 40, + 114, + 201, + 32, + 0, + 51, + 4, + 254, + 171, + 64, + 106, + 58, + 1, + 0, + 0, + 1, + 51, + 11, + 40, + 129, + 23, + 12, + 149, + 119, + 1, + 122, + 23, + 12, + 129, + 25, + 12, + 51, + 4, + 0, + 192, + 220, + 254, + 131, + 68, + 153, + 250, + 171, + 73, + 73, + 51, + 11, + 41, + 130, + 23, + 8, + 149, + 119, + 1, + 123, + 23, + 8, + 130, + 25, + 8, + 51, + 4, + 0, + 224, + 246, + 131, + 68, + 213, + 5, + 151, + 68, + 12, + 149, + 68, + 187, + 252, + 151, + 68, + 13, + 149, + 68, + 67, + 5, + 151, + 68, + 12, + 149, + 68, + 17, + 2, + 171, + 73, + 25, + 51, + 11, + 42, + 51, + 7, + 35, + 1, + 149, + 114, + 200, + 114, + 2, + 51, + 4, + 70, + 2, + 171, + 66, + 6, + 82, + 11, + 4, + 0, + 40, + 72, + 253, + 33, + 41, + 145, + 137, + 136, + 72, + 68, + 68, + 34, + 34, + 18, + 17, + 17, + 146, + 36, + 65, + 68, + 74, + 133, + 72, + 36, + 18, + 145, + 36, + 145, + 36, + 145, + 18, + 68, + 36, + 36, + 145, + 144, + 36, + 145, + 36, + 145, + 36, + 137, + 36, + 73, + 36, + 73, + 34, + 73, + 18, + 9, + 146, + 4, + 145, + 32, + 73, + 16, + 137, + 72, + 136, + 72, + 139, + 148, + 74, + 145, + 164, + 82, + 36, + 41, + 69, + 74, + 41, + 18, + 170, + 72, + 40, + 170, + 36, + 33, + 73, + 18, + 68, + 146, + 36, + 33, + 18, + 137, + 68, + 18, + 37, + 146, + 1 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 196608, + 582, + 0, + 582, + 74560, + 18446744071562067968, + 291, + 196608, + 18364758548788032017, + 0, + 42, + 18446744073709551600 + ], + "expected-pc": 11, + "expected-memory": [ + { + "address": 65538, + "contents": [ + 3 + ] + }, + { + "address": 65544, + "contents": [ + 2 + ] + }, + { + "address": 65552, + "contents": [ + 6 + ] + }, + { + "address": 196608, + "contents": [ + 17, + 50, + 84, + 118, + 153, + 186, + 220, + 254, + 17, + 50, + 84, + 118, + 153, + 186, + 220, + 254 + ] + } + ], + "expected-gas": 9797 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_add.json b/pvm/programs/riscv_rv64ui_add.json new file mode 100644 index 00000000..71e90862 --- /dev/null +++ b/pvm/programs/riscv_rv64ui_add.json @@ -0,0 +1,1139 @@ +{ + "name": "riscv_rv64ui_add", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 131, + 202, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 8, + 51, + 9, + 200, + 152, + 11, + 51, + 4, + 171, + 75, + 173, + 3, + 51, + 5, + 3, + 51, + 8, + 1, + 51, + 9, + 1, + 200, + 152, + 11, + 51, + 4, + 2, + 171, + 75, + 154, + 3, + 51, + 5, + 4, + 51, + 8, + 3, + 51, + 9, + 7, + 200, + 152, + 11, + 51, + 4, + 10, + 171, + 75, + 135, + 3, + 51, + 5, + 5, + 51, + 8, + 51, + 9, + 0, + 128, + 200, + 152, + 11, + 51, + 4, + 0, + 128, + 171, + 75, + 115, + 3, + 51, + 5, + 6, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 200, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 91, + 3, + 51, + 5, + 7, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 0, + 128, + 200, + 152, + 11, + 51, + 4, + 0, + 0, + 255, + 131, + 68, + 255, + 151, + 68, + 15, + 171, + 75, + 60, + 3, + 51, + 5, + 8, + 51, + 8, + 51, + 9, + 0, + 128, + 0, + 131, + 153, + 255, + 200, + 152, + 11, + 51, + 4, + 0, + 128, + 0, + 131, + 68, + 255, + 171, + 75, + 32, + 3, + 51, + 5, + 9, + 51, + 8, + 0, + 0, + 0, + 128, + 131, + 136, + 255, + 51, + 9, + 200, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 128, + 131, + 68, + 255, + 171, + 75, + 2, + 3, + 51, + 5, + 10, + 51, + 8, + 0, + 0, + 0, + 128, + 131, + 136, + 255, + 51, + 9, + 0, + 128, + 0, + 131, + 153, + 255, + 200, + 152, + 11, + 51, + 4, + 0, + 0, + 1, + 131, + 68, + 1, + 151, + 68, + 15, + 149, + 68, + 254, + 171, + 75, + 217, + 2, + 51, + 5, + 11, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 0, + 128, + 0, + 131, + 153, + 255, + 200, + 152, + 11, + 51, + 4, + 0, + 128, + 0, + 128, + 131, + 68, + 255, + 171, + 75, + 184, + 2, + 51, + 5, + 12, + 51, + 8, + 0, + 0, + 0, + 128, + 131, + 136, + 255, + 51, + 9, + 0, + 128, + 200, + 152, + 11, + 51, + 4, + 0, + 128, + 255, + 127, + 131, + 68, + 255, + 171, + 75, + 152, + 2, + 51, + 5, + 13, + 51, + 8, + 51, + 9, + 255, + 200, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 134, + 2, + 51, + 5, + 14, + 51, + 8, + 255, + 51, + 9, + 1, + 200, + 152, + 11, + 51, + 4, + 171, + 75, + 116, + 2, + 51, + 5, + 15, + 51, + 8, + 255, + 51, + 9, + 255, + 200, + 152, + 11, + 51, + 4, + 254, + 171, + 75, + 97, + 2, + 51, + 5, + 16, + 51, + 8, + 1, + 51, + 9, + 0, + 0, + 0, + 128, + 131, + 153, + 255, + 200, + 152, + 11, + 51, + 4, + 1, + 151, + 68, + 31, + 171, + 75, + 69, + 2, + 51, + 5, + 17, + 51, + 8, + 13, + 51, + 9, + 11, + 200, + 152, + 8, + 51, + 4, + 24, + 171, + 72, + 50, + 2, + 51, + 5, + 18, + 51, + 8, + 14, + 51, + 9, + 11, + 200, + 152, + 9, + 51, + 4, + 25, + 171, + 73, + 31, + 2, + 51, + 5, + 19, + 51, + 8, + 13, + 200, + 136, + 8, + 51, + 4, + 26, + 171, + 72, + 15, + 2, + 51, + 5, + 20, + 51, + 10, + 1, + 51, + 0, + 13, + 51, + 1, + 11, + 200, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 24, + 171, + 67, + 238, + 1, + 51, + 5, + 21, + 51, + 10, + 1, + 51, + 0, + 14, + 51, + 1, + 11, + 200, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 25, + 171, + 67, + 205, + 1, + 51, + 5, + 22, + 51, + 10, + 1, + 51, + 0, + 15, + 51, + 1, + 11, + 200, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 26, + 171, + 67, + 172, + 1, + 51, + 5, + 23, + 51, + 10, + 1, + 51, + 0, + 13, + 51, + 1, + 11, + 200, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 24, + 171, + 75, + 141, + 1, + 51, + 5, + 24, + 51, + 10, + 1, + 51, + 0, + 14, + 51, + 1, + 11, + 200, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 25, + 171, + 75, + 110, + 1, + 51, + 5, + 25, + 51, + 10, + 1, + 51, + 0, + 15, + 51, + 1, + 11, + 200, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 26, + 171, + 75, + 79, + 1, + 51, + 5, + 26, + 51, + 10, + 1, + 51, + 0, + 13, + 51, + 1, + 11, + 200, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 24, + 171, + 75, + 48, + 1, + 51, + 5, + 27, + 51, + 10, + 1, + 51, + 0, + 14, + 51, + 1, + 11, + 200, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 25, + 171, + 75, + 17, + 1, + 51, + 5, + 28, + 51, + 10, + 1, + 51, + 0, + 15, + 51, + 1, + 11, + 200, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 26, + 171, + 75, + 242, + 0, + 51, + 5, + 29, + 51, + 10, + 1, + 51, + 1, + 11, + 51, + 0, + 13, + 200, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 24, + 171, + 75, + 211, + 0, + 51, + 5, + 30, + 51, + 10, + 1, + 51, + 1, + 11, + 51, + 0, + 14, + 200, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 25, + 171, + 75, + 180, + 0, + 51, + 5, + 31, + 51, + 10, + 1, + 51, + 1, + 11, + 51, + 0, + 15, + 200, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 26, + 171, + 75, + 149, + 0, + 51, + 5, + 32, + 51, + 10, + 1, + 51, + 1, + 11, + 51, + 0, + 13, + 200, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 24, + 171, + 75, + 118, + 51, + 5, + 33, + 51, + 10, + 1, + 51, + 1, + 11, + 51, + 0, + 14, + 200, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 25, + 171, + 75, + 88, + 51, + 5, + 34, + 51, + 10, + 1, + 51, + 1, + 11, + 51, + 0, + 15, + 200, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 26, + 171, + 75, + 58, + 51, + 5, + 35, + 51, + 0, + 15, + 149, + 1, + 51, + 4, + 15, + 171, + 65, + 44, + 51, + 5, + 36, + 51, + 0, + 32, + 149, + 1, + 51, + 4, + 32, + 171, + 65, + 30, + 51, + 5, + 37, + 51, + 0, + 51, + 4, + 171, + 64, + 20, + 51, + 5, + 38, + 51, + 0, + 16, + 51, + 1, + 30, + 51, + 4, + 82, + 4, + 6, + 82, + 5, + 4, + 0, + 40, + 57, + 252, + 33, + 41, + 149, + 34, + 73, + 18, + 73, + 146, + 72, + 145, + 136, + 4, + 37, + 136, + 4, + 145, + 144, + 68, + 10, + 73, + 72, + 36, + 72, + 9, + 18, + 9, + 18, + 146, + 144, + 36, + 18, + 132, + 36, + 72, + 36, + 72, + 36, + 72, + 164, + 36, + 145, + 36, + 69, + 146, + 36, + 146, + 32, + 73, + 34, + 73, + 18, + 73, + 146, + 72, + 146, + 72, + 147, + 148, + 36, + 145, + 38, + 41, + 73, + 34, + 77, + 82, + 146, + 68, + 154, + 36, + 73, + 34, + 77, + 146, + 36, + 145, + 38, + 73, + 146, + 72, + 147, + 36, + 73, + 164, + 73, + 146, + 36, + 210, + 36, + 73, + 18, + 105, + 146, + 36, + 137, + 52, + 73, + 146, + 68, + 154, + 36, + 73, + 34, + 77, + 146, + 36, + 73, + 147, + 36, + 73, + 210, + 36, + 73, + 146, + 164, + 36, + 41, + 73, + 37, + 73, + 201, + 0 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 30, + 2, + 26, + 0, + 38, + 0, + 0, + 26, + 25, + 2, + 26, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9590 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_addi.json b/pvm/programs/riscv_rv64ui_addi.json new file mode 100644 index 00000000..01b1e6d7 --- /dev/null +++ b/pvm/programs/riscv_rv64ui_addi.json @@ -0,0 +1,656 @@ +{ + "name": "riscv_rv64ui_addi", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 130, + 29, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 10, + 100, + 171, + 51, + 4, + 171, + 75, + 3, + 2, + 51, + 5, + 3, + 51, + 10, + 1, + 149, + 171, + 1, + 51, + 4, + 2, + 171, + 75, + 243, + 1, + 51, + 5, + 4, + 51, + 10, + 3, + 149, + 171, + 7, + 51, + 4, + 10, + 171, + 75, + 227, + 1, + 51, + 5, + 5, + 51, + 10, + 149, + 171, + 0, + 248, + 51, + 4, + 0, + 248, + 171, + 75, + 210, + 1, + 51, + 5, + 6, + 51, + 10, + 0, + 0, + 0, + 128, + 100, + 171, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 189, + 1, + 51, + 5, + 7, + 51, + 10, + 0, + 0, + 0, + 128, + 149, + 171, + 0, + 248, + 51, + 4, + 255, + 151, + 68, + 31, + 149, + 68, + 0, + 248, + 171, + 75, + 162, + 1, + 51, + 5, + 8, + 51, + 10, + 149, + 171, + 255, + 7, + 51, + 4, + 255, + 7, + 171, + 75, + 145, + 1, + 51, + 5, + 9, + 51, + 10, + 0, + 0, + 0, + 128, + 131, + 170, + 255, + 100, + 171, + 51, + 4, + 0, + 0, + 0, + 128, + 131, + 68, + 255, + 171, + 75, + 118, + 1, + 51, + 5, + 10, + 51, + 10, + 0, + 0, + 0, + 128, + 131, + 170, + 255, + 149, + 171, + 255, + 7, + 51, + 4, + 1, + 151, + 68, + 31, + 149, + 68, + 254, + 7, + 171, + 75, + 88, + 1, + 51, + 5, + 11, + 51, + 10, + 0, + 0, + 0, + 128, + 149, + 171, + 255, + 7, + 51, + 4, + 0, + 0, + 0, + 128, + 131, + 68, + 255, + 7, + 171, + 75, + 61, + 1, + 51, + 5, + 12, + 51, + 10, + 0, + 0, + 0, + 128, + 131, + 170, + 255, + 149, + 171, + 0, + 248, + 51, + 4, + 0, + 240, + 255, + 127, + 131, + 68, + 255, + 7, + 171, + 75, + 31, + 1, + 51, + 5, + 13, + 51, + 10, + 149, + 171, + 255, + 51, + 4, + 255, + 171, + 75, + 16, + 1, + 51, + 5, + 14, + 51, + 10, + 255, + 149, + 171, + 1, + 51, + 4, + 171, + 75, + 1, + 1, + 51, + 5, + 15, + 51, + 10, + 255, + 149, + 171, + 255, + 51, + 4, + 254, + 171, + 75, + 241, + 0, + 51, + 5, + 16, + 51, + 10, + 0, + 0, + 0, + 128, + 131, + 170, + 255, + 149, + 171, + 1, + 51, + 4, + 1, + 151, + 68, + 31, + 171, + 75, + 216, + 0, + 51, + 5, + 17, + 51, + 8, + 13, + 149, + 136, + 11, + 51, + 4, + 24, + 171, + 72, + 200, + 0, + 51, + 5, + 18, + 51, + 9, + 1, + 51, + 0, + 13, + 149, + 11, + 11, + 100, + 179, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 242, + 51, + 4, + 24, + 171, + 67, + 170, + 0, + 51, + 5, + 19, + 51, + 9, + 1, + 51, + 0, + 13, + 149, + 11, + 10, + 100, + 179, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 242, + 51, + 4, + 23, + 171, + 67, + 140, + 0, + 51, + 5, + 20, + 51, + 9, + 1, + 51, + 0, + 13, + 149, + 11, + 9, + 100, + 179, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 242, + 51, + 4, + 22, + 171, + 67, + 110, + 51, + 5, + 21, + 51, + 9, + 1, + 51, + 0, + 13, + 149, + 11, + 11, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 244, + 51, + 4, + 24, + 171, + 75, + 83, + 51, + 5, + 22, + 51, + 9, + 1, + 51, + 0, + 13, + 149, + 11, + 10, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 244, + 51, + 4, + 23, + 171, + 75, + 56, + 51, + 5, + 23, + 51, + 9, + 1, + 51, + 0, + 13, + 149, + 11, + 9, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 244, + 51, + 4, + 22, + 171, + 75, + 29, + 51, + 5, + 24, + 51, + 0, + 32, + 51, + 4, + 32, + 171, + 64, + 17, + 51, + 5, + 25, + 51, + 0, + 33, + 51, + 4, + 82, + 4, + 6, + 82, + 5, + 4, + 0, + 40, + 230, + 253, + 33, + 41, + 85, + 36, + 73, + 36, + 73, + 164, + 136, + 72, + 80, + 16, + 9, + 34, + 137, + 72, + 17, + 145, + 32, + 5, + 137, + 4, + 137, + 36, + 34, + 65, + 4, + 17, + 9, + 18, + 65, + 68, + 74, + 34, + 73, + 145, + 36, + 145, + 32, + 73, + 34, + 73, + 34, + 77, + 74, + 146, + 72, + 147, + 146, + 36, + 210, + 164, + 36, + 73, + 154, + 36, + 73, + 210, + 36, + 73, + 146, + 38, + 73, + 146, + 36, + 73, + 74, + 6 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 2, + 22, + 0, + 25, + 0, + 0, + 24, + 2, + 2147483647, + 22, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9798 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_addiw.json b/pvm/programs/riscv_rv64ui_addiw.json new file mode 100644 index 00000000..479e4425 --- /dev/null +++ b/pvm/programs/riscv_rv64ui_addiw.json @@ -0,0 +1,656 @@ +{ + "name": "riscv_rv64ui_addiw", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 130, + 29, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 10, + 131, + 171, + 51, + 4, + 171, + 75, + 3, + 2, + 51, + 5, + 3, + 51, + 10, + 1, + 131, + 171, + 1, + 51, + 4, + 2, + 171, + 75, + 243, + 1, + 51, + 5, + 4, + 51, + 10, + 3, + 131, + 171, + 7, + 51, + 4, + 10, + 171, + 75, + 227, + 1, + 51, + 5, + 5, + 51, + 10, + 131, + 171, + 0, + 248, + 51, + 4, + 0, + 248, + 171, + 75, + 210, + 1, + 51, + 5, + 6, + 51, + 10, + 0, + 0, + 0, + 128, + 131, + 171, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 189, + 1, + 51, + 5, + 7, + 51, + 10, + 0, + 0, + 0, + 128, + 131, + 171, + 0, + 248, + 51, + 4, + 0, + 0, + 0, + 128, + 131, + 68, + 0, + 248, + 171, + 75, + 162, + 1, + 51, + 5, + 8, + 51, + 10, + 131, + 171, + 255, + 7, + 51, + 4, + 255, + 7, + 171, + 75, + 145, + 1, + 51, + 5, + 9, + 51, + 10, + 0, + 0, + 0, + 128, + 131, + 170, + 255, + 131, + 171, + 51, + 4, + 0, + 0, + 0, + 128, + 131, + 68, + 255, + 171, + 75, + 118, + 1, + 51, + 5, + 10, + 51, + 10, + 0, + 0, + 0, + 128, + 131, + 170, + 255, + 131, + 171, + 255, + 7, + 51, + 4, + 0, + 0, + 0, + 128, + 131, + 68, + 254, + 7, + 171, + 75, + 88, + 1, + 51, + 5, + 11, + 51, + 10, + 0, + 0, + 0, + 128, + 131, + 171, + 255, + 7, + 51, + 4, + 0, + 0, + 0, + 128, + 131, + 68, + 255, + 7, + 171, + 75, + 61, + 1, + 51, + 5, + 12, + 51, + 10, + 0, + 0, + 0, + 128, + 131, + 170, + 255, + 131, + 171, + 0, + 248, + 51, + 4, + 0, + 240, + 255, + 127, + 131, + 68, + 255, + 7, + 171, + 75, + 31, + 1, + 51, + 5, + 13, + 51, + 10, + 131, + 171, + 255, + 51, + 4, + 255, + 171, + 75, + 16, + 1, + 51, + 5, + 14, + 51, + 10, + 255, + 131, + 171, + 1, + 51, + 4, + 171, + 75, + 1, + 1, + 51, + 5, + 15, + 51, + 10, + 255, + 131, + 171, + 255, + 51, + 4, + 254, + 171, + 75, + 241, + 0, + 51, + 5, + 16, + 51, + 10, + 0, + 0, + 0, + 128, + 131, + 170, + 255, + 131, + 171, + 1, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 216, + 0, + 51, + 5, + 17, + 51, + 8, + 13, + 131, + 136, + 11, + 51, + 4, + 24, + 171, + 72, + 200, + 0, + 51, + 5, + 18, + 51, + 9, + 1, + 51, + 0, + 13, + 131, + 11, + 11, + 100, + 179, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 242, + 51, + 4, + 24, + 171, + 67, + 170, + 0, + 51, + 5, + 19, + 51, + 9, + 1, + 51, + 0, + 13, + 131, + 11, + 10, + 100, + 179, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 242, + 51, + 4, + 23, + 171, + 67, + 140, + 0, + 51, + 5, + 20, + 51, + 9, + 1, + 51, + 0, + 13, + 131, + 11, + 9, + 100, + 179, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 242, + 51, + 4, + 22, + 171, + 67, + 110, + 51, + 5, + 21, + 51, + 9, + 1, + 51, + 0, + 13, + 131, + 11, + 11, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 244, + 51, + 4, + 24, + 171, + 75, + 83, + 51, + 5, + 22, + 51, + 9, + 1, + 51, + 0, + 13, + 131, + 11, + 10, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 244, + 51, + 4, + 23, + 171, + 75, + 56, + 51, + 5, + 23, + 51, + 9, + 1, + 51, + 0, + 13, + 131, + 11, + 9, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 244, + 51, + 4, + 22, + 171, + 75, + 29, + 51, + 5, + 24, + 51, + 0, + 32, + 51, + 4, + 32, + 171, + 64, + 17, + 51, + 5, + 25, + 51, + 0, + 33, + 51, + 4, + 82, + 4, + 6, + 82, + 5, + 4, + 0, + 40, + 230, + 253, + 33, + 41, + 85, + 36, + 73, + 36, + 73, + 164, + 136, + 72, + 80, + 16, + 9, + 34, + 136, + 72, + 17, + 145, + 32, + 5, + 137, + 4, + 137, + 32, + 34, + 65, + 4, + 17, + 9, + 18, + 65, + 68, + 74, + 34, + 73, + 145, + 36, + 145, + 32, + 9, + 34, + 73, + 34, + 77, + 74, + 146, + 72, + 147, + 146, + 36, + 210, + 164, + 36, + 73, + 154, + 36, + 73, + 210, + 36, + 73, + 146, + 38, + 73, + 146, + 36, + 73, + 74, + 6 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 2, + 22, + 0, + 25, + 0, + 0, + 24, + 2, + 2147483647, + 22, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9801 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_addw.json b/pvm/programs/riscv_rv64ui_addw.json new file mode 100644 index 00000000..0f1b5216 --- /dev/null +++ b/pvm/programs/riscv_rv64ui_addw.json @@ -0,0 +1,1127 @@ +{ + "name": "riscv_rv64ui_addw", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 131, + 192, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 8, + 51, + 9, + 190, + 152, + 11, + 51, + 4, + 171, + 75, + 163, + 3, + 51, + 5, + 3, + 51, + 8, + 1, + 51, + 9, + 1, + 190, + 152, + 11, + 51, + 4, + 2, + 171, + 75, + 144, + 3, + 51, + 5, + 4, + 51, + 8, + 3, + 51, + 9, + 7, + 190, + 152, + 11, + 51, + 4, + 10, + 171, + 75, + 125, + 3, + 51, + 5, + 5, + 51, + 8, + 51, + 9, + 0, + 128, + 190, + 152, + 11, + 51, + 4, + 0, + 128, + 171, + 75, + 105, + 3, + 51, + 5, + 6, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 190, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 81, + 3, + 51, + 5, + 7, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 0, + 128, + 190, + 152, + 11, + 51, + 4, + 0, + 128, + 255, + 127, + 171, + 75, + 55, + 3, + 51, + 5, + 8, + 51, + 8, + 51, + 9, + 0, + 128, + 0, + 131, + 153, + 255, + 190, + 152, + 11, + 51, + 4, + 0, + 128, + 0, + 131, + 68, + 255, + 171, + 75, + 27, + 3, + 51, + 5, + 9, + 51, + 8, + 0, + 0, + 0, + 128, + 131, + 136, + 255, + 51, + 9, + 190, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 128, + 131, + 68, + 255, + 171, + 75, + 253, + 2, + 51, + 5, + 10, + 51, + 8, + 0, + 0, + 0, + 128, + 131, + 136, + 255, + 51, + 9, + 0, + 128, + 0, + 131, + 153, + 255, + 190, + 152, + 11, + 51, + 4, + 0, + 128, + 0, + 128, + 131, + 68, + 254, + 171, + 75, + 217, + 2, + 51, + 5, + 11, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 0, + 128, + 0, + 131, + 153, + 255, + 190, + 152, + 11, + 51, + 4, + 0, + 128, + 0, + 128, + 131, + 68, + 255, + 171, + 75, + 184, + 2, + 51, + 5, + 12, + 51, + 8, + 0, + 0, + 0, + 128, + 131, + 136, + 255, + 51, + 9, + 0, + 128, + 190, + 152, + 11, + 51, + 4, + 0, + 128, + 255, + 127, + 131, + 68, + 255, + 171, + 75, + 152, + 2, + 51, + 5, + 13, + 51, + 8, + 51, + 9, + 255, + 190, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 134, + 2, + 51, + 5, + 14, + 51, + 8, + 255, + 51, + 9, + 1, + 190, + 152, + 11, + 51, + 4, + 171, + 75, + 116, + 2, + 51, + 5, + 15, + 51, + 8, + 255, + 51, + 9, + 255, + 190, + 152, + 11, + 51, + 4, + 254, + 171, + 75, + 97, + 2, + 51, + 5, + 16, + 51, + 8, + 1, + 51, + 9, + 0, + 0, + 0, + 128, + 131, + 153, + 255, + 190, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 69, + 2, + 51, + 5, + 17, + 51, + 8, + 13, + 51, + 9, + 11, + 190, + 152, + 8, + 51, + 4, + 24, + 171, + 72, + 50, + 2, + 51, + 5, + 18, + 51, + 8, + 14, + 51, + 9, + 11, + 190, + 152, + 9, + 51, + 4, + 25, + 171, + 73, + 31, + 2, + 51, + 5, + 19, + 51, + 8, + 13, + 190, + 136, + 8, + 51, + 4, + 26, + 171, + 72, + 15, + 2, + 51, + 5, + 20, + 51, + 10, + 1, + 51, + 0, + 13, + 51, + 1, + 11, + 190, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 24, + 171, + 67, + 238, + 1, + 51, + 5, + 21, + 51, + 10, + 1, + 51, + 0, + 14, + 51, + 1, + 11, + 190, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 25, + 171, + 67, + 205, + 1, + 51, + 5, + 22, + 51, + 10, + 1, + 51, + 0, + 15, + 51, + 1, + 11, + 190, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 26, + 171, + 67, + 172, + 1, + 51, + 5, + 23, + 51, + 10, + 1, + 51, + 0, + 13, + 51, + 1, + 11, + 190, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 24, + 171, + 75, + 141, + 1, + 51, + 5, + 24, + 51, + 10, + 1, + 51, + 0, + 14, + 51, + 1, + 11, + 190, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 25, + 171, + 75, + 110, + 1, + 51, + 5, + 25, + 51, + 10, + 1, + 51, + 0, + 15, + 51, + 1, + 11, + 190, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 26, + 171, + 75, + 79, + 1, + 51, + 5, + 26, + 51, + 10, + 1, + 51, + 0, + 13, + 51, + 1, + 11, + 190, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 24, + 171, + 75, + 48, + 1, + 51, + 5, + 27, + 51, + 10, + 1, + 51, + 0, + 14, + 51, + 1, + 11, + 190, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 25, + 171, + 75, + 17, + 1, + 51, + 5, + 28, + 51, + 10, + 1, + 51, + 0, + 15, + 51, + 1, + 11, + 190, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 26, + 171, + 75, + 242, + 0, + 51, + 5, + 29, + 51, + 10, + 1, + 51, + 1, + 11, + 51, + 0, + 13, + 190, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 24, + 171, + 75, + 211, + 0, + 51, + 5, + 30, + 51, + 10, + 1, + 51, + 1, + 11, + 51, + 0, + 14, + 190, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 25, + 171, + 75, + 180, + 0, + 51, + 5, + 31, + 51, + 10, + 1, + 51, + 1, + 11, + 51, + 0, + 15, + 190, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 26, + 171, + 75, + 149, + 0, + 51, + 5, + 32, + 51, + 10, + 1, + 51, + 1, + 11, + 51, + 0, + 13, + 190, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 24, + 171, + 75, + 118, + 51, + 5, + 33, + 51, + 10, + 1, + 51, + 1, + 11, + 51, + 0, + 14, + 190, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 25, + 171, + 75, + 88, + 51, + 5, + 34, + 51, + 10, + 1, + 51, + 1, + 11, + 51, + 0, + 15, + 190, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 26, + 171, + 75, + 58, + 51, + 5, + 35, + 51, + 0, + 15, + 131, + 1, + 51, + 4, + 15, + 171, + 65, + 44, + 51, + 5, + 36, + 51, + 0, + 32, + 131, + 1, + 51, + 4, + 32, + 171, + 65, + 30, + 51, + 5, + 37, + 51, + 0, + 51, + 4, + 171, + 64, + 20, + 51, + 5, + 38, + 51, + 0, + 16, + 51, + 1, + 30, + 51, + 4, + 82, + 4, + 6, + 82, + 5, + 4, + 0, + 40, + 67, + 252, + 33, + 41, + 149, + 34, + 73, + 18, + 73, + 146, + 72, + 145, + 136, + 4, + 37, + 136, + 4, + 145, + 32, + 82, + 72, + 66, + 34, + 65, + 74, + 144, + 72, + 144, + 144, + 4, + 137, + 4, + 33, + 9, + 18, + 9, + 18, + 9, + 18, + 41, + 73, + 36, + 73, + 145, + 36, + 137, + 36, + 72, + 130, + 72, + 146, + 68, + 146, + 36, + 146, + 36, + 210, + 36, + 37, + 73, + 164, + 73, + 74, + 146, + 72, + 147, + 148, + 36, + 145, + 38, + 73, + 146, + 72, + 147, + 36, + 73, + 164, + 73, + 146, + 36, + 210, + 36, + 73, + 18, + 105, + 146, + 36, + 137, + 52, + 73, + 146, + 68, + 154, + 36, + 73, + 34, + 77, + 146, + 36, + 145, + 38, + 73, + 146, + 72, + 147, + 36, + 73, + 210, + 36, + 73, + 146, + 52, + 73, + 146, + 36, + 41, + 73, + 74, + 82, + 73, + 82, + 50 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 30, + 2, + 26, + 0, + 38, + 0, + 0, + 26, + 25, + 2, + 26, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9595 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_and.json b/pvm/programs/riscv_rv64ui_and.json new file mode 100644 index 00000000..12cd5d7d --- /dev/null +++ b/pvm/programs/riscv_rv64ui_and.json @@ -0,0 +1,1451 @@ +{ + "name": "riscv_rv64ui_and", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 132, + 224, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 8, + 0, + 0, + 1, + 131, + 136, + 1, + 255, + 151, + 136, + 16, + 149, + 136, + 0, + 255, + 51, + 9, + 0, + 16, + 15, + 15, + 131, + 153, + 15, + 255, + 210, + 152, + 11, + 51, + 4, + 0, + 16, + 0, + 15, + 131, + 68, + 0, + 255, + 171, + 75, + 165, + 4, + 51, + 5, + 3, + 51, + 8, + 0, + 16, + 240, + 15, + 131, + 136, + 240, + 51, + 9, + 0, + 16, + 15, + 131, + 153, + 15, + 255, + 151, + 153, + 12, + 149, + 153, + 240, + 0, + 210, + 152, + 11, + 51, + 4, + 0, + 0, + 240, + 0, + 131, + 68, + 240, + 0, + 171, + 75, + 120, + 4, + 51, + 5, + 4, + 51, + 8, + 0, + 0, + 255, + 0, + 131, + 136, + 255, + 0, + 51, + 9, + 0, + 16, + 15, + 15, + 131, + 153, + 15, + 255, + 210, + 152, + 11, + 51, + 4, + 0, + 0, + 15, + 131, + 68, + 15, + 171, + 75, + 82, + 4, + 51, + 5, + 5, + 51, + 8, + 0, + 0, + 15, + 131, + 136, + 255, + 0, + 151, + 136, + 12, + 149, + 136, + 15, + 51, + 9, + 0, + 16, + 15, + 131, + 153, + 15, + 255, + 151, + 153, + 12, + 149, + 153, + 240, + 0, + 210, + 152, + 11, + 51, + 4, + 0, + 0, + 15, + 131, + 68, + 15, + 151, + 68, + 12, + 171, + 75, + 30, + 4, + 51, + 5, + 6, + 51, + 8, + 0, + 0, + 1, + 131, + 136, + 1, + 255, + 151, + 136, + 16, + 149, + 136, + 0, + 255, + 51, + 9, + 0, + 16, + 15, + 15, + 131, + 153, + 15, + 255, + 210, + 152, + 8, + 51, + 4, + 0, + 16, + 0, + 15, + 131, + 68, + 0, + 255, + 171, + 72, + 240, + 3, + 51, + 5, + 7, + 51, + 8, + 0, + 16, + 240, + 15, + 131, + 136, + 240, + 51, + 9, + 0, + 16, + 15, + 131, + 153, + 15, + 255, + 151, + 153, + 12, + 149, + 153, + 240, + 0, + 210, + 152, + 9, + 51, + 4, + 0, + 0, + 240, + 0, + 131, + 68, + 240, + 0, + 171, + 73, + 195, + 3, + 51, + 5, + 8, + 51, + 8, + 0, + 0, + 1, + 131, + 136, + 1, + 255, + 151, + 136, + 16, + 149, + 136, + 0, + 255, + 210, + 136, + 8, + 51, + 4, + 0, + 0, + 1, + 131, + 68, + 1, + 255, + 151, + 68, + 16, + 149, + 68, + 0, + 255, + 171, + 72, + 153, + 3, + 51, + 5, + 9, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 1, + 255, + 151, + 0, + 16, + 149, + 0, + 0, + 255, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 210, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 219, + 51, + 4, + 0, + 16, + 0, + 15, + 131, + 68, + 0, + 255, + 171, + 67, + 93, + 3, + 51, + 5, + 10, + 51, + 10, + 1, + 51, + 0, + 0, + 16, + 240, + 15, + 131, + 0, + 240, + 51, + 1, + 0, + 16, + 15, + 131, + 17, + 15, + 255, + 151, + 17, + 12, + 149, + 17, + 240, + 0, + 210, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 220, + 51, + 4, + 0, + 0, + 240, + 0, + 131, + 68, + 240, + 0, + 171, + 67, + 34, + 3, + 51, + 5, + 11, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 255, + 0, + 131, + 0, + 255, + 0, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 210, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 225, + 51, + 4, + 0, + 0, + 15, + 131, + 68, + 15, + 171, + 67, + 238, + 2, + 51, + 5, + 12, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 1, + 255, + 151, + 0, + 16, + 149, + 0, + 0, + 255, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 210, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 221, + 51, + 4, + 0, + 16, + 0, + 15, + 131, + 68, + 0, + 255, + 171, + 75, + 180, + 2, + 51, + 5, + 13, + 51, + 10, + 1, + 51, + 0, + 0, + 16, + 240, + 15, + 131, + 0, + 240, + 51, + 1, + 0, + 16, + 15, + 131, + 17, + 15, + 255, + 151, + 17, + 12, + 149, + 17, + 240, + 0, + 210, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 222, + 51, + 4, + 0, + 0, + 240, + 0, + 131, + 68, + 240, + 0, + 171, + 75, + 123, + 2, + 51, + 5, + 14, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 255, + 0, + 131, + 0, + 255, + 0, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 210, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 227, + 51, + 4, + 0, + 0, + 15, + 131, + 68, + 15, + 171, + 75, + 73, + 2, + 51, + 5, + 15, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 1, + 255, + 151, + 0, + 16, + 149, + 0, + 0, + 255, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 210, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 221, + 51, + 4, + 0, + 16, + 0, + 15, + 131, + 68, + 0, + 255, + 171, + 75, + 15, + 2, + 51, + 5, + 16, + 51, + 10, + 1, + 51, + 0, + 0, + 16, + 240, + 15, + 131, + 0, + 240, + 51, + 1, + 0, + 16, + 15, + 131, + 17, + 15, + 255, + 151, + 17, + 12, + 149, + 17, + 240, + 0, + 210, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 222, + 51, + 4, + 0, + 0, + 240, + 0, + 131, + 68, + 240, + 0, + 171, + 75, + 214, + 1, + 51, + 5, + 17, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 255, + 0, + 131, + 0, + 255, + 0, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 210, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 227, + 51, + 4, + 0, + 0, + 15, + 131, + 68, + 15, + 171, + 75, + 164, + 1, + 51, + 5, + 18, + 51, + 10, + 1, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 1, + 255, + 151, + 0, + 16, + 149, + 0, + 0, + 255, + 210, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 221, + 51, + 4, + 0, + 16, + 0, + 15, + 131, + 68, + 0, + 255, + 171, + 75, + 106, + 1, + 51, + 5, + 19, + 51, + 10, + 1, + 51, + 1, + 0, + 16, + 15, + 131, + 17, + 15, + 255, + 151, + 17, + 12, + 149, + 17, + 240, + 0, + 51, + 0, + 0, + 16, + 240, + 15, + 131, + 0, + 240, + 210, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 222, + 51, + 4, + 0, + 0, + 240, + 0, + 131, + 68, + 240, + 0, + 171, + 75, + 49, + 1, + 51, + 5, + 20, + 51, + 10, + 1, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 51, + 0, + 0, + 0, + 255, + 0, + 131, + 0, + 255, + 0, + 210, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 227, + 51, + 4, + 0, + 0, + 15, + 131, + 68, + 15, + 171, + 75, + 255, + 0, + 51, + 5, + 21, + 51, + 10, + 1, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 1, + 255, + 151, + 0, + 16, + 149, + 0, + 0, + 255, + 210, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 221, + 51, + 4, + 0, + 16, + 0, + 15, + 131, + 68, + 0, + 255, + 171, + 75, + 197, + 0, + 51, + 5, + 22, + 51, + 10, + 1, + 51, + 1, + 0, + 16, + 15, + 131, + 17, + 15, + 255, + 151, + 17, + 12, + 149, + 17, + 240, + 0, + 51, + 0, + 0, + 16, + 240, + 15, + 131, + 0, + 240, + 210, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 222, + 51, + 4, + 0, + 0, + 240, + 0, + 131, + 68, + 240, + 0, + 171, + 75, + 140, + 0, + 51, + 5, + 23, + 51, + 10, + 1, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 51, + 0, + 0, + 0, + 255, + 0, + 131, + 0, + 255, + 0, + 210, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 227, + 51, + 4, + 0, + 0, + 15, + 131, + 68, + 15, + 171, + 75, + 90, + 51, + 5, + 24, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 1, + 255, + 151, + 0, + 16, + 149, + 0, + 0, + 255, + 132, + 1, + 51, + 4, + 171, + 65, + 64, + 51, + 5, + 25, + 51, + 0, + 0, + 0, + 255, + 0, + 131, + 0, + 255, + 0, + 132, + 1, + 51, + 4, + 171, + 65, + 44, + 51, + 5, + 26, + 51, + 0, + 51, + 4, + 171, + 64, + 34, + 51, + 5, + 27, + 51, + 0, + 0, + 16, + 17, + 17, + 131, + 0, + 17, + 1, + 51, + 1, + 0, + 32, + 34, + 34, + 131, + 17, + 34, + 2, + 51, + 4, + 82, + 4, + 6, + 82, + 5, + 4, + 0, + 40, + 35, + 251, + 33, + 41, + 33, + 18, + 65, + 36, + 136, + 72, + 144, + 16, + 137, + 4, + 17, + 9, + 34, + 136, + 132, + 68, + 66, + 36, + 33, + 18, + 9, + 73, + 36, + 68, + 34, + 136, + 4, + 17, + 9, + 18, + 34, + 145, + 32, + 34, + 33, + 18, + 9, + 145, + 136, + 52, + 68, + 34, + 136, + 148, + 36, + 136, + 72, + 131, + 132, + 72, + 164, + 36, + 65, + 68, + 26, + 68, + 16, + 41, + 73, + 72, + 164, + 33, + 18, + 65, + 36, + 73, + 16, + 145, + 6, + 9, + 145, + 72, + 146, + 32, + 34, + 13, + 34, + 136, + 36, + 9, + 137, + 52, + 68, + 34, + 136, + 36, + 9, + 34, + 210, + 32, + 33, + 18, + 73, + 18, + 68, + 164, + 65, + 4, + 145, + 36, + 33, + 145, + 6, + 17, + 34, + 145, + 36, + 65, + 68, + 26, + 34, + 17, + 36, + 73, + 130, + 136, + 52, + 136, + 32, + 146, + 36, + 36, + 210, + 32, + 66, + 36, + 146, + 36, + 136, + 72, + 67, + 36, + 130, + 36, + 73, + 16, + 145, + 6, + 17, + 68, + 146, + 132, + 36, + 33, + 18, + 149, + 4, + 81, + 73, + 37, + 65, + 4, + 81, + 50 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 572662306, + 2, + 983055, + 0, + 27, + 0, + 0, + 4278255360, + 15728880, + 2, + 983055, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9515 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_andi.json b/pvm/programs/riscv_rv64ui_andi.json new file mode 100644 index 00000000..11084c10 --- /dev/null +++ b/pvm/programs/riscv_rv64ui_andi.json @@ -0,0 +1,541 @@ +{ + "name": "riscv_rv64ui_andi", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 129, + 183, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 10, + 0, + 0, + 1, + 131, + 170, + 1, + 255, + 151, + 170, + 16, + 149, + 170, + 0, + 255, + 132, + 171, + 15, + 255, + 51, + 4, + 0, + 0, + 1, + 131, + 68, + 1, + 255, + 151, + 68, + 16, + 149, + 68, + 0, + 255, + 171, + 75, + 127, + 1, + 51, + 5, + 3, + 51, + 10, + 0, + 16, + 240, + 15, + 131, + 170, + 240, + 132, + 171, + 240, + 0, + 51, + 4, + 240, + 0, + 171, + 75, + 103, + 1, + 51, + 5, + 4, + 51, + 10, + 0, + 0, + 255, + 0, + 131, + 170, + 255, + 0, + 132, + 171, + 15, + 7, + 51, + 4, + 15, + 171, + 75, + 79, + 1, + 51, + 5, + 5, + 51, + 10, + 0, + 0, + 15, + 131, + 170, + 255, + 0, + 151, + 170, + 12, + 149, + 170, + 15, + 132, + 171, + 240, + 0, + 51, + 4, + 171, + 75, + 51, + 1, + 51, + 5, + 6, + 51, + 8, + 0, + 0, + 1, + 131, + 136, + 1, + 255, + 151, + 136, + 16, + 149, + 136, + 0, + 255, + 132, + 136, + 240, + 0, + 51, + 4, + 171, + 72, + 22, + 1, + 51, + 5, + 7, + 51, + 9, + 1, + 51, + 0, + 0, + 16, + 240, + 15, + 131, + 0, + 240, + 132, + 11, + 15, + 7, + 100, + 179, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 235, + 51, + 4, + 0, + 7, + 171, + 67, + 240, + 0, + 51, + 5, + 8, + 51, + 9, + 1, + 51, + 0, + 0, + 0, + 255, + 0, + 131, + 0, + 255, + 0, + 132, + 11, + 240, + 0, + 100, + 179, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 234, + 51, + 4, + 240, + 0, + 171, + 67, + 201, + 0, + 51, + 5, + 9, + 51, + 9, + 1, + 51, + 0, + 0, + 0, + 15, + 131, + 0, + 255, + 0, + 151, + 0, + 12, + 149, + 0, + 15, + 132, + 11, + 15, + 255, + 100, + 179, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 229, + 51, + 4, + 0, + 0, + 15, + 131, + 68, + 255, + 0, + 151, + 68, + 12, + 149, + 68, + 15, + 171, + 67, + 146, + 0, + 51, + 5, + 10, + 51, + 9, + 1, + 51, + 0, + 0, + 16, + 240, + 15, + 131, + 0, + 240, + 132, + 11, + 15, + 7, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 237, + 51, + 4, + 0, + 7, + 171, + 75, + 110, + 51, + 5, + 11, + 51, + 9, + 1, + 51, + 0, + 0, + 0, + 255, + 0, + 131, + 0, + 255, + 0, + 132, + 11, + 240, + 0, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 236, + 51, + 4, + 240, + 0, + 171, + 75, + 74, + 51, + 5, + 12, + 51, + 9, + 1, + 51, + 0, + 0, + 0, + 15, + 131, + 0, + 255, + 0, + 151, + 0, + 12, + 149, + 0, + 15, + 132, + 11, + 15, + 7, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 231, + 51, + 4, + 15, + 171, + 75, + 34, + 51, + 5, + 13, + 51, + 0, + 51, + 4, + 171, + 64, + 24, + 51, + 5, + 14, + 51, + 0, + 0, + 0, + 255, + 0, + 131, + 0, + 255, + 0, + 51, + 4, + 82, + 4, + 6, + 82, + 5, + 4, + 0, + 40, + 76, + 254, + 33, + 41, + 33, + 18, + 17, + 34, + 17, + 9, + 18, + 17, + 9, + 34, + 18, + 9, + 145, + 68, + 145, + 16, + 137, + 40, + 210, + 32, + 81, + 146, + 136, + 52, + 136, + 40, + 73, + 68, + 26, + 34, + 137, + 146, + 132, + 72, + 34, + 13, + 18, + 73, + 34, + 105, + 16, + 145, + 36, + 146, + 134, + 72, + 34, + 73, + 146, + 74, + 130, + 40, + 25 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 2, + 4027576335, + 0, + 14, + 0, + 0, + 0, + 2, + 4027576335, + 15, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9827 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_beq.json b/pvm/programs/riscv_rv64ui_beq.json new file mode 100644 index 00000000..d37cb297 --- /dev/null +++ b/pvm/programs/riscv_rv64ui_beq.json @@ -0,0 +1,609 @@ +{ + "name": "riscv_rv64ui_beq", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 129, + 243, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 0, + 51, + 1, + 170, + 16, + 10, + 82, + 5, + 216, + 1, + 82, + 5, + 10, + 170, + 16, + 253, + 82, + 5, + 206, + 1, + 51, + 5, + 3, + 51, + 0, + 1, + 51, + 1, + 1, + 170, + 16, + 10, + 82, + 5, + 190, + 1, + 82, + 5, + 10, + 170, + 16, + 253, + 82, + 5, + 180, + 1, + 51, + 5, + 4, + 51, + 0, + 255, + 51, + 1, + 255, + 170, + 16, + 10, + 82, + 5, + 164, + 1, + 82, + 5, + 10, + 170, + 16, + 253, + 82, + 5, + 154, + 1, + 51, + 5, + 5, + 51, + 0, + 51, + 1, + 1, + 170, + 16, + 6, + 82, + 5, + 7, + 82, + 5, + 136, + 1, + 170, + 16, + 252, + 51, + 5, + 6, + 51, + 0, + 1, + 51, + 1, + 170, + 16, + 6, + 82, + 5, + 7, + 82, + 5, + 115, + 1, + 170, + 16, + 252, + 51, + 5, + 7, + 51, + 0, + 255, + 51, + 1, + 1, + 170, + 16, + 6, + 82, + 5, + 7, + 82, + 5, + 93, + 1, + 170, + 16, + 252, + 51, + 5, + 8, + 51, + 0, + 1, + 51, + 1, + 255, + 170, + 16, + 6, + 82, + 5, + 7, + 82, + 5, + 71, + 1, + 170, + 16, + 252, + 51, + 5, + 9, + 51, + 11, + 1, + 51, + 0, + 51, + 1, + 255, + 170, + 16, + 53, + 1, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 241, + 51, + 5, + 10, + 51, + 11, + 1, + 51, + 0, + 51, + 1, + 255, + 170, + 16, + 29, + 1, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 241, + 51, + 5, + 11, + 51, + 11, + 1, + 51, + 0, + 51, + 1, + 255, + 170, + 16, + 5, + 1, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 241, + 51, + 5, + 12, + 51, + 11, + 1, + 51, + 0, + 51, + 1, + 255, + 170, + 16, + 237, + 0, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 241, + 51, + 5, + 13, + 51, + 11, + 1, + 51, + 0, + 51, + 1, + 255, + 170, + 16, + 213, + 0, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 241, + 51, + 5, + 14, + 51, + 11, + 1, + 51, + 0, + 51, + 1, + 255, + 170, + 16, + 189, + 0, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 241, + 51, + 5, + 15, + 51, + 11, + 1, + 51, + 0, + 51, + 1, + 255, + 170, + 16, + 165, + 0, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 241, + 51, + 5, + 16, + 51, + 11, + 1, + 51, + 0, + 51, + 1, + 255, + 170, + 16, + 141, + 0, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 241, + 51, + 5, + 17, + 51, + 11, + 1, + 51, + 0, + 51, + 1, + 255, + 170, + 16, + 117, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 242, + 51, + 5, + 18, + 51, + 11, + 1, + 51, + 0, + 51, + 1, + 255, + 170, + 16, + 94, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 242, + 51, + 5, + 19, + 51, + 11, + 1, + 51, + 0, + 51, + 1, + 255, + 170, + 16, + 71, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 242, + 51, + 5, + 20, + 51, + 11, + 1, + 51, + 0, + 51, + 1, + 255, + 170, + 16, + 48, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 242, + 51, + 5, + 21, + 51, + 0, + 1, + 40, + 15, + 149, + 0, + 1, + 149, + 0, + 1, + 149, + 0, + 1, + 149, + 0, + 1, + 1, + 149, + 0, + 1, + 149, + 0, + 1, + 51, + 4, + 3, + 171, + 64, + 6, + 82, + 5, + 4, + 0, + 40, + 16, + 254, + 33, + 41, + 149, + 72, + 34, + 73, + 34, + 137, + 36, + 137, + 36, + 82, + 146, + 72, + 82, + 18, + 73, + 146, + 68, + 146, + 36, + 145, + 180, + 68, + 146, + 180, + 68, + 146, + 180, + 68, + 146, + 180, + 68, + 146, + 180, + 68, + 146, + 180, + 68, + 146, + 180, + 68, + 146, + 180, + 68, + 146, + 180, + 36, + 73, + 90, + 146, + 36, + 45, + 73, + 146, + 150, + 36, + 73, + 74, + 146, + 73, + 146, + 1 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 18446744073709551615, + 2, + 0, + 3, + 21, + 0, + 0, + 0, + 0, + 0, + 2, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9765 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_bge.json b/pvm/programs/riscv_rv64ui_bge.json new file mode 100644 index 00000000..3dc7369f --- /dev/null +++ b/pvm/programs/riscv_rv64ui_bge.json @@ -0,0 +1,698 @@ +{ + "name": "riscv_rv64ui_bge", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 130, + 66, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 0, + 51, + 1, + 175, + 16, + 10, + 82, + 5, + 39, + 2, + 82, + 5, + 10, + 175, + 16, + 253, + 82, + 5, + 29, + 2, + 51, + 5, + 3, + 51, + 0, + 1, + 51, + 1, + 1, + 175, + 16, + 10, + 82, + 5, + 13, + 2, + 82, + 5, + 10, + 175, + 16, + 253, + 82, + 5, + 3, + 2, + 51, + 5, + 4, + 51, + 0, + 255, + 51, + 1, + 255, + 175, + 16, + 10, + 82, + 5, + 243, + 1, + 82, + 5, + 10, + 175, + 16, + 253, + 82, + 5, + 233, + 1, + 51, + 5, + 5, + 51, + 0, + 1, + 51, + 1, + 175, + 16, + 10, + 82, + 5, + 218, + 1, + 82, + 5, + 10, + 175, + 16, + 253, + 82, + 5, + 208, + 1, + 51, + 5, + 6, + 51, + 0, + 1, + 51, + 1, + 255, + 175, + 16, + 10, + 82, + 5, + 192, + 1, + 82, + 5, + 10, + 175, + 16, + 253, + 82, + 5, + 182, + 1, + 51, + 5, + 7, + 51, + 0, + 255, + 51, + 1, + 254, + 175, + 16, + 10, + 82, + 5, + 166, + 1, + 82, + 5, + 10, + 175, + 16, + 253, + 82, + 5, + 156, + 1, + 51, + 5, + 8, + 51, + 0, + 51, + 1, + 1, + 175, + 16, + 6, + 82, + 5, + 7, + 82, + 5, + 138, + 1, + 175, + 16, + 252, + 51, + 5, + 9, + 51, + 0, + 255, + 51, + 1, + 1, + 175, + 16, + 6, + 82, + 5, + 7, + 82, + 5, + 116, + 1, + 175, + 16, + 252, + 51, + 5, + 10, + 51, + 0, + 254, + 51, + 1, + 255, + 175, + 16, + 6, + 82, + 5, + 7, + 82, + 5, + 94, + 1, + 175, + 16, + 252, + 51, + 5, + 11, + 51, + 0, + 254, + 51, + 1, + 1, + 175, + 16, + 6, + 82, + 5, + 7, + 82, + 5, + 72, + 1, + 175, + 16, + 252, + 51, + 5, + 12, + 51, + 11, + 1, + 51, + 0, + 255, + 51, + 1, + 175, + 16, + 54, + 1, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 241, + 51, + 5, + 13, + 51, + 11, + 1, + 51, + 0, + 255, + 51, + 1, + 175, + 16, + 30, + 1, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 241, + 51, + 5, + 14, + 51, + 11, + 1, + 51, + 0, + 255, + 51, + 1, + 175, + 16, + 6, + 1, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 241, + 51, + 5, + 15, + 51, + 11, + 1, + 51, + 0, + 255, + 51, + 1, + 175, + 16, + 238, + 0, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 241, + 51, + 5, + 16, + 51, + 11, + 1, + 51, + 0, + 255, + 51, + 1, + 175, + 16, + 214, + 0, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 241, + 51, + 5, + 17, + 51, + 11, + 1, + 51, + 0, + 255, + 51, + 1, + 175, + 16, + 190, + 0, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 241, + 51, + 5, + 18, + 51, + 11, + 1, + 51, + 0, + 255, + 51, + 1, + 175, + 16, + 166, + 0, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 241, + 51, + 5, + 19, + 51, + 11, + 1, + 51, + 0, + 255, + 51, + 1, + 175, + 16, + 142, + 0, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 241, + 51, + 5, + 20, + 51, + 11, + 1, + 51, + 0, + 255, + 51, + 1, + 175, + 16, + 118, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 242, + 51, + 5, + 21, + 51, + 11, + 1, + 51, + 0, + 255, + 51, + 1, + 175, + 16, + 95, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 242, + 51, + 5, + 22, + 51, + 11, + 1, + 51, + 0, + 255, + 51, + 1, + 175, + 16, + 72, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 242, + 51, + 5, + 23, + 51, + 11, + 1, + 51, + 0, + 255, + 51, + 1, + 175, + 16, + 49, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 242, + 51, + 5, + 24, + 51, + 0, + 1, + 89, + 0, + 16, + 149, + 0, + 1, + 149, + 0, + 1, + 149, + 0, + 1, + 149, + 0, + 1, + 1, + 149, + 0, + 1, + 149, + 0, + 1, + 51, + 4, + 3, + 171, + 64, + 6, + 82, + 5, + 4, + 0, + 40, + 193, + 253, + 33, + 41, + 149, + 72, + 34, + 73, + 34, + 137, + 36, + 137, + 36, + 146, + 18, + 73, + 36, + 73, + 36, + 145, + 36, + 145, + 68, + 74, + 18, + 73, + 146, + 68, + 146, + 36, + 145, + 36, + 73, + 36, + 77, + 145, + 36, + 77, + 145, + 36, + 77, + 145, + 36, + 77, + 145, + 36, + 77, + 145, + 36, + 77, + 145, + 36, + 77, + 145, + 36, + 77, + 145, + 36, + 77, + 73, + 146, + 166, + 36, + 73, + 83, + 146, + 164, + 41, + 73, + 146, + 36, + 201, + 36, + 201, + 0 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 2, + 0, + 3, + 24, + 0, + 0, + 0, + 0, + 0, + 2, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9747 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_bgeu.json b/pvm/programs/riscv_rv64ui_bgeu.json new file mode 100644 index 00000000..5a906735 --- /dev/null +++ b/pvm/programs/riscv_rv64ui_bgeu.json @@ -0,0 +1,896 @@ +{ + "name": "riscv_rv64ui_bgeu", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 130, + 242, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 0, + 51, + 1, + 174, + 16, + 10, + 82, + 5, + 215, + 2, + 82, + 5, + 10, + 174, + 16, + 253, + 82, + 5, + 205, + 2, + 51, + 5, + 3, + 51, + 0, + 1, + 51, + 1, + 1, + 174, + 16, + 10, + 82, + 5, + 189, + 2, + 82, + 5, + 10, + 174, + 16, + 253, + 82, + 5, + 179, + 2, + 51, + 5, + 4, + 51, + 0, + 1, + 151, + 0, + 32, + 149, + 0, + 255, + 51, + 1, + 1, + 151, + 17, + 32, + 149, + 17, + 255, + 174, + 16, + 10, + 82, + 5, + 151, + 2, + 82, + 5, + 10, + 174, + 16, + 253, + 82, + 5, + 141, + 2, + 51, + 5, + 5, + 51, + 0, + 1, + 51, + 1, + 174, + 16, + 10, + 82, + 5, + 126, + 2, + 82, + 5, + 10, + 174, + 16, + 253, + 82, + 5, + 116, + 2, + 51, + 5, + 6, + 51, + 0, + 1, + 151, + 0, + 32, + 149, + 0, + 255, + 51, + 1, + 1, + 151, + 17, + 32, + 149, + 17, + 254, + 174, + 16, + 10, + 82, + 5, + 88, + 2, + 82, + 5, + 10, + 174, + 16, + 253, + 82, + 5, + 78, + 2, + 51, + 5, + 7, + 51, + 0, + 1, + 151, + 0, + 32, + 149, + 0, + 255, + 51, + 1, + 174, + 16, + 10, + 82, + 5, + 57, + 2, + 82, + 5, + 10, + 174, + 16, + 253, + 82, + 5, + 47, + 2, + 51, + 5, + 8, + 51, + 0, + 51, + 1, + 1, + 174, + 16, + 6, + 82, + 5, + 7, + 82, + 5, + 29, + 2, + 174, + 16, + 252, + 51, + 5, + 9, + 51, + 0, + 1, + 151, + 0, + 32, + 149, + 0, + 254, + 51, + 1, + 1, + 151, + 17, + 32, + 149, + 17, + 255, + 174, + 16, + 6, + 82, + 5, + 7, + 82, + 5, + 251, + 1, + 174, + 16, + 252, + 51, + 5, + 10, + 51, + 0, + 51, + 1, + 1, + 151, + 17, + 32, + 149, + 17, + 255, + 174, + 16, + 6, + 82, + 5, + 7, + 82, + 5, + 224, + 1, + 174, + 16, + 252, + 51, + 5, + 11, + 51, + 0, + 0, + 0, + 0, + 128, + 131, + 0, + 255, + 51, + 1, + 1, + 151, + 17, + 31, + 174, + 16, + 6, + 82, + 5, + 7, + 82, + 5, + 193, + 1, + 174, + 16, + 252, + 51, + 5, + 12, + 51, + 11, + 1, + 51, + 0, + 15, + 151, + 0, + 28, + 149, + 0, + 255, + 51, + 1, + 15, + 151, + 17, + 28, + 174, + 16, + 165, + 1, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 231, + 51, + 5, + 13, + 51, + 11, + 1, + 51, + 0, + 15, + 151, + 0, + 28, + 149, + 0, + 255, + 51, + 1, + 15, + 151, + 17, + 28, + 174, + 16, + 131, + 1, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 231, + 51, + 5, + 14, + 51, + 11, + 1, + 51, + 0, + 15, + 151, + 0, + 28, + 149, + 0, + 255, + 51, + 1, + 15, + 151, + 17, + 28, + 174, + 16, + 97, + 1, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 231, + 51, + 5, + 15, + 51, + 11, + 1, + 51, + 0, + 15, + 151, + 0, + 28, + 149, + 0, + 255, + 51, + 1, + 15, + 151, + 17, + 28, + 174, + 16, + 63, + 1, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 231, + 51, + 5, + 16, + 51, + 11, + 1, + 51, + 0, + 15, + 151, + 0, + 28, + 149, + 0, + 255, + 51, + 1, + 15, + 151, + 17, + 28, + 174, + 16, + 29, + 1, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 231, + 51, + 5, + 17, + 51, + 11, + 1, + 51, + 0, + 15, + 151, + 0, + 28, + 149, + 0, + 255, + 51, + 1, + 15, + 151, + 17, + 28, + 174, + 16, + 251, + 0, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 231, + 51, + 5, + 18, + 51, + 11, + 1, + 51, + 0, + 15, + 151, + 0, + 28, + 149, + 0, + 255, + 51, + 1, + 15, + 151, + 17, + 28, + 174, + 16, + 217, + 0, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 231, + 51, + 5, + 19, + 51, + 11, + 1, + 51, + 0, + 15, + 151, + 0, + 28, + 149, + 0, + 255, + 51, + 1, + 15, + 151, + 17, + 28, + 174, + 16, + 183, + 0, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 231, + 51, + 5, + 20, + 51, + 11, + 1, + 51, + 0, + 15, + 151, + 0, + 28, + 149, + 0, + 255, + 51, + 1, + 15, + 151, + 17, + 28, + 174, + 16, + 149, + 0, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 231, + 51, + 5, + 21, + 51, + 11, + 1, + 51, + 0, + 15, + 151, + 0, + 28, + 149, + 0, + 255, + 51, + 1, + 15, + 151, + 17, + 28, + 174, + 16, + 115, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 232, + 51, + 5, + 22, + 51, + 11, + 1, + 51, + 0, + 15, + 151, + 0, + 28, + 149, + 0, + 255, + 51, + 1, + 15, + 151, + 17, + 28, + 174, + 16, + 82, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 232, + 51, + 5, + 23, + 51, + 11, + 1, + 51, + 0, + 15, + 151, + 0, + 28, + 149, + 0, + 255, + 51, + 1, + 15, + 151, + 17, + 28, + 174, + 16, + 49, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 232, + 51, + 5, + 24, + 51, + 0, + 1, + 85, + 0, + 16, + 149, + 0, + 1, + 149, + 0, + 1, + 149, + 0, + 1, + 149, + 0, + 1, + 1, + 149, + 0, + 1, + 149, + 0, + 1, + 51, + 4, + 3, + 171, + 64, + 6, + 82, + 5, + 4, + 0, + 40, + 17, + 253, + 33, + 41, + 149, + 72, + 34, + 73, + 34, + 137, + 36, + 73, + 146, + 72, + 34, + 41, + 145, + 68, + 146, + 36, + 73, + 36, + 145, + 36, + 37, + 146, + 72, + 73, + 34, + 73, + 146, + 36, + 137, + 164, + 36, + 73, + 36, + 65, + 146, + 36, + 146, + 38, + 73, + 34, + 73, + 154, + 36, + 137, + 36, + 105, + 146, + 36, + 146, + 164, + 73, + 146, + 72, + 146, + 38, + 73, + 34, + 73, + 154, + 36, + 137, + 36, + 105, + 146, + 36, + 146, + 164, + 73, + 146, + 72, + 146, + 38, + 73, + 34, + 73, + 154, + 36, + 73, + 146, + 52, + 73, + 146, + 36, + 105, + 146, + 36, + 73, + 146, + 36, + 201, + 36, + 201, + 0 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 4026531840, + 2, + 0, + 3, + 24, + 0, + 0, + 0, + 0, + 0, + 2, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9657 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_blt.json b/pvm/programs/riscv_rv64ui_blt.json new file mode 100644 index 00000000..6f4d1ef9 --- /dev/null +++ b/pvm/programs/riscv_rv64ui_blt.json @@ -0,0 +1,612 @@ +{ + "name": "riscv_rv64ui_blt", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 129, + 246, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 0, + 51, + 1, + 1, + 173, + 16, + 10, + 82, + 5, + 218, + 1, + 82, + 5, + 10, + 173, + 16, + 253, + 82, + 5, + 208, + 1, + 51, + 5, + 3, + 51, + 0, + 255, + 51, + 1, + 1, + 173, + 16, + 10, + 82, + 5, + 192, + 1, + 82, + 5, + 10, + 173, + 16, + 253, + 82, + 5, + 182, + 1, + 51, + 5, + 4, + 51, + 0, + 254, + 51, + 1, + 255, + 173, + 16, + 10, + 82, + 5, + 166, + 1, + 82, + 5, + 10, + 173, + 16, + 253, + 82, + 5, + 156, + 1, + 51, + 5, + 5, + 51, + 0, + 1, + 51, + 1, + 173, + 16, + 6, + 82, + 5, + 7, + 82, + 5, + 138, + 1, + 173, + 16, + 252, + 51, + 5, + 6, + 51, + 0, + 1, + 51, + 1, + 255, + 173, + 16, + 6, + 82, + 5, + 7, + 82, + 5, + 116, + 1, + 173, + 16, + 252, + 51, + 5, + 7, + 51, + 0, + 255, + 51, + 1, + 254, + 173, + 16, + 6, + 82, + 5, + 7, + 82, + 5, + 94, + 1, + 173, + 16, + 252, + 51, + 5, + 8, + 51, + 0, + 1, + 51, + 1, + 254, + 173, + 16, + 6, + 82, + 5, + 7, + 82, + 5, + 72, + 1, + 173, + 16, + 252, + 51, + 5, + 9, + 51, + 11, + 1, + 51, + 0, + 51, + 1, + 255, + 173, + 16, + 54, + 1, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 241, + 51, + 5, + 10, + 51, + 11, + 1, + 51, + 0, + 51, + 1, + 255, + 173, + 16, + 30, + 1, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 241, + 51, + 5, + 11, + 51, + 11, + 1, + 51, + 0, + 51, + 1, + 255, + 173, + 16, + 6, + 1, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 241, + 51, + 5, + 12, + 51, + 11, + 1, + 51, + 0, + 51, + 1, + 255, + 173, + 16, + 238, + 0, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 241, + 51, + 5, + 13, + 51, + 11, + 1, + 51, + 0, + 51, + 1, + 255, + 173, + 16, + 214, + 0, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 241, + 51, + 5, + 14, + 51, + 11, + 1, + 51, + 0, + 51, + 1, + 255, + 173, + 16, + 190, + 0, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 241, + 51, + 5, + 15, + 51, + 11, + 1, + 51, + 0, + 51, + 1, + 255, + 173, + 16, + 166, + 0, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 241, + 51, + 5, + 16, + 51, + 11, + 1, + 51, + 0, + 51, + 1, + 255, + 173, + 16, + 142, + 0, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 241, + 51, + 5, + 17, + 51, + 11, + 1, + 51, + 0, + 51, + 1, + 255, + 173, + 16, + 118, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 242, + 51, + 5, + 18, + 51, + 11, + 1, + 51, + 0, + 51, + 1, + 255, + 173, + 16, + 95, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 242, + 51, + 5, + 19, + 51, + 11, + 1, + 51, + 0, + 51, + 1, + 255, + 173, + 16, + 72, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 242, + 51, + 5, + 20, + 51, + 11, + 1, + 51, + 0, + 51, + 1, + 255, + 173, + 16, + 49, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 242, + 51, + 5, + 21, + 51, + 0, + 1, + 90, + 0, + 16, + 149, + 0, + 1, + 149, + 0, + 1, + 149, + 0, + 1, + 149, + 0, + 1, + 1, + 149, + 0, + 1, + 149, + 0, + 1, + 51, + 4, + 3, + 171, + 64, + 6, + 82, + 5, + 4, + 0, + 40, + 13, + 254, + 33, + 41, + 37, + 145, + 68, + 146, + 68, + 18, + 73, + 18, + 73, + 36, + 37, + 145, + 36, + 73, + 36, + 73, + 18, + 73, + 146, + 68, + 210, + 18, + 73, + 210, + 18, + 73, + 210, + 18, + 73, + 210, + 18, + 73, + 210, + 18, + 73, + 210, + 18, + 73, + 210, + 18, + 73, + 210, + 18, + 73, + 210, + 146, + 36, + 105, + 73, + 146, + 180, + 36, + 73, + 90, + 146, + 36, + 73, + 146, + 76, + 146, + 12 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 18446744073709551615, + 2, + 0, + 3, + 21, + 0, + 0, + 0, + 0, + 0, + 2, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9765 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_bltu.json b/pvm/programs/riscv_rv64ui_bltu.json new file mode 100644 index 00000000..6aa60ade --- /dev/null +++ b/pvm/programs/riscv_rv64ui_bltu.json @@ -0,0 +1,797 @@ +{ + "name": "riscv_rv64ui_bltu", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 130, + 154, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 0, + 51, + 1, + 1, + 172, + 16, + 10, + 82, + 5, + 126, + 2, + 82, + 5, + 10, + 172, + 16, + 253, + 82, + 5, + 116, + 2, + 51, + 5, + 3, + 51, + 0, + 1, + 151, + 0, + 32, + 149, + 0, + 254, + 51, + 1, + 1, + 151, + 17, + 32, + 149, + 17, + 255, + 172, + 16, + 10, + 82, + 5, + 88, + 2, + 82, + 5, + 10, + 172, + 16, + 253, + 82, + 5, + 78, + 2, + 51, + 5, + 4, + 51, + 0, + 51, + 1, + 1, + 151, + 17, + 32, + 149, + 17, + 255, + 172, + 16, + 10, + 82, + 5, + 57, + 2, + 82, + 5, + 10, + 172, + 16, + 253, + 82, + 5, + 47, + 2, + 51, + 5, + 5, + 51, + 0, + 1, + 51, + 1, + 172, + 16, + 6, + 82, + 5, + 7, + 82, + 5, + 29, + 2, + 172, + 16, + 252, + 51, + 5, + 6, + 51, + 0, + 1, + 151, + 0, + 32, + 149, + 0, + 255, + 51, + 1, + 1, + 151, + 17, + 32, + 149, + 17, + 254, + 172, + 16, + 6, + 82, + 5, + 7, + 82, + 5, + 251, + 1, + 172, + 16, + 252, + 51, + 5, + 7, + 51, + 0, + 1, + 151, + 0, + 32, + 149, + 0, + 255, + 51, + 1, + 172, + 16, + 6, + 82, + 5, + 7, + 82, + 5, + 224, + 1, + 172, + 16, + 252, + 51, + 5, + 8, + 51, + 0, + 1, + 151, + 0, + 31, + 51, + 1, + 0, + 0, + 0, + 128, + 131, + 17, + 255, + 172, + 16, + 6, + 82, + 5, + 7, + 82, + 5, + 193, + 1, + 172, + 16, + 252, + 51, + 5, + 9, + 51, + 11, + 1, + 51, + 0, + 15, + 151, + 0, + 28, + 51, + 1, + 15, + 151, + 17, + 28, + 149, + 17, + 255, + 172, + 16, + 165, + 1, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 231, + 51, + 5, + 10, + 51, + 11, + 1, + 51, + 0, + 15, + 151, + 0, + 28, + 51, + 1, + 15, + 151, + 17, + 28, + 149, + 17, + 255, + 172, + 16, + 131, + 1, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 231, + 51, + 5, + 11, + 51, + 11, + 1, + 51, + 0, + 15, + 151, + 0, + 28, + 51, + 1, + 15, + 151, + 17, + 28, + 149, + 17, + 255, + 172, + 16, + 97, + 1, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 231, + 51, + 5, + 12, + 51, + 11, + 1, + 51, + 0, + 15, + 151, + 0, + 28, + 51, + 1, + 15, + 151, + 17, + 28, + 149, + 17, + 255, + 172, + 16, + 63, + 1, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 231, + 51, + 5, + 13, + 51, + 11, + 1, + 51, + 0, + 15, + 151, + 0, + 28, + 51, + 1, + 15, + 151, + 17, + 28, + 149, + 17, + 255, + 172, + 16, + 29, + 1, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 231, + 51, + 5, + 14, + 51, + 11, + 1, + 51, + 0, + 15, + 151, + 0, + 28, + 51, + 1, + 15, + 151, + 17, + 28, + 149, + 17, + 255, + 172, + 16, + 251, + 0, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 231, + 51, + 5, + 15, + 51, + 11, + 1, + 51, + 0, + 15, + 151, + 0, + 28, + 51, + 1, + 15, + 151, + 17, + 28, + 149, + 17, + 255, + 172, + 16, + 217, + 0, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 231, + 51, + 5, + 16, + 51, + 11, + 1, + 51, + 0, + 15, + 151, + 0, + 28, + 51, + 1, + 15, + 151, + 17, + 28, + 149, + 17, + 255, + 172, + 16, + 183, + 0, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 231, + 51, + 5, + 17, + 51, + 11, + 1, + 51, + 0, + 15, + 151, + 0, + 28, + 51, + 1, + 15, + 151, + 17, + 28, + 149, + 17, + 255, + 172, + 16, + 149, + 0, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 231, + 51, + 5, + 18, + 51, + 11, + 1, + 51, + 0, + 15, + 151, + 0, + 28, + 51, + 1, + 15, + 151, + 17, + 28, + 149, + 17, + 255, + 172, + 16, + 115, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 232, + 51, + 5, + 19, + 51, + 11, + 1, + 51, + 0, + 15, + 151, + 0, + 28, + 51, + 1, + 15, + 151, + 17, + 28, + 149, + 17, + 255, + 172, + 16, + 82, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 232, + 51, + 5, + 20, + 51, + 11, + 1, + 51, + 0, + 15, + 151, + 0, + 28, + 51, + 1, + 15, + 151, + 17, + 28, + 149, + 17, + 255, + 172, + 16, + 49, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 232, + 51, + 5, + 21, + 51, + 0, + 1, + 86, + 0, + 16, + 149, + 0, + 1, + 149, + 0, + 1, + 149, + 0, + 1, + 149, + 0, + 1, + 1, + 149, + 0, + 1, + 149, + 0, + 1, + 51, + 4, + 3, + 171, + 64, + 6, + 82, + 5, + 4, + 0, + 40, + 105, + 253, + 33, + 41, + 37, + 145, + 68, + 146, + 36, + 73, + 36, + 145, + 146, + 36, + 146, + 72, + 74, + 34, + 73, + 146, + 36, + 137, + 36, + 73, + 73, + 36, + 73, + 144, + 36, + 146, + 38, + 73, + 34, + 73, + 154, + 36, + 137, + 36, + 105, + 146, + 36, + 146, + 164, + 73, + 146, + 72, + 146, + 38, + 73, + 34, + 73, + 154, + 36, + 137, + 36, + 105, + 146, + 36, + 146, + 164, + 73, + 146, + 72, + 146, + 38, + 73, + 34, + 73, + 154, + 36, + 73, + 146, + 52, + 73, + 146, + 36, + 105, + 146, + 36, + 73, + 146, + 36, + 201, + 36, + 201, + 0 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 4026531839, + 2, + 0, + 3, + 21, + 0, + 0, + 0, + 0, + 0, + 2, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9679 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_bne.json b/pvm/programs/riscv_rv64ui_bne.json new file mode 100644 index 00000000..66926444 --- /dev/null +++ b/pvm/programs/riscv_rv64ui_bne.json @@ -0,0 +1,601 @@ +{ + "name": "riscv_rv64ui_bne", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 129, + 236, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 0, + 51, + 1, + 1, + 171, + 16, + 10, + 82, + 5, + 208, + 1, + 82, + 5, + 10, + 171, + 16, + 253, + 82, + 5, + 198, + 1, + 51, + 5, + 3, + 51, + 0, + 1, + 51, + 1, + 171, + 16, + 10, + 82, + 5, + 183, + 1, + 82, + 5, + 10, + 171, + 16, + 253, + 82, + 5, + 173, + 1, + 51, + 5, + 4, + 51, + 0, + 255, + 51, + 1, + 1, + 171, + 16, + 10, + 82, + 5, + 157, + 1, + 82, + 5, + 10, + 171, + 16, + 253, + 82, + 5, + 147, + 1, + 51, + 5, + 5, + 51, + 0, + 1, + 51, + 1, + 255, + 171, + 16, + 10, + 82, + 5, + 131, + 1, + 82, + 5, + 10, + 171, + 16, + 253, + 82, + 5, + 121, + 1, + 51, + 5, + 6, + 51, + 0, + 51, + 1, + 171, + 16, + 6, + 82, + 5, + 7, + 82, + 5, + 104, + 1, + 171, + 16, + 252, + 51, + 5, + 7, + 51, + 0, + 1, + 51, + 1, + 1, + 171, + 16, + 6, + 82, + 5, + 7, + 82, + 5, + 82, + 1, + 171, + 16, + 252, + 51, + 5, + 8, + 51, + 0, + 255, + 51, + 1, + 255, + 171, + 16, + 6, + 82, + 5, + 7, + 82, + 5, + 60, + 1, + 171, + 16, + 252, + 51, + 5, + 9, + 51, + 11, + 1, + 51, + 0, + 51, + 1, + 171, + 16, + 43, + 1, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 242, + 51, + 5, + 10, + 51, + 11, + 1, + 51, + 0, + 51, + 1, + 171, + 16, + 20, + 1, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 242, + 51, + 5, + 11, + 51, + 11, + 1, + 51, + 0, + 51, + 1, + 171, + 16, + 253, + 0, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 242, + 51, + 5, + 12, + 51, + 11, + 1, + 51, + 0, + 51, + 1, + 171, + 16, + 230, + 0, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 242, + 51, + 5, + 13, + 51, + 11, + 1, + 51, + 0, + 51, + 1, + 171, + 16, + 207, + 0, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 242, + 51, + 5, + 14, + 51, + 11, + 1, + 51, + 0, + 51, + 1, + 171, + 16, + 184, + 0, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 242, + 51, + 5, + 15, + 51, + 11, + 1, + 51, + 0, + 51, + 1, + 171, + 16, + 161, + 0, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 242, + 51, + 5, + 16, + 51, + 11, + 1, + 51, + 0, + 51, + 1, + 171, + 16, + 138, + 0, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 242, + 51, + 5, + 17, + 51, + 11, + 1, + 51, + 0, + 51, + 1, + 171, + 16, + 115, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 243, + 51, + 5, + 18, + 51, + 11, + 1, + 51, + 0, + 51, + 1, + 171, + 16, + 93, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 243, + 51, + 5, + 19, + 51, + 11, + 1, + 51, + 0, + 51, + 1, + 171, + 16, + 71, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 243, + 51, + 5, + 20, + 51, + 11, + 1, + 51, + 0, + 51, + 1, + 171, + 16, + 49, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 243, + 51, + 5, + 21, + 51, + 0, + 1, + 82, + 0, + 16, + 149, + 0, + 1, + 149, + 0, + 1, + 149, + 0, + 1, + 149, + 0, + 1, + 1, + 149, + 0, + 1, + 149, + 0, + 1, + 51, + 4, + 3, + 171, + 64, + 6, + 82, + 5, + 4, + 0, + 40, + 23, + 254, + 33, + 41, + 37, + 145, + 68, + 82, + 34, + 137, + 36, + 137, + 36, + 146, + 36, + 146, + 72, + 37, + 145, + 36, + 73, + 36, + 73, + 18, + 73, + 43, + 146, + 164, + 21, + 73, + 210, + 138, + 36, + 105, + 69, + 146, + 180, + 34, + 73, + 90, + 145, + 36, + 173, + 72, + 146, + 86, + 36, + 73, + 43, + 73, + 210, + 74, + 146, + 180, + 146, + 36, + 173, + 36, + 73, + 146, + 36, + 147, + 36, + 3 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 2, + 0, + 3, + 21, + 0, + 0, + 0, + 0, + 0, + 2, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9765 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_jal.json b/pvm/programs/riscv_rv64ui_jal.json new file mode 100644 index 00000000..ee44107a --- /dev/null +++ b/pvm/programs/riscv_rv64ui_jal.json @@ -0,0 +1,132 @@ +{ + "name": "riscv_rv64ui_jal", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [ + { + "address": 65536, + "length": 4096, + "is-writable": false + } + ], + "initial-memory": [ + { + "address": 65536, + "contents": [ + 2 + ] + } + ], + "initial-gas": 10000, + "program": [ + 1, + 1, + 57, + 22, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 0, + 80, + 27, + 2, + 6, + 40, + 32, + 58, + 1, + 0, + 0, + 1, + 171, + 177, + 25, + 51, + 5, + 3, + 51, + 0, + 1, + 1, + 149, + 0, + 1, + 149, + 0, + 1, + 51, + 4, + 3, + 171, + 64, + 6, + 82, + 5, + 4, + 0, + 40, + 201, + 33, + 41, + 69, + 33, + 201, + 36, + 201, + 0 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 2, + 0, + 0, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 2, + 0 + ], + "expected-pc": 11, + "expected-memory": [ + { + "address": 65536, + "contents": [ + 2 + ] + } + ], + "expected-gas": 9982 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_jalr.json b/pvm/programs/riscv_rv64ui_jalr.json new file mode 100644 index 00000000..1a04ce9c --- /dev/null +++ b/pvm/programs/riscv_rv64ui_jalr.json @@ -0,0 +1,315 @@ +{ + "name": "riscv_rv64ui_jalr", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [ + { + "address": 65536, + "length": 4096, + "is-writable": false + } + ], + "initial-memory": [ + { + "address": 65536, + "contents": [ + 4 + ] + }, + { + "address": 65544, + "contents": [ + 2 + ] + }, + { + "address": 65552, + "contents": [ + 8 + ] + }, + { + "address": 65560, + "contents": [ + 6 + ] + }, + { + "address": 65568, + "contents": [ + 12 + ] + }, + { + "address": 65576, + "contents": [ + 16 + ] + }, + { + "address": 65584, + "contents": [ + 20 + ] + } + ], + "initial-gas": 10000, + "program": [ + 10, + 1, + 128, + 147, + 27, + 29, + 49, + 51, + 74, + 77, + 101, + 104, + 128, + 131, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 2, + 58, + 3, + 0, + 0, + 1, + 180, + 50, + 1, + 2, + 40, + 116, + 58, + 3, + 8, + 0, + 1, + 171, + 50, + 109, + 51, + 5, + 3, + 58, + 2, + 16, + 0, + 1, + 180, + 34, + 1, + 6, + 40, + 94, + 58, + 3, + 24, + 0, + 1, + 171, + 50, + 87, + 51, + 5, + 4, + 51, + 11, + 1, + 58, + 3, + 32, + 0, + 1, + 180, + 58, + 1, + 10, + 82, + 5, + 69, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 238, + 51, + 5, + 5, + 51, + 11, + 1, + 58, + 3, + 40, + 0, + 1, + 180, + 58, + 1, + 14, + 82, + 5, + 42, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 238, + 51, + 5, + 6, + 51, + 11, + 1, + 58, + 3, + 48, + 0, + 1, + 180, + 58, + 1, + 18, + 82, + 5, + 15, + 149, + 187, + 1, + 51, + 2, + 2, + 171, + 43, + 238, + 82, + 5, + 4, + 0, + 40, + 112, + 255, + 33, + 41, + 133, + 40, + 36, + 33, + 10, + 73, + 67, + 36, + 73, + 26, + 34, + 73, + 210, + 16, + 73, + 146, + 1 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 2, + 20, + 0, + 6, + 0, + 0, + 0, + 0, + 18, + 2, + 0 + ], + "expected-pc": 11, + "expected-memory": [ + { + "address": 65536, + "contents": [ + 4 + ] + }, + { + "address": 65544, + "contents": [ + 2 + ] + }, + { + "address": 65552, + "contents": [ + 8 + ] + }, + { + "address": 65560, + "contents": [ + 6 + ] + }, + { + "address": 65568, + "contents": [ + 12 + ] + }, + { + "address": 65576, + "contents": [ + 16 + ] + }, + { + "address": 65584, + "contents": [ + 20 + ] + } + ], + "expected-gas": 9944 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_lb.json b/pvm/programs/riscv_rv64ui_lb.json new file mode 100644 index 00000000..3e824afa --- /dev/null +++ b/pvm/programs/riscv_rv64ui_lb.json @@ -0,0 +1,668 @@ +{ + "name": "riscv_rv64ui_lb", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [ + { + "address": 65536, + "length": 4096, + "is-writable": false + }, + { + "address": 196608, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 65538, + "contents": [ + 3 + ] + }, + { + "address": 65544, + "contents": [ + 3 + ] + }, + { + "address": 65546, + "contents": [ + 3 + ] + }, + { + "address": 65552, + "contents": [ + 1 + ] + }, + { + "address": 65554, + "contents": [ + 3 + ] + }, + { + "address": 65560, + "contents": [ + 2 + ] + }, + { + "address": 65562, + "contents": [ + 3 + ] + }, + { + "address": 196608, + "contents": [ + 255 + ] + }, + { + "address": 196610, + "contents": [ + 240, + 15 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 129, + 186, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 12, + 255, + 58, + 1, + 0, + 0, + 1, + 125, + 27, + 51, + 4, + 255, + 171, + 75, + 153, + 1, + 51, + 5, + 3, + 51, + 12, + 58, + 1, + 0, + 0, + 1, + 125, + 27, + 1, + 51, + 4, + 171, + 75, + 134, + 1, + 51, + 5, + 4, + 51, + 12, + 240, + 58, + 1, + 0, + 0, + 1, + 125, + 27, + 2, + 51, + 4, + 240, + 171, + 75, + 113, + 1, + 51, + 5, + 5, + 51, + 12, + 15, + 58, + 1, + 0, + 0, + 1, + 125, + 27, + 3, + 51, + 4, + 15, + 171, + 75, + 92, + 1, + 51, + 5, + 6, + 51, + 12, + 255, + 58, + 1, + 8, + 0, + 1, + 125, + 27, + 253, + 51, + 4, + 255, + 171, + 75, + 71, + 1, + 51, + 5, + 7, + 51, + 12, + 58, + 1, + 8, + 0, + 1, + 125, + 27, + 254, + 51, + 4, + 171, + 75, + 52, + 1, + 51, + 5, + 8, + 51, + 12, + 240, + 58, + 1, + 8, + 0, + 1, + 125, + 27, + 255, + 51, + 4, + 240, + 171, + 75, + 31, + 1, + 51, + 5, + 9, + 51, + 12, + 15, + 58, + 1, + 8, + 0, + 1, + 125, + 27, + 51, + 4, + 15, + 171, + 75, + 11, + 1, + 51, + 5, + 10, + 58, + 0, + 0, + 0, + 1, + 149, + 0, + 224, + 125, + 2, + 32, + 51, + 4, + 255, + 171, + 66, + 246, + 0, + 51, + 5, + 11, + 58, + 0, + 0, + 0, + 1, + 149, + 0, + 250, + 125, + 2, + 7, + 51, + 4, + 171, + 66, + 226, + 0, + 51, + 5, + 12, + 51, + 8, + 1, + 58, + 10, + 16, + 0, + 1, + 125, + 171, + 1, + 100, + 179, + 51, + 4, + 240, + 171, + 67, + 203, + 0, + 149, + 136, + 1, + 51, + 2, + 2, + 171, + 40, + 233, + 51, + 5, + 13, + 51, + 8, + 1, + 58, + 10, + 24, + 0, + 1, + 125, + 171, + 1, + 100, + 179, + 51, + 4, + 15, + 171, + 67, + 171, + 0, + 149, + 136, + 1, + 51, + 2, + 2, + 171, + 40, + 233, + 51, + 5, + 14, + 51, + 8, + 1, + 58, + 10, + 0, + 0, + 1, + 125, + 171, + 1, + 100, + 179, + 51, + 4, + 171, + 67, + 140, + 0, + 149, + 136, + 1, + 51, + 2, + 2, + 171, + 40, + 234, + 51, + 5, + 15, + 51, + 8, + 1, + 58, + 10, + 16, + 0, + 1, + 125, + 171, + 1, + 51, + 4, + 240, + 171, + 75, + 110, + 149, + 136, + 1, + 51, + 2, + 2, + 171, + 40, + 236, + 51, + 5, + 16, + 51, + 8, + 1, + 58, + 10, + 24, + 0, + 1, + 125, + 171, + 1, + 51, + 4, + 15, + 171, + 75, + 81, + 149, + 136, + 1, + 51, + 2, + 2, + 171, + 40, + 236, + 51, + 5, + 17, + 51, + 8, + 1, + 58, + 10, + 0, + 0, + 1, + 125, + 171, + 1, + 51, + 4, + 171, + 75, + 53, + 149, + 136, + 1, + 51, + 2, + 2, + 171, + 40, + 237, + 51, + 5, + 18, + 58, + 2, + 0, + 0, + 1, + 125, + 33, + 51, + 1, + 2, + 51, + 4, + 2, + 171, + 65, + 25, + 51, + 5, + 19, + 58, + 2, + 0, + 0, + 1, + 125, + 33, + 51, + 1, + 2, + 51, + 4, + 2, + 171, + 65, + 6, + 82, + 5, + 4, + 0, + 40, + 73, + 254, + 33, + 41, + 9, + 37, + 82, + 72, + 145, + 132, + 36, + 146, + 144, + 68, + 18, + 146, + 72, + 33, + 69, + 18, + 146, + 72, + 66, + 137, + 132, + 36, + 145, + 144, + 20, + 105, + 72, + 137, + 36, + 105, + 72, + 137, + 36, + 105, + 72, + 69, + 146, + 52, + 36, + 73, + 146, + 134, + 36, + 73, + 210, + 144, + 146, + 36, + 161, + 36, + 9, + 37, + 201, + 0 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 2, + 196608, + 0, + 2, + 19, + 0, + 0, + 2, + 0, + 196608, + 0, + 15 + ], + "expected-pc": 11, + "expected-memory": [ + { + "address": 65538, + "contents": [ + 3 + ] + }, + { + "address": 65544, + "contents": [ + 3 + ] + }, + { + "address": 65546, + "contents": [ + 3 + ] + }, + { + "address": 65552, + "contents": [ + 1 + ] + }, + { + "address": 65554, + "contents": [ + 3 + ] + }, + { + "address": 65560, + "contents": [ + 2 + ] + }, + { + "address": 65562, + "contents": [ + 3 + ] + }, + { + "address": 196608, + "contents": [ + 255 + ] + }, + { + "address": 196610, + "contents": [ + 240, + 15 + ] + } + ], + "expected-gas": 9814 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_lbu.json b/pvm/programs/riscv_rv64ui_lbu.json new file mode 100644 index 00000000..9cbfcb7c --- /dev/null +++ b/pvm/programs/riscv_rv64ui_lbu.json @@ -0,0 +1,680 @@ +{ + "name": "riscv_rv64ui_lbu", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [ + { + "address": 65536, + "length": 4096, + "is-writable": false + }, + { + "address": 196608, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 65538, + "contents": [ + 3 + ] + }, + { + "address": 65544, + "contents": [ + 3 + ] + }, + { + "address": 65546, + "contents": [ + 3 + ] + }, + { + "address": 65552, + "contents": [ + 1 + ] + }, + { + "address": 65554, + "contents": [ + 3 + ] + }, + { + "address": 65560, + "contents": [ + 2 + ] + }, + { + "address": 65562, + "contents": [ + 3 + ] + }, + { + "address": 196608, + "contents": [ + 255 + ] + }, + { + "address": 196610, + "contents": [ + 240, + 15 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 129, + 197, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 12, + 255, + 0, + 58, + 1, + 0, + 0, + 1, + 124, + 27, + 51, + 4, + 255, + 0, + 171, + 75, + 162, + 1, + 51, + 5, + 3, + 51, + 12, + 58, + 1, + 0, + 0, + 1, + 124, + 27, + 1, + 51, + 4, + 171, + 75, + 143, + 1, + 51, + 5, + 4, + 51, + 12, + 240, + 0, + 58, + 1, + 0, + 0, + 1, + 124, + 27, + 2, + 51, + 4, + 240, + 0, + 171, + 75, + 120, + 1, + 51, + 5, + 5, + 51, + 12, + 15, + 58, + 1, + 0, + 0, + 1, + 124, + 27, + 3, + 51, + 4, + 15, + 171, + 75, + 99, + 1, + 51, + 5, + 6, + 51, + 12, + 255, + 0, + 58, + 1, + 8, + 0, + 1, + 124, + 27, + 253, + 51, + 4, + 255, + 0, + 171, + 75, + 76, + 1, + 51, + 5, + 7, + 51, + 12, + 58, + 1, + 8, + 0, + 1, + 124, + 27, + 254, + 51, + 4, + 171, + 75, + 57, + 1, + 51, + 5, + 8, + 51, + 12, + 240, + 0, + 58, + 1, + 8, + 0, + 1, + 124, + 27, + 255, + 51, + 4, + 240, + 0, + 171, + 75, + 34, + 1, + 51, + 5, + 9, + 51, + 12, + 15, + 58, + 1, + 8, + 0, + 1, + 124, + 27, + 51, + 4, + 15, + 171, + 75, + 14, + 1, + 51, + 5, + 10, + 58, + 0, + 0, + 0, + 1, + 149, + 0, + 224, + 124, + 2, + 32, + 51, + 4, + 255, + 0, + 171, + 66, + 248, + 0, + 51, + 5, + 11, + 58, + 0, + 0, + 0, + 1, + 149, + 0, + 250, + 124, + 2, + 7, + 51, + 4, + 171, + 66, + 228, + 0, + 51, + 5, + 12, + 51, + 8, + 1, + 58, + 10, + 16, + 0, + 1, + 124, + 171, + 1, + 100, + 179, + 51, + 4, + 240, + 0, + 171, + 67, + 204, + 0, + 149, + 136, + 1, + 51, + 2, + 2, + 171, + 40, + 232, + 51, + 5, + 13, + 51, + 8, + 1, + 58, + 10, + 24, + 0, + 1, + 124, + 171, + 1, + 100, + 179, + 51, + 4, + 15, + 171, + 67, + 172, + 0, + 149, + 136, + 1, + 51, + 2, + 2, + 171, + 40, + 233, + 51, + 5, + 14, + 51, + 8, + 1, + 58, + 10, + 0, + 0, + 1, + 124, + 171, + 1, + 100, + 179, + 51, + 4, + 171, + 67, + 141, + 0, + 149, + 136, + 1, + 51, + 2, + 2, + 171, + 40, + 234, + 51, + 5, + 15, + 51, + 8, + 1, + 58, + 10, + 16, + 0, + 1, + 124, + 171, + 1, + 51, + 4, + 240, + 0, + 171, + 75, + 110, + 149, + 136, + 1, + 51, + 2, + 2, + 171, + 40, + 235, + 51, + 5, + 16, + 51, + 8, + 1, + 58, + 10, + 24, + 0, + 1, + 124, + 171, + 1, + 51, + 4, + 15, + 171, + 75, + 81, + 149, + 136, + 1, + 51, + 2, + 2, + 171, + 40, + 236, + 51, + 5, + 17, + 51, + 8, + 1, + 58, + 10, + 0, + 0, + 1, + 124, + 171, + 1, + 51, + 4, + 171, + 75, + 53, + 149, + 136, + 1, + 51, + 2, + 2, + 171, + 40, + 237, + 51, + 5, + 18, + 58, + 2, + 0, + 0, + 1, + 124, + 33, + 51, + 1, + 2, + 51, + 4, + 2, + 171, + 65, + 25, + 51, + 5, + 19, + 58, + 2, + 0, + 0, + 1, + 124, + 33, + 51, + 1, + 2, + 51, + 4, + 2, + 171, + 65, + 6, + 82, + 5, + 4, + 0, + 40, + 62, + 254, + 33, + 41, + 17, + 138, + 72, + 33, + 69, + 34, + 36, + 34, + 9, + 73, + 36, + 66, + 34, + 82, + 72, + 145, + 8, + 137, + 72, + 66, + 137, + 132, + 36, + 34, + 33, + 41, + 210, + 144, + 34, + 146, + 164, + 33, + 37, + 146, + 164, + 33, + 21, + 73, + 210, + 144, + 72, + 146, + 52, + 36, + 73, + 146, + 134, + 148, + 36, + 9, + 37, + 73, + 40, + 73, + 6 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 2, + 196608, + 0, + 2, + 19, + 0, + 0, + 2, + 0, + 196608, + 0, + 15 + ], + "expected-pc": 11, + "expected-memory": [ + { + "address": 65538, + "contents": [ + 3 + ] + }, + { + "address": 65544, + "contents": [ + 3 + ] + }, + { + "address": 65546, + "contents": [ + 3 + ] + }, + { + "address": 65552, + "contents": [ + 1 + ] + }, + { + "address": 65554, + "contents": [ + 3 + ] + }, + { + "address": 65560, + "contents": [ + 2 + ] + }, + { + "address": 65562, + "contents": [ + 3 + ] + }, + { + "address": 196608, + "contents": [ + 255 + ] + }, + { + "address": 196610, + "contents": [ + 240, + 15 + ] + } + ], + "expected-gas": 9814 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_ld.json b/pvm/programs/riscv_rv64ui_ld.json new file mode 100644 index 00000000..e9f9beaa --- /dev/null +++ b/pvm/programs/riscv_rv64ui_ld.json @@ -0,0 +1,1413 @@ +{ + "name": "riscv_rv64ui_ld", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [ + { + "address": 65536, + "length": 4096, + "is-writable": false + }, + { + "address": 196608, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 65538, + "contents": [ + 3 + ] + }, + { + "address": 65544, + "contents": [ + 24 + ] + }, + { + "address": 65546, + "contents": [ + 3 + ] + }, + { + "address": 65552, + "contents": [ + 8 + ] + }, + { + "address": 65554, + "contents": [ + 3 + ] + }, + { + "address": 65560, + "contents": [ + 16 + ] + }, + { + "address": 65562, + "contents": [ + 3 + ] + }, + { + "address": 196608, + "contents": [ + 255 + ] + }, + { + "address": 196610, + "contents": [ + 255 + ] + }, + { + "address": 196612, + "contents": [ + 255 + ] + }, + { + "address": 196614, + "contents": [ + 255 + ] + }, + { + "address": 196617, + "contents": [ + 255 + ] + }, + { + "address": 196619, + "contents": [ + 255 + ] + }, + { + "address": 196621, + "contents": [ + 255 + ] + }, + { + "address": 196623, + "contents": [ + 255, + 240, + 15, + 240, + 15, + 240, + 15, + 240, + 15, + 15, + 240, + 15, + 240, + 15, + 240, + 15, + 240 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 131, + 246, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 12, + 0, + 0, + 255, + 0, + 131, + 204, + 255, + 0, + 151, + 204, + 16, + 149, + 204, + 255, + 0, + 151, + 204, + 16, + 149, + 204, + 255, + 0, + 58, + 1, + 0, + 0, + 1, + 130, + 27, + 51, + 4, + 0, + 0, + 255, + 0, + 131, + 68, + 255, + 0, + 151, + 68, + 16, + 149, + 68, + 255, + 0, + 151, + 68, + 16, + 149, + 68, + 255, + 0, + 171, + 75, + 171, + 3, + 51, + 5, + 3, + 51, + 12, + 0, + 0, + 1, + 255, + 131, + 204, + 1, + 255, + 151, + 204, + 16, + 149, + 204, + 1, + 255, + 151, + 204, + 16, + 149, + 204, + 0, + 255, + 58, + 1, + 0, + 0, + 1, + 130, + 27, + 8, + 51, + 4, + 0, + 0, + 1, + 255, + 131, + 68, + 1, + 255, + 151, + 68, + 16, + 149, + 68, + 1, + 255, + 151, + 68, + 16, + 149, + 68, + 0, + 255, + 171, + 75, + 108, + 3, + 51, + 5, + 4, + 51, + 12, + 0, + 0, + 1, + 131, + 204, + 1, + 255, + 151, + 204, + 16, + 149, + 204, + 1, + 255, + 151, + 204, + 16, + 149, + 204, + 1, + 255, + 151, + 204, + 12, + 149, + 204, + 240, + 58, + 1, + 0, + 0, + 1, + 130, + 27, + 16, + 51, + 4, + 0, + 0, + 1, + 131, + 68, + 1, + 255, + 151, + 68, + 16, + 149, + 68, + 1, + 255, + 151, + 68, + 16, + 149, + 68, + 1, + 255, + 151, + 68, + 12, + 149, + 68, + 240, + 171, + 75, + 35, + 3, + 51, + 5, + 5, + 51, + 12, + 0, + 0, + 255, + 131, + 204, + 255, + 0, + 151, + 204, + 16, + 149, + 204, + 255, + 0, + 151, + 204, + 16, + 149, + 204, + 255, + 0, + 151, + 204, + 12, + 149, + 204, + 15, + 58, + 1, + 0, + 0, + 1, + 130, + 27, + 24, + 51, + 4, + 0, + 0, + 255, + 131, + 68, + 255, + 0, + 151, + 68, + 16, + 149, + 68, + 255, + 0, + 151, + 68, + 16, + 149, + 68, + 255, + 0, + 151, + 68, + 12, + 149, + 68, + 15, + 171, + 75, + 218, + 2, + 51, + 5, + 6, + 51, + 12, + 0, + 0, + 255, + 0, + 131, + 204, + 255, + 0, + 151, + 204, + 16, + 149, + 204, + 255, + 0, + 151, + 204, + 16, + 149, + 204, + 255, + 0, + 58, + 1, + 8, + 0, + 1, + 130, + 27, + 232, + 51, + 4, + 0, + 0, + 255, + 0, + 131, + 68, + 255, + 0, + 151, + 68, + 16, + 149, + 68, + 255, + 0, + 151, + 68, + 16, + 149, + 68, + 255, + 0, + 171, + 75, + 155, + 2, + 51, + 5, + 7, + 51, + 12, + 0, + 0, + 1, + 255, + 131, + 204, + 1, + 255, + 151, + 204, + 16, + 149, + 204, + 1, + 255, + 151, + 204, + 16, + 149, + 204, + 0, + 255, + 58, + 1, + 8, + 0, + 1, + 130, + 27, + 240, + 51, + 4, + 0, + 0, + 1, + 255, + 131, + 68, + 1, + 255, + 151, + 68, + 16, + 149, + 68, + 1, + 255, + 151, + 68, + 16, + 149, + 68, + 0, + 255, + 171, + 75, + 92, + 2, + 51, + 5, + 8, + 51, + 12, + 0, + 0, + 1, + 131, + 204, + 1, + 255, + 151, + 204, + 16, + 149, + 204, + 1, + 255, + 151, + 204, + 16, + 149, + 204, + 1, + 255, + 151, + 204, + 12, + 149, + 204, + 240, + 58, + 1, + 8, + 0, + 1, + 130, + 27, + 248, + 51, + 4, + 0, + 0, + 1, + 131, + 68, + 1, + 255, + 151, + 68, + 16, + 149, + 68, + 1, + 255, + 151, + 68, + 16, + 149, + 68, + 1, + 255, + 151, + 68, + 12, + 149, + 68, + 240, + 171, + 75, + 19, + 2, + 51, + 5, + 9, + 51, + 12, + 0, + 0, + 255, + 131, + 204, + 255, + 0, + 151, + 204, + 16, + 149, + 204, + 255, + 0, + 151, + 204, + 16, + 149, + 204, + 255, + 0, + 151, + 204, + 12, + 149, + 204, + 15, + 58, + 1, + 8, + 0, + 1, + 130, + 27, + 51, + 4, + 0, + 0, + 255, + 131, + 68, + 255, + 0, + 151, + 68, + 16, + 149, + 68, + 255, + 0, + 151, + 68, + 16, + 149, + 68, + 255, + 0, + 151, + 68, + 12, + 149, + 68, + 15, + 171, + 75, + 203, + 1, + 51, + 5, + 10, + 58, + 0, + 0, + 0, + 1, + 149, + 0, + 224, + 130, + 2, + 32, + 51, + 4, + 0, + 0, + 255, + 0, + 131, + 68, + 255, + 0, + 151, + 68, + 16, + 149, + 68, + 255, + 0, + 151, + 68, + 16, + 149, + 68, + 255, + 0, + 171, + 66, + 161, + 1, + 51, + 5, + 11, + 58, + 0, + 0, + 0, + 1, + 149, + 0, + 253, + 130, + 2, + 11, + 51, + 4, + 0, + 0, + 1, + 255, + 131, + 68, + 1, + 255, + 151, + 68, + 16, + 149, + 68, + 1, + 255, + 151, + 68, + 16, + 149, + 68, + 0, + 255, + 171, + 66, + 119, + 1, + 51, + 5, + 12, + 51, + 8, + 1, + 58, + 10, + 16, + 0, + 1, + 130, + 171, + 8, + 100, + 179, + 51, + 4, + 0, + 0, + 1, + 131, + 68, + 1, + 255, + 151, + 68, + 16, + 149, + 68, + 1, + 255, + 151, + 68, + 16, + 149, + 68, + 1, + 255, + 151, + 68, + 12, + 149, + 68, + 240, + 171, + 67, + 70, + 1, + 149, + 136, + 1, + 51, + 2, + 2, + 171, + 40, + 207, + 51, + 5, + 13, + 51, + 8, + 1, + 58, + 10, + 24, + 0, + 1, + 130, + 171, + 8, + 100, + 179, + 51, + 4, + 0, + 0, + 255, + 131, + 68, + 255, + 0, + 151, + 68, + 16, + 149, + 68, + 255, + 0, + 151, + 68, + 16, + 149, + 68, + 255, + 0, + 151, + 68, + 12, + 149, + 68, + 15, + 171, + 67, + 12, + 1, + 149, + 136, + 1, + 51, + 2, + 2, + 171, + 40, + 207, + 51, + 5, + 14, + 51, + 8, + 1, + 58, + 10, + 0, + 0, + 1, + 130, + 171, + 8, + 100, + 179, + 51, + 4, + 0, + 0, + 1, + 255, + 131, + 68, + 1, + 255, + 151, + 68, + 16, + 149, + 68, + 1, + 255, + 151, + 68, + 16, + 149, + 68, + 0, + 255, + 171, + 67, + 215, + 0, + 149, + 136, + 1, + 51, + 2, + 2, + 171, + 40, + 212, + 51, + 5, + 15, + 51, + 8, + 1, + 58, + 10, + 16, + 0, + 1, + 130, + 171, + 8, + 51, + 4, + 0, + 0, + 1, + 131, + 68, + 1, + 255, + 151, + 68, + 16, + 149, + 68, + 1, + 255, + 151, + 68, + 16, + 149, + 68, + 1, + 255, + 151, + 68, + 12, + 149, + 68, + 240, + 171, + 75, + 159, + 0, + 149, + 136, + 1, + 51, + 2, + 2, + 171, + 40, + 209, + 51, + 5, + 16, + 51, + 8, + 1, + 58, + 10, + 24, + 0, + 1, + 130, + 171, + 8, + 51, + 4, + 0, + 0, + 255, + 131, + 68, + 255, + 0, + 151, + 68, + 16, + 149, + 68, + 255, + 0, + 151, + 68, + 16, + 149, + 68, + 255, + 0, + 151, + 68, + 12, + 149, + 68, + 15, + 171, + 75, + 103, + 149, + 136, + 1, + 51, + 2, + 2, + 171, + 40, + 210, + 51, + 5, + 17, + 51, + 8, + 1, + 58, + 10, + 0, + 0, + 1, + 130, + 171, + 8, + 51, + 4, + 0, + 0, + 1, + 255, + 131, + 68, + 1, + 255, + 151, + 68, + 16, + 149, + 68, + 1, + 255, + 151, + 68, + 16, + 149, + 68, + 0, + 255, + 171, + 75, + 53, + 149, + 136, + 1, + 51, + 2, + 2, + 171, + 40, + 215, + 51, + 5, + 18, + 58, + 2, + 0, + 0, + 1, + 130, + 33, + 51, + 1, + 2, + 51, + 4, + 2, + 171, + 65, + 25, + 51, + 5, + 19, + 58, + 2, + 0, + 0, + 1, + 130, + 33, + 51, + 1, + 2, + 51, + 4, + 2, + 171, + 65, + 6, + 82, + 5, + 4, + 0, + 40, + 13, + 252, + 33, + 41, + 65, + 36, + 18, + 161, + 32, + 18, + 137, + 72, + 16, + 137, + 68, + 72, + 16, + 137, + 68, + 36, + 68, + 34, + 145, + 132, + 132, + 72, + 36, + 146, + 72, + 136, + 68, + 34, + 9, + 9, + 145, + 72, + 36, + 145, + 32, + 18, + 137, + 144, + 32, + 18, + 137, + 72, + 16, + 137, + 68, + 72, + 16, + 137, + 68, + 36, + 68, + 34, + 145, + 132, + 132, + 72, + 36, + 146, + 72, + 136, + 68, + 34, + 9, + 133, + 72, + 36, + 146, + 72, + 72, + 130, + 72, + 36, + 34, + 33, + 9, + 34, + 145, + 136, + 52, + 164, + 16, + 137, + 68, + 18, + 73, + 210, + 144, + 66, + 36, + 18, + 73, + 36, + 73, + 67, + 10, + 34, + 145, + 136, + 36, + 105, + 72, + 136, + 68, + 34, + 137, + 36, + 105, + 72, + 136, + 68, + 34, + 73, + 146, + 52, + 36, + 136, + 68, + 34, + 73, + 18, + 74, + 146, + 80, + 146, + 12 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 2, + 196608, + 18374966859414961920, + 2, + 19, + 0, + 0, + 2, + 0, + 196608, + 18374966859414961920, + 17298308644996116495 + ], + "expected-pc": 11, + "expected-memory": [ + { + "address": 65538, + "contents": [ + 3 + ] + }, + { + "address": 65544, + "contents": [ + 24 + ] + }, + { + "address": 65546, + "contents": [ + 3 + ] + }, + { + "address": 65552, + "contents": [ + 8 + ] + }, + { + "address": 65554, + "contents": [ + 3 + ] + }, + { + "address": 65560, + "contents": [ + 16 + ] + }, + { + "address": 65562, + "contents": [ + 3 + ] + }, + { + "address": 196608, + "contents": [ + 255 + ] + }, + { + "address": 196610, + "contents": [ + 255 + ] + }, + { + "address": 196612, + "contents": [ + 255 + ] + }, + { + "address": 196614, + "contents": [ + 255 + ] + }, + { + "address": 196617, + "contents": [ + 255 + ] + }, + { + "address": 196619, + "contents": [ + 255 + ] + }, + { + "address": 196621, + "contents": [ + 255 + ] + }, + { + "address": 196623, + "contents": [ + 255, + 240, + 15, + 240, + 15, + 240, + 15, + 240, + 15, + 15, + 240, + 15, + 240, + 15, + 240, + 15, + 240 + ] + } + ], + "expected-gas": 9632 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_lh.json b/pvm/programs/riscv_rv64ui_lh.json new file mode 100644 index 00000000..4f6eebd3 --- /dev/null +++ b/pvm/programs/riscv_rv64ui_lh.json @@ -0,0 +1,749 @@ +{ + "name": "riscv_rv64ui_lh", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [ + { + "address": 65536, + "length": 4096, + "is-writable": false + }, + { + "address": 196608, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 65538, + "contents": [ + 3 + ] + }, + { + "address": 65544, + "contents": [ + 6 + ] + }, + { + "address": 65546, + "contents": [ + 3 + ] + }, + { + "address": 65552, + "contents": [ + 2 + ] + }, + { + "address": 65554, + "contents": [ + 3 + ] + }, + { + "address": 65560, + "contents": [ + 4 + ] + }, + { + "address": 65562, + "contents": [ + 3 + ] + }, + { + "address": 196608, + "contents": [ + 255 + ] + }, + { + "address": 196611, + "contents": [ + 255, + 240, + 15, + 15, + 240 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 129, + 253, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 12, + 255, + 0, + 58, + 1, + 0, + 0, + 1, + 127, + 27, + 51, + 4, + 255, + 0, + 171, + 75, + 218, + 1, + 51, + 5, + 3, + 51, + 12, + 0, + 255, + 58, + 1, + 0, + 0, + 1, + 127, + 27, + 2, + 51, + 4, + 0, + 255, + 171, + 75, + 195, + 1, + 51, + 5, + 4, + 51, + 12, + 0, + 16, + 131, + 204, + 240, + 58, + 1, + 0, + 0, + 1, + 127, + 27, + 4, + 51, + 4, + 0, + 16, + 131, + 68, + 240, + 171, + 75, + 166, + 1, + 51, + 5, + 5, + 51, + 12, + 0, + 240, + 131, + 204, + 15, + 58, + 1, + 0, + 0, + 1, + 127, + 27, + 6, + 51, + 4, + 0, + 240, + 131, + 68, + 15, + 171, + 75, + 137, + 1, + 51, + 5, + 6, + 51, + 12, + 255, + 0, + 58, + 1, + 8, + 0, + 1, + 127, + 27, + 250, + 51, + 4, + 255, + 0, + 171, + 75, + 114, + 1, + 51, + 5, + 7, + 51, + 12, + 0, + 255, + 58, + 1, + 8, + 0, + 1, + 127, + 27, + 252, + 51, + 4, + 0, + 255, + 171, + 75, + 91, + 1, + 51, + 5, + 8, + 51, + 12, + 0, + 16, + 131, + 204, + 240, + 58, + 1, + 8, + 0, + 1, + 127, + 27, + 254, + 51, + 4, + 0, + 16, + 131, + 68, + 240, + 171, + 75, + 62, + 1, + 51, + 5, + 9, + 51, + 12, + 0, + 240, + 131, + 204, + 15, + 58, + 1, + 8, + 0, + 1, + 127, + 27, + 51, + 4, + 0, + 240, + 131, + 68, + 15, + 171, + 75, + 34, + 1, + 51, + 5, + 10, + 58, + 0, + 0, + 0, + 1, + 149, + 0, + 224, + 127, + 2, + 32, + 51, + 4, + 255, + 0, + 171, + 66, + 12, + 1, + 51, + 5, + 11, + 58, + 0, + 0, + 0, + 1, + 149, + 0, + 251, + 127, + 2, + 7, + 51, + 4, + 0, + 255, + 171, + 66, + 246, + 0, + 51, + 5, + 12, + 51, + 8, + 1, + 58, + 10, + 16, + 0, + 1, + 127, + 171, + 2, + 100, + 179, + 51, + 4, + 0, + 16, + 131, + 68, + 240, + 171, + 67, + 219, + 0, + 149, + 136, + 1, + 51, + 2, + 2, + 171, + 40, + 229, + 51, + 5, + 13, + 51, + 8, + 1, + 58, + 10, + 24, + 0, + 1, + 127, + 171, + 2, + 100, + 179, + 51, + 4, + 0, + 240, + 131, + 68, + 15, + 171, + 67, + 183, + 0, + 149, + 136, + 1, + 51, + 2, + 2, + 171, + 40, + 229, + 51, + 5, + 14, + 51, + 8, + 1, + 58, + 10, + 0, + 0, + 1, + 127, + 171, + 2, + 100, + 179, + 51, + 4, + 0, + 255, + 171, + 67, + 150, + 0, + 149, + 136, + 1, + 51, + 2, + 2, + 171, + 40, + 232, + 51, + 5, + 15, + 51, + 8, + 1, + 58, + 10, + 16, + 0, + 1, + 127, + 171, + 2, + 51, + 4, + 0, + 16, + 131, + 68, + 240, + 171, + 75, + 116, + 149, + 136, + 1, + 51, + 2, + 2, + 171, + 40, + 232, + 51, + 5, + 16, + 51, + 8, + 1, + 58, + 10, + 24, + 0, + 1, + 127, + 171, + 2, + 51, + 4, + 0, + 240, + 131, + 68, + 15, + 171, + 75, + 83, + 149, + 136, + 1, + 51, + 2, + 2, + 171, + 40, + 232, + 51, + 5, + 17, + 51, + 8, + 1, + 58, + 10, + 0, + 0, + 1, + 127, + 171, + 2, + 51, + 4, + 0, + 255, + 171, + 75, + 53, + 149, + 136, + 1, + 51, + 2, + 2, + 171, + 40, + 235, + 51, + 5, + 18, + 58, + 2, + 0, + 0, + 1, + 127, + 33, + 51, + 1, + 2, + 51, + 4, + 2, + 171, + 65, + 25, + 51, + 5, + 19, + 58, + 2, + 0, + 0, + 1, + 127, + 33, + 51, + 1, + 2, + 51, + 4, + 2, + 171, + 65, + 6, + 82, + 5, + 4, + 0, + 40, + 6, + 254, + 33, + 41, + 17, + 138, + 72, + 132, + 68, + 36, + 18, + 18, + 137, + 68, + 66, + 34, + 145, + 8, + 137, + 72, + 132, + 68, + 36, + 18, + 18, + 137, + 68, + 66, + 145, + 72, + 72, + 34, + 18, + 146, + 136, + 52, + 164, + 72, + 36, + 73, + 67, + 138, + 68, + 146, + 52, + 164, + 136, + 36, + 105, + 72, + 36, + 73, + 210, + 144, + 72, + 146, + 164, + 33, + 145, + 36, + 9, + 37, + 73, + 40, + 73, + 6 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 2, + 196608, + 18446744073709551360, + 2, + 19, + 0, + 0, + 2, + 0, + 196608, + 18446744073709551360, + 18446744073709547535 + ], + "expected-pc": 11, + "expected-memory": [ + { + "address": 65538, + "contents": [ + 3 + ] + }, + { + "address": 65544, + "contents": [ + 6 + ] + }, + { + "address": 65546, + "contents": [ + 3 + ] + }, + { + "address": 65552, + "contents": [ + 2 + ] + }, + { + "address": 65554, + "contents": [ + 3 + ] + }, + { + "address": 65560, + "contents": [ + 4 + ] + }, + { + "address": 65562, + "contents": [ + 3 + ] + }, + { + "address": 196608, + "contents": [ + 255 + ] + }, + { + "address": 196611, + "contents": [ + 255, + 240, + 15, + 15, + 240 + ] + } + ], + "expected-gas": 9798 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_lhu.json b/pvm/programs/riscv_rv64ui_lhu.json new file mode 100644 index 00000000..6e2a6f84 --- /dev/null +++ b/pvm/programs/riscv_rv64ui_lhu.json @@ -0,0 +1,795 @@ +{ + "name": "riscv_rv64ui_lhu", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [ + { + "address": 65536, + "length": 4096, + "is-writable": false + }, + { + "address": 196608, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 65538, + "contents": [ + 3 + ] + }, + { + "address": 65544, + "contents": [ + 6 + ] + }, + { + "address": 65546, + "contents": [ + 3 + ] + }, + { + "address": 65552, + "contents": [ + 2 + ] + }, + { + "address": 65554, + "contents": [ + 3 + ] + }, + { + "address": 65560, + "contents": [ + 4 + ] + }, + { + "address": 65562, + "contents": [ + 3 + ] + }, + { + "address": 196608, + "contents": [ + 255 + ] + }, + { + "address": 196611, + "contents": [ + 255, + 240, + 15, + 15, + 240 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 130, + 38, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 12, + 255, + 0, + 58, + 1, + 0, + 0, + 1, + 126, + 27, + 51, + 4, + 255, + 0, + 171, + 75, + 3, + 2, + 51, + 5, + 3, + 51, + 12, + 0, + 0, + 1, + 131, + 204, + 0, + 255, + 58, + 1, + 0, + 0, + 1, + 126, + 27, + 2, + 51, + 4, + 0, + 0, + 1, + 131, + 68, + 0, + 255, + 171, + 75, + 226, + 1, + 51, + 5, + 4, + 51, + 12, + 0, + 16, + 131, + 204, + 240, + 58, + 1, + 0, + 0, + 1, + 126, + 27, + 4, + 51, + 4, + 0, + 16, + 131, + 68, + 240, + 171, + 75, + 197, + 1, + 51, + 5, + 5, + 51, + 12, + 0, + 240, + 0, + 131, + 204, + 15, + 58, + 1, + 0, + 0, + 1, + 126, + 27, + 6, + 51, + 4, + 0, + 240, + 0, + 131, + 68, + 15, + 171, + 75, + 166, + 1, + 51, + 5, + 6, + 51, + 12, + 255, + 0, + 58, + 1, + 8, + 0, + 1, + 126, + 27, + 250, + 51, + 4, + 255, + 0, + 171, + 75, + 143, + 1, + 51, + 5, + 7, + 51, + 12, + 0, + 0, + 1, + 131, + 204, + 0, + 255, + 58, + 1, + 8, + 0, + 1, + 126, + 27, + 252, + 51, + 4, + 0, + 0, + 1, + 131, + 68, + 0, + 255, + 171, + 75, + 110, + 1, + 51, + 5, + 8, + 51, + 12, + 0, + 16, + 131, + 204, + 240, + 58, + 1, + 8, + 0, + 1, + 126, + 27, + 254, + 51, + 4, + 0, + 16, + 131, + 68, + 240, + 171, + 75, + 81, + 1, + 51, + 5, + 9, + 51, + 12, + 0, + 240, + 0, + 131, + 204, + 15, + 58, + 1, + 8, + 0, + 1, + 126, + 27, + 51, + 4, + 0, + 240, + 0, + 131, + 68, + 15, + 171, + 75, + 51, + 1, + 51, + 5, + 10, + 58, + 0, + 0, + 0, + 1, + 149, + 0, + 224, + 126, + 2, + 32, + 51, + 4, + 255, + 0, + 171, + 66, + 29, + 1, + 51, + 5, + 11, + 58, + 0, + 0, + 0, + 1, + 149, + 0, + 251, + 126, + 2, + 7, + 51, + 4, + 0, + 0, + 1, + 131, + 68, + 0, + 255, + 171, + 66, + 2, + 1, + 51, + 5, + 12, + 51, + 8, + 1, + 58, + 10, + 16, + 0, + 1, + 126, + 171, + 2, + 100, + 179, + 51, + 4, + 0, + 16, + 131, + 68, + 240, + 171, + 67, + 231, + 0, + 149, + 136, + 1, + 51, + 2, + 2, + 171, + 40, + 229, + 51, + 5, + 13, + 51, + 8, + 1, + 58, + 10, + 24, + 0, + 1, + 126, + 171, + 2, + 100, + 179, + 51, + 4, + 0, + 240, + 0, + 131, + 68, + 15, + 171, + 67, + 194, + 0, + 149, + 136, + 1, + 51, + 2, + 2, + 171, + 40, + 228, + 51, + 5, + 14, + 51, + 8, + 1, + 58, + 10, + 0, + 0, + 1, + 126, + 171, + 2, + 100, + 179, + 51, + 4, + 0, + 0, + 1, + 131, + 68, + 0, + 255, + 171, + 67, + 156, + 0, + 149, + 136, + 1, + 51, + 2, + 2, + 171, + 40, + 227, + 51, + 5, + 15, + 51, + 8, + 1, + 58, + 10, + 16, + 0, + 1, + 126, + 171, + 2, + 51, + 4, + 0, + 16, + 131, + 68, + 240, + 171, + 75, + 122, + 149, + 136, + 1, + 51, + 2, + 2, + 171, + 40, + 232, + 51, + 5, + 16, + 51, + 8, + 1, + 58, + 10, + 24, + 0, + 1, + 126, + 171, + 2, + 51, + 4, + 0, + 240, + 0, + 131, + 68, + 15, + 171, + 75, + 88, + 149, + 136, + 1, + 51, + 2, + 2, + 171, + 40, + 231, + 51, + 5, + 17, + 51, + 8, + 1, + 58, + 10, + 0, + 0, + 1, + 126, + 171, + 2, + 51, + 4, + 0, + 0, + 1, + 131, + 68, + 0, + 255, + 171, + 75, + 53, + 149, + 136, + 1, + 51, + 2, + 2, + 171, + 40, + 230, + 51, + 5, + 18, + 58, + 2, + 0, + 0, + 1, + 126, + 33, + 51, + 1, + 2, + 51, + 4, + 2, + 171, + 65, + 25, + 51, + 5, + 19, + 58, + 2, + 0, + 0, + 1, + 126, + 33, + 51, + 1, + 2, + 51, + 4, + 2, + 171, + 65, + 6, + 82, + 5, + 4, + 0, + 40, + 221, + 253, + 33, + 41, + 17, + 138, + 72, + 136, + 144, + 16, + 145, + 72, + 72, + 36, + 18, + 18, + 18, + 18, + 137, + 144, + 136, + 132, + 8, + 9, + 17, + 137, + 132, + 68, + 34, + 33, + 161, + 144, + 72, + 72, + 34, + 18, + 146, + 16, + 145, + 134, + 20, + 137, + 36, + 105, + 72, + 33, + 145, + 36, + 13, + 41, + 68, + 36, + 73, + 67, + 34, + 73, + 146, + 134, + 132, + 36, + 73, + 26, + 18, + 34, + 73, + 18, + 74, + 146, + 80, + 146, + 12 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 2, + 196608, + 65280, + 2, + 19, + 0, + 0, + 2, + 0, + 196608, + 65280, + 61455 + ], + "expected-pc": 11, + "expected-memory": [ + { + "address": 65538, + "contents": [ + 3 + ] + }, + { + "address": 65544, + "contents": [ + 6 + ] + }, + { + "address": 65546, + "contents": [ + 3 + ] + }, + { + "address": 65552, + "contents": [ + 2 + ] + }, + { + "address": 65554, + "contents": [ + 3 + ] + }, + { + "address": 65560, + "contents": [ + 4 + ] + }, + { + "address": 65562, + "contents": [ + 3 + ] + }, + { + "address": 196608, + "contents": [ + 255 + ] + }, + { + "address": 196611, + "contents": [ + 255, + 240, + 15, + 15, + 240 + ] + } + ], + "expected-gas": 9789 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_lui.json b/pvm/programs/riscv_rv64ui_lui.json new file mode 100644 index 00000000..1c5cf884 --- /dev/null +++ b/pvm/programs/riscv_rv64ui_lui.json @@ -0,0 +1,150 @@ +{ + "name": "riscv_rv64ui_lui", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 92, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 0, + 51, + 4, + 171, + 64, + 69, + 51, + 5, + 3, + 51, + 0, + 0, + 240, + 153, + 0, + 1, + 51, + 4, + 0, + 248, + 171, + 64, + 52, + 51, + 5, + 4, + 51, + 0, + 0, + 240, + 255, + 127, + 153, + 0, + 20, + 51, + 4, + 255, + 7, + 171, + 64, + 33, + 51, + 5, + 5, + 51, + 0, + 0, + 0, + 0, + 128, + 153, + 0, + 20, + 51, + 4, + 0, + 248, + 171, + 64, + 14, + 51, + 5, + 6, + 51, + 4, + 82, + 4, + 6, + 82, + 5, + 4, + 0, + 40, + 166, + 33, + 41, + 149, + 68, + 34, + 9, + 18, + 73, + 144, + 72, + 74, + 6 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 0, + 0, + 0, + 6, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9972 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_lw.json b/pvm/programs/riscv_rv64ui_lw.json new file mode 100644 index 00000000..3170a5af --- /dev/null +++ b/pvm/programs/riscv_rv64ui_lw.json @@ -0,0 +1,889 @@ +{ + "name": "riscv_rv64ui_lw", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [ + { + "address": 65536, + "length": 4096, + "is-writable": false + }, + { + "address": 196608, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 65538, + "contents": [ + 3 + ] + }, + { + "address": 65544, + "contents": [ + 12 + ] + }, + { + "address": 65546, + "contents": [ + 3 + ] + }, + { + "address": 65552, + "contents": [ + 4 + ] + }, + { + "address": 65554, + "contents": [ + 3 + ] + }, + { + "address": 65560, + "contents": [ + 8 + ] + }, + { + "address": 65562, + "contents": [ + 3 + ] + }, + { + "address": 196608, + "contents": [ + 255 + ] + }, + { + "address": 196610, + "contents": [ + 255 + ] + }, + { + "address": 196613, + "contents": [ + 255 + ] + }, + { + "address": 196615, + "contents": [ + 255, + 240, + 15, + 240, + 15, + 15, + 240, + 15, + 240 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 130, + 93, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 12, + 0, + 0, + 255, + 0, + 131, + 204, + 255, + 0, + 58, + 1, + 0, + 0, + 1, + 129, + 27, + 51, + 4, + 0, + 0, + 255, + 0, + 131, + 68, + 255, + 0, + 171, + 75, + 46, + 2, + 51, + 5, + 3, + 51, + 12, + 0, + 0, + 1, + 255, + 131, + 204, + 0, + 255, + 58, + 1, + 0, + 0, + 1, + 129, + 27, + 4, + 51, + 4, + 0, + 0, + 1, + 255, + 131, + 68, + 0, + 255, + 171, + 75, + 11, + 2, + 51, + 5, + 4, + 51, + 12, + 0, + 16, + 240, + 15, + 131, + 204, + 240, + 58, + 1, + 0, + 0, + 1, + 129, + 27, + 8, + 51, + 4, + 0, + 16, + 240, + 15, + 131, + 68, + 240, + 171, + 75, + 234, + 1, + 51, + 5, + 5, + 51, + 12, + 0, + 240, + 15, + 240, + 131, + 204, + 15, + 58, + 1, + 0, + 0, + 1, + 129, + 27, + 12, + 51, + 4, + 0, + 240, + 15, + 240, + 131, + 68, + 15, + 171, + 75, + 201, + 1, + 51, + 5, + 6, + 51, + 12, + 0, + 0, + 255, + 0, + 131, + 204, + 255, + 0, + 58, + 1, + 8, + 0, + 1, + 129, + 27, + 244, + 51, + 4, + 0, + 0, + 255, + 0, + 131, + 68, + 255, + 0, + 171, + 75, + 166, + 1, + 51, + 5, + 7, + 51, + 12, + 0, + 0, + 1, + 255, + 131, + 204, + 0, + 255, + 58, + 1, + 8, + 0, + 1, + 129, + 27, + 248, + 51, + 4, + 0, + 0, + 1, + 255, + 131, + 68, + 0, + 255, + 171, + 75, + 131, + 1, + 51, + 5, + 8, + 51, + 12, + 0, + 16, + 240, + 15, + 131, + 204, + 240, + 58, + 1, + 8, + 0, + 1, + 129, + 27, + 252, + 51, + 4, + 0, + 16, + 240, + 15, + 131, + 68, + 240, + 171, + 75, + 98, + 1, + 51, + 5, + 9, + 51, + 12, + 0, + 240, + 15, + 240, + 131, + 204, + 15, + 58, + 1, + 8, + 0, + 1, + 129, + 27, + 51, + 4, + 0, + 240, + 15, + 240, + 131, + 68, + 15, + 171, + 75, + 66, + 1, + 51, + 5, + 10, + 58, + 0, + 0, + 0, + 1, + 149, + 0, + 224, + 129, + 2, + 32, + 51, + 4, + 0, + 0, + 255, + 0, + 131, + 68, + 255, + 0, + 171, + 66, + 38, + 1, + 51, + 5, + 11, + 58, + 0, + 0, + 0, + 1, + 149, + 0, + 253, + 129, + 2, + 7, + 51, + 4, + 0, + 0, + 1, + 255, + 131, + 68, + 0, + 255, + 171, + 66, + 10, + 1, + 51, + 5, + 12, + 51, + 8, + 1, + 58, + 10, + 16, + 0, + 1, + 129, + 171, + 4, + 100, + 179, + 51, + 4, + 0, + 16, + 240, + 15, + 131, + 68, + 240, + 171, + 67, + 237, + 0, + 149, + 136, + 1, + 51, + 2, + 2, + 171, + 40, + 227, + 51, + 5, + 13, + 51, + 8, + 1, + 58, + 10, + 24, + 0, + 1, + 129, + 171, + 4, + 100, + 179, + 51, + 4, + 0, + 240, + 15, + 240, + 131, + 68, + 15, + 171, + 67, + 199, + 0, + 149, + 136, + 1, + 51, + 2, + 2, + 171, + 40, + 227, + 51, + 5, + 14, + 51, + 8, + 1, + 58, + 10, + 0, + 0, + 1, + 129, + 171, + 4, + 100, + 179, + 51, + 4, + 0, + 0, + 1, + 255, + 131, + 68, + 0, + 255, + 171, + 67, + 160, + 0, + 149, + 136, + 1, + 51, + 2, + 2, + 171, + 40, + 226, + 51, + 5, + 15, + 51, + 8, + 1, + 58, + 10, + 16, + 0, + 1, + 129, + 171, + 4, + 51, + 4, + 0, + 16, + 240, + 15, + 131, + 68, + 240, + 171, + 75, + 124, + 149, + 136, + 1, + 51, + 2, + 2, + 171, + 40, + 230, + 51, + 5, + 16, + 51, + 8, + 1, + 58, + 10, + 24, + 0, + 1, + 129, + 171, + 4, + 51, + 4, + 0, + 240, + 15, + 240, + 131, + 68, + 15, + 171, + 75, + 89, + 149, + 136, + 1, + 51, + 2, + 2, + 171, + 40, + 230, + 51, + 5, + 17, + 51, + 8, + 1, + 58, + 10, + 0, + 0, + 1, + 129, + 171, + 4, + 51, + 4, + 0, + 0, + 1, + 255, + 131, + 68, + 0, + 255, + 171, + 75, + 53, + 149, + 136, + 1, + 51, + 2, + 2, + 171, + 40, + 229, + 51, + 5, + 18, + 58, + 2, + 0, + 0, + 1, + 129, + 33, + 51, + 1, + 2, + 51, + 4, + 2, + 171, + 65, + 25, + 51, + 5, + 19, + 58, + 2, + 0, + 0, + 1, + 129, + 33, + 51, + 1, + 2, + 51, + 4, + 2, + 171, + 65, + 6, + 82, + 5, + 4, + 0, + 40, + 166, + 253, + 33, + 41, + 65, + 132, + 130, + 136, + 4, + 17, + 18, + 68, + 36, + 72, + 72, + 144, + 72, + 144, + 144, + 32, + 145, + 32, + 66, + 130, + 136, + 4, + 17, + 18, + 68, + 36, + 72, + 72, + 144, + 72, + 144, + 80, + 144, + 72, + 72, + 130, + 136, + 132, + 36, + 136, + 72, + 67, + 10, + 18, + 73, + 210, + 144, + 130, + 68, + 146, + 52, + 164, + 32, + 34, + 73, + 26, + 18, + 36, + 73, + 210, + 144, + 32, + 73, + 146, + 134, + 4, + 145, + 36, + 9, + 37, + 73, + 40, + 73, + 6 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 2, + 196608, + 18446744073692839680, + 2, + 19, + 0, + 0, + 2, + 0, + 196608, + 18446744073692839680, + 18446744073442160655 + ], + "expected-pc": 11, + "expected-memory": [ + { + "address": 65538, + "contents": [ + 3 + ] + }, + { + "address": 65544, + "contents": [ + 12 + ] + }, + { + "address": 65546, + "contents": [ + 3 + ] + }, + { + "address": 65552, + "contents": [ + 4 + ] + }, + { + "address": 65554, + "contents": [ + 3 + ] + }, + { + "address": 65560, + "contents": [ + 8 + ] + }, + { + "address": 65562, + "contents": [ + 3 + ] + }, + { + "address": 196608, + "contents": [ + 255 + ] + }, + { + "address": 196610, + "contents": [ + 255 + ] + }, + { + "address": 196613, + "contents": [ + 255 + ] + }, + { + "address": 196615, + "contents": [ + 255, + 240, + 15, + 240, + 15, + 15, + 240, + 15, + 240 + ] + } + ], + "expected-gas": 9784 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_lwu.json b/pvm/programs/riscv_rv64ui_lwu.json new file mode 100644 index 00000000..657a7c85 --- /dev/null +++ b/pvm/programs/riscv_rv64ui_lwu.json @@ -0,0 +1,978 @@ +{ + "name": "riscv_rv64ui_lwu", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [ + { + "address": 65536, + "length": 4096, + "is-writable": false + }, + { + "address": 196608, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 65538, + "contents": [ + 3 + ] + }, + { + "address": 65544, + "contents": [ + 12 + ] + }, + { + "address": 65546, + "contents": [ + 3 + ] + }, + { + "address": 65552, + "contents": [ + 4 + ] + }, + { + "address": 65554, + "contents": [ + 3 + ] + }, + { + "address": 65560, + "contents": [ + 8 + ] + }, + { + "address": 65562, + "contents": [ + 3 + ] + }, + { + "address": 196608, + "contents": [ + 255 + ] + }, + { + "address": 196610, + "contents": [ + 255 + ] + }, + { + "address": 196613, + "contents": [ + 255 + ] + }, + { + "address": 196615, + "contents": [ + 255, + 240, + 15, + 240, + 15, + 15, + 240, + 15, + 240 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 130, + 172, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 12, + 0, + 0, + 255, + 0, + 131, + 204, + 255, + 0, + 58, + 1, + 0, + 0, + 1, + 128, + 27, + 51, + 4, + 0, + 0, + 255, + 0, + 131, + 68, + 255, + 0, + 171, + 75, + 125, + 2, + 51, + 5, + 3, + 51, + 12, + 0, + 0, + 1, + 131, + 204, + 1, + 255, + 151, + 204, + 16, + 149, + 204, + 0, + 255, + 58, + 1, + 0, + 0, + 1, + 128, + 27, + 4, + 51, + 4, + 0, + 0, + 1, + 131, + 68, + 1, + 255, + 151, + 68, + 16, + 149, + 68, + 0, + 255, + 171, + 75, + 78, + 2, + 51, + 5, + 4, + 51, + 12, + 0, + 16, + 240, + 15, + 131, + 204, + 240, + 58, + 1, + 0, + 0, + 1, + 128, + 27, + 8, + 51, + 4, + 0, + 16, + 240, + 15, + 131, + 68, + 240, + 171, + 75, + 45, + 2, + 51, + 5, + 5, + 51, + 12, + 0, + 0, + 15, + 131, + 204, + 255, + 0, + 151, + 204, + 12, + 149, + 204, + 15, + 58, + 1, + 0, + 0, + 1, + 128, + 27, + 12, + 51, + 4, + 0, + 0, + 15, + 131, + 68, + 255, + 0, + 151, + 68, + 12, + 149, + 68, + 15, + 171, + 75, + 0, + 2, + 51, + 5, + 6, + 51, + 12, + 0, + 0, + 255, + 0, + 131, + 204, + 255, + 0, + 58, + 1, + 8, + 0, + 1, + 128, + 27, + 244, + 51, + 4, + 0, + 0, + 255, + 0, + 131, + 68, + 255, + 0, + 171, + 75, + 221, + 1, + 51, + 5, + 7, + 51, + 12, + 0, + 0, + 1, + 131, + 204, + 1, + 255, + 151, + 204, + 16, + 149, + 204, + 0, + 255, + 58, + 1, + 8, + 0, + 1, + 128, + 27, + 248, + 51, + 4, + 0, + 0, + 1, + 131, + 68, + 1, + 255, + 151, + 68, + 16, + 149, + 68, + 0, + 255, + 171, + 75, + 174, + 1, + 51, + 5, + 8, + 51, + 12, + 0, + 16, + 240, + 15, + 131, + 204, + 240, + 58, + 1, + 8, + 0, + 1, + 128, + 27, + 252, + 51, + 4, + 0, + 16, + 240, + 15, + 131, + 68, + 240, + 171, + 75, + 141, + 1, + 51, + 5, + 9, + 51, + 12, + 0, + 0, + 15, + 131, + 204, + 255, + 0, + 151, + 204, + 12, + 149, + 204, + 15, + 58, + 1, + 8, + 0, + 1, + 128, + 27, + 51, + 4, + 0, + 0, + 15, + 131, + 68, + 255, + 0, + 151, + 68, + 12, + 149, + 68, + 15, + 171, + 75, + 97, + 1, + 51, + 5, + 10, + 58, + 0, + 0, + 0, + 1, + 149, + 0, + 224, + 128, + 2, + 32, + 51, + 4, + 0, + 0, + 255, + 0, + 131, + 68, + 255, + 0, + 171, + 66, + 69, + 1, + 51, + 5, + 11, + 58, + 0, + 0, + 0, + 1, + 149, + 0, + 253, + 128, + 2, + 7, + 51, + 4, + 0, + 0, + 1, + 131, + 68, + 1, + 255, + 151, + 68, + 16, + 149, + 68, + 0, + 255, + 171, + 66, + 35, + 1, + 51, + 5, + 12, + 51, + 8, + 1, + 58, + 10, + 16, + 0, + 1, + 128, + 171, + 4, + 100, + 179, + 51, + 4, + 0, + 16, + 240, + 15, + 131, + 68, + 240, + 171, + 67, + 6, + 1, + 149, + 136, + 1, + 51, + 2, + 2, + 171, + 40, + 227, + 51, + 5, + 13, + 51, + 8, + 1, + 58, + 10, + 24, + 0, + 1, + 128, + 171, + 4, + 100, + 179, + 51, + 4, + 0, + 0, + 15, + 131, + 68, + 255, + 0, + 151, + 68, + 12, + 149, + 68, + 15, + 171, + 67, + 218, + 0, + 149, + 136, + 1, + 51, + 2, + 2, + 171, + 40, + 221, + 51, + 5, + 14, + 51, + 8, + 1, + 58, + 10, + 0, + 0, + 1, + 128, + 171, + 4, + 100, + 179, + 51, + 4, + 0, + 0, + 1, + 131, + 68, + 1, + 255, + 151, + 68, + 16, + 149, + 68, + 0, + 255, + 171, + 67, + 173, + 0, + 149, + 136, + 1, + 51, + 2, + 2, + 171, + 40, + 220, + 51, + 5, + 15, + 51, + 8, + 1, + 58, + 10, + 16, + 0, + 1, + 128, + 171, + 4, + 51, + 4, + 0, + 16, + 240, + 15, + 131, + 68, + 240, + 171, + 75, + 137, + 0, + 149, + 136, + 1, + 51, + 2, + 2, + 171, + 40, + 229, + 51, + 5, + 16, + 51, + 8, + 1, + 58, + 10, + 24, + 0, + 1, + 128, + 171, + 4, + 51, + 4, + 0, + 0, + 15, + 131, + 68, + 255, + 0, + 151, + 68, + 12, + 149, + 68, + 15, + 171, + 75, + 95, + 149, + 136, + 1, + 51, + 2, + 2, + 171, + 40, + 224, + 51, + 5, + 17, + 51, + 8, + 1, + 58, + 10, + 0, + 0, + 1, + 128, + 171, + 4, + 51, + 4, + 0, + 0, + 1, + 131, + 68, + 1, + 255, + 151, + 68, + 16, + 149, + 68, + 0, + 255, + 171, + 75, + 53, + 149, + 136, + 1, + 51, + 2, + 2, + 171, + 40, + 223, + 51, + 5, + 18, + 58, + 2, + 0, + 0, + 1, + 128, + 33, + 51, + 1, + 2, + 51, + 4, + 2, + 171, + 65, + 25, + 51, + 5, + 19, + 58, + 2, + 0, + 0, + 1, + 128, + 33, + 51, + 1, + 2, + 51, + 4, + 2, + 171, + 65, + 6, + 82, + 5, + 4, + 0, + 40, + 87, + 253, + 33, + 41, + 65, + 132, + 130, + 136, + 132, + 72, + 132, + 132, + 72, + 68, + 130, + 132, + 4, + 137, + 132, + 72, + 66, + 66, + 36, + 145, + 32, + 66, + 130, + 136, + 132, + 72, + 132, + 132, + 72, + 68, + 130, + 132, + 4, + 137, + 132, + 72, + 66, + 33, + 146, + 72, + 72, + 130, + 136, + 132, + 36, + 68, + 34, + 210, + 144, + 130, + 68, + 146, + 52, + 164, + 16, + 73, + 36, + 73, + 67, + 10, + 145, + 136, + 36, + 105, + 72, + 144, + 72, + 146, + 134, + 132, + 72, + 146, + 36, + 13, + 9, + 145, + 72, + 146, + 132, + 146, + 36, + 148, + 36, + 3 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 2, + 196608, + 4278255360, + 2, + 19, + 0, + 0, + 2, + 0, + 196608, + 4278255360, + 4027576335 + ], + "expected-pc": 11, + "expected-memory": [ + { + "address": 65538, + "contents": [ + 3 + ] + }, + { + "address": 65544, + "contents": [ + 12 + ] + }, + { + "address": 65546, + "contents": [ + 3 + ] + }, + { + "address": 65552, + "contents": [ + 4 + ] + }, + { + "address": 65554, + "contents": [ + 3 + ] + }, + { + "address": 65560, + "contents": [ + 8 + ] + }, + { + "address": 65562, + "contents": [ + 3 + ] + }, + { + "address": 196608, + "contents": [ + 255 + ] + }, + { + "address": 196610, + "contents": [ + 255 + ] + }, + { + "address": 196613, + "contents": [ + 255 + ] + }, + { + "address": 196615, + "contents": [ + 255, + 240, + 15, + 240, + 15, + 15, + 240, + 15, + 240 + ] + } + ], + "expected-gas": 9750 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_ma_data.json b/pvm/programs/riscv_rv64ui_ma_data.json new file mode 100644 index 00000000..a3bc5a1f --- /dev/null +++ b/pvm/programs/riscv_rv64ui_ma_data.json @@ -0,0 +1,8349 @@ +{ + "name": "riscv_rv64ui_ma_data", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [ + { + "address": 65536, + "length": 4096, + "is-writable": false + }, + { + "address": 196608, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 65538, + "contents": [ + 3 + ] + }, + { + "address": 196609, + "contents": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80 + ] + } + ], + "initial-gas": 10000, + "program": [ + 0, + 0, + 154, + 9, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 58, + 5, + 0, + 0, + 1, + 51, + 12, + 1, + 51, + 3, + 1, + 2, + 127, + 84, + 1, + 170, + 67, + 6, + 40, + 230, + 25, + 51, + 12, + 2, + 51, + 3, + 1, + 2, + 126, + 84, + 1, + 170, + 67, + 6, + 40, + 214, + 25, + 51, + 12, + 3, + 51, + 3, + 0, + 0, + 3, + 4, + 131, + 51, + 1, + 2, + 129, + 84, + 1, + 170, + 67, + 6, + 40, + 192, + 25, + 51, + 12, + 4, + 51, + 3, + 0, + 0, + 4, + 5, + 131, + 51, + 2, + 3, + 129, + 84, + 2, + 170, + 67, + 6, + 40, + 170, + 25, + 51, + 12, + 5, + 51, + 3, + 0, + 0, + 5, + 6, + 131, + 51, + 3, + 4, + 129, + 84, + 3, + 170, + 67, + 6, + 40, + 148, + 25, + 51, + 12, + 6, + 51, + 3, + 0, + 0, + 3, + 4, + 131, + 51, + 1, + 2, + 128, + 84, + 1, + 170, + 67, + 6, + 40, + 126, + 25, + 51, + 12, + 7, + 51, + 3, + 0, + 0, + 4, + 5, + 131, + 51, + 2, + 3, + 128, + 84, + 2, + 170, + 67, + 6, + 40, + 104, + 25, + 51, + 12, + 8, + 51, + 3, + 0, + 0, + 5, + 6, + 131, + 51, + 3, + 4, + 128, + 84, + 3, + 170, + 67, + 6, + 40, + 82, + 25, + 51, + 12, + 9, + 51, + 3, + 0, + 0, + 7, + 8, + 131, + 51, + 5, + 6, + 151, + 51, + 16, + 149, + 51, + 3, + 4, + 151, + 51, + 16, + 149, + 51, + 1, + 2, + 130, + 84, + 1, + 170, + 67, + 6, + 40, + 46, + 25, + 51, + 12, + 10, + 51, + 3, + 0, + 0, + 132, + 4, + 131, + 51, + 131, + 3, + 151, + 51, + 15, + 149, + 51, + 65, + 1, + 151, + 51, + 18, + 149, + 51, + 2, + 3, + 130, + 84, + 2, + 170, + 67, + 6, + 40, + 10, + 25, + 51, + 12, + 11, + 51, + 3, + 0, + 16, + 9, + 10, + 131, + 51, + 7, + 248, + 151, + 51, + 16, + 149, + 51, + 5, + 6, + 151, + 51, + 16, + 149, + 51, + 3, + 4, + 130, + 84, + 3, + 170, + 67, + 6, + 40, + 230, + 24, + 51, + 12, + 12, + 51, + 3, + 0, + 64, + 97, + 1, + 131, + 51, + 33, + 1, + 151, + 51, + 18, + 149, + 51, + 131, + 3, + 151, + 51, + 17, + 149, + 51, + 4, + 5, + 130, + 84, + 4, + 170, + 67, + 6, + 40, + 194, + 24, + 51, + 12, + 13, + 51, + 3, + 0, + 0, + 6, + 131, + 51, + 133, + 5, + 151, + 51, + 13, + 149, + 51, + 145, + 0, + 151, + 51, + 12, + 149, + 51, + 7, + 248, + 151, + 51, + 16, + 149, + 51, + 5, + 6, + 130, + 84, + 5, + 170, + 67, + 6, + 40, + 152, + 24, + 51, + 12, + 14, + 51, + 3, + 0, + 0, + 134, + 6, + 131, + 51, + 133, + 5, + 151, + 51, + 14, + 149, + 51, + 33, + 1, + 151, + 51, + 19, + 149, + 51, + 6, + 7, + 130, + 84, + 6, + 170, + 67, + 6, + 40, + 116, + 24, + 51, + 12, + 15, + 51, + 3, + 0, + 128, + 3, + 131, + 51, + 67, + 3, + 151, + 51, + 17, + 149, + 51, + 133, + 5, + 151, + 51, + 13, + 149, + 51, + 145, + 0, + 151, + 51, + 12, + 149, + 51, + 7, + 248, + 130, + 84, + 7, + 170, + 67, + 6, + 40, + 74, + 24, + 51, + 12, + 16, + 51, + 3, + 0, + 32, + 131, + 51, + 31, + 127, + 84, + 31, + 170, + 67, + 6, + 40, + 55, + 24, + 51, + 12, + 17, + 51, + 3, + 0, + 32, + 131, + 51, + 31, + 126, + 84, + 31, + 170, + 67, + 6, + 40, + 36, + 24, + 51, + 12, + 18, + 51, + 3, + 0, + 32, + 31, + 32, + 131, + 51, + 29, + 254, + 129, + 84, + 29, + 170, + 67, + 6, + 40, + 14, + 24, + 51, + 12, + 19, + 51, + 3, + 0, + 32, + 32, + 33, + 131, + 51, + 30, + 255, + 129, + 84, + 30, + 170, + 67, + 6, + 40, + 248, + 23, + 51, + 12, + 20, + 51, + 3, + 0, + 32, + 33, + 34, + 131, + 51, + 31, + 129, + 84, + 31, + 170, + 67, + 6, + 40, + 227, + 23, + 51, + 12, + 21, + 51, + 3, + 0, + 32, + 31, + 32, + 131, + 51, + 29, + 254, + 128, + 84, + 29, + 170, + 67, + 6, + 40, + 205, + 23, + 51, + 12, + 22, + 51, + 3, + 0, + 32, + 32, + 33, + 131, + 51, + 30, + 255, + 128, + 84, + 30, + 170, + 67, + 6, + 40, + 183, + 23, + 51, + 12, + 23, + 51, + 3, + 0, + 32, + 33, + 34, + 131, + 51, + 31, + 128, + 84, + 31, + 170, + 67, + 6, + 40, + 162, + 23, + 51, + 12, + 24, + 51, + 3, + 0, + 16, + 16, + 131, + 51, + 143, + 151, + 51, + 15, + 149, + 51, + 71, + 7, + 151, + 51, + 13, + 149, + 51, + 217, + 0, + 151, + 51, + 13, + 149, + 51, + 25, + 250, + 130, + 84, + 25, + 170, + 67, + 6, + 40, + 121, + 23, + 51, + 12, + 25, + 51, + 3, + 0, + 0, + 9, + 1, + 131, + 51, + 249, + 0, + 151, + 51, + 12, + 149, + 51, + 15, + 255, + 151, + 51, + 12, + 149, + 51, + 225, + 248, + 151, + 51, + 13, + 149, + 51, + 26, + 251, + 130, + 84, + 26, + 170, + 67, + 6, + 40, + 78, + 23, + 51, + 12, + 26, + 51, + 3, + 0, + 16, + 17, + 1, + 131, + 51, + 1, + 249, + 151, + 51, + 12, + 149, + 51, + 143, + 151, + 51, + 12, + 149, + 51, + 233, + 0, + 151, + 51, + 13, + 149, + 51, + 27, + 252, + 130, + 84, + 27, + 170, + 67, + 6, + 40, + 36, + 23, + 51, + 12, + 27, + 51, + 3, + 0, + 144, + 17, + 131, + 51, + 17, + 1, + 151, + 51, + 12, + 149, + 51, + 1, + 249, + 151, + 51, + 16, + 149, + 51, + 241, + 248, + 151, + 51, + 13, + 149, + 51, + 28, + 253, + 130, + 84, + 28, + 170, + 67, + 6, + 40, + 250, + 22, + 51, + 12, + 28, + 51, + 3, + 0, + 16, + 18, + 131, + 51, + 145, + 1, + 151, + 51, + 12, + 149, + 51, + 9, + 1, + 151, + 51, + 16, + 149, + 51, + 249, + 0, + 151, + 51, + 13, + 149, + 51, + 29, + 254, + 130, + 84, + 29, + 170, + 67, + 6, + 40, + 208, + 22, + 51, + 12, + 29, + 51, + 3, + 0, + 32, + 41, + 1, + 131, + 51, + 25, + 1, + 151, + 51, + 12, + 149, + 51, + 17, + 1, + 151, + 51, + 12, + 149, + 51, + 1, + 249, + 151, + 51, + 13, + 149, + 51, + 30, + 255, + 130, + 84, + 30, + 170, + 67, + 6, + 40, + 165, + 22, + 51, + 12, + 30, + 51, + 3, + 0, + 48, + 49, + 1, + 131, + 51, + 33, + 249, + 151, + 51, + 12, + 149, + 51, + 145, + 1, + 151, + 51, + 12, + 149, + 51, + 9, + 1, + 151, + 51, + 13, + 149, + 51, + 31, + 130, + 84, + 31, + 170, + 67, + 6, + 40, + 123, + 22, + 51, + 12, + 31, + 51, + 3, + 0, + 64, + 131, + 51, + 63, + 127, + 84, + 63, + 170, + 67, + 6, + 40, + 104, + 22, + 51, + 12, + 32, + 51, + 3, + 0, + 64, + 131, + 51, + 63, + 126, + 84, + 63, + 170, + 67, + 6, + 40, + 85, + 22, + 51, + 12, + 33, + 51, + 3, + 0, + 64, + 63, + 64, + 131, + 51, + 61, + 254, + 129, + 84, + 61, + 170, + 67, + 6, + 40, + 63, + 22, + 51, + 12, + 34, + 51, + 3, + 0, + 64, + 64, + 65, + 131, + 51, + 62, + 255, + 129, + 84, + 62, + 170, + 67, + 6, + 40, + 41, + 22, + 51, + 12, + 35, + 51, + 3, + 0, + 64, + 65, + 66, + 131, + 51, + 63, + 129, + 84, + 63, + 170, + 67, + 6, + 40, + 20, + 22, + 51, + 12, + 36, + 51, + 3, + 0, + 64, + 63, + 64, + 131, + 51, + 61, + 254, + 128, + 84, + 61, + 170, + 67, + 6, + 40, + 254, + 21, + 51, + 12, + 37, + 51, + 3, + 0, + 64, + 64, + 65, + 131, + 51, + 62, + 255, + 128, + 84, + 62, + 170, + 67, + 6, + 40, + 232, + 21, + 51, + 12, + 38, + 51, + 3, + 0, + 64, + 65, + 66, + 131, + 51, + 63, + 128, + 84, + 63, + 170, + 67, + 6, + 40, + 211, + 21, + 51, + 12, + 39, + 51, + 3, + 0, + 0, + 1, + 1, + 131, + 51, + 249, + 252, + 151, + 51, + 12, + 149, + 51, + 79, + 255, + 151, + 51, + 12, + 149, + 51, + 237, + 0, + 151, + 51, + 14, + 149, + 51, + 57, + 250, + 130, + 84, + 57, + 170, + 67, + 6, + 40, + 168, + 21, + 51, + 12, + 40, + 51, + 3, + 0, + 0, + 5, + 1, + 131, + 51, + 253, + 0, + 151, + 51, + 12, + 149, + 51, + 143, + 151, + 51, + 12, + 149, + 51, + 241, + 4, + 151, + 51, + 14, + 149, + 51, + 58, + 251, + 130, + 84, + 58, + 170, + 67, + 6, + 40, + 126, + 21, + 51, + 12, + 41, + 51, + 3, + 0, + 16, + 1, + 131, + 51, + 5, + 249, + 151, + 51, + 16, + 149, + 51, + 253, + 0, + 151, + 51, + 16, + 149, + 51, + 245, + 248, + 151, + 51, + 14, + 149, + 51, + 59, + 252, + 130, + 84, + 59, + 170, + 67, + 6, + 40, + 84, + 21, + 51, + 12, + 42, + 51, + 3, + 0, + 16, + 1, + 131, + 51, + 9, + 253, + 151, + 51, + 16, + 149, + 51, + 1, + 5, + 151, + 51, + 16, + 149, + 51, + 249, + 252, + 151, + 51, + 14, + 149, + 51, + 60, + 253, + 130, + 84, + 60, + 170, + 67, + 6, + 40, + 42, + 21, + 51, + 12, + 43, + 51, + 3, + 0, + 16, + 17, + 131, + 51, + 209, + 0, + 151, + 51, + 12, + 149, + 51, + 5, + 249, + 151, + 51, + 16, + 149, + 51, + 253, + 0, + 151, + 51, + 14, + 149, + 51, + 61, + 254, + 130, + 84, + 61, + 170, + 67, + 6, + 40, + 0, + 21, + 51, + 12, + 44, + 51, + 3, + 0, + 80, + 17, + 131, + 51, + 17, + 1, + 151, + 51, + 12, + 149, + 51, + 9, + 253, + 151, + 51, + 16, + 149, + 51, + 1, + 5, + 151, + 51, + 14, + 149, + 51, + 62, + 255, + 130, + 84, + 62, + 170, + 67, + 6, + 40, + 214, + 20, + 51, + 12, + 45, + 51, + 3, + 0, + 16, + 25, + 1, + 131, + 51, + 17, + 5, + 151, + 51, + 12, + 149, + 51, + 209, + 0, + 151, + 51, + 12, + 149, + 51, + 5, + 249, + 151, + 51, + 14, + 149, + 51, + 63, + 130, + 84, + 63, + 170, + 67, + 6, + 40, + 172, + 20, + 51, + 12, + 46, + 51, + 3, + 0, + 128, + 131, + 51, + 128, + 1, + 121, + 83, + 1, + 127, + 84, + 1, + 170, + 67, + 6, + 40, + 149, + 20, + 51, + 12, + 47, + 51, + 3, + 0, + 128, + 0, + 131, + 51, + 130, + 3, + 121, + 83, + 1, + 126, + 84, + 1, + 170, + 67, + 6, + 40, + 125, + 20, + 51, + 12, + 48, + 51, + 3, + 0, + 128, + 134, + 135, + 131, + 51, + 132, + 5, + 122, + 83, + 1, + 129, + 84, + 1, + 170, + 67, + 6, + 40, + 100, + 20, + 51, + 12, + 49, + 51, + 3, + 0, + 144, + 138, + 139, + 131, + 51, + 136, + 249, + 122, + 83, + 2, + 129, + 84, + 2, + 170, + 67, + 6, + 40, + 75, + 20, + 51, + 12, + 50, + 51, + 3, + 0, + 144, + 142, + 143, + 131, + 51, + 140, + 253, + 122, + 83, + 3, + 129, + 84, + 3, + 170, + 67, + 6, + 40, + 50, + 20, + 51, + 12, + 51, + 51, + 3, + 0, + 64, + 9, + 131, + 51, + 41, + 249, + 151, + 51, + 12, + 149, + 51, + 144, + 1, + 122, + 83, + 1, + 128, + 84, + 1, + 170, + 67, + 6, + 40, + 19, + 20, + 51, + 12, + 52, + 51, + 3, + 0, + 128, + 9, + 131, + 51, + 105, + 249, + 151, + 51, + 12, + 149, + 51, + 148, + 5, + 122, + 83, + 2, + 128, + 84, + 2, + 170, + 67, + 6, + 40, + 244, + 19, + 51, + 12, + 53, + 51, + 3, + 0, + 224, + 4, + 131, + 51, + 213, + 252, + 151, + 51, + 13, + 149, + 51, + 152, + 249, + 122, + 83, + 3, + 128, + 84, + 3, + 170, + 67, + 6, + 40, + 213, + 19, + 51, + 12, + 54, + 51, + 3, + 0, + 208, + 209, + 131, + 51, + 81, + 1, + 151, + 51, + 12, + 149, + 51, + 5, + 253, + 151, + 51, + 16, + 149, + 51, + 245, + 252, + 151, + 51, + 13, + 149, + 51, + 156, + 253, + 123, + 83, + 1, + 130, + 84, + 1, + 170, + 67, + 6, + 40, + 168, + 19, + 51, + 12, + 55, + 51, + 3, + 0, + 80, + 87, + 255, + 131, + 51, + 83, + 5, + 151, + 51, + 12, + 149, + 51, + 21, + 5, + 151, + 51, + 14, + 149, + 51, + 53, + 253, + 151, + 51, + 13, + 149, + 51, + 164, + 5, + 123, + 83, + 2, + 130, + 84, + 2, + 170, + 67, + 6, + 40, + 122, + 19, + 51, + 12, + 56, + 51, + 3, + 0, + 224, + 217, + 131, + 51, + 89, + 249, + 151, + 51, + 13, + 149, + 51, + 11, + 251, + 151, + 51, + 16, + 149, + 51, + 235, + 250, + 151, + 51, + 12, + 149, + 51, + 172, + 253, + 123, + 83, + 3, + 130, + 84, + 3, + 170, + 67, + 6, + 40, + 77, + 19, + 51, + 12, + 57, + 51, + 3, + 0, + 112, + 119, + 255, + 131, + 51, + 115, + 5, + 151, + 51, + 12, + 149, + 51, + 23, + 7, + 151, + 51, + 15, + 149, + 51, + 107, + 251, + 151, + 51, + 12, + 149, + 51, + 180, + 5, + 123, + 83, + 4, + 130, + 84, + 4, + 170, + 67, + 6, + 40, + 31, + 19, + 51, + 12, + 58, + 51, + 3, + 0, + 16, + 255, + 131, + 51, + 11, + 255, + 151, + 51, + 16, + 149, + 51, + 3, + 7, + 151, + 51, + 16, + 149, + 51, + 251, + 254, + 151, + 51, + 14, + 149, + 51, + 188, + 253, + 123, + 83, + 5, + 130, + 84, + 5, + 170, + 67, + 6, + 40, + 242, + 18, + 51, + 12, + 59, + 51, + 3, + 0, + 224, + 229, + 131, + 51, + 101, + 5, + 151, + 51, + 14, + 149, + 51, + 25, + 249, + 151, + 51, + 13, + 149, + 51, + 27, + 255, + 151, + 51, + 14, + 149, + 51, + 196, + 5, + 123, + 83, + 6, + 130, + 84, + 6, + 170, + 67, + 6, + 40, + 197, + 18, + 51, + 12, + 60, + 51, + 3, + 0, + 240, + 233, + 131, + 51, + 105, + 249, + 151, + 51, + 13, + 149, + 51, + 13, + 253, + 151, + 51, + 16, + 149, + 51, + 237, + 252, + 151, + 51, + 12, + 149, + 51, + 204, + 253, + 123, + 83, + 7, + 130, + 84, + 7, + 170, + 67, + 6, + 40, + 152, + 18, + 51, + 12, + 61, + 51, + 3, + 0, + 208, + 131, + 51, + 212, + 5, + 121, + 83, + 31, + 127, + 84, + 31, + 170, + 67, + 6, + 40, + 129, + 18, + 51, + 12, + 62, + 51, + 3, + 0, + 208, + 0, + 131, + 51, + 214, + 7, + 121, + 83, + 31, + 126, + 84, + 31, + 170, + 67, + 6, + 40, + 105, + 18, + 51, + 12, + 63, + 51, + 3, + 0, + 224, + 218, + 219, + 131, + 51, + 216, + 249, + 122, + 83, + 29, + 129, + 84, + 29, + 170, + 67, + 6, + 40, + 80, + 18, + 51, + 12, + 64, + 51, + 3, + 0, + 224, + 222, + 223, + 131, + 51, + 220, + 253, + 122, + 83, + 30, + 129, + 84, + 30, + 170, + 67, + 6, + 40, + 55, + 18, + 51, + 12, + 65, + 51, + 3, + 0, + 224, + 226, + 227, + 131, + 51, + 224, + 1, + 122, + 83, + 31, + 129, + 84, + 31, + 170, + 67, + 6, + 40, + 30, + 18, + 51, + 12, + 66, + 51, + 3, + 0, + 64, + 7, + 131, + 51, + 55, + 255, + 151, + 51, + 13, + 149, + 51, + 228, + 5, + 122, + 83, + 29, + 128, + 84, + 29, + 170, + 67, + 6, + 40, + 255, + 17, + 51, + 12, + 67, + 51, + 3, + 0, + 192, + 14, + 131, + 51, + 175, + 254, + 151, + 51, + 12, + 149, + 51, + 232, + 249, + 122, + 83, + 30, + 128, + 84, + 30, + 170, + 67, + 6, + 40, + 224, + 17, + 51, + 12, + 68, + 51, + 3, + 0, + 0, + 15, + 131, + 51, + 239, + 254, + 151, + 51, + 12, + 149, + 51, + 236, + 253, + 122, + 83, + 31, + 128, + 84, + 31, + 170, + 67, + 6, + 40, + 193, + 17, + 51, + 12, + 69, + 51, + 3, + 0, + 0, + 252, + 131, + 51, + 123, + 251, + 151, + 51, + 15, + 149, + 51, + 61, + 253, + 151, + 51, + 14, + 149, + 51, + 47, + 255, + 151, + 51, + 12, + 149, + 51, + 240, + 1, + 123, + 83, + 25, + 130, + 84, + 25, + 170, + 67, + 6, + 40, + 148, + 17, + 51, + 12, + 70, + 51, + 3, + 0, + 0, + 255, + 131, + 51, + 253, + 253, + 151, + 51, + 16, + 149, + 51, + 251, + 251, + 151, + 51, + 16, + 149, + 51, + 248, + 249, + 123, + 83, + 26, + 130, + 84, + 26, + 170, + 67, + 6, + 40, + 110, + 17, + 51, + 12, + 71, + 51, + 3, + 0, + 128, + 193, + 1, + 131, + 51, + 65, + 1, + 151, + 51, + 17, + 149, + 51, + 129, + 1, + 151, + 51, + 17, + 149, + 51, + 0, + 1, + 123, + 83, + 27, + 130, + 84, + 27, + 170, + 67, + 6, + 40, + 71, + 17, + 51, + 12, + 72, + 51, + 3, + 0, + 224, + 240, + 0, + 131, + 51, + 209, + 0, + 151, + 51, + 12, + 149, + 51, + 11, + 252, + 151, + 51, + 12, + 149, + 51, + 161, + 0, + 151, + 51, + 12, + 149, + 51, + 8, + 249, + 123, + 83, + 28, + 130, + 84, + 28, + 170, + 67, + 6, + 40, + 25, + 17, + 51, + 12, + 73, + 51, + 3, + 0, + 96, + 113, + 1, + 131, + 51, + 81, + 1, + 151, + 51, + 12, + 149, + 51, + 19, + 4, + 151, + 51, + 12, + 149, + 51, + 33, + 1, + 151, + 51, + 12, + 149, + 51, + 16, + 1, + 123, + 83, + 29, + 130, + 84, + 29, + 170, + 67, + 6, + 40, + 235, + 16, + 51, + 12, + 74, + 51, + 3, + 0, + 32, + 31, + 131, + 51, + 29, + 254, + 151, + 51, + 14, + 149, + 51, + 7, + 7, + 151, + 51, + 13, + 149, + 51, + 209, + 248, + 151, + 51, + 13, + 149, + 51, + 24, + 249, + 123, + 83, + 30, + 130, + 84, + 30, + 170, + 67, + 6, + 40, + 190, + 16, + 51, + 12, + 75, + 51, + 3, + 0, + 160, + 156, + 0, + 131, + 51, + 149, + 248, + 151, + 51, + 12, + 149, + 51, + 9, + 249, + 151, + 51, + 13, + 149, + 51, + 17, + 249, + 151, + 51, + 13, + 149, + 51, + 32, + 1, + 123, + 83, + 31, + 130, + 84, + 31, + 170, + 67, + 6, + 40, + 144, + 16, + 51, + 12, + 76, + 51, + 3, + 0, + 48, + 131, + 51, + 52, + 5, + 121, + 83, + 63, + 127, + 84, + 63, + 170, + 67, + 6, + 40, + 121, + 16, + 51, + 12, + 77, + 51, + 3, + 0, + 48, + 131, + 51, + 54, + 7, + 121, + 83, + 63, + 126, + 84, + 63, + 170, + 67, + 6, + 40, + 98, + 16, + 51, + 12, + 78, + 51, + 3, + 0, + 64, + 58, + 59, + 131, + 51, + 56, + 249, + 122, + 83, + 61, + 129, + 84, + 61, + 170, + 67, + 6, + 40, + 73, + 16, + 51, + 12, + 79, + 51, + 3, + 0, + 64, + 62, + 63, + 131, + 51, + 60, + 253, + 122, + 83, + 62, + 129, + 84, + 62, + 170, + 67, + 6, + 40, + 48, + 16, + 51, + 12, + 80, + 51, + 3, + 0, + 64, + 66, + 67, + 131, + 51, + 64, + 1, + 122, + 83, + 63, + 129, + 84, + 63, + 170, + 67, + 6, + 40, + 23, + 16, + 51, + 12, + 81, + 51, + 3, + 0, + 64, + 70, + 71, + 131, + 51, + 68, + 5, + 122, + 83, + 61, + 128, + 84, + 61, + 170, + 67, + 6, + 40, + 254, + 15, + 51, + 12, + 82, + 51, + 3, + 0, + 80, + 74, + 75, + 131, + 51, + 72, + 249, + 122, + 83, + 62, + 128, + 84, + 62, + 170, + 67, + 6, + 40, + 229, + 15, + 51, + 12, + 83, + 51, + 3, + 0, + 80, + 78, + 79, + 131, + 51, + 76, + 253, + 122, + 83, + 63, + 128, + 84, + 63, + 170, + 67, + 6, + 40, + 204, + 15, + 51, + 12, + 84, + 51, + 3, + 0, + 96, + 117, + 5, + 131, + 51, + 85, + 5, + 151, + 51, + 12, + 149, + 51, + 83, + 4, + 151, + 51, + 12, + 149, + 51, + 37, + 5, + 151, + 51, + 12, + 149, + 51, + 80, + 1, + 123, + 83, + 57, + 130, + 84, + 57, + 170, + 67, + 6, + 40, + 158, + 15, + 51, + 12, + 85, + 51, + 3, + 0, + 128, + 125, + 1, + 131, + 51, + 117, + 249, + 151, + 51, + 12, + 149, + 51, + 23, + 7, + 151, + 51, + 13, + 149, + 51, + 211, + 250, + 151, + 51, + 13, + 149, + 51, + 88, + 249, + 123, + 83, + 58, + 130, + 84, + 58, + 170, + 67, + 6, + 40, + 112, + 15, + 51, + 12, + 86, + 51, + 3, + 0, + 208, + 206, + 0, + 131, + 51, + 203, + 252, + 151, + 51, + 13, + 149, + 51, + 25, + 249, + 151, + 51, + 13, + 149, + 51, + 19, + 251, + 151, + 51, + 13, + 149, + 51, + 96, + 1, + 123, + 83, + 59, + 130, + 84, + 59, + 170, + 67, + 6, + 40, + 66, + 15, + 51, + 12, + 87, + 51, + 3, + 0, + 224, + 246, + 6, + 131, + 51, + 215, + 6, + 151, + 51, + 12, + 149, + 51, + 107, + 252, + 151, + 51, + 12, + 149, + 51, + 167, + 6, + 151, + 51, + 12, + 149, + 51, + 104, + 249, + 123, + 83, + 60, + 130, + 84, + 60, + 170, + 67, + 6, + 40, + 20, + 15, + 51, + 12, + 88, + 51, + 3, + 0, + 96, + 119, + 7, + 131, + 51, + 87, + 7, + 151, + 51, + 12, + 149, + 51, + 115, + 4, + 151, + 51, + 12, + 149, + 51, + 39, + 7, + 151, + 51, + 12, + 149, + 51, + 112, + 1, + 123, + 83, + 61, + 130, + 84, + 61, + 171, + 67, + 233, + 14, + 51, + 12, + 89, + 51, + 3, + 0, + 0, + 255, + 0, + 131, + 51, + 251, + 252, + 151, + 51, + 12, + 149, + 51, + 143, + 151, + 51, + 12, + 149, + 51, + 245, + 6, + 151, + 51, + 15, + 149, + 51, + 120, + 249, + 123, + 83, + 62, + 130, + 84, + 62, + 171, + 67, + 190, + 14, + 51, + 12, + 90, + 51, + 3, + 0, + 240, + 240, + 131, + 51, + 209, + 0, + 151, + 51, + 12, + 149, + 51, + 9, + 251, + 151, + 51, + 16, + 149, + 51, + 5, + 7, + 151, + 51, + 15, + 149, + 51, + 128, + 1, + 123, + 83, + 63, + 130, + 84, + 63, + 171, + 67, + 147, + 14, + 51, + 12, + 91, + 51, + 3, + 0, + 160, + 0, + 131, + 51, + 152, + 249, + 51, + 4, + 152, + 121, + 83, + 1, + 125, + 90, + 1, + 171, + 164, + 122, + 14, + 51, + 12, + 92, + 51, + 3, + 0, + 160, + 0, + 131, + 51, + 154, + 251, + 51, + 4, + 155, + 121, + 83, + 1, + 125, + 90, + 2, + 171, + 164, + 97, + 14, + 51, + 12, + 93, + 51, + 3, + 0, + 160, + 0, + 131, + 51, + 156, + 253, + 51, + 4, + 156, + 0, + 121, + 83, + 1, + 124, + 90, + 1, + 171, + 164, + 71, + 14, + 51, + 12, + 94, + 51, + 3, + 0, + 160, + 0, + 131, + 51, + 158, + 51, + 4, + 159, + 0, + 121, + 83, + 1, + 124, + 90, + 2, + 171, + 164, + 46, + 14, + 51, + 12, + 95, + 51, + 3, + 0, + 32, + 5, + 131, + 51, + 21, + 253, + 151, + 51, + 13, + 149, + 51, + 160, + 1, + 51, + 4, + 160, + 122, + 83, + 1, + 125, + 90, + 1, + 171, + 164, + 14, + 14, + 51, + 12, + 96, + 51, + 3, + 0, + 64, + 5, + 131, + 51, + 53, + 253, + 151, + 51, + 13, + 149, + 51, + 164, + 5, + 51, + 4, + 165, + 0, + 122, + 83, + 2, + 124, + 90, + 3, + 171, + 164, + 237, + 13, + 51, + 12, + 97, + 51, + 3, + 0, + 192, + 10, + 131, + 51, + 171, + 250, + 151, + 51, + 12, + 149, + 51, + 168, + 249, + 51, + 4, + 0, + 176, + 131, + 68, + 169, + 250, + 122, + 83, + 3, + 127, + 90, + 4, + 171, + 164, + 200, + 13, + 51, + 12, + 98, + 51, + 3, + 0, + 0, + 11, + 131, + 51, + 235, + 250, + 151, + 51, + 12, + 149, + 51, + 172, + 253, + 51, + 4, + 0, + 176, + 0, + 131, + 68, + 174, + 122, + 83, + 3, + 126, + 90, + 5, + 171, + 164, + 163, + 13, + 51, + 12, + 99, + 51, + 3, + 0, + 224, + 222, + 254, + 131, + 51, + 215, + 250, + 151, + 51, + 12, + 149, + 51, + 45, + 253, + 151, + 51, + 14, + 149, + 51, + 43, + 251, + 151, + 51, + 12, + 149, + 51, + 176, + 1, + 51, + 4, + 182, + 123, + 83, + 1, + 125, + 90, + 7, + 171, + 164, + 116, + 13, + 51, + 12, + 100, + 51, + 3, + 0, + 0, + 255, + 254, + 131, + 51, + 247, + 250, + 151, + 51, + 12, + 149, + 51, + 47, + 255, + 151, + 51, + 12, + 149, + 51, + 235, + 254, + 151, + 51, + 14, + 149, + 51, + 184, + 249, + 51, + 4, + 185, + 0, + 123, + 83, + 2, + 124, + 90, + 3, + 171, + 164, + 68, + 13, + 51, + 12, + 101, + 51, + 3, + 0, + 32, + 31, + 255, + 131, + 51, + 23, + 251, + 151, + 51, + 12, + 149, + 51, + 49, + 1, + 151, + 51, + 12, + 149, + 51, + 11, + 255, + 151, + 51, + 14, + 149, + 51, + 192, + 1, + 51, + 4, + 0, + 192, + 131, + 68, + 198, + 7, + 123, + 83, + 3, + 127, + 90, + 9, + 171, + 164, + 16, + 13, + 51, + 12, + 102, + 51, + 3, + 0, + 64, + 63, + 255, + 131, + 51, + 55, + 251, + 151, + 51, + 12, + 149, + 51, + 51, + 3, + 151, + 51, + 14, + 149, + 51, + 173, + 252, + 151, + 51, + 12, + 149, + 51, + 200, + 249, + 51, + 4, + 0, + 208, + 0, + 131, + 68, + 201, + 250, + 123, + 83, + 4, + 126, + 90, + 5, + 171, + 164, + 219, + 12, + 51, + 12, + 103, + 51, + 3, + 0, + 96, + 95, + 255, + 131, + 51, + 87, + 251, + 151, + 51, + 12, + 149, + 51, + 53, + 5, + 151, + 51, + 14, + 149, + 51, + 45, + 253, + 151, + 51, + 12, + 149, + 51, + 208, + 1, + 51, + 4, + 0, + 208, + 214, + 215, + 131, + 68, + 212, + 5, + 123, + 83, + 5, + 129, + 90, + 9, + 171, + 164, + 165, + 12, + 51, + 12, + 104, + 51, + 3, + 0, + 128, + 127, + 255, + 131, + 51, + 119, + 251, + 151, + 51, + 12, + 149, + 51, + 55, + 7, + 151, + 51, + 13, + 149, + 51, + 215, + 254, + 151, + 51, + 13, + 149, + 51, + 216, + 249, + 51, + 4, + 0, + 224, + 220, + 221, + 131, + 68, + 218, + 251, + 123, + 83, + 6, + 129, + 90, + 8, + 171, + 164, + 111, + 12, + 51, + 12, + 105, + 51, + 3, + 0, + 240, + 243, + 131, + 51, + 115, + 3, + 151, + 51, + 15, + 149, + 51, + 57, + 249, + 151, + 51, + 13, + 149, + 51, + 23, + 255, + 151, + 51, + 13, + 149, + 51, + 224, + 1, + 51, + 4, + 0, + 32, + 7, + 131, + 68, + 31, + 7, + 151, + 68, + 13, + 149, + 68, + 225, + 2, + 123, + 83, + 7, + 128, + 90, + 8, + 171, + 164, + 52, + 12, + 51, + 12, + 106, + 51, + 3, + 0, + 240, + 0, + 131, + 51, + 232, + 249, + 51, + 4, + 232, + 121, + 83, + 31, + 125, + 90, + 31, + 171, + 164, + 27, + 12, + 51, + 12, + 107, + 51, + 3, + 0, + 240, + 0, + 131, + 51, + 234, + 251, + 51, + 4, + 235, + 121, + 83, + 31, + 125, + 90, + 32, + 171, + 164, + 2, + 12, + 51, + 12, + 108, + 51, + 3, + 0, + 240, + 0, + 131, + 51, + 236, + 253, + 51, + 4, + 236, + 0, + 121, + 83, + 31, + 124, + 90, + 31, + 171, + 164, + 232, + 11, + 51, + 12, + 109, + 51, + 3, + 0, + 240, + 0, + 131, + 51, + 238, + 51, + 4, + 239, + 0, + 121, + 83, + 31, + 124, + 90, + 32, + 171, + 164, + 207, + 11, + 51, + 12, + 110, + 51, + 3, + 0, + 64, + 15, + 131, + 51, + 47, + 255, + 151, + 51, + 12, + 149, + 51, + 240, + 1, + 51, + 4, + 240, + 122, + 83, + 29, + 125, + 90, + 29, + 171, + 164, + 175, + 11, + 51, + 12, + 111, + 51, + 3, + 0, + 128, + 15, + 131, + 51, + 111, + 255, + 151, + 51, + 12, + 149, + 51, + 244, + 5, + 51, + 4, + 246, + 0, + 122, + 83, + 30, + 124, + 90, + 32, + 171, + 164, + 142, + 11, + 51, + 12, + 112, + 51, + 3, + 0, + 0, + 1, + 131, + 51, + 251, + 251, + 151, + 51, + 16, + 149, + 51, + 248, + 249, + 51, + 4, + 250, + 251, + 122, + 83, + 29, + 127, + 90, + 31, + 171, + 164, + 109, + 11, + 51, + 12, + 113, + 51, + 3, + 0, + 0, + 1, + 131, + 51, + 255, + 151, + 51, + 16, + 149, + 51, + 252, + 253, + 51, + 4, + 0, + 0, + 1, + 131, + 68, + 252, + 253, + 122, + 83, + 31, + 126, + 90, + 31, + 171, + 164, + 72, + 11, + 51, + 12, + 114, + 51, + 3, + 0, + 128, + 193, + 1, + 131, + 51, + 65, + 1, + 151, + 51, + 17, + 149, + 51, + 129, + 1, + 151, + 51, + 17, + 149, + 51, + 0, + 1, + 51, + 4, + 7, + 123, + 83, + 25, + 125, + 90, + 32, + 171, + 164, + 32, + 11, + 51, + 12, + 115, + 51, + 3, + 0, + 224, + 240, + 0, + 131, + 51, + 209, + 0, + 151, + 51, + 12, + 149, + 51, + 11, + 252, + 151, + 51, + 12, + 149, + 51, + 161, + 0, + 151, + 51, + 12, + 149, + 51, + 8, + 249, + 51, + 4, + 15, + 123, + 83, + 26, + 124, + 90, + 33, + 171, + 164, + 241, + 10, + 51, + 12, + 116, + 51, + 3, + 0, + 96, + 113, + 1, + 131, + 51, + 81, + 1, + 151, + 51, + 12, + 149, + 51, + 19, + 4, + 151, + 51, + 12, + 149, + 51, + 33, + 1, + 151, + 51, + 12, + 149, + 51, + 16, + 1, + 51, + 4, + 0, + 16, + 131, + 68, + 20, + 5, + 123, + 83, + 27, + 127, + 90, + 31, + 171, + 164, + 189, + 10, + 51, + 12, + 117, + 51, + 3, + 0, + 32, + 31, + 131, + 51, + 29, + 254, + 151, + 51, + 14, + 149, + 51, + 7, + 7, + 151, + 51, + 13, + 149, + 51, + 209, + 248, + 151, + 51, + 13, + 149, + 51, + 24, + 249, + 51, + 4, + 0, + 32, + 131, + 68, + 27, + 252, + 123, + 83, + 28, + 126, + 90, + 31, + 171, + 164, + 138, + 10, + 51, + 12, + 118, + 51, + 3, + 0, + 160, + 156, + 0, + 131, + 51, + 149, + 248, + 151, + 51, + 12, + 149, + 51, + 9, + 249, + 151, + 51, + 13, + 149, + 51, + 17, + 249, + 151, + 51, + 13, + 149, + 51, + 32, + 1, + 51, + 4, + 0, + 32, + 34, + 35, + 131, + 68, + 32, + 1, + 123, + 83, + 29, + 129, + 90, + 29, + 171, + 164, + 84, + 10, + 51, + 12, + 119, + 51, + 3, + 0, + 224, + 242, + 2, + 131, + 51, + 211, + 2, + 151, + 51, + 12, + 149, + 51, + 43, + 252, + 151, + 51, + 12, + 149, + 51, + 163, + 2, + 151, + 51, + 12, + 149, + 51, + 40, + 249, + 51, + 4, + 0, + 48, + 42, + 43, + 131, + 68, + 40, + 249, + 123, + 83, + 30, + 129, + 90, + 30, + 171, + 164, + 30, + 10, + 51, + 12, + 120, + 51, + 3, + 0, + 96, + 115, + 3, + 131, + 51, + 83, + 3, + 151, + 51, + 12, + 149, + 51, + 51, + 4, + 151, + 51, + 12, + 149, + 51, + 35, + 3, + 151, + 51, + 12, + 149, + 51, + 48, + 1, + 51, + 4, + 0, + 48, + 50, + 51, + 131, + 68, + 48, + 1, + 123, + 83, + 31, + 128, + 90, + 31, + 171, + 164, + 232, + 9, + 51, + 12, + 121, + 51, + 3, + 0, + 80, + 131, + 51, + 72, + 249, + 51, + 4, + 72, + 121, + 83, + 63, + 125, + 90, + 63, + 171, + 164, + 208, + 9, + 51, + 12, + 122, + 51, + 3, + 0, + 80, + 131, + 51, + 74, + 251, + 51, + 4, + 75, + 121, + 83, + 63, + 125, + 90, + 64, + 171, + 164, + 184, + 9, + 51, + 12, + 123, + 51, + 3, + 0, + 80, + 131, + 51, + 76, + 253, + 51, + 4, + 76, + 121, + 83, + 63, + 124, + 90, + 63, + 171, + 164, + 160, + 9, + 51, + 12, + 124, + 51, + 3, + 0, + 80, + 131, + 51, + 78, + 255, + 51, + 4, + 79, + 121, + 83, + 63, + 124, + 90, + 64, + 171, + 164, + 136, + 9, + 51, + 12, + 125, + 51, + 3, + 0, + 80, + 82, + 83, + 131, + 51, + 80, + 1, + 51, + 4, + 80, + 122, + 83, + 61, + 125, + 90, + 61, + 171, + 164, + 110, + 9, + 51, + 12, + 126, + 51, + 3, + 0, + 80, + 86, + 87, + 131, + 51, + 84, + 5, + 51, + 4, + 86, + 122, + 83, + 62, + 124, + 90, + 64, + 171, + 164, + 84, + 9, + 51, + 12, + 127, + 51, + 3, + 0, + 96, + 90, + 91, + 131, + 51, + 88, + 249, + 51, + 4, + 0, + 96, + 131, + 68, + 90, + 251, + 122, + 83, + 61, + 127, + 90, + 63, + 171, + 164, + 53, + 9, + 51, + 12, + 128, + 0, + 51, + 3, + 0, + 96, + 94, + 95, + 131, + 51, + 92, + 253, + 51, + 4, + 0, + 96, + 131, + 68, + 92, + 253, + 122, + 83, + 63, + 126, + 90, + 63, + 171, + 164, + 21, + 9, + 51, + 12, + 129, + 0, + 51, + 3, + 0, + 208, + 206, + 0, + 131, + 51, + 203, + 252, + 151, + 51, + 13, + 149, + 51, + 25, + 249, + 151, + 51, + 13, + 149, + 51, + 19, + 251, + 151, + 51, + 13, + 149, + 51, + 96, + 1, + 51, + 4, + 103, + 123, + 83, + 57, + 125, + 90, + 64, + 171, + 164, + 229, + 8, + 51, + 12, + 130, + 0, + 51, + 3, + 0, + 224, + 246, + 6, + 131, + 51, + 215, + 6, + 151, + 51, + 12, + 149, + 51, + 107, + 252, + 151, + 51, + 12, + 149, + 51, + 167, + 6, + 151, + 51, + 12, + 149, + 51, + 104, + 249, + 51, + 4, + 111, + 123, + 83, + 58, + 124, + 90, + 65, + 171, + 164, + 181, + 8, + 51, + 12, + 131, + 0, + 51, + 3, + 0, + 96, + 119, + 7, + 131, + 51, + 87, + 7, + 151, + 51, + 12, + 149, + 51, + 115, + 4, + 151, + 51, + 12, + 149, + 51, + 39, + 7, + 151, + 51, + 12, + 149, + 51, + 112, + 1, + 51, + 4, + 0, + 112, + 131, + 68, + 116, + 5, + 123, + 83, + 59, + 127, + 90, + 63, + 171, + 164, + 128, + 8, + 51, + 12, + 132, + 0, + 51, + 3, + 0, + 0, + 255, + 0, + 131, + 51, + 251, + 252, + 151, + 51, + 12, + 149, + 51, + 143, + 151, + 51, + 12, + 149, + 51, + 245, + 6, + 151, + 51, + 15, + 149, + 51, + 120, + 249, + 51, + 4, + 0, + 128, + 0, + 131, + 68, + 123, + 252, + 123, + 83, + 60, + 126, + 90, + 63, + 171, + 164, + 75, + 8, + 51, + 12, + 133, + 0, + 51, + 3, + 0, + 240, + 240, + 131, + 51, + 209, + 0, + 151, + 51, + 12, + 149, + 51, + 9, + 251, + 151, + 51, + 16, + 149, + 51, + 5, + 7, + 151, + 51, + 15, + 149, + 51, + 128, + 1, + 51, + 4, + 0, + 128, + 130, + 131, + 131, + 68, + 128, + 1, + 123, + 83, + 61, + 129, + 90, + 61, + 171, + 164, + 21, + 8, + 51, + 12, + 134, + 0, + 51, + 3, + 0, + 32, + 31, + 255, + 131, + 51, + 27, + 253, + 151, + 51, + 13, + 149, + 51, + 35, + 3, + 151, + 51, + 14, + 149, + 51, + 169, + 248, + 151, + 51, + 12, + 149, + 51, + 136, + 249, + 51, + 4, + 0, + 144, + 138, + 139, + 131, + 68, + 136, + 249, + 123, + 83, + 62, + 129, + 90, + 62, + 171, + 164, + 222, + 7, + 51, + 12, + 135, + 0, + 51, + 3, + 0, + 48, + 47, + 255, + 131, + 51, + 43, + 253, + 151, + 51, + 13, + 149, + 51, + 37, + 5, + 151, + 51, + 14, + 149, + 51, + 41, + 249, + 151, + 51, + 12, + 149, + 51, + 144, + 1, + 51, + 4, + 0, + 64, + 9, + 131, + 68, + 41, + 249, + 151, + 68, + 12, + 149, + 68, + 144, + 1, + 123, + 83, + 63, + 128, + 90, + 63, + 171, + 164, + 161, + 7, + 51, + 12, + 136, + 0, + 51, + 3, + 152, + 0, + 51, + 4, + 0, + 192, + 131, + 68, + 152, + 248, + 120, + 83, + 1, + 127, + 90, + 1, + 171, + 164, + 135, + 7, + 51, + 12, + 137, + 0, + 51, + 3, + 153, + 0, + 51, + 4, + 0, + 160, + 0, + 131, + 68, + 152, + 249, + 120, + 83, + 2, + 126, + 90, + 1, + 171, + 164, + 108, + 7, + 51, + 12, + 138, + 0, + 51, + 3, + 0, + 160, + 0, + 131, + 51, + 154, + 251, + 51, + 4, + 0, + 160, + 192, + 200, + 131, + 68, + 154, + 251, + 121, + 83, + 1, + 129, + 90, + 1, + 171, + 164, + 75, + 7, + 51, + 12, + 139, + 0, + 51, + 3, + 0, + 160, + 0, + 131, + 51, + 156, + 253, + 51, + 4, + 0, + 160, + 157, + 208, + 131, + 68, + 155, + 252, + 121, + 83, + 3, + 129, + 90, + 2, + 171, + 164, + 42, + 7, + 51, + 12, + 140, + 0, + 51, + 3, + 0, + 160, + 0, + 131, + 51, + 158, + 51, + 4, + 0, + 160, + 158, + 159, + 131, + 68, + 156, + 253, + 121, + 83, + 5, + 129, + 90, + 3, + 171, + 164, + 10, + 7, + 51, + 12, + 141, + 0, + 51, + 3, + 160, + 0, + 51, + 4, + 0, + 240, + 4, + 131, + 68, + 229, + 252, + 151, + 68, + 13, + 149, + 68, + 154, + 0, + 120, + 83, + 2, + 128, + 90, + 1, + 171, + 164, + 232, + 6, + 51, + 12, + 142, + 0, + 51, + 3, + 0, + 160, + 0, + 131, + 51, + 161, + 2, + 51, + 4, + 0, + 240, + 4, + 131, + 68, + 21, + 5, + 151, + 68, + 13, + 149, + 68, + 160, + 1, + 121, + 83, + 3, + 128, + 90, + 2, + 171, + 164, + 193, + 6, + 51, + 12, + 143, + 0, + 51, + 3, + 0, + 160, + 0, + 131, + 51, + 163, + 4, + 51, + 4, + 0, + 32, + 5, + 131, + 68, + 29, + 5, + 151, + 68, + 13, + 149, + 68, + 161, + 2, + 121, + 83, + 5, + 128, + 90, + 3, + 171, + 164, + 154, + 6, + 51, + 12, + 144, + 0, + 51, + 3, + 165, + 0, + 51, + 4, + 0, + 0, + 15, + 255, + 131, + 68, + 37, + 5, + 151, + 68, + 12, + 149, + 68, + 209, + 1, + 151, + 68, + 12, + 149, + 68, + 13, + 5, + 151, + 68, + 13, + 149, + 68, + 154, + 5, + 120, + 83, + 2, + 130, + 90, + 1, + 171, + 164, + 105, + 6, + 51, + 12, + 145, + 0, + 51, + 3, + 0, + 160, + 0, + 131, + 51, + 166, + 7, + 51, + 4, + 0, + 160, + 138, + 131, + 68, + 155, + 254, + 151, + 68, + 12, + 149, + 68, + 41, + 249, + 151, + 68, + 13, + 149, + 68, + 21, + 253, + 151, + 68, + 13, + 149, + 68, + 165, + 1, + 121, + 83, + 7, + 130, + 90, + 2, + 171, + 164, + 52, + 6, + 51, + 12, + 146, + 0, + 51, + 3, + 0, + 176, + 0, + 131, + 51, + 168, + 249, + 51, + 4, + 0, + 160, + 166, + 254, + 131, + 68, + 159, + 2, + 151, + 68, + 12, + 149, + 68, + 169, + 249, + 151, + 68, + 13, + 149, + 68, + 29, + 5, + 151, + 68, + 13, + 149, + 68, + 161, + 2, + 121, + 83, + 9, + 130, + 90, + 3, + 171, + 164, + 254, + 5, + 51, + 12, + 147, + 0, + 51, + 3, + 0, + 224, + 10, + 131, + 51, + 203, + 250, + 151, + 51, + 12, + 149, + 51, + 170, + 251, + 51, + 4, + 0, + 160, + 74, + 254, + 131, + 68, + 139, + 250, + 151, + 68, + 12, + 149, + 68, + 173, + 253, + 151, + 68, + 12, + 149, + 68, + 187, + 250, + 151, + 68, + 12, + 149, + 68, + 162, + 250, + 122, + 83, + 5, + 130, + 90, + 4, + 171, + 164, + 193, + 5, + 51, + 12, + 148, + 0, + 51, + 3, + 0, + 32, + 11, + 131, + 51, + 11, + 251, + 151, + 51, + 12, + 149, + 51, + 174, + 51, + 4, + 0, + 240, + 242, + 131, + 68, + 89, + 2, + 151, + 68, + 13, + 149, + 68, + 11, + 251, + 151, + 68, + 16, + 149, + 68, + 235, + 250, + 151, + 68, + 12, + 149, + 68, + 170, + 251, + 122, + 83, + 7, + 130, + 90, + 5, + 171, + 164, + 134, + 5, + 51, + 12, + 149, + 0, + 51, + 3, + 0, + 96, + 11, + 131, + 51, + 75, + 251, + 151, + 51, + 12, + 149, + 51, + 178, + 3, + 51, + 4, + 0, + 96, + 107, + 254, + 131, + 68, + 75, + 251, + 151, + 68, + 12, + 149, + 68, + 179, + 3, + 151, + 68, + 12, + 149, + 68, + 251, + 250, + 151, + 68, + 12, + 149, + 68, + 171, + 254, + 122, + 83, + 9, + 130, + 90, + 6, + 171, + 164, + 73, + 5, + 51, + 12, + 150, + 0, + 51, + 3, + 0, + 160, + 11, + 131, + 51, + 139, + 251, + 151, + 51, + 12, + 149, + 51, + 182, + 7, + 51, + 4, + 0, + 224, + 230, + 254, + 131, + 68, + 223, + 2, + 151, + 68, + 12, + 149, + 68, + 173, + 253, + 151, + 68, + 14, + 149, + 68, + 43, + 251, + 151, + 68, + 12, + 149, + 68, + 174, + 122, + 83, + 11, + 130, + 90, + 7, + 171, + 164, + 13, + 5, + 51, + 12, + 151, + 0, + 51, + 3, + 186, + 0, + 51, + 4, + 0, + 48, + 131, + 68, + 186, + 1, + 120, + 83, + 31, + 127, + 90, + 31, + 171, + 164, + 243, + 4, + 51, + 12, + 152, + 0, + 51, + 3, + 187, + 0, + 51, + 4, + 0, + 192, + 0, + 131, + 68, + 186, + 251, + 120, + 83, + 32, + 126, + 90, + 31, + 171, + 164, + 216, + 4, + 51, + 12, + 153, + 0, + 51, + 3, + 0, + 192, + 0, + 131, + 51, + 188, + 253, + 51, + 4, + 0, + 192, + 187, + 50, + 131, + 68, + 188, + 253, + 121, + 83, + 30, + 129, + 90, + 30, + 171, + 164, + 183, + 4, + 51, + 12, + 154, + 0, + 51, + 3, + 0, + 192, + 0, + 131, + 51, + 190, + 51, + 4, + 0, + 192, + 191, + 50, + 131, + 68, + 188, + 254, + 121, + 83, + 31, + 129, + 90, + 30, + 171, + 164, + 151, + 4, + 51, + 12, + 155, + 0, + 51, + 3, + 0, + 192, + 0, + 131, + 51, + 192, + 1, + 51, + 4, + 0, + 192, + 192, + 193, + 131, + 68, + 188, + 254, + 121, + 83, + 32, + 129, + 90, + 30, + 171, + 164, + 118, + 4, + 51, + 12, + 156, + 0, + 51, + 3, + 194, + 0, + 51, + 4, + 0, + 192, + 193, + 51, + 131, + 68, + 190, + 2, + 120, + 83, + 32, + 128, + 90, + 31, + 171, + 164, + 90, + 4, + 51, + 12, + 157, + 0, + 51, + 3, + 0, + 192, + 0, + 131, + 51, + 195, + 4, + 51, + 4, + 0, + 16, + 3, + 131, + 68, + 15, + 3, + 151, + 68, + 14, + 149, + 68, + 32, + 252, + 121, + 83, + 31, + 128, + 90, + 29, + 171, + 164, + 51, + 4, + 51, + 12, + 158, + 0, + 51, + 3, + 0, + 192, + 0, + 131, + 51, + 197, + 6, + 51, + 4, + 0, + 32, + 3, + 131, + 68, + 23, + 251, + 151, + 68, + 14, + 149, + 68, + 188, + 3, + 121, + 83, + 32, + 128, + 90, + 30, + 171, + 164, + 12, + 4, + 51, + 12, + 159, + 0, + 51, + 3, + 199, + 0, + 51, + 4, + 0, + 240, + 241, + 131, + 68, + 239, + 0, + 151, + 68, + 15, + 149, + 68, + 3, + 4, + 151, + 68, + 15, + 149, + 68, + 1, + 1, + 151, + 68, + 12, + 149, + 68, + 0, + 248, + 120, + 83, + 32, + 130, + 90, + 25, + 171, + 164, + 220, + 3, + 51, + 12, + 160, + 0, + 51, + 3, + 0, + 208, + 0, + 131, + 51, + 200, + 249, + 51, + 4, + 0, + 224, + 248, + 131, + 68, + 57, + 249, + 151, + 68, + 14, + 149, + 68, + 225, + 5, + 151, + 68, + 17, + 149, + 68, + 129, + 1, + 151, + 68, + 12, + 149, + 68, + 8, + 121, + 83, + 31, + 130, + 90, + 26, + 171, + 164, + 168, + 3, + 51, + 12, + 161, + 0, + 51, + 3, + 0, + 208, + 0, + 131, + 51, + 202, + 251, + 51, + 4, + 0, + 32, + 207, + 0, + 131, + 68, + 47, + 251, + 151, + 68, + 12, + 149, + 68, + 175, + 2, + 151, + 68, + 13, + 149, + 68, + 1, + 1, + 151, + 68, + 13, + 149, + 68, + 16, + 248, + 121, + 83, + 31, + 130, + 90, + 27, + 171, + 164, + 114, + 3, + 51, + 12, + 162, + 0, + 51, + 3, + 0, + 0, + 13, + 131, + 51, + 237, + 252, + 151, + 51, + 12, + 149, + 51, + 204, + 253, + 51, + 4, + 0, + 64, + 63, + 255, + 131, + 68, + 55, + 251, + 151, + 68, + 13, + 149, + 68, + 101, + 6, + 151, + 68, + 12, + 149, + 68, + 225, + 5, + 151, + 68, + 13, + 149, + 68, + 24, + 122, + 83, + 32, + 130, + 90, + 28, + 171, + 164, + 54, + 3, + 51, + 12, + 163, + 0, + 51, + 3, + 0, + 64, + 13, + 131, + 51, + 45, + 253, + 151, + 51, + 12, + 149, + 51, + 208, + 1, + 51, + 4, + 0, + 112, + 13, + 131, + 68, + 245, + 3, + 151, + 68, + 14, + 149, + 68, + 45, + 253, + 151, + 68, + 14, + 149, + 68, + 67, + 7, + 151, + 68, + 14, + 149, + 68, + 32, + 252, + 122, + 83, + 31, + 130, + 90, + 29, + 171, + 164, + 250, + 2, + 51, + 12, + 164, + 0, + 51, + 3, + 0, + 128, + 13, + 131, + 51, + 109, + 253, + 151, + 51, + 12, + 149, + 51, + 212, + 5, + 51, + 4, + 0, + 96, + 3, + 131, + 68, + 93, + 3, + 151, + 68, + 17, + 149, + 68, + 123, + 250, + 151, + 68, + 15, + 149, + 68, + 109, + 253, + 151, + 68, + 12, + 149, + 68, + 212, + 5, + 122, + 83, + 30, + 130, + 90, + 30, + 171, + 164, + 190, + 2, + 51, + 12, + 165, + 0, + 51, + 3, + 0, + 224, + 6, + 131, + 51, + 215, + 254, + 151, + 51, + 13, + 149, + 51, + 216, + 249, + 51, + 4, + 0, + 224, + 220, + 0, + 131, + 68, + 215, + 248, + 151, + 68, + 12, + 149, + 68, + 245, + 3, + 151, + 68, + 13, + 149, + 68, + 191, + 254, + 151, + 68, + 13, + 149, + 68, + 218, + 251, + 122, + 83, + 29, + 130, + 90, + 31, + 171, + 164, + 129, + 2, + 51, + 12, + 166, + 0, + 51, + 3, + 220, + 0, + 51, + 4, + 0, + 144, + 131, + 68, + 220, + 1, + 120, + 83, + 63, + 127, + 90, + 63, + 171, + 164, + 103, + 2, + 51, + 12, + 167, + 0, + 51, + 3, + 221, + 0, + 51, + 4, + 0, + 224, + 0, + 131, + 68, + 220, + 253, + 120, + 83, + 64, + 126, + 90, + 63, + 171, + 164, + 76, + 2, + 51, + 12, + 168, + 0, + 51, + 3, + 0, + 224, + 0, + 131, + 51, + 222, + 51, + 4, + 0, + 224, + 221, + 146, + 131, + 68, + 222, + 121, + 83, + 62, + 129, + 90, + 62, + 171, + 164, + 45, + 2, + 51, + 12, + 169, + 0, + 51, + 3, + 0, + 224, + 0, + 131, + 51, + 224, + 1, + 51, + 4, + 0, + 224, + 225, + 146, + 131, + 68, + 222, + 0, + 121, + 83, + 63, + 129, + 90, + 62, + 171, + 164, + 12, + 2, + 51, + 12, + 170, + 0, + 51, + 3, + 0, + 224, + 0, + 131, + 51, + 226, + 3, + 51, + 4, + 0, + 224, + 226, + 227, + 131, + 68, + 222, + 0, + 121, + 83, + 64, + 129, + 90, + 62, + 171, + 164, + 235, + 1, + 51, + 12, + 171, + 0, + 51, + 3, + 228, + 0, + 51, + 4, + 0, + 160, + 4, + 131, + 68, + 31, + 255, + 151, + 68, + 13, + 149, + 68, + 224, + 4, + 120, + 83, + 64, + 128, + 90, + 63, + 171, + 164, + 201, + 1, + 51, + 12, + 172, + 0, + 51, + 3, + 0, + 224, + 0, + 131, + 51, + 229, + 6, + 51, + 4, + 0, + 48, + 7, + 131, + 68, + 47, + 7, + 151, + 68, + 13, + 149, + 68, + 128, + 254, + 121, + 83, + 63, + 128, + 90, + 61, + 171, + 164, + 162, + 1, + 51, + 12, + 173, + 0, + 51, + 3, + 0, + 240, + 0, + 131, + 51, + 231, + 248, + 51, + 4, + 0, + 64, + 7, + 131, + 68, + 63, + 7, + 151, + 68, + 13, + 149, + 68, + 222, + 5, + 121, + 83, + 64, + 128, + 90, + 62, + 171, + 164, + 123, + 1, + 51, + 12, + 174, + 0, + 51, + 3, + 233, + 0, + 51, + 4, + 0, + 208, + 211, + 131, + 68, + 189, + 251, + 151, + 68, + 12, + 149, + 68, + 15, + 151, + 68, + 15, + 149, + 68, + 7, + 7, + 151, + 68, + 12, + 149, + 68, + 96, + 248, + 120, + 83, + 64, + 130, + 90, + 57, + 171, + 164, + 76, + 1, + 51, + 12, + 175, + 0, + 51, + 3, + 0, + 240, + 0, + 131, + 51, + 234, + 251, + 51, + 4, + 0, + 208, + 215, + 209, + 131, + 68, + 189, + 5, + 151, + 68, + 19, + 149, + 68, + 135, + 7, + 151, + 68, + 12, + 149, + 68, + 104, + 121, + 83, + 63, + 130, + 90, + 58, + 171, + 164, + 30, + 1, + 51, + 12, + 176, + 0, + 51, + 3, + 0, + 240, + 0, + 131, + 51, + 236, + 253, + 51, + 4, + 0, + 240, + 201, + 131, + 68, + 119, + 4, + 151, + 68, + 12, + 149, + 68, + 103, + 255, + 151, + 68, + 14, + 149, + 68, + 1, + 253, + 151, + 68, + 15, + 149, + 68, + 112, + 248, + 121, + 83, + 63, + 130, + 90, + 59, + 171, + 164, + 233, + 0, + 51, + 12, + 177, + 0, + 51, + 3, + 0, + 32, + 15, + 131, + 51, + 15, + 255, + 151, + 51, + 12, + 149, + 51, + 238, + 51, + 4, + 0, + 32, + 255, + 131, + 68, + 15, + 255, + 151, + 68, + 16, + 149, + 68, + 239, + 254, + 151, + 68, + 13, + 149, + 68, + 189, + 249, + 151, + 68, + 15, + 149, + 68, + 120, + 122, + 83, + 64, + 130, + 90, + 60, + 171, + 164, + 175, + 0, + 51, + 12, + 178, + 0, + 51, + 3, + 0, + 96, + 15, + 131, + 51, + 79, + 255, + 151, + 51, + 12, + 149, + 51, + 242, + 3, + 51, + 4, + 0, + 0, + 203, + 131, + 68, + 251, + 248, + 151, + 68, + 15, + 149, + 68, + 61, + 253, + 151, + 68, + 13, + 149, + 68, + 151, + 151, + 68, + 13, + 149, + 68, + 128, + 254, + 122, + 83, + 63, + 130, + 90, + 61, + 171, + 164, + 116, + 51, + 12, + 179, + 0, + 51, + 3, + 0, + 160, + 15, + 131, + 51, + 143, + 151, + 51, + 12, + 149, + 51, + 246, + 7, + 51, + 4, + 0, + 80, + 203, + 131, + 68, + 249, + 250, + 151, + 68, + 16, + 149, + 68, + 253, + 250, + 151, + 68, + 13, + 149, + 68, + 143, + 151, + 68, + 12, + 149, + 68, + 246, + 7, + 122, + 83, + 62, + 130, + 90, + 62, + 171, + 164, + 59, + 51, + 12, + 180, + 0, + 51, + 3, + 0, + 0, + 1, + 131, + 51, + 253, + 253, + 151, + 51, + 16, + 149, + 51, + 250, + 251, + 51, + 4, + 0, + 80, + 203, + 203, + 131, + 68, + 249, + 250, + 151, + 68, + 16, + 149, + 68, + 253, + 250, + 151, + 68, + 17, + 149, + 68, + 252, + 253, + 122, + 83, + 61, + 130, + 90, + 63, + 171, + 164, + 6, + 82, + 12, + 4, + 0, + 40, + 250, + 229, + 33, + 41, + 36, + 146, + 36, + 146, + 36, + 136, + 36, + 9, + 34, + 73, + 130, + 72, + 146, + 32, + 146, + 36, + 136, + 36, + 9, + 34, + 73, + 130, + 72, + 36, + 146, + 36, + 136, + 68, + 34, + 73, + 130, + 72, + 36, + 146, + 36, + 136, + 68, + 34, + 73, + 66, + 36, + 18, + 137, + 36, + 9, + 34, + 145, + 72, + 146, + 16, + 137, + 68, + 34, + 73, + 34, + 73, + 18, + 73, + 146, + 32, + 146, + 36, + 136, + 36, + 9, + 146, + 36, + 65, + 36, + 73, + 16, + 73, + 18, + 36, + 73, + 66, + 18, + 137, + 68, + 146, + 4, + 145, + 72, + 36, + 146, + 36, + 136, + 36, + 145, + 72, + 146, + 16, + 137, + 68, + 34, + 73, + 66, + 36, + 18, + 137, + 36, + 9, + 34, + 145, + 72, + 36, + 73, + 16, + 137, + 68, + 146, + 36, + 145, + 36, + 137, + 36, + 73, + 16, + 73, + 18, + 68, + 146, + 4, + 73, + 146, + 32, + 146, + 36, + 136, + 36, + 9, + 146, + 36, + 65, + 36, + 18, + 137, + 36, + 9, + 34, + 73, + 36, + 146, + 36, + 68, + 34, + 145, + 72, + 146, + 16, + 137, + 68, + 34, + 73, + 66, + 36, + 18, + 137, + 36, + 9, + 145, + 72, + 36, + 146, + 36, + 136, + 68, + 34, + 73, + 146, + 136, + 36, + 73, + 136, + 36, + 73, + 16, + 73, + 146, + 32, + 146, + 36, + 65, + 36, + 73, + 66, + 36, + 146, + 36, + 33, + 18, + 73, + 146, + 16, + 137, + 36, + 73, + 136, + 68, + 34, + 145, + 36, + 9, + 34, + 145, + 72, + 36, + 73, + 66, + 36, + 18, + 137, + 36, + 73, + 16, + 137, + 68, + 34, + 73, + 18, + 34, + 145, + 72, + 36, + 73, + 66, + 36, + 18, + 137, + 36, + 73, + 136, + 68, + 34, + 145, + 36, + 137, + 72, + 146, + 132, + 72, + 146, + 4, + 145, + 36, + 9, + 34, + 73, + 18, + 68, + 146, + 36, + 68, + 34, + 73, + 18, + 34, + 145, + 36, + 9, + 145, + 72, + 146, + 132, + 72, + 36, + 18, + 73, + 146, + 16, + 137, + 68, + 146, + 36, + 136, + 68, + 34, + 73, + 18, + 68, + 34, + 145, + 72, + 146, + 4, + 145, + 72, + 36, + 146, + 36, + 33, + 18, + 137, + 68, + 146, + 36, + 136, + 68, + 34, + 145, + 36, + 137, + 72, + 146, + 68, + 36, + 73, + 130, + 72, + 146, + 4, + 145, + 36, + 9, + 34, + 73, + 18, + 68, + 146, + 36, + 136, + 36, + 73, + 16, + 73, + 146, + 32, + 18, + 137, + 68, + 146, + 36, + 136, + 68, + 34, + 145, + 36, + 9, + 34, + 145, + 72, + 36, + 73, + 130, + 72, + 36, + 18, + 73, + 146, + 32, + 18, + 137, + 68, + 18, + 9, + 34, + 73, + 36, + 146, + 72, + 136, + 68, + 34, + 145, + 68, + 66, + 36, + 137, + 132, + 72, + 18, + 9, + 17, + 73, + 36, + 36, + 146, + 72, + 136, + 68, + 146, + 72, + 136, + 68, + 36, + 145, + 16, + 137, + 136, + 36, + 18, + 34, + 17, + 146, + 68, + 130, + 72, + 36, + 18, + 73, + 34, + 65, + 36, + 18, + 137, + 72, + 34, + 65, + 36, + 18, + 137, + 136, + 36, + 18, + 68, + 34, + 145, + 8, + 145, + 68, + 130, + 72, + 36, + 18, + 65, + 36, + 145, + 32, + 18, + 137, + 68, + 16, + 73, + 36, + 68, + 34, + 145, + 8, + 145, + 72, + 34, + 33, + 146, + 68, + 66, + 36, + 137, + 132, + 136, + 36, + 18, + 18, + 73, + 36, + 68, + 34, + 73, + 36, + 68, + 34, + 146, + 72, + 136, + 68, + 36, + 145, + 144, + 68, + 136, + 36, + 18, + 68, + 34, + 145, + 36, + 18, + 68, + 34, + 145, + 72, + 18, + 9, + 34, + 145, + 72, + 68, + 36, + 145, + 16, + 137, + 68, + 34, + 34, + 137, + 4, + 145, + 72, + 36, + 130, + 72, + 34, + 65, + 36, + 18, + 137, + 32, + 146, + 72, + 16, + 137, + 68, + 34, + 136, + 36, + 18, + 145, + 36, + 18, + 145, + 36, + 18, + 145, + 36, + 18, + 145, + 36, + 18, + 68, + 146, + 72, + 16, + 73, + 34, + 65, + 68, + 36, + 17, + 65, + 68, + 36, + 17, + 65, + 36, + 18, + 137, + 36, + 17, + 65, + 36, + 18, + 137, + 36, + 17, + 65, + 36, + 18, + 137, + 136, + 36, + 34, + 136, + 36, + 145, + 8, + 145, + 68, + 132, + 72, + 36, + 18, + 65, + 36, + 17, + 65, + 36, + 18, + 137, + 32, + 146, + 136, + 32, + 18, + 137, + 68, + 136, + 68, + 18, + 17, + 17, + 73, + 68, + 132, + 72, + 34, + 66, + 4, + 145, + 68, + 132, + 8, + 34, + 137, + 8, + 9, + 34, + 137, + 136, + 16, + 137, + 36, + 34, + 68, + 136, + 68, + 18, + 17, + 34, + 68, + 34, + 137, + 136, + 32, + 18, + 137, + 68, + 18, + 17, + 34, + 68, + 34, + 145, + 72, + 34, + 66, + 4, + 145, + 72, + 36, + 146, + 136, + 16, + 137, + 32, + 18, + 137, + 68, + 18, + 17, + 34, + 9, + 145, + 72, + 36, + 146, + 136, + 16, + 137, + 32, + 18, + 137, + 68, + 18, + 17, + 34, + 17, + 68, + 34, + 145, + 36, + 17, + 17, + 145, + 68, + 68, + 136, + 36, + 34, + 68, + 16, + 73, + 68, + 72, + 16, + 73, + 68, + 136, + 32, + 146, + 136, + 8, + 34, + 137, + 8, + 17, + 34, + 145, + 68, + 132, + 8, + 145, + 72, + 34, + 34, + 68, + 34, + 145, + 72, + 34, + 66, + 132, + 72, + 36, + 146, + 36, + 34, + 68, + 16, + 137, + 68, + 34, + 137, + 8, + 145, + 8, + 34, + 145, + 72, + 146, + 136, + 16, + 137, + 16, + 137, + 68, + 34, + 137, + 8, + 145, + 8, + 145, + 72, + 36, + 146, + 136, + 16, + 137, + 32, + 18, + 137, + 68, + 18, + 17, + 17, + 73, + 68, + 132, + 72, + 34, + 66, + 130, + 36, + 17, + 33, + 130, + 72, + 34, + 66, + 4, + 145, + 68, + 68, + 136, + 68, + 18, + 17, + 34, + 68, + 34, + 137, + 8, + 17, + 34, + 145, + 68, + 68, + 136, + 36, + 145, + 72, + 34, + 66, + 4, + 145, + 72, + 146, + 136, + 16, + 33, + 18, + 137, + 68, + 18, + 17, + 34, + 9, + 145, + 72, + 36, + 73, + 68, + 136, + 68, + 136, + 68, + 146, + 72, + 18, + 33, + 137, + 16, + 137, + 36, + 145, + 36, + 66, + 36, + 130, + 72, + 36, + 146, + 100, + 0 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 0, + 4261215226, + 10923082812680175100, + 196608, + 0, + 0, + 0, + 0, + 10923082812680175100, + 0, + 180 + ], + "expected-pc": 11, + "expected-memory": [ + { + "address": 65538, + "contents": [ + 3 + ] + }, + { + "address": 196609, + "contents": [ + 154, + 165, + 161, + 162, + 170, + 171, + 174, + 175, + 178, + 179, + 182, + 183, + 184, + 185, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24 + ] + }, + { + "address": 196634, + "contents": [ + 8, + 16, + 24, + 216, + 217, + 218, + 219, + 215, + 211, + 207, + 53, + 54, + 55, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 96, + 104, + 112, + 120, + 250, + 251, + 252, + 253, + 249, + 245, + 241, + 149, + 150, + 151, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80 + ] + } + ], + "expected-gas": 8261 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_or.json b/pvm/programs/riscv_rv64ui_or.json new file mode 100644 index 00000000..76ac63c5 --- /dev/null +++ b/pvm/programs/riscv_rv64ui_or.json @@ -0,0 +1,1552 @@ +{ + "name": "riscv_rv64ui_or", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 133, + 57, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 8, + 0, + 0, + 1, + 131, + 136, + 1, + 255, + 151, + 136, + 16, + 149, + 136, + 0, + 255, + 51, + 9, + 0, + 16, + 15, + 15, + 131, + 153, + 15, + 255, + 212, + 152, + 11, + 51, + 4, + 0, + 16, + 131, + 68, + 241, + 151, + 68, + 20, + 149, + 68, + 15, + 255, + 171, + 75, + 250, + 4, + 51, + 5, + 3, + 51, + 8, + 0, + 16, + 240, + 15, + 131, + 136, + 240, + 51, + 9, + 0, + 16, + 15, + 131, + 153, + 15, + 255, + 151, + 153, + 12, + 149, + 153, + 240, + 0, + 212, + 152, + 11, + 51, + 4, + 0, + 0, + 1, + 131, + 68, + 241, + 151, + 68, + 16, + 149, + 68, + 240, + 171, + 75, + 201, + 4, + 51, + 5, + 4, + 51, + 8, + 0, + 0, + 255, + 0, + 131, + 136, + 255, + 0, + 51, + 9, + 0, + 16, + 15, + 15, + 131, + 153, + 15, + 255, + 212, + 152, + 11, + 51, + 4, + 0, + 16, + 255, + 15, + 131, + 68, + 255, + 171, + 75, + 162, + 4, + 51, + 5, + 5, + 51, + 8, + 0, + 0, + 15, + 131, + 136, + 255, + 0, + 151, + 136, + 12, + 149, + 136, + 15, + 51, + 9, + 0, + 16, + 15, + 131, + 153, + 15, + 255, + 151, + 153, + 12, + 149, + 153, + 240, + 0, + 212, + 152, + 11, + 51, + 4, + 0, + 16, + 15, + 131, + 68, + 255, + 151, + 68, + 12, + 149, + 68, + 255, + 0, + 171, + 75, + 106, + 4, + 51, + 5, + 6, + 51, + 8, + 0, + 0, + 1, + 131, + 136, + 1, + 255, + 151, + 136, + 16, + 149, + 136, + 0, + 255, + 51, + 9, + 0, + 16, + 15, + 15, + 131, + 153, + 15, + 255, + 212, + 152, + 8, + 51, + 4, + 0, + 16, + 131, + 68, + 241, + 151, + 68, + 20, + 149, + 68, + 15, + 255, + 171, + 72, + 56, + 4, + 51, + 5, + 7, + 51, + 8, + 0, + 0, + 1, + 131, + 136, + 1, + 255, + 151, + 136, + 16, + 149, + 136, + 0, + 255, + 51, + 9, + 0, + 16, + 15, + 15, + 131, + 153, + 15, + 255, + 212, + 152, + 9, + 51, + 4, + 0, + 16, + 131, + 68, + 241, + 151, + 68, + 20, + 149, + 68, + 15, + 255, + 171, + 73, + 6, + 4, + 51, + 5, + 8, + 51, + 8, + 0, + 0, + 1, + 131, + 136, + 1, + 255, + 151, + 136, + 16, + 149, + 136, + 0, + 255, + 212, + 136, + 8, + 51, + 4, + 0, + 0, + 1, + 131, + 68, + 1, + 255, + 151, + 68, + 16, + 149, + 68, + 0, + 255, + 171, + 72, + 220, + 3, + 51, + 5, + 9, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 1, + 255, + 151, + 0, + 16, + 149, + 0, + 0, + 255, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 212, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 219, + 51, + 4, + 0, + 16, + 131, + 68, + 241, + 151, + 68, + 20, + 149, + 68, + 15, + 255, + 171, + 67, + 156, + 3, + 51, + 5, + 10, + 51, + 10, + 1, + 51, + 0, + 0, + 16, + 240, + 15, + 131, + 0, + 240, + 51, + 1, + 0, + 16, + 15, + 131, + 17, + 15, + 255, + 151, + 17, + 12, + 149, + 17, + 240, + 0, + 212, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 220, + 51, + 4, + 0, + 0, + 1, + 131, + 68, + 241, + 151, + 68, + 16, + 149, + 68, + 240, + 171, + 67, + 93, + 3, + 51, + 5, + 11, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 255, + 0, + 131, + 0, + 255, + 0, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 212, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 225, + 51, + 4, + 0, + 16, + 255, + 15, + 131, + 68, + 255, + 171, + 67, + 40, + 3, + 51, + 5, + 12, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 1, + 255, + 151, + 0, + 16, + 149, + 0, + 0, + 255, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 212, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 221, + 51, + 4, + 0, + 16, + 131, + 68, + 241, + 151, + 68, + 20, + 149, + 68, + 15, + 255, + 171, + 75, + 234, + 2, + 51, + 5, + 13, + 51, + 10, + 1, + 51, + 0, + 0, + 16, + 240, + 15, + 131, + 0, + 240, + 51, + 1, + 0, + 16, + 15, + 131, + 17, + 15, + 255, + 151, + 17, + 12, + 149, + 17, + 240, + 0, + 212, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 222, + 51, + 4, + 0, + 0, + 1, + 131, + 68, + 241, + 151, + 68, + 16, + 149, + 68, + 240, + 171, + 75, + 173, + 2, + 51, + 5, + 14, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 255, + 0, + 131, + 0, + 255, + 0, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 212, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 227, + 51, + 4, + 0, + 16, + 255, + 15, + 131, + 68, + 255, + 171, + 75, + 122, + 2, + 51, + 5, + 15, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 1, + 255, + 151, + 0, + 16, + 149, + 0, + 0, + 255, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 212, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 221, + 51, + 4, + 0, + 16, + 131, + 68, + 241, + 151, + 68, + 20, + 149, + 68, + 15, + 255, + 171, + 75, + 60, + 2, + 51, + 5, + 16, + 51, + 10, + 1, + 51, + 0, + 0, + 16, + 240, + 15, + 131, + 0, + 240, + 51, + 1, + 0, + 16, + 15, + 131, + 17, + 15, + 255, + 151, + 17, + 12, + 149, + 17, + 240, + 0, + 212, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 222, + 51, + 4, + 0, + 0, + 1, + 131, + 68, + 241, + 151, + 68, + 16, + 149, + 68, + 240, + 171, + 75, + 255, + 1, + 51, + 5, + 17, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 255, + 0, + 131, + 0, + 255, + 0, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 212, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 227, + 51, + 4, + 0, + 16, + 255, + 15, + 131, + 68, + 255, + 171, + 75, + 204, + 1, + 51, + 5, + 18, + 51, + 10, + 1, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 1, + 255, + 151, + 0, + 16, + 149, + 0, + 0, + 255, + 212, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 221, + 51, + 4, + 0, + 16, + 131, + 68, + 241, + 151, + 68, + 20, + 149, + 68, + 15, + 255, + 171, + 75, + 142, + 1, + 51, + 5, + 19, + 51, + 10, + 1, + 51, + 1, + 0, + 16, + 15, + 131, + 17, + 15, + 255, + 151, + 17, + 12, + 149, + 17, + 240, + 0, + 51, + 0, + 0, + 16, + 240, + 15, + 131, + 0, + 240, + 212, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 222, + 51, + 4, + 0, + 0, + 1, + 131, + 68, + 241, + 151, + 68, + 16, + 149, + 68, + 240, + 171, + 75, + 81, + 1, + 51, + 5, + 20, + 51, + 10, + 1, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 51, + 0, + 0, + 0, + 255, + 0, + 131, + 0, + 255, + 0, + 212, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 227, + 51, + 4, + 0, + 16, + 255, + 15, + 131, + 68, + 255, + 171, + 75, + 30, + 1, + 51, + 5, + 21, + 51, + 10, + 1, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 1, + 255, + 151, + 0, + 16, + 149, + 0, + 0, + 255, + 212, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 221, + 51, + 4, + 0, + 16, + 131, + 68, + 241, + 151, + 68, + 20, + 149, + 68, + 15, + 255, + 171, + 75, + 224, + 0, + 51, + 5, + 22, + 51, + 10, + 1, + 51, + 1, + 0, + 16, + 15, + 131, + 17, + 15, + 255, + 151, + 17, + 12, + 149, + 17, + 240, + 0, + 51, + 0, + 0, + 16, + 240, + 15, + 131, + 0, + 240, + 212, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 222, + 51, + 4, + 0, + 0, + 1, + 131, + 68, + 241, + 151, + 68, + 16, + 149, + 68, + 240, + 171, + 75, + 163, + 0, + 51, + 5, + 23, + 51, + 10, + 1, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 51, + 0, + 0, + 0, + 255, + 0, + 131, + 0, + 255, + 0, + 212, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 227, + 51, + 4, + 0, + 16, + 255, + 15, + 131, + 68, + 255, + 171, + 75, + 112, + 51, + 5, + 24, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 1, + 255, + 151, + 0, + 16, + 149, + 0, + 0, + 255, + 134, + 1, + 51, + 4, + 0, + 0, + 1, + 131, + 68, + 1, + 255, + 151, + 68, + 16, + 149, + 68, + 0, + 255, + 171, + 65, + 72, + 51, + 5, + 25, + 51, + 0, + 0, + 0, + 255, + 0, + 131, + 0, + 255, + 0, + 134, + 1, + 51, + 4, + 0, + 0, + 255, + 0, + 131, + 68, + 255, + 0, + 171, + 65, + 44, + 51, + 5, + 26, + 51, + 0, + 51, + 4, + 171, + 64, + 34, + 51, + 5, + 27, + 51, + 0, + 0, + 16, + 17, + 17, + 131, + 0, + 17, + 1, + 51, + 1, + 0, + 32, + 34, + 34, + 131, + 17, + 34, + 2, + 51, + 4, + 82, + 4, + 6, + 82, + 5, + 4, + 0, + 40, + 202, + 250, + 33, + 41, + 33, + 18, + 65, + 36, + 146, + 136, + 4, + 9, + 145, + 72, + 72, + 18, + 9, + 34, + 136, + 4, + 137, + 132, + 72, + 66, + 36, + 18, + 146, + 136, + 132, + 72, + 4, + 145, + 72, + 34, + 18, + 34, + 17, + 68, + 34, + 137, + 72, + 136, + 68, + 66, + 36, + 34, + 13, + 145, + 8, + 34, + 37, + 137, + 36, + 34, + 13, + 18, + 34, + 145, + 146, + 132, + 36, + 145, + 6, + 17, + 68, + 74, + 18, + 36, + 210, + 16, + 137, + 32, + 146, + 36, + 146, + 136, + 52, + 72, + 136, + 68, + 146, + 132, + 36, + 145, + 6, + 17, + 68, + 146, + 4, + 137, + 52, + 68, + 34, + 136, + 36, + 137, + 36, + 34, + 13, + 18, + 34, + 145, + 36, + 33, + 73, + 164, + 65, + 4, + 145, + 36, + 65, + 34, + 13, + 34, + 68, + 34, + 73, + 34, + 137, + 72, + 67, + 36, + 130, + 36, + 73, + 72, + 18, + 105, + 16, + 65, + 36, + 73, + 144, + 72, + 131, + 8, + 145, + 72, + 146, + 72, + 34, + 210, + 16, + 137, + 32, + 73, + 18, + 146, + 68, + 26, + 68, + 16, + 73, + 18, + 36, + 9, + 145, + 40, + 68, + 34, + 9, + 162, + 32, + 146, + 74, + 130, + 8, + 162, + 100, + 0 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 572662306, + 2, + 268374015, + 0, + 27, + 0, + 0, + 4278255360, + 4279238415, + 2, + 268374015, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9482 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_ori.json b/pvm/programs/riscv_rv64ui_ori.json new file mode 100644 index 00000000..ea4e4083 --- /dev/null +++ b/pvm/programs/riscv_rv64ui_ori.json @@ -0,0 +1,562 @@ +{ + "name": "riscv_rv64ui_ori", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 129, + 201, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 10, + 0, + 0, + 1, + 255, + 131, + 170, + 0, + 255, + 134, + 171, + 15, + 255, + 51, + 4, + 15, + 255, + 171, + 75, + 163, + 1, + 51, + 5, + 3, + 51, + 10, + 0, + 16, + 240, + 15, + 131, + 170, + 240, + 134, + 171, + 240, + 0, + 51, + 4, + 0, + 16, + 240, + 15, + 131, + 68, + 240, + 171, + 75, + 134, + 1, + 51, + 5, + 4, + 51, + 10, + 0, + 0, + 255, + 0, + 131, + 170, + 255, + 0, + 134, + 171, + 15, + 7, + 51, + 4, + 0, + 0, + 255, + 0, + 131, + 68, + 255, + 7, + 171, + 75, + 103, + 1, + 51, + 5, + 5, + 51, + 10, + 0, + 240, + 15, + 240, + 131, + 170, + 15, + 134, + 171, + 240, + 0, + 51, + 4, + 0, + 240, + 15, + 240, + 131, + 68, + 255, + 0, + 171, + 75, + 73, + 1, + 51, + 5, + 6, + 51, + 8, + 0, + 0, + 1, + 131, + 136, + 1, + 255, + 151, + 136, + 16, + 149, + 136, + 0, + 255, + 134, + 136, + 240, + 0, + 51, + 4, + 0, + 0, + 1, + 131, + 68, + 1, + 255, + 151, + 68, + 16, + 149, + 68, + 240, + 171, + 72, + 31, + 1, + 51, + 5, + 7, + 51, + 9, + 1, + 51, + 0, + 0, + 16, + 240, + 15, + 131, + 0, + 240, + 134, + 11, + 240, + 0, + 100, + 179, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 235, + 51, + 4, + 0, + 16, + 240, + 15, + 131, + 68, + 240, + 171, + 67, + 244, + 0, + 51, + 5, + 8, + 51, + 9, + 1, + 51, + 0, + 0, + 0, + 255, + 0, + 131, + 0, + 255, + 0, + 134, + 11, + 15, + 7, + 100, + 179, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 234, + 51, + 4, + 0, + 0, + 255, + 0, + 131, + 68, + 255, + 7, + 171, + 67, + 199, + 0, + 51, + 5, + 9, + 51, + 9, + 1, + 51, + 0, + 0, + 240, + 15, + 240, + 131, + 0, + 15, + 134, + 11, + 240, + 0, + 100, + 179, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 235, + 51, + 4, + 0, + 240, + 15, + 240, + 131, + 68, + 255, + 0, + 171, + 67, + 155, + 0, + 51, + 5, + 10, + 51, + 9, + 1, + 51, + 0, + 0, + 16, + 240, + 15, + 131, + 0, + 240, + 134, + 11, + 240, + 0, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 237, + 51, + 4, + 0, + 16, + 240, + 15, + 131, + 68, + 240, + 171, + 75, + 114, + 51, + 5, + 11, + 51, + 9, + 1, + 51, + 0, + 0, + 0, + 255, + 0, + 131, + 0, + 255, + 0, + 134, + 11, + 15, + 255, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 236, + 51, + 4, + 255, + 171, + 75, + 79, + 51, + 5, + 12, + 51, + 9, + 1, + 51, + 0, + 0, + 240, + 15, + 240, + 131, + 0, + 15, + 134, + 11, + 240, + 0, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 237, + 51, + 4, + 0, + 240, + 15, + 240, + 131, + 68, + 255, + 0, + 171, + 75, + 38, + 51, + 5, + 13, + 51, + 0, + 240, + 0, + 51, + 4, + 240, + 0, + 171, + 64, + 24, + 51, + 5, + 14, + 51, + 0, + 0, + 0, + 255, + 0, + 131, + 0, + 255, + 0, + 51, + 4, + 82, + 4, + 6, + 82, + 5, + 4, + 0, + 40, + 58, + 254, + 33, + 41, + 65, + 68, + 68, + 130, + 68, + 144, + 72, + 16, + 17, + 68, + 36, + 72, + 4, + 17, + 9, + 145, + 136, + 16, + 73, + 164, + 65, + 162, + 36, + 65, + 34, + 13, + 34, + 74, + 18, + 68, + 164, + 65, + 162, + 36, + 65, + 68, + 26, + 36, + 146, + 4, + 73, + 26, + 68, + 36, + 73, + 210, + 32, + 145, + 36, + 136, + 36, + 34, + 9, + 162, + 100, + 0 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 2, + 18446744073442160895, + 0, + 14, + 0, + 0, + 4278255600, + 2, + 18446744073442160655, + 18446744073442160895, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9834 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_sb.json b/pvm/programs/riscv_rv64ui_sb.json new file mode 100644 index 00000000..eeaf6912 --- /dev/null +++ b/pvm/programs/riscv_rv64ui_sb.json @@ -0,0 +1,1184 @@ +{ + "name": "riscv_rv64ui_sb", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [ + { + "address": 65536, + "length": 4096, + "is-writable": false + }, + { + "address": 196608, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 65538, + "contents": [ + 3 + ] + }, + { + "address": 65544, + "contents": [ + 2 + ] + }, + { + "address": 65552, + "contents": [ + 4 + ] + }, + { + "address": 65560, + "contents": [ + 6 + ] + }, + { + "address": 65568, + "contents": [ + 8 + ] + }, + { + "address": 65576, + "contents": [ + 7 + ] + }, + { + "address": 65578, + "contents": [ + 3 + ] + }, + { + "address": 65584, + "contents": [ + 10 + ] + }, + { + "address": 65592, + "contents": [ + 12 + ] + }, + { + "address": 65600, + "contents": [ + 14 + ] + }, + { + "address": 65608, + "contents": [ + 16 + ] + }, + { + "address": 65616, + "contents": [ + 8 + ] + }, + { + "address": 65618, + "contents": [ + 3 + ] + }, + { + "address": 65624, + "contents": [ + 9 + ] + }, + { + "address": 65626, + "contents": [ + 3 + ] + }, + { + "address": 196608, + "contents": [ + 239, + 239, + 239, + 239, + 239, + 239, + 239, + 239, + 239, + 239 + ] + } + ], + "initial-gas": 10000, + "program": [ + 8, + 2, + 131, + 30, + 35, + 0, + 68, + 0, + 105, + 0, + 143, + 0, + 177, + 0, + 210, + 0, + 243, + 0, + 19, + 1, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 58, + 1, + 0, + 0, + 1, + 51, + 0, + 170, + 58, + 12, + 8, + 0, + 1, + 120, + 16, + 125, + 27, + 40, + 5, + 100, + 11, + 1, + 51, + 4, + 170, + 171, + 75, + 241, + 2, + 51, + 5, + 3, + 58, + 1, + 0, + 0, + 1, + 51, + 0, + 58, + 12, + 16, + 0, + 1, + 120, + 16, + 1, + 125, + 27, + 1, + 40, + 5, + 100, + 11, + 1, + 51, + 4, + 171, + 75, + 209, + 2, + 51, + 5, + 4, + 58, + 1, + 0, + 0, + 1, + 51, + 0, + 0, + 240, + 131, + 0, + 160, + 58, + 12, + 24, + 0, + 1, + 120, + 16, + 2, + 127, + 27, + 2, + 40, + 5, + 100, + 11, + 1, + 51, + 4, + 0, + 240, + 131, + 68, + 160, + 171, + 75, + 167, + 2, + 51, + 5, + 5, + 58, + 1, + 0, + 0, + 1, + 51, + 0, + 10, + 58, + 12, + 32, + 0, + 1, + 120, + 16, + 3, + 125, + 27, + 3, + 40, + 5, + 100, + 11, + 1, + 51, + 4, + 10, + 171, + 75, + 133, + 2, + 51, + 5, + 6, + 58, + 1, + 40, + 0, + 1, + 51, + 0, + 170, + 58, + 12, + 48, + 0, + 1, + 120, + 16, + 253, + 125, + 27, + 253, + 40, + 5, + 100, + 11, + 1, + 51, + 4, + 170, + 171, + 75, + 99, + 2, + 51, + 5, + 7, + 58, + 1, + 40, + 0, + 1, + 51, + 0, + 58, + 12, + 56, + 0, + 1, + 120, + 16, + 254, + 125, + 27, + 254, + 40, + 5, + 100, + 11, + 1, + 51, + 4, + 171, + 75, + 67, + 2, + 51, + 5, + 8, + 58, + 1, + 40, + 0, + 1, + 51, + 0, + 160, + 58, + 12, + 64, + 0, + 1, + 120, + 16, + 255, + 125, + 27, + 255, + 40, + 5, + 100, + 11, + 1, + 51, + 4, + 160, + 171, + 75, + 33, + 2, + 51, + 5, + 9, + 58, + 1, + 40, + 0, + 1, + 51, + 0, + 10, + 58, + 12, + 72, + 0, + 1, + 120, + 16, + 125, + 27, + 40, + 5, + 100, + 11, + 1, + 51, + 4, + 10, + 171, + 75, + 1, + 2, + 51, + 5, + 10, + 58, + 0, + 80, + 0, + 1, + 51, + 1, + 0, + 80, + 52, + 18, + 131, + 17, + 120, + 6, + 149, + 3, + 224, + 120, + 49, + 32, + 125, + 2, + 51, + 4, + 120, + 171, + 66, + 224, + 1, + 51, + 5, + 11, + 58, + 0, + 80, + 0, + 1, + 51, + 1, + 0, + 48, + 131, + 17, + 152, + 0, + 149, + 0, + 250, + 120, + 1, + 7, + 58, + 3, + 88, + 0, + 1, + 125, + 50, + 51, + 4, + 152, + 171, + 66, + 188, + 1, + 51, + 5, + 12, + 51, + 3, + 1, + 51, + 10, + 221, + 58, + 9, + 0, + 0, + 1, + 120, + 154, + 125, + 155, + 51, + 4, + 221, + 171, + 75, + 163, + 1, + 149, + 51, + 1, + 51, + 2, + 2, + 171, + 35, + 231, + 51, + 5, + 13, + 51, + 3, + 1, + 51, + 10, + 205, + 58, + 9, + 0, + 0, + 1, + 120, + 154, + 1, + 125, + 155, + 1, + 51, + 4, + 205, + 171, + 75, + 127, + 1, + 149, + 51, + 1, + 51, + 2, + 2, + 171, + 35, + 229, + 51, + 5, + 14, + 51, + 3, + 1, + 51, + 10, + 204, + 58, + 9, + 0, + 0, + 1, + 120, + 154, + 2, + 125, + 155, + 2, + 51, + 4, + 204, + 171, + 75, + 91, + 1, + 149, + 51, + 1, + 51, + 2, + 2, + 171, + 35, + 229, + 51, + 5, + 15, + 51, + 3, + 1, + 51, + 10, + 188, + 58, + 9, + 0, + 0, + 1, + 120, + 154, + 3, + 125, + 155, + 3, + 51, + 4, + 188, + 171, + 75, + 55, + 1, + 149, + 51, + 1, + 51, + 2, + 2, + 171, + 35, + 229, + 51, + 5, + 16, + 51, + 3, + 1, + 51, + 10, + 187, + 58, + 9, + 0, + 0, + 1, + 120, + 154, + 4, + 125, + 155, + 4, + 51, + 4, + 187, + 171, + 75, + 19, + 1, + 149, + 51, + 1, + 51, + 2, + 2, + 171, + 35, + 229, + 51, + 5, + 17, + 51, + 3, + 1, + 51, + 10, + 171, + 58, + 9, + 0, + 0, + 1, + 120, + 154, + 5, + 125, + 155, + 5, + 51, + 4, + 171, + 171, + 75, + 239, + 0, + 149, + 51, + 1, + 51, + 2, + 2, + 171, + 35, + 229, + 51, + 5, + 18, + 51, + 3, + 1, + 58, + 1, + 0, + 0, + 1, + 51, + 0, + 51, + 120, + 16, + 125, + 27, + 51, + 4, + 51, + 171, + 75, + 205, + 0, + 149, + 51, + 1, + 51, + 2, + 2, + 171, + 35, + 231, + 51, + 5, + 19, + 51, + 3, + 1, + 58, + 1, + 0, + 0, + 1, + 51, + 0, + 35, + 120, + 16, + 1, + 125, + 27, + 1, + 51, + 4, + 35, + 171, + 75, + 169, + 0, + 149, + 51, + 1, + 51, + 2, + 2, + 171, + 35, + 229, + 51, + 5, + 20, + 51, + 3, + 1, + 58, + 1, + 0, + 0, + 1, + 51, + 0, + 34, + 120, + 16, + 2, + 125, + 27, + 2, + 51, + 4, + 34, + 171, + 75, + 133, + 0, + 149, + 51, + 1, + 51, + 2, + 2, + 171, + 35, + 229, + 51, + 5, + 21, + 51, + 3, + 1, + 58, + 1, + 0, + 0, + 1, + 51, + 0, + 18, + 120, + 16, + 3, + 125, + 27, + 3, + 51, + 4, + 18, + 171, + 75, + 97, + 149, + 51, + 1, + 51, + 2, + 2, + 171, + 35, + 230, + 51, + 5, + 22, + 51, + 3, + 1, + 58, + 1, + 0, + 0, + 1, + 51, + 0, + 17, + 120, + 16, + 4, + 125, + 27, + 4, + 51, + 4, + 17, + 171, + 75, + 62, + 149, + 51, + 1, + 51, + 2, + 2, + 171, + 35, + 230, + 51, + 5, + 23, + 51, + 3, + 1, + 58, + 1, + 0, + 0, + 1, + 51, + 0, + 1, + 120, + 16, + 5, + 125, + 27, + 5, + 51, + 4, + 1, + 171, + 75, + 27, + 149, + 51, + 1, + 51, + 2, + 2, + 171, + 35, + 230, + 51, + 7, + 239, + 0, + 58, + 8, + 0, + 0, + 1, + 120, + 135, + 3, + 82, + 5, + 4, + 0, + 40, + 229, + 252, + 33, + 41, + 33, + 161, + 106, + 34, + 161, + 144, + 212, + 34, + 33, + 18, + 146, + 26, + 137, + 132, + 132, + 164, + 38, + 18, + 18, + 146, + 154, + 72, + 40, + 36, + 181, + 72, + 72, + 72, + 106, + 34, + 33, + 161, + 106, + 34, + 33, + 136, + 164, + 68, + 66, + 68, + 18, + 74, + 164, + 9, + 149, + 72, + 146, + 38, + 36, + 137, + 36, + 105, + 66, + 146, + 72, + 146, + 38, + 36, + 137, + 36, + 105, + 66, + 146, + 72, + 146, + 38, + 36, + 137, + 36, + 105, + 72, + 37, + 146, + 164, + 33, + 73, + 34, + 73, + 26, + 146, + 36, + 146, + 164, + 33, + 73, + 146, + 36, + 13, + 73, + 146, + 36, + 105, + 72, + 146, + 36, + 137, + 144, + 12 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 196608, + 2, + 2, + 1, + 23, + 0, + 239, + 196608, + 196608, + 18446744073709551531, + 1, + 16 + ], + "expected-pc": 11, + "expected-memory": [ + { + "address": 65538, + "contents": [ + 3 + ] + }, + { + "address": 65544, + "contents": [ + 2 + ] + }, + { + "address": 65552, + "contents": [ + 4 + ] + }, + { + "address": 65560, + "contents": [ + 6 + ] + }, + { + "address": 65568, + "contents": [ + 8 + ] + }, + { + "address": 65576, + "contents": [ + 7 + ] + }, + { + "address": 65578, + "contents": [ + 3 + ] + }, + { + "address": 65584, + "contents": [ + 10 + ] + }, + { + "address": 65592, + "contents": [ + 12 + ] + }, + { + "address": 65600, + "contents": [ + 14 + ] + }, + { + "address": 65608, + "contents": [ + 16 + ] + }, + { + "address": 65616, + "contents": [ + 8 + ] + }, + { + "address": 65618, + "contents": [ + 3 + ] + }, + { + "address": 65624, + "contents": [ + 9 + ] + }, + { + "address": 65626, + "contents": [ + 3 + ] + }, + { + "address": 196608, + "contents": [ + 51, + 35, + 34, + 239, + 17, + 1, + 160, + 10, + 120, + 152 + ] + } + ], + "expected-gas": 9646 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_sd.json b/pvm/programs/riscv_rv64ui_sd.json new file mode 100644 index 00000000..620dcb2b --- /dev/null +++ b/pvm/programs/riscv_rv64ui_sd.json @@ -0,0 +1,2017 @@ +{ + "name": "riscv_rv64ui_sd", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [ + { + "address": 65536, + "length": 4096, + "is-writable": false + }, + { + "address": 196608, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 65538, + "contents": [ + 3 + ] + }, + { + "address": 65544, + "contents": [ + 2 + ] + }, + { + "address": 65552, + "contents": [ + 4 + ] + }, + { + "address": 65560, + "contents": [ + 6 + ] + }, + { + "address": 65568, + "contents": [ + 8 + ] + }, + { + "address": 65576, + "contents": [ + 56 + ] + }, + { + "address": 65578, + "contents": [ + 3 + ] + }, + { + "address": 65584, + "contents": [ + 10 + ] + }, + { + "address": 65592, + "contents": [ + 12 + ] + }, + { + "address": 65600, + "contents": [ + 14 + ] + }, + { + "address": 65608, + "contents": [ + 16 + ] + }, + { + "address": 65616, + "contents": [ + 64 + ] + }, + { + "address": 65618, + "contents": [ + 3 + ] + }, + { + "address": 65624, + "contents": [ + 72 + ] + }, + { + "address": 65626, + "contents": [ + 3 + ] + }, + { + "address": 196608, + "contents": [ + 239, + 190, + 173, + 222, + 239, + 190, + 173, + 222, + 239, + 190, + 173, + 222, + 239, + 190, + 173, + 222, + 239, + 190, + 173, + 222, + 239, + 190, + 173, + 222, + 239, + 190, + 173, + 222, + 239, + 190, + 173, + 222, + 239, + 190, + 173, + 222, + 239, + 190, + 173, + 222, + 239, + 190, + 173, + 222, + 239, + 190, + 173, + 222, + 239, + 190, + 173, + 222, + 239, + 190, + 173, + 222, + 239, + 190, + 173, + 222, + 239, + 190, + 173, + 222, + 239, + 190, + 173, + 222, + 239, + 190, + 173, + 222, + 239, + 190, + 173, + 222, + 239, + 190, + 173, + 222 + ] + } + ], + "initial-gas": 10000, + "program": [ + 8, + 2, + 133, + 122, + 53, + 0, + 129, + 0, + 212, + 0, + 38, + 1, + 113, + 1, + 189, + 1, + 16, + 2, + 96, + 2, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 58, + 1, + 0, + 0, + 1, + 51, + 0, + 0, + 0, + 85, + 131, + 0, + 85, + 151, + 0, + 16, + 149, + 0, + 85, + 151, + 0, + 17, + 149, + 0, + 170, + 0, + 58, + 12, + 8, + 0, + 1, + 123, + 16, + 130, + 27, + 40, + 5, + 100, + 11, + 1, + 51, + 4, + 0, + 0, + 85, + 131, + 68, + 85, + 151, + 68, + 16, + 149, + 68, + 85, + 151, + 68, + 17, + 149, + 68, + 170, + 0, + 171, + 75, + 41, + 5, + 51, + 5, + 3, + 58, + 1, + 0, + 0, + 1, + 51, + 0, + 0, + 0, + 213, + 131, + 0, + 85, + 151, + 0, + 16, + 149, + 0, + 85, + 151, + 0, + 13, + 149, + 0, + 11, + 151, + 0, + 12, + 149, + 0, + 0, + 250, + 58, + 12, + 16, + 0, + 1, + 123, + 16, + 8, + 130, + 27, + 8, + 40, + 5, + 100, + 11, + 1, + 51, + 4, + 0, + 0, + 213, + 131, + 68, + 85, + 151, + 68, + 16, + 149, + 68, + 85, + 151, + 68, + 13, + 149, + 68, + 11, + 151, + 68, + 12, + 149, + 68, + 0, + 250, + 171, + 75, + 215, + 4, + 51, + 5, + 4, + 58, + 1, + 0, + 0, + 1, + 51, + 0, + 0, + 0, + 85, + 131, + 0, + 85, + 151, + 0, + 13, + 149, + 0, + 11, + 151, + 0, + 12, + 149, + 0, + 1, + 250, + 151, + 0, + 12, + 149, + 0, + 160, + 250, + 58, + 12, + 24, + 0, + 1, + 123, + 16, + 16, + 130, + 27, + 16, + 40, + 5, + 100, + 11, + 1, + 51, + 4, + 0, + 0, + 85, + 131, + 68, + 85, + 151, + 68, + 13, + 149, + 68, + 11, + 151, + 68, + 12, + 149, + 68, + 1, + 250, + 151, + 68, + 12, + 149, + 68, + 160, + 250, + 171, + 75, + 131, + 4, + 51, + 5, + 5, + 58, + 1, + 0, + 0, + 1, + 51, + 0, + 0, + 0, + 253, + 131, + 0, + 85, + 151, + 0, + 16, + 149, + 0, + 85, + 151, + 0, + 16, + 149, + 0, + 85, + 151, + 0, + 13, + 149, + 0, + 10, + 58, + 12, + 32, + 0, + 1, + 123, + 16, + 24, + 130, + 27, + 24, + 40, + 5, + 100, + 11, + 1, + 51, + 4, + 0, + 0, + 253, + 131, + 68, + 85, + 151, + 68, + 16, + 149, + 68, + 85, + 151, + 68, + 16, + 149, + 68, + 85, + 151, + 68, + 13, + 149, + 68, + 10, + 171, + 75, + 51, + 4, + 51, + 5, + 6, + 58, + 1, + 40, + 0, + 1, + 51, + 0, + 0, + 0, + 85, + 131, + 0, + 85, + 151, + 0, + 16, + 149, + 0, + 85, + 151, + 0, + 17, + 149, + 0, + 170, + 0, + 58, + 12, + 48, + 0, + 1, + 123, + 16, + 232, + 130, + 27, + 232, + 40, + 5, + 100, + 11, + 1, + 51, + 4, + 0, + 0, + 85, + 131, + 68, + 85, + 151, + 68, + 16, + 149, + 68, + 85, + 151, + 68, + 17, + 149, + 68, + 170, + 0, + 171, + 75, + 237, + 3, + 51, + 5, + 7, + 58, + 1, + 40, + 0, + 1, + 51, + 0, + 0, + 0, + 213, + 131, + 0, + 85, + 151, + 0, + 16, + 149, + 0, + 85, + 151, + 0, + 13, + 149, + 0, + 11, + 151, + 0, + 12, + 149, + 0, + 0, + 250, + 58, + 12, + 56, + 0, + 1, + 123, + 16, + 240, + 130, + 27, + 240, + 40, + 5, + 100, + 11, + 1, + 51, + 4, + 0, + 0, + 213, + 131, + 68, + 85, + 151, + 68, + 16, + 149, + 68, + 85, + 151, + 68, + 13, + 149, + 68, + 11, + 151, + 68, + 12, + 149, + 68, + 0, + 250, + 171, + 75, + 155, + 3, + 51, + 5, + 8, + 58, + 1, + 40, + 0, + 1, + 51, + 0, + 0, + 0, + 85, + 131, + 0, + 85, + 151, + 0, + 13, + 149, + 0, + 11, + 151, + 0, + 12, + 149, + 0, + 1, + 250, + 151, + 0, + 12, + 149, + 0, + 160, + 250, + 58, + 12, + 64, + 0, + 1, + 123, + 16, + 248, + 130, + 27, + 248, + 40, + 5, + 100, + 11, + 1, + 51, + 4, + 0, + 0, + 85, + 131, + 68, + 85, + 151, + 68, + 13, + 149, + 68, + 11, + 151, + 68, + 12, + 149, + 68, + 1, + 250, + 151, + 68, + 12, + 149, + 68, + 160, + 250, + 171, + 75, + 71, + 3, + 51, + 5, + 9, + 58, + 1, + 40, + 0, + 1, + 51, + 0, + 0, + 0, + 253, + 131, + 0, + 85, + 151, + 0, + 16, + 149, + 0, + 85, + 151, + 0, + 16, + 149, + 0, + 85, + 151, + 0, + 13, + 149, + 0, + 10, + 58, + 12, + 72, + 0, + 1, + 123, + 16, + 130, + 27, + 40, + 5, + 100, + 11, + 1, + 51, + 4, + 0, + 0, + 253, + 131, + 68, + 85, + 151, + 68, + 16, + 149, + 68, + 85, + 151, + 68, + 16, + 149, + 68, + 85, + 151, + 68, + 13, + 149, + 68, + 10, + 171, + 75, + 249, + 2, + 51, + 5, + 10, + 58, + 0, + 80, + 0, + 1, + 51, + 1, + 0, + 112, + 36, + 131, + 17, + 173, + 248, + 151, + 17, + 14, + 149, + 17, + 9, + 252, + 151, + 17, + 13, + 149, + 17, + 69, + 3, + 151, + 17, + 12, + 149, + 17, + 120, + 6, + 149, + 7, + 224, + 123, + 113, + 32, + 130, + 2, + 51, + 4, + 0, + 112, + 36, + 131, + 68, + 173, + 248, + 151, + 68, + 14, + 149, + 68, + 9, + 252, + 151, + 68, + 13, + 149, + 68, + 69, + 3, + 151, + 68, + 12, + 149, + 68, + 120, + 6, + 171, + 66, + 169, + 2, + 51, + 5, + 11, + 58, + 0, + 80, + 0, + 1, + 51, + 1, + 0, + 64, + 176, + 0, + 131, + 17, + 97, + 2, + 151, + 17, + 12, + 149, + 17, + 11, + 3, + 151, + 17, + 15, + 149, + 17, + 19, + 2, + 151, + 17, + 12, + 149, + 17, + 152, + 0, + 149, + 0, + 253, + 123, + 1, + 11, + 58, + 7, + 88, + 0, + 1, + 130, + 114, + 51, + 4, + 0, + 64, + 176, + 0, + 131, + 68, + 97, + 2, + 151, + 68, + 12, + 149, + 68, + 11, + 3, + 151, + 68, + 15, + 149, + 68, + 19, + 2, + 151, + 68, + 12, + 149, + 68, + 152, + 0, + 171, + 66, + 82, + 2, + 51, + 5, + 12, + 51, + 7, + 1, + 51, + 10, + 0, + 208, + 187, + 10, + 131, + 170, + 221, + 252, + 58, + 9, + 0, + 0, + 1, + 123, + 154, + 130, + 155, + 51, + 4, + 0, + 208, + 187, + 10, + 131, + 68, + 221, + 252, + 171, + 75, + 43, + 2, + 149, + 119, + 1, + 51, + 2, + 2, + 171, + 39, + 217, + 51, + 5, + 13, + 51, + 7, + 1, + 51, + 10, + 0, + 192, + 171, + 10, + 131, + 170, + 205, + 252, + 58, + 9, + 0, + 0, + 1, + 123, + 154, + 8, + 130, + 155, + 8, + 51, + 4, + 0, + 192, + 171, + 10, + 131, + 68, + 205, + 252, + 171, + 75, + 249, + 1, + 149, + 119, + 1, + 51, + 2, + 2, + 171, + 39, + 215, + 51, + 5, + 14, + 51, + 7, + 1, + 51, + 10, + 0, + 192, + 170, + 13, + 131, + 170, + 204, + 251, + 58, + 9, + 0, + 0, + 1, + 123, + 154, + 16, + 130, + 155, + 16, + 51, + 4, + 0, + 192, + 170, + 13, + 131, + 68, + 204, + 251, + 171, + 75, + 199, + 1, + 149, + 119, + 1, + 51, + 2, + 2, + 171, + 39, + 215, + 51, + 5, + 15, + 51, + 7, + 1, + 51, + 10, + 0, + 176, + 218, + 13, + 131, + 170, + 188, + 251, + 58, + 9, + 0, + 0, + 1, + 123, + 154, + 24, + 130, + 155, + 24, + 51, + 4, + 0, + 176, + 218, + 13, + 131, + 68, + 188, + 251, + 171, + 75, + 149, + 1, + 149, + 119, + 1, + 51, + 2, + 2, + 171, + 39, + 215, + 51, + 5, + 16, + 51, + 7, + 1, + 51, + 10, + 0, + 176, + 221, + 12, + 131, + 170, + 187, + 250, + 58, + 9, + 0, + 0, + 1, + 123, + 154, + 32, + 130, + 155, + 32, + 51, + 4, + 0, + 176, + 221, + 12, + 131, + 68, + 187, + 250, + 171, + 75, + 99, + 1, + 149, + 119, + 1, + 51, + 2, + 2, + 171, + 39, + 215, + 51, + 5, + 17, + 51, + 7, + 1, + 51, + 10, + 0, + 224, + 205, + 12, + 131, + 170, + 171, + 250, + 58, + 9, + 0, + 0, + 1, + 123, + 154, + 40, + 130, + 155, + 40, + 51, + 4, + 0, + 224, + 205, + 12, + 131, + 68, + 171, + 250, + 171, + 75, + 49, + 1, + 149, + 119, + 1, + 51, + 2, + 2, + 171, + 39, + 215, + 51, + 5, + 18, + 51, + 7, + 1, + 58, + 1, + 0, + 0, + 1, + 51, + 0, + 0, + 32, + 17, + 131, + 0, + 51, + 2, + 123, + 16, + 130, + 27, + 51, + 4, + 0, + 32, + 17, + 131, + 68, + 51, + 2, + 171, + 75, + 3, + 1, + 149, + 119, + 1, + 51, + 2, + 2, + 171, + 39, + 219, + 51, + 5, + 19, + 51, + 7, + 1, + 58, + 1, + 0, + 0, + 1, + 51, + 0, + 0, + 16, + 1, + 48, + 131, + 0, + 35, + 2, + 123, + 16, + 8, + 130, + 27, + 8, + 51, + 4, + 0, + 16, + 1, + 48, + 131, + 68, + 35, + 2, + 171, + 75, + 209, + 0, + 149, + 119, + 1, + 51, + 2, + 2, + 171, + 39, + 215, + 51, + 5, + 20, + 51, + 7, + 1, + 58, + 1, + 0, + 0, + 1, + 51, + 0, + 0, + 16, + 0, + 51, + 131, + 0, + 34, + 1, + 123, + 16, + 16, + 130, + 27, + 16, + 51, + 4, + 0, + 16, + 0, + 51, + 131, + 68, + 34, + 1, + 171, + 75, + 159, + 0, + 149, + 119, + 1, + 51, + 2, + 2, + 171, + 39, + 215, + 51, + 5, + 21, + 51, + 7, + 1, + 58, + 1, + 0, + 0, + 1, + 51, + 0, + 0, + 0, + 48, + 35, + 131, + 0, + 18, + 1, + 123, + 16, + 24, + 130, + 27, + 24, + 51, + 4, + 0, + 0, + 48, + 35, + 131, + 68, + 18, + 1, + 171, + 75, + 109, + 149, + 119, + 1, + 51, + 2, + 2, + 171, + 39, + 216, + 51, + 5, + 22, + 51, + 7, + 1, + 58, + 1, + 0, + 0, + 1, + 51, + 0, + 0, + 0, + 51, + 34, + 131, + 0, + 17, + 123, + 16, + 32, + 130, + 27, + 32, + 51, + 4, + 0, + 0, + 51, + 34, + 131, + 68, + 17, + 171, + 75, + 62, + 149, + 119, + 1, + 51, + 2, + 2, + 171, + 39, + 218, + 51, + 5, + 23, + 51, + 7, + 1, + 58, + 1, + 0, + 0, + 1, + 51, + 0, + 0, + 48, + 35, + 18, + 131, + 0, + 1, + 123, + 16, + 40, + 130, + 27, + 40, + 51, + 4, + 0, + 48, + 35, + 18, + 131, + 68, + 1, + 171, + 75, + 15, + 149, + 119, + 1, + 51, + 2, + 2, + 171, + 39, + 218, + 82, + 5, + 4, + 0, + 40, + 137, + 250, + 33, + 41, + 33, + 36, + 73, + 132, + 170, + 33, + 73, + 34, + 18, + 66, + 146, + 36, + 17, + 146, + 26, + 146, + 36, + 137, + 72, + 8, + 73, + 18, + 137, + 144, + 212, + 144, + 36, + 145, + 136, + 132, + 144, + 36, + 73, + 66, + 82, + 67, + 146, + 36, + 137, + 132, + 144, + 36, + 17, + 146, + 26, + 146, + 36, + 34, + 33, + 36, + 73, + 18, + 33, + 169, + 33, + 73, + 146, + 136, + 132, + 144, + 36, + 145, + 8, + 73, + 13, + 73, + 18, + 137, + 72, + 8, + 73, + 146, + 36, + 84, + 13, + 73, + 146, + 36, + 18, + 66, + 36, + 18, + 137, + 164, + 16, + 137, + 68, + 34, + 18, + 130, + 72, + 36, + 18, + 73, + 40, + 136, + 68, + 34, + 17, + 105, + 16, + 161, + 130, + 136, + 36, + 105, + 16, + 33, + 9, + 34, + 146, + 164, + 65, + 132, + 36, + 136, + 72, + 146, + 6, + 17, + 146, + 32, + 34, + 73, + 26, + 68, + 72, + 130, + 136, + 36, + 105, + 16, + 33, + 9, + 34, + 146, + 164, + 33, + 68, + 133, + 136, + 36, + 105, + 8, + 34, + 9, + 34, + 146, + 164, + 33, + 136, + 36, + 136, + 72, + 146, + 134, + 32, + 146, + 32, + 146, + 36, + 13, + 65, + 146, + 32, + 73, + 146, + 134, + 32, + 73, + 144, + 36, + 201, + 0 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 196608, + 2, + 0, + 304295937, + 23, + 0, + 2, + 0, + 196608, + 214817451, + 304295937, + 16 + ], + "expected-pc": 11, + "expected-memory": [ + { + "address": 65538, + "contents": [ + 3 + ] + }, + { + "address": 65544, + "contents": [ + 2 + ] + }, + { + "address": 65552, + "contents": [ + 4 + ] + }, + { + "address": 65560, + "contents": [ + 6 + ] + }, + { + "address": 65568, + "contents": [ + 8 + ] + }, + { + "address": 65576, + "contents": [ + 56 + ] + }, + { + "address": 65578, + "contents": [ + 3 + ] + }, + { + "address": 65584, + "contents": [ + 10 + ] + }, + { + "address": 65592, + "contents": [ + 12 + ] + }, + { + "address": 65600, + "contents": [ + 14 + ] + }, + { + "address": 65608, + "contents": [ + 16 + ] + }, + { + "address": 65616, + "contents": [ + 64 + ] + }, + { + "address": 65618, + "contents": [ + 3 + ] + }, + { + "address": 65624, + "contents": [ + 72 + ] + }, + { + "address": 65626, + "contents": [ + 3 + ] + }, + { + "address": 196608, + "contents": [ + 51, + 34, + 17 + ] + }, + { + "address": 196616, + "contents": [ + 35, + 18, + 1, + 48 + ] + }, + { + "address": 196624, + "contents": [ + 34, + 17 + ] + }, + { + "address": 196627, + "contents": [ + 51 + ] + }, + { + "address": 196632, + "contents": [ + 18, + 1, + 48, + 35 + ] + }, + { + "address": 196640, + "contents": [ + 17 + ] + }, + { + "address": 196642, + "contents": [ + 51, + 34 + ] + }, + { + "address": 196648, + "contents": [ + 1, + 48, + 35, + 18 + ] + }, + { + "address": 196656, + "contents": [ + 160, + 10, + 160, + 10, + 160, + 10, + 160, + 10, + 10, + 160, + 10, + 160, + 10, + 160, + 10, + 160, + 120, + 86, + 52, + 18, + 120, + 86, + 52, + 18, + 152, + 48, + 33, + 88, + 152, + 48, + 33, + 88 + ] + } + ], + "expected-gas": 9473 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_sh.json b/pvm/programs/riscv_rv64ui_sh.json new file mode 100644 index 00000000..454aded2 --- /dev/null +++ b/pvm/programs/riscv_rv64ui_sh.json @@ -0,0 +1,1405 @@ +{ + "name": "riscv_rv64ui_sh", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [ + { + "address": 65536, + "length": 4096, + "is-writable": false + }, + { + "address": 196608, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 65538, + "contents": [ + 3 + ] + }, + { + "address": 65544, + "contents": [ + 2 + ] + }, + { + "address": 65552, + "contents": [ + 4 + ] + }, + { + "address": 65560, + "contents": [ + 6 + ] + }, + { + "address": 65568, + "contents": [ + 8 + ] + }, + { + "address": 65576, + "contents": [ + 14 + ] + }, + { + "address": 65578, + "contents": [ + 3 + ] + }, + { + "address": 65584, + "contents": [ + 10 + ] + }, + { + "address": 65592, + "contents": [ + 12 + ] + }, + { + "address": 65600, + "contents": [ + 14 + ] + }, + { + "address": 65608, + "contents": [ + 16 + ] + }, + { + "address": 65616, + "contents": [ + 16 + ] + }, + { + "address": 65618, + "contents": [ + 3 + ] + }, + { + "address": 65624, + "contents": [ + 18 + ] + }, + { + "address": 65626, + "contents": [ + 3 + ] + }, + { + "address": 196608, + "contents": [ + 239, + 190, + 239, + 190, + 239, + 190, + 239, + 190, + 239, + 190, + 239, + 190, + 239, + 190, + 239, + 190, + 239, + 190, + 239, + 190 + ] + } + ], + "initial-gas": 10000, + "program": [ + 8, + 2, + 131, + 205, + 36, + 0, + 76, + 0, + 122, + 0, + 167, + 0, + 206, + 0, + 246, + 0, + 34, + 1, + 75, + 1, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 58, + 1, + 0, + 0, + 1, + 51, + 0, + 170, + 0, + 58, + 12, + 8, + 0, + 1, + 121, + 16, + 127, + 27, + 40, + 5, + 100, + 11, + 1, + 51, + 4, + 170, + 0, + 171, + 75, + 158, + 3, + 51, + 5, + 3, + 58, + 1, + 0, + 0, + 1, + 51, + 0, + 0, + 176, + 131, + 0, + 0, + 250, + 58, + 12, + 16, + 0, + 1, + 121, + 16, + 2, + 127, + 27, + 2, + 40, + 5, + 100, + 11, + 1, + 51, + 4, + 0, + 176, + 131, + 68, + 0, + 250, + 171, + 75, + 114, + 3, + 51, + 5, + 4, + 58, + 1, + 0, + 0, + 1, + 51, + 0, + 0, + 16, + 239, + 190, + 131, + 0, + 160, + 250, + 58, + 12, + 24, + 0, + 1, + 121, + 16, + 4, + 129, + 27, + 4, + 40, + 5, + 100, + 11, + 1, + 51, + 4, + 0, + 16, + 239, + 190, + 131, + 68, + 160, + 250, + 171, + 75, + 66, + 3, + 51, + 5, + 5, + 58, + 1, + 0, + 0, + 1, + 51, + 0, + 0, + 160, + 131, + 0, + 10, + 58, + 12, + 32, + 0, + 1, + 121, + 16, + 6, + 127, + 27, + 6, + 40, + 5, + 100, + 11, + 1, + 51, + 4, + 0, + 160, + 131, + 68, + 10, + 171, + 75, + 24, + 3, + 51, + 5, + 6, + 58, + 1, + 40, + 0, + 1, + 51, + 0, + 170, + 0, + 58, + 12, + 48, + 0, + 1, + 121, + 16, + 250, + 127, + 27, + 250, + 40, + 5, + 100, + 11, + 1, + 51, + 4, + 170, + 0, + 171, + 75, + 244, + 2, + 51, + 5, + 7, + 58, + 1, + 40, + 0, + 1, + 51, + 0, + 0, + 176, + 131, + 0, + 0, + 250, + 58, + 12, + 56, + 0, + 1, + 121, + 16, + 252, + 127, + 27, + 252, + 40, + 5, + 100, + 11, + 1, + 51, + 4, + 0, + 176, + 131, + 68, + 0, + 250, + 171, + 75, + 200, + 2, + 51, + 5, + 8, + 58, + 1, + 40, + 0, + 1, + 51, + 0, + 0, + 16, + 131, + 0, + 160, + 250, + 58, + 12, + 64, + 0, + 1, + 121, + 16, + 254, + 127, + 27, + 254, + 40, + 5, + 100, + 11, + 1, + 51, + 4, + 0, + 16, + 131, + 68, + 160, + 250, + 171, + 75, + 156, + 2, + 51, + 5, + 9, + 58, + 1, + 40, + 0, + 1, + 51, + 0, + 0, + 160, + 131, + 0, + 10, + 58, + 12, + 72, + 0, + 1, + 121, + 16, + 127, + 27, + 40, + 5, + 100, + 11, + 1, + 51, + 4, + 0, + 160, + 131, + 68, + 10, + 171, + 75, + 116, + 2, + 51, + 5, + 10, + 58, + 0, + 80, + 0, + 1, + 51, + 1, + 0, + 80, + 52, + 18, + 131, + 17, + 120, + 6, + 149, + 3, + 224, + 121, + 49, + 32, + 127, + 2, + 51, + 4, + 0, + 80, + 131, + 68, + 120, + 6, + 171, + 66, + 78, + 2, + 51, + 5, + 11, + 58, + 0, + 80, + 0, + 1, + 51, + 1, + 0, + 48, + 131, + 17, + 152, + 0, + 149, + 0, + 251, + 121, + 1, + 7, + 58, + 3, + 88, + 0, + 1, + 127, + 50, + 51, + 4, + 0, + 48, + 131, + 68, + 152, + 0, + 171, + 66, + 37, + 2, + 51, + 5, + 12, + 51, + 3, + 1, + 51, + 10, + 0, + 208, + 131, + 170, + 221, + 252, + 58, + 9, + 0, + 0, + 1, + 121, + 154, + 127, + 155, + 51, + 4, + 0, + 208, + 131, + 68, + 221, + 252, + 171, + 75, + 2, + 2, + 149, + 51, + 1, + 51, + 2, + 2, + 171, + 35, + 221, + 51, + 5, + 13, + 51, + 3, + 1, + 51, + 10, + 0, + 192, + 131, + 170, + 205, + 252, + 58, + 9, + 0, + 0, + 1, + 121, + 154, + 2, + 127, + 155, + 2, + 51, + 4, + 0, + 192, + 131, + 68, + 205, + 252, + 171, + 75, + 212, + 1, + 149, + 51, + 1, + 51, + 2, + 2, + 171, + 35, + 219, + 51, + 5, + 14, + 51, + 3, + 1, + 51, + 10, + 0, + 192, + 131, + 170, + 204, + 251, + 58, + 9, + 0, + 0, + 1, + 121, + 154, + 4, + 127, + 155, + 4, + 51, + 4, + 0, + 192, + 131, + 68, + 204, + 251, + 171, + 75, + 166, + 1, + 149, + 51, + 1, + 51, + 2, + 2, + 171, + 35, + 219, + 51, + 5, + 15, + 51, + 3, + 1, + 51, + 10, + 0, + 176, + 131, + 170, + 188, + 251, + 58, + 9, + 0, + 0, + 1, + 121, + 154, + 6, + 127, + 155, + 6, + 51, + 4, + 0, + 176, + 131, + 68, + 188, + 251, + 171, + 75, + 120, + 1, + 149, + 51, + 1, + 51, + 2, + 2, + 171, + 35, + 219, + 51, + 5, + 16, + 51, + 3, + 1, + 51, + 10, + 0, + 176, + 131, + 170, + 187, + 250, + 58, + 9, + 0, + 0, + 1, + 121, + 154, + 8, + 127, + 155, + 8, + 51, + 4, + 0, + 176, + 131, + 68, + 187, + 250, + 171, + 75, + 74, + 1, + 149, + 51, + 1, + 51, + 2, + 2, + 171, + 35, + 219, + 51, + 5, + 17, + 51, + 3, + 1, + 51, + 10, + 0, + 224, + 131, + 170, + 171, + 250, + 58, + 9, + 0, + 0, + 1, + 121, + 154, + 10, + 127, + 155, + 10, + 51, + 4, + 0, + 224, + 131, + 68, + 171, + 250, + 171, + 75, + 28, + 1, + 149, + 51, + 1, + 51, + 2, + 2, + 171, + 35, + 219, + 51, + 5, + 18, + 51, + 3, + 1, + 58, + 1, + 0, + 0, + 1, + 51, + 0, + 0, + 32, + 131, + 0, + 51, + 2, + 121, + 16, + 127, + 27, + 51, + 4, + 0, + 32, + 131, + 68, + 51, + 2, + 171, + 75, + 240, + 0, + 149, + 51, + 1, + 51, + 2, + 2, + 171, + 35, + 221, + 51, + 5, + 19, + 51, + 3, + 1, + 58, + 1, + 0, + 0, + 1, + 51, + 0, + 0, + 16, + 131, + 0, + 35, + 2, + 121, + 16, + 2, + 127, + 27, + 2, + 51, + 4, + 0, + 16, + 131, + 68, + 35, + 2, + 171, + 75, + 194, + 0, + 149, + 51, + 1, + 51, + 2, + 2, + 171, + 35, + 219, + 51, + 5, + 20, + 51, + 3, + 1, + 58, + 1, + 0, + 0, + 1, + 51, + 0, + 0, + 16, + 131, + 0, + 34, + 1, + 121, + 16, + 4, + 127, + 27, + 4, + 51, + 4, + 0, + 16, + 131, + 68, + 34, + 1, + 171, + 75, + 148, + 0, + 149, + 51, + 1, + 51, + 2, + 2, + 171, + 35, + 219, + 51, + 5, + 21, + 51, + 3, + 1, + 58, + 1, + 0, + 0, + 1, + 51, + 0, + 18, + 1, + 121, + 16, + 6, + 127, + 27, + 6, + 51, + 4, + 18, + 1, + 171, + 75, + 110, + 149, + 51, + 1, + 51, + 2, + 2, + 171, + 35, + 228, + 51, + 5, + 22, + 51, + 3, + 1, + 58, + 1, + 0, + 0, + 1, + 51, + 0, + 17, + 121, + 16, + 8, + 127, + 27, + 8, + 51, + 4, + 17, + 171, + 75, + 75, + 149, + 51, + 1, + 51, + 2, + 2, + 171, + 35, + 230, + 51, + 5, + 23, + 51, + 3, + 1, + 58, + 1, + 0, + 0, + 1, + 51, + 0, + 0, + 48, + 131, + 0, + 1, + 121, + 16, + 10, + 127, + 27, + 10, + 51, + 4, + 0, + 48, + 131, + 68, + 1, + 171, + 75, + 32, + 149, + 51, + 1, + 51, + 2, + 2, + 171, + 35, + 222, + 51, + 7, + 0, + 192, + 0, + 131, + 119, + 239, + 254, + 58, + 8, + 0, + 0, + 1, + 121, + 135, + 6, + 82, + 5, + 4, + 0, + 40, + 54, + 252, + 33, + 41, + 33, + 66, + 213, + 136, + 132, + 136, + 144, + 212, + 136, + 72, + 8, + 34, + 36, + 53, + 136, + 72, + 136, + 132, + 164, + 70, + 34, + 33, + 66, + 82, + 35, + 18, + 34, + 66, + 82, + 35, + 34, + 33, + 34, + 36, + 53, + 34, + 18, + 34, + 161, + 106, + 36, + 18, + 130, + 72, + 138, + 136, + 132, + 136, + 36, + 20, + 17, + 105, + 68, + 168, + 136, + 72, + 146, + 70, + 132, + 36, + 34, + 146, + 164, + 17, + 33, + 137, + 136, + 36, + 105, + 68, + 72, + 34, + 34, + 73, + 26, + 17, + 146, + 136, + 72, + 146, + 70, + 132, + 36, + 34, + 146, + 164, + 33, + 162, + 34, + 34, + 73, + 26, + 34, + 146, + 136, + 72, + 146, + 134, + 136, + 36, + 34, + 146, + 164, + 33, + 146, + 72, + 146, + 52, + 36, + 73, + 146, + 164, + 33, + 146, + 68, + 146, + 36, + 68, + 72, + 6 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 196608, + 2, + 2, + 12289, + 23, + 0, + 48879, + 196608, + 196608, + 18446744073709542059, + 12289, + 16 + ], + "expected-pc": 11, + "expected-memory": [ + { + "address": 65538, + "contents": [ + 3 + ] + }, + { + "address": 65544, + "contents": [ + 2 + ] + }, + { + "address": 65552, + "contents": [ + 4 + ] + }, + { + "address": 65560, + "contents": [ + 6 + ] + }, + { + "address": 65568, + "contents": [ + 8 + ] + }, + { + "address": 65576, + "contents": [ + 14 + ] + }, + { + "address": 65578, + "contents": [ + 3 + ] + }, + { + "address": 65584, + "contents": [ + 10 + ] + }, + { + "address": 65592, + "contents": [ + 12 + ] + }, + { + "address": 65600, + "contents": [ + 14 + ] + }, + { + "address": 65608, + "contents": [ + 16 + ] + }, + { + "address": 65616, + "contents": [ + 16 + ] + }, + { + "address": 65618, + "contents": [ + 3 + ] + }, + { + "address": 65624, + "contents": [ + 18 + ] + }, + { + "address": 65626, + "contents": [ + 3 + ] + }, + { + "address": 196608, + "contents": [ + 51, + 34, + 35, + 18, + 34, + 17, + 239, + 190, + 17 + ] + }, + { + "address": 196618, + "contents": [ + 1, + 48, + 160, + 10, + 10, + 160, + 120, + 86, + 152, + 48 + ] + } + ], + "expected-gas": 9593 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_simple.json b/pvm/programs/riscv_rv64ui_simple.json new file mode 100644 index 00000000..0938e58f --- /dev/null +++ b/pvm/programs/riscv_rv64ui_simple.json @@ -0,0 +1,63 @@ +{ + "name": "riscv_rv64ui_simple", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 15, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 40, + 243, + 33, + 41 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9995 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_sll.json b/pvm/programs/riscv_rv64ui_sll.json new file mode 100644 index 00000000..5de9fd98 --- /dev/null +++ b/pvm/programs/riscv_rv64ui_sll.json @@ -0,0 +1,1454 @@ +{ + "name": "riscv_rv64ui_sll", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 132, + 226, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 8, + 1, + 51, + 9, + 207, + 152, + 11, + 51, + 4, + 1, + 171, + 75, + 195, + 4, + 51, + 5, + 3, + 51, + 8, + 1, + 51, + 9, + 1, + 207, + 152, + 11, + 51, + 4, + 2, + 171, + 75, + 176, + 4, + 51, + 5, + 4, + 51, + 8, + 1, + 51, + 9, + 7, + 207, + 152, + 11, + 51, + 4, + 128, + 0, + 171, + 75, + 156, + 4, + 51, + 5, + 5, + 51, + 8, + 1, + 51, + 9, + 14, + 207, + 152, + 11, + 51, + 4, + 0, + 64, + 171, + 75, + 136, + 4, + 51, + 5, + 6, + 51, + 8, + 1, + 51, + 9, + 31, + 207, + 152, + 11, + 51, + 4, + 1, + 151, + 68, + 31, + 171, + 75, + 114, + 4, + 51, + 5, + 7, + 51, + 8, + 255, + 51, + 9, + 207, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 96, + 4, + 51, + 5, + 8, + 51, + 8, + 255, + 51, + 9, + 1, + 207, + 152, + 11, + 51, + 4, + 254, + 171, + 75, + 77, + 4, + 51, + 5, + 9, + 51, + 8, + 255, + 51, + 9, + 7, + 207, + 152, + 11, + 51, + 4, + 128, + 171, + 75, + 58, + 4, + 51, + 5, + 10, + 51, + 8, + 255, + 51, + 9, + 14, + 207, + 152, + 11, + 51, + 4, + 0, + 192, + 171, + 75, + 38, + 4, + 51, + 5, + 11, + 51, + 8, + 255, + 51, + 9, + 31, + 207, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 16, + 4, + 51, + 5, + 12, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 207, + 152, + 11, + 51, + 4, + 0, + 32, + 33, + 33, + 131, + 68, + 33, + 1, + 171, + 75, + 240, + 3, + 51, + 5, + 13, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 1, + 207, + 152, + 11, + 51, + 4, + 0, + 64, + 66, + 66, + 131, + 68, + 66, + 2, + 171, + 75, + 207, + 3, + 51, + 5, + 14, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 7, + 207, + 152, + 11, + 51, + 4, + 0, + 16, + 9, + 1, + 131, + 68, + 9, + 249, + 151, + 68, + 12, + 149, + 68, + 128, + 0, + 171, + 75, + 167, + 3, + 51, + 5, + 15, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 14, + 207, + 152, + 11, + 51, + 4, + 0, + 32, + 33, + 33, + 131, + 68, + 33, + 1, + 151, + 68, + 14, + 171, + 75, + 131, + 3, + 51, + 5, + 16, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 31, + 207, + 152, + 11, + 51, + 4, + 0, + 32, + 33, + 33, + 131, + 68, + 33, + 1, + 151, + 68, + 31, + 171, + 75, + 95, + 3, + 51, + 5, + 17, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 192, + 207, + 152, + 11, + 51, + 4, + 0, + 32, + 33, + 33, + 131, + 68, + 33, + 1, + 171, + 75, + 62, + 3, + 51, + 5, + 18, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 193, + 207, + 152, + 11, + 51, + 4, + 0, + 64, + 66, + 66, + 131, + 68, + 66, + 2, + 171, + 75, + 29, + 3, + 51, + 5, + 19, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 199, + 207, + 152, + 11, + 51, + 4, + 0, + 16, + 9, + 1, + 131, + 68, + 9, + 249, + 151, + 68, + 12, + 149, + 68, + 128, + 0, + 171, + 75, + 245, + 2, + 51, + 5, + 20, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 206, + 207, + 152, + 11, + 51, + 4, + 0, + 32, + 33, + 33, + 131, + 68, + 33, + 1, + 151, + 68, + 14, + 171, + 75, + 209, + 2, + 51, + 5, + 21, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 255, + 207, + 152, + 11, + 51, + 4, + 255, + 151, + 68, + 63, + 171, + 75, + 180, + 2, + 51, + 5, + 50, + 51, + 8, + 1, + 51, + 9, + 63, + 207, + 152, + 11, + 51, + 4, + 255, + 151, + 68, + 63, + 171, + 75, + 158, + 2, + 51, + 5, + 51, + 51, + 8, + 255, + 51, + 9, + 39, + 207, + 152, + 11, + 51, + 4, + 255, + 151, + 68, + 39, + 171, + 75, + 136, + 2, + 51, + 5, + 52, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 43, + 207, + 152, + 11, + 51, + 4, + 0, + 32, + 1, + 131, + 68, + 33, + 1, + 151, + 68, + 43, + 171, + 75, + 101, + 2, + 51, + 5, + 22, + 51, + 8, + 1, + 51, + 9, + 7, + 207, + 152, + 8, + 51, + 4, + 128, + 0, + 171, + 72, + 81, + 2, + 51, + 5, + 23, + 51, + 8, + 1, + 51, + 9, + 14, + 207, + 152, + 9, + 51, + 4, + 0, + 64, + 171, + 73, + 61, + 2, + 51, + 5, + 24, + 51, + 8, + 3, + 207, + 136, + 8, + 51, + 4, + 24, + 171, + 72, + 45, + 2, + 51, + 5, + 25, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 7, + 207, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 128, + 0, + 171, + 67, + 11, + 2, + 51, + 5, + 26, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 14, + 207, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 0, + 64, + 171, + 67, + 233, + 1, + 51, + 5, + 27, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 31, + 207, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 1, + 151, + 68, + 31, + 171, + 67, + 197, + 1, + 51, + 5, + 28, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 7, + 207, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 128, + 0, + 171, + 75, + 165, + 1, + 51, + 5, + 29, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 14, + 207, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 0, + 64, + 171, + 75, + 133, + 1, + 51, + 5, + 30, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 31, + 207, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 1, + 151, + 68, + 31, + 171, + 75, + 99, + 1, + 51, + 5, + 31, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 7, + 207, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 128, + 0, + 171, + 75, + 67, + 1, + 51, + 5, + 32, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 14, + 207, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 0, + 64, + 171, + 75, + 35, + 1, + 51, + 5, + 33, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 31, + 207, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 1, + 151, + 68, + 31, + 171, + 75, + 1, + 1, + 51, + 5, + 34, + 51, + 10, + 1, + 51, + 1, + 7, + 51, + 0, + 1, + 207, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 128, + 0, + 171, + 75, + 225, + 0, + 51, + 5, + 35, + 51, + 10, + 1, + 51, + 1, + 14, + 51, + 0, + 1, + 207, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 0, + 64, + 171, + 75, + 193, + 0, + 51, + 5, + 36, + 51, + 10, + 1, + 51, + 1, + 31, + 51, + 0, + 1, + 207, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 1, + 151, + 68, + 31, + 171, + 75, + 159, + 0, + 51, + 5, + 37, + 51, + 10, + 1, + 51, + 1, + 7, + 51, + 0, + 1, + 207, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 128, + 0, + 171, + 75, + 127, + 51, + 5, + 38, + 51, + 10, + 1, + 51, + 1, + 14, + 51, + 0, + 1, + 207, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 0, + 64, + 171, + 75, + 96, + 51, + 5, + 39, + 51, + 10, + 1, + 51, + 1, + 31, + 51, + 0, + 1, + 207, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 1, + 151, + 68, + 31, + 171, + 75, + 63, + 51, + 5, + 40, + 51, + 0, + 15, + 155, + 1, + 51, + 4, + 171, + 65, + 50, + 51, + 5, + 41, + 51, + 0, + 32, + 151, + 1, + 51, + 4, + 32, + 171, + 65, + 36, + 51, + 5, + 42, + 51, + 0, + 51, + 4, + 171, + 64, + 26, + 51, + 5, + 43, + 51, + 0, + 0, + 4, + 51, + 1, + 0, + 16, + 131, + 17, + 0, + 248, + 51, + 4, + 82, + 4, + 6, + 82, + 5, + 4, + 0, + 40, + 33, + 251, + 33, + 41, + 41, + 137, + 36, + 73, + 36, + 73, + 68, + 146, + 68, + 36, + 73, + 18, + 73, + 73, + 36, + 73, + 34, + 73, + 18, + 73, + 18, + 145, + 36, + 65, + 36, + 136, + 18, + 68, + 36, + 136, + 36, + 136, + 72, + 16, + 73, + 16, + 137, + 72, + 16, + 73, + 16, + 137, + 4, + 145, + 4, + 145, + 72, + 16, + 73, + 16, + 145, + 32, + 146, + 32, + 34, + 65, + 36, + 65, + 36, + 34, + 65, + 36, + 65, + 36, + 18, + 68, + 146, + 68, + 146, + 36, + 145, + 36, + 73, + 36, + 136, + 36, + 68, + 34, + 73, + 34, + 146, + 36, + 34, + 73, + 34, + 77, + 82, + 146, + 136, + 52, + 73, + 73, + 34, + 210, + 36, + 37, + 73, + 34, + 77, + 146, + 36, + 34, + 77, + 146, + 36, + 34, + 77, + 146, + 36, + 137, + 52, + 73, + 146, + 136, + 52, + 73, + 146, + 136, + 52, + 73, + 146, + 36, + 210, + 36, + 73, + 34, + 210, + 36, + 73, + 34, + 210, + 36, + 73, + 146, + 72, + 147, + 36, + 137, + 164, + 73, + 146, + 68, + 210, + 36, + 73, + 146, + 36, + 149, + 164, + 36, + 149, + 68, + 68, + 201, + 0 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 2048, + 2, + 2147483648, + 0, + 43, + 0, + 0, + 24, + 16384, + 2, + 2147483648, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9520 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_slli.json b/pvm/programs/riscv_rv64ui_slli.json new file mode 100644 index 00000000..9e5effdb --- /dev/null +++ b/pvm/programs/riscv_rv64ui_slli.json @@ -0,0 +1,764 @@ +{ + "name": "riscv_rv64ui_slli", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 130, + 125, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 10, + 1, + 151, + 171, + 51, + 4, + 1, + 171, + 75, + 97, + 2, + 51, + 5, + 3, + 51, + 10, + 1, + 151, + 171, + 1, + 51, + 4, + 2, + 171, + 75, + 81, + 2, + 51, + 5, + 4, + 51, + 10, + 1, + 151, + 171, + 7, + 51, + 4, + 128, + 0, + 171, + 75, + 64, + 2, + 51, + 5, + 5, + 51, + 10, + 1, + 151, + 171, + 14, + 51, + 4, + 0, + 64, + 171, + 75, + 47, + 2, + 51, + 5, + 6, + 51, + 10, + 1, + 151, + 171, + 31, + 51, + 4, + 1, + 151, + 68, + 31, + 171, + 75, + 28, + 2, + 51, + 5, + 7, + 51, + 10, + 255, + 151, + 171, + 51, + 4, + 255, + 171, + 75, + 13, + 2, + 51, + 5, + 8, + 51, + 10, + 255, + 151, + 171, + 1, + 51, + 4, + 254, + 171, + 75, + 253, + 1, + 51, + 5, + 9, + 51, + 10, + 255, + 151, + 171, + 7, + 51, + 4, + 128, + 171, + 75, + 237, + 1, + 51, + 5, + 10, + 51, + 10, + 255, + 151, + 171, + 14, + 51, + 4, + 0, + 192, + 171, + 75, + 220, + 1, + 51, + 5, + 11, + 51, + 10, + 255, + 151, + 171, + 31, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 201, + 1, + 51, + 5, + 12, + 51, + 10, + 0, + 32, + 33, + 33, + 131, + 170, + 33, + 1, + 151, + 171, + 51, + 4, + 0, + 32, + 33, + 33, + 131, + 68, + 33, + 1, + 171, + 75, + 172, + 1, + 51, + 5, + 13, + 51, + 10, + 0, + 32, + 33, + 33, + 131, + 170, + 33, + 1, + 151, + 171, + 1, + 51, + 4, + 0, + 64, + 66, + 66, + 131, + 68, + 66, + 2, + 171, + 75, + 142, + 1, + 51, + 5, + 14, + 51, + 10, + 0, + 32, + 33, + 33, + 131, + 170, + 33, + 1, + 151, + 171, + 7, + 51, + 4, + 0, + 16, + 9, + 1, + 131, + 68, + 9, + 249, + 151, + 68, + 12, + 149, + 68, + 128, + 0, + 171, + 75, + 105, + 1, + 51, + 5, + 15, + 51, + 10, + 0, + 32, + 33, + 33, + 131, + 170, + 33, + 1, + 151, + 171, + 14, + 51, + 4, + 0, + 32, + 33, + 33, + 131, + 68, + 33, + 1, + 151, + 68, + 14, + 171, + 75, + 72, + 1, + 51, + 5, + 16, + 51, + 10, + 0, + 32, + 33, + 33, + 131, + 170, + 33, + 1, + 151, + 171, + 31, + 51, + 4, + 0, + 32, + 33, + 33, + 131, + 68, + 33, + 1, + 151, + 68, + 31, + 171, + 75, + 39, + 1, + 51, + 5, + 50, + 51, + 10, + 1, + 151, + 171, + 63, + 51, + 4, + 255, + 151, + 68, + 63, + 171, + 75, + 20, + 1, + 51, + 5, + 51, + 51, + 10, + 255, + 151, + 171, + 39, + 51, + 4, + 255, + 151, + 68, + 39, + 171, + 75, + 1, + 1, + 51, + 5, + 52, + 51, + 10, + 0, + 32, + 33, + 33, + 131, + 170, + 33, + 1, + 151, + 171, + 43, + 51, + 4, + 0, + 32, + 1, + 131, + 68, + 33, + 1, + 151, + 68, + 43, + 171, + 75, + 225, + 0, + 51, + 5, + 17, + 51, + 8, + 1, + 151, + 136, + 7, + 51, + 4, + 128, + 0, + 171, + 72, + 208, + 0, + 51, + 5, + 18, + 51, + 9, + 1, + 51, + 0, + 1, + 151, + 11, + 7, + 100, + 179, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 242, + 51, + 4, + 128, + 0, + 171, + 67, + 177, + 0, + 51, + 5, + 19, + 51, + 9, + 1, + 51, + 0, + 1, + 151, + 11, + 14, + 100, + 179, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 242, + 51, + 4, + 0, + 64, + 171, + 67, + 146, + 0, + 51, + 5, + 20, + 51, + 9, + 1, + 51, + 0, + 1, + 151, + 11, + 31, + 100, + 179, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 242, + 51, + 4, + 1, + 151, + 68, + 31, + 171, + 67, + 113, + 51, + 5, + 21, + 51, + 9, + 1, + 51, + 0, + 1, + 151, + 11, + 7, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 244, + 51, + 4, + 128, + 0, + 171, + 75, + 85, + 51, + 5, + 22, + 51, + 9, + 1, + 51, + 0, + 1, + 151, + 11, + 14, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 244, + 51, + 4, + 0, + 64, + 171, + 75, + 57, + 51, + 5, + 23, + 51, + 9, + 1, + 51, + 0, + 1, + 151, + 11, + 31, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 244, + 51, + 4, + 1, + 151, + 68, + 31, + 171, + 75, + 27, + 51, + 5, + 24, + 51, + 0, + 51, + 4, + 171, + 64, + 17, + 51, + 5, + 25, + 51, + 0, + 33, + 51, + 4, + 82, + 4, + 6, + 82, + 5, + 4, + 0, + 40, + 134, + 253, + 33, + 41, + 41, + 145, + 36, + 145, + 36, + 34, + 73, + 68, + 146, + 36, + 146, + 18, + 73, + 18, + 73, + 18, + 73, + 34, + 146, + 4, + 145, + 32, + 10, + 34, + 18, + 68, + 130, + 136, + 4, + 145, + 32, + 18, + 145, + 32, + 18, + 68, + 34, + 65, + 36, + 136, + 68, + 146, + 36, + 146, + 36, + 145, + 32, + 18, + 34, + 145, + 36, + 34, + 77, + 74, + 18, + 145, + 38, + 37, + 137, + 72, + 147, + 146, + 36, + 73, + 147, + 36, + 145, + 52, + 73, + 18, + 73, + 147, + 36, + 73, + 82, + 73, + 74, + 6 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 2, + 2147483648, + 0, + 25, + 0, + 0, + 128, + 2, + 555819297, + 2147483648, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9773 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_slliw.json b/pvm/programs/riscv_rv64ui_slliw.json new file mode 100644 index 00000000..24d221ca --- /dev/null +++ b/pvm/programs/riscv_rv64ui_slliw.json @@ -0,0 +1,821 @@ +{ + "name": "riscv_rv64ui_slliw", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 130, + 176, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 10, + 1, + 138, + 171, + 51, + 4, + 1, + 171, + 75, + 148, + 2, + 51, + 5, + 3, + 51, + 10, + 1, + 138, + 171, + 1, + 51, + 4, + 2, + 171, + 75, + 132, + 2, + 51, + 5, + 4, + 51, + 10, + 1, + 138, + 171, + 7, + 51, + 4, + 128, + 0, + 171, + 75, + 115, + 2, + 51, + 5, + 5, + 51, + 10, + 1, + 138, + 171, + 14, + 51, + 4, + 0, + 64, + 171, + 75, + 98, + 2, + 51, + 5, + 6, + 51, + 10, + 1, + 138, + 171, + 31, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 79, + 2, + 51, + 5, + 7, + 51, + 10, + 255, + 138, + 171, + 51, + 4, + 255, + 171, + 75, + 64, + 2, + 51, + 5, + 8, + 51, + 10, + 255, + 138, + 171, + 1, + 51, + 4, + 254, + 171, + 75, + 48, + 2, + 51, + 5, + 9, + 51, + 10, + 255, + 138, + 171, + 7, + 51, + 4, + 128, + 171, + 75, + 32, + 2, + 51, + 5, + 10, + 51, + 10, + 255, + 138, + 171, + 14, + 51, + 4, + 0, + 192, + 171, + 75, + 15, + 2, + 51, + 5, + 11, + 51, + 10, + 255, + 138, + 171, + 31, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 252, + 1, + 51, + 5, + 12, + 51, + 10, + 0, + 32, + 33, + 33, + 131, + 170, + 33, + 1, + 138, + 171, + 51, + 4, + 0, + 32, + 33, + 33, + 131, + 68, + 33, + 1, + 171, + 75, + 223, + 1, + 51, + 5, + 13, + 51, + 10, + 0, + 32, + 33, + 33, + 131, + 170, + 33, + 1, + 138, + 171, + 1, + 51, + 4, + 0, + 64, + 66, + 66, + 131, + 68, + 66, + 2, + 171, + 75, + 193, + 1, + 51, + 5, + 14, + 51, + 10, + 0, + 32, + 33, + 33, + 131, + 170, + 33, + 1, + 138, + 171, + 7, + 51, + 4, + 0, + 144, + 144, + 144, + 131, + 68, + 128, + 0, + 171, + 75, + 163, + 1, + 51, + 5, + 15, + 51, + 10, + 0, + 32, + 33, + 33, + 131, + 170, + 33, + 1, + 138, + 171, + 14, + 51, + 4, + 0, + 64, + 72, + 72, + 171, + 75, + 137, + 1, + 51, + 5, + 16, + 51, + 10, + 0, + 32, + 33, + 33, + 131, + 170, + 33, + 1, + 138, + 171, + 31, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 111, + 1, + 51, + 5, + 44, + 51, + 10, + 0, + 32, + 241, + 131, + 170, + 69, + 3, + 151, + 170, + 12, + 149, + 170, + 120, + 6, + 138, + 171, + 51, + 4, + 0, + 80, + 52, + 18, + 131, + 68, + 120, + 6, + 171, + 75, + 76, + 1, + 51, + 5, + 45, + 51, + 10, + 0, + 32, + 241, + 131, + 170, + 69, + 3, + 151, + 170, + 12, + 149, + 170, + 120, + 6, + 138, + 171, + 4, + 51, + 4, + 0, + 96, + 69, + 35, + 131, + 68, + 128, + 7, + 171, + 75, + 40, + 1, + 51, + 5, + 46, + 51, + 10, + 0, + 32, + 9, + 131, + 170, + 69, + 3, + 151, + 170, + 12, + 149, + 170, + 120, + 6, + 138, + 171, + 51, + 4, + 0, + 80, + 52, + 146, + 131, + 68, + 120, + 6, + 171, + 75, + 5, + 1, + 51, + 5, + 47, + 51, + 10, + 0, + 144, + 9, + 131, + 170, + 69, + 3, + 151, + 170, + 12, + 149, + 170, + 120, + 6, + 138, + 171, + 4, + 51, + 4, + 0, + 96, + 69, + 147, + 131, + 68, + 128, + 7, + 171, + 75, + 225, + 0, + 51, + 5, + 17, + 51, + 8, + 1, + 138, + 136, + 7, + 51, + 4, + 128, + 0, + 171, + 72, + 208, + 0, + 51, + 5, + 18, + 51, + 9, + 1, + 51, + 0, + 1, + 138, + 11, + 7, + 100, + 179, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 242, + 51, + 4, + 128, + 0, + 171, + 67, + 177, + 0, + 51, + 5, + 19, + 51, + 9, + 1, + 51, + 0, + 1, + 138, + 11, + 14, + 100, + 179, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 242, + 51, + 4, + 0, + 64, + 171, + 67, + 146, + 0, + 51, + 5, + 20, + 51, + 9, + 1, + 51, + 0, + 1, + 138, + 11, + 31, + 100, + 179, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 242, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 67, + 113, + 51, + 5, + 21, + 51, + 9, + 1, + 51, + 0, + 1, + 138, + 11, + 7, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 244, + 51, + 4, + 128, + 0, + 171, + 75, + 85, + 51, + 5, + 22, + 51, + 9, + 1, + 51, + 0, + 1, + 138, + 11, + 14, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 244, + 51, + 4, + 0, + 64, + 171, + 75, + 57, + 51, + 5, + 23, + 51, + 9, + 1, + 51, + 0, + 1, + 138, + 11, + 31, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 244, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 27, + 51, + 5, + 24, + 51, + 0, + 51, + 4, + 171, + 64, + 17, + 51, + 5, + 25, + 51, + 0, + 31, + 51, + 4, + 82, + 4, + 6, + 82, + 5, + 4, + 0, + 40, + 83, + 253, + 33, + 41, + 41, + 145, + 36, + 145, + 36, + 34, + 73, + 68, + 146, + 32, + 146, + 18, + 73, + 18, + 73, + 18, + 73, + 34, + 146, + 4, + 145, + 32, + 10, + 34, + 18, + 68, + 130, + 136, + 4, + 145, + 32, + 34, + 65, + 36, + 136, + 4, + 145, + 32, + 18, + 34, + 81, + 16, + 145, + 16, + 137, + 4, + 17, + 9, + 145, + 40, + 136, + 72, + 136, + 68, + 130, + 136, + 36, + 17, + 105, + 82, + 146, + 136, + 52, + 41, + 73, + 68, + 154, + 148, + 36, + 72, + 154, + 36, + 137, + 164, + 73, + 146, + 72, + 154, + 36, + 9, + 146, + 74, + 82, + 50 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 2, + 18446744071562067968, + 0, + 25, + 0, + 0, + 128, + 2, + 2570344056, + 18446744071562067968, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9766 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_sllw.json b/pvm/programs/riscv_rv64ui_sllw.json new file mode 100644 index 00000000..5db3da98 --- /dev/null +++ b/pvm/programs/riscv_rv64ui_sllw.json @@ -0,0 +1,1499 @@ +{ + "name": "riscv_rv64ui_sllw", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 133, + 10, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 8, + 1, + 51, + 9, + 197, + 152, + 11, + 51, + 4, + 1, + 171, + 75, + 235, + 4, + 51, + 5, + 3, + 51, + 8, + 1, + 51, + 9, + 1, + 197, + 152, + 11, + 51, + 4, + 2, + 171, + 75, + 216, + 4, + 51, + 5, + 4, + 51, + 8, + 1, + 51, + 9, + 7, + 197, + 152, + 11, + 51, + 4, + 128, + 0, + 171, + 75, + 196, + 4, + 51, + 5, + 5, + 51, + 8, + 1, + 51, + 9, + 14, + 197, + 152, + 11, + 51, + 4, + 0, + 64, + 171, + 75, + 176, + 4, + 51, + 5, + 6, + 51, + 8, + 1, + 51, + 9, + 31, + 197, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 154, + 4, + 51, + 5, + 7, + 51, + 8, + 255, + 51, + 9, + 197, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 136, + 4, + 51, + 5, + 8, + 51, + 8, + 255, + 51, + 9, + 1, + 197, + 152, + 11, + 51, + 4, + 254, + 171, + 75, + 117, + 4, + 51, + 5, + 9, + 51, + 8, + 255, + 51, + 9, + 7, + 197, + 152, + 11, + 51, + 4, + 128, + 171, + 75, + 98, + 4, + 51, + 5, + 10, + 51, + 8, + 255, + 51, + 9, + 14, + 197, + 152, + 11, + 51, + 4, + 0, + 192, + 171, + 75, + 78, + 4, + 51, + 5, + 11, + 51, + 8, + 255, + 51, + 9, + 31, + 197, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 56, + 4, + 51, + 5, + 12, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 197, + 152, + 11, + 51, + 4, + 0, + 32, + 33, + 33, + 131, + 68, + 33, + 1, + 171, + 75, + 24, + 4, + 51, + 5, + 13, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 1, + 197, + 152, + 11, + 51, + 4, + 0, + 64, + 66, + 66, + 131, + 68, + 66, + 2, + 171, + 75, + 247, + 3, + 51, + 5, + 14, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 7, + 197, + 152, + 11, + 51, + 4, + 0, + 144, + 144, + 144, + 131, + 68, + 128, + 0, + 171, + 75, + 214, + 3, + 51, + 5, + 15, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 14, + 197, + 152, + 11, + 51, + 4, + 0, + 64, + 72, + 72, + 171, + 75, + 185, + 3, + 51, + 5, + 16, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 31, + 197, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 156, + 3, + 51, + 5, + 17, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 224, + 197, + 152, + 11, + 51, + 4, + 0, + 32, + 33, + 33, + 131, + 68, + 33, + 1, + 171, + 75, + 123, + 3, + 51, + 5, + 18, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 225, + 197, + 152, + 11, + 51, + 4, + 0, + 64, + 66, + 66, + 131, + 68, + 66, + 2, + 171, + 75, + 90, + 3, + 51, + 5, + 19, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 231, + 197, + 152, + 11, + 51, + 4, + 0, + 144, + 144, + 144, + 131, + 68, + 128, + 0, + 171, + 75, + 57, + 3, + 51, + 5, + 20, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 238, + 197, + 152, + 11, + 51, + 4, + 0, + 64, + 72, + 72, + 171, + 75, + 28, + 3, + 51, + 5, + 21, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 255, + 197, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 255, + 2, + 51, + 5, + 44, + 51, + 8, + 0, + 32, + 241, + 131, + 136, + 69, + 3, + 151, + 136, + 12, + 149, + 136, + 120, + 6, + 51, + 9, + 197, + 152, + 11, + 51, + 4, + 0, + 80, + 52, + 18, + 131, + 68, + 120, + 6, + 171, + 75, + 217, + 2, + 51, + 5, + 45, + 51, + 8, + 0, + 32, + 241, + 131, + 136, + 69, + 3, + 151, + 136, + 12, + 149, + 136, + 120, + 6, + 51, + 9, + 4, + 197, + 152, + 11, + 51, + 4, + 0, + 96, + 69, + 35, + 131, + 68, + 128, + 7, + 171, + 75, + 178, + 2, + 51, + 5, + 46, + 51, + 8, + 0, + 32, + 9, + 131, + 136, + 69, + 3, + 151, + 136, + 12, + 149, + 136, + 120, + 6, + 51, + 9, + 197, + 152, + 11, + 51, + 4, + 0, + 80, + 52, + 146, + 131, + 68, + 120, + 6, + 171, + 75, + 140, + 2, + 51, + 5, + 47, + 51, + 8, + 0, + 144, + 9, + 131, + 136, + 69, + 3, + 151, + 136, + 12, + 149, + 136, + 120, + 6, + 51, + 9, + 4, + 197, + 152, + 11, + 51, + 4, + 0, + 96, + 69, + 147, + 131, + 68, + 128, + 7, + 171, + 75, + 101, + 2, + 51, + 5, + 22, + 51, + 8, + 1, + 51, + 9, + 7, + 197, + 152, + 8, + 51, + 4, + 128, + 0, + 171, + 72, + 81, + 2, + 51, + 5, + 23, + 51, + 8, + 1, + 51, + 9, + 14, + 197, + 152, + 9, + 51, + 4, + 0, + 64, + 171, + 73, + 61, + 2, + 51, + 5, + 24, + 51, + 8, + 3, + 197, + 136, + 8, + 51, + 4, + 24, + 171, + 72, + 45, + 2, + 51, + 5, + 25, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 7, + 197, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 128, + 0, + 171, + 67, + 11, + 2, + 51, + 5, + 26, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 14, + 197, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 0, + 64, + 171, + 67, + 233, + 1, + 51, + 5, + 27, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 31, + 197, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 67, + 197, + 1, + 51, + 5, + 28, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 7, + 197, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 128, + 0, + 171, + 75, + 165, + 1, + 51, + 5, + 29, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 14, + 197, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 0, + 64, + 171, + 75, + 133, + 1, + 51, + 5, + 30, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 31, + 197, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 99, + 1, + 51, + 5, + 31, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 7, + 197, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 128, + 0, + 171, + 75, + 67, + 1, + 51, + 5, + 32, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 14, + 197, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 0, + 64, + 171, + 75, + 35, + 1, + 51, + 5, + 33, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 31, + 197, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 1, + 1, + 51, + 5, + 34, + 51, + 10, + 1, + 51, + 1, + 7, + 51, + 0, + 1, + 197, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 128, + 0, + 171, + 75, + 225, + 0, + 51, + 5, + 35, + 51, + 10, + 1, + 51, + 1, + 14, + 51, + 0, + 1, + 197, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 0, + 64, + 171, + 75, + 193, + 0, + 51, + 5, + 36, + 51, + 10, + 1, + 51, + 1, + 31, + 51, + 0, + 1, + 197, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 159, + 0, + 51, + 5, + 37, + 51, + 10, + 1, + 51, + 1, + 7, + 51, + 0, + 1, + 197, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 128, + 0, + 171, + 75, + 127, + 51, + 5, + 38, + 51, + 10, + 1, + 51, + 1, + 14, + 51, + 0, + 1, + 197, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 0, + 64, + 171, + 75, + 96, + 51, + 5, + 39, + 51, + 10, + 1, + 51, + 1, + 31, + 51, + 0, + 1, + 197, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 63, + 51, + 5, + 40, + 51, + 0, + 15, + 144, + 1, + 51, + 4, + 171, + 65, + 50, + 51, + 5, + 41, + 51, + 0, + 32, + 138, + 1, + 51, + 4, + 32, + 171, + 65, + 36, + 51, + 5, + 42, + 51, + 0, + 51, + 4, + 171, + 64, + 26, + 51, + 5, + 43, + 51, + 0, + 0, + 4, + 51, + 1, + 0, + 16, + 131, + 17, + 0, + 248, + 51, + 4, + 82, + 4, + 6, + 82, + 5, + 4, + 0, + 40, + 249, + 250, + 33, + 41, + 41, + 137, + 36, + 73, + 36, + 73, + 68, + 146, + 68, + 36, + 73, + 16, + 73, + 73, + 36, + 73, + 34, + 73, + 18, + 73, + 18, + 145, + 36, + 65, + 36, + 136, + 18, + 68, + 36, + 136, + 36, + 136, + 72, + 16, + 73, + 16, + 145, + 32, + 146, + 32, + 18, + 68, + 18, + 68, + 130, + 72, + 130, + 136, + 4, + 145, + 4, + 17, + 9, + 34, + 9, + 34, + 18, + 68, + 18, + 68, + 130, + 72, + 130, + 72, + 136, + 68, + 9, + 34, + 18, + 34, + 145, + 4, + 17, + 9, + 145, + 40, + 65, + 68, + 66, + 36, + 146, + 32, + 34, + 73, + 34, + 146, + 36, + 34, + 73, + 34, + 77, + 82, + 146, + 136, + 52, + 73, + 73, + 34, + 210, + 36, + 37, + 9, + 34, + 77, + 146, + 36, + 34, + 77, + 146, + 36, + 34, + 77, + 146, + 36, + 136, + 52, + 73, + 146, + 136, + 52, + 73, + 146, + 136, + 52, + 73, + 146, + 32, + 210, + 36, + 73, + 34, + 210, + 36, + 73, + 34, + 210, + 36, + 73, + 130, + 72, + 147, + 36, + 137, + 164, + 73, + 146, + 68, + 210, + 36, + 73, + 130, + 36, + 149, + 164, + 36, + 149, + 68, + 68, + 201, + 0 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 2048, + 2, + 18446744071562067968, + 0, + 43, + 0, + 0, + 24, + 16384, + 2, + 18446744071562067968, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9520 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_slt.json b/pvm/programs/riscv_rv64ui_slt.json new file mode 100644 index 00000000..ed7c067c --- /dev/null +++ b/pvm/programs/riscv_rv64ui_slt.json @@ -0,0 +1,1058 @@ +{ + "name": "riscv_rv64ui_slt", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 131, + 130, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 8, + 51, + 9, + 217, + 152, + 11, + 51, + 4, + 171, + 75, + 101, + 3, + 51, + 5, + 3, + 51, + 8, + 1, + 51, + 9, + 1, + 217, + 152, + 11, + 51, + 4, + 171, + 75, + 83, + 3, + 51, + 5, + 4, + 51, + 8, + 3, + 51, + 9, + 7, + 217, + 152, + 11, + 51, + 4, + 1, + 171, + 75, + 64, + 3, + 51, + 5, + 5, + 51, + 8, + 7, + 51, + 9, + 3, + 217, + 152, + 11, + 51, + 4, + 171, + 75, + 46, + 3, + 51, + 5, + 6, + 51, + 8, + 51, + 9, + 0, + 128, + 217, + 152, + 11, + 51, + 4, + 171, + 75, + 28, + 3, + 51, + 5, + 7, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 217, + 152, + 11, + 51, + 4, + 1, + 171, + 75, + 7, + 3, + 51, + 5, + 8, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 0, + 128, + 217, + 152, + 11, + 51, + 4, + 1, + 171, + 75, + 240, + 2, + 51, + 5, + 9, + 51, + 8, + 51, + 9, + 0, + 128, + 0, + 131, + 153, + 255, + 217, + 152, + 11, + 51, + 4, + 1, + 171, + 75, + 217, + 2, + 51, + 5, + 10, + 51, + 8, + 0, + 0, + 0, + 128, + 131, + 136, + 255, + 51, + 9, + 217, + 152, + 11, + 51, + 4, + 171, + 75, + 194, + 2, + 51, + 5, + 11, + 51, + 8, + 0, + 0, + 0, + 128, + 131, + 136, + 255, + 51, + 9, + 0, + 128, + 0, + 131, + 153, + 255, + 217, + 152, + 11, + 51, + 4, + 171, + 75, + 165, + 2, + 51, + 5, + 12, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 0, + 128, + 0, + 131, + 153, + 255, + 217, + 152, + 11, + 51, + 4, + 1, + 171, + 75, + 138, + 2, + 51, + 5, + 13, + 51, + 8, + 0, + 0, + 0, + 128, + 131, + 136, + 255, + 51, + 9, + 0, + 128, + 217, + 152, + 11, + 51, + 4, + 171, + 75, + 113, + 2, + 51, + 5, + 14, + 51, + 8, + 51, + 9, + 255, + 217, + 152, + 11, + 51, + 4, + 171, + 75, + 96, + 2, + 51, + 5, + 15, + 51, + 8, + 255, + 51, + 9, + 1, + 217, + 152, + 11, + 51, + 4, + 1, + 171, + 75, + 77, + 2, + 51, + 5, + 16, + 51, + 8, + 255, + 51, + 9, + 255, + 217, + 152, + 11, + 51, + 4, + 171, + 75, + 59, + 2, + 51, + 5, + 17, + 51, + 8, + 14, + 51, + 9, + 13, + 217, + 152, + 8, + 51, + 4, + 171, + 72, + 41, + 2, + 51, + 5, + 18, + 51, + 8, + 11, + 51, + 9, + 13, + 217, + 152, + 9, + 51, + 4, + 1, + 171, + 73, + 22, + 2, + 51, + 5, + 19, + 51, + 8, + 13, + 217, + 136, + 8, + 51, + 4, + 171, + 72, + 7, + 2, + 51, + 5, + 20, + 51, + 10, + 1, + 51, + 0, + 11, + 51, + 1, + 13, + 217, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 1, + 171, + 67, + 230, + 1, + 51, + 5, + 21, + 51, + 10, + 1, + 51, + 0, + 14, + 51, + 1, + 13, + 217, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 171, + 67, + 198, + 1, + 51, + 5, + 22, + 51, + 10, + 1, + 51, + 0, + 12, + 51, + 1, + 13, + 217, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 1, + 171, + 67, + 165, + 1, + 51, + 5, + 23, + 51, + 10, + 1, + 51, + 0, + 14, + 51, + 1, + 13, + 217, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 171, + 75, + 135, + 1, + 51, + 5, + 24, + 51, + 10, + 1, + 51, + 0, + 11, + 51, + 1, + 13, + 217, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 1, + 171, + 75, + 104, + 1, + 51, + 5, + 25, + 51, + 10, + 1, + 51, + 0, + 15, + 51, + 1, + 13, + 217, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 171, + 75, + 74, + 1, + 51, + 5, + 26, + 51, + 10, + 1, + 51, + 0, + 10, + 51, + 1, + 13, + 217, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 1, + 171, + 75, + 43, + 1, + 51, + 5, + 27, + 51, + 10, + 1, + 51, + 0, + 16, + 51, + 1, + 13, + 217, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 171, + 75, + 13, + 1, + 51, + 5, + 28, + 51, + 10, + 1, + 51, + 0, + 9, + 51, + 1, + 13, + 217, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 1, + 171, + 75, + 238, + 0, + 51, + 5, + 29, + 51, + 10, + 1, + 51, + 1, + 13, + 51, + 0, + 17, + 217, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 171, + 75, + 208, + 0, + 51, + 5, + 30, + 51, + 10, + 1, + 51, + 1, + 13, + 51, + 0, + 8, + 217, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 1, + 171, + 75, + 177, + 0, + 51, + 5, + 31, + 51, + 10, + 1, + 51, + 1, + 13, + 51, + 0, + 18, + 217, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 171, + 75, + 147, + 0, + 51, + 5, + 32, + 51, + 10, + 1, + 51, + 1, + 13, + 51, + 0, + 7, + 217, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 1, + 171, + 75, + 116, + 51, + 5, + 33, + 51, + 10, + 1, + 51, + 1, + 13, + 51, + 0, + 19, + 217, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 171, + 75, + 87, + 51, + 5, + 34, + 51, + 10, + 1, + 51, + 1, + 13, + 51, + 0, + 6, + 217, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 1, + 171, + 75, + 57, + 51, + 5, + 35, + 51, + 0, + 255, + 143, + 1, + 51, + 4, + 171, + 65, + 44, + 51, + 5, + 36, + 51, + 0, + 255, + 137, + 1, + 51, + 4, + 1, + 171, + 65, + 30, + 51, + 5, + 37, + 51, + 0, + 51, + 4, + 171, + 64, + 20, + 51, + 5, + 38, + 51, + 0, + 16, + 51, + 1, + 30, + 51, + 4, + 82, + 4, + 6, + 82, + 5, + 4, + 0, + 40, + 129, + 252, + 33, + 41, + 149, + 34, + 73, + 138, + 36, + 73, + 36, + 73, + 145, + 34, + 69, + 130, + 146, + 72, + 16, + 73, + 164, + 144, + 36, + 18, + 164, + 20, + 9, + 18, + 146, + 34, + 65, + 72, + 18, + 9, + 18, + 41, + 82, + 82, + 36, + 73, + 34, + 73, + 138, + 36, + 41, + 146, + 36, + 145, + 164, + 72, + 147, + 148, + 36, + 145, + 38, + 41, + 73, + 145, + 38, + 41, + 73, + 34, + 77, + 146, + 164, + 72, + 147, + 36, + 73, + 164, + 73, + 146, + 20, + 105, + 146, + 36, + 137, + 52, + 73, + 146, + 34, + 77, + 146, + 36, + 145, + 38, + 73, + 82, + 164, + 73, + 146, + 36, + 210, + 36, + 73, + 138, + 52, + 73, + 146, + 36, + 77, + 146, + 164, + 164, + 73, + 146, + 36, + 73, + 37, + 41, + 73, + 37, + 73, + 201, + 0 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 30, + 2, + 1, + 0, + 38, + 0, + 0, + 0, + 1, + 2, + 1, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9601 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_slti.json b/pvm/programs/riscv_rv64ui_slti.json new file mode 100644 index 00000000..7d4c43c0 --- /dev/null +++ b/pvm/programs/riscv_rv64ui_slti.json @@ -0,0 +1,596 @@ +{ + "name": "riscv_rv64ui_slti", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 129, + 232, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 10, + 137, + 171, + 51, + 4, + 171, + 75, + 206, + 1, + 51, + 5, + 3, + 51, + 10, + 1, + 137, + 171, + 1, + 51, + 4, + 171, + 75, + 191, + 1, + 51, + 5, + 4, + 51, + 10, + 3, + 137, + 171, + 7, + 51, + 4, + 1, + 171, + 75, + 175, + 1, + 51, + 5, + 5, + 51, + 10, + 7, + 137, + 171, + 3, + 51, + 4, + 171, + 75, + 160, + 1, + 51, + 5, + 6, + 51, + 10, + 137, + 171, + 0, + 248, + 51, + 4, + 171, + 75, + 145, + 1, + 51, + 5, + 7, + 51, + 10, + 0, + 0, + 0, + 128, + 137, + 171, + 51, + 4, + 1, + 171, + 75, + 127, + 1, + 51, + 5, + 8, + 51, + 10, + 0, + 0, + 0, + 128, + 137, + 171, + 0, + 248, + 51, + 4, + 1, + 171, + 75, + 107, + 1, + 51, + 5, + 9, + 51, + 10, + 137, + 171, + 255, + 7, + 51, + 4, + 1, + 171, + 75, + 91, + 1, + 51, + 5, + 10, + 51, + 10, + 0, + 0, + 0, + 128, + 131, + 170, + 255, + 137, + 171, + 51, + 4, + 171, + 75, + 71, + 1, + 51, + 5, + 11, + 51, + 10, + 0, + 0, + 0, + 128, + 131, + 170, + 255, + 137, + 171, + 255, + 7, + 51, + 4, + 171, + 75, + 49, + 1, + 51, + 5, + 12, + 51, + 10, + 0, + 0, + 0, + 128, + 137, + 171, + 255, + 7, + 51, + 4, + 1, + 171, + 75, + 29, + 1, + 51, + 5, + 13, + 51, + 10, + 0, + 0, + 0, + 128, + 131, + 170, + 255, + 137, + 171, + 0, + 248, + 51, + 4, + 171, + 75, + 7, + 1, + 51, + 5, + 14, + 51, + 10, + 137, + 171, + 255, + 51, + 4, + 171, + 75, + 249, + 0, + 51, + 5, + 15, + 51, + 10, + 255, + 137, + 171, + 1, + 51, + 4, + 1, + 171, + 75, + 233, + 0, + 51, + 5, + 16, + 51, + 10, + 255, + 137, + 171, + 255, + 51, + 4, + 171, + 75, + 218, + 0, + 51, + 5, + 17, + 51, + 8, + 11, + 137, + 136, + 13, + 51, + 4, + 1, + 171, + 72, + 202, + 0, + 51, + 5, + 18, + 51, + 9, + 1, + 51, + 0, + 15, + 137, + 11, + 10, + 100, + 179, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 242, + 51, + 4, + 171, + 67, + 173, + 0, + 51, + 5, + 19, + 51, + 9, + 1, + 51, + 0, + 10, + 137, + 11, + 16, + 100, + 179, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 242, + 51, + 4, + 1, + 171, + 67, + 143, + 0, + 51, + 5, + 20, + 51, + 9, + 1, + 51, + 0, + 16, + 137, + 11, + 9, + 100, + 179, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 242, + 51, + 4, + 171, + 67, + 114, + 51, + 5, + 21, + 51, + 9, + 1, + 51, + 0, + 11, + 137, + 11, + 15, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 244, + 51, + 4, + 1, + 171, + 75, + 87, + 51, + 5, + 22, + 51, + 9, + 1, + 51, + 0, + 17, + 137, + 11, + 8, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 244, + 51, + 4, + 171, + 75, + 61, + 51, + 5, + 23, + 51, + 9, + 1, + 51, + 0, + 12, + 137, + 11, + 14, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 244, + 51, + 4, + 1, + 171, + 75, + 34, + 51, + 5, + 24, + 51, + 0, + 51, + 4, + 171, + 64, + 24, + 51, + 5, + 25, + 51, + 0, + 0, + 0, + 255, + 0, + 131, + 0, + 255, + 0, + 51, + 4, + 82, + 4, + 6, + 82, + 5, + 4, + 0, + 40, + 27, + 254, + 33, + 41, + 85, + 36, + 41, + 146, + 36, + 146, + 20, + 41, + 138, + 4, + 37, + 18, + 68, + 34, + 69, + 34, + 65, + 42, + 18, + 36, + 138, + 4, + 145, + 72, + 144, + 40, + 82, + 138, + 36, + 137, + 36, + 69, + 146, + 68, + 154, + 148, + 164, + 72, + 147, + 146, + 36, + 210, + 164, + 36, + 37, + 77, + 146, + 36, + 105, + 146, + 164, + 164, + 73, + 146, + 36, + 149, + 4, + 81, + 50 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 2, + 0, + 0, + 25, + 0, + 0, + 1, + 2, + 18446744073709551615, + 1, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9806 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_sltiu.json b/pvm/programs/riscv_rv64ui_sltiu.json new file mode 100644 index 00000000..aacde1fd --- /dev/null +++ b/pvm/programs/riscv_rv64ui_sltiu.json @@ -0,0 +1,599 @@ +{ + "name": "riscv_rv64ui_sltiu", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 129, + 234, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 10, + 136, + 171, + 51, + 4, + 171, + 75, + 208, + 1, + 51, + 5, + 3, + 51, + 10, + 1, + 136, + 171, + 1, + 51, + 4, + 171, + 75, + 193, + 1, + 51, + 5, + 4, + 51, + 10, + 3, + 136, + 171, + 7, + 51, + 4, + 1, + 171, + 75, + 177, + 1, + 51, + 5, + 5, + 51, + 10, + 7, + 136, + 171, + 3, + 51, + 4, + 171, + 75, + 162, + 1, + 51, + 5, + 6, + 51, + 10, + 136, + 171, + 0, + 248, + 51, + 4, + 1, + 171, + 75, + 146, + 1, + 51, + 5, + 7, + 51, + 10, + 0, + 0, + 0, + 128, + 136, + 171, + 51, + 4, + 171, + 75, + 129, + 1, + 51, + 5, + 8, + 51, + 10, + 0, + 0, + 0, + 128, + 136, + 171, + 0, + 248, + 51, + 4, + 1, + 171, + 75, + 109, + 1, + 51, + 5, + 9, + 51, + 10, + 136, + 171, + 255, + 7, + 51, + 4, + 1, + 171, + 75, + 93, + 1, + 51, + 5, + 10, + 51, + 10, + 0, + 0, + 0, + 128, + 131, + 170, + 255, + 136, + 171, + 51, + 4, + 171, + 75, + 73, + 1, + 51, + 5, + 11, + 51, + 10, + 0, + 0, + 0, + 128, + 131, + 170, + 255, + 136, + 171, + 255, + 7, + 51, + 4, + 171, + 75, + 51, + 1, + 51, + 5, + 12, + 51, + 10, + 0, + 0, + 0, + 128, + 136, + 171, + 255, + 7, + 51, + 4, + 171, + 75, + 32, + 1, + 51, + 5, + 13, + 51, + 10, + 0, + 0, + 0, + 128, + 131, + 170, + 255, + 136, + 171, + 0, + 248, + 51, + 4, + 1, + 171, + 75, + 9, + 1, + 51, + 5, + 14, + 51, + 10, + 136, + 171, + 255, + 51, + 4, + 1, + 171, + 75, + 250, + 0, + 51, + 5, + 15, + 51, + 10, + 255, + 136, + 171, + 1, + 51, + 4, + 171, + 75, + 235, + 0, + 51, + 5, + 16, + 51, + 10, + 255, + 136, + 171, + 255, + 51, + 4, + 171, + 75, + 220, + 0, + 51, + 5, + 17, + 51, + 8, + 11, + 136, + 136, + 13, + 51, + 4, + 1, + 171, + 72, + 204, + 0, + 51, + 5, + 18, + 51, + 9, + 1, + 51, + 0, + 15, + 136, + 11, + 10, + 100, + 179, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 242, + 51, + 4, + 171, + 67, + 175, + 0, + 51, + 5, + 19, + 51, + 9, + 1, + 51, + 0, + 10, + 136, + 11, + 16, + 100, + 179, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 242, + 51, + 4, + 1, + 171, + 67, + 145, + 0, + 51, + 5, + 20, + 51, + 9, + 1, + 51, + 0, + 16, + 136, + 11, + 9, + 100, + 179, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 242, + 51, + 4, + 171, + 67, + 116, + 51, + 5, + 21, + 51, + 9, + 1, + 51, + 0, + 11, + 136, + 11, + 15, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 244, + 51, + 4, + 1, + 171, + 75, + 89, + 51, + 5, + 22, + 51, + 9, + 1, + 51, + 0, + 17, + 136, + 11, + 8, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 244, + 51, + 4, + 171, + 75, + 63, + 51, + 5, + 23, + 51, + 9, + 1, + 51, + 0, + 12, + 136, + 11, + 14, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 244, + 51, + 4, + 1, + 171, + 75, + 36, + 51, + 5, + 24, + 51, + 0, + 1, + 51, + 4, + 1, + 171, + 64, + 24, + 51, + 5, + 25, + 51, + 0, + 0, + 0, + 255, + 0, + 131, + 0, + 255, + 0, + 51, + 4, + 82, + 4, + 6, + 82, + 5, + 4, + 0, + 40, + 25, + 254, + 33, + 41, + 85, + 36, + 41, + 146, + 36, + 146, + 20, + 41, + 18, + 9, + 42, + 18, + 68, + 34, + 69, + 34, + 65, + 42, + 18, + 36, + 138, + 4, + 81, + 36, + 72, + 36, + 82, + 18, + 73, + 138, + 36, + 69, + 146, + 68, + 154, + 148, + 164, + 72, + 147, + 146, + 36, + 210, + 164, + 36, + 37, + 77, + 146, + 36, + 105, + 146, + 164, + 164, + 73, + 146, + 36, + 73, + 18, + 68, + 201, + 0 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 2, + 0, + 0, + 25, + 0, + 0, + 1, + 2, + 18446744073709551615, + 1, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9806 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_sltu.json b/pvm/programs/riscv_rv64ui_sltu.json new file mode 100644 index 00000000..49a48f9d --- /dev/null +++ b/pvm/programs/riscv_rv64ui_sltu.json @@ -0,0 +1,1108 @@ +{ + "name": "riscv_rv64ui_sltu", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 131, + 175, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 8, + 51, + 9, + 216, + 152, + 11, + 51, + 4, + 171, + 75, + 146, + 3, + 51, + 5, + 3, + 51, + 8, + 1, + 51, + 9, + 1, + 216, + 152, + 11, + 51, + 4, + 171, + 75, + 128, + 3, + 51, + 5, + 4, + 51, + 8, + 3, + 51, + 9, + 7, + 216, + 152, + 11, + 51, + 4, + 1, + 171, + 75, + 109, + 3, + 51, + 5, + 5, + 51, + 8, + 7, + 51, + 9, + 3, + 216, + 152, + 11, + 51, + 4, + 171, + 75, + 91, + 3, + 51, + 5, + 6, + 51, + 8, + 51, + 9, + 0, + 0, + 2, + 131, + 153, + 255, + 151, + 153, + 15, + 216, + 152, + 11, + 51, + 4, + 1, + 171, + 75, + 65, + 3, + 51, + 5, + 7, + 51, + 8, + 1, + 151, + 136, + 31, + 51, + 9, + 216, + 152, + 11, + 51, + 4, + 171, + 75, + 45, + 3, + 51, + 5, + 8, + 51, + 8, + 1, + 151, + 136, + 31, + 51, + 9, + 0, + 0, + 2, + 131, + 153, + 255, + 151, + 153, + 15, + 216, + 152, + 11, + 51, + 4, + 1, + 171, + 75, + 15, + 3, + 51, + 5, + 9, + 51, + 8, + 51, + 9, + 0, + 128, + 0, + 131, + 153, + 255, + 216, + 152, + 11, + 51, + 4, + 1, + 171, + 75, + 248, + 2, + 51, + 5, + 10, + 51, + 8, + 0, + 0, + 0, + 128, + 131, + 136, + 255, + 51, + 9, + 216, + 152, + 11, + 51, + 4, + 171, + 75, + 225, + 2, + 51, + 5, + 11, + 51, + 8, + 0, + 0, + 0, + 128, + 131, + 136, + 255, + 51, + 9, + 0, + 128, + 0, + 131, + 153, + 255, + 216, + 152, + 11, + 51, + 4, + 171, + 75, + 196, + 2, + 51, + 5, + 12, + 51, + 8, + 1, + 151, + 136, + 31, + 51, + 9, + 0, + 128, + 0, + 131, + 153, + 255, + 216, + 152, + 11, + 51, + 4, + 171, + 75, + 170, + 2, + 51, + 5, + 13, + 51, + 8, + 0, + 0, + 0, + 128, + 131, + 136, + 255, + 51, + 9, + 0, + 0, + 2, + 131, + 153, + 255, + 151, + 153, + 15, + 216, + 152, + 11, + 51, + 4, + 1, + 171, + 75, + 137, + 2, + 51, + 5, + 14, + 51, + 8, + 51, + 9, + 1, + 151, + 153, + 32, + 149, + 153, + 255, + 216, + 152, + 11, + 51, + 4, + 1, + 171, + 75, + 113, + 2, + 51, + 5, + 15, + 51, + 8, + 1, + 151, + 136, + 32, + 149, + 136, + 255, + 51, + 9, + 1, + 216, + 152, + 11, + 51, + 4, + 171, + 75, + 89, + 2, + 51, + 5, + 16, + 51, + 8, + 1, + 151, + 136, + 32, + 149, + 136, + 255, + 51, + 9, + 1, + 151, + 153, + 32, + 149, + 153, + 255, + 216, + 152, + 11, + 51, + 4, + 171, + 75, + 59, + 2, + 51, + 5, + 17, + 51, + 8, + 14, + 51, + 9, + 13, + 216, + 152, + 8, + 51, + 4, + 171, + 72, + 41, + 2, + 51, + 5, + 18, + 51, + 8, + 11, + 51, + 9, + 13, + 216, + 152, + 9, + 51, + 4, + 1, + 171, + 73, + 22, + 2, + 51, + 5, + 19, + 51, + 8, + 13, + 216, + 136, + 8, + 51, + 4, + 171, + 72, + 7, + 2, + 51, + 5, + 20, + 51, + 10, + 1, + 51, + 0, + 11, + 51, + 1, + 13, + 216, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 1, + 171, + 67, + 230, + 1, + 51, + 5, + 21, + 51, + 10, + 1, + 51, + 0, + 14, + 51, + 1, + 13, + 216, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 171, + 67, + 198, + 1, + 51, + 5, + 22, + 51, + 10, + 1, + 51, + 0, + 12, + 51, + 1, + 13, + 216, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 1, + 171, + 67, + 165, + 1, + 51, + 5, + 23, + 51, + 10, + 1, + 51, + 0, + 14, + 51, + 1, + 13, + 216, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 171, + 75, + 135, + 1, + 51, + 5, + 24, + 51, + 10, + 1, + 51, + 0, + 11, + 51, + 1, + 13, + 216, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 1, + 171, + 75, + 104, + 1, + 51, + 5, + 25, + 51, + 10, + 1, + 51, + 0, + 15, + 51, + 1, + 13, + 216, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 171, + 75, + 74, + 1, + 51, + 5, + 26, + 51, + 10, + 1, + 51, + 0, + 10, + 51, + 1, + 13, + 216, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 1, + 171, + 75, + 43, + 1, + 51, + 5, + 27, + 51, + 10, + 1, + 51, + 0, + 16, + 51, + 1, + 13, + 216, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 171, + 75, + 13, + 1, + 51, + 5, + 28, + 51, + 10, + 1, + 51, + 0, + 9, + 51, + 1, + 13, + 216, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 1, + 171, + 75, + 238, + 0, + 51, + 5, + 29, + 51, + 10, + 1, + 51, + 1, + 13, + 51, + 0, + 17, + 216, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 171, + 75, + 208, + 0, + 51, + 5, + 30, + 51, + 10, + 1, + 51, + 1, + 13, + 51, + 0, + 8, + 216, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 1, + 171, + 75, + 177, + 0, + 51, + 5, + 31, + 51, + 10, + 1, + 51, + 1, + 13, + 51, + 0, + 18, + 216, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 171, + 75, + 147, + 0, + 51, + 5, + 32, + 51, + 10, + 1, + 51, + 1, + 13, + 51, + 0, + 7, + 216, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 1, + 171, + 75, + 116, + 51, + 5, + 33, + 51, + 10, + 1, + 51, + 1, + 13, + 51, + 0, + 19, + 216, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 171, + 75, + 87, + 51, + 5, + 34, + 51, + 10, + 1, + 51, + 1, + 13, + 51, + 0, + 6, + 216, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 1, + 171, + 75, + 57, + 51, + 5, + 35, + 51, + 0, + 255, + 142, + 1, + 51, + 4, + 1, + 171, + 65, + 43, + 51, + 5, + 36, + 51, + 0, + 255, + 136, + 1, + 51, + 4, + 171, + 65, + 30, + 51, + 5, + 37, + 51, + 0, + 51, + 4, + 171, + 64, + 20, + 51, + 5, + 38, + 51, + 0, + 16, + 51, + 1, + 30, + 51, + 4, + 82, + 4, + 6, + 82, + 5, + 4, + 0, + 40, + 84, + 252, + 33, + 41, + 149, + 34, + 73, + 138, + 36, + 73, + 36, + 73, + 145, + 66, + 146, + 68, + 146, + 82, + 36, + 9, + 73, + 18, + 41, + 36, + 137, + 4, + 41, + 69, + 130, + 132, + 164, + 72, + 18, + 146, + 34, + 65, + 66, + 146, + 68, + 74, + 146, + 68, + 146, + 36, + 69, + 146, + 36, + 73, + 145, + 36, + 69, + 146, + 36, + 146, + 20, + 105, + 146, + 146, + 36, + 210, + 36, + 37, + 41, + 210, + 36, + 37, + 73, + 164, + 73, + 146, + 20, + 105, + 146, + 36, + 137, + 52, + 73, + 146, + 34, + 77, + 146, + 36, + 145, + 38, + 73, + 82, + 164, + 73, + 146, + 36, + 210, + 36, + 73, + 138, + 52, + 73, + 146, + 68, + 154, + 36, + 73, + 145, + 38, + 73, + 146, + 164, + 73, + 146, + 148, + 52, + 73, + 146, + 36, + 41, + 73, + 42, + 169, + 36, + 41, + 25 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 30, + 2, + 1, + 0, + 38, + 0, + 0, + 0, + 1, + 2, + 1, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9584 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_sra.json b/pvm/programs/riscv_rv64ui_sra.json new file mode 100644 index 00000000..efb95435 --- /dev/null +++ b/pvm/programs/riscv_rv64ui_sra.json @@ -0,0 +1,1467 @@ +{ + "name": "riscv_rv64ui_sra", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 132, + 238, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 209, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 201, + 4, + 51, + 5, + 3, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 1, + 209, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 192, + 171, + 75, + 176, + 4, + 51, + 5, + 4, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 7, + 209, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 255, + 171, + 75, + 151, + 4, + 51, + 5, + 5, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 14, + 209, + 152, + 11, + 51, + 4, + 0, + 0, + 254, + 171, + 75, + 127, + 4, + 51, + 5, + 6, + 51, + 8, + 0, + 0, + 0, + 128, + 131, + 136, + 1, + 51, + 9, + 31, + 209, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 102, + 4, + 51, + 5, + 7, + 51, + 8, + 0, + 0, + 0, + 128, + 131, + 136, + 255, + 51, + 9, + 209, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 128, + 131, + 68, + 255, + 171, + 75, + 72, + 4, + 51, + 5, + 8, + 51, + 8, + 0, + 0, + 0, + 128, + 131, + 136, + 255, + 51, + 9, + 1, + 209, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 64, + 131, + 68, + 255, + 171, + 75, + 41, + 4, + 51, + 5, + 9, + 51, + 8, + 0, + 0, + 0, + 128, + 131, + 136, + 255, + 51, + 9, + 7, + 209, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 1, + 131, + 68, + 255, + 171, + 75, + 10, + 4, + 51, + 5, + 10, + 51, + 8, + 0, + 0, + 0, + 128, + 131, + 136, + 255, + 51, + 9, + 14, + 209, + 152, + 11, + 51, + 4, + 0, + 0, + 2, + 131, + 68, + 255, + 171, + 75, + 236, + 3, + 51, + 5, + 11, + 51, + 8, + 0, + 0, + 0, + 128, + 131, + 136, + 255, + 51, + 9, + 31, + 209, + 152, + 11, + 51, + 4, + 171, + 75, + 212, + 3, + 51, + 5, + 12, + 51, + 8, + 0, + 128, + 129, + 129, + 131, + 136, + 129, + 1, + 51, + 9, + 209, + 152, + 11, + 51, + 4, + 0, + 128, + 129, + 129, + 131, + 68, + 129, + 1, + 171, + 75, + 180, + 3, + 51, + 5, + 13, + 51, + 8, + 0, + 128, + 129, + 129, + 131, + 136, + 129, + 1, + 51, + 9, + 1, + 209, + 152, + 11, + 51, + 4, + 0, + 192, + 192, + 192, + 131, + 68, + 192, + 0, + 171, + 75, + 147, + 3, + 51, + 5, + 14, + 51, + 8, + 0, + 128, + 129, + 129, + 131, + 136, + 129, + 1, + 51, + 9, + 7, + 209, + 152, + 11, + 51, + 4, + 0, + 0, + 3, + 255, + 131, + 68, + 3, + 3, + 171, + 75, + 114, + 3, + 51, + 5, + 15, + 51, + 8, + 0, + 128, + 129, + 129, + 131, + 136, + 129, + 1, + 51, + 9, + 14, + 209, + 152, + 11, + 51, + 4, + 0, + 0, + 254, + 131, + 68, + 6, + 6, + 171, + 75, + 82, + 3, + 51, + 5, + 16, + 51, + 8, + 0, + 128, + 129, + 129, + 131, + 136, + 129, + 1, + 51, + 9, + 31, + 209, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 56, + 3, + 51, + 5, + 17, + 51, + 8, + 0, + 128, + 129, + 129, + 131, + 136, + 129, + 1, + 51, + 9, + 192, + 209, + 152, + 11, + 51, + 4, + 0, + 128, + 129, + 129, + 131, + 68, + 129, + 1, + 171, + 75, + 23, + 3, + 51, + 5, + 18, + 51, + 8, + 0, + 128, + 129, + 129, + 131, + 136, + 129, + 1, + 51, + 9, + 193, + 209, + 152, + 11, + 51, + 4, + 0, + 192, + 192, + 192, + 131, + 68, + 192, + 0, + 171, + 75, + 246, + 2, + 51, + 5, + 19, + 51, + 8, + 0, + 128, + 129, + 129, + 131, + 136, + 129, + 1, + 51, + 9, + 199, + 209, + 152, + 11, + 51, + 4, + 0, + 0, + 3, + 255, + 131, + 68, + 3, + 3, + 171, + 75, + 213, + 2, + 51, + 5, + 20, + 51, + 8, + 0, + 128, + 129, + 129, + 131, + 136, + 129, + 1, + 51, + 9, + 206, + 209, + 152, + 11, + 51, + 4, + 0, + 0, + 254, + 131, + 68, + 6, + 6, + 171, + 75, + 181, + 2, + 51, + 5, + 21, + 51, + 8, + 0, + 128, + 129, + 129, + 131, + 136, + 129, + 1, + 51, + 9, + 255, + 209, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 155, + 2, + 51, + 5, + 22, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 7, + 209, + 152, + 8, + 51, + 4, + 0, + 0, + 0, + 255, + 171, + 72, + 130, + 2, + 51, + 5, + 23, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 14, + 209, + 152, + 9, + 51, + 4, + 0, + 0, + 254, + 171, + 73, + 106, + 2, + 51, + 5, + 24, + 51, + 8, + 7, + 209, + 136, + 8, + 51, + 4, + 171, + 72, + 91, + 2, + 51, + 5, + 25, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 0, + 128, + 51, + 1, + 7, + 209, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 236, + 51, + 4, + 0, + 0, + 0, + 255, + 171, + 67, + 52, + 2, + 51, + 5, + 26, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 0, + 128, + 51, + 1, + 14, + 209, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 236, + 51, + 4, + 0, + 0, + 254, + 171, + 67, + 14, + 2, + 51, + 5, + 27, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 0, + 128, + 51, + 1, + 31, + 209, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 236, + 51, + 4, + 255, + 171, + 67, + 234, + 1, + 51, + 5, + 28, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 0, + 128, + 51, + 1, + 7, + 209, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 0, + 0, + 0, + 255, + 171, + 75, + 197, + 1, + 51, + 5, + 29, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 0, + 128, + 51, + 1, + 14, + 209, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 0, + 0, + 254, + 171, + 75, + 161, + 1, + 51, + 5, + 30, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 0, + 128, + 51, + 1, + 31, + 209, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 255, + 171, + 75, + 127, + 1, + 51, + 5, + 31, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 0, + 128, + 51, + 1, + 7, + 209, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 0, + 0, + 0, + 255, + 171, + 75, + 90, + 1, + 51, + 5, + 32, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 0, + 128, + 51, + 1, + 14, + 209, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 0, + 0, + 254, + 171, + 75, + 54, + 1, + 51, + 5, + 33, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 0, + 128, + 51, + 1, + 31, + 209, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 255, + 171, + 75, + 20, + 1, + 51, + 5, + 34, + 51, + 10, + 1, + 51, + 1, + 7, + 51, + 0, + 0, + 0, + 0, + 128, + 209, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 0, + 0, + 0, + 255, + 171, + 75, + 239, + 0, + 51, + 5, + 35, + 51, + 10, + 1, + 51, + 1, + 14, + 51, + 0, + 0, + 0, + 0, + 128, + 209, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 0, + 0, + 254, + 171, + 75, + 203, + 0, + 51, + 5, + 36, + 51, + 10, + 1, + 51, + 1, + 31, + 51, + 0, + 0, + 0, + 0, + 128, + 209, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 255, + 171, + 75, + 169, + 0, + 51, + 5, + 37, + 51, + 10, + 1, + 51, + 1, + 7, + 51, + 0, + 0, + 0, + 0, + 128, + 209, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 0, + 0, + 0, + 255, + 171, + 75, + 132, + 0, + 51, + 5, + 38, + 51, + 10, + 1, + 51, + 1, + 14, + 51, + 0, + 0, + 0, + 0, + 128, + 209, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 0, + 0, + 254, + 171, + 75, + 96, + 51, + 5, + 39, + 51, + 10, + 1, + 51, + 1, + 31, + 51, + 0, + 0, + 0, + 0, + 128, + 209, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 255, + 171, + 75, + 63, + 51, + 5, + 40, + 51, + 0, + 15, + 157, + 1, + 51, + 4, + 171, + 65, + 50, + 51, + 5, + 41, + 51, + 0, + 32, + 153, + 1, + 51, + 4, + 32, + 171, + 65, + 36, + 51, + 5, + 42, + 51, + 0, + 51, + 4, + 171, + 64, + 26, + 51, + 5, + 43, + 51, + 0, + 0, + 4, + 51, + 1, + 0, + 16, + 131, + 17, + 0, + 248, + 51, + 4, + 82, + 4, + 6, + 82, + 5, + 4, + 0, + 40, + 21, + 251, + 33, + 41, + 65, + 9, + 34, + 65, + 18, + 68, + 130, + 36, + 136, + 4, + 73, + 136, + 4, + 73, + 18, + 9, + 82, + 130, + 68, + 130, + 36, + 65, + 34, + 65, + 146, + 32, + 145, + 32, + 73, + 72, + 36, + 72, + 82, + 36, + 136, + 18, + 68, + 36, + 136, + 36, + 136, + 72, + 16, + 73, + 16, + 145, + 32, + 146, + 16, + 145, + 32, + 146, + 68, + 130, + 72, + 130, + 136, + 4, + 145, + 4, + 17, + 9, + 34, + 9, + 34, + 18, + 68, + 18, + 34, + 18, + 68, + 146, + 72, + 144, + 4, + 145, + 32, + 9, + 145, + 164, + 72, + 131, + 164, + 36, + 65, + 164, + 65, + 82, + 146, + 16, + 105, + 144, + 148, + 36, + 145, + 6, + 73, + 146, + 32, + 210, + 32, + 73, + 18, + 34, + 13, + 146, + 36, + 137, + 52, + 72, + 146, + 4, + 145, + 6, + 73, + 146, + 16, + 105, + 144, + 36, + 73, + 164, + 9, + 146, + 36, + 136, + 52, + 65, + 146, + 132, + 72, + 19, + 36, + 73, + 34, + 77, + 144, + 36, + 65, + 164, + 9, + 146, + 36, + 36, + 77, + 144, + 36, + 73, + 82, + 73, + 74, + 82, + 73, + 68, + 148, + 12 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 2048, + 2, + 18446744073709551615, + 0, + 43, + 0, + 0, + 0, + 18446744073709420544, + 2, + 18446744073709551615, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9548 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_srai.json b/pvm/programs/riscv_rv64ui_srai.json new file mode 100644 index 00000000..4c5444dc --- /dev/null +++ b/pvm/programs/riscv_rv64ui_srai.json @@ -0,0 +1,775 @@ +{ + "name": "riscv_rv64ui_srai", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 130, + 135, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 10, + 255, + 151, + 170, + 39, + 153, + 171, + 51, + 4, + 255, + 151, + 68, + 39, + 171, + 75, + 101, + 2, + 51, + 5, + 3, + 51, + 10, + 0, + 0, + 0, + 128, + 153, + 171, + 1, + 51, + 4, + 0, + 0, + 0, + 192, + 171, + 75, + 79, + 2, + 51, + 5, + 4, + 51, + 10, + 0, + 0, + 0, + 128, + 153, + 171, + 7, + 51, + 4, + 0, + 0, + 0, + 255, + 171, + 75, + 57, + 2, + 51, + 5, + 5, + 51, + 10, + 0, + 0, + 0, + 128, + 153, + 171, + 14, + 51, + 4, + 0, + 0, + 254, + 171, + 75, + 36, + 2, + 51, + 5, + 6, + 51, + 10, + 0, + 0, + 0, + 128, + 131, + 170, + 1, + 153, + 171, + 31, + 51, + 4, + 255, + 171, + 75, + 14, + 2, + 51, + 5, + 7, + 51, + 10, + 0, + 0, + 0, + 128, + 131, + 170, + 255, + 153, + 171, + 51, + 4, + 0, + 0, + 0, + 128, + 131, + 68, + 255, + 171, + 75, + 243, + 1, + 51, + 5, + 8, + 51, + 10, + 0, + 0, + 0, + 128, + 131, + 170, + 255, + 153, + 171, + 1, + 51, + 4, + 0, + 0, + 0, + 64, + 131, + 68, + 255, + 171, + 75, + 215, + 1, + 51, + 5, + 9, + 51, + 10, + 0, + 0, + 0, + 128, + 131, + 170, + 255, + 153, + 171, + 7, + 51, + 4, + 0, + 0, + 0, + 1, + 131, + 68, + 255, + 171, + 75, + 187, + 1, + 51, + 5, + 10, + 51, + 10, + 0, + 0, + 0, + 128, + 131, + 170, + 255, + 153, + 171, + 14, + 51, + 4, + 0, + 0, + 2, + 131, + 68, + 255, + 171, + 75, + 160, + 1, + 51, + 5, + 11, + 51, + 10, + 0, + 0, + 0, + 128, + 131, + 170, + 255, + 153, + 171, + 31, + 51, + 4, + 171, + 75, + 139, + 1, + 51, + 5, + 12, + 51, + 10, + 0, + 128, + 129, + 129, + 131, + 170, + 129, + 1, + 153, + 171, + 51, + 4, + 0, + 128, + 129, + 129, + 131, + 68, + 129, + 1, + 171, + 75, + 110, + 1, + 51, + 5, + 13, + 51, + 10, + 0, + 128, + 129, + 129, + 131, + 170, + 129, + 1, + 153, + 171, + 1, + 51, + 4, + 0, + 192, + 192, + 192, + 131, + 68, + 192, + 0, + 171, + 75, + 80, + 1, + 51, + 5, + 14, + 51, + 10, + 0, + 128, + 129, + 129, + 131, + 170, + 129, + 1, + 153, + 171, + 7, + 51, + 4, + 0, + 0, + 3, + 255, + 131, + 68, + 3, + 3, + 171, + 75, + 50, + 1, + 51, + 5, + 15, + 51, + 10, + 0, + 128, + 129, + 129, + 131, + 170, + 129, + 1, + 153, + 171, + 14, + 51, + 4, + 0, + 0, + 254, + 131, + 68, + 6, + 6, + 171, + 75, + 21, + 1, + 51, + 5, + 16, + 51, + 10, + 0, + 128, + 129, + 129, + 131, + 170, + 129, + 1, + 153, + 171, + 31, + 51, + 4, + 255, + 171, + 75, + 254, + 0, + 51, + 5, + 17, + 51, + 8, + 0, + 0, + 0, + 128, + 153, + 136, + 7, + 51, + 4, + 0, + 0, + 0, + 255, + 171, + 72, + 232, + 0, + 51, + 5, + 18, + 51, + 9, + 1, + 51, + 0, + 0, + 0, + 0, + 128, + 153, + 11, + 7, + 100, + 179, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 239, + 51, + 4, + 0, + 0, + 0, + 255, + 171, + 67, + 196, + 0, + 51, + 5, + 19, + 51, + 9, + 1, + 51, + 0, + 0, + 0, + 0, + 128, + 153, + 11, + 14, + 100, + 179, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 239, + 51, + 4, + 0, + 0, + 254, + 171, + 67, + 161, + 0, + 51, + 5, + 20, + 51, + 9, + 1, + 51, + 0, + 0, + 0, + 0, + 128, + 131, + 0, + 1, + 153, + 11, + 31, + 100, + 179, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 236, + 51, + 4, + 255, + 171, + 67, + 125, + 51, + 5, + 21, + 51, + 9, + 1, + 51, + 0, + 0, + 0, + 0, + 128, + 153, + 11, + 7, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 241, + 51, + 4, + 0, + 0, + 0, + 255, + 171, + 75, + 92, + 51, + 5, + 22, + 51, + 9, + 1, + 51, + 0, + 0, + 0, + 0, + 128, + 153, + 11, + 14, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 241, + 51, + 4, + 0, + 0, + 254, + 171, + 75, + 60, + 51, + 5, + 23, + 51, + 9, + 1, + 51, + 0, + 0, + 0, + 0, + 128, + 131, + 0, + 1, + 153, + 11, + 31, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 238, + 51, + 4, + 255, + 171, + 75, + 27, + 51, + 5, + 24, + 51, + 0, + 51, + 4, + 171, + 64, + 17, + 51, + 5, + 25, + 51, + 0, + 33, + 51, + 4, + 82, + 4, + 6, + 82, + 5, + 4, + 0, + 40, + 124, + 253, + 33, + 41, + 73, + 73, + 36, + 72, + 16, + 9, + 18, + 68, + 130, + 132, + 72, + 144, + 36, + 18, + 164, + 32, + 145, + 32, + 9, + 18, + 9, + 146, + 32, + 145, + 32, + 9, + 137, + 4, + 73, + 145, + 32, + 10, + 34, + 18, + 68, + 130, + 136, + 4, + 145, + 32, + 34, + 65, + 36, + 68, + 36, + 136, + 36, + 18, + 36, + 136, + 52, + 72, + 73, + 130, + 72, + 131, + 148, + 36, + 68, + 26, + 36, + 37, + 73, + 210, + 32, + 73, + 130, + 164, + 65, + 146, + 132, + 164, + 65, + 146, + 36, + 73, + 37, + 41, + 25 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 2, + 18446744073709551615, + 0, + 25, + 0, + 0, + 18446744073692774400, + 2, + 18446744071587332481, + 18446744073709551615, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9785 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_sraiw.json b/pvm/programs/riscv_rv64ui_sraiw.json new file mode 100644 index 00000000..5d952bb6 --- /dev/null +++ b/pvm/programs/riscv_rv64ui_sraiw.json @@ -0,0 +1,980 @@ +{ + "name": "riscv_rv64ui_sraiw", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 131, + 61, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 10, + 0, + 0, + 0, + 128, + 140, + 171, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 27, + 3, + 51, + 5, + 3, + 51, + 10, + 0, + 0, + 0, + 128, + 140, + 171, + 1, + 51, + 4, + 0, + 0, + 0, + 192, + 171, + 75, + 5, + 3, + 51, + 5, + 4, + 51, + 10, + 0, + 0, + 0, + 128, + 140, + 171, + 7, + 51, + 4, + 0, + 0, + 0, + 255, + 171, + 75, + 239, + 2, + 51, + 5, + 5, + 51, + 10, + 0, + 0, + 0, + 128, + 140, + 171, + 14, + 51, + 4, + 0, + 0, + 254, + 171, + 75, + 218, + 2, + 51, + 5, + 6, + 51, + 10, + 0, + 0, + 0, + 128, + 131, + 170, + 1, + 140, + 171, + 31, + 51, + 4, + 255, + 171, + 75, + 196, + 2, + 51, + 5, + 7, + 51, + 10, + 0, + 0, + 0, + 128, + 131, + 170, + 255, + 140, + 171, + 51, + 4, + 0, + 0, + 0, + 128, + 131, + 68, + 255, + 171, + 75, + 169, + 2, + 51, + 5, + 8, + 51, + 10, + 0, + 0, + 0, + 128, + 131, + 170, + 255, + 140, + 171, + 1, + 51, + 4, + 0, + 0, + 0, + 64, + 131, + 68, + 255, + 171, + 75, + 141, + 2, + 51, + 5, + 9, + 51, + 10, + 0, + 0, + 0, + 128, + 131, + 170, + 255, + 140, + 171, + 7, + 51, + 4, + 0, + 0, + 0, + 1, + 131, + 68, + 255, + 171, + 75, + 113, + 2, + 51, + 5, + 10, + 51, + 10, + 0, + 0, + 0, + 128, + 131, + 170, + 255, + 140, + 171, + 14, + 51, + 4, + 0, + 0, + 2, + 131, + 68, + 255, + 171, + 75, + 86, + 2, + 51, + 5, + 11, + 51, + 10, + 0, + 0, + 0, + 128, + 131, + 170, + 255, + 140, + 171, + 31, + 51, + 4, + 171, + 75, + 65, + 2, + 51, + 5, + 12, + 51, + 10, + 0, + 128, + 129, + 129, + 131, + 170, + 129, + 1, + 140, + 171, + 51, + 4, + 0, + 128, + 129, + 129, + 131, + 68, + 129, + 1, + 171, + 75, + 36, + 2, + 51, + 5, + 13, + 51, + 10, + 0, + 128, + 129, + 129, + 131, + 170, + 129, + 1, + 140, + 171, + 1, + 51, + 4, + 0, + 192, + 192, + 192, + 131, + 68, + 192, + 0, + 171, + 75, + 6, + 2, + 51, + 5, + 14, + 51, + 10, + 0, + 128, + 129, + 129, + 131, + 170, + 129, + 1, + 140, + 171, + 7, + 51, + 4, + 0, + 0, + 3, + 255, + 131, + 68, + 3, + 3, + 171, + 75, + 232, + 1, + 51, + 5, + 15, + 51, + 10, + 0, + 128, + 129, + 129, + 131, + 170, + 129, + 1, + 140, + 171, + 14, + 51, + 4, + 0, + 0, + 254, + 131, + 68, + 6, + 6, + 171, + 75, + 203, + 1, + 51, + 5, + 16, + 51, + 10, + 0, + 128, + 129, + 129, + 131, + 170, + 129, + 1, + 140, + 171, + 31, + 51, + 4, + 255, + 171, + 75, + 180, + 1, + 51, + 5, + 44, + 51, + 10, + 0, + 32, + 241, + 131, + 170, + 69, + 3, + 151, + 170, + 12, + 149, + 170, + 120, + 6, + 140, + 171, + 51, + 4, + 0, + 80, + 52, + 18, + 131, + 68, + 120, + 6, + 171, + 75, + 145, + 1, + 51, + 5, + 45, + 51, + 10, + 0, + 32, + 241, + 131, + 170, + 69, + 3, + 151, + 170, + 12, + 149, + 170, + 120, + 6, + 140, + 171, + 4, + 51, + 4, + 0, + 64, + 35, + 1, + 131, + 68, + 103, + 5, + 171, + 75, + 109, + 1, + 51, + 5, + 46, + 51, + 10, + 0, + 32, + 9, + 131, + 170, + 69, + 3, + 151, + 170, + 12, + 149, + 170, + 120, + 6, + 140, + 171, + 51, + 4, + 0, + 80, + 52, + 146, + 131, + 68, + 120, + 6, + 171, + 75, + 74, + 1, + 51, + 5, + 47, + 51, + 10, + 0, + 32, + 9, + 131, + 170, + 69, + 3, + 151, + 170, + 12, + 149, + 170, + 120, + 6, + 140, + 171, + 4, + 51, + 4, + 0, + 64, + 35, + 249, + 131, + 68, + 103, + 5, + 171, + 75, + 38, + 1, + 51, + 5, + 17, + 51, + 8, + 0, + 0, + 0, + 128, + 140, + 136, + 7, + 51, + 4, + 0, + 0, + 0, + 255, + 171, + 72, + 16, + 1, + 51, + 5, + 18, + 51, + 9, + 1, + 51, + 0, + 0, + 0, + 0, + 128, + 140, + 11, + 7, + 100, + 179, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 239, + 51, + 4, + 0, + 0, + 0, + 255, + 171, + 67, + 236, + 0, + 51, + 5, + 19, + 51, + 9, + 1, + 51, + 0, + 0, + 0, + 0, + 128, + 140, + 11, + 14, + 100, + 179, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 239, + 51, + 4, + 0, + 0, + 254, + 171, + 67, + 201, + 0, + 51, + 5, + 20, + 51, + 9, + 1, + 51, + 0, + 0, + 0, + 0, + 128, + 131, + 0, + 1, + 140, + 11, + 31, + 100, + 179, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 236, + 51, + 4, + 255, + 171, + 67, + 165, + 0, + 51, + 5, + 21, + 51, + 9, + 1, + 51, + 0, + 0, + 0, + 0, + 128, + 140, + 11, + 7, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 241, + 51, + 4, + 0, + 0, + 0, + 255, + 171, + 75, + 131, + 0, + 51, + 5, + 22, + 51, + 9, + 1, + 51, + 0, + 0, + 0, + 0, + 128, + 140, + 11, + 14, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 241, + 51, + 4, + 0, + 0, + 254, + 171, + 75, + 98, + 51, + 5, + 23, + 51, + 9, + 1, + 51, + 0, + 0, + 0, + 0, + 128, + 131, + 0, + 1, + 140, + 11, + 31, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 238, + 51, + 4, + 255, + 171, + 75, + 65, + 51, + 5, + 24, + 51, + 0, + 51, + 4, + 171, + 64, + 55, + 51, + 5, + 25, + 51, + 0, + 31, + 51, + 4, + 82, + 4, + 44, + 51, + 5, + 26, + 51, + 10, + 7, + 151, + 170, + 53, + 140, + 171, + 28, + 51, + 4, + 171, + 75, + 27, + 51, + 5, + 27, + 51, + 10, + 15, + 151, + 170, + 28, + 140, + 171, + 4, + 51, + 4, + 0, + 0, + 0, + 255, + 171, + 75, + 6, + 82, + 5, + 4, + 0, + 40, + 198, + 252, + 33, + 41, + 65, + 65, + 36, + 72, + 16, + 9, + 18, + 68, + 130, + 132, + 72, + 144, + 36, + 18, + 164, + 32, + 145, + 32, + 9, + 18, + 9, + 146, + 32, + 145, + 32, + 9, + 137, + 4, + 73, + 145, + 32, + 10, + 34, + 18, + 68, + 130, + 136, + 4, + 145, + 32, + 34, + 65, + 36, + 68, + 36, + 136, + 36, + 18, + 34, + 81, + 16, + 145, + 16, + 137, + 4, + 17, + 9, + 145, + 40, + 136, + 72, + 136, + 68, + 130, + 136, + 4, + 9, + 34, + 13, + 82, + 146, + 32, + 210, + 32, + 37, + 9, + 145, + 6, + 73, + 73, + 18, + 105, + 144, + 36, + 65, + 164, + 65, + 146, + 132, + 164, + 65, + 146, + 36, + 73, + 37, + 41, + 73, + 82, + 146, + 36, + 72, + 6 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 2, + 18446744073709551615, + 18446744073692774400, + 27, + 0, + 0, + 18446744073692774400, + 2, + 4026531840, + 18446744073692774400, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9739 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_sraw.json b/pvm/programs/riscv_rv64ui_sraw.json new file mode 100644 index 00000000..45217625 --- /dev/null +++ b/pvm/programs/riscv_rv64ui_sraw.json @@ -0,0 +1,1640 @@ +{ + "name": "riscv_rv64ui_sraw", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 133, + 136, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 199, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 99, + 5, + 51, + 5, + 3, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 1, + 199, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 192, + 171, + 75, + 74, + 5, + 51, + 5, + 4, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 7, + 199, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 255, + 171, + 75, + 49, + 5, + 51, + 5, + 5, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 14, + 199, + 152, + 11, + 51, + 4, + 0, + 0, + 254, + 171, + 75, + 25, + 5, + 51, + 5, + 6, + 51, + 8, + 0, + 0, + 0, + 128, + 131, + 136, + 1, + 51, + 9, + 31, + 199, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 0, + 5, + 51, + 5, + 7, + 51, + 8, + 0, + 0, + 0, + 128, + 131, + 136, + 255, + 51, + 9, + 199, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 128, + 131, + 68, + 255, + 171, + 75, + 226, + 4, + 51, + 5, + 8, + 51, + 8, + 0, + 0, + 0, + 128, + 131, + 136, + 255, + 51, + 9, + 1, + 199, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 64, + 131, + 68, + 255, + 171, + 75, + 195, + 4, + 51, + 5, + 9, + 51, + 8, + 0, + 0, + 0, + 128, + 131, + 136, + 255, + 51, + 9, + 7, + 199, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 1, + 131, + 68, + 255, + 171, + 75, + 164, + 4, + 51, + 5, + 10, + 51, + 8, + 0, + 0, + 0, + 128, + 131, + 136, + 255, + 51, + 9, + 14, + 199, + 152, + 11, + 51, + 4, + 0, + 0, + 2, + 131, + 68, + 255, + 171, + 75, + 134, + 4, + 51, + 5, + 11, + 51, + 8, + 0, + 0, + 0, + 128, + 131, + 136, + 255, + 51, + 9, + 31, + 199, + 152, + 11, + 51, + 4, + 171, + 75, + 110, + 4, + 51, + 5, + 12, + 51, + 8, + 0, + 128, + 129, + 129, + 131, + 136, + 129, + 1, + 51, + 9, + 199, + 152, + 11, + 51, + 4, + 0, + 128, + 129, + 129, + 131, + 68, + 129, + 1, + 171, + 75, + 78, + 4, + 51, + 5, + 13, + 51, + 8, + 0, + 128, + 129, + 129, + 131, + 136, + 129, + 1, + 51, + 9, + 1, + 199, + 152, + 11, + 51, + 4, + 0, + 192, + 192, + 192, + 131, + 68, + 192, + 0, + 171, + 75, + 45, + 4, + 51, + 5, + 14, + 51, + 8, + 0, + 128, + 129, + 129, + 131, + 136, + 129, + 1, + 51, + 9, + 7, + 199, + 152, + 11, + 51, + 4, + 0, + 0, + 3, + 255, + 131, + 68, + 3, + 3, + 171, + 75, + 12, + 4, + 51, + 5, + 15, + 51, + 8, + 0, + 128, + 129, + 129, + 131, + 136, + 129, + 1, + 51, + 9, + 14, + 199, + 152, + 11, + 51, + 4, + 0, + 0, + 254, + 131, + 68, + 6, + 6, + 171, + 75, + 236, + 3, + 51, + 5, + 16, + 51, + 8, + 0, + 128, + 129, + 129, + 131, + 136, + 129, + 1, + 51, + 9, + 31, + 199, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 210, + 3, + 51, + 5, + 17, + 51, + 8, + 0, + 128, + 129, + 129, + 131, + 136, + 129, + 1, + 51, + 9, + 224, + 199, + 152, + 11, + 51, + 4, + 0, + 128, + 129, + 129, + 131, + 68, + 129, + 1, + 171, + 75, + 177, + 3, + 51, + 5, + 18, + 51, + 8, + 0, + 128, + 129, + 129, + 131, + 136, + 129, + 1, + 51, + 9, + 225, + 199, + 152, + 11, + 51, + 4, + 0, + 192, + 192, + 192, + 131, + 68, + 192, + 0, + 171, + 75, + 144, + 3, + 51, + 5, + 19, + 51, + 8, + 0, + 128, + 129, + 129, + 131, + 136, + 129, + 1, + 51, + 9, + 231, + 199, + 152, + 11, + 51, + 4, + 0, + 0, + 3, + 255, + 131, + 68, + 3, + 3, + 171, + 75, + 111, + 3, + 51, + 5, + 20, + 51, + 8, + 0, + 128, + 129, + 129, + 131, + 136, + 129, + 1, + 51, + 9, + 238, + 199, + 152, + 11, + 51, + 4, + 0, + 0, + 254, + 131, + 68, + 6, + 6, + 171, + 75, + 79, + 3, + 51, + 5, + 21, + 51, + 8, + 0, + 128, + 129, + 129, + 131, + 136, + 129, + 1, + 51, + 9, + 255, + 199, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 53, + 3, + 51, + 5, + 44, + 51, + 8, + 0, + 32, + 241, + 131, + 136, + 69, + 3, + 151, + 136, + 12, + 149, + 136, + 120, + 6, + 51, + 9, + 199, + 152, + 11, + 51, + 4, + 0, + 80, + 52, + 18, + 131, + 68, + 120, + 6, + 171, + 75, + 15, + 3, + 51, + 5, + 45, + 51, + 8, + 0, + 32, + 241, + 131, + 136, + 69, + 3, + 151, + 136, + 12, + 149, + 136, + 120, + 6, + 51, + 9, + 4, + 199, + 152, + 11, + 51, + 4, + 0, + 64, + 35, + 1, + 131, + 68, + 103, + 5, + 171, + 75, + 232, + 2, + 51, + 5, + 46, + 51, + 8, + 0, + 32, + 9, + 131, + 136, + 69, + 3, + 151, + 136, + 12, + 149, + 136, + 120, + 6, + 51, + 9, + 199, + 152, + 11, + 51, + 4, + 0, + 80, + 52, + 146, + 131, + 68, + 120, + 6, + 171, + 75, + 194, + 2, + 51, + 5, + 47, + 51, + 8, + 0, + 32, + 9, + 131, + 136, + 69, + 3, + 151, + 136, + 12, + 149, + 136, + 120, + 6, + 51, + 9, + 4, + 199, + 152, + 11, + 51, + 4, + 0, + 64, + 35, + 249, + 131, + 68, + 103, + 5, + 171, + 75, + 155, + 2, + 51, + 5, + 22, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 7, + 199, + 152, + 8, + 51, + 4, + 0, + 0, + 0, + 255, + 171, + 72, + 130, + 2, + 51, + 5, + 23, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 14, + 199, + 152, + 9, + 51, + 4, + 0, + 0, + 254, + 171, + 73, + 106, + 2, + 51, + 5, + 24, + 51, + 8, + 7, + 199, + 136, + 8, + 51, + 4, + 171, + 72, + 91, + 2, + 51, + 5, + 25, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 0, + 128, + 51, + 1, + 7, + 199, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 236, + 51, + 4, + 0, + 0, + 0, + 255, + 171, + 67, + 52, + 2, + 51, + 5, + 26, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 0, + 128, + 51, + 1, + 14, + 199, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 236, + 51, + 4, + 0, + 0, + 254, + 171, + 67, + 14, + 2, + 51, + 5, + 27, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 0, + 128, + 51, + 1, + 31, + 199, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 236, + 51, + 4, + 255, + 171, + 67, + 234, + 1, + 51, + 5, + 28, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 0, + 128, + 51, + 1, + 7, + 199, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 0, + 0, + 0, + 255, + 171, + 75, + 197, + 1, + 51, + 5, + 29, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 0, + 128, + 51, + 1, + 14, + 199, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 0, + 0, + 254, + 171, + 75, + 161, + 1, + 51, + 5, + 30, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 0, + 128, + 51, + 1, + 31, + 199, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 255, + 171, + 75, + 127, + 1, + 51, + 5, + 31, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 0, + 128, + 51, + 1, + 7, + 199, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 0, + 0, + 0, + 255, + 171, + 75, + 90, + 1, + 51, + 5, + 32, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 0, + 128, + 51, + 1, + 14, + 199, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 0, + 0, + 254, + 171, + 75, + 54, + 1, + 51, + 5, + 33, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 0, + 128, + 51, + 1, + 31, + 199, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 255, + 171, + 75, + 20, + 1, + 51, + 5, + 34, + 51, + 10, + 1, + 51, + 1, + 7, + 51, + 0, + 0, + 0, + 0, + 128, + 199, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 0, + 0, + 0, + 255, + 171, + 75, + 239, + 0, + 51, + 5, + 35, + 51, + 10, + 1, + 51, + 1, + 14, + 51, + 0, + 0, + 0, + 0, + 128, + 199, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 0, + 0, + 254, + 171, + 75, + 203, + 0, + 51, + 5, + 36, + 51, + 10, + 1, + 51, + 1, + 31, + 51, + 0, + 0, + 0, + 0, + 128, + 199, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 255, + 171, + 75, + 169, + 0, + 51, + 5, + 37, + 51, + 10, + 1, + 51, + 1, + 7, + 51, + 0, + 0, + 0, + 0, + 128, + 199, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 0, + 0, + 0, + 255, + 171, + 75, + 132, + 0, + 51, + 5, + 38, + 51, + 10, + 1, + 51, + 1, + 14, + 51, + 0, + 0, + 0, + 0, + 128, + 199, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 0, + 0, + 254, + 171, + 75, + 96, + 51, + 5, + 39, + 51, + 10, + 1, + 51, + 1, + 31, + 51, + 0, + 0, + 0, + 0, + 128, + 199, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 255, + 171, + 75, + 63, + 51, + 5, + 40, + 51, + 0, + 15, + 146, + 1, + 51, + 4, + 171, + 65, + 50, + 51, + 5, + 41, + 51, + 0, + 32, + 140, + 1, + 51, + 4, + 32, + 171, + 65, + 36, + 51, + 5, + 42, + 51, + 0, + 51, + 4, + 171, + 64, + 26, + 51, + 5, + 43, + 51, + 0, + 0, + 4, + 51, + 1, + 0, + 16, + 131, + 17, + 0, + 248, + 51, + 4, + 82, + 4, + 6, + 82, + 5, + 4, + 0, + 40, + 123, + 250, + 33, + 41, + 65, + 9, + 34, + 65, + 18, + 68, + 130, + 36, + 136, + 4, + 73, + 136, + 4, + 73, + 18, + 9, + 82, + 130, + 68, + 130, + 36, + 65, + 34, + 65, + 146, + 32, + 145, + 32, + 73, + 72, + 36, + 72, + 82, + 36, + 136, + 18, + 68, + 36, + 136, + 36, + 136, + 72, + 16, + 73, + 16, + 145, + 32, + 146, + 16, + 145, + 32, + 146, + 68, + 130, + 72, + 130, + 136, + 4, + 145, + 4, + 17, + 9, + 34, + 9, + 34, + 18, + 68, + 18, + 34, + 18, + 68, + 146, + 72, + 136, + 68, + 9, + 34, + 18, + 34, + 145, + 4, + 17, + 9, + 145, + 40, + 65, + 68, + 66, + 36, + 146, + 32, + 34, + 65, + 18, + 68, + 130, + 36, + 68, + 146, + 34, + 13, + 146, + 146, + 4, + 145, + 6, + 73, + 73, + 66, + 164, + 65, + 82, + 146, + 68, + 26, + 36, + 73, + 130, + 72, + 131, + 36, + 73, + 136, + 52, + 72, + 146, + 36, + 210, + 32, + 73, + 18, + 68, + 26, + 36, + 73, + 66, + 164, + 65, + 146, + 36, + 145, + 38, + 72, + 146, + 32, + 210, + 4, + 73, + 18, + 34, + 77, + 144, + 36, + 137, + 52, + 65, + 146, + 4, + 145, + 38, + 72, + 146, + 144, + 52, + 65, + 146, + 36, + 73, + 37, + 41, + 73, + 37, + 17, + 81, + 50 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 2048, + 2, + 18446744073709551615, + 0, + 43, + 0, + 0, + 0, + 18446744073709420544, + 2, + 18446744073709551615, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9508 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_srl.json b/pvm/programs/riscv_rv64ui_srl.json new file mode 100644 index 00000000..cf4ffd6f --- /dev/null +++ b/pvm/programs/riscv_rv64ui_srl.json @@ -0,0 +1,1459 @@ +{ + "name": "riscv_rv64ui_srl", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 132, + 231, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 208, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 194, + 4, + 51, + 5, + 3, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 1, + 208, + 152, + 11, + 51, + 4, + 1, + 151, + 68, + 33, + 149, + 68, + 255, + 151, + 68, + 30, + 171, + 75, + 163, + 4, + 51, + 5, + 4, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 7, + 208, + 152, + 11, + 51, + 4, + 1, + 151, + 68, + 33, + 149, + 68, + 255, + 151, + 68, + 24, + 171, + 75, + 132, + 4, + 51, + 5, + 5, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 14, + 208, + 152, + 11, + 51, + 4, + 1, + 151, + 68, + 33, + 149, + 68, + 255, + 151, + 68, + 17, + 171, + 75, + 101, + 4, + 51, + 5, + 6, + 51, + 8, + 0, + 0, + 0, + 128, + 131, + 136, + 1, + 51, + 9, + 31, + 208, + 152, + 11, + 51, + 4, + 1, + 151, + 68, + 33, + 149, + 68, + 255, + 171, + 75, + 70, + 4, + 51, + 5, + 7, + 51, + 8, + 255, + 51, + 9, + 208, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 52, + 4, + 51, + 5, + 8, + 51, + 8, + 255, + 51, + 9, + 1, + 208, + 152, + 11, + 51, + 4, + 255, + 151, + 68, + 63, + 149, + 68, + 255, + 171, + 75, + 27, + 4, + 51, + 5, + 9, + 51, + 8, + 255, + 51, + 9, + 7, + 208, + 152, + 11, + 51, + 4, + 1, + 151, + 68, + 57, + 149, + 68, + 255, + 171, + 75, + 2, + 4, + 51, + 5, + 10, + 51, + 8, + 255, + 51, + 9, + 14, + 208, + 152, + 11, + 51, + 4, + 1, + 151, + 68, + 50, + 149, + 68, + 255, + 171, + 75, + 233, + 3, + 51, + 5, + 11, + 51, + 8, + 255, + 51, + 9, + 31, + 208, + 152, + 11, + 51, + 4, + 1, + 151, + 68, + 33, + 149, + 68, + 255, + 171, + 75, + 208, + 3, + 51, + 5, + 12, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 208, + 152, + 11, + 51, + 4, + 0, + 32, + 33, + 33, + 131, + 68, + 33, + 1, + 171, + 75, + 176, + 3, + 51, + 5, + 13, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 1, + 208, + 152, + 11, + 51, + 4, + 0, + 144, + 144, + 16, + 131, + 68, + 144, + 0, + 171, + 75, + 143, + 3, + 51, + 5, + 14, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 7, + 208, + 152, + 11, + 51, + 4, + 0, + 64, + 66, + 131, + 68, + 66, + 2, + 171, + 75, + 111, + 3, + 51, + 5, + 15, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 14, + 208, + 152, + 11, + 51, + 4, + 0, + 128, + 0, + 131, + 68, + 132, + 4, + 171, + 75, + 79, + 3, + 51, + 5, + 16, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 31, + 208, + 152, + 11, + 51, + 4, + 171, + 75, + 54, + 3, + 51, + 5, + 17, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 192, + 208, + 152, + 11, + 51, + 4, + 0, + 32, + 33, + 33, + 131, + 68, + 33, + 1, + 171, + 75, + 21, + 3, + 51, + 5, + 18, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 193, + 208, + 152, + 11, + 51, + 4, + 0, + 144, + 144, + 16, + 131, + 68, + 144, + 0, + 171, + 75, + 244, + 2, + 51, + 5, + 19, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 199, + 208, + 152, + 11, + 51, + 4, + 0, + 64, + 66, + 131, + 68, + 66, + 2, + 171, + 75, + 212, + 2, + 51, + 5, + 20, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 206, + 208, + 152, + 11, + 51, + 4, + 0, + 128, + 0, + 131, + 68, + 132, + 4, + 171, + 75, + 180, + 2, + 51, + 5, + 21, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 255, + 208, + 152, + 11, + 51, + 4, + 171, + 75, + 155, + 2, + 51, + 5, + 22, + 51, + 8, + 1, + 151, + 136, + 31, + 51, + 9, + 7, + 208, + 152, + 8, + 51, + 4, + 0, + 0, + 0, + 1, + 171, + 72, + 130, + 2, + 51, + 5, + 23, + 51, + 8, + 1, + 151, + 136, + 31, + 51, + 9, + 14, + 208, + 152, + 9, + 51, + 4, + 0, + 0, + 2, + 171, + 73, + 106, + 2, + 51, + 5, + 24, + 51, + 8, + 7, + 208, + 136, + 8, + 51, + 4, + 171, + 72, + 91, + 2, + 51, + 5, + 25, + 51, + 10, + 1, + 51, + 0, + 1, + 151, + 0, + 31, + 51, + 1, + 7, + 208, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 236, + 51, + 4, + 0, + 0, + 0, + 1, + 171, + 67, + 52, + 2, + 51, + 5, + 26, + 51, + 10, + 1, + 51, + 0, + 1, + 151, + 0, + 31, + 51, + 1, + 14, + 208, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 236, + 51, + 4, + 0, + 0, + 2, + 171, + 67, + 14, + 2, + 51, + 5, + 27, + 51, + 10, + 1, + 51, + 0, + 1, + 151, + 0, + 31, + 51, + 1, + 31, + 208, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 236, + 51, + 4, + 1, + 171, + 67, + 234, + 1, + 51, + 5, + 28, + 51, + 10, + 1, + 51, + 0, + 1, + 151, + 0, + 31, + 51, + 1, + 7, + 208, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 0, + 0, + 0, + 1, + 171, + 75, + 197, + 1, + 51, + 5, + 29, + 51, + 10, + 1, + 51, + 0, + 1, + 151, + 0, + 31, + 51, + 1, + 14, + 208, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 0, + 0, + 2, + 171, + 75, + 161, + 1, + 51, + 5, + 30, + 51, + 10, + 1, + 51, + 0, + 1, + 151, + 0, + 31, + 51, + 1, + 31, + 208, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 1, + 171, + 75, + 127, + 1, + 51, + 5, + 31, + 51, + 10, + 1, + 51, + 0, + 1, + 151, + 0, + 31, + 51, + 1, + 7, + 208, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 0, + 0, + 0, + 1, + 171, + 75, + 90, + 1, + 51, + 5, + 32, + 51, + 10, + 1, + 51, + 0, + 1, + 151, + 0, + 31, + 51, + 1, + 14, + 208, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 0, + 0, + 2, + 171, + 75, + 54, + 1, + 51, + 5, + 33, + 51, + 10, + 1, + 51, + 0, + 1, + 151, + 0, + 31, + 51, + 1, + 31, + 208, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 1, + 171, + 75, + 20, + 1, + 51, + 5, + 34, + 51, + 10, + 1, + 51, + 1, + 7, + 51, + 0, + 1, + 151, + 0, + 31, + 208, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 0, + 0, + 0, + 1, + 171, + 75, + 239, + 0, + 51, + 5, + 35, + 51, + 10, + 1, + 51, + 1, + 14, + 51, + 0, + 1, + 151, + 0, + 31, + 208, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 0, + 0, + 2, + 171, + 75, + 203, + 0, + 51, + 5, + 36, + 51, + 10, + 1, + 51, + 1, + 31, + 51, + 0, + 1, + 151, + 0, + 31, + 208, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 1, + 171, + 75, + 169, + 0, + 51, + 5, + 37, + 51, + 10, + 1, + 51, + 1, + 7, + 51, + 0, + 1, + 151, + 0, + 31, + 208, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 0, + 0, + 0, + 1, + 171, + 75, + 132, + 0, + 51, + 5, + 38, + 51, + 10, + 1, + 51, + 1, + 14, + 51, + 0, + 1, + 151, + 0, + 31, + 208, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 0, + 0, + 2, + 171, + 75, + 96, + 51, + 5, + 39, + 51, + 10, + 1, + 51, + 1, + 31, + 51, + 0, + 1, + 151, + 0, + 31, + 208, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 1, + 171, + 75, + 63, + 51, + 5, + 40, + 51, + 0, + 15, + 156, + 1, + 51, + 4, + 171, + 65, + 50, + 51, + 5, + 41, + 51, + 0, + 32, + 152, + 1, + 51, + 4, + 32, + 171, + 65, + 36, + 51, + 5, + 42, + 51, + 0, + 51, + 4, + 171, + 64, + 26, + 51, + 5, + 43, + 51, + 0, + 0, + 4, + 51, + 1, + 0, + 16, + 131, + 17, + 0, + 248, + 51, + 4, + 82, + 4, + 6, + 82, + 5, + 4, + 0, + 40, + 28, + 251, + 33, + 41, + 65, + 9, + 34, + 65, + 146, + 36, + 145, + 32, + 73, + 146, + 72, + 144, + 36, + 73, + 36, + 72, + 146, + 36, + 146, + 146, + 72, + 146, + 36, + 145, + 36, + 73, + 34, + 73, + 146, + 68, + 146, + 36, + 137, + 4, + 81, + 130, + 136, + 4, + 145, + 4, + 17, + 9, + 34, + 9, + 17, + 9, + 34, + 9, + 17, + 9, + 34, + 41, + 18, + 68, + 18, + 68, + 36, + 136, + 36, + 136, + 72, + 16, + 73, + 136, + 72, + 16, + 73, + 136, + 72, + 16, + 73, + 145, + 36, + 9, + 34, + 73, + 18, + 34, + 73, + 145, + 38, + 73, + 73, + 130, + 72, + 147, + 164, + 36, + 33, + 210, + 36, + 41, + 73, + 34, + 77, + 146, + 36, + 65, + 164, + 73, + 146, + 36, + 68, + 154, + 36, + 73, + 18, + 105, + 146, + 36, + 9, + 34, + 77, + 146, + 36, + 33, + 210, + 36, + 73, + 146, + 72, + 147, + 36, + 73, + 16, + 105, + 146, + 36, + 9, + 145, + 38, + 73, + 146, + 68, + 154, + 36, + 73, + 130, + 72, + 147, + 36, + 73, + 72, + 154, + 36, + 73, + 146, + 164, + 146, + 148, + 164, + 146, + 136, + 40, + 25 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 2048, + 2, + 1, + 0, + 43, + 0, + 0, + 0, + 131072, + 2, + 1, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9506 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_srli.json b/pvm/programs/riscv_rv64ui_srli.json new file mode 100644 index 00000000..8f9eaf4b --- /dev/null +++ b/pvm/programs/riscv_rv64ui_srli.json @@ -0,0 +1,770 @@ +{ + "name": "riscv_rv64ui_srli", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 130, + 130, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 10, + 0, + 0, + 0, + 128, + 152, + 171, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 96, + 2, + 51, + 5, + 3, + 51, + 10, + 0, + 0, + 0, + 128, + 152, + 171, + 1, + 51, + 4, + 1, + 151, + 68, + 33, + 149, + 68, + 255, + 151, + 68, + 30, + 171, + 75, + 68, + 2, + 51, + 5, + 4, + 51, + 10, + 0, + 0, + 0, + 128, + 152, + 171, + 7, + 51, + 4, + 1, + 151, + 68, + 33, + 149, + 68, + 255, + 151, + 68, + 24, + 171, + 75, + 40, + 2, + 51, + 5, + 5, + 51, + 10, + 0, + 0, + 0, + 128, + 152, + 171, + 14, + 51, + 4, + 1, + 151, + 68, + 33, + 149, + 68, + 255, + 151, + 68, + 17, + 171, + 75, + 12, + 2, + 51, + 5, + 6, + 51, + 10, + 0, + 0, + 0, + 128, + 131, + 170, + 1, + 152, + 171, + 31, + 51, + 4, + 1, + 151, + 68, + 33, + 149, + 68, + 255, + 171, + 75, + 240, + 1, + 51, + 5, + 7, + 51, + 10, + 255, + 152, + 171, + 51, + 4, + 255, + 171, + 75, + 225, + 1, + 51, + 5, + 8, + 51, + 10, + 255, + 152, + 171, + 1, + 51, + 4, + 255, + 151, + 68, + 63, + 149, + 68, + 255, + 171, + 75, + 203, + 1, + 51, + 5, + 9, + 51, + 10, + 255, + 152, + 171, + 7, + 51, + 4, + 1, + 151, + 68, + 57, + 149, + 68, + 255, + 171, + 75, + 181, + 1, + 51, + 5, + 10, + 51, + 10, + 255, + 152, + 171, + 14, + 51, + 4, + 1, + 151, + 68, + 50, + 149, + 68, + 255, + 171, + 75, + 159, + 1, + 51, + 5, + 11, + 51, + 10, + 255, + 152, + 171, + 31, + 51, + 4, + 1, + 151, + 68, + 33, + 149, + 68, + 255, + 171, + 75, + 137, + 1, + 51, + 5, + 12, + 51, + 10, + 0, + 32, + 33, + 33, + 131, + 170, + 33, + 1, + 152, + 171, + 51, + 4, + 0, + 32, + 33, + 33, + 131, + 68, + 33, + 1, + 171, + 75, + 108, + 1, + 51, + 5, + 13, + 51, + 10, + 0, + 32, + 33, + 33, + 131, + 170, + 33, + 1, + 152, + 171, + 1, + 51, + 4, + 0, + 144, + 144, + 16, + 131, + 68, + 144, + 0, + 171, + 75, + 78, + 1, + 51, + 5, + 14, + 51, + 10, + 0, + 32, + 33, + 33, + 131, + 170, + 33, + 1, + 152, + 171, + 7, + 51, + 4, + 0, + 64, + 66, + 131, + 68, + 66, + 2, + 171, + 75, + 49, + 1, + 51, + 5, + 15, + 51, + 10, + 0, + 32, + 33, + 33, + 131, + 170, + 33, + 1, + 152, + 171, + 14, + 51, + 4, + 0, + 128, + 0, + 131, + 68, + 132, + 4, + 171, + 75, + 20, + 1, + 51, + 5, + 16, + 51, + 10, + 0, + 32, + 33, + 33, + 131, + 170, + 33, + 1, + 152, + 171, + 31, + 51, + 4, + 171, + 75, + 254, + 0, + 51, + 5, + 17, + 51, + 8, + 1, + 151, + 136, + 31, + 152, + 136, + 7, + 51, + 4, + 0, + 0, + 0, + 1, + 171, + 72, + 232, + 0, + 51, + 5, + 18, + 51, + 9, + 1, + 51, + 0, + 1, + 151, + 0, + 31, + 152, + 11, + 7, + 100, + 179, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 239, + 51, + 4, + 0, + 0, + 0, + 1, + 171, + 67, + 196, + 0, + 51, + 5, + 19, + 51, + 9, + 1, + 51, + 0, + 1, + 151, + 0, + 31, + 152, + 11, + 14, + 100, + 179, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 239, + 51, + 4, + 0, + 0, + 2, + 171, + 67, + 161, + 0, + 51, + 5, + 20, + 51, + 9, + 1, + 51, + 0, + 1, + 151, + 0, + 31, + 149, + 0, + 1, + 152, + 11, + 31, + 100, + 179, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 236, + 51, + 4, + 1, + 171, + 67, + 125, + 51, + 5, + 21, + 51, + 9, + 1, + 51, + 0, + 1, + 151, + 0, + 31, + 152, + 11, + 7, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 241, + 51, + 4, + 0, + 0, + 0, + 1, + 171, + 75, + 92, + 51, + 5, + 22, + 51, + 9, + 1, + 51, + 0, + 1, + 151, + 0, + 31, + 152, + 11, + 14, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 241, + 51, + 4, + 0, + 0, + 2, + 171, + 75, + 60, + 51, + 5, + 23, + 51, + 9, + 1, + 51, + 0, + 1, + 151, + 0, + 31, + 149, + 0, + 1, + 152, + 11, + 31, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 238, + 51, + 4, + 1, + 171, + 75, + 27, + 51, + 5, + 24, + 51, + 0, + 51, + 4, + 171, + 64, + 17, + 51, + 5, + 25, + 51, + 0, + 33, + 51, + 4, + 82, + 4, + 6, + 82, + 5, + 4, + 0, + 40, + 129, + 253, + 33, + 41, + 65, + 65, + 36, + 72, + 146, + 68, + 130, + 36, + 73, + 36, + 72, + 146, + 68, + 130, + 36, + 73, + 36, + 37, + 146, + 36, + 137, + 36, + 73, + 34, + 73, + 146, + 72, + 146, + 36, + 18, + 68, + 65, + 68, + 130, + 72, + 16, + 145, + 32, + 18, + 34, + 18, + 68, + 66, + 68, + 130, + 72, + 145, + 36, + 65, + 164, + 73, + 74, + 18, + 68, + 154, + 164, + 36, + 33, + 210, + 36, + 41, + 73, + 146, + 38, + 73, + 18, + 36, + 77, + 146, + 36, + 36, + 77, + 146, + 36, + 73, + 42, + 73, + 201, + 0 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 2, + 1, + 0, + 25, + 0, + 0, + 16777216, + 2, + 555819297, + 1, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9764 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_srliw.json b/pvm/programs/riscv_rv64ui_srliw.json new file mode 100644 index 00000000..dd0687c3 --- /dev/null +++ b/pvm/programs/riscv_rv64ui_srliw.json @@ -0,0 +1,893 @@ +{ + "name": "riscv_rv64ui_srliw", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 130, + 240, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 10, + 0, + 0, + 0, + 128, + 139, + 171, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 206, + 2, + 51, + 5, + 3, + 51, + 10, + 0, + 0, + 0, + 128, + 139, + 171, + 1, + 51, + 4, + 0, + 0, + 0, + 64, + 171, + 75, + 184, + 2, + 51, + 5, + 4, + 51, + 10, + 0, + 0, + 0, + 128, + 139, + 171, + 7, + 51, + 4, + 0, + 0, + 0, + 1, + 171, + 75, + 162, + 2, + 51, + 5, + 5, + 51, + 10, + 0, + 0, + 0, + 128, + 139, + 171, + 14, + 51, + 4, + 0, + 0, + 2, + 171, + 75, + 141, + 2, + 51, + 5, + 6, + 51, + 10, + 0, + 0, + 0, + 128, + 131, + 170, + 1, + 139, + 171, + 31, + 51, + 4, + 1, + 171, + 75, + 119, + 2, + 51, + 5, + 7, + 51, + 10, + 255, + 139, + 171, + 51, + 4, + 255, + 171, + 75, + 104, + 2, + 51, + 5, + 8, + 51, + 10, + 255, + 139, + 171, + 1, + 51, + 4, + 0, + 0, + 0, + 128, + 131, + 68, + 255, + 171, + 75, + 82, + 2, + 51, + 5, + 9, + 51, + 10, + 255, + 139, + 171, + 7, + 51, + 4, + 0, + 0, + 0, + 2, + 131, + 68, + 255, + 171, + 75, + 60, + 2, + 51, + 5, + 10, + 51, + 10, + 255, + 139, + 171, + 14, + 51, + 4, + 0, + 0, + 4, + 131, + 68, + 255, + 171, + 75, + 39, + 2, + 51, + 5, + 11, + 51, + 10, + 255, + 139, + 171, + 31, + 51, + 4, + 1, + 171, + 75, + 23, + 2, + 51, + 5, + 12, + 51, + 10, + 0, + 32, + 33, + 33, + 131, + 170, + 33, + 1, + 139, + 171, + 51, + 4, + 0, + 32, + 33, + 33, + 131, + 68, + 33, + 1, + 171, + 75, + 250, + 1, + 51, + 5, + 13, + 51, + 10, + 0, + 32, + 33, + 33, + 131, + 170, + 33, + 1, + 139, + 171, + 1, + 51, + 4, + 0, + 144, + 144, + 16, + 131, + 68, + 144, + 0, + 171, + 75, + 220, + 1, + 51, + 5, + 14, + 51, + 10, + 0, + 32, + 33, + 33, + 131, + 170, + 33, + 1, + 139, + 171, + 7, + 51, + 4, + 0, + 64, + 66, + 131, + 68, + 66, + 2, + 171, + 75, + 191, + 1, + 51, + 5, + 15, + 51, + 10, + 0, + 32, + 33, + 33, + 131, + 170, + 33, + 1, + 139, + 171, + 14, + 51, + 4, + 0, + 128, + 0, + 131, + 68, + 132, + 4, + 171, + 75, + 162, + 1, + 51, + 5, + 16, + 51, + 10, + 0, + 32, + 33, + 33, + 131, + 170, + 33, + 1, + 139, + 171, + 31, + 51, + 4, + 171, + 75, + 140, + 1, + 51, + 5, + 44, + 51, + 10, + 0, + 32, + 241, + 131, + 170, + 69, + 3, + 151, + 170, + 12, + 149, + 170, + 120, + 6, + 139, + 171, + 51, + 4, + 0, + 80, + 52, + 18, + 131, + 68, + 120, + 6, + 171, + 75, + 105, + 1, + 51, + 5, + 45, + 51, + 10, + 0, + 32, + 241, + 131, + 170, + 69, + 3, + 151, + 170, + 12, + 149, + 170, + 120, + 6, + 139, + 171, + 4, + 51, + 4, + 0, + 64, + 35, + 1, + 131, + 68, + 103, + 5, + 171, + 75, + 69, + 1, + 51, + 5, + 46, + 51, + 10, + 0, + 32, + 9, + 131, + 170, + 69, + 3, + 151, + 170, + 12, + 149, + 170, + 120, + 6, + 139, + 171, + 51, + 4, + 0, + 80, + 52, + 146, + 131, + 68, + 120, + 6, + 171, + 75, + 34, + 1, + 51, + 5, + 47, + 51, + 10, + 0, + 32, + 9, + 131, + 170, + 69, + 3, + 151, + 170, + 12, + 149, + 170, + 120, + 6, + 139, + 171, + 4, + 51, + 4, + 0, + 64, + 35, + 9, + 131, + 68, + 103, + 5, + 171, + 75, + 254, + 0, + 51, + 5, + 17, + 51, + 8, + 0, + 0, + 0, + 128, + 139, + 136, + 7, + 51, + 4, + 0, + 0, + 0, + 1, + 171, + 72, + 232, + 0, + 51, + 5, + 18, + 51, + 9, + 1, + 51, + 0, + 0, + 0, + 0, + 128, + 139, + 11, + 7, + 100, + 179, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 239, + 51, + 4, + 0, + 0, + 0, + 1, + 171, + 67, + 196, + 0, + 51, + 5, + 19, + 51, + 9, + 1, + 51, + 0, + 0, + 0, + 0, + 128, + 139, + 11, + 14, + 100, + 179, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 239, + 51, + 4, + 0, + 0, + 2, + 171, + 67, + 161, + 0, + 51, + 5, + 20, + 51, + 9, + 1, + 51, + 0, + 0, + 0, + 0, + 128, + 131, + 0, + 1, + 139, + 11, + 31, + 100, + 179, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 236, + 51, + 4, + 1, + 171, + 67, + 125, + 51, + 5, + 21, + 51, + 9, + 1, + 51, + 0, + 0, + 0, + 0, + 128, + 139, + 11, + 7, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 241, + 51, + 4, + 0, + 0, + 0, + 1, + 171, + 75, + 92, + 51, + 5, + 22, + 51, + 9, + 1, + 51, + 0, + 0, + 0, + 0, + 128, + 139, + 11, + 14, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 241, + 51, + 4, + 0, + 0, + 2, + 171, + 75, + 60, + 51, + 5, + 23, + 51, + 9, + 1, + 51, + 0, + 0, + 0, + 0, + 128, + 131, + 0, + 1, + 139, + 11, + 31, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 238, + 51, + 4, + 1, + 171, + 75, + 27, + 51, + 5, + 24, + 51, + 0, + 51, + 4, + 171, + 64, + 17, + 51, + 5, + 25, + 51, + 0, + 31, + 51, + 4, + 82, + 4, + 6, + 82, + 5, + 4, + 0, + 40, + 19, + 253, + 33, + 41, + 65, + 65, + 36, + 72, + 16, + 9, + 18, + 68, + 130, + 132, + 72, + 144, + 36, + 146, + 18, + 73, + 130, + 68, + 146, + 32, + 145, + 36, + 36, + 146, + 36, + 18, + 68, + 65, + 68, + 130, + 72, + 16, + 145, + 32, + 18, + 34, + 18, + 68, + 66, + 68, + 130, + 72, + 145, + 16, + 137, + 130, + 136, + 132, + 72, + 36, + 136, + 72, + 136, + 68, + 65, + 68, + 66, + 36, + 18, + 68, + 36, + 72, + 16, + 105, + 144, + 146, + 4, + 145, + 6, + 41, + 73, + 136, + 52, + 72, + 74, + 146, + 164, + 65, + 146, + 4, + 73, + 131, + 36, + 9, + 73, + 131, + 36, + 73, + 146, + 74, + 82, + 50 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 2, + 1, + 0, + 25, + 0, + 0, + 16777216, + 2, + 2452903544, + 1, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9757 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_srlw.json b/pvm/programs/riscv_rv64ui_srlw.json new file mode 100644 index 00000000..3f4910b8 --- /dev/null +++ b/pvm/programs/riscv_rv64ui_srlw.json @@ -0,0 +1,1597 @@ +{ + "name": "riscv_rv64ui_srlw", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 133, + 97, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 198, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 60, + 5, + 51, + 5, + 3, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 1, + 198, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 64, + 171, + 75, + 35, + 5, + 51, + 5, + 4, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 7, + 198, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 1, + 171, + 75, + 10, + 5, + 51, + 5, + 5, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 14, + 198, + 152, + 11, + 51, + 4, + 0, + 0, + 2, + 171, + 75, + 242, + 4, + 51, + 5, + 6, + 51, + 8, + 0, + 0, + 0, + 128, + 131, + 136, + 1, + 51, + 9, + 31, + 198, + 152, + 11, + 51, + 4, + 1, + 171, + 75, + 217, + 4, + 51, + 5, + 7, + 51, + 8, + 255, + 51, + 9, + 198, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 199, + 4, + 51, + 5, + 8, + 51, + 8, + 255, + 51, + 9, + 1, + 198, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 128, + 131, + 68, + 255, + 171, + 75, + 174, + 4, + 51, + 5, + 9, + 51, + 8, + 255, + 51, + 9, + 7, + 198, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 2, + 131, + 68, + 255, + 171, + 75, + 149, + 4, + 51, + 5, + 10, + 51, + 8, + 255, + 51, + 9, + 14, + 198, + 152, + 11, + 51, + 4, + 0, + 0, + 4, + 131, + 68, + 255, + 171, + 75, + 125, + 4, + 51, + 5, + 11, + 51, + 8, + 255, + 51, + 9, + 31, + 198, + 152, + 11, + 51, + 4, + 1, + 171, + 75, + 106, + 4, + 51, + 5, + 12, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 198, + 152, + 11, + 51, + 4, + 0, + 32, + 33, + 33, + 131, + 68, + 33, + 1, + 171, + 75, + 74, + 4, + 51, + 5, + 13, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 1, + 198, + 152, + 11, + 51, + 4, + 0, + 144, + 144, + 16, + 131, + 68, + 144, + 0, + 171, + 75, + 41, + 4, + 51, + 5, + 14, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 7, + 198, + 152, + 11, + 51, + 4, + 0, + 64, + 66, + 131, + 68, + 66, + 2, + 171, + 75, + 9, + 4, + 51, + 5, + 15, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 14, + 198, + 152, + 11, + 51, + 4, + 0, + 128, + 0, + 131, + 68, + 132, + 4, + 171, + 75, + 233, + 3, + 51, + 5, + 16, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 31, + 198, + 152, + 11, + 51, + 4, + 171, + 75, + 208, + 3, + 51, + 5, + 17, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 224, + 198, + 152, + 11, + 51, + 4, + 0, + 32, + 33, + 33, + 131, + 68, + 33, + 1, + 171, + 75, + 175, + 3, + 51, + 5, + 18, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 225, + 198, + 152, + 11, + 51, + 4, + 0, + 144, + 144, + 16, + 131, + 68, + 144, + 0, + 171, + 75, + 142, + 3, + 51, + 5, + 19, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 231, + 198, + 152, + 11, + 51, + 4, + 0, + 64, + 66, + 131, + 68, + 66, + 2, + 171, + 75, + 110, + 3, + 51, + 5, + 20, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 238, + 198, + 152, + 11, + 51, + 4, + 0, + 128, + 0, + 131, + 68, + 132, + 4, + 171, + 75, + 78, + 3, + 51, + 5, + 21, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 255, + 198, + 152, + 11, + 51, + 4, + 171, + 75, + 53, + 3, + 51, + 5, + 44, + 51, + 8, + 0, + 32, + 241, + 131, + 136, + 69, + 3, + 151, + 136, + 12, + 149, + 136, + 120, + 6, + 51, + 9, + 198, + 152, + 11, + 51, + 4, + 0, + 80, + 52, + 18, + 131, + 68, + 120, + 6, + 171, + 75, + 15, + 3, + 51, + 5, + 45, + 51, + 8, + 0, + 32, + 241, + 131, + 136, + 69, + 3, + 151, + 136, + 12, + 149, + 136, + 120, + 6, + 51, + 9, + 4, + 198, + 152, + 11, + 51, + 4, + 0, + 64, + 35, + 1, + 131, + 68, + 103, + 5, + 171, + 75, + 232, + 2, + 51, + 5, + 46, + 51, + 8, + 0, + 32, + 9, + 131, + 136, + 69, + 3, + 151, + 136, + 12, + 149, + 136, + 120, + 6, + 51, + 9, + 198, + 152, + 11, + 51, + 4, + 0, + 80, + 52, + 146, + 131, + 68, + 120, + 6, + 171, + 75, + 194, + 2, + 51, + 5, + 47, + 51, + 8, + 0, + 32, + 9, + 131, + 136, + 69, + 3, + 151, + 136, + 12, + 149, + 136, + 120, + 6, + 51, + 9, + 4, + 198, + 152, + 11, + 51, + 4, + 0, + 64, + 35, + 9, + 131, + 68, + 103, + 5, + 171, + 75, + 155, + 2, + 51, + 5, + 22, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 7, + 198, + 152, + 8, + 51, + 4, + 0, + 0, + 0, + 1, + 171, + 72, + 130, + 2, + 51, + 5, + 23, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 14, + 198, + 152, + 9, + 51, + 4, + 0, + 0, + 2, + 171, + 73, + 106, + 2, + 51, + 5, + 24, + 51, + 8, + 7, + 198, + 136, + 8, + 51, + 4, + 171, + 72, + 91, + 2, + 51, + 5, + 25, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 0, + 128, + 51, + 1, + 7, + 198, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 236, + 51, + 4, + 0, + 0, + 0, + 1, + 171, + 67, + 52, + 2, + 51, + 5, + 26, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 0, + 128, + 51, + 1, + 14, + 198, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 236, + 51, + 4, + 0, + 0, + 2, + 171, + 67, + 14, + 2, + 51, + 5, + 27, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 0, + 128, + 51, + 1, + 31, + 198, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 236, + 51, + 4, + 1, + 171, + 67, + 234, + 1, + 51, + 5, + 28, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 0, + 128, + 51, + 1, + 7, + 198, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 0, + 0, + 0, + 1, + 171, + 75, + 197, + 1, + 51, + 5, + 29, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 0, + 128, + 51, + 1, + 14, + 198, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 0, + 0, + 2, + 171, + 75, + 161, + 1, + 51, + 5, + 30, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 0, + 128, + 51, + 1, + 31, + 198, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 1, + 171, + 75, + 127, + 1, + 51, + 5, + 31, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 0, + 128, + 51, + 1, + 7, + 198, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 0, + 0, + 0, + 1, + 171, + 75, + 90, + 1, + 51, + 5, + 32, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 0, + 128, + 51, + 1, + 14, + 198, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 0, + 0, + 2, + 171, + 75, + 54, + 1, + 51, + 5, + 33, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 0, + 128, + 51, + 1, + 31, + 198, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 1, + 171, + 75, + 20, + 1, + 51, + 5, + 34, + 51, + 10, + 1, + 51, + 1, + 7, + 51, + 0, + 0, + 0, + 0, + 128, + 198, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 0, + 0, + 0, + 1, + 171, + 75, + 239, + 0, + 51, + 5, + 35, + 51, + 10, + 1, + 51, + 1, + 14, + 51, + 0, + 0, + 0, + 0, + 128, + 198, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 0, + 0, + 2, + 171, + 75, + 203, + 0, + 51, + 5, + 36, + 51, + 10, + 1, + 51, + 1, + 31, + 51, + 0, + 0, + 0, + 0, + 128, + 198, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 1, + 171, + 75, + 169, + 0, + 51, + 5, + 37, + 51, + 10, + 1, + 51, + 1, + 7, + 51, + 0, + 0, + 0, + 0, + 128, + 198, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 0, + 0, + 0, + 1, + 171, + 75, + 132, + 0, + 51, + 5, + 38, + 51, + 10, + 1, + 51, + 1, + 14, + 51, + 0, + 0, + 0, + 0, + 128, + 198, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 0, + 0, + 2, + 171, + 75, + 96, + 51, + 5, + 39, + 51, + 10, + 1, + 51, + 1, + 31, + 51, + 0, + 0, + 0, + 0, + 128, + 198, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 238, + 51, + 4, + 1, + 171, + 75, + 63, + 51, + 5, + 40, + 51, + 0, + 15, + 145, + 1, + 51, + 4, + 171, + 65, + 50, + 51, + 5, + 41, + 51, + 0, + 32, + 139, + 1, + 51, + 4, + 32, + 171, + 65, + 36, + 51, + 5, + 42, + 51, + 0, + 51, + 4, + 171, + 64, + 26, + 51, + 5, + 43, + 51, + 0, + 0, + 4, + 51, + 1, + 0, + 16, + 131, + 17, + 0, + 248, + 51, + 4, + 82, + 4, + 6, + 82, + 5, + 4, + 0, + 40, + 162, + 250, + 33, + 41, + 65, + 9, + 34, + 65, + 18, + 68, + 130, + 36, + 136, + 4, + 73, + 136, + 4, + 73, + 18, + 73, + 73, + 36, + 73, + 144, + 72, + 146, + 32, + 145, + 36, + 33, + 145, + 36, + 137, + 4, + 81, + 130, + 136, + 4, + 145, + 4, + 17, + 9, + 34, + 9, + 17, + 9, + 34, + 9, + 17, + 9, + 34, + 41, + 18, + 68, + 18, + 68, + 36, + 136, + 36, + 136, + 72, + 16, + 73, + 136, + 72, + 16, + 73, + 136, + 72, + 16, + 73, + 145, + 16, + 137, + 18, + 68, + 36, + 68, + 34, + 9, + 34, + 18, + 34, + 81, + 130, + 136, + 132, + 72, + 36, + 65, + 68, + 130, + 36, + 136, + 4, + 73, + 136, + 36, + 69, + 26, + 36, + 37, + 9, + 34, + 13, + 146, + 146, + 132, + 72, + 131, + 164, + 36, + 137, + 52, + 72, + 146, + 4, + 145, + 6, + 73, + 146, + 16, + 105, + 144, + 36, + 73, + 164, + 65, + 146, + 36, + 136, + 52, + 72, + 146, + 132, + 72, + 131, + 36, + 73, + 34, + 77, + 144, + 36, + 65, + 164, + 9, + 146, + 36, + 68, + 154, + 32, + 73, + 18, + 105, + 130, + 36, + 9, + 34, + 77, + 144, + 36, + 33, + 105, + 130, + 36, + 73, + 146, + 74, + 82, + 146, + 74, + 34, + 162, + 100, + 0 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 2048, + 2, + 1, + 0, + 43, + 0, + 0, + 0, + 131072, + 2, + 1, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9514 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_sub.json b/pvm/programs/riscv_rv64ui_sub.json new file mode 100644 index 00000000..cdf1a3fb --- /dev/null +++ b/pvm/programs/riscv_rv64ui_sub.json @@ -0,0 +1,1102 @@ +{ + "name": "riscv_rv64ui_sub", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 131, + 169, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 8, + 51, + 9, + 201, + 152, + 11, + 51, + 4, + 171, + 75, + 140, + 3, + 51, + 5, + 3, + 51, + 8, + 1, + 51, + 9, + 1, + 201, + 152, + 11, + 51, + 4, + 171, + 75, + 122, + 3, + 51, + 5, + 4, + 51, + 8, + 3, + 51, + 9, + 7, + 201, + 152, + 11, + 51, + 4, + 252, + 171, + 75, + 103, + 3, + 51, + 5, + 5, + 51, + 8, + 51, + 9, + 0, + 128, + 201, + 152, + 11, + 51, + 4, + 0, + 128, + 0, + 171, + 75, + 82, + 3, + 51, + 5, + 6, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 201, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 58, + 3, + 51, + 5, + 7, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 0, + 128, + 201, + 152, + 11, + 51, + 4, + 0, + 128, + 0, + 128, + 171, + 75, + 32, + 3, + 51, + 5, + 8, + 51, + 8, + 51, + 9, + 0, + 128, + 0, + 131, + 153, + 255, + 201, + 152, + 11, + 51, + 4, + 0, + 128, + 131, + 68, + 1, + 171, + 75, + 5, + 3, + 51, + 5, + 9, + 51, + 8, + 0, + 0, + 0, + 128, + 131, + 136, + 255, + 51, + 9, + 201, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 128, + 131, + 68, + 255, + 171, + 75, + 231, + 2, + 51, + 5, + 10, + 51, + 8, + 0, + 0, + 0, + 128, + 131, + 136, + 255, + 51, + 9, + 0, + 128, + 0, + 131, + 153, + 255, + 201, + 152, + 11, + 51, + 4, + 0, + 128, + 255, + 127, + 171, + 75, + 198, + 2, + 51, + 5, + 11, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 0, + 128, + 0, + 131, + 153, + 255, + 201, + 152, + 11, + 51, + 4, + 0, + 0, + 255, + 131, + 68, + 255, + 151, + 68, + 15, + 149, + 68, + 1, + 171, + 75, + 160, + 2, + 51, + 5, + 12, + 51, + 8, + 0, + 0, + 0, + 128, + 131, + 136, + 255, + 51, + 9, + 0, + 128, + 201, + 152, + 11, + 51, + 4, + 0, + 0, + 1, + 131, + 68, + 1, + 151, + 68, + 15, + 149, + 68, + 255, + 171, + 75, + 123, + 2, + 51, + 5, + 13, + 51, + 8, + 51, + 9, + 255, + 201, + 152, + 11, + 51, + 4, + 1, + 171, + 75, + 105, + 2, + 51, + 5, + 14, + 51, + 8, + 255, + 51, + 9, + 1, + 201, + 152, + 11, + 51, + 4, + 254, + 171, + 75, + 86, + 2, + 51, + 5, + 15, + 51, + 8, + 255, + 51, + 9, + 255, + 201, + 152, + 11, + 51, + 4, + 171, + 75, + 68, + 2, + 51, + 5, + 16, + 51, + 8, + 13, + 51, + 9, + 11, + 201, + 152, + 8, + 51, + 4, + 2, + 171, + 72, + 49, + 2, + 51, + 5, + 17, + 51, + 8, + 14, + 51, + 9, + 11, + 201, + 152, + 9, + 51, + 4, + 3, + 171, + 73, + 30, + 2, + 51, + 5, + 18, + 51, + 8, + 13, + 201, + 136, + 8, + 51, + 4, + 171, + 72, + 15, + 2, + 51, + 5, + 19, + 51, + 10, + 1, + 51, + 0, + 13, + 51, + 1, + 11, + 201, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 2, + 171, + 67, + 238, + 1, + 51, + 5, + 20, + 51, + 10, + 1, + 51, + 0, + 14, + 51, + 1, + 11, + 201, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 3, + 171, + 67, + 205, + 1, + 51, + 5, + 21, + 51, + 10, + 1, + 51, + 0, + 15, + 51, + 1, + 11, + 201, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 4, + 171, + 67, + 172, + 1, + 51, + 5, + 22, + 51, + 10, + 1, + 51, + 0, + 13, + 51, + 1, + 11, + 201, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 2, + 171, + 75, + 141, + 1, + 51, + 5, + 23, + 51, + 10, + 1, + 51, + 0, + 14, + 51, + 1, + 11, + 201, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 3, + 171, + 75, + 110, + 1, + 51, + 5, + 24, + 51, + 10, + 1, + 51, + 0, + 15, + 51, + 1, + 11, + 201, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 4, + 171, + 75, + 79, + 1, + 51, + 5, + 25, + 51, + 10, + 1, + 51, + 0, + 13, + 51, + 1, + 11, + 201, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 2, + 171, + 75, + 48, + 1, + 51, + 5, + 26, + 51, + 10, + 1, + 51, + 0, + 14, + 51, + 1, + 11, + 201, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 3, + 171, + 75, + 17, + 1, + 51, + 5, + 27, + 51, + 10, + 1, + 51, + 0, + 15, + 51, + 1, + 11, + 201, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 4, + 171, + 75, + 242, + 0, + 51, + 5, + 28, + 51, + 10, + 1, + 51, + 1, + 11, + 51, + 0, + 13, + 201, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 2, + 171, + 75, + 211, + 0, + 51, + 5, + 29, + 51, + 10, + 1, + 51, + 1, + 11, + 51, + 0, + 14, + 201, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 3, + 171, + 75, + 180, + 0, + 51, + 5, + 30, + 51, + 10, + 1, + 51, + 1, + 11, + 51, + 0, + 15, + 201, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 4, + 171, + 75, + 149, + 0, + 51, + 5, + 31, + 51, + 10, + 1, + 51, + 1, + 11, + 51, + 0, + 13, + 201, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 2, + 171, + 75, + 118, + 51, + 5, + 32, + 51, + 10, + 1, + 51, + 1, + 11, + 51, + 0, + 14, + 201, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 3, + 171, + 75, + 88, + 51, + 5, + 33, + 51, + 10, + 1, + 51, + 1, + 11, + 51, + 0, + 15, + 201, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 4, + 171, + 75, + 58, + 51, + 5, + 34, + 51, + 0, + 241, + 154, + 1, + 51, + 4, + 15, + 171, + 65, + 44, + 51, + 5, + 35, + 51, + 0, + 32, + 149, + 1, + 51, + 4, + 32, + 171, + 65, + 30, + 51, + 5, + 36, + 51, + 0, + 51, + 4, + 171, + 64, + 20, + 51, + 5, + 37, + 51, + 0, + 16, + 51, + 1, + 30, + 51, + 4, + 82, + 4, + 6, + 82, + 5, + 4, + 0, + 40, + 90, + 252, + 33, + 41, + 149, + 34, + 73, + 138, + 36, + 73, + 164, + 72, + 136, + 4, + 37, + 136, + 4, + 145, + 32, + 82, + 72, + 34, + 145, + 32, + 37, + 72, + 36, + 72, + 72, + 130, + 72, + 16, + 146, + 144, + 36, + 18, + 36, + 18, + 146, + 68, + 74, + 18, + 73, + 146, + 72, + 146, + 34, + 73, + 18, + 73, + 146, + 72, + 82, + 164, + 73, + 74, + 146, + 72, + 147, + 148, + 36, + 145, + 38, + 41, + 73, + 34, + 77, + 146, + 36, + 145, + 38, + 73, + 146, + 72, + 147, + 36, + 73, + 164, + 73, + 146, + 36, + 210, + 36, + 73, + 18, + 105, + 146, + 36, + 137, + 52, + 73, + 146, + 68, + 154, + 36, + 73, + 34, + 77, + 146, + 36, + 145, + 38, + 73, + 146, + 164, + 73, + 146, + 36, + 105, + 146, + 36, + 73, + 82, + 146, + 148, + 164, + 146, + 164, + 100, + 0 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 30, + 2, + 4, + 0, + 37, + 0, + 0, + 0, + 3, + 2, + 4, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9599 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_subw.json b/pvm/programs/riscv_rv64ui_subw.json new file mode 100644 index 00000000..d5d95e72 --- /dev/null +++ b/pvm/programs/riscv_rv64ui_subw.json @@ -0,0 +1,1090 @@ +{ + "name": "riscv_rv64ui_subw", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 131, + 159, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 8, + 51, + 9, + 191, + 152, + 11, + 51, + 4, + 171, + 75, + 130, + 3, + 51, + 5, + 3, + 51, + 8, + 1, + 51, + 9, + 1, + 191, + 152, + 11, + 51, + 4, + 171, + 75, + 112, + 3, + 51, + 5, + 4, + 51, + 8, + 3, + 51, + 9, + 7, + 191, + 152, + 11, + 51, + 4, + 252, + 171, + 75, + 93, + 3, + 51, + 5, + 5, + 51, + 8, + 51, + 9, + 0, + 128, + 191, + 152, + 11, + 51, + 4, + 0, + 128, + 0, + 171, + 75, + 72, + 3, + 51, + 5, + 6, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 191, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 48, + 3, + 51, + 5, + 7, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 0, + 128, + 191, + 152, + 11, + 51, + 4, + 0, + 128, + 0, + 128, + 171, + 75, + 22, + 3, + 51, + 5, + 8, + 51, + 8, + 51, + 9, + 0, + 128, + 0, + 131, + 153, + 255, + 191, + 152, + 11, + 51, + 4, + 0, + 128, + 131, + 68, + 1, + 171, + 75, + 251, + 2, + 51, + 5, + 9, + 51, + 8, + 0, + 0, + 0, + 128, + 131, + 136, + 255, + 51, + 9, + 191, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 128, + 131, + 68, + 255, + 171, + 75, + 221, + 2, + 51, + 5, + 10, + 51, + 8, + 0, + 0, + 0, + 128, + 131, + 136, + 255, + 51, + 9, + 0, + 128, + 0, + 131, + 153, + 255, + 191, + 152, + 11, + 51, + 4, + 0, + 128, + 255, + 127, + 171, + 75, + 188, + 2, + 51, + 5, + 11, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 0, + 128, + 0, + 131, + 153, + 255, + 191, + 152, + 11, + 51, + 4, + 0, + 128, + 255, + 127, + 131, + 68, + 1, + 171, + 75, + 155, + 2, + 51, + 5, + 12, + 51, + 8, + 0, + 0, + 0, + 128, + 131, + 136, + 255, + 51, + 9, + 0, + 128, + 191, + 152, + 11, + 51, + 4, + 0, + 128, + 0, + 128, + 131, + 68, + 255, + 171, + 75, + 123, + 2, + 51, + 5, + 13, + 51, + 8, + 51, + 9, + 255, + 191, + 152, + 11, + 51, + 4, + 1, + 171, + 75, + 105, + 2, + 51, + 5, + 14, + 51, + 8, + 255, + 51, + 9, + 1, + 191, + 152, + 11, + 51, + 4, + 254, + 171, + 75, + 86, + 2, + 51, + 5, + 15, + 51, + 8, + 255, + 51, + 9, + 255, + 191, + 152, + 11, + 51, + 4, + 171, + 75, + 68, + 2, + 51, + 5, + 16, + 51, + 8, + 13, + 51, + 9, + 11, + 191, + 152, + 8, + 51, + 4, + 2, + 171, + 72, + 49, + 2, + 51, + 5, + 17, + 51, + 8, + 14, + 51, + 9, + 11, + 191, + 152, + 9, + 51, + 4, + 3, + 171, + 73, + 30, + 2, + 51, + 5, + 18, + 51, + 8, + 13, + 191, + 136, + 8, + 51, + 4, + 171, + 72, + 15, + 2, + 51, + 5, + 19, + 51, + 10, + 1, + 51, + 0, + 13, + 51, + 1, + 11, + 191, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 2, + 171, + 67, + 238, + 1, + 51, + 5, + 20, + 51, + 10, + 1, + 51, + 0, + 14, + 51, + 1, + 11, + 191, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 3, + 171, + 67, + 205, + 1, + 51, + 5, + 21, + 51, + 10, + 1, + 51, + 0, + 15, + 51, + 1, + 11, + 191, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 4, + 171, + 67, + 172, + 1, + 51, + 5, + 22, + 51, + 10, + 1, + 51, + 0, + 13, + 51, + 1, + 11, + 191, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 2, + 171, + 75, + 141, + 1, + 51, + 5, + 23, + 51, + 10, + 1, + 51, + 0, + 14, + 51, + 1, + 11, + 191, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 3, + 171, + 75, + 110, + 1, + 51, + 5, + 24, + 51, + 10, + 1, + 51, + 0, + 15, + 51, + 1, + 11, + 191, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 4, + 171, + 75, + 79, + 1, + 51, + 5, + 25, + 51, + 10, + 1, + 51, + 0, + 13, + 51, + 1, + 11, + 191, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 2, + 171, + 75, + 48, + 1, + 51, + 5, + 26, + 51, + 10, + 1, + 51, + 0, + 14, + 51, + 1, + 11, + 191, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 3, + 171, + 75, + 17, + 1, + 51, + 5, + 27, + 51, + 10, + 1, + 51, + 0, + 15, + 51, + 1, + 11, + 191, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 4, + 171, + 75, + 242, + 0, + 51, + 5, + 28, + 51, + 10, + 1, + 51, + 1, + 11, + 51, + 0, + 13, + 191, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 2, + 171, + 75, + 211, + 0, + 51, + 5, + 29, + 51, + 10, + 1, + 51, + 1, + 11, + 51, + 0, + 14, + 191, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 3, + 171, + 75, + 180, + 0, + 51, + 5, + 30, + 51, + 10, + 1, + 51, + 1, + 11, + 51, + 0, + 15, + 191, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 4, + 171, + 75, + 149, + 0, + 51, + 5, + 31, + 51, + 10, + 1, + 51, + 1, + 11, + 51, + 0, + 13, + 191, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 2, + 171, + 75, + 118, + 51, + 5, + 32, + 51, + 10, + 1, + 51, + 1, + 11, + 51, + 0, + 14, + 191, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 3, + 171, + 75, + 88, + 51, + 5, + 33, + 51, + 10, + 1, + 51, + 1, + 11, + 51, + 0, + 15, + 191, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 4, + 171, + 75, + 58, + 51, + 5, + 34, + 51, + 0, + 241, + 141, + 1, + 51, + 4, + 15, + 171, + 65, + 44, + 51, + 5, + 35, + 51, + 0, + 32, + 131, + 1, + 51, + 4, + 32, + 171, + 65, + 30, + 51, + 5, + 36, + 51, + 0, + 51, + 4, + 171, + 64, + 20, + 51, + 5, + 37, + 51, + 0, + 16, + 51, + 1, + 30, + 51, + 4, + 82, + 4, + 6, + 82, + 5, + 4, + 0, + 40, + 100, + 252, + 33, + 41, + 149, + 34, + 73, + 138, + 36, + 73, + 164, + 72, + 136, + 4, + 37, + 136, + 4, + 145, + 32, + 82, + 72, + 34, + 145, + 32, + 37, + 72, + 36, + 72, + 72, + 130, + 72, + 16, + 146, + 32, + 145, + 32, + 145, + 32, + 145, + 146, + 68, + 146, + 36, + 146, + 164, + 72, + 146, + 68, + 146, + 36, + 146, + 20, + 105, + 146, + 146, + 36, + 210, + 36, + 37, + 73, + 164, + 73, + 74, + 146, + 72, + 147, + 36, + 73, + 164, + 73, + 146, + 36, + 210, + 36, + 73, + 18, + 105, + 146, + 36, + 137, + 52, + 73, + 146, + 68, + 154, + 36, + 73, + 34, + 77, + 146, + 36, + 145, + 38, + 73, + 146, + 72, + 147, + 36, + 73, + 164, + 73, + 146, + 36, + 105, + 146, + 36, + 73, + 154, + 36, + 73, + 146, + 148, + 36, + 37, + 169, + 36, + 41, + 25 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 30, + 2, + 4, + 0, + 37, + 0, + 0, + 0, + 3, + 2, + 4, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9603 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_sw.json b/pvm/programs/riscv_rv64ui_sw.json new file mode 100644 index 00000000..eab4390b --- /dev/null +++ b/pvm/programs/riscv_rv64ui_sw.json @@ -0,0 +1,1560 @@ +{ + "name": "riscv_rv64ui_sw", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [ + { + "address": 65536, + "length": 4096, + "is-writable": false + }, + { + "address": 196608, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [ + { + "address": 65538, + "contents": [ + 3 + ] + }, + { + "address": 65544, + "contents": [ + 2 + ] + }, + { + "address": 65552, + "contents": [ + 4 + ] + }, + { + "address": 65560, + "contents": [ + 6 + ] + }, + { + "address": 65568, + "contents": [ + 8 + ] + }, + { + "address": 65576, + "contents": [ + 28 + ] + }, + { + "address": 65578, + "contents": [ + 3 + ] + }, + { + "address": 65584, + "contents": [ + 10 + ] + }, + { + "address": 65592, + "contents": [ + 12 + ] + }, + { + "address": 65600, + "contents": [ + 14 + ] + }, + { + "address": 65608, + "contents": [ + 16 + ] + }, + { + "address": 65616, + "contents": [ + 32 + ] + }, + { + "address": 65618, + "contents": [ + 3 + ] + }, + { + "address": 65624, + "contents": [ + 36 + ] + }, + { + "address": 65626, + "contents": [ + 3 + ] + }, + { + "address": 196608, + "contents": [ + 239, + 190, + 173, + 222, + 239, + 190, + 173, + 222, + 239, + 190, + 173, + 222, + 239, + 190, + 173, + 222, + 239, + 190, + 173, + 222, + 239, + 190, + 173, + 222, + 239, + 190, + 173, + 222, + 239, + 190, + 173, + 222, + 239, + 190, + 173, + 222, + 239, + 190, + 173, + 222 + ] + } + ], + "initial-gas": 10000, + "program": [ + 8, + 2, + 132, + 44, + 42, + 0, + 90, + 0, + 138, + 0, + 185, + 0, + 232, + 0, + 24, + 1, + 72, + 1, + 117, + 1, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 58, + 1, + 0, + 0, + 1, + 51, + 0, + 0, + 0, + 170, + 0, + 131, + 0, + 170, + 0, + 58, + 12, + 8, + 0, + 1, + 122, + 16, + 129, + 27, + 40, + 5, + 100, + 11, + 1, + 51, + 4, + 0, + 0, + 170, + 0, + 131, + 68, + 170, + 0, + 171, + 75, + 241, + 3, + 51, + 5, + 3, + 58, + 1, + 0, + 0, + 1, + 51, + 0, + 0, + 176, + 0, + 170, + 131, + 0, + 0, + 250, + 58, + 12, + 16, + 0, + 1, + 122, + 16, + 4, + 129, + 27, + 4, + 40, + 5, + 100, + 11, + 1, + 51, + 4, + 0, + 176, + 0, + 170, + 131, + 68, + 0, + 250, + 171, + 75, + 193, + 3, + 51, + 5, + 4, + 58, + 1, + 0, + 0, + 1, + 51, + 0, + 0, + 16, + 160, + 10, + 131, + 0, + 160, + 250, + 58, + 12, + 24, + 0, + 1, + 122, + 16, + 8, + 129, + 27, + 8, + 40, + 5, + 100, + 11, + 1, + 51, + 4, + 0, + 16, + 160, + 10, + 131, + 68, + 160, + 250, + 171, + 75, + 145, + 3, + 51, + 5, + 5, + 58, + 1, + 0, + 0, + 1, + 51, + 0, + 0, + 160, + 10, + 160, + 131, + 0, + 10, + 58, + 12, + 32, + 0, + 1, + 122, + 16, + 12, + 129, + 27, + 12, + 40, + 5, + 100, + 11, + 1, + 51, + 4, + 0, + 160, + 10, + 160, + 131, + 68, + 10, + 171, + 75, + 99, + 3, + 51, + 5, + 6, + 58, + 1, + 40, + 0, + 1, + 51, + 0, + 0, + 0, + 170, + 0, + 131, + 0, + 170, + 0, + 58, + 12, + 48, + 0, + 1, + 122, + 16, + 244, + 129, + 27, + 244, + 40, + 5, + 100, + 11, + 1, + 51, + 4, + 0, + 0, + 170, + 0, + 131, + 68, + 170, + 0, + 171, + 75, + 51, + 3, + 51, + 5, + 7, + 58, + 1, + 40, + 0, + 1, + 51, + 0, + 0, + 176, + 0, + 170, + 131, + 0, + 0, + 250, + 58, + 12, + 56, + 0, + 1, + 122, + 16, + 248, + 129, + 27, + 248, + 40, + 5, + 100, + 11, + 1, + 51, + 4, + 0, + 176, + 0, + 170, + 131, + 68, + 0, + 250, + 171, + 75, + 3, + 3, + 51, + 5, + 8, + 58, + 1, + 40, + 0, + 1, + 51, + 0, + 0, + 16, + 160, + 10, + 131, + 0, + 160, + 250, + 58, + 12, + 64, + 0, + 1, + 122, + 16, + 252, + 129, + 27, + 252, + 40, + 5, + 100, + 11, + 1, + 51, + 4, + 0, + 16, + 160, + 10, + 131, + 68, + 160, + 250, + 171, + 75, + 211, + 2, + 51, + 5, + 9, + 58, + 1, + 40, + 0, + 1, + 51, + 0, + 0, + 160, + 10, + 160, + 131, + 0, + 10, + 58, + 12, + 72, + 0, + 1, + 122, + 16, + 129, + 27, + 40, + 5, + 100, + 11, + 1, + 51, + 4, + 0, + 160, + 10, + 160, + 131, + 68, + 10, + 171, + 75, + 167, + 2, + 51, + 5, + 10, + 58, + 0, + 80, + 0, + 1, + 51, + 1, + 0, + 80, + 52, + 18, + 131, + 17, + 120, + 6, + 149, + 7, + 224, + 122, + 113, + 32, + 129, + 2, + 51, + 4, + 0, + 80, + 52, + 18, + 131, + 68, + 120, + 6, + 171, + 66, + 127, + 2, + 51, + 5, + 11, + 58, + 0, + 80, + 0, + 1, + 51, + 1, + 0, + 48, + 33, + 88, + 131, + 17, + 152, + 0, + 149, + 0, + 253, + 122, + 1, + 7, + 58, + 7, + 88, + 0, + 1, + 129, + 114, + 51, + 4, + 0, + 48, + 33, + 88, + 131, + 68, + 152, + 0, + 171, + 66, + 82, + 2, + 51, + 5, + 12, + 51, + 7, + 1, + 51, + 10, + 0, + 208, + 187, + 170, + 131, + 170, + 221, + 252, + 58, + 9, + 0, + 0, + 1, + 122, + 154, + 129, + 155, + 51, + 4, + 0, + 208, + 187, + 170, + 131, + 68, + 221, + 252, + 171, + 75, + 43, + 2, + 149, + 119, + 1, + 51, + 2, + 2, + 171, + 39, + 217, + 51, + 5, + 13, + 51, + 7, + 1, + 51, + 10, + 0, + 192, + 171, + 218, + 131, + 170, + 205, + 252, + 58, + 9, + 0, + 0, + 1, + 122, + 154, + 4, + 129, + 155, + 4, + 51, + 4, + 0, + 192, + 171, + 218, + 131, + 68, + 205, + 252, + 171, + 75, + 249, + 1, + 149, + 119, + 1, + 51, + 2, + 2, + 171, + 39, + 215, + 51, + 5, + 14, + 51, + 7, + 1, + 51, + 10, + 0, + 192, + 170, + 221, + 131, + 170, + 204, + 251, + 58, + 9, + 0, + 0, + 1, + 122, + 154, + 8, + 129, + 155, + 8, + 51, + 4, + 0, + 192, + 170, + 221, + 131, + 68, + 204, + 251, + 171, + 75, + 199, + 1, + 149, + 119, + 1, + 51, + 2, + 2, + 171, + 39, + 215, + 51, + 5, + 15, + 51, + 7, + 1, + 51, + 10, + 0, + 176, + 218, + 205, + 131, + 170, + 188, + 251, + 58, + 9, + 0, + 0, + 1, + 122, + 154, + 12, + 129, + 155, + 12, + 51, + 4, + 0, + 176, + 218, + 205, + 131, + 68, + 188, + 251, + 171, + 75, + 149, + 1, + 149, + 119, + 1, + 51, + 2, + 2, + 171, + 39, + 215, + 51, + 5, + 16, + 51, + 7, + 1, + 51, + 10, + 0, + 176, + 221, + 204, + 131, + 170, + 187, + 250, + 58, + 9, + 0, + 0, + 1, + 122, + 154, + 16, + 129, + 155, + 16, + 51, + 4, + 0, + 176, + 221, + 204, + 131, + 68, + 187, + 250, + 171, + 75, + 99, + 1, + 149, + 119, + 1, + 51, + 2, + 2, + 171, + 39, + 215, + 51, + 5, + 17, + 51, + 7, + 1, + 51, + 10, + 0, + 224, + 205, + 188, + 131, + 170, + 171, + 250, + 58, + 9, + 0, + 0, + 1, + 122, + 154, + 20, + 129, + 155, + 20, + 51, + 4, + 0, + 224, + 205, + 188, + 131, + 68, + 171, + 250, + 171, + 75, + 49, + 1, + 149, + 119, + 1, + 51, + 2, + 2, + 171, + 39, + 215, + 51, + 5, + 18, + 51, + 7, + 1, + 58, + 1, + 0, + 0, + 1, + 51, + 0, + 0, + 32, + 17, + 131, + 0, + 51, + 2, + 122, + 16, + 129, + 27, + 51, + 4, + 0, + 32, + 17, + 131, + 68, + 51, + 2, + 171, + 75, + 3, + 1, + 149, + 119, + 1, + 51, + 2, + 2, + 171, + 39, + 219, + 51, + 5, + 19, + 51, + 7, + 1, + 58, + 1, + 0, + 0, + 1, + 51, + 0, + 0, + 16, + 1, + 48, + 131, + 0, + 35, + 2, + 122, + 16, + 4, + 129, + 27, + 4, + 51, + 4, + 0, + 16, + 1, + 48, + 131, + 68, + 35, + 2, + 171, + 75, + 209, + 0, + 149, + 119, + 1, + 51, + 2, + 2, + 171, + 39, + 215, + 51, + 5, + 20, + 51, + 7, + 1, + 58, + 1, + 0, + 0, + 1, + 51, + 0, + 0, + 16, + 0, + 51, + 131, + 0, + 34, + 1, + 122, + 16, + 8, + 129, + 27, + 8, + 51, + 4, + 0, + 16, + 0, + 51, + 131, + 68, + 34, + 1, + 171, + 75, + 159, + 0, + 149, + 119, + 1, + 51, + 2, + 2, + 171, + 39, + 215, + 51, + 5, + 21, + 51, + 7, + 1, + 58, + 1, + 0, + 0, + 1, + 51, + 0, + 0, + 0, + 48, + 35, + 131, + 0, + 18, + 1, + 122, + 16, + 12, + 129, + 27, + 12, + 51, + 4, + 0, + 0, + 48, + 35, + 131, + 68, + 18, + 1, + 171, + 75, + 109, + 149, + 119, + 1, + 51, + 2, + 2, + 171, + 39, + 216, + 51, + 5, + 22, + 51, + 7, + 1, + 58, + 1, + 0, + 0, + 1, + 51, + 0, + 0, + 0, + 51, + 34, + 131, + 0, + 17, + 122, + 16, + 16, + 129, + 27, + 16, + 51, + 4, + 0, + 0, + 51, + 34, + 131, + 68, + 17, + 171, + 75, + 62, + 149, + 119, + 1, + 51, + 2, + 2, + 171, + 39, + 218, + 51, + 5, + 23, + 51, + 7, + 1, + 58, + 1, + 0, + 0, + 1, + 51, + 0, + 0, + 48, + 35, + 18, + 131, + 0, + 1, + 122, + 16, + 20, + 129, + 27, + 20, + 51, + 4, + 0, + 48, + 35, + 18, + 131, + 68, + 1, + 171, + 75, + 15, + 149, + 119, + 1, + 51, + 2, + 2, + 171, + 39, + 218, + 82, + 5, + 4, + 0, + 40, + 215, + 251, + 33, + 41, + 33, + 136, + 80, + 53, + 136, + 72, + 8, + 34, + 36, + 53, + 136, + 72, + 8, + 34, + 36, + 53, + 136, + 72, + 8, + 18, + 146, + 26, + 36, + 18, + 130, + 8, + 73, + 13, + 34, + 18, + 130, + 8, + 73, + 13, + 34, + 18, + 130, + 8, + 73, + 13, + 34, + 18, + 130, + 132, + 170, + 65, + 34, + 33, + 136, + 164, + 32, + 34, + 33, + 136, + 36, + 20, + 68, + 164, + 65, + 132, + 10, + 34, + 146, + 164, + 65, + 132, + 36, + 136, + 72, + 146, + 6, + 17, + 146, + 32, + 34, + 73, + 26, + 68, + 72, + 130, + 136, + 36, + 105, + 16, + 33, + 9, + 34, + 146, + 164, + 65, + 132, + 36, + 136, + 72, + 146, + 134, + 16, + 21, + 34, + 146, + 164, + 33, + 136, + 36, + 136, + 72, + 146, + 134, + 32, + 146, + 32, + 34, + 73, + 26, + 130, + 72, + 130, + 72, + 146, + 52, + 4, + 73, + 130, + 36, + 73, + 26, + 130, + 36, + 65, + 146, + 36, + 3 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 196608, + 2, + 0, + 304295937, + 23, + 0, + 2, + 0, + 196608, + 18446744072582191787, + 304295937, + 16 + ], + "expected-pc": 11, + "expected-memory": [ + { + "address": 65538, + "contents": [ + 3 + ] + }, + { + "address": 65544, + "contents": [ + 2 + ] + }, + { + "address": 65552, + "contents": [ + 4 + ] + }, + { + "address": 65560, + "contents": [ + 6 + ] + }, + { + "address": 65568, + "contents": [ + 8 + ] + }, + { + "address": 65576, + "contents": [ + 28 + ] + }, + { + "address": 65578, + "contents": [ + 3 + ] + }, + { + "address": 65584, + "contents": [ + 10 + ] + }, + { + "address": 65592, + "contents": [ + 12 + ] + }, + { + "address": 65600, + "contents": [ + 14 + ] + }, + { + "address": 65608, + "contents": [ + 16 + ] + }, + { + "address": 65616, + "contents": [ + 32 + ] + }, + { + "address": 65618, + "contents": [ + 3 + ] + }, + { + "address": 65624, + "contents": [ + 36 + ] + }, + { + "address": 65626, + "contents": [ + 3 + ] + }, + { + "address": 196608, + "contents": [ + 51, + 34, + 17 + ] + }, + { + "address": 196612, + "contents": [ + 35, + 18, + 1, + 48, + 34, + 17 + ] + }, + { + "address": 196619, + "contents": [ + 51, + 18, + 1, + 48, + 35, + 17 + ] + }, + { + "address": 196626, + "contents": [ + 51, + 34, + 1, + 48, + 35, + 18, + 160, + 10, + 160, + 10, + 10, + 160, + 10, + 160, + 120, + 86, + 52, + 18, + 152, + 48, + 33, + 88 + ] + } + ], + "expected-gas": 9585 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_xor.json b/pvm/programs/riscv_rv64ui_xor.json new file mode 100644 index 00000000..4f4a21fd --- /dev/null +++ b/pvm/programs/riscv_rv64ui_xor.json @@ -0,0 +1,1553 @@ +{ + "name": "riscv_rv64ui_xor", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 133, + 58, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 8, + 0, + 0, + 1, + 131, + 136, + 1, + 255, + 151, + 136, + 16, + 149, + 136, + 0, + 255, + 51, + 9, + 0, + 16, + 15, + 15, + 131, + 153, + 15, + 255, + 211, + 152, + 11, + 51, + 4, + 0, + 0, + 15, + 131, + 68, + 255, + 0, + 151, + 68, + 12, + 149, + 68, + 15, + 171, + 75, + 250, + 4, + 51, + 5, + 3, + 51, + 8, + 0, + 16, + 240, + 15, + 131, + 136, + 240, + 51, + 9, + 0, + 16, + 15, + 131, + 153, + 15, + 255, + 151, + 153, + 12, + 149, + 153, + 240, + 0, + 211, + 152, + 11, + 51, + 4, + 0, + 0, + 1, + 131, + 68, + 1, + 255, + 151, + 68, + 16, + 149, + 68, + 0, + 255, + 171, + 75, + 199, + 4, + 51, + 5, + 4, + 51, + 8, + 0, + 0, + 255, + 0, + 131, + 136, + 255, + 0, + 51, + 9, + 0, + 16, + 15, + 15, + 131, + 153, + 15, + 255, + 211, + 152, + 11, + 51, + 4, + 0, + 16, + 240, + 15, + 131, + 68, + 240, + 171, + 75, + 160, + 4, + 51, + 5, + 5, + 51, + 8, + 0, + 0, + 15, + 131, + 136, + 255, + 0, + 151, + 136, + 12, + 149, + 136, + 15, + 51, + 9, + 0, + 16, + 15, + 131, + 153, + 15, + 255, + 151, + 153, + 12, + 149, + 153, + 240, + 0, + 211, + 152, + 11, + 51, + 4, + 0, + 0, + 255, + 0, + 131, + 68, + 255, + 0, + 171, + 75, + 109, + 4, + 51, + 5, + 6, + 51, + 8, + 0, + 0, + 1, + 131, + 136, + 1, + 255, + 151, + 136, + 16, + 149, + 136, + 0, + 255, + 51, + 9, + 0, + 16, + 15, + 15, + 131, + 153, + 15, + 255, + 211, + 152, + 8, + 51, + 4, + 0, + 0, + 15, + 131, + 68, + 255, + 0, + 151, + 68, + 12, + 149, + 68, + 15, + 171, + 72, + 58, + 4, + 51, + 5, + 7, + 51, + 8, + 0, + 0, + 1, + 131, + 136, + 1, + 255, + 151, + 136, + 16, + 149, + 136, + 0, + 255, + 51, + 9, + 0, + 16, + 15, + 15, + 131, + 153, + 15, + 255, + 211, + 152, + 9, + 51, + 4, + 0, + 0, + 15, + 131, + 68, + 255, + 0, + 151, + 68, + 12, + 149, + 68, + 15, + 171, + 73, + 7, + 4, + 51, + 5, + 8, + 51, + 8, + 0, + 0, + 1, + 131, + 136, + 1, + 255, + 151, + 136, + 16, + 149, + 136, + 0, + 255, + 211, + 136, + 8, + 51, + 4, + 171, + 72, + 235, + 3, + 51, + 5, + 9, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 1, + 255, + 151, + 0, + 16, + 149, + 0, + 0, + 255, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 211, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 219, + 51, + 4, + 0, + 0, + 15, + 131, + 68, + 255, + 0, + 151, + 68, + 12, + 149, + 68, + 15, + 171, + 67, + 170, + 3, + 51, + 5, + 10, + 51, + 10, + 1, + 51, + 0, + 0, + 16, + 240, + 15, + 131, + 0, + 240, + 51, + 1, + 0, + 16, + 15, + 131, + 17, + 15, + 255, + 151, + 17, + 12, + 149, + 17, + 240, + 0, + 211, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 220, + 51, + 4, + 0, + 0, + 1, + 131, + 68, + 1, + 255, + 151, + 68, + 16, + 149, + 68, + 0, + 255, + 171, + 67, + 105, + 3, + 51, + 5, + 11, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 255, + 0, + 131, + 0, + 255, + 0, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 211, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 225, + 51, + 4, + 0, + 16, + 240, + 15, + 131, + 68, + 240, + 171, + 67, + 52, + 3, + 51, + 5, + 12, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 1, + 255, + 151, + 0, + 16, + 149, + 0, + 0, + 255, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 211, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 221, + 51, + 4, + 0, + 0, + 15, + 131, + 68, + 255, + 0, + 151, + 68, + 12, + 149, + 68, + 15, + 171, + 75, + 245, + 2, + 51, + 5, + 13, + 51, + 10, + 1, + 51, + 0, + 0, + 16, + 240, + 15, + 131, + 0, + 240, + 51, + 1, + 0, + 16, + 15, + 131, + 17, + 15, + 255, + 151, + 17, + 12, + 149, + 17, + 240, + 0, + 211, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 222, + 51, + 4, + 0, + 0, + 1, + 131, + 68, + 1, + 255, + 151, + 68, + 16, + 149, + 68, + 0, + 255, + 171, + 75, + 182, + 2, + 51, + 5, + 14, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 255, + 0, + 131, + 0, + 255, + 0, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 211, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 227, + 51, + 4, + 0, + 16, + 240, + 15, + 131, + 68, + 240, + 171, + 75, + 131, + 2, + 51, + 5, + 15, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 1, + 255, + 151, + 0, + 16, + 149, + 0, + 0, + 255, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 211, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 221, + 51, + 4, + 0, + 0, + 15, + 131, + 68, + 255, + 0, + 151, + 68, + 12, + 149, + 68, + 15, + 171, + 75, + 68, + 2, + 51, + 5, + 16, + 51, + 10, + 1, + 51, + 0, + 0, + 16, + 240, + 15, + 131, + 0, + 240, + 51, + 1, + 0, + 16, + 15, + 131, + 17, + 15, + 255, + 151, + 17, + 12, + 149, + 17, + 240, + 0, + 211, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 222, + 51, + 4, + 0, + 0, + 1, + 131, + 68, + 1, + 255, + 151, + 68, + 16, + 149, + 68, + 0, + 255, + 171, + 75, + 5, + 2, + 51, + 5, + 17, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 255, + 0, + 131, + 0, + 255, + 0, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 211, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 227, + 51, + 4, + 0, + 16, + 240, + 15, + 131, + 68, + 240, + 171, + 75, + 210, + 1, + 51, + 5, + 18, + 51, + 10, + 1, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 1, + 255, + 151, + 0, + 16, + 149, + 0, + 0, + 255, + 211, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 221, + 51, + 4, + 0, + 0, + 15, + 131, + 68, + 255, + 0, + 151, + 68, + 12, + 149, + 68, + 15, + 171, + 75, + 147, + 1, + 51, + 5, + 19, + 51, + 10, + 1, + 51, + 1, + 0, + 16, + 15, + 131, + 17, + 15, + 255, + 151, + 17, + 12, + 149, + 17, + 240, + 0, + 51, + 0, + 0, + 16, + 240, + 15, + 131, + 0, + 240, + 211, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 222, + 51, + 4, + 0, + 0, + 1, + 131, + 68, + 1, + 255, + 151, + 68, + 16, + 149, + 68, + 0, + 255, + 171, + 75, + 84, + 1, + 51, + 5, + 20, + 51, + 10, + 1, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 51, + 0, + 0, + 0, + 255, + 0, + 131, + 0, + 255, + 0, + 211, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 227, + 51, + 4, + 0, + 16, + 240, + 15, + 131, + 68, + 240, + 171, + 75, + 33, + 1, + 51, + 5, + 21, + 51, + 10, + 1, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 1, + 255, + 151, + 0, + 16, + 149, + 0, + 0, + 255, + 211, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 221, + 51, + 4, + 0, + 0, + 15, + 131, + 68, + 255, + 0, + 151, + 68, + 12, + 149, + 68, + 15, + 171, + 75, + 226, + 0, + 51, + 5, + 22, + 51, + 10, + 1, + 51, + 1, + 0, + 16, + 15, + 131, + 17, + 15, + 255, + 151, + 17, + 12, + 149, + 17, + 240, + 0, + 51, + 0, + 0, + 16, + 240, + 15, + 131, + 0, + 240, + 211, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 222, + 51, + 4, + 0, + 0, + 1, + 131, + 68, + 1, + 255, + 151, + 68, + 16, + 149, + 68, + 0, + 255, + 171, + 75, + 163, + 0, + 51, + 5, + 23, + 51, + 10, + 1, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 51, + 0, + 0, + 0, + 255, + 0, + 131, + 0, + 255, + 0, + 211, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 227, + 51, + 4, + 0, + 16, + 240, + 15, + 131, + 68, + 240, + 171, + 75, + 112, + 51, + 5, + 24, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 1, + 255, + 151, + 0, + 16, + 149, + 0, + 0, + 255, + 133, + 1, + 51, + 4, + 0, + 0, + 1, + 131, + 68, + 1, + 255, + 151, + 68, + 16, + 149, + 68, + 0, + 255, + 171, + 65, + 72, + 51, + 5, + 25, + 51, + 0, + 0, + 0, + 255, + 0, + 131, + 0, + 255, + 0, + 133, + 1, + 51, + 4, + 0, + 0, + 255, + 0, + 131, + 68, + 255, + 0, + 171, + 65, + 44, + 51, + 5, + 26, + 51, + 0, + 51, + 4, + 171, + 64, + 34, + 51, + 5, + 27, + 51, + 0, + 0, + 16, + 17, + 17, + 131, + 0, + 17, + 1, + 51, + 1, + 0, + 32, + 34, + 34, + 131, + 17, + 34, + 2, + 51, + 4, + 82, + 4, + 6, + 82, + 5, + 4, + 0, + 40, + 201, + 250, + 33, + 41, + 33, + 18, + 65, + 36, + 68, + 18, + 9, + 18, + 34, + 145, + 16, + 137, + 72, + 16, + 65, + 36, + 72, + 36, + 68, + 18, + 34, + 145, + 32, + 34, + 33, + 18, + 65, + 36, + 68, + 18, + 9, + 145, + 8, + 34, + 33, + 146, + 72, + 136, + 68, + 138, + 52, + 68, + 34, + 136, + 148, + 36, + 68, + 18, + 105, + 144, + 16, + 137, + 148, + 36, + 68, + 34, + 210, + 32, + 130, + 72, + 73, + 130, + 68, + 26, + 34, + 17, + 68, + 146, + 132, + 72, + 34, + 13, + 18, + 34, + 145, + 36, + 33, + 18, + 145, + 6, + 17, + 68, + 146, + 4, + 137, + 52, + 68, + 34, + 136, + 36, + 9, + 145, + 68, + 26, + 36, + 68, + 34, + 73, + 66, + 36, + 34, + 13, + 34, + 136, + 36, + 9, + 18, + 105, + 16, + 33, + 18, + 73, + 18, + 34, + 137, + 52, + 68, + 34, + 72, + 146, + 132, + 72, + 68, + 26, + 68, + 16, + 73, + 18, + 36, + 210, + 32, + 66, + 36, + 146, + 36, + 68, + 18, + 105, + 136, + 68, + 144, + 36, + 9, + 145, + 136, + 52, + 136, + 32, + 146, + 36, + 72, + 18, + 34, + 81, + 136, + 68, + 18, + 68, + 65, + 36, + 149, + 4, + 17, + 68, + 201, + 0 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 572662306, + 2, + 267390960, + 0, + 27, + 0, + 0, + 0, + 4027576335, + 2, + 267390960, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9487 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64ui_xori.json b/pvm/programs/riscv_rv64ui_xori.json new file mode 100644 index 00000000..c84137ae --- /dev/null +++ b/pvm/programs/riscv_rv64ui_xori.json @@ -0,0 +1,559 @@ +{ + "name": "riscv_rv64ui_xori", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 129, + 199, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 10, + 0, + 16, + 255, + 0, + 131, + 170, + 0, + 255, + 133, + 171, + 15, + 255, + 51, + 4, + 0, + 240, + 0, + 255, + 131, + 68, + 15, + 171, + 75, + 156, + 1, + 51, + 5, + 3, + 51, + 10, + 0, + 16, + 240, + 15, + 131, + 170, + 240, + 133, + 171, + 240, + 0, + 51, + 4, + 0, + 16, + 240, + 15, + 131, + 68, + 0, + 255, + 171, + 75, + 126, + 1, + 51, + 5, + 4, + 51, + 10, + 0, + 16, + 255, + 0, + 131, + 170, + 255, + 248, + 133, + 171, + 15, + 7, + 51, + 4, + 0, + 16, + 255, + 0, + 131, + 68, + 240, + 171, + 75, + 96, + 1, + 51, + 5, + 5, + 51, + 10, + 0, + 240, + 15, + 240, + 131, + 170, + 15, + 133, + 171, + 240, + 0, + 51, + 4, + 0, + 240, + 15, + 240, + 131, + 68, + 255, + 0, + 171, + 75, + 66, + 1, + 51, + 5, + 6, + 51, + 8, + 0, + 240, + 0, + 255, + 131, + 136, + 0, + 7, + 133, + 136, + 15, + 7, + 51, + 4, + 0, + 240, + 0, + 255, + 131, + 68, + 15, + 171, + 72, + 36, + 1, + 51, + 5, + 7, + 51, + 9, + 1, + 51, + 0, + 0, + 16, + 240, + 15, + 131, + 0, + 240, + 133, + 11, + 240, + 0, + 100, + 179, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 235, + 51, + 4, + 0, + 16, + 240, + 15, + 131, + 68, + 0, + 255, + 171, + 67, + 248, + 0, + 51, + 5, + 8, + 51, + 9, + 1, + 51, + 0, + 0, + 16, + 255, + 0, + 131, + 0, + 255, + 248, + 133, + 11, + 15, + 7, + 100, + 179, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 234, + 51, + 4, + 0, + 16, + 255, + 0, + 131, + 68, + 240, + 171, + 67, + 204, + 0, + 51, + 5, + 9, + 51, + 9, + 1, + 51, + 0, + 0, + 240, + 15, + 240, + 131, + 0, + 15, + 133, + 11, + 240, + 0, + 100, + 179, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 235, + 51, + 4, + 0, + 240, + 15, + 240, + 131, + 68, + 255, + 0, + 171, + 67, + 160, + 0, + 51, + 5, + 10, + 51, + 9, + 1, + 51, + 0, + 0, + 16, + 240, + 15, + 131, + 0, + 240, + 133, + 11, + 240, + 0, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 237, + 51, + 4, + 0, + 16, + 240, + 15, + 131, + 68, + 0, + 255, + 171, + 75, + 118, + 51, + 5, + 11, + 51, + 9, + 1, + 51, + 0, + 0, + 16, + 255, + 0, + 131, + 0, + 255, + 133, + 11, + 15, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 238, + 51, + 4, + 0, + 16, + 255, + 0, + 131, + 68, + 240, + 171, + 75, + 79, + 51, + 5, + 12, + 51, + 9, + 1, + 51, + 0, + 0, + 240, + 15, + 240, + 131, + 0, + 15, + 133, + 11, + 240, + 0, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 237, + 51, + 4, + 0, + 240, + 15, + 240, + 131, + 68, + 255, + 0, + 171, + 75, + 38, + 51, + 5, + 13, + 51, + 0, + 240, + 0, + 51, + 4, + 240, + 0, + 171, + 64, + 24, + 51, + 5, + 14, + 51, + 0, + 0, + 0, + 255, + 0, + 131, + 0, + 255, + 0, + 51, + 4, + 82, + 4, + 6, + 82, + 5, + 4, + 0, + 40, + 60, + 254, + 33, + 41, + 65, + 68, + 144, + 72, + 144, + 8, + 34, + 18, + 68, + 4, + 137, + 4, + 137, + 32, + 34, + 65, + 68, + 144, + 72, + 131, + 68, + 73, + 130, + 136, + 52, + 136, + 40, + 73, + 144, + 72, + 131, + 68, + 73, + 130, + 136, + 52, + 72, + 36, + 9, + 34, + 105, + 144, + 36, + 9, + 146, + 52, + 72, + 36, + 9, + 34, + 137, + 72, + 130, + 40, + 25 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 2, + 18446744073442160895, + 0, + 14, + 0, + 0, + 18446744073692835855, + 2, + 18446744073442160655, + 18446744073442160895, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9836 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64um_div.json b/pvm/programs/riscv_rv64um_div.json new file mode 100644 index 00000000..bc39319d --- /dev/null +++ b/pvm/programs/riscv_rv64um_div.json @@ -0,0 +1,267 @@ +{ + "name": "riscv_rv64um_div", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 128, + 195, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 8, + 20, + 51, + 9, + 6, + 204, + 152, + 11, + 51, + 4, + 3, + 171, + 75, + 163, + 0, + 51, + 5, + 3, + 51, + 8, + 236, + 51, + 9, + 6, + 204, + 152, + 11, + 51, + 4, + 253, + 171, + 75, + 144, + 0, + 51, + 5, + 4, + 51, + 8, + 20, + 51, + 9, + 250, + 204, + 152, + 11, + 51, + 4, + 253, + 171, + 75, + 125, + 51, + 5, + 5, + 51, + 8, + 236, + 51, + 9, + 250, + 204, + 152, + 11, + 51, + 4, + 3, + 171, + 75, + 107, + 51, + 5, + 6, + 51, + 8, + 255, + 151, + 136, + 63, + 51, + 9, + 1, + 204, + 152, + 11, + 51, + 4, + 255, + 151, + 68, + 63, + 171, + 75, + 83, + 51, + 5, + 7, + 51, + 8, + 255, + 151, + 136, + 63, + 51, + 9, + 255, + 204, + 152, + 11, + 51, + 4, + 255, + 151, + 68, + 63, + 171, + 75, + 59, + 51, + 5, + 8, + 51, + 8, + 255, + 151, + 136, + 63, + 51, + 9, + 204, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 39, + 51, + 5, + 9, + 51, + 8, + 1, + 51, + 9, + 204, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 22, + 51, + 5, + 10, + 51, + 8, + 51, + 9, + 204, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 6, + 82, + 5, + 4, + 0, + 40, + 64, + 255, + 33, + 41, + 73, + 18, + 73, + 146, + 72, + 146, + 36, + 73, + 146, + 36, + 73, + 146, + 36, + 73, + 146, + 36, + 37, + 73, + 74, + 146, + 74, + 146, + 1 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 0, + 0, + 18446744073709551615, + 10, + 0, + 0, + 0, + 0, + 0, + 18446744073709551615, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9935 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64um_divu.json b/pvm/programs/riscv_rv64um_divu.json new file mode 100644 index 00000000..a8153e30 --- /dev/null +++ b/pvm/programs/riscv_rv64um_divu.json @@ -0,0 +1,292 @@ +{ + "name": "riscv_rv64um_divu", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 128, + 217, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 8, + 20, + 51, + 9, + 6, + 203, + 152, + 11, + 51, + 4, + 3, + 171, + 75, + 185, + 0, + 51, + 5, + 3, + 51, + 8, + 236, + 51, + 9, + 6, + 203, + 152, + 11, + 51, + 4, + 0, + 176, + 170, + 2, + 131, + 68, + 171, + 250, + 151, + 68, + 12, + 149, + 68, + 171, + 250, + 151, + 68, + 12, + 149, + 68, + 171, + 250, + 151, + 68, + 12, + 149, + 68, + 167, + 250, + 171, + 75, + 138, + 0, + 51, + 5, + 4, + 51, + 8, + 20, + 51, + 9, + 250, + 203, + 152, + 11, + 51, + 4, + 171, + 75, + 120, + 51, + 5, + 5, + 51, + 8, + 236, + 51, + 9, + 250, + 203, + 152, + 11, + 51, + 4, + 171, + 75, + 103, + 51, + 5, + 6, + 51, + 8, + 255, + 151, + 136, + 63, + 51, + 9, + 1, + 203, + 152, + 11, + 51, + 4, + 255, + 151, + 68, + 63, + 171, + 75, + 79, + 51, + 5, + 7, + 51, + 8, + 255, + 151, + 136, + 63, + 51, + 9, + 255, + 203, + 152, + 11, + 51, + 4, + 171, + 75, + 59, + 51, + 5, + 8, + 51, + 8, + 255, + 151, + 136, + 63, + 51, + 9, + 203, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 39, + 51, + 5, + 9, + 51, + 8, + 1, + 51, + 9, + 203, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 22, + 51, + 5, + 10, + 51, + 8, + 51, + 9, + 203, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 6, + 82, + 5, + 4, + 0, + 40, + 42, + 255, + 33, + 41, + 73, + 18, + 73, + 18, + 68, + 34, + 145, + 136, + 36, + 41, + 73, + 82, + 146, + 36, + 73, + 146, + 36, + 37, + 73, + 73, + 146, + 146, + 164, + 146, + 100, + 0 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 0, + 0, + 18446744073709551615, + 10, + 0, + 0, + 0, + 0, + 0, + 18446744073709551615, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9929 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64um_divuw.json b/pvm/programs/riscv_rv64um_divuw.json new file mode 100644 index 00000000..0b12f791 --- /dev/null +++ b/pvm/programs/riscv_rv64um_divuw.json @@ -0,0 +1,275 @@ +{ + "name": "riscv_rv64um_divuw", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 128, + 202, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 8, + 20, + 51, + 9, + 6, + 193, + 152, + 11, + 51, + 4, + 3, + 171, + 75, + 170, + 0, + 51, + 5, + 3, + 51, + 8, + 1, + 151, + 136, + 32, + 149, + 136, + 236, + 51, + 9, + 6, + 193, + 152, + 11, + 51, + 4, + 0, + 176, + 170, + 42, + 131, + 68, + 167, + 250, + 171, + 75, + 138, + 0, + 51, + 5, + 4, + 51, + 8, + 20, + 51, + 9, + 250, + 193, + 152, + 11, + 51, + 4, + 171, + 75, + 120, + 51, + 5, + 5, + 51, + 8, + 236, + 51, + 9, + 250, + 193, + 152, + 11, + 51, + 4, + 171, + 75, + 103, + 51, + 5, + 6, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 1, + 193, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 79, + 51, + 5, + 7, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 255, + 193, + 152, + 11, + 51, + 4, + 171, + 75, + 59, + 51, + 5, + 8, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 193, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 39, + 51, + 5, + 9, + 51, + 8, + 1, + 51, + 9, + 193, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 22, + 51, + 5, + 10, + 51, + 8, + 51, + 9, + 193, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 6, + 82, + 5, + 4, + 0, + 40, + 57, + 255, + 33, + 41, + 73, + 18, + 73, + 146, + 4, + 17, + 73, + 82, + 146, + 164, + 36, + 72, + 130, + 36, + 72, + 74, + 130, + 146, + 36, + 37, + 73, + 37, + 201, + 0 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 0, + 0, + 18446744073709551615, + 10, + 0, + 0, + 0, + 0, + 0, + 18446744073709551615, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9937 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64um_divw.json b/pvm/programs/riscv_rv64um_divw.json new file mode 100644 index 00000000..9230e3b0 --- /dev/null +++ b/pvm/programs/riscv_rv64um_divw.json @@ -0,0 +1,267 @@ +{ + "name": "riscv_rv64um_divw", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 128, + 195, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 8, + 20, + 51, + 9, + 6, + 194, + 152, + 11, + 51, + 4, + 3, + 171, + 75, + 163, + 0, + 51, + 5, + 3, + 51, + 8, + 236, + 51, + 9, + 6, + 194, + 152, + 11, + 51, + 4, + 253, + 171, + 75, + 144, + 0, + 51, + 5, + 4, + 51, + 8, + 20, + 51, + 9, + 250, + 194, + 152, + 11, + 51, + 4, + 253, + 171, + 75, + 125, + 51, + 5, + 5, + 51, + 8, + 236, + 51, + 9, + 250, + 194, + 152, + 11, + 51, + 4, + 3, + 171, + 75, + 107, + 51, + 5, + 6, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 1, + 194, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 83, + 51, + 5, + 7, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 255, + 194, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 59, + 51, + 5, + 8, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 194, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 39, + 51, + 5, + 9, + 51, + 8, + 1, + 51, + 9, + 194, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 22, + 51, + 5, + 10, + 51, + 8, + 51, + 9, + 194, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 6, + 82, + 5, + 4, + 0, + 40, + 64, + 255, + 33, + 41, + 73, + 18, + 73, + 146, + 72, + 146, + 36, + 73, + 146, + 4, + 73, + 144, + 4, + 73, + 144, + 4, + 37, + 73, + 74, + 146, + 74, + 146, + 1 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 0, + 0, + 18446744073709551615, + 10, + 0, + 0, + 0, + 0, + 0, + 18446744073709551615, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9940 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64um_mul.json b/pvm/programs/riscv_rv64um_mul.json new file mode 100644 index 00000000..70516f36 --- /dev/null +++ b/pvm/programs/riscv_rv64um_mul.json @@ -0,0 +1,1129 @@ +{ + "name": "riscv_rv64um_mul", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 131, + 193, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 32, + 51, + 8, + 0, + 128, + 0, + 131, + 136, + 0, + 254, + 51, + 9, + 0, + 112, + 219, + 6, + 131, + 153, + 183, + 253, + 151, + 153, + 12, + 149, + 153, + 183, + 253, + 151, + 153, + 12, + 149, + 153, + 183, + 253, + 151, + 153, + 12, + 149, + 153, + 183, + 253, + 202, + 152, + 11, + 51, + 4, + 0, + 16, + 131, + 68, + 0, + 2, + 171, + 75, + 122, + 3, + 51, + 5, + 33, + 51, + 8, + 0, + 128, + 0, + 131, + 136, + 192, + 51, + 9, + 0, + 112, + 219, + 6, + 131, + 153, + 183, + 253, + 151, + 153, + 12, + 149, + 153, + 183, + 253, + 151, + 153, + 12, + 149, + 153, + 183, + 253, + 151, + 153, + 12, + 149, + 153, + 183, + 253, + 202, + 152, + 11, + 51, + 4, + 0, + 16, + 131, + 68, + 64, + 2, + 171, + 75, + 65, + 3, + 51, + 5, + 2, + 51, + 8, + 51, + 9, + 202, + 152, + 11, + 51, + 4, + 171, + 75, + 49, + 3, + 51, + 5, + 3, + 51, + 8, + 1, + 51, + 9, + 1, + 202, + 152, + 11, + 51, + 4, + 1, + 171, + 75, + 30, + 3, + 51, + 5, + 4, + 51, + 8, + 3, + 51, + 9, + 7, + 202, + 152, + 11, + 51, + 4, + 21, + 171, + 75, + 11, + 3, + 51, + 5, + 5, + 51, + 8, + 51, + 9, + 0, + 128, + 202, + 152, + 11, + 51, + 4, + 171, + 75, + 249, + 2, + 51, + 5, + 6, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 202, + 152, + 11, + 51, + 4, + 171, + 75, + 229, + 2, + 51, + 5, + 7, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 0, + 128, + 202, + 152, + 11, + 51, + 4, + 1, + 151, + 68, + 46, + 171, + 75, + 203, + 2, + 51, + 5, + 30, + 51, + 8, + 0, + 176, + 170, + 250, + 131, + 136, + 171, + 250, + 151, + 136, + 12, + 149, + 136, + 171, + 250, + 151, + 136, + 12, + 149, + 136, + 171, + 250, + 151, + 136, + 12, + 149, + 136, + 171, + 250, + 51, + 9, + 0, + 0, + 3, + 131, + 153, + 125, + 254, + 202, + 152, + 11, + 51, + 4, + 0, + 0, + 1, + 131, + 68, + 127, + 255, + 171, + 75, + 144, + 2, + 51, + 5, + 31, + 51, + 8, + 0, + 0, + 3, + 131, + 136, + 125, + 254, + 51, + 9, + 0, + 176, + 170, + 250, + 131, + 153, + 171, + 250, + 151, + 153, + 12, + 149, + 153, + 171, + 250, + 151, + 153, + 12, + 149, + 153, + 171, + 250, + 151, + 153, + 12, + 149, + 153, + 171, + 250, + 202, + 152, + 11, + 51, + 4, + 0, + 0, + 1, + 131, + 68, + 127, + 255, + 171, + 75, + 85, + 2, + 51, + 5, + 8, + 51, + 8, + 13, + 51, + 9, + 11, + 202, + 152, + 8, + 51, + 4, + 143, + 0, + 171, + 72, + 65, + 2, + 51, + 5, + 9, + 51, + 8, + 14, + 51, + 9, + 11, + 202, + 152, + 9, + 51, + 4, + 154, + 0, + 171, + 73, + 45, + 2, + 51, + 5, + 10, + 51, + 8, + 13, + 202, + 136, + 8, + 51, + 4, + 169, + 0, + 171, + 72, + 28, + 2, + 51, + 5, + 11, + 51, + 10, + 1, + 51, + 0, + 13, + 51, + 1, + 11, + 202, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 143, + 0, + 171, + 67, + 250, + 1, + 51, + 5, + 12, + 51, + 10, + 1, + 51, + 0, + 14, + 51, + 1, + 11, + 202, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 154, + 0, + 171, + 67, + 216, + 1, + 51, + 5, + 13, + 51, + 10, + 1, + 51, + 0, + 15, + 51, + 1, + 11, + 202, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 165, + 0, + 171, + 67, + 182, + 1, + 51, + 5, + 14, + 51, + 10, + 1, + 51, + 0, + 13, + 51, + 1, + 11, + 202, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 143, + 0, + 171, + 75, + 150, + 1, + 51, + 5, + 15, + 51, + 10, + 1, + 51, + 0, + 14, + 51, + 1, + 11, + 202, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 154, + 0, + 171, + 75, + 118, + 1, + 51, + 5, + 16, + 51, + 10, + 1, + 51, + 0, + 15, + 51, + 1, + 11, + 202, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 165, + 0, + 171, + 75, + 86, + 1, + 51, + 5, + 17, + 51, + 10, + 1, + 51, + 0, + 13, + 51, + 1, + 11, + 202, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 143, + 0, + 171, + 75, + 54, + 1, + 51, + 5, + 18, + 51, + 10, + 1, + 51, + 0, + 14, + 51, + 1, + 11, + 202, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 154, + 0, + 171, + 75, + 22, + 1, + 51, + 5, + 19, + 51, + 10, + 1, + 51, + 0, + 15, + 51, + 1, + 11, + 202, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 165, + 0, + 171, + 75, + 246, + 0, + 51, + 5, + 20, + 51, + 10, + 1, + 51, + 1, + 11, + 51, + 0, + 13, + 202, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 143, + 0, + 171, + 75, + 214, + 0, + 51, + 5, + 21, + 51, + 10, + 1, + 51, + 1, + 11, + 51, + 0, + 14, + 202, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 154, + 0, + 171, + 75, + 182, + 0, + 51, + 5, + 22, + 51, + 10, + 1, + 51, + 1, + 11, + 51, + 0, + 15, + 202, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 165, + 0, + 171, + 75, + 150, + 0, + 51, + 5, + 23, + 51, + 10, + 1, + 51, + 1, + 11, + 51, + 0, + 13, + 202, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 143, + 0, + 171, + 75, + 118, + 51, + 5, + 24, + 51, + 10, + 1, + 51, + 1, + 11, + 51, + 0, + 14, + 202, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 154, + 0, + 171, + 75, + 87, + 51, + 5, + 25, + 51, + 10, + 1, + 51, + 1, + 11, + 51, + 0, + 15, + 202, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 165, + 0, + 171, + 75, + 56, + 51, + 5, + 26, + 51, + 0, + 31, + 150, + 1, + 51, + 4, + 171, + 65, + 43, + 51, + 5, + 27, + 51, + 0, + 32, + 150, + 1, + 51, + 4, + 171, + 65, + 30, + 51, + 5, + 28, + 51, + 0, + 51, + 4, + 171, + 64, + 20, + 51, + 5, + 29, + 51, + 0, + 33, + 51, + 1, + 34, + 51, + 4, + 82, + 4, + 6, + 82, + 5, + 4, + 0, + 40, + 66, + 252, + 33, + 41, + 33, + 130, + 72, + 36, + 18, + 137, + 136, + 132, + 4, + 145, + 72, + 36, + 18, + 17, + 169, + 20, + 73, + 146, + 72, + 146, + 68, + 138, + 20, + 9, + 74, + 145, + 32, + 146, + 68, + 130, + 72, + 36, + 18, + 33, + 18, + 34, + 18, + 34, + 136, + 68, + 34, + 145, + 16, + 145, + 36, + 17, + 73, + 18, + 145, + 36, + 34, + 77, + 82, + 146, + 136, + 52, + 73, + 73, + 34, + 210, + 36, + 37, + 137, + 72, + 147, + 36, + 137, + 72, + 147, + 36, + 137, + 72, + 147, + 36, + 137, + 72, + 147, + 36, + 137, + 72, + 147, + 36, + 137, + 72, + 147, + 36, + 137, + 72, + 147, + 36, + 137, + 72, + 147, + 36, + 137, + 72, + 147, + 36, + 137, + 72, + 147, + 36, + 137, + 164, + 73, + 146, + 68, + 210, + 36, + 73, + 34, + 73, + 37, + 169, + 164, + 146, + 164, + 100, + 0 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 34, + 2, + 165, + 0, + 29, + 0, + 0, + 169, + 154, + 2, + 165, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9600 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64um_mulh.json b/pvm/programs/riscv_rv64um_mulh.json new file mode 100644 index 00000000..c4105438 --- /dev/null +++ b/pvm/programs/riscv_rv64um_mulh.json @@ -0,0 +1,992 @@ +{ + "name": "riscv_rv64um_mulh", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 131, + 72, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 8, + 51, + 9, + 213, + 152, + 11, + 51, + 4, + 171, + 75, + 43, + 3, + 51, + 5, + 3, + 51, + 8, + 1, + 51, + 9, + 1, + 213, + 152, + 11, + 51, + 4, + 171, + 75, + 25, + 3, + 51, + 5, + 4, + 51, + 8, + 3, + 51, + 9, + 7, + 213, + 152, + 11, + 51, + 4, + 171, + 75, + 7, + 3, + 51, + 5, + 5, + 51, + 8, + 51, + 9, + 0, + 128, + 213, + 152, + 11, + 51, + 4, + 171, + 75, + 245, + 2, + 51, + 5, + 6, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 213, + 152, + 11, + 51, + 4, + 171, + 75, + 225, + 2, + 51, + 5, + 7, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 0, + 128, + 213, + 152, + 11, + 51, + 4, + 171, + 75, + 203, + 2, + 51, + 5, + 8, + 51, + 8, + 13, + 151, + 136, + 32, + 51, + 9, + 11, + 151, + 153, + 32, + 213, + 152, + 8, + 51, + 4, + 143, + 0, + 171, + 72, + 177, + 2, + 51, + 5, + 9, + 51, + 8, + 7, + 151, + 136, + 33, + 51, + 9, + 11, + 151, + 153, + 32, + 213, + 152, + 9, + 51, + 4, + 154, + 0, + 171, + 73, + 151, + 2, + 51, + 5, + 10, + 51, + 8, + 13, + 151, + 136, + 32, + 213, + 136, + 8, + 51, + 4, + 169, + 0, + 171, + 72, + 131, + 2, + 51, + 5, + 11, + 51, + 10, + 1, + 51, + 0, + 13, + 151, + 0, + 32, + 51, + 1, + 11, + 151, + 17, + 32, + 213, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 233, + 51, + 4, + 143, + 0, + 171, + 67, + 91, + 2, + 51, + 5, + 12, + 51, + 10, + 1, + 51, + 0, + 7, + 151, + 0, + 33, + 51, + 1, + 11, + 151, + 17, + 32, + 213, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 233, + 51, + 4, + 154, + 0, + 171, + 67, + 51, + 2, + 51, + 5, + 13, + 51, + 10, + 1, + 51, + 0, + 15, + 151, + 0, + 32, + 51, + 1, + 11, + 151, + 17, + 32, + 213, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 233, + 51, + 4, + 165, + 0, + 171, + 67, + 11, + 2, + 51, + 5, + 14, + 51, + 10, + 1, + 51, + 0, + 13, + 151, + 0, + 32, + 51, + 1, + 11, + 151, + 17, + 32, + 213, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 235, + 51, + 4, + 143, + 0, + 171, + 75, + 229, + 1, + 51, + 5, + 15, + 51, + 10, + 1, + 51, + 0, + 7, + 151, + 0, + 33, + 51, + 1, + 11, + 151, + 17, + 32, + 213, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 235, + 51, + 4, + 154, + 0, + 171, + 75, + 191, + 1, + 51, + 5, + 16, + 51, + 10, + 1, + 51, + 0, + 15, + 151, + 0, + 32, + 51, + 1, + 11, + 151, + 17, + 32, + 213, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 235, + 51, + 4, + 165, + 0, + 171, + 75, + 153, + 1, + 51, + 5, + 17, + 51, + 10, + 1, + 51, + 0, + 13, + 151, + 0, + 32, + 51, + 1, + 11, + 151, + 17, + 32, + 213, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 235, + 51, + 4, + 143, + 0, + 171, + 75, + 115, + 1, + 51, + 5, + 18, + 51, + 10, + 1, + 51, + 0, + 7, + 151, + 0, + 33, + 51, + 1, + 11, + 151, + 17, + 32, + 213, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 235, + 51, + 4, + 154, + 0, + 171, + 75, + 77, + 1, + 51, + 5, + 19, + 51, + 10, + 1, + 51, + 0, + 15, + 151, + 0, + 32, + 51, + 1, + 11, + 151, + 17, + 32, + 213, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 235, + 51, + 4, + 165, + 0, + 171, + 75, + 39, + 1, + 51, + 5, + 20, + 51, + 10, + 1, + 51, + 1, + 11, + 151, + 17, + 32, + 51, + 0, + 13, + 151, + 0, + 32, + 213, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 235, + 51, + 4, + 143, + 0, + 171, + 75, + 1, + 1, + 51, + 5, + 21, + 51, + 10, + 1, + 51, + 1, + 11, + 151, + 17, + 32, + 51, + 0, + 7, + 151, + 0, + 33, + 213, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 235, + 51, + 4, + 154, + 0, + 171, + 75, + 219, + 0, + 51, + 5, + 22, + 51, + 10, + 1, + 51, + 1, + 11, + 151, + 17, + 32, + 51, + 0, + 15, + 151, + 0, + 32, + 213, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 235, + 51, + 4, + 165, + 0, + 171, + 75, + 181, + 0, + 51, + 5, + 23, + 51, + 10, + 1, + 51, + 1, + 11, + 151, + 17, + 32, + 51, + 0, + 13, + 151, + 0, + 32, + 213, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 235, + 51, + 4, + 143, + 0, + 171, + 75, + 143, + 0, + 51, + 5, + 24, + 51, + 10, + 1, + 51, + 1, + 11, + 151, + 17, + 32, + 51, + 0, + 7, + 151, + 0, + 33, + 213, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 235, + 51, + 4, + 154, + 0, + 171, + 75, + 105, + 51, + 5, + 25, + 51, + 10, + 1, + 51, + 1, + 11, + 151, + 17, + 32, + 51, + 0, + 15, + 151, + 0, + 32, + 213, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 235, + 51, + 4, + 165, + 0, + 171, + 75, + 68, + 51, + 5, + 26, + 51, + 0, + 31, + 151, + 0, + 32, + 51, + 1, + 51, + 4, + 171, + 65, + 52, + 51, + 5, + 27, + 51, + 0, + 1, + 151, + 0, + 37, + 51, + 1, + 51, + 4, + 171, + 65, + 36, + 51, + 5, + 28, + 51, + 0, + 51, + 4, + 171, + 64, + 26, + 51, + 5, + 29, + 51, + 0, + 33, + 151, + 0, + 32, + 51, + 1, + 17, + 151, + 17, + 33, + 51, + 4, + 82, + 4, + 6, + 82, + 5, + 4, + 0, + 40, + 187, + 252, + 33, + 41, + 149, + 34, + 73, + 138, + 36, + 41, + 82, + 164, + 72, + 80, + 138, + 4, + 145, + 34, + 73, + 146, + 136, + 36, + 73, + 34, + 146, + 36, + 34, + 77, + 146, + 148, + 36, + 34, + 77, + 146, + 148, + 36, + 34, + 77, + 146, + 148, + 36, + 34, + 77, + 146, + 36, + 137, + 72, + 147, + 36, + 73, + 34, + 210, + 36, + 73, + 146, + 136, + 52, + 73, + 146, + 36, + 34, + 77, + 146, + 36, + 137, + 72, + 147, + 36, + 73, + 34, + 210, + 36, + 73, + 146, + 136, + 52, + 73, + 146, + 36, + 34, + 77, + 146, + 36, + 137, + 72, + 147, + 36, + 73, + 34, + 210, + 36, + 73, + 146, + 72, + 154, + 36, + 73, + 18, + 73, + 82, + 73, + 82, + 73, + 37, + 73, + 82, + 50 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 146028888064, + 2, + 165, + 0, + 29, + 0, + 0, + 169, + 154, + 2, + 165, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9592 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64um_mulhsu.json b/pvm/programs/riscv_rv64um_mulhsu.json new file mode 100644 index 00000000..8b9b6d9f --- /dev/null +++ b/pvm/programs/riscv_rv64um_mulhsu.json @@ -0,0 +1,997 @@ +{ + "name": "riscv_rv64um_mulhsu", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 131, + 76, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 8, + 51, + 9, + 215, + 152, + 11, + 51, + 4, + 171, + 75, + 47, + 3, + 51, + 5, + 3, + 51, + 8, + 1, + 51, + 9, + 1, + 215, + 152, + 11, + 51, + 4, + 171, + 75, + 29, + 3, + 51, + 5, + 4, + 51, + 8, + 3, + 51, + 9, + 7, + 215, + 152, + 11, + 51, + 4, + 171, + 75, + 11, + 3, + 51, + 5, + 5, + 51, + 8, + 51, + 9, + 0, + 128, + 215, + 152, + 11, + 51, + 4, + 171, + 75, + 249, + 2, + 51, + 5, + 6, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 215, + 152, + 11, + 51, + 4, + 171, + 75, + 229, + 2, + 51, + 5, + 7, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 0, + 128, + 215, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 203, + 2, + 51, + 5, + 8, + 51, + 8, + 13, + 151, + 136, + 32, + 51, + 9, + 11, + 151, + 153, + 32, + 215, + 152, + 8, + 51, + 4, + 143, + 0, + 171, + 72, + 177, + 2, + 51, + 5, + 9, + 51, + 8, + 7, + 151, + 136, + 33, + 51, + 9, + 11, + 151, + 153, + 32, + 215, + 152, + 9, + 51, + 4, + 154, + 0, + 171, + 73, + 151, + 2, + 51, + 5, + 10, + 51, + 8, + 13, + 151, + 136, + 32, + 215, + 136, + 8, + 51, + 4, + 169, + 0, + 171, + 72, + 131, + 2, + 51, + 5, + 11, + 51, + 10, + 1, + 51, + 0, + 13, + 151, + 0, + 32, + 51, + 1, + 11, + 151, + 17, + 32, + 215, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 233, + 51, + 4, + 143, + 0, + 171, + 67, + 91, + 2, + 51, + 5, + 12, + 51, + 10, + 1, + 51, + 0, + 7, + 151, + 0, + 33, + 51, + 1, + 11, + 151, + 17, + 32, + 215, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 233, + 51, + 4, + 154, + 0, + 171, + 67, + 51, + 2, + 51, + 5, + 13, + 51, + 10, + 1, + 51, + 0, + 15, + 151, + 0, + 32, + 51, + 1, + 11, + 151, + 17, + 32, + 215, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 233, + 51, + 4, + 165, + 0, + 171, + 67, + 11, + 2, + 51, + 5, + 14, + 51, + 10, + 1, + 51, + 0, + 13, + 151, + 0, + 32, + 51, + 1, + 11, + 151, + 17, + 32, + 215, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 235, + 51, + 4, + 143, + 0, + 171, + 75, + 229, + 1, + 51, + 5, + 15, + 51, + 10, + 1, + 51, + 0, + 7, + 151, + 0, + 33, + 51, + 1, + 11, + 151, + 17, + 32, + 215, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 235, + 51, + 4, + 154, + 0, + 171, + 75, + 191, + 1, + 51, + 5, + 16, + 51, + 10, + 1, + 51, + 0, + 15, + 151, + 0, + 32, + 51, + 1, + 11, + 151, + 17, + 32, + 215, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 235, + 51, + 4, + 165, + 0, + 171, + 75, + 153, + 1, + 51, + 5, + 17, + 51, + 10, + 1, + 51, + 0, + 13, + 151, + 0, + 32, + 51, + 1, + 11, + 151, + 17, + 32, + 215, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 235, + 51, + 4, + 143, + 0, + 171, + 75, + 115, + 1, + 51, + 5, + 18, + 51, + 10, + 1, + 51, + 0, + 7, + 151, + 0, + 33, + 51, + 1, + 11, + 151, + 17, + 32, + 215, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 235, + 51, + 4, + 154, + 0, + 171, + 75, + 77, + 1, + 51, + 5, + 19, + 51, + 10, + 1, + 51, + 0, + 15, + 151, + 0, + 32, + 51, + 1, + 11, + 151, + 17, + 32, + 215, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 235, + 51, + 4, + 165, + 0, + 171, + 75, + 39, + 1, + 51, + 5, + 20, + 51, + 10, + 1, + 51, + 1, + 11, + 151, + 17, + 32, + 51, + 0, + 13, + 151, + 0, + 32, + 215, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 235, + 51, + 4, + 143, + 0, + 171, + 75, + 1, + 1, + 51, + 5, + 21, + 51, + 10, + 1, + 51, + 1, + 11, + 151, + 17, + 32, + 51, + 0, + 7, + 151, + 0, + 33, + 215, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 235, + 51, + 4, + 154, + 0, + 171, + 75, + 219, + 0, + 51, + 5, + 22, + 51, + 10, + 1, + 51, + 1, + 11, + 151, + 17, + 32, + 51, + 0, + 15, + 151, + 0, + 32, + 215, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 235, + 51, + 4, + 165, + 0, + 171, + 75, + 181, + 0, + 51, + 5, + 23, + 51, + 10, + 1, + 51, + 1, + 11, + 151, + 17, + 32, + 51, + 0, + 13, + 151, + 0, + 32, + 215, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 235, + 51, + 4, + 143, + 0, + 171, + 75, + 143, + 0, + 51, + 5, + 24, + 51, + 10, + 1, + 51, + 1, + 11, + 151, + 17, + 32, + 51, + 0, + 7, + 151, + 0, + 33, + 215, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 235, + 51, + 4, + 154, + 0, + 171, + 75, + 105, + 51, + 5, + 25, + 51, + 10, + 1, + 51, + 1, + 11, + 151, + 17, + 32, + 51, + 0, + 15, + 151, + 0, + 32, + 215, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 235, + 51, + 4, + 165, + 0, + 171, + 75, + 68, + 51, + 5, + 26, + 51, + 0, + 31, + 151, + 0, + 32, + 51, + 1, + 51, + 4, + 171, + 65, + 52, + 51, + 5, + 27, + 51, + 0, + 1, + 151, + 0, + 37, + 51, + 1, + 51, + 4, + 171, + 65, + 36, + 51, + 5, + 28, + 51, + 0, + 51, + 4, + 171, + 64, + 26, + 51, + 5, + 29, + 51, + 0, + 33, + 151, + 0, + 32, + 51, + 1, + 17, + 151, + 17, + 33, + 51, + 4, + 82, + 4, + 6, + 82, + 5, + 4, + 0, + 40, + 183, + 252, + 33, + 41, + 149, + 34, + 73, + 138, + 36, + 41, + 82, + 164, + 72, + 80, + 138, + 4, + 145, + 32, + 146, + 36, + 137, + 72, + 146, + 36, + 34, + 73, + 34, + 210, + 36, + 73, + 73, + 34, + 210, + 36, + 73, + 73, + 34, + 210, + 36, + 73, + 73, + 34, + 210, + 36, + 73, + 146, + 136, + 52, + 73, + 146, + 36, + 34, + 77, + 146, + 36, + 137, + 72, + 147, + 36, + 73, + 34, + 210, + 36, + 73, + 146, + 136, + 52, + 73, + 146, + 36, + 34, + 77, + 146, + 36, + 137, + 72, + 147, + 36, + 73, + 34, + 210, + 36, + 73, + 146, + 136, + 52, + 73, + 146, + 36, + 34, + 77, + 146, + 36, + 137, + 164, + 73, + 146, + 36, + 145, + 36, + 149, + 36, + 149, + 84, + 146, + 36, + 37, + 3 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 146028888064, + 2, + 165, + 0, + 29, + 0, + 0, + 169, + 154, + 2, + 165, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9592 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64um_mulhu.json b/pvm/programs/riscv_rv64um_mulhu.json new file mode 100644 index 00000000..fcdd86a2 --- /dev/null +++ b/pvm/programs/riscv_rv64um_mulhu.json @@ -0,0 +1,1135 @@ +{ + "name": "riscv_rv64um_mulhu", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 131, + 199, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 8, + 51, + 9, + 214, + 152, + 11, + 51, + 4, + 171, + 75, + 170, + 3, + 51, + 5, + 3, + 51, + 8, + 1, + 51, + 9, + 1, + 214, + 152, + 11, + 51, + 4, + 171, + 75, + 152, + 3, + 51, + 5, + 4, + 51, + 8, + 3, + 51, + 9, + 7, + 214, + 152, + 11, + 51, + 4, + 171, + 75, + 134, + 3, + 51, + 5, + 5, + 51, + 8, + 51, + 9, + 0, + 128, + 214, + 152, + 11, + 51, + 4, + 171, + 75, + 116, + 3, + 51, + 5, + 6, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 214, + 152, + 11, + 51, + 4, + 171, + 75, + 96, + 3, + 51, + 5, + 7, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 0, + 128, + 214, + 152, + 11, + 51, + 4, + 0, + 0, + 255, + 131, + 68, + 255, + 151, + 68, + 15, + 171, + 75, + 65, + 3, + 51, + 5, + 30, + 51, + 8, + 0, + 176, + 170, + 250, + 131, + 136, + 171, + 250, + 151, + 136, + 12, + 149, + 136, + 171, + 250, + 151, + 136, + 12, + 149, + 136, + 171, + 250, + 151, + 136, + 12, + 149, + 136, + 171, + 250, + 51, + 9, + 0, + 0, + 3, + 131, + 153, + 125, + 254, + 214, + 152, + 11, + 51, + 4, + 0, + 0, + 2, + 131, + 68, + 254, + 254, + 171, + 75, + 6, + 3, + 51, + 5, + 31, + 51, + 8, + 0, + 0, + 3, + 131, + 136, + 125, + 254, + 51, + 9, + 0, + 176, + 170, + 250, + 131, + 153, + 171, + 250, + 151, + 153, + 12, + 149, + 153, + 171, + 250, + 151, + 153, + 12, + 149, + 153, + 171, + 250, + 151, + 153, + 12, + 149, + 153, + 171, + 250, + 214, + 152, + 11, + 51, + 4, + 0, + 0, + 2, + 131, + 68, + 254, + 254, + 171, + 75, + 203, + 2, + 51, + 5, + 8, + 51, + 8, + 13, + 151, + 136, + 32, + 51, + 9, + 11, + 151, + 153, + 32, + 214, + 152, + 8, + 51, + 4, + 143, + 0, + 171, + 72, + 177, + 2, + 51, + 5, + 9, + 51, + 8, + 7, + 151, + 136, + 33, + 51, + 9, + 11, + 151, + 153, + 32, + 214, + 152, + 9, + 51, + 4, + 154, + 0, + 171, + 73, + 151, + 2, + 51, + 5, + 10, + 51, + 8, + 13, + 151, + 136, + 32, + 214, + 136, + 8, + 51, + 4, + 169, + 0, + 171, + 72, + 131, + 2, + 51, + 5, + 11, + 51, + 10, + 1, + 51, + 0, + 13, + 151, + 0, + 32, + 51, + 1, + 11, + 151, + 17, + 32, + 214, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 233, + 51, + 4, + 143, + 0, + 171, + 67, + 91, + 2, + 51, + 5, + 12, + 51, + 10, + 1, + 51, + 0, + 7, + 151, + 0, + 33, + 51, + 1, + 11, + 151, + 17, + 32, + 214, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 233, + 51, + 4, + 154, + 0, + 171, + 67, + 51, + 2, + 51, + 5, + 13, + 51, + 10, + 1, + 51, + 0, + 15, + 151, + 0, + 32, + 51, + 1, + 11, + 151, + 17, + 32, + 214, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 233, + 51, + 4, + 165, + 0, + 171, + 67, + 11, + 2, + 51, + 5, + 14, + 51, + 10, + 1, + 51, + 0, + 13, + 151, + 0, + 32, + 51, + 1, + 11, + 151, + 17, + 32, + 214, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 235, + 51, + 4, + 143, + 0, + 171, + 75, + 229, + 1, + 51, + 5, + 15, + 51, + 10, + 1, + 51, + 0, + 7, + 151, + 0, + 33, + 51, + 1, + 11, + 151, + 17, + 32, + 214, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 235, + 51, + 4, + 154, + 0, + 171, + 75, + 191, + 1, + 51, + 5, + 16, + 51, + 10, + 1, + 51, + 0, + 15, + 151, + 0, + 32, + 51, + 1, + 11, + 151, + 17, + 32, + 214, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 235, + 51, + 4, + 165, + 0, + 171, + 75, + 153, + 1, + 51, + 5, + 17, + 51, + 10, + 1, + 51, + 0, + 13, + 151, + 0, + 32, + 51, + 1, + 11, + 151, + 17, + 32, + 214, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 235, + 51, + 4, + 143, + 0, + 171, + 75, + 115, + 1, + 51, + 5, + 18, + 51, + 10, + 1, + 51, + 0, + 7, + 151, + 0, + 33, + 51, + 1, + 11, + 151, + 17, + 32, + 214, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 235, + 51, + 4, + 154, + 0, + 171, + 75, + 77, + 1, + 51, + 5, + 19, + 51, + 10, + 1, + 51, + 0, + 15, + 151, + 0, + 32, + 51, + 1, + 11, + 151, + 17, + 32, + 214, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 235, + 51, + 4, + 165, + 0, + 171, + 75, + 39, + 1, + 51, + 5, + 20, + 51, + 10, + 1, + 51, + 1, + 11, + 151, + 17, + 32, + 51, + 0, + 13, + 151, + 0, + 32, + 214, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 235, + 51, + 4, + 143, + 0, + 171, + 75, + 1, + 1, + 51, + 5, + 21, + 51, + 10, + 1, + 51, + 1, + 11, + 151, + 17, + 32, + 51, + 0, + 7, + 151, + 0, + 33, + 214, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 235, + 51, + 4, + 154, + 0, + 171, + 75, + 219, + 0, + 51, + 5, + 22, + 51, + 10, + 1, + 51, + 1, + 11, + 151, + 17, + 32, + 51, + 0, + 15, + 151, + 0, + 32, + 214, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 235, + 51, + 4, + 165, + 0, + 171, + 75, + 181, + 0, + 51, + 5, + 23, + 51, + 10, + 1, + 51, + 1, + 11, + 151, + 17, + 32, + 51, + 0, + 13, + 151, + 0, + 32, + 214, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 235, + 51, + 4, + 143, + 0, + 171, + 75, + 143, + 0, + 51, + 5, + 24, + 51, + 10, + 1, + 51, + 1, + 11, + 151, + 17, + 32, + 51, + 0, + 7, + 151, + 0, + 33, + 214, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 235, + 51, + 4, + 154, + 0, + 171, + 75, + 105, + 51, + 5, + 25, + 51, + 10, + 1, + 51, + 1, + 11, + 151, + 17, + 32, + 51, + 0, + 15, + 151, + 0, + 32, + 214, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 235, + 51, + 4, + 165, + 0, + 171, + 75, + 68, + 51, + 5, + 26, + 51, + 0, + 31, + 151, + 0, + 32, + 51, + 1, + 51, + 4, + 171, + 65, + 52, + 51, + 5, + 27, + 51, + 0, + 1, + 151, + 0, + 37, + 51, + 1, + 51, + 4, + 171, + 65, + 36, + 51, + 5, + 28, + 51, + 0, + 51, + 4, + 171, + 64, + 26, + 51, + 5, + 29, + 51, + 0, + 33, + 151, + 0, + 32, + 51, + 1, + 17, + 151, + 17, + 33, + 51, + 4, + 82, + 4, + 6, + 82, + 5, + 4, + 0, + 40, + 60, + 252, + 33, + 41, + 149, + 34, + 73, + 138, + 36, + 41, + 82, + 164, + 72, + 80, + 138, + 4, + 145, + 144, + 68, + 130, + 72, + 36, + 18, + 33, + 18, + 34, + 18, + 34, + 136, + 68, + 34, + 145, + 16, + 145, + 36, + 73, + 68, + 146, + 36, + 17, + 73, + 18, + 145, + 38, + 73, + 74, + 18, + 145, + 38, + 73, + 74, + 18, + 145, + 38, + 73, + 74, + 18, + 145, + 38, + 73, + 146, + 68, + 164, + 73, + 146, + 36, + 17, + 105, + 146, + 36, + 73, + 68, + 154, + 36, + 73, + 18, + 145, + 38, + 73, + 146, + 68, + 164, + 73, + 146, + 36, + 17, + 105, + 146, + 36, + 73, + 68, + 154, + 36, + 73, + 18, + 145, + 38, + 73, + 146, + 68, + 164, + 73, + 146, + 36, + 17, + 105, + 146, + 36, + 73, + 36, + 77, + 146, + 36, + 137, + 36, + 169, + 36, + 169, + 164, + 146, + 36, + 41, + 25 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 146028888064, + 2, + 165, + 0, + 29, + 0, + 0, + 169, + 154, + 2, + 165, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9560 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64um_mulw.json b/pvm/programs/riscv_rv64um_mulw.json new file mode 100644 index 00000000..1448135a --- /dev/null +++ b/pvm/programs/riscv_rv64um_mulw.json @@ -0,0 +1,862 @@ +{ + "name": "riscv_rv64um_mulw", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 130, + 212, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 8, + 51, + 9, + 192, + 152, + 11, + 51, + 4, + 171, + 75, + 183, + 2, + 51, + 5, + 3, + 51, + 8, + 1, + 51, + 9, + 1, + 192, + 152, + 11, + 51, + 4, + 1, + 171, + 75, + 164, + 2, + 51, + 5, + 4, + 51, + 8, + 3, + 51, + 9, + 7, + 192, + 152, + 11, + 51, + 4, + 21, + 171, + 75, + 145, + 2, + 51, + 5, + 5, + 51, + 8, + 51, + 9, + 0, + 128, + 192, + 152, + 11, + 51, + 4, + 171, + 75, + 127, + 2, + 51, + 5, + 6, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 192, + 152, + 11, + 51, + 4, + 171, + 75, + 107, + 2, + 51, + 5, + 7, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 0, + 128, + 192, + 152, + 11, + 51, + 4, + 171, + 75, + 85, + 2, + 51, + 5, + 8, + 51, + 8, + 13, + 51, + 9, + 11, + 192, + 152, + 8, + 51, + 4, + 143, + 0, + 171, + 72, + 65, + 2, + 51, + 5, + 9, + 51, + 8, + 14, + 51, + 9, + 11, + 192, + 152, + 9, + 51, + 4, + 154, + 0, + 171, + 73, + 45, + 2, + 51, + 5, + 10, + 51, + 8, + 13, + 192, + 136, + 8, + 51, + 4, + 169, + 0, + 171, + 72, + 28, + 2, + 51, + 5, + 11, + 51, + 10, + 1, + 51, + 0, + 13, + 51, + 1, + 11, + 192, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 143, + 0, + 171, + 67, + 250, + 1, + 51, + 5, + 12, + 51, + 10, + 1, + 51, + 0, + 14, + 51, + 1, + 11, + 192, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 154, + 0, + 171, + 67, + 216, + 1, + 51, + 5, + 13, + 51, + 10, + 1, + 51, + 0, + 15, + 51, + 1, + 11, + 192, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 165, + 0, + 171, + 67, + 182, + 1, + 51, + 5, + 14, + 51, + 10, + 1, + 51, + 0, + 13, + 51, + 1, + 11, + 192, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 143, + 0, + 171, + 75, + 150, + 1, + 51, + 5, + 15, + 51, + 10, + 1, + 51, + 0, + 14, + 51, + 1, + 11, + 192, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 154, + 0, + 171, + 75, + 118, + 1, + 51, + 5, + 16, + 51, + 10, + 1, + 51, + 0, + 15, + 51, + 1, + 11, + 192, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 165, + 0, + 171, + 75, + 86, + 1, + 51, + 5, + 17, + 51, + 10, + 1, + 51, + 0, + 13, + 51, + 1, + 11, + 192, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 143, + 0, + 171, + 75, + 54, + 1, + 51, + 5, + 18, + 51, + 10, + 1, + 51, + 0, + 14, + 51, + 1, + 11, + 192, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 154, + 0, + 171, + 75, + 22, + 1, + 51, + 5, + 19, + 51, + 10, + 1, + 51, + 0, + 15, + 51, + 1, + 11, + 192, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 165, + 0, + 171, + 75, + 246, + 0, + 51, + 5, + 20, + 51, + 10, + 1, + 51, + 1, + 11, + 51, + 0, + 13, + 192, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 143, + 0, + 171, + 75, + 214, + 0, + 51, + 5, + 21, + 51, + 10, + 1, + 51, + 1, + 11, + 51, + 0, + 14, + 192, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 154, + 0, + 171, + 75, + 182, + 0, + 51, + 5, + 22, + 51, + 10, + 1, + 51, + 1, + 11, + 51, + 0, + 15, + 192, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 165, + 0, + 171, + 75, + 150, + 0, + 51, + 5, + 23, + 51, + 10, + 1, + 51, + 1, + 11, + 51, + 0, + 13, + 192, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 143, + 0, + 171, + 75, + 118, + 51, + 5, + 24, + 51, + 10, + 1, + 51, + 1, + 11, + 51, + 0, + 14, + 192, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 154, + 0, + 171, + 75, + 87, + 51, + 5, + 25, + 51, + 10, + 1, + 51, + 1, + 11, + 51, + 0, + 15, + 192, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 165, + 0, + 171, + 75, + 56, + 51, + 5, + 26, + 51, + 0, + 31, + 135, + 1, + 51, + 4, + 171, + 65, + 43, + 51, + 5, + 27, + 51, + 0, + 32, + 135, + 1, + 51, + 4, + 171, + 65, + 30, + 51, + 5, + 28, + 51, + 0, + 51, + 4, + 171, + 64, + 20, + 51, + 5, + 29, + 51, + 0, + 33, + 51, + 1, + 34, + 51, + 4, + 82, + 4, + 6, + 82, + 5, + 4, + 0, + 40, + 47, + 253, + 33, + 41, + 149, + 34, + 73, + 18, + 73, + 146, + 72, + 145, + 34, + 65, + 41, + 18, + 68, + 138, + 36, + 137, + 72, + 146, + 136, + 36, + 17, + 105, + 146, + 146, + 68, + 164, + 73, + 74, + 18, + 145, + 38, + 41, + 73, + 68, + 154, + 36, + 73, + 68, + 154, + 36, + 73, + 68, + 154, + 36, + 73, + 68, + 154, + 36, + 73, + 68, + 154, + 36, + 73, + 68, + 154, + 36, + 73, + 68, + 154, + 36, + 73, + 68, + 154, + 36, + 73, + 68, + 154, + 36, + 73, + 68, + 154, + 36, + 73, + 36, + 77, + 146, + 36, + 146, + 38, + 73, + 18, + 73, + 42, + 73, + 37, + 149, + 36, + 37, + 3 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 34, + 2, + 165, + 0, + 29, + 0, + 0, + 169, + 154, + 2, + 165, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9661 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64um_rem.json b/pvm/programs/riscv_rv64um_rem.json new file mode 100644 index 00000000..83353a73 --- /dev/null +++ b/pvm/programs/riscv_rv64um_rem.json @@ -0,0 +1,260 @@ +{ + "name": "riscv_rv64um_rem", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 128, + 189, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 8, + 20, + 51, + 9, + 6, + 206, + 152, + 11, + 51, + 4, + 2, + 171, + 75, + 157, + 0, + 51, + 5, + 3, + 51, + 8, + 236, + 51, + 9, + 6, + 206, + 152, + 11, + 51, + 4, + 254, + 171, + 75, + 138, + 0, + 51, + 5, + 4, + 51, + 8, + 20, + 51, + 9, + 250, + 206, + 152, + 11, + 51, + 4, + 2, + 171, + 75, + 119, + 51, + 5, + 5, + 51, + 8, + 236, + 51, + 9, + 250, + 206, + 152, + 11, + 51, + 4, + 254, + 171, + 75, + 101, + 51, + 5, + 6, + 51, + 8, + 255, + 151, + 136, + 63, + 51, + 9, + 1, + 206, + 152, + 11, + 51, + 4, + 171, + 75, + 81, + 51, + 5, + 7, + 51, + 8, + 255, + 151, + 136, + 63, + 51, + 9, + 255, + 206, + 152, + 11, + 51, + 4, + 171, + 75, + 61, + 51, + 5, + 8, + 51, + 8, + 255, + 151, + 136, + 63, + 51, + 9, + 206, + 152, + 11, + 51, + 4, + 255, + 151, + 68, + 63, + 171, + 75, + 38, + 51, + 5, + 9, + 51, + 8, + 1, + 51, + 9, + 206, + 152, + 11, + 51, + 4, + 1, + 171, + 75, + 21, + 51, + 5, + 10, + 51, + 8, + 51, + 9, + 206, + 152, + 11, + 51, + 4, + 171, + 75, + 6, + 82, + 5, + 4, + 0, + 40, + 70, + 255, + 33, + 41, + 73, + 18, + 73, + 146, + 72, + 146, + 36, + 73, + 146, + 36, + 73, + 73, + 146, + 148, + 36, + 37, + 73, + 82, + 146, + 84, + 74, + 6 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 0, + 0, + 0, + 10, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9936 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64um_remu.json b/pvm/programs/riscv_rv64um_remu.json new file mode 100644 index 00000000..1a701f33 --- /dev/null +++ b/pvm/programs/riscv_rv64um_remu.json @@ -0,0 +1,265 @@ +{ + "name": "riscv_rv64um_remu", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 128, + 193, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 8, + 20, + 51, + 9, + 6, + 205, + 152, + 11, + 51, + 4, + 2, + 171, + 75, + 161, + 0, + 51, + 5, + 3, + 51, + 8, + 236, + 51, + 9, + 6, + 205, + 152, + 11, + 51, + 4, + 2, + 171, + 75, + 142, + 0, + 51, + 5, + 4, + 51, + 8, + 20, + 51, + 9, + 250, + 205, + 152, + 11, + 51, + 4, + 20, + 171, + 75, + 123, + 51, + 5, + 5, + 51, + 8, + 236, + 51, + 9, + 250, + 205, + 152, + 11, + 51, + 4, + 236, + 171, + 75, + 105, + 51, + 5, + 6, + 51, + 8, + 255, + 151, + 136, + 63, + 51, + 9, + 1, + 205, + 152, + 11, + 51, + 4, + 171, + 75, + 85, + 51, + 5, + 7, + 51, + 8, + 255, + 151, + 136, + 63, + 51, + 9, + 255, + 205, + 152, + 11, + 51, + 4, + 255, + 151, + 68, + 63, + 171, + 75, + 61, + 51, + 5, + 8, + 51, + 8, + 255, + 151, + 136, + 63, + 51, + 9, + 205, + 152, + 11, + 51, + 4, + 255, + 151, + 68, + 63, + 171, + 75, + 38, + 51, + 5, + 9, + 51, + 8, + 1, + 51, + 9, + 205, + 152, + 11, + 51, + 4, + 1, + 171, + 75, + 21, + 51, + 5, + 10, + 51, + 8, + 51, + 9, + 205, + 152, + 11, + 51, + 4, + 171, + 75, + 6, + 82, + 5, + 4, + 0, + 40, + 66, + 255, + 33, + 41, + 73, + 18, + 73, + 146, + 72, + 146, + 36, + 73, + 146, + 36, + 73, + 73, + 146, + 36, + 73, + 82, + 146, + 36, + 37, + 73, + 165, + 100, + 0 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 0, + 0, + 0, + 10, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9935 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64um_remuw.json b/pvm/programs/riscv_rv64um_remuw.json new file mode 100644 index 00000000..f4a289e4 --- /dev/null +++ b/pvm/programs/riscv_rv64um_remuw.json @@ -0,0 +1,265 @@ +{ + "name": "riscv_rv64um_remuw", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 128, + 193, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 8, + 20, + 51, + 9, + 6, + 195, + 152, + 11, + 51, + 4, + 2, + 171, + 75, + 161, + 0, + 51, + 5, + 3, + 51, + 8, + 236, + 51, + 9, + 6, + 195, + 152, + 11, + 51, + 4, + 2, + 171, + 75, + 142, + 0, + 51, + 5, + 4, + 51, + 8, + 20, + 51, + 9, + 250, + 195, + 152, + 11, + 51, + 4, + 20, + 171, + 75, + 123, + 51, + 5, + 5, + 51, + 8, + 236, + 51, + 9, + 250, + 195, + 152, + 11, + 51, + 4, + 236, + 171, + 75, + 105, + 51, + 5, + 6, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 1, + 195, + 152, + 11, + 51, + 4, + 171, + 75, + 85, + 51, + 5, + 7, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 255, + 195, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 61, + 51, + 5, + 8, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 195, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 38, + 51, + 5, + 9, + 51, + 8, + 1, + 51, + 9, + 195, + 152, + 11, + 51, + 4, + 1, + 171, + 75, + 21, + 51, + 5, + 10, + 51, + 8, + 51, + 9, + 195, + 152, + 11, + 51, + 4, + 171, + 75, + 6, + 82, + 5, + 4, + 0, + 40, + 66, + 255, + 33, + 41, + 73, + 18, + 73, + 146, + 72, + 146, + 36, + 73, + 146, + 4, + 73, + 73, + 144, + 4, + 73, + 80, + 130, + 36, + 37, + 73, + 165, + 100, + 0 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 0, + 0, + 0, + 10, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9940 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64um_remw.json b/pvm/programs/riscv_rv64um_remw.json new file mode 100644 index 00000000..cfab80b5 --- /dev/null +++ b/pvm/programs/riscv_rv64um_remw.json @@ -0,0 +1,283 @@ +{ + "name": "riscv_rv64um_remw", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 128, + 209, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 8, + 20, + 51, + 9, + 6, + 196, + 152, + 11, + 51, + 4, + 2, + 171, + 75, + 177, + 0, + 51, + 5, + 3, + 51, + 8, + 236, + 51, + 9, + 6, + 196, + 152, + 11, + 51, + 4, + 254, + 171, + 75, + 158, + 0, + 51, + 5, + 4, + 51, + 8, + 20, + 51, + 9, + 250, + 196, + 152, + 11, + 51, + 4, + 2, + 171, + 75, + 139, + 0, + 51, + 5, + 5, + 51, + 8, + 236, + 51, + 9, + 250, + 196, + 152, + 11, + 51, + 4, + 254, + 171, + 75, + 120, + 51, + 5, + 6, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 1, + 196, + 152, + 11, + 51, + 4, + 171, + 75, + 100, + 51, + 5, + 7, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 255, + 196, + 152, + 11, + 51, + 4, + 171, + 75, + 80, + 51, + 5, + 8, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 196, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 57, + 51, + 5, + 9, + 51, + 8, + 1, + 51, + 9, + 196, + 152, + 11, + 51, + 4, + 1, + 171, + 75, + 40, + 51, + 5, + 10, + 51, + 8, + 51, + 9, + 196, + 152, + 11, + 51, + 4, + 171, + 75, + 25, + 51, + 5, + 11, + 51, + 8, + 151, + 248, + 51, + 9, + 196, + 152, + 11, + 51, + 4, + 151, + 248, + 171, + 75, + 6, + 82, + 5, + 4, + 0, + 40, + 50, + 255, + 33, + 41, + 73, + 18, + 73, + 146, + 72, + 146, + 68, + 146, + 36, + 9, + 146, + 146, + 32, + 41, + 9, + 74, + 144, + 164, + 36, + 169, + 148, + 68, + 137, + 100, + 0 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 0, + 0, + 18446744073709549719, + 11, + 0, + 0, + 18446744073709549719, + 0, + 0, + 18446744073709549719, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9934 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64uzbb_andn.json b/pvm/programs/riscv_rv64uzbb_andn.json new file mode 100644 index 00000000..2ef951e9 --- /dev/null +++ b/pvm/programs/riscv_rv64uzbb_andn.json @@ -0,0 +1,1609 @@ +{ + "name": "riscv_rv64uzbb_andn", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 133, + 108, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 8, + 0, + 0, + 1, + 255, + 131, + 136, + 0, + 255, + 51, + 9, + 0, + 16, + 15, + 15, + 131, + 153, + 15, + 255, + 224, + 152, + 11, + 51, + 4, + 0, + 240, + 0, + 240, + 171, + 75, + 59, + 5, + 51, + 5, + 3, + 51, + 8, + 0, + 16, + 240, + 15, + 131, + 136, + 240, + 51, + 9, + 0, + 240, + 240, + 240, + 131, + 153, + 240, + 0, + 224, + 152, + 11, + 51, + 4, + 0, + 16, + 0, + 15, + 131, + 68, + 0, + 255, + 171, + 75, + 20, + 5, + 51, + 5, + 4, + 51, + 8, + 0, + 0, + 255, + 0, + 131, + 136, + 255, + 0, + 51, + 9, + 0, + 16, + 15, + 15, + 131, + 153, + 15, + 255, + 224, + 152, + 11, + 51, + 4, + 0, + 0, + 240, + 0, + 131, + 68, + 240, + 0, + 171, + 75, + 236, + 4, + 51, + 5, + 5, + 51, + 8, + 0, + 240, + 15, + 240, + 131, + 136, + 15, + 51, + 9, + 0, + 240, + 240, + 240, + 131, + 153, + 240, + 0, + 224, + 152, + 11, + 51, + 4, + 0, + 0, + 15, + 131, + 68, + 15, + 171, + 75, + 199, + 4, + 51, + 5, + 50, + 51, + 8, + 0, + 0, + 1, + 131, + 136, + 1, + 255, + 151, + 136, + 16, + 149, + 136, + 1, + 255, + 151, + 136, + 16, + 149, + 136, + 1, + 255, + 151, + 136, + 12, + 149, + 136, + 240, + 51, + 9, + 0, + 16, + 15, + 255, + 131, + 153, + 15, + 255, + 151, + 153, + 12, + 149, + 153, + 241, + 0, + 151, + 153, + 12, + 149, + 153, + 15, + 255, + 151, + 153, + 12, + 149, + 153, + 240, + 0, + 224, + 152, + 11, + 51, + 4, + 0, + 0, + 15, + 131, + 68, + 15, + 151, + 68, + 16, + 149, + 68, + 15, + 151, + 68, + 12, + 149, + 68, + 1, + 151, + 68, + 12, + 149, + 68, + 0, + 255, + 171, + 75, + 102, + 4, + 51, + 5, + 51, + 51, + 8, + 0, + 0, + 255, + 0, + 131, + 136, + 255, + 0, + 151, + 136, + 16, + 149, + 136, + 255, + 0, + 151, + 136, + 16, + 149, + 136, + 255, + 0, + 51, + 9, + 0, + 240, + 240, + 0, + 131, + 153, + 241, + 0, + 151, + 153, + 12, + 149, + 153, + 15, + 255, + 151, + 153, + 12, + 149, + 153, + 241, + 0, + 151, + 153, + 12, + 149, + 153, + 15, + 255, + 224, + 152, + 11, + 51, + 4, + 0, + 0, + 15, + 131, + 68, + 15, + 151, + 68, + 16, + 149, + 68, + 15, + 151, + 68, + 20, + 149, + 68, + 240, + 0, + 171, + 75, + 16, + 4, + 51, + 5, + 52, + 51, + 8, + 0, + 0, + 255, + 131, + 136, + 255, + 0, + 151, + 136, + 16, + 149, + 136, + 255, + 0, + 151, + 136, + 16, + 149, + 136, + 255, + 0, + 151, + 136, + 12, + 149, + 136, + 15, + 51, + 9, + 0, + 16, + 15, + 255, + 131, + 153, + 15, + 255, + 151, + 153, + 12, + 149, + 153, + 241, + 0, + 151, + 153, + 12, + 149, + 153, + 15, + 255, + 151, + 153, + 12, + 149, + 153, + 240, + 0, + 224, + 152, + 11, + 51, + 4, + 0, + 0, + 15, + 131, + 68, + 15, + 151, + 68, + 16, + 149, + 68, + 15, + 151, + 68, + 16, + 149, + 68, + 15, + 171, + 75, + 182, + 3, + 51, + 5, + 6, + 51, + 8, + 0, + 0, + 1, + 255, + 131, + 136, + 0, + 255, + 51, + 9, + 0, + 16, + 15, + 15, + 131, + 153, + 15, + 255, + 224, + 152, + 8, + 51, + 4, + 0, + 240, + 0, + 240, + 171, + 72, + 146, + 3, + 51, + 5, + 7, + 51, + 8, + 0, + 16, + 240, + 15, + 131, + 136, + 240, + 51, + 9, + 0, + 240, + 240, + 240, + 131, + 153, + 240, + 0, + 224, + 152, + 9, + 51, + 4, + 0, + 16, + 0, + 15, + 131, + 68, + 0, + 255, + 171, + 73, + 107, + 3, + 51, + 5, + 8, + 51, + 8, + 0, + 0, + 1, + 255, + 131, + 136, + 0, + 255, + 224, + 136, + 8, + 51, + 4, + 171, + 72, + 85, + 3, + 51, + 5, + 9, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 1, + 255, + 131, + 0, + 0, + 255, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 224, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 225, + 51, + 4, + 0, + 240, + 0, + 240, + 171, + 67, + 35, + 3, + 51, + 5, + 10, + 51, + 10, + 1, + 51, + 0, + 0, + 16, + 240, + 15, + 131, + 0, + 240, + 51, + 1, + 0, + 240, + 240, + 240, + 131, + 17, + 240, + 0, + 224, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 226, + 51, + 4, + 0, + 16, + 0, + 15, + 131, + 68, + 0, + 255, + 171, + 67, + 238, + 2, + 51, + 5, + 11, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 255, + 0, + 131, + 0, + 255, + 0, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 224, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 225, + 51, + 4, + 0, + 0, + 240, + 0, + 131, + 68, + 240, + 0, + 171, + 67, + 184, + 2, + 51, + 5, + 12, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 1, + 255, + 131, + 0, + 0, + 255, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 224, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 227, + 51, + 4, + 0, + 240, + 0, + 240, + 171, + 75, + 136, + 2, + 51, + 5, + 13, + 51, + 10, + 1, + 51, + 0, + 0, + 16, + 240, + 15, + 131, + 0, + 240, + 51, + 1, + 0, + 240, + 240, + 240, + 131, + 17, + 240, + 0, + 224, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 228, + 51, + 4, + 0, + 16, + 0, + 15, + 131, + 68, + 0, + 255, + 171, + 75, + 85, + 2, + 51, + 5, + 14, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 255, + 0, + 131, + 0, + 255, + 0, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 224, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 227, + 51, + 4, + 0, + 0, + 240, + 0, + 131, + 68, + 240, + 0, + 171, + 75, + 33, + 2, + 51, + 5, + 15, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 1, + 255, + 131, + 0, + 0, + 255, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 224, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 227, + 51, + 4, + 0, + 240, + 0, + 240, + 171, + 75, + 241, + 1, + 51, + 5, + 16, + 51, + 10, + 1, + 51, + 0, + 0, + 16, + 240, + 15, + 131, + 0, + 240, + 51, + 1, + 0, + 240, + 240, + 240, + 131, + 17, + 240, + 0, + 224, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 228, + 51, + 4, + 0, + 16, + 0, + 15, + 131, + 68, + 0, + 255, + 171, + 75, + 190, + 1, + 51, + 5, + 17, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 255, + 0, + 131, + 0, + 255, + 0, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 224, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 227, + 51, + 4, + 0, + 0, + 240, + 0, + 131, + 68, + 240, + 0, + 171, + 75, + 138, + 1, + 51, + 5, + 18, + 51, + 10, + 1, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 51, + 0, + 0, + 0, + 1, + 255, + 131, + 0, + 0, + 255, + 224, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 227, + 51, + 4, + 0, + 240, + 0, + 240, + 171, + 75, + 90, + 1, + 51, + 5, + 19, + 51, + 10, + 1, + 51, + 1, + 0, + 240, + 240, + 240, + 131, + 17, + 240, + 0, + 51, + 0, + 0, + 16, + 240, + 15, + 131, + 0, + 240, + 224, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 228, + 51, + 4, + 0, + 16, + 0, + 15, + 131, + 68, + 0, + 255, + 171, + 75, + 39, + 1, + 51, + 5, + 20, + 51, + 10, + 1, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 51, + 0, + 0, + 0, + 255, + 0, + 131, + 0, + 255, + 0, + 224, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 227, + 51, + 4, + 0, + 0, + 240, + 0, + 131, + 68, + 240, + 0, + 171, + 75, + 243, + 0, + 51, + 5, + 21, + 51, + 10, + 1, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 51, + 0, + 0, + 0, + 1, + 255, + 131, + 0, + 0, + 255, + 224, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 227, + 51, + 4, + 0, + 240, + 0, + 240, + 171, + 75, + 195, + 0, + 51, + 5, + 22, + 51, + 10, + 1, + 51, + 1, + 0, + 240, + 240, + 240, + 131, + 17, + 240, + 0, + 51, + 0, + 0, + 16, + 240, + 15, + 131, + 0, + 240, + 224, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 228, + 51, + 4, + 0, + 16, + 0, + 15, + 131, + 68, + 0, + 255, + 171, + 75, + 144, + 0, + 51, + 5, + 23, + 51, + 10, + 1, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 51, + 0, + 0, + 0, + 255, + 0, + 131, + 0, + 255, + 0, + 224, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 227, + 51, + 4, + 0, + 0, + 240, + 0, + 131, + 68, + 240, + 0, + 171, + 75, + 92, + 51, + 5, + 24, + 51, + 0, + 0, + 0, + 1, + 255, + 131, + 0, + 0, + 255, + 51, + 1, + 51, + 4, + 171, + 65, + 72, + 51, + 5, + 25, + 51, + 0, + 0, + 0, + 255, + 0, + 131, + 0, + 255, + 0, + 100, + 1, + 51, + 4, + 0, + 0, + 255, + 0, + 131, + 68, + 255, + 0, + 171, + 65, + 44, + 51, + 5, + 26, + 51, + 0, + 51, + 4, + 171, + 64, + 34, + 51, + 5, + 27, + 51, + 0, + 0, + 16, + 17, + 17, + 131, + 0, + 17, + 1, + 51, + 1, + 0, + 32, + 34, + 34, + 131, + 17, + 34, + 2, + 51, + 4, + 82, + 4, + 6, + 82, + 5, + 4, + 0, + 40, + 151, + 250, + 33, + 41, + 65, + 4, + 145, + 32, + 18, + 36, + 136, + 4, + 17, + 9, + 34, + 136, + 4, + 17, + 9, + 18, + 68, + 66, + 34, + 33, + 18, + 137, + 36, + 136, + 68, + 34, + 145, + 144, + 36, + 73, + 68, + 130, + 72, + 36, + 130, + 72, + 36, + 18, + 9, + 73, + 18, + 145, + 16, + 137, + 68, + 18, + 68, + 34, + 145, + 72, + 72, + 146, + 68, + 130, + 8, + 34, + 65, + 36, + 72, + 16, + 9, + 34, + 18, + 68, + 138, + 52, + 136, + 32, + 82, + 146, + 32, + 210, + 32, + 65, + 164, + 36, + 65, + 68, + 26, + 68, + 16, + 41, + 73, + 16, + 145, + 6, + 17, + 68, + 146, + 4, + 145, + 6, + 9, + 34, + 73, + 130, + 136, + 52, + 136, + 32, + 146, + 36, + 136, + 72, + 131, + 8, + 34, + 73, + 130, + 72, + 131, + 4, + 145, + 36, + 65, + 68, + 26, + 68, + 16, + 73, + 18, + 68, + 164, + 65, + 4, + 145, + 36, + 65, + 164, + 65, + 4, + 73, + 146, + 32, + 34, + 13, + 34, + 136, + 36, + 9, + 34, + 210, + 32, + 130, + 72, + 146, + 32, + 210, + 32, + 130, + 36, + 73, + 16, + 145, + 6, + 17, + 68, + 146, + 4, + 145, + 4, + 81, + 73, + 16, + 5, + 145, + 84, + 18, + 68, + 16, + 37, + 3 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 572662306, + 2, + 15728880, + 0, + 27, + 0, + 0, + 0, + 251662080, + 2, + 15728880, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9506 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64uzbb_clz.json b/pvm/programs/riscv_rv64uzbb_clz.json new file mode 100644 index 00000000..c9b53ef0 --- /dev/null +++ b/pvm/programs/riscv_rv64uzbb_clz.json @@ -0,0 +1,648 @@ +{ + "name": "riscv_rv64uzbb_clz", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 130, + 22, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 0, + 104, + 11, + 51, + 4, + 64, + 171, + 75, + 251, + 1, + 51, + 5, + 3, + 51, + 0, + 1, + 104, + 11, + 51, + 4, + 63, + 171, + 75, + 236, + 1, + 51, + 5, + 4, + 51, + 0, + 3, + 104, + 11, + 51, + 4, + 62, + 171, + 75, + 221, + 1, + 51, + 5, + 5, + 51, + 0, + 0, + 128, + 104, + 11, + 51, + 4, + 171, + 75, + 206, + 1, + 51, + 5, + 6, + 51, + 0, + 0, + 0, + 128, + 0, + 104, + 11, + 51, + 4, + 40, + 171, + 75, + 188, + 1, + 51, + 5, + 7, + 51, + 0, + 5, + 151, + 0, + 33, + 149, + 0, + 255, + 151, + 0, + 15, + 104, + 11, + 51, + 4, + 13, + 171, + 75, + 164, + 1, + 51, + 5, + 8, + 51, + 0, + 0, + 128, + 0, + 131, + 0, + 255, + 104, + 11, + 51, + 4, + 49, + 171, + 75, + 144, + 1, + 51, + 5, + 9, + 51, + 0, + 0, + 0, + 0, + 128, + 131, + 0, + 255, + 104, + 11, + 51, + 4, + 33, + 171, + 75, + 123, + 1, + 51, + 5, + 10, + 51, + 0, + 0, + 0, + 8, + 131, + 0, + 255, + 104, + 11, + 51, + 4, + 45, + 171, + 75, + 103, + 1, + 51, + 5, + 11, + 51, + 0, + 0, + 0, + 0, + 128, + 104, + 11, + 51, + 4, + 171, + 75, + 86, + 1, + 51, + 5, + 12, + 51, + 0, + 0, + 192, + 171, + 127, + 131, + 0, + 137, + 7, + 151, + 0, + 13, + 149, + 0, + 245, + 1, + 151, + 0, + 12, + 104, + 11, + 51, + 4, + 8, + 171, + 75, + 54, + 1, + 51, + 5, + 13, + 51, + 0, + 255, + 151, + 0, + 63, + 104, + 11, + 51, + 4, + 171, + 75, + 37, + 1, + 51, + 5, + 14, + 51, + 0, + 14, + 104, + 11, + 51, + 4, + 60, + 171, + 75, + 22, + 1, + 51, + 5, + 15, + 51, + 0, + 253, + 151, + 0, + 32, + 149, + 0, + 25, + 151, + 0, + 17, + 149, + 0, + 1, + 4, + 151, + 0, + 12, + 149, + 0, + 65, + 3, + 104, + 11, + 51, + 4, + 171, + 75, + 244, + 0, + 51, + 5, + 16, + 51, + 0, + 13, + 104, + 0, + 51, + 4, + 60, + 171, + 64, + 229, + 0, + 51, + 5, + 17, + 51, + 0, + 11, + 104, + 0, + 51, + 4, + 60, + 171, + 64, + 214, + 0, + 51, + 5, + 18, + 51, + 10, + 1, + 51, + 0, + 13, + 104, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 243, + 51, + 4, + 60, + 171, + 67, + 185, + 0, + 51, + 5, + 29, + 51, + 10, + 1, + 51, + 0, + 19, + 104, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 243, + 51, + 4, + 59, + 171, + 67, + 156, + 0, + 51, + 5, + 20, + 51, + 10, + 1, + 51, + 0, + 34, + 104, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 243, + 51, + 4, + 58, + 171, + 67, + 127, + 51, + 5, + 21, + 51, + 0, + 0, + 128, + 15, + 7, + 104, + 11, + 51, + 4, + 37, + 171, + 75, + 110, + 51, + 5, + 22, + 51, + 0, + 0, + 128, + 0, + 8, + 104, + 11, + 51, + 4, + 36, + 171, + 75, + 93, + 51, + 5, + 23, + 51, + 0, + 0, + 128, + 0, + 24, + 104, + 11, + 51, + 4, + 35, + 171, + 75, + 76, + 51, + 5, + 24, + 51, + 0, + 0, + 0, + 6, + 131, + 0, + 1, + 151, + 0, + 15, + 149, + 0, + 255, + 104, + 11, + 51, + 4, + 30, + 171, + 75, + 51, + 51, + 5, + 25, + 51, + 0, + 15, + 151, + 0, + 31, + 149, + 0, + 255, + 104, + 11, + 51, + 4, + 29, + 171, + 75, + 31, + 51, + 5, + 26, + 51, + 0, + 0, + 224, + 1, + 131, + 0, + 1, + 151, + 0, + 19, + 149, + 0, + 255, + 104, + 11, + 51, + 4, + 28, + 171, + 75, + 6, + 82, + 5, + 4, + 0, + 40, + 237, + 253, + 33, + 41, + 149, + 72, + 74, + 36, + 37, + 18, + 21, + 9, + 74, + 36, + 73, + 74, + 36, + 164, + 68, + 130, + 148, + 72, + 72, + 137, + 4, + 21, + 9, + 34, + 145, + 18, + 73, + 42, + 146, + 18, + 73, + 146, + 72, + 84, + 36, + 37, + 146, + 18, + 105, + 42, + 73, + 34, + 77, + 37, + 73, + 164, + 169, + 36, + 73, + 130, + 146, + 4, + 37, + 9, + 74, + 18, + 146, + 148, + 36, + 73, + 73, + 66, + 146, + 146, + 12 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 2, + 58, + 28, + 26, + 0, + 0, + 0, + 0, + 2, + 28, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9808 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64uzbb_clzw.json b/pvm/programs/riscv_rv64uzbb_clzw.json new file mode 100644 index 00000000..765ac9d6 --- /dev/null +++ b/pvm/programs/riscv_rv64uzbb_clzw.json @@ -0,0 +1,612 @@ +{ + "name": "riscv_rv64uzbb_clzw", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 129, + 246, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 0, + 105, + 11, + 51, + 4, + 32, + 171, + 75, + 219, + 1, + 51, + 5, + 3, + 51, + 0, + 1, + 105, + 11, + 51, + 4, + 31, + 171, + 75, + 204, + 1, + 51, + 5, + 4, + 51, + 0, + 3, + 105, + 11, + 51, + 4, + 30, + 171, + 75, + 189, + 1, + 51, + 5, + 5, + 51, + 0, + 0, + 0, + 2, + 131, + 0, + 255, + 151, + 0, + 15, + 105, + 11, + 51, + 4, + 171, + 75, + 167, + 1, + 51, + 5, + 6, + 51, + 0, + 0, + 0, + 128, + 0, + 105, + 11, + 51, + 4, + 8, + 171, + 75, + 149, + 1, + 51, + 5, + 7, + 51, + 0, + 0, + 0, + 2, + 131, + 0, + 255, + 151, + 0, + 15, + 105, + 11, + 51, + 4, + 171, + 75, + 127, + 1, + 51, + 5, + 8, + 51, + 0, + 0, + 128, + 0, + 131, + 0, + 255, + 105, + 11, + 51, + 4, + 17, + 171, + 75, + 107, + 1, + 51, + 5, + 9, + 51, + 0, + 0, + 0, + 0, + 128, + 131, + 0, + 255, + 105, + 11, + 51, + 4, + 1, + 171, + 75, + 86, + 1, + 51, + 5, + 10, + 51, + 0, + 0, + 0, + 8, + 131, + 0, + 255, + 105, + 11, + 51, + 4, + 13, + 171, + 75, + 66, + 1, + 51, + 5, + 11, + 51, + 0, + 1, + 151, + 0, + 31, + 105, + 11, + 51, + 4, + 171, + 75, + 49, + 1, + 51, + 5, + 12, + 51, + 0, + 0, + 80, + 31, + 18, + 105, + 11, + 51, + 4, + 3, + 171, + 75, + 31, + 1, + 51, + 5, + 13, + 51, + 0, + 0, + 0, + 0, + 4, + 105, + 11, + 51, + 4, + 5, + 171, + 75, + 13, + 1, + 51, + 5, + 14, + 51, + 0, + 14, + 105, + 11, + 51, + 4, + 28, + 171, + 75, + 254, + 0, + 51, + 5, + 15, + 51, + 0, + 0, + 16, + 64, + 32, + 131, + 0, + 65, + 3, + 105, + 11, + 51, + 4, + 2, + 171, + 75, + 232, + 0, + 51, + 5, + 16, + 51, + 0, + 13, + 105, + 0, + 51, + 4, + 28, + 171, + 64, + 217, + 0, + 51, + 5, + 17, + 51, + 0, + 11, + 105, + 0, + 51, + 4, + 28, + 171, + 64, + 202, + 0, + 51, + 5, + 18, + 51, + 10, + 1, + 51, + 0, + 13, + 105, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 243, + 51, + 4, + 28, + 171, + 67, + 173, + 0, + 51, + 5, + 29, + 51, + 10, + 1, + 51, + 0, + 19, + 105, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 243, + 51, + 4, + 27, + 171, + 67, + 144, + 0, + 51, + 5, + 20, + 51, + 10, + 1, + 51, + 0, + 34, + 105, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 243, + 51, + 4, + 26, + 171, + 67, + 115, + 51, + 5, + 21, + 51, + 0, + 0, + 128, + 15, + 7, + 105, + 11, + 51, + 4, + 5, + 171, + 75, + 98, + 51, + 5, + 22, + 51, + 0, + 0, + 128, + 0, + 8, + 105, + 11, + 51, + 4, + 4, + 171, + 75, + 81, + 51, + 5, + 23, + 51, + 0, + 0, + 128, + 0, + 24, + 105, + 11, + 51, + 4, + 3, + 171, + 75, + 64, + 51, + 5, + 24, + 51, + 0, + 0, + 128, + 0, + 131, + 0, + 255, + 105, + 11, + 51, + 4, + 17, + 171, + 75, + 45, + 51, + 5, + 25, + 51, + 0, + 0, + 0, + 0, + 128, + 131, + 0, + 255, + 105, + 11, + 51, + 4, + 1, + 171, + 75, + 25, + 51, + 5, + 26, + 51, + 0, + 0, + 0, + 8, + 131, + 0, + 255, + 105, + 11, + 51, + 4, + 13, + 171, + 75, + 6, + 82, + 5, + 4, + 0, + 40, + 13, + 254, + 33, + 41, + 149, + 72, + 74, + 36, + 37, + 18, + 146, + 138, + 4, + 37, + 18, + 146, + 138, + 132, + 148, + 72, + 144, + 18, + 9, + 41, + 145, + 164, + 34, + 65, + 137, + 4, + 37, + 146, + 18, + 9, + 162, + 68, + 82, + 34, + 41, + 145, + 166, + 146, + 36, + 210, + 84, + 146, + 68, + 154, + 74, + 146, + 36, + 40, + 73, + 80, + 146, + 160, + 36, + 33, + 37, + 9, + 82, + 146, + 144, + 146, + 12 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 2, + 26, + 13, + 26, + 0, + 0, + 0, + 0, + 2, + 13, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9821 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64uzbb_cpop.json b/pvm/programs/riscv_rv64uzbb_cpop.json new file mode 100644 index 00000000..b7bfa18a --- /dev/null +++ b/pvm/programs/riscv_rv64uzbb_cpop.json @@ -0,0 +1,650 @@ +{ + "name": "riscv_rv64uzbb_cpop", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 130, + 24, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 0, + 102, + 11, + 51, + 4, + 171, + 75, + 254, + 1, + 51, + 5, + 3, + 51, + 0, + 1, + 102, + 11, + 51, + 4, + 1, + 171, + 75, + 239, + 1, + 51, + 5, + 4, + 51, + 0, + 3, + 102, + 11, + 51, + 4, + 2, + 171, + 75, + 224, + 1, + 51, + 5, + 5, + 51, + 0, + 0, + 128, + 102, + 11, + 51, + 4, + 49, + 171, + 75, + 208, + 1, + 51, + 5, + 6, + 51, + 0, + 0, + 0, + 128, + 0, + 102, + 11, + 51, + 4, + 1, + 171, + 75, + 190, + 1, + 51, + 5, + 7, + 51, + 0, + 5, + 151, + 0, + 33, + 149, + 0, + 255, + 151, + 0, + 15, + 102, + 11, + 51, + 4, + 34, + 171, + 75, + 166, + 1, + 51, + 5, + 8, + 51, + 0, + 0, + 128, + 0, + 131, + 0, + 255, + 102, + 11, + 51, + 4, + 15, + 171, + 75, + 146, + 1, + 51, + 5, + 9, + 51, + 0, + 0, + 0, + 0, + 128, + 131, + 0, + 255, + 102, + 11, + 51, + 4, + 31, + 171, + 75, + 125, + 1, + 51, + 5, + 10, + 51, + 0, + 0, + 0, + 8, + 131, + 0, + 255, + 102, + 11, + 51, + 4, + 19, + 171, + 75, + 105, + 1, + 51, + 5, + 11, + 51, + 0, + 0, + 0, + 0, + 128, + 102, + 11, + 51, + 4, + 33, + 171, + 75, + 87, + 1, + 51, + 5, + 12, + 51, + 0, + 0, + 192, + 171, + 127, + 131, + 0, + 137, + 7, + 151, + 0, + 13, + 149, + 0, + 245, + 1, + 151, + 0, + 12, + 102, + 11, + 51, + 4, + 27, + 171, + 75, + 55, + 1, + 51, + 5, + 13, + 51, + 0, + 255, + 151, + 0, + 63, + 102, + 11, + 51, + 4, + 1, + 171, + 75, + 37, + 1, + 51, + 5, + 14, + 51, + 0, + 14, + 102, + 11, + 51, + 4, + 3, + 171, + 75, + 22, + 1, + 51, + 5, + 15, + 51, + 0, + 253, + 151, + 0, + 32, + 149, + 0, + 25, + 151, + 0, + 17, + 149, + 0, + 1, + 4, + 151, + 0, + 12, + 149, + 0, + 65, + 3, + 102, + 11, + 51, + 4, + 11, + 171, + 75, + 243, + 0, + 51, + 5, + 16, + 51, + 0, + 13, + 102, + 0, + 51, + 4, + 3, + 171, + 64, + 228, + 0, + 51, + 5, + 17, + 51, + 0, + 11, + 102, + 0, + 51, + 4, + 3, + 171, + 64, + 213, + 0, + 51, + 5, + 18, + 51, + 10, + 1, + 51, + 0, + 13, + 102, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 243, + 51, + 4, + 3, + 171, + 67, + 184, + 0, + 51, + 5, + 29, + 51, + 10, + 1, + 51, + 0, + 19, + 102, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 243, + 51, + 4, + 3, + 171, + 67, + 155, + 0, + 51, + 5, + 20, + 51, + 10, + 1, + 51, + 0, + 34, + 102, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 243, + 51, + 4, + 2, + 171, + 67, + 126, + 51, + 5, + 21, + 51, + 0, + 0, + 128, + 127, + 102, + 11, + 51, + 4, + 8, + 171, + 75, + 110, + 51, + 5, + 22, + 51, + 0, + 0, + 128, + 128, + 0, + 102, + 11, + 51, + 4, + 2, + 171, + 75, + 93, + 51, + 5, + 23, + 51, + 0, + 0, + 128, + 128, + 1, + 102, + 11, + 51, + 4, + 3, + 171, + 75, + 76, + 51, + 5, + 24, + 51, + 0, + 0, + 0, + 6, + 131, + 0, + 1, + 151, + 0, + 15, + 149, + 0, + 255, + 102, + 11, + 51, + 4, + 17, + 171, + 75, + 51, + 51, + 5, + 25, + 51, + 0, + 15, + 151, + 0, + 31, + 149, + 0, + 255, + 102, + 11, + 51, + 4, + 34, + 171, + 75, + 31, + 51, + 5, + 26, + 51, + 0, + 0, + 224, + 1, + 131, + 0, + 1, + 151, + 0, + 19, + 149, + 0, + 255, + 102, + 11, + 51, + 4, + 23, + 171, + 75, + 6, + 82, + 5, + 4, + 0, + 40, + 235, + 253, + 33, + 41, + 85, + 36, + 37, + 146, + 18, + 137, + 18, + 9, + 74, + 36, + 73, + 74, + 36, + 164, + 68, + 130, + 148, + 72, + 72, + 137, + 4, + 37, + 18, + 68, + 34, + 37, + 146, + 148, + 72, + 74, + 36, + 73, + 34, + 81, + 34, + 41, + 145, + 148, + 72, + 83, + 73, + 18, + 105, + 42, + 73, + 34, + 77, + 37, + 73, + 18, + 74, + 18, + 148, + 36, + 40, + 73, + 72, + 82, + 146, + 36, + 37, + 9, + 73, + 74, + 50 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 2, + 2, + 23, + 26, + 0, + 0, + 0, + 0, + 2, + 23, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9808 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64uzbb_cpopw.json b/pvm/programs/riscv_rv64uzbb_cpopw.json new file mode 100644 index 00000000..ec8e7b2f --- /dev/null +++ b/pvm/programs/riscv_rv64uzbb_cpopw.json @@ -0,0 +1,609 @@ +{ + "name": "riscv_rv64uzbb_cpopw", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 129, + 243, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 0, + 103, + 11, + 51, + 4, + 171, + 75, + 217, + 1, + 51, + 5, + 3, + 51, + 0, + 1, + 103, + 11, + 51, + 4, + 1, + 171, + 75, + 202, + 1, + 51, + 5, + 4, + 51, + 0, + 3, + 103, + 11, + 51, + 4, + 2, + 171, + 75, + 187, + 1, + 51, + 5, + 5, + 51, + 0, + 0, + 0, + 2, + 131, + 0, + 255, + 151, + 0, + 15, + 103, + 11, + 51, + 4, + 17, + 171, + 75, + 164, + 1, + 51, + 5, + 6, + 51, + 0, + 0, + 0, + 128, + 0, + 103, + 11, + 51, + 4, + 1, + 171, + 75, + 146, + 1, + 51, + 5, + 7, + 51, + 0, + 0, + 0, + 8, + 131, + 0, + 251, + 151, + 0, + 13, + 103, + 11, + 51, + 4, + 18, + 171, + 75, + 123, + 1, + 51, + 5, + 8, + 51, + 0, + 0, + 128, + 0, + 131, + 0, + 255, + 103, + 11, + 51, + 4, + 15, + 171, + 75, + 103, + 1, + 51, + 5, + 9, + 51, + 0, + 0, + 0, + 0, + 128, + 131, + 0, + 255, + 103, + 11, + 51, + 4, + 31, + 171, + 75, + 82, + 1, + 51, + 5, + 10, + 51, + 0, + 0, + 0, + 8, + 131, + 0, + 255, + 103, + 11, + 51, + 4, + 19, + 171, + 75, + 62, + 1, + 51, + 5, + 11, + 51, + 0, + 1, + 151, + 0, + 31, + 103, + 11, + 51, + 4, + 1, + 171, + 75, + 44, + 1, + 51, + 5, + 12, + 51, + 0, + 0, + 80, + 31, + 18, + 103, + 11, + 51, + 4, + 9, + 171, + 75, + 26, + 1, + 51, + 5, + 13, + 51, + 0, + 103, + 11, + 51, + 4, + 171, + 75, + 13, + 1, + 51, + 5, + 14, + 51, + 0, + 14, + 103, + 11, + 51, + 4, + 3, + 171, + 75, + 254, + 0, + 51, + 5, + 15, + 51, + 0, + 0, + 16, + 64, + 32, + 131, + 0, + 65, + 3, + 103, + 11, + 51, + 4, + 7, + 171, + 75, + 232, + 0, + 51, + 5, + 16, + 51, + 0, + 13, + 103, + 0, + 51, + 4, + 3, + 171, + 64, + 217, + 0, + 51, + 5, + 17, + 51, + 0, + 11, + 103, + 0, + 51, + 4, + 3, + 171, + 64, + 202, + 0, + 51, + 5, + 18, + 51, + 10, + 1, + 51, + 0, + 13, + 103, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 243, + 51, + 4, + 3, + 171, + 67, + 173, + 0, + 51, + 5, + 29, + 51, + 10, + 1, + 51, + 0, + 19, + 103, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 243, + 51, + 4, + 3, + 171, + 67, + 144, + 0, + 51, + 5, + 20, + 51, + 10, + 1, + 51, + 0, + 34, + 103, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 243, + 51, + 4, + 2, + 171, + 67, + 115, + 51, + 5, + 21, + 51, + 0, + 0, + 128, + 127, + 103, + 11, + 51, + 4, + 8, + 171, + 75, + 99, + 51, + 5, + 22, + 51, + 0, + 0, + 128, + 128, + 0, + 103, + 11, + 51, + 4, + 2, + 171, + 75, + 82, + 51, + 5, + 23, + 51, + 0, + 0, + 128, + 128, + 1, + 103, + 11, + 51, + 4, + 3, + 171, + 75, + 65, + 51, + 5, + 24, + 51, + 0, + 0, + 128, + 0, + 48, + 131, + 0, + 255, + 103, + 11, + 51, + 4, + 17, + 171, + 75, + 45, + 51, + 5, + 25, + 51, + 0, + 0, + 0, + 0, + 120, + 131, + 0, + 255, + 103, + 11, + 51, + 4, + 30, + 171, + 75, + 25, + 51, + 5, + 26, + 51, + 0, + 0, + 0, + 8, + 131, + 0, + 255, + 103, + 11, + 51, + 4, + 19, + 171, + 75, + 6, + 82, + 5, + 4, + 0, + 40, + 16, + 254, + 33, + 41, + 85, + 36, + 37, + 146, + 18, + 9, + 73, + 137, + 4, + 37, + 18, + 146, + 18, + 9, + 41, + 145, + 32, + 37, + 18, + 82, + 34, + 73, + 137, + 4, + 37, + 82, + 69, + 82, + 34, + 65, + 148, + 72, + 74, + 36, + 37, + 210, + 84, + 146, + 68, + 154, + 74, + 146, + 72, + 83, + 73, + 146, + 132, + 146, + 4, + 37, + 9, + 74, + 18, + 164, + 36, + 65, + 74, + 18, + 82, + 146, + 1 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 2, + 2, + 19, + 26, + 0, + 0, + 0, + 0, + 2, + 19, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9821 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64uzbb_ctz.json b/pvm/programs/riscv_rv64uzbb_ctz.json new file mode 100644 index 00000000..4ce25f26 --- /dev/null +++ b/pvm/programs/riscv_rv64uzbb_ctz.json @@ -0,0 +1,637 @@ +{ + "name": "riscv_rv64uzbb_ctz", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 130, + 12, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 0, + 106, + 11, + 51, + 4, + 64, + 171, + 75, + 241, + 1, + 51, + 5, + 3, + 51, + 0, + 1, + 106, + 11, + 51, + 4, + 171, + 75, + 227, + 1, + 51, + 5, + 4, + 51, + 0, + 3, + 106, + 11, + 51, + 4, + 171, + 75, + 213, + 1, + 51, + 5, + 5, + 51, + 0, + 0, + 128, + 106, + 11, + 51, + 4, + 15, + 171, + 75, + 197, + 1, + 51, + 5, + 6, + 51, + 0, + 0, + 0, + 128, + 0, + 106, + 11, + 51, + 4, + 23, + 171, + 75, + 179, + 1, + 51, + 5, + 7, + 51, + 0, + 5, + 151, + 0, + 33, + 149, + 0, + 255, + 151, + 0, + 15, + 106, + 11, + 51, + 4, + 15, + 171, + 75, + 155, + 1, + 51, + 5, + 8, + 51, + 0, + 0, + 128, + 0, + 131, + 0, + 255, + 106, + 11, + 51, + 4, + 171, + 75, + 136, + 1, + 51, + 5, + 9, + 51, + 0, + 0, + 0, + 0, + 128, + 131, + 0, + 255, + 106, + 11, + 51, + 4, + 171, + 75, + 116, + 1, + 51, + 5, + 10, + 51, + 0, + 0, + 0, + 8, + 131, + 0, + 255, + 106, + 11, + 51, + 4, + 171, + 75, + 97, + 1, + 51, + 5, + 11, + 51, + 0, + 0, + 0, + 0, + 128, + 106, + 11, + 51, + 4, + 31, + 171, + 75, + 79, + 1, + 51, + 5, + 12, + 51, + 0, + 0, + 192, + 171, + 127, + 131, + 0, + 137, + 7, + 151, + 0, + 13, + 149, + 0, + 245, + 1, + 151, + 0, + 12, + 106, + 11, + 51, + 4, + 12, + 171, + 75, + 47, + 1, + 51, + 5, + 13, + 51, + 0, + 255, + 151, + 0, + 63, + 106, + 11, + 51, + 4, + 63, + 171, + 75, + 29, + 1, + 51, + 5, + 14, + 51, + 0, + 14, + 106, + 11, + 51, + 4, + 1, + 171, + 75, + 14, + 1, + 51, + 5, + 15, + 51, + 0, + 253, + 151, + 0, + 32, + 149, + 0, + 25, + 151, + 0, + 17, + 149, + 0, + 1, + 4, + 151, + 0, + 12, + 149, + 0, + 65, + 3, + 106, + 11, + 51, + 4, + 171, + 75, + 236, + 0, + 51, + 5, + 16, + 51, + 0, + 13, + 106, + 0, + 51, + 4, + 171, + 64, + 222, + 0, + 51, + 5, + 17, + 51, + 0, + 11, + 106, + 0, + 51, + 4, + 171, + 64, + 208, + 0, + 51, + 5, + 18, + 51, + 10, + 1, + 51, + 0, + 13, + 106, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 243, + 51, + 4, + 171, + 67, + 180, + 0, + 51, + 5, + 29, + 51, + 10, + 1, + 51, + 0, + 19, + 106, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 243, + 51, + 4, + 171, + 67, + 152, + 0, + 51, + 5, + 20, + 51, + 10, + 1, + 51, + 0, + 34, + 106, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 243, + 51, + 4, + 1, + 171, + 67, + 123, + 51, + 5, + 21, + 51, + 0, + 0, + 128, + 127, + 106, + 11, + 51, + 4, + 15, + 171, + 75, + 107, + 51, + 5, + 22, + 51, + 0, + 0, + 128, + 128, + 0, + 106, + 11, + 51, + 4, + 15, + 171, + 75, + 90, + 51, + 5, + 23, + 51, + 0, + 0, + 144, + 128, + 1, + 106, + 11, + 51, + 4, + 12, + 171, + 75, + 73, + 51, + 5, + 24, + 51, + 0, + 0, + 0, + 6, + 131, + 0, + 1, + 151, + 0, + 15, + 149, + 0, + 255, + 106, + 11, + 51, + 4, + 171, + 75, + 49, + 51, + 5, + 25, + 51, + 0, + 15, + 151, + 0, + 31, + 149, + 0, + 255, + 106, + 11, + 51, + 4, + 171, + 75, + 30, + 51, + 5, + 26, + 51, + 0, + 0, + 224, + 1, + 131, + 0, + 1, + 151, + 0, + 19, + 149, + 0, + 255, + 106, + 11, + 51, + 4, + 171, + 75, + 6, + 82, + 5, + 4, + 0, + 40, + 247, + 253, + 33, + 41, + 149, + 72, + 42, + 146, + 138, + 68, + 137, + 4, + 37, + 146, + 36, + 37, + 18, + 82, + 145, + 32, + 21, + 9, + 169, + 72, + 80, + 34, + 65, + 36, + 82, + 34, + 73, + 137, + 164, + 68, + 146, + 36, + 18, + 21, + 73, + 69, + 82, + 145, + 166, + 146, + 20, + 105, + 42, + 73, + 145, + 166, + 146, + 36, + 9, + 37, + 9, + 74, + 18, + 148, + 36, + 36, + 169, + 36, + 73, + 37, + 33, + 73, + 37, + 3 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 2, + 1, + 0, + 26, + 0, + 0, + 0, + 0, + 2, + 0, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9808 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64uzbb_ctzw.json b/pvm/programs/riscv_rv64uzbb_ctzw.json new file mode 100644 index 00000000..313f5dfd --- /dev/null +++ b/pvm/programs/riscv_rv64uzbb_ctzw.json @@ -0,0 +1,600 @@ +{ + "name": "riscv_rv64uzbb_ctzw", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 129, + 235, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 0, + 107, + 11, + 51, + 4, + 32, + 171, + 75, + 208, + 1, + 51, + 5, + 3, + 51, + 0, + 1, + 107, + 11, + 51, + 4, + 171, + 75, + 194, + 1, + 51, + 5, + 4, + 51, + 0, + 3, + 107, + 11, + 51, + 4, + 171, + 75, + 180, + 1, + 51, + 5, + 5, + 51, + 0, + 0, + 0, + 2, + 131, + 0, + 255, + 151, + 0, + 15, + 107, + 11, + 51, + 4, + 15, + 171, + 75, + 157, + 1, + 51, + 5, + 6, + 51, + 0, + 0, + 0, + 128, + 0, + 107, + 11, + 51, + 4, + 23, + 171, + 75, + 139, + 1, + 51, + 5, + 7, + 51, + 0, + 0, + 0, + 2, + 131, + 0, + 255, + 151, + 0, + 15, + 107, + 11, + 51, + 4, + 15, + 171, + 75, + 116, + 1, + 51, + 5, + 8, + 51, + 0, + 0, + 128, + 0, + 131, + 0, + 255, + 107, + 11, + 51, + 4, + 171, + 75, + 97, + 1, + 51, + 5, + 9, + 51, + 0, + 0, + 0, + 0, + 128, + 131, + 0, + 255, + 107, + 11, + 51, + 4, + 171, + 75, + 77, + 1, + 51, + 5, + 10, + 51, + 0, + 0, + 0, + 8, + 131, + 0, + 255, + 107, + 11, + 51, + 4, + 171, + 75, + 58, + 1, + 51, + 5, + 11, + 51, + 0, + 1, + 151, + 0, + 31, + 107, + 11, + 51, + 4, + 31, + 171, + 75, + 40, + 1, + 51, + 5, + 12, + 51, + 0, + 0, + 80, + 31, + 18, + 107, + 11, + 51, + 4, + 12, + 171, + 75, + 22, + 1, + 51, + 5, + 13, + 51, + 0, + 3, + 151, + 0, + 30, + 107, + 11, + 51, + 4, + 30, + 171, + 75, + 4, + 1, + 51, + 5, + 14, + 51, + 0, + 14, + 107, + 11, + 51, + 4, + 1, + 171, + 75, + 245, + 0, + 51, + 5, + 15, + 51, + 0, + 0, + 16, + 64, + 32, + 131, + 0, + 65, + 3, + 107, + 11, + 51, + 4, + 171, + 75, + 224, + 0, + 51, + 5, + 16, + 51, + 0, + 13, + 107, + 0, + 51, + 4, + 171, + 64, + 210, + 0, + 51, + 5, + 17, + 51, + 0, + 11, + 107, + 0, + 51, + 4, + 171, + 64, + 196, + 0, + 51, + 5, + 18, + 51, + 10, + 1, + 51, + 0, + 13, + 107, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 243, + 51, + 4, + 171, + 67, + 168, + 0, + 51, + 5, + 29, + 51, + 10, + 1, + 51, + 0, + 19, + 107, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 243, + 51, + 4, + 171, + 67, + 140, + 0, + 51, + 5, + 20, + 51, + 10, + 1, + 51, + 0, + 34, + 107, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 243, + 51, + 4, + 1, + 171, + 67, + 111, + 51, + 5, + 21, + 51, + 0, + 0, + 128, + 127, + 107, + 11, + 51, + 4, + 15, + 171, + 75, + 95, + 51, + 5, + 22, + 51, + 0, + 0, + 128, + 128, + 0, + 107, + 11, + 51, + 4, + 15, + 171, + 75, + 78, + 51, + 5, + 23, + 51, + 0, + 0, + 144, + 128, + 1, + 107, + 11, + 51, + 4, + 12, + 171, + 75, + 61, + 51, + 5, + 24, + 51, + 0, + 0, + 128, + 0, + 131, + 0, + 255, + 107, + 11, + 51, + 4, + 171, + 75, + 43, + 51, + 5, + 25, + 51, + 0, + 0, + 0, + 0, + 128, + 131, + 0, + 255, + 107, + 11, + 51, + 4, + 171, + 75, + 24, + 51, + 5, + 26, + 51, + 0, + 0, + 0, + 8, + 131, + 0, + 255, + 107, + 11, + 51, + 4, + 171, + 75, + 6, + 82, + 5, + 4, + 0, + 40, + 24, + 254, + 33, + 41, + 149, + 72, + 42, + 146, + 138, + 132, + 164, + 68, + 130, + 18, + 9, + 73, + 137, + 132, + 84, + 36, + 72, + 69, + 66, + 42, + 146, + 148, + 72, + 80, + 34, + 73, + 137, + 164, + 68, + 130, + 168, + 72, + 42, + 146, + 138, + 52, + 149, + 164, + 72, + 83, + 73, + 138, + 52, + 149, + 36, + 73, + 40, + 73, + 80, + 146, + 160, + 36, + 33, + 149, + 4, + 169, + 36, + 164, + 146, + 1 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 2, + 1, + 0, + 26, + 0, + 0, + 0, + 0, + 2, + 0, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9820 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64uzbb_max.json b/pvm/programs/riscv_rv64uzbb_max.json new file mode 100644 index 00000000..832a0bfd --- /dev/null +++ b/pvm/programs/riscv_rv64uzbb_max.json @@ -0,0 +1,1152 @@ +{ + "name": "riscv_rv64uzbb_max", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 131, + 202, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 8, + 51, + 9, + 227, + 152, + 11, + 51, + 4, + 171, + 75, + 173, + 3, + 51, + 5, + 3, + 51, + 8, + 1, + 51, + 9, + 1, + 227, + 152, + 11, + 51, + 4, + 1, + 171, + 75, + 154, + 3, + 51, + 5, + 4, + 51, + 8, + 3, + 51, + 9, + 7, + 227, + 152, + 11, + 51, + 4, + 7, + 171, + 75, + 135, + 3, + 51, + 5, + 5, + 51, + 8, + 7, + 51, + 9, + 3, + 227, + 152, + 11, + 51, + 4, + 7, + 171, + 75, + 116, + 3, + 51, + 5, + 6, + 51, + 8, + 51, + 9, + 0, + 128, + 227, + 152, + 11, + 51, + 4, + 171, + 75, + 98, + 3, + 51, + 5, + 7, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 227, + 152, + 11, + 51, + 4, + 171, + 75, + 78, + 3, + 51, + 5, + 8, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 0, + 128, + 227, + 152, + 11, + 51, + 4, + 0, + 128, + 171, + 75, + 54, + 3, + 51, + 5, + 9, + 51, + 8, + 51, + 9, + 0, + 128, + 0, + 131, + 153, + 255, + 227, + 152, + 11, + 51, + 4, + 0, + 128, + 0, + 131, + 68, + 255, + 171, + 75, + 26, + 3, + 51, + 5, + 10, + 51, + 8, + 0, + 0, + 0, + 128, + 131, + 136, + 255, + 51, + 9, + 227, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 128, + 131, + 68, + 255, + 171, + 75, + 252, + 2, + 51, + 5, + 11, + 51, + 8, + 0, + 0, + 0, + 128, + 131, + 136, + 255, + 51, + 9, + 0, + 128, + 0, + 131, + 153, + 255, + 227, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 128, + 131, + 68, + 255, + 171, + 75, + 216, + 2, + 51, + 5, + 12, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 0, + 128, + 0, + 131, + 153, + 255, + 227, + 152, + 11, + 51, + 4, + 0, + 128, + 0, + 131, + 68, + 255, + 171, + 75, + 184, + 2, + 51, + 5, + 13, + 51, + 8, + 0, + 0, + 0, + 128, + 131, + 136, + 255, + 51, + 9, + 0, + 128, + 227, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 128, + 131, + 68, + 255, + 171, + 75, + 152, + 2, + 51, + 5, + 14, + 51, + 8, + 51, + 9, + 255, + 227, + 152, + 11, + 51, + 4, + 171, + 75, + 135, + 2, + 51, + 5, + 15, + 51, + 8, + 255, + 51, + 9, + 1, + 227, + 152, + 11, + 51, + 4, + 1, + 171, + 75, + 116, + 2, + 51, + 5, + 16, + 51, + 8, + 255, + 51, + 9, + 255, + 227, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 97, + 2, + 51, + 5, + 17, + 51, + 8, + 14, + 51, + 9, + 13, + 227, + 152, + 8, + 51, + 4, + 14, + 171, + 72, + 78, + 2, + 51, + 5, + 18, + 51, + 8, + 11, + 51, + 9, + 13, + 227, + 152, + 9, + 51, + 4, + 13, + 171, + 73, + 59, + 2, + 51, + 5, + 19, + 51, + 8, + 13, + 227, + 136, + 8, + 51, + 4, + 13, + 171, + 72, + 43, + 2, + 51, + 5, + 20, + 51, + 10, + 1, + 51, + 0, + 11, + 51, + 1, + 13, + 227, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 13, + 171, + 67, + 10, + 2, + 51, + 5, + 21, + 51, + 10, + 1, + 51, + 0, + 14, + 51, + 1, + 13, + 227, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 14, + 171, + 67, + 233, + 1, + 51, + 5, + 22, + 51, + 10, + 1, + 51, + 0, + 12, + 51, + 1, + 13, + 227, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 13, + 171, + 67, + 200, + 1, + 51, + 5, + 23, + 51, + 10, + 1, + 51, + 0, + 14, + 51, + 1, + 13, + 227, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 14, + 171, + 75, + 169, + 1, + 51, + 5, + 24, + 51, + 10, + 1, + 51, + 0, + 11, + 51, + 1, + 13, + 227, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 13, + 171, + 75, + 138, + 1, + 51, + 5, + 25, + 51, + 10, + 1, + 51, + 0, + 15, + 51, + 1, + 13, + 227, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 15, + 171, + 75, + 107, + 1, + 51, + 5, + 26, + 51, + 10, + 1, + 51, + 0, + 10, + 51, + 1, + 13, + 227, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 13, + 171, + 75, + 76, + 1, + 51, + 5, + 27, + 51, + 10, + 1, + 51, + 0, + 16, + 51, + 1, + 13, + 227, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 16, + 171, + 75, + 45, + 1, + 51, + 5, + 28, + 51, + 10, + 1, + 51, + 0, + 9, + 51, + 1, + 13, + 227, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 13, + 171, + 75, + 14, + 1, + 51, + 5, + 29, + 51, + 10, + 1, + 51, + 1, + 13, + 51, + 0, + 17, + 227, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 17, + 171, + 75, + 239, + 0, + 51, + 5, + 30, + 51, + 10, + 1, + 51, + 1, + 13, + 51, + 0, + 8, + 227, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 13, + 171, + 75, + 208, + 0, + 51, + 5, + 31, + 51, + 10, + 1, + 51, + 1, + 13, + 51, + 0, + 18, + 227, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 18, + 171, + 75, + 177, + 0, + 51, + 5, + 32, + 51, + 10, + 1, + 51, + 1, + 13, + 51, + 0, + 7, + 227, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 13, + 171, + 75, + 146, + 0, + 51, + 5, + 33, + 51, + 10, + 1, + 51, + 1, + 13, + 51, + 0, + 19, + 227, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 19, + 171, + 75, + 115, + 51, + 5, + 34, + 51, + 10, + 1, + 51, + 1, + 13, + 51, + 0, + 6, + 227, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 13, + 171, + 75, + 85, + 51, + 5, + 35, + 51, + 0, + 255, + 62, + 2, + 0, + 0, + 2, + 137, + 2, + 51, + 1, + 218, + 32, + 1, + 58, + 2, + 0, + 0, + 2, + 51, + 4, + 171, + 65, + 57, + 51, + 5, + 36, + 51, + 0, + 255, + 62, + 2, + 0, + 0, + 2, + 143, + 2, + 100, + 1, + 147, + 33, + 58, + 2, + 0, + 0, + 2, + 51, + 4, + 171, + 65, + 30, + 51, + 5, + 37, + 51, + 0, + 51, + 4, + 171, + 64, + 20, + 51, + 5, + 38, + 51, + 0, + 16, + 51, + 1, + 30, + 51, + 4, + 82, + 4, + 6, + 82, + 5, + 4, + 0, + 40, + 57, + 252, + 33, + 41, + 149, + 34, + 73, + 18, + 73, + 146, + 72, + 146, + 68, + 138, + 20, + 9, + 74, + 145, + 32, + 18, + 145, + 66, + 18, + 18, + 9, + 82, + 130, + 68, + 130, + 132, + 36, + 72, + 36, + 8, + 73, + 72, + 36, + 72, + 36, + 72, + 164, + 164, + 72, + 146, + 68, + 146, + 36, + 146, + 36, + 145, + 36, + 137, + 36, + 137, + 52, + 73, + 73, + 18, + 105, + 146, + 146, + 36, + 210, + 36, + 37, + 73, + 164, + 73, + 146, + 36, + 210, + 36, + 73, + 18, + 105, + 146, + 36, + 137, + 52, + 73, + 146, + 68, + 154, + 36, + 73, + 34, + 77, + 146, + 36, + 145, + 38, + 73, + 146, + 72, + 147, + 36, + 73, + 164, + 73, + 146, + 36, + 210, + 36, + 73, + 18, + 105, + 146, + 36, + 73, + 154, + 36, + 73, + 146, + 132, + 74, + 40, + 73, + 168, + 66, + 73, + 37, + 73, + 201, + 0 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 30, + 2, + 13, + 0, + 38, + 0, + 0, + 13, + 13, + 2, + 13, + 0 + ], + "expected-pc": 11, + "expected-memory": [ + { + "address": 131072, + "contents": [ + 2 + ] + } + ], + "expected-gas": 9588 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64uzbb_maxu.json b/pvm/programs/riscv_rv64uzbb_maxu.json new file mode 100644 index 00000000..90eb77a2 --- /dev/null +++ b/pvm/programs/riscv_rv64uzbb_maxu.json @@ -0,0 +1,1202 @@ +{ + "name": "riscv_rv64uzbb_maxu", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 132, + 2, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 8, + 51, + 9, + 228, + 152, + 11, + 51, + 4, + 171, + 75, + 229, + 3, + 51, + 5, + 3, + 51, + 8, + 1, + 51, + 9, + 1, + 228, + 152, + 11, + 51, + 4, + 1, + 171, + 75, + 210, + 3, + 51, + 5, + 4, + 51, + 8, + 3, + 51, + 9, + 7, + 228, + 152, + 11, + 51, + 4, + 7, + 171, + 75, + 191, + 3, + 51, + 5, + 5, + 51, + 8, + 7, + 51, + 9, + 3, + 228, + 152, + 11, + 51, + 4, + 7, + 171, + 75, + 172, + 3, + 51, + 5, + 6, + 51, + 8, + 51, + 9, + 0, + 0, + 2, + 131, + 153, + 255, + 151, + 153, + 15, + 228, + 152, + 11, + 51, + 4, + 0, + 0, + 2, + 131, + 68, + 255, + 151, + 68, + 15, + 171, + 75, + 138, + 3, + 51, + 5, + 7, + 51, + 8, + 1, + 151, + 136, + 31, + 51, + 9, + 228, + 152, + 11, + 51, + 4, + 1, + 151, + 68, + 31, + 171, + 75, + 114, + 3, + 51, + 5, + 8, + 51, + 8, + 1, + 151, + 136, + 31, + 51, + 9, + 0, + 0, + 2, + 131, + 153, + 255, + 151, + 153, + 15, + 228, + 152, + 11, + 51, + 4, + 0, + 0, + 2, + 131, + 68, + 255, + 151, + 68, + 15, + 171, + 75, + 76, + 3, + 51, + 5, + 9, + 51, + 8, + 51, + 9, + 0, + 128, + 0, + 131, + 153, + 255, + 228, + 152, + 11, + 51, + 4, + 0, + 128, + 0, + 131, + 68, + 255, + 171, + 75, + 48, + 3, + 51, + 5, + 10, + 51, + 8, + 0, + 0, + 0, + 128, + 131, + 136, + 255, + 51, + 9, + 228, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 128, + 131, + 68, + 255, + 171, + 75, + 18, + 3, + 51, + 5, + 11, + 51, + 8, + 0, + 0, + 0, + 128, + 131, + 136, + 255, + 51, + 9, + 0, + 128, + 0, + 131, + 153, + 255, + 228, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 128, + 131, + 68, + 255, + 171, + 75, + 238, + 2, + 51, + 5, + 12, + 51, + 8, + 1, + 151, + 136, + 31, + 51, + 9, + 0, + 128, + 0, + 131, + 153, + 255, + 228, + 152, + 11, + 51, + 4, + 1, + 151, + 68, + 31, + 171, + 75, + 208, + 2, + 51, + 5, + 13, + 51, + 8, + 0, + 0, + 0, + 128, + 131, + 136, + 255, + 51, + 9, + 0, + 0, + 2, + 131, + 153, + 255, + 151, + 153, + 15, + 228, + 152, + 11, + 51, + 4, + 0, + 0, + 2, + 131, + 68, + 255, + 151, + 68, + 15, + 171, + 75, + 167, + 2, + 51, + 5, + 14, + 51, + 8, + 51, + 9, + 1, + 151, + 153, + 32, + 149, + 153, + 255, + 228, + 152, + 11, + 51, + 4, + 1, + 151, + 68, + 32, + 149, + 68, + 255, + 171, + 75, + 137, + 2, + 51, + 5, + 15, + 51, + 8, + 1, + 151, + 136, + 32, + 149, + 136, + 255, + 51, + 9, + 1, + 228, + 152, + 11, + 51, + 4, + 1, + 151, + 68, + 32, + 149, + 68, + 255, + 171, + 75, + 106, + 2, + 51, + 5, + 16, + 51, + 8, + 1, + 151, + 136, + 32, + 149, + 136, + 255, + 51, + 9, + 1, + 151, + 153, + 32, + 149, + 153, + 255, + 228, + 152, + 11, + 51, + 4, + 1, + 151, + 68, + 32, + 149, + 68, + 255, + 171, + 75, + 69, + 2, + 51, + 5, + 17, + 51, + 8, + 14, + 51, + 9, + 13, + 228, + 152, + 8, + 51, + 4, + 14, + 171, + 72, + 50, + 2, + 51, + 5, + 18, + 51, + 8, + 11, + 51, + 9, + 13, + 228, + 152, + 9, + 51, + 4, + 13, + 171, + 73, + 31, + 2, + 51, + 5, + 19, + 51, + 8, + 13, + 228, + 136, + 8, + 51, + 4, + 13, + 171, + 72, + 15, + 2, + 51, + 5, + 20, + 51, + 10, + 1, + 51, + 0, + 11, + 51, + 1, + 13, + 228, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 13, + 171, + 67, + 238, + 1, + 51, + 5, + 21, + 51, + 10, + 1, + 51, + 0, + 14, + 51, + 1, + 13, + 228, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 14, + 171, + 67, + 205, + 1, + 51, + 5, + 22, + 51, + 10, + 1, + 51, + 0, + 12, + 51, + 1, + 13, + 228, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 13, + 171, + 67, + 172, + 1, + 51, + 5, + 23, + 51, + 10, + 1, + 51, + 0, + 14, + 51, + 1, + 13, + 228, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 14, + 171, + 75, + 141, + 1, + 51, + 5, + 24, + 51, + 10, + 1, + 51, + 0, + 11, + 51, + 1, + 13, + 228, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 13, + 171, + 75, + 110, + 1, + 51, + 5, + 25, + 51, + 10, + 1, + 51, + 0, + 15, + 51, + 1, + 13, + 228, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 15, + 171, + 75, + 79, + 1, + 51, + 5, + 26, + 51, + 10, + 1, + 51, + 0, + 10, + 51, + 1, + 13, + 228, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 13, + 171, + 75, + 48, + 1, + 51, + 5, + 27, + 51, + 10, + 1, + 51, + 0, + 16, + 51, + 1, + 13, + 228, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 16, + 171, + 75, + 17, + 1, + 51, + 5, + 28, + 51, + 10, + 1, + 51, + 0, + 9, + 51, + 1, + 13, + 228, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 13, + 171, + 75, + 242, + 0, + 51, + 5, + 29, + 51, + 10, + 1, + 51, + 1, + 13, + 51, + 0, + 17, + 228, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 17, + 171, + 75, + 211, + 0, + 51, + 5, + 30, + 51, + 10, + 1, + 51, + 1, + 13, + 51, + 0, + 8, + 228, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 13, + 171, + 75, + 180, + 0, + 51, + 5, + 31, + 51, + 10, + 1, + 51, + 1, + 13, + 51, + 0, + 18, + 228, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 18, + 171, + 75, + 149, + 0, + 51, + 5, + 32, + 51, + 10, + 1, + 51, + 1, + 13, + 51, + 0, + 7, + 228, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 13, + 171, + 75, + 118, + 51, + 5, + 33, + 51, + 10, + 1, + 51, + 1, + 13, + 51, + 0, + 19, + 228, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 19, + 171, + 75, + 88, + 51, + 5, + 34, + 51, + 10, + 1, + 51, + 1, + 13, + 51, + 0, + 6, + 228, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 13, + 171, + 75, + 58, + 51, + 5, + 35, + 51, + 0, + 255, + 100, + 1, + 51, + 4, + 255, + 171, + 65, + 44, + 51, + 5, + 36, + 51, + 0, + 255, + 100, + 1, + 51, + 4, + 255, + 171, + 65, + 30, + 51, + 5, + 37, + 51, + 0, + 51, + 4, + 171, + 64, + 20, + 51, + 5, + 38, + 51, + 0, + 16, + 51, + 1, + 30, + 51, + 4, + 82, + 4, + 6, + 82, + 5, + 4, + 0, + 40, + 1, + 252, + 33, + 41, + 149, + 34, + 73, + 18, + 73, + 146, + 72, + 146, + 68, + 10, + 73, + 66, + 18, + 73, + 74, + 18, + 73, + 66, + 146, + 144, + 68, + 10, + 73, + 72, + 36, + 72, + 9, + 18, + 9, + 18, + 146, + 32, + 145, + 36, + 36, + 73, + 36, + 72, + 72, + 18, + 146, + 72, + 73, + 146, + 36, + 146, + 36, + 73, + 18, + 73, + 146, + 36, + 73, + 34, + 73, + 18, + 73, + 146, + 72, + 146, + 72, + 147, + 148, + 36, + 145, + 38, + 41, + 73, + 34, + 77, + 82, + 146, + 68, + 154, + 36, + 73, + 34, + 77, + 146, + 36, + 145, + 38, + 73, + 146, + 72, + 147, + 36, + 73, + 164, + 73, + 146, + 36, + 210, + 36, + 73, + 18, + 105, + 146, + 36, + 137, + 52, + 73, + 146, + 68, + 154, + 36, + 73, + 34, + 77, + 146, + 36, + 73, + 147, + 36, + 73, + 210, + 36, + 73, + 146, + 164, + 36, + 41, + 73, + 37, + 73, + 201, + 0 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 30, + 2, + 13, + 0, + 38, + 0, + 0, + 13, + 13, + 2, + 13, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9567 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64uzbb_min.json b/pvm/programs/riscv_rv64uzbb_min.json new file mode 100644 index 00000000..f8328281 --- /dev/null +++ b/pvm/programs/riscv_rv64uzbb_min.json @@ -0,0 +1,1140 @@ +{ + "name": "riscv_rv64uzbb_min", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 131, + 192, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 8, + 51, + 9, + 229, + 152, + 11, + 51, + 4, + 171, + 75, + 163, + 3, + 51, + 5, + 3, + 51, + 8, + 1, + 51, + 9, + 1, + 229, + 152, + 11, + 51, + 4, + 1, + 171, + 75, + 144, + 3, + 51, + 5, + 4, + 51, + 8, + 3, + 51, + 9, + 7, + 229, + 152, + 11, + 51, + 4, + 3, + 171, + 75, + 125, + 3, + 51, + 5, + 5, + 51, + 8, + 7, + 51, + 9, + 3, + 229, + 152, + 11, + 51, + 4, + 3, + 171, + 75, + 106, + 3, + 51, + 5, + 6, + 51, + 8, + 51, + 9, + 0, + 128, + 229, + 152, + 11, + 51, + 4, + 0, + 128, + 171, + 75, + 86, + 3, + 51, + 5, + 7, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 229, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 62, + 3, + 51, + 5, + 8, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 0, + 128, + 229, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 36, + 3, + 51, + 5, + 9, + 51, + 8, + 51, + 9, + 0, + 128, + 0, + 131, + 153, + 255, + 229, + 152, + 11, + 51, + 4, + 171, + 75, + 14, + 3, + 51, + 5, + 10, + 51, + 8, + 0, + 0, + 0, + 128, + 131, + 136, + 255, + 51, + 9, + 229, + 152, + 11, + 51, + 4, + 171, + 75, + 247, + 2, + 51, + 5, + 11, + 51, + 8, + 0, + 0, + 0, + 128, + 131, + 136, + 255, + 51, + 9, + 0, + 128, + 0, + 131, + 153, + 255, + 229, + 152, + 11, + 51, + 4, + 0, + 128, + 0, + 131, + 68, + 255, + 171, + 75, + 212, + 2, + 51, + 5, + 12, + 51, + 8, + 0, + 0, + 0, + 128, + 51, + 9, + 0, + 128, + 0, + 131, + 153, + 255, + 229, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 182, + 2, + 51, + 5, + 13, + 51, + 8, + 0, + 0, + 0, + 128, + 131, + 136, + 255, + 51, + 9, + 0, + 128, + 229, + 152, + 11, + 51, + 4, + 0, + 128, + 171, + 75, + 155, + 2, + 51, + 5, + 14, + 51, + 8, + 51, + 9, + 255, + 229, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 137, + 2, + 51, + 5, + 15, + 51, + 8, + 255, + 51, + 9, + 1, + 229, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 118, + 2, + 51, + 5, + 16, + 51, + 8, + 255, + 51, + 9, + 255, + 229, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 99, + 2, + 51, + 5, + 17, + 51, + 8, + 14, + 51, + 9, + 13, + 229, + 152, + 8, + 51, + 4, + 13, + 171, + 72, + 80, + 2, + 51, + 5, + 18, + 51, + 8, + 11, + 51, + 9, + 13, + 229, + 152, + 9, + 51, + 4, + 11, + 171, + 73, + 61, + 2, + 51, + 5, + 19, + 51, + 8, + 13, + 229, + 136, + 8, + 51, + 4, + 13, + 171, + 72, + 45, + 2, + 51, + 5, + 20, + 51, + 10, + 1, + 51, + 0, + 11, + 51, + 1, + 13, + 229, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 11, + 171, + 67, + 12, + 2, + 51, + 5, + 21, + 51, + 10, + 1, + 51, + 0, + 14, + 51, + 1, + 13, + 229, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 13, + 171, + 67, + 235, + 1, + 51, + 5, + 22, + 51, + 10, + 1, + 51, + 0, + 12, + 51, + 1, + 13, + 229, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 12, + 171, + 67, + 202, + 1, + 51, + 5, + 23, + 51, + 10, + 1, + 51, + 0, + 14, + 51, + 1, + 13, + 229, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 13, + 171, + 75, + 171, + 1, + 51, + 5, + 24, + 51, + 10, + 1, + 51, + 0, + 11, + 51, + 1, + 13, + 229, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 11, + 171, + 75, + 140, + 1, + 51, + 5, + 25, + 51, + 10, + 1, + 51, + 0, + 15, + 51, + 1, + 13, + 229, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 13, + 171, + 75, + 109, + 1, + 51, + 5, + 26, + 51, + 10, + 1, + 51, + 0, + 10, + 51, + 1, + 13, + 229, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 10, + 171, + 75, + 78, + 1, + 51, + 5, + 27, + 51, + 10, + 1, + 51, + 0, + 16, + 51, + 1, + 13, + 229, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 13, + 171, + 75, + 47, + 1, + 51, + 5, + 28, + 51, + 10, + 1, + 51, + 0, + 9, + 51, + 1, + 13, + 229, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 9, + 171, + 75, + 16, + 1, + 51, + 5, + 29, + 51, + 10, + 1, + 51, + 1, + 13, + 51, + 0, + 17, + 229, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 13, + 171, + 75, + 241, + 0, + 51, + 5, + 30, + 51, + 10, + 1, + 51, + 1, + 13, + 51, + 0, + 8, + 229, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 8, + 171, + 75, + 210, + 0, + 51, + 5, + 31, + 51, + 10, + 1, + 51, + 1, + 13, + 51, + 0, + 18, + 229, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 13, + 171, + 75, + 179, + 0, + 51, + 5, + 32, + 51, + 10, + 1, + 51, + 1, + 13, + 51, + 0, + 7, + 229, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 7, + 171, + 75, + 148, + 0, + 51, + 5, + 33, + 51, + 10, + 1, + 51, + 1, + 13, + 51, + 0, + 19, + 229, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 13, + 171, + 75, + 117, + 51, + 5, + 34, + 51, + 10, + 1, + 51, + 1, + 13, + 51, + 0, + 6, + 229, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 6, + 171, + 75, + 87, + 51, + 5, + 35, + 51, + 0, + 255, + 62, + 2, + 0, + 0, + 2, + 143, + 2, + 51, + 1, + 218, + 32, + 1, + 58, + 2, + 0, + 0, + 2, + 51, + 4, + 255, + 171, + 65, + 58, + 51, + 5, + 36, + 51, + 0, + 255, + 62, + 2, + 0, + 0, + 2, + 137, + 2, + 100, + 1, + 147, + 33, + 58, + 2, + 0, + 0, + 2, + 51, + 4, + 255, + 171, + 65, + 30, + 51, + 5, + 37, + 51, + 0, + 51, + 4, + 171, + 64, + 20, + 51, + 5, + 38, + 51, + 0, + 16, + 51, + 1, + 30, + 51, + 4, + 82, + 4, + 6, + 82, + 5, + 4, + 0, + 40, + 67, + 252, + 33, + 41, + 149, + 34, + 73, + 18, + 73, + 146, + 72, + 146, + 68, + 138, + 68, + 36, + 40, + 65, + 36, + 136, + 4, + 145, + 66, + 82, + 36, + 72, + 41, + 18, + 36, + 36, + 33, + 145, + 32, + 36, + 65, + 36, + 72, + 36, + 34, + 37, + 137, + 36, + 73, + 36, + 73, + 34, + 73, + 18, + 73, + 146, + 72, + 146, + 72, + 147, + 148, + 36, + 145, + 38, + 41, + 73, + 34, + 77, + 82, + 146, + 68, + 154, + 36, + 73, + 34, + 77, + 146, + 36, + 145, + 38, + 73, + 146, + 72, + 147, + 36, + 73, + 164, + 73, + 146, + 36, + 210, + 36, + 73, + 18, + 105, + 146, + 36, + 137, + 52, + 73, + 146, + 68, + 154, + 36, + 73, + 34, + 77, + 146, + 36, + 145, + 38, + 73, + 146, + 164, + 73, + 146, + 36, + 73, + 168, + 132, + 36, + 9, + 85, + 72, + 82, + 73, + 82, + 50 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 30, + 2, + 12, + 0, + 38, + 0, + 0, + 13, + 11, + 2, + 6, + 0 + ], + "expected-pc": 11, + "expected-memory": [ + { + "address": 131072, + "contents": [ + 2 + ] + } + ], + "expected-gas": 9592 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64uzbb_minu.json b/pvm/programs/riscv_rv64uzbb_minu.json new file mode 100644 index 00000000..b66adac9 --- /dev/null +++ b/pvm/programs/riscv_rv64uzbb_minu.json @@ -0,0 +1,1149 @@ +{ + "name": "riscv_rv64uzbb_minu", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 131, + 211, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 8, + 51, + 9, + 230, + 152, + 11, + 51, + 4, + 171, + 75, + 182, + 3, + 51, + 5, + 3, + 51, + 8, + 1, + 51, + 9, + 1, + 230, + 152, + 11, + 51, + 4, + 1, + 171, + 75, + 163, + 3, + 51, + 5, + 4, + 51, + 8, + 3, + 51, + 9, + 7, + 230, + 152, + 11, + 51, + 4, + 3, + 171, + 75, + 144, + 3, + 51, + 5, + 5, + 51, + 8, + 7, + 51, + 9, + 3, + 230, + 152, + 11, + 51, + 4, + 3, + 171, + 75, + 125, + 3, + 51, + 5, + 6, + 51, + 8, + 51, + 9, + 0, + 0, + 2, + 131, + 153, + 255, + 151, + 153, + 15, + 230, + 152, + 11, + 51, + 4, + 171, + 75, + 100, + 3, + 51, + 5, + 7, + 51, + 8, + 1, + 151, + 136, + 31, + 51, + 9, + 230, + 152, + 11, + 51, + 4, + 171, + 75, + 80, + 3, + 51, + 5, + 8, + 51, + 8, + 1, + 151, + 136, + 31, + 51, + 9, + 0, + 0, + 2, + 131, + 153, + 255, + 151, + 153, + 15, + 230, + 152, + 11, + 51, + 4, + 1, + 151, + 68, + 31, + 171, + 75, + 47, + 3, + 51, + 5, + 9, + 51, + 8, + 51, + 9, + 0, + 128, + 0, + 131, + 153, + 255, + 230, + 152, + 11, + 51, + 4, + 171, + 75, + 25, + 3, + 51, + 5, + 10, + 51, + 8, + 0, + 0, + 0, + 128, + 131, + 136, + 255, + 51, + 9, + 230, + 152, + 11, + 51, + 4, + 171, + 75, + 2, + 3, + 51, + 5, + 11, + 51, + 8, + 0, + 0, + 0, + 128, + 131, + 136, + 255, + 51, + 9, + 0, + 128, + 0, + 131, + 153, + 255, + 230, + 152, + 11, + 51, + 4, + 0, + 128, + 0, + 131, + 68, + 255, + 171, + 75, + 223, + 2, + 51, + 5, + 12, + 51, + 8, + 1, + 151, + 136, + 31, + 51, + 9, + 0, + 128, + 0, + 131, + 153, + 255, + 230, + 152, + 11, + 51, + 4, + 0, + 128, + 0, + 131, + 68, + 255, + 171, + 75, + 191, + 2, + 51, + 5, + 13, + 51, + 8, + 0, + 0, + 0, + 128, + 131, + 136, + 255, + 51, + 9, + 0, + 0, + 2, + 131, + 153, + 255, + 151, + 153, + 15, + 230, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 128, + 131, + 68, + 255, + 171, + 75, + 152, + 2, + 51, + 5, + 14, + 51, + 8, + 51, + 9, + 1, + 151, + 153, + 32, + 149, + 153, + 255, + 230, + 152, + 11, + 51, + 4, + 171, + 75, + 129, + 2, + 51, + 5, + 15, + 51, + 8, + 1, + 151, + 136, + 32, + 149, + 136, + 255, + 51, + 9, + 1, + 230, + 152, + 11, + 51, + 4, + 1, + 171, + 75, + 104, + 2, + 51, + 5, + 16, + 51, + 8, + 1, + 151, + 136, + 32, + 149, + 136, + 255, + 51, + 9, + 1, + 151, + 153, + 32, + 149, + 153, + 255, + 230, + 152, + 11, + 51, + 4, + 1, + 151, + 68, + 32, + 149, + 68, + 255, + 171, + 75, + 67, + 2, + 51, + 5, + 17, + 51, + 8, + 14, + 51, + 9, + 13, + 230, + 152, + 8, + 51, + 4, + 13, + 171, + 72, + 48, + 2, + 51, + 5, + 18, + 51, + 8, + 11, + 51, + 9, + 13, + 230, + 152, + 9, + 51, + 4, + 11, + 171, + 73, + 29, + 2, + 51, + 5, + 19, + 51, + 8, + 13, + 230, + 136, + 8, + 51, + 4, + 13, + 171, + 72, + 13, + 2, + 51, + 5, + 20, + 51, + 10, + 1, + 51, + 0, + 11, + 51, + 1, + 13, + 230, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 11, + 171, + 67, + 236, + 1, + 51, + 5, + 21, + 51, + 10, + 1, + 51, + 0, + 14, + 51, + 1, + 13, + 230, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 13, + 171, + 67, + 203, + 1, + 51, + 5, + 22, + 51, + 10, + 1, + 51, + 0, + 12, + 51, + 1, + 13, + 230, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 12, + 171, + 67, + 170, + 1, + 51, + 5, + 23, + 51, + 10, + 1, + 51, + 0, + 14, + 51, + 1, + 13, + 230, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 13, + 171, + 75, + 139, + 1, + 51, + 5, + 24, + 51, + 10, + 1, + 51, + 0, + 11, + 51, + 1, + 13, + 230, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 11, + 171, + 75, + 108, + 1, + 51, + 5, + 25, + 51, + 10, + 1, + 51, + 0, + 15, + 51, + 1, + 13, + 230, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 13, + 171, + 75, + 77, + 1, + 51, + 5, + 26, + 51, + 10, + 1, + 51, + 0, + 10, + 51, + 1, + 13, + 230, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 10, + 171, + 75, + 46, + 1, + 51, + 5, + 27, + 51, + 10, + 1, + 51, + 0, + 16, + 51, + 1, + 13, + 230, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 13, + 171, + 75, + 15, + 1, + 51, + 5, + 28, + 51, + 10, + 1, + 51, + 0, + 9, + 51, + 1, + 13, + 230, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 9, + 171, + 75, + 240, + 0, + 51, + 5, + 29, + 51, + 10, + 1, + 51, + 1, + 13, + 51, + 0, + 17, + 230, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 13, + 171, + 75, + 209, + 0, + 51, + 5, + 30, + 51, + 10, + 1, + 51, + 1, + 13, + 51, + 0, + 8, + 230, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 8, + 171, + 75, + 178, + 0, + 51, + 5, + 31, + 51, + 10, + 1, + 51, + 1, + 13, + 51, + 0, + 18, + 230, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 13, + 171, + 75, + 147, + 0, + 51, + 5, + 32, + 51, + 10, + 1, + 51, + 1, + 13, + 51, + 0, + 7, + 230, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 7, + 171, + 75, + 116, + 51, + 5, + 33, + 51, + 10, + 1, + 51, + 1, + 13, + 51, + 0, + 19, + 230, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 13, + 171, + 75, + 86, + 51, + 5, + 34, + 51, + 10, + 1, + 51, + 1, + 13, + 51, + 0, + 6, + 230, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 6, + 171, + 75, + 56, + 51, + 5, + 35, + 51, + 0, + 255, + 51, + 1, + 51, + 4, + 171, + 65, + 43, + 51, + 5, + 36, + 51, + 0, + 255, + 51, + 1, + 51, + 4, + 171, + 65, + 30, + 51, + 5, + 37, + 51, + 0, + 51, + 4, + 171, + 64, + 20, + 51, + 5, + 38, + 51, + 0, + 16, + 51, + 1, + 30, + 51, + 4, + 82, + 4, + 6, + 82, + 5, + 4, + 0, + 40, + 48, + 252, + 33, + 41, + 149, + 34, + 73, + 18, + 73, + 146, + 72, + 146, + 68, + 10, + 73, + 138, + 36, + 165, + 72, + 18, + 146, + 36, + 145, + 66, + 82, + 36, + 72, + 41, + 18, + 36, + 36, + 33, + 145, + 36, + 36, + 33, + 145, + 32, + 33, + 73, + 144, + 72, + 73, + 82, + 36, + 73, + 146, + 72, + 146, + 36, + 73, + 18, + 73, + 146, + 72, + 146, + 68, + 146, + 68, + 154, + 164, + 36, + 137, + 52, + 73, + 73, + 18, + 105, + 146, + 146, + 36, + 210, + 36, + 73, + 18, + 105, + 146, + 36, + 137, + 52, + 73, + 146, + 68, + 154, + 36, + 73, + 34, + 77, + 146, + 36, + 145, + 38, + 73, + 146, + 72, + 147, + 36, + 73, + 164, + 73, + 146, + 36, + 210, + 36, + 73, + 18, + 105, + 146, + 36, + 73, + 154, + 36, + 73, + 146, + 38, + 73, + 146, + 36, + 149, + 164, + 146, + 74, + 146, + 146, + 1 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 30, + 2, + 12, + 0, + 38, + 0, + 0, + 13, + 11, + 2, + 6, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9578 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64uzbb_orc_b.json b/pvm/programs/riscv_rv64uzbb_orc_b.json new file mode 100644 index 00000000..50450503 --- /dev/null +++ b/pvm/programs/riscv_rv64uzbb_orc_b.json @@ -0,0 +1,4573 @@ +{ + "name": "riscv_rv64uzbb_orc_b", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [ + { + "address": 131072, + "length": 4096, + "is-writable": true + } + ], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 143, + 157, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 0, + 100, + 11, + 62, + 3, + 0, + 0, + 2, + 62, + 4, + 8, + 0, + 2, + 100, + 179, + 51, + 0, + 255, + 0, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 180, + 151, + 0, + 8, + 212, + 4, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 180, + 151, + 0, + 8, + 212, + 4, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 58, + 3, + 0, + 0, + 2, + 58, + 4, + 8, + 0, + 2, + 51, + 4, + 171, + 75, + 254, + 14, + 51, + 5, + 3, + 51, + 0, + 1, + 100, + 11, + 62, + 3, + 0, + 0, + 2, + 62, + 4, + 8, + 0, + 2, + 100, + 179, + 51, + 0, + 255, + 0, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 180, + 151, + 0, + 8, + 212, + 4, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 180, + 151, + 0, + 8, + 212, + 4, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 58, + 3, + 0, + 0, + 2, + 58, + 4, + 8, + 0, + 2, + 51, + 4, + 255, + 0, + 171, + 75, + 105, + 14, + 51, + 5, + 4, + 51, + 0, + 3, + 100, + 11, + 62, + 3, + 0, + 0, + 2, + 62, + 4, + 8, + 0, + 2, + 100, + 179, + 51, + 0, + 255, + 0, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 180, + 151, + 0, + 8, + 212, + 4, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 180, + 151, + 0, + 8, + 212, + 4, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 58, + 3, + 0, + 0, + 2, + 58, + 4, + 8, + 0, + 2, + 51, + 4, + 255, + 0, + 171, + 75, + 212, + 13, + 51, + 5, + 5, + 51, + 0, + 0, + 128, + 100, + 11, + 62, + 3, + 0, + 0, + 2, + 62, + 4, + 8, + 0, + 2, + 100, + 179, + 51, + 0, + 255, + 0, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 180, + 151, + 0, + 8, + 212, + 4, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 180, + 151, + 0, + 8, + 212, + 4, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 58, + 3, + 0, + 0, + 2, + 58, + 4, + 8, + 0, + 2, + 51, + 4, + 0, + 255, + 171, + 75, + 62, + 13, + 51, + 5, + 6, + 51, + 0, + 0, + 0, + 128, + 0, + 100, + 11, + 62, + 3, + 0, + 0, + 2, + 62, + 4, + 8, + 0, + 2, + 100, + 179, + 51, + 0, + 255, + 0, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 180, + 151, + 0, + 8, + 212, + 4, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 180, + 151, + 0, + 8, + 212, + 4, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 58, + 3, + 0, + 0, + 2, + 58, + 4, + 8, + 0, + 2, + 51, + 4, + 0, + 0, + 255, + 0, + 171, + 75, + 164, + 12, + 51, + 5, + 7, + 51, + 0, + 5, + 151, + 0, + 33, + 149, + 0, + 255, + 151, + 0, + 15, + 100, + 11, + 62, + 3, + 0, + 0, + 2, + 62, + 4, + 8, + 0, + 2, + 100, + 179, + 51, + 0, + 255, + 0, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 180, + 151, + 0, + 8, + 212, + 4, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 180, + 151, + 0, + 8, + 212, + 4, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 58, + 3, + 0, + 0, + 2, + 58, + 4, + 8, + 0, + 2, + 51, + 4, + 1, + 151, + 68, + 56, + 149, + 68, + 0, + 255, + 171, + 75, + 0, + 12, + 51, + 5, + 8, + 51, + 0, + 0, + 128, + 0, + 131, + 0, + 255, + 100, + 11, + 62, + 3, + 0, + 0, + 2, + 62, + 4, + 8, + 0, + 2, + 100, + 179, + 51, + 0, + 255, + 0, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 180, + 151, + 0, + 8, + 212, + 4, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 180, + 151, + 0, + 8, + 212, + 4, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 58, + 3, + 0, + 0, + 2, + 58, + 4, + 8, + 0, + 2, + 51, + 4, + 0, + 0, + 1, + 131, + 68, + 255, + 171, + 75, + 98, + 11, + 51, + 5, + 9, + 51, + 0, + 0, + 0, + 0, + 128, + 131, + 0, + 255, + 100, + 11, + 62, + 3, + 0, + 0, + 2, + 62, + 4, + 8, + 0, + 2, + 100, + 179, + 51, + 0, + 255, + 0, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 180, + 151, + 0, + 8, + 212, + 4, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 180, + 151, + 0, + 8, + 212, + 4, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 58, + 3, + 0, + 0, + 2, + 58, + 4, + 8, + 0, + 2, + 51, + 4, + 1, + 151, + 68, + 32, + 149, + 68, + 255, + 171, + 75, + 194, + 10, + 51, + 5, + 10, + 51, + 0, + 0, + 0, + 8, + 131, + 0, + 255, + 100, + 11, + 62, + 3, + 0, + 0, + 2, + 62, + 4, + 8, + 0, + 2, + 100, + 179, + 51, + 0, + 255, + 0, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 180, + 151, + 0, + 8, + 212, + 4, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 180, + 151, + 0, + 8, + 212, + 4, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 58, + 3, + 0, + 0, + 2, + 58, + 4, + 8, + 0, + 2, + 51, + 4, + 0, + 0, + 0, + 1, + 131, + 68, + 255, + 171, + 75, + 35, + 10, + 51, + 5, + 11, + 51, + 0, + 0, + 0, + 0, + 128, + 100, + 11, + 62, + 3, + 0, + 0, + 2, + 62, + 4, + 8, + 0, + 2, + 100, + 179, + 51, + 0, + 255, + 0, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 180, + 151, + 0, + 8, + 212, + 4, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 180, + 151, + 0, + 8, + 212, + 4, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 58, + 3, + 0, + 0, + 2, + 58, + 4, + 8, + 0, + 2, + 51, + 4, + 0, + 0, + 0, + 255, + 171, + 75, + 137, + 9, + 51, + 5, + 12, + 51, + 0, + 0, + 192, + 171, + 127, + 131, + 0, + 137, + 7, + 151, + 0, + 13, + 149, + 0, + 245, + 1, + 151, + 0, + 12, + 100, + 11, + 62, + 3, + 0, + 0, + 2, + 62, + 4, + 8, + 0, + 2, + 100, + 179, + 51, + 0, + 255, + 0, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 180, + 151, + 0, + 8, + 212, + 4, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 180, + 151, + 0, + 8, + 212, + 4, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 58, + 3, + 0, + 0, + 2, + 58, + 4, + 8, + 0, + 2, + 51, + 4, + 1, + 151, + 68, + 56, + 149, + 68, + 0, + 255, + 171, + 75, + 221, + 8, + 51, + 5, + 13, + 51, + 0, + 255, + 151, + 0, + 63, + 100, + 11, + 62, + 3, + 0, + 0, + 2, + 62, + 4, + 8, + 0, + 2, + 100, + 179, + 51, + 0, + 255, + 0, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 180, + 151, + 0, + 8, + 212, + 4, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 180, + 151, + 0, + 8, + 212, + 4, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 58, + 3, + 0, + 0, + 2, + 58, + 4, + 8, + 0, + 2, + 51, + 4, + 255, + 151, + 68, + 56, + 171, + 75, + 67, + 8, + 51, + 5, + 14, + 51, + 0, + 14, + 100, + 11, + 62, + 3, + 0, + 0, + 2, + 62, + 4, + 8, + 0, + 2, + 100, + 179, + 51, + 0, + 255, + 0, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 180, + 151, + 0, + 8, + 212, + 4, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 180, + 151, + 0, + 8, + 212, + 4, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 58, + 3, + 0, + 0, + 2, + 58, + 4, + 8, + 0, + 2, + 51, + 4, + 255, + 0, + 171, + 75, + 174, + 7, + 51, + 5, + 15, + 51, + 0, + 253, + 151, + 0, + 32, + 149, + 0, + 25, + 151, + 0, + 17, + 149, + 0, + 1, + 4, + 151, + 0, + 12, + 149, + 0, + 65, + 3, + 100, + 11, + 62, + 3, + 0, + 0, + 2, + 62, + 4, + 8, + 0, + 2, + 100, + 179, + 51, + 0, + 255, + 0, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 180, + 151, + 0, + 8, + 212, + 4, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 180, + 151, + 0, + 8, + 212, + 4, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 58, + 3, + 0, + 0, + 2, + 58, + 4, + 8, + 0, + 2, + 51, + 4, + 0, + 0, + 255, + 131, + 68, + 1, + 151, + 68, + 40, + 149, + 68, + 255, + 171, + 75, + 251, + 6, + 51, + 5, + 16, + 51, + 0, + 13, + 62, + 2, + 0, + 0, + 2, + 62, + 3, + 8, + 0, + 2, + 62, + 4, + 16, + 0, + 2, + 100, + 2, + 51, + 4, + 255, + 0, + 212, + 66, + 3, + 210, + 64, + 2, + 219, + 35, + 0, + 100, + 3, + 151, + 68, + 8, + 212, + 67, + 3, + 210, + 64, + 2, + 219, + 35, + 0, + 100, + 2, + 151, + 68, + 8, + 212, + 66, + 3, + 210, + 64, + 2, + 219, + 35, + 0, + 100, + 2, + 151, + 68, + 8, + 212, + 66, + 3, + 210, + 64, + 2, + 219, + 35, + 0, + 100, + 3, + 151, + 68, + 8, + 212, + 67, + 3, + 210, + 64, + 2, + 219, + 35, + 0, + 100, + 2, + 151, + 68, + 8, + 212, + 66, + 3, + 210, + 64, + 2, + 219, + 35, + 0, + 100, + 2, + 151, + 68, + 8, + 212, + 66, + 3, + 210, + 64, + 2, + 219, + 35, + 0, + 100, + 2, + 151, + 67, + 8, + 212, + 50, + 4, + 210, + 48, + 3, + 219, + 52, + 0, + 58, + 2, + 0, + 0, + 2, + 58, + 3, + 8, + 0, + 2, + 58, + 4, + 16, + 0, + 2, + 51, + 4, + 255, + 0, + 171, + 64, + 94, + 6, + 51, + 5, + 17, + 51, + 0, + 11, + 62, + 2, + 0, + 0, + 2, + 62, + 3, + 8, + 0, + 2, + 62, + 4, + 16, + 0, + 2, + 100, + 2, + 51, + 4, + 255, + 0, + 212, + 66, + 3, + 210, + 64, + 2, + 219, + 35, + 0, + 100, + 3, + 151, + 68, + 8, + 212, + 67, + 3, + 210, + 64, + 2, + 219, + 35, + 0, + 100, + 2, + 151, + 68, + 8, + 212, + 66, + 3, + 210, + 64, + 2, + 219, + 35, + 0, + 100, + 2, + 151, + 68, + 8, + 212, + 66, + 3, + 210, + 64, + 2, + 219, + 35, + 0, + 100, + 3, + 151, + 68, + 8, + 212, + 67, + 3, + 210, + 64, + 2, + 219, + 35, + 0, + 100, + 2, + 151, + 68, + 8, + 212, + 66, + 3, + 210, + 64, + 2, + 219, + 35, + 0, + 100, + 2, + 151, + 68, + 8, + 212, + 66, + 3, + 210, + 64, + 2, + 219, + 35, + 0, + 100, + 2, + 151, + 67, + 8, + 212, + 50, + 4, + 210, + 48, + 3, + 219, + 52, + 0, + 58, + 2, + 0, + 0, + 2, + 58, + 3, + 8, + 0, + 2, + 58, + 4, + 16, + 0, + 2, + 51, + 4, + 255, + 0, + 171, + 64, + 193, + 5, + 51, + 5, + 18, + 51, + 10, + 1, + 51, + 0, + 13, + 100, + 11, + 62, + 3, + 0, + 0, + 2, + 62, + 4, + 8, + 0, + 2, + 100, + 179, + 51, + 0, + 255, + 0, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 180, + 151, + 0, + 8, + 212, + 4, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 180, + 151, + 0, + 8, + 212, + 4, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 58, + 3, + 0, + 0, + 2, + 58, + 4, + 8, + 0, + 2, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 110, + 255, + 51, + 4, + 255, + 0, + 171, + 67, + 29, + 5, + 51, + 5, + 29, + 51, + 10, + 1, + 51, + 0, + 19, + 100, + 11, + 62, + 3, + 0, + 0, + 2, + 62, + 4, + 8, + 0, + 2, + 100, + 179, + 51, + 0, + 255, + 0, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 180, + 151, + 0, + 8, + 212, + 4, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 180, + 151, + 0, + 8, + 212, + 4, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 58, + 3, + 0, + 0, + 2, + 58, + 4, + 8, + 0, + 2, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 110, + 255, + 51, + 4, + 255, + 0, + 171, + 67, + 121, + 4, + 51, + 5, + 20, + 51, + 10, + 1, + 51, + 0, + 34, + 100, + 11, + 62, + 3, + 0, + 0, + 2, + 62, + 4, + 8, + 0, + 2, + 100, + 179, + 51, + 0, + 255, + 0, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 180, + 151, + 0, + 8, + 212, + 4, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 180, + 151, + 0, + 8, + 212, + 4, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 58, + 3, + 0, + 0, + 2, + 58, + 4, + 8, + 0, + 2, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 110, + 255, + 51, + 4, + 255, + 0, + 171, + 67, + 213, + 3, + 51, + 5, + 21, + 51, + 0, + 0, + 128, + 127, + 100, + 11, + 62, + 3, + 0, + 0, + 2, + 62, + 4, + 8, + 0, + 2, + 100, + 179, + 51, + 0, + 255, + 0, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 180, + 151, + 0, + 8, + 212, + 4, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 180, + 151, + 0, + 8, + 212, + 4, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 58, + 3, + 0, + 0, + 2, + 58, + 4, + 8, + 0, + 2, + 51, + 4, + 0, + 0, + 0, + 1, + 131, + 68, + 0, + 255, + 171, + 75, + 56, + 3, + 51, + 5, + 22, + 51, + 0, + 0, + 128, + 128, + 0, + 100, + 11, + 62, + 3, + 0, + 0, + 2, + 62, + 4, + 8, + 0, + 2, + 100, + 179, + 51, + 0, + 255, + 0, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 180, + 151, + 0, + 8, + 212, + 4, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 180, + 151, + 0, + 8, + 212, + 4, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 58, + 3, + 0, + 0, + 2, + 58, + 4, + 8, + 0, + 2, + 51, + 4, + 0, + 0, + 0, + 1, + 131, + 68, + 0, + 255, + 171, + 75, + 154, + 2, + 51, + 5, + 23, + 51, + 0, + 0, + 128, + 128, + 1, + 100, + 11, + 62, + 3, + 0, + 0, + 2, + 62, + 4, + 8, + 0, + 2, + 100, + 179, + 51, + 0, + 255, + 0, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 180, + 151, + 0, + 8, + 212, + 4, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 180, + 151, + 0, + 8, + 212, + 4, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 58, + 3, + 0, + 0, + 2, + 58, + 4, + 8, + 0, + 2, + 51, + 4, + 1, + 151, + 68, + 32, + 149, + 68, + 0, + 255, + 171, + 75, + 252, + 1, + 51, + 5, + 24, + 51, + 0, + 0, + 0, + 6, + 131, + 0, + 1, + 151, + 0, + 15, + 149, + 0, + 255, + 100, + 11, + 62, + 3, + 0, + 0, + 2, + 62, + 4, + 8, + 0, + 2, + 100, + 179, + 51, + 0, + 255, + 0, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 180, + 151, + 0, + 8, + 212, + 4, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 180, + 151, + 0, + 8, + 212, + 4, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 58, + 3, + 0, + 0, + 2, + 58, + 4, + 8, + 0, + 2, + 51, + 4, + 0, + 0, + 255, + 0, + 131, + 68, + 1, + 151, + 68, + 16, + 149, + 68, + 255, + 171, + 75, + 81, + 1, + 51, + 5, + 25, + 51, + 0, + 15, + 151, + 0, + 31, + 149, + 0, + 255, + 100, + 11, + 62, + 3, + 0, + 0, + 2, + 62, + 4, + 8, + 0, + 2, + 100, + 179, + 51, + 0, + 255, + 0, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 180, + 151, + 0, + 8, + 212, + 4, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 180, + 151, + 0, + 8, + 212, + 4, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 58, + 3, + 0, + 0, + 2, + 58, + 4, + 8, + 0, + 2, + 51, + 4, + 1, + 151, + 68, + 40, + 149, + 68, + 255, + 171, + 75, + 177, + 0, + 51, + 5, + 26, + 51, + 0, + 0, + 224, + 1, + 131, + 0, + 1, + 151, + 0, + 19, + 149, + 0, + 255, + 100, + 11, + 62, + 3, + 0, + 0, + 2, + 62, + 4, + 8, + 0, + 2, + 100, + 179, + 51, + 0, + 255, + 0, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 180, + 151, + 0, + 8, + 212, + 4, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 180, + 151, + 0, + 8, + 212, + 4, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 100, + 179, + 151, + 0, + 8, + 212, + 3, + 4, + 210, + 11, + 3, + 219, + 52, + 11, + 58, + 3, + 0, + 0, + 2, + 58, + 4, + 8, + 0, + 2, + 51, + 4, + 0, + 0, + 1, + 131, + 68, + 1, + 255, + 151, + 68, + 24, + 149, + 68, + 255, + 171, + 75, + 6, + 82, + 5, + 4, + 0, + 40, + 102, + 240, + 33, + 41, + 21, + 66, + 145, + 164, + 36, + 41, + 73, + 74, + 146, + 146, + 164, + 36, + 41, + 73, + 74, + 146, + 16, + 138, + 164, + 16, + 138, + 36, + 37, + 73, + 73, + 82, + 146, + 148, + 36, + 37, + 73, + 73, + 82, + 146, + 132, + 16, + 145, + 20, + 66, + 145, + 164, + 36, + 41, + 73, + 74, + 146, + 146, + 164, + 36, + 41, + 73, + 74, + 146, + 16, + 34, + 18, + 133, + 80, + 36, + 41, + 73, + 74, + 146, + 146, + 164, + 36, + 41, + 73, + 74, + 146, + 146, + 36, + 132, + 136, + 4, + 133, + 80, + 36, + 41, + 73, + 74, + 146, + 146, + 164, + 36, + 41, + 73, + 74, + 146, + 146, + 36, + 132, + 32, + 146, + 36, + 133, + 80, + 36, + 41, + 73, + 74, + 146, + 146, + 164, + 36, + 41, + 73, + 74, + 146, + 146, + 36, + 132, + 36, + 34, + 33, + 133, + 80, + 36, + 41, + 73, + 74, + 146, + 146, + 164, + 36, + 41, + 73, + 74, + 146, + 146, + 36, + 132, + 144, + 72, + 144, + 66, + 40, + 146, + 148, + 36, + 37, + 73, + 73, + 82, + 146, + 148, + 36, + 37, + 73, + 73, + 18, + 66, + 146, + 72, + 72, + 33, + 20, + 73, + 74, + 146, + 146, + 164, + 36, + 41, + 73, + 74, + 146, + 146, + 164, + 36, + 9, + 33, + 72, + 36, + 40, + 132, + 34, + 73, + 73, + 82, + 146, + 148, + 36, + 37, + 73, + 73, + 82, + 146, + 148, + 36, + 33, + 4, + 145, + 32, + 18, + 41, + 132, + 34, + 73, + 73, + 82, + 146, + 148, + 36, + 37, + 73, + 73, + 82, + 146, + 148, + 36, + 33, + 36, + 17, + 73, + 10, + 161, + 72, + 82, + 146, + 148, + 36, + 37, + 73, + 73, + 82, + 146, + 148, + 36, + 37, + 73, + 8, + 73, + 36, + 133, + 80, + 36, + 41, + 73, + 74, + 146, + 146, + 164, + 36, + 41, + 73, + 74, + 146, + 146, + 36, + 132, + 136, + 36, + 73, + 36, + 10, + 161, + 72, + 82, + 146, + 148, + 36, + 37, + 73, + 73, + 82, + 146, + 148, + 36, + 37, + 73, + 8, + 33, + 73, + 36, + 33, + 132, + 34, + 73, + 73, + 82, + 146, + 148, + 36, + 37, + 73, + 73, + 82, + 146, + 148, + 36, + 33, + 132, + 136, + 36, + 132, + 80, + 36, + 41, + 73, + 74, + 146, + 146, + 164, + 36, + 41, + 73, + 74, + 146, + 146, + 36, + 132, + 16, + 145, + 166, + 16, + 138, + 36, + 37, + 73, + 73, + 82, + 146, + 148, + 36, + 37, + 73, + 73, + 82, + 146, + 132, + 80, + 18, + 17, + 105, + 10, + 161, + 72, + 82, + 146, + 148, + 36, + 37, + 73, + 73, + 82, + 146, + 148, + 36, + 37, + 73, + 8, + 37, + 17, + 145, + 166, + 16, + 138, + 36, + 37, + 73, + 73, + 82, + 146, + 148, + 36, + 37, + 73, + 73, + 82, + 146, + 132, + 80, + 18, + 17, + 9, + 133, + 80, + 36, + 41, + 73, + 74, + 146, + 146, + 164, + 36, + 41, + 73, + 74, + 146, + 146, + 36, + 132, + 32, + 34, + 65, + 33, + 20, + 73, + 74, + 146, + 146, + 164, + 36, + 41, + 73, + 74, + 146, + 146, + 164, + 36, + 9, + 33, + 136, + 72, + 80, + 8, + 69, + 146, + 146, + 164, + 36, + 41, + 73, + 74, + 146, + 146, + 164, + 36, + 41, + 73, + 66, + 72, + 34, + 18, + 146, + 20, + 66, + 145, + 164, + 36, + 41, + 73, + 74, + 146, + 146, + 164, + 36, + 41, + 73, + 74, + 146, + 16, + 130, + 36, + 145, + 36, + 133, + 80, + 36, + 41, + 73, + 74, + 146, + 146, + 164, + 36, + 41, + 73, + 74, + 146, + 146, + 36, + 132, + 36, + 145, + 144, + 164, + 16, + 138, + 36, + 37, + 73, + 73, + 82, + 146, + 148, + 36, + 37, + 73, + 73, + 82, + 146, + 132, + 16, + 34, + 73, + 6 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 2, + 255, + 1095233437695, + 26, + 0, + 0, + 0, + 0, + 2, + 1095233437695, + 0 + ], + "expected-pc": 11, + "expected-memory": [ + { + "address": 131072, + "contents": [ + 255 + ] + }, + { + "address": 131080, + "contents": [ + 255, + 255, + 255, + 255, + 255 + ] + }, + { + "address": 131088, + "contents": [ + 255 + ] + } + ], + "expected-gas": 8550 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64uzbb_orn.json b/pvm/programs/riscv_rv64uzbb_orn.json new file mode 100644 index 00000000..623bc32f --- /dev/null +++ b/pvm/programs/riscv_rv64uzbb_orn.json @@ -0,0 +1,1633 @@ +{ + "name": "riscv_rv64uzbb_orn", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 133, + 129, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 8, + 0, + 0, + 1, + 255, + 131, + 136, + 0, + 255, + 51, + 9, + 0, + 16, + 15, + 15, + 131, + 153, + 15, + 255, + 225, + 152, + 11, + 51, + 4, + 0, + 0, + 241, + 131, + 68, + 240, + 171, + 75, + 78, + 5, + 51, + 5, + 3, + 51, + 8, + 0, + 16, + 240, + 15, + 131, + 136, + 240, + 51, + 9, + 0, + 240, + 240, + 240, + 131, + 153, + 240, + 0, + 225, + 152, + 11, + 51, + 4, + 0, + 16, + 255, + 15, + 131, + 68, + 255, + 171, + 75, + 40, + 5, + 51, + 5, + 4, + 51, + 8, + 0, + 0, + 255, + 0, + 131, + 136, + 255, + 0, + 51, + 9, + 0, + 16, + 15, + 15, + 131, + 153, + 15, + 255, + 225, + 152, + 11, + 51, + 4, + 0, + 240, + 255, + 240, + 131, + 68, + 255, + 0, + 171, + 75, + 0, + 5, + 51, + 5, + 5, + 51, + 8, + 0, + 240, + 15, + 240, + 131, + 136, + 15, + 51, + 9, + 0, + 240, + 240, + 240, + 131, + 153, + 240, + 0, + 225, + 152, + 11, + 51, + 4, + 0, + 0, + 16, + 255, + 131, + 68, + 15, + 255, + 171, + 75, + 217, + 4, + 51, + 5, + 50, + 51, + 8, + 0, + 0, + 1, + 131, + 136, + 1, + 255, + 151, + 136, + 16, + 149, + 136, + 1, + 255, + 151, + 136, + 16, + 149, + 136, + 1, + 255, + 151, + 136, + 12, + 149, + 136, + 240, + 51, + 9, + 0, + 16, + 15, + 255, + 131, + 153, + 15, + 255, + 151, + 153, + 12, + 149, + 153, + 241, + 0, + 151, + 153, + 12, + 149, + 153, + 15, + 255, + 151, + 153, + 12, + 149, + 153, + 240, + 0, + 225, + 152, + 11, + 51, + 4, + 0, + 0, + 1, + 131, + 68, + 241, + 151, + 68, + 16, + 149, + 68, + 241, + 151, + 68, + 16, + 149, + 68, + 241, + 151, + 68, + 12, + 149, + 68, + 255, + 171, + 75, + 121, + 4, + 51, + 5, + 51, + 51, + 8, + 0, + 0, + 255, + 0, + 131, + 136, + 255, + 0, + 151, + 136, + 16, + 149, + 136, + 255, + 0, + 151, + 136, + 16, + 149, + 136, + 255, + 0, + 51, + 9, + 0, + 240, + 240, + 0, + 131, + 153, + 241, + 0, + 151, + 153, + 12, + 149, + 153, + 15, + 255, + 151, + 153, + 12, + 149, + 153, + 241, + 0, + 151, + 153, + 12, + 149, + 153, + 15, + 255, + 225, + 152, + 11, + 51, + 4, + 0, + 0, + 241, + 131, + 68, + 241, + 151, + 68, + 16, + 149, + 68, + 241, + 151, + 68, + 12, + 149, + 68, + 255, + 151, + 68, + 12, + 149, + 68, + 255, + 0, + 171, + 75, + 29, + 4, + 51, + 5, + 52, + 51, + 8, + 0, + 0, + 255, + 131, + 136, + 255, + 0, + 151, + 136, + 16, + 149, + 136, + 255, + 0, + 151, + 136, + 16, + 149, + 136, + 255, + 0, + 151, + 136, + 12, + 149, + 136, + 15, + 51, + 9, + 0, + 16, + 15, + 255, + 131, + 153, + 15, + 255, + 151, + 153, + 12, + 149, + 153, + 241, + 0, + 151, + 153, + 12, + 149, + 153, + 15, + 255, + 151, + 153, + 12, + 149, + 153, + 240, + 0, + 225, + 152, + 11, + 51, + 4, + 0, + 0, + 241, + 131, + 68, + 241, + 151, + 68, + 16, + 149, + 68, + 241, + 151, + 68, + 20, + 149, + 68, + 15, + 255, + 171, + 75, + 194, + 3, + 51, + 5, + 6, + 51, + 8, + 0, + 0, + 1, + 255, + 131, + 136, + 0, + 255, + 51, + 9, + 0, + 16, + 15, + 15, + 131, + 153, + 15, + 255, + 225, + 152, + 8, + 51, + 4, + 0, + 0, + 241, + 131, + 68, + 240, + 171, + 72, + 156, + 3, + 51, + 5, + 7, + 51, + 8, + 0, + 0, + 1, + 255, + 131, + 136, + 0, + 255, + 51, + 9, + 0, + 16, + 15, + 15, + 131, + 153, + 15, + 255, + 225, + 152, + 9, + 51, + 4, + 0, + 0, + 241, + 131, + 68, + 240, + 171, + 73, + 118, + 3, + 51, + 5, + 8, + 51, + 8, + 0, + 0, + 1, + 255, + 131, + 136, + 0, + 255, + 225, + 136, + 8, + 51, + 4, + 255, + 171, + 72, + 95, + 3, + 51, + 5, + 9, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 1, + 255, + 131, + 0, + 0, + 255, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 225, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 225, + 51, + 4, + 0, + 0, + 241, + 131, + 68, + 240, + 171, + 67, + 43, + 3, + 51, + 5, + 10, + 51, + 10, + 1, + 51, + 0, + 0, + 16, + 240, + 15, + 131, + 0, + 240, + 51, + 1, + 0, + 240, + 240, + 240, + 131, + 17, + 240, + 0, + 225, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 226, + 51, + 4, + 0, + 16, + 255, + 15, + 131, + 68, + 255, + 171, + 67, + 247, + 2, + 51, + 5, + 11, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 255, + 0, + 131, + 0, + 255, + 0, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 225, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 225, + 51, + 4, + 0, + 240, + 255, + 240, + 131, + 68, + 255, + 0, + 171, + 67, + 193, + 2, + 51, + 5, + 12, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 1, + 255, + 131, + 0, + 0, + 255, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 225, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 227, + 51, + 4, + 0, + 0, + 241, + 131, + 68, + 240, + 171, + 75, + 143, + 2, + 51, + 5, + 13, + 51, + 10, + 1, + 51, + 0, + 0, + 16, + 240, + 15, + 131, + 0, + 240, + 51, + 1, + 0, + 240, + 240, + 240, + 131, + 17, + 240, + 0, + 225, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 228, + 51, + 4, + 0, + 16, + 255, + 15, + 131, + 68, + 255, + 171, + 75, + 93, + 2, + 51, + 5, + 14, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 255, + 0, + 131, + 0, + 255, + 0, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 225, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 227, + 51, + 4, + 0, + 240, + 255, + 240, + 131, + 68, + 255, + 0, + 171, + 75, + 41, + 2, + 51, + 5, + 15, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 1, + 255, + 131, + 0, + 0, + 255, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 225, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 227, + 51, + 4, + 0, + 0, + 241, + 131, + 68, + 240, + 171, + 75, + 247, + 1, + 51, + 5, + 16, + 51, + 10, + 1, + 51, + 0, + 0, + 16, + 240, + 15, + 131, + 0, + 240, + 51, + 1, + 0, + 240, + 240, + 240, + 131, + 17, + 240, + 0, + 225, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 228, + 51, + 4, + 0, + 16, + 255, + 15, + 131, + 68, + 255, + 171, + 75, + 197, + 1, + 51, + 5, + 17, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 255, + 0, + 131, + 0, + 255, + 0, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 225, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 227, + 51, + 4, + 0, + 240, + 255, + 240, + 131, + 68, + 255, + 0, + 171, + 75, + 145, + 1, + 51, + 5, + 18, + 51, + 10, + 1, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 51, + 0, + 0, + 0, + 1, + 255, + 131, + 0, + 0, + 255, + 225, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 227, + 51, + 4, + 0, + 0, + 241, + 131, + 68, + 240, + 171, + 75, + 95, + 1, + 51, + 5, + 19, + 51, + 10, + 1, + 51, + 1, + 0, + 240, + 240, + 240, + 131, + 17, + 240, + 0, + 51, + 0, + 0, + 16, + 240, + 15, + 131, + 0, + 240, + 225, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 228, + 51, + 4, + 0, + 16, + 255, + 15, + 131, + 68, + 255, + 171, + 75, + 45, + 1, + 51, + 5, + 20, + 51, + 10, + 1, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 51, + 0, + 0, + 0, + 255, + 0, + 131, + 0, + 255, + 0, + 225, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 227, + 51, + 4, + 0, + 240, + 255, + 240, + 131, + 68, + 255, + 0, + 171, + 75, + 249, + 0, + 51, + 5, + 21, + 51, + 10, + 1, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 51, + 0, + 0, + 0, + 1, + 255, + 131, + 0, + 0, + 255, + 225, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 227, + 51, + 4, + 0, + 0, + 241, + 131, + 68, + 240, + 171, + 75, + 199, + 0, + 51, + 5, + 22, + 51, + 10, + 1, + 51, + 1, + 0, + 240, + 240, + 240, + 131, + 17, + 240, + 0, + 51, + 0, + 0, + 16, + 240, + 15, + 131, + 0, + 240, + 225, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 228, + 51, + 4, + 0, + 16, + 255, + 15, + 131, + 68, + 255, + 171, + 75, + 149, + 0, + 51, + 5, + 23, + 51, + 10, + 1, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 51, + 0, + 0, + 0, + 255, + 0, + 131, + 0, + 255, + 0, + 225, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 227, + 51, + 4, + 0, + 240, + 255, + 240, + 131, + 68, + 255, + 0, + 171, + 75, + 97, + 51, + 5, + 24, + 51, + 0, + 0, + 0, + 1, + 255, + 131, + 0, + 0, + 255, + 133, + 1, + 255, + 51, + 4, + 0, + 0, + 255, + 0, + 131, + 68, + 255, + 0, + 171, + 65, + 68, + 51, + 5, + 25, + 51, + 0, + 0, + 0, + 255, + 0, + 131, + 0, + 255, + 0, + 51, + 1, + 255, + 51, + 4, + 255, + 171, + 65, + 46, + 51, + 5, + 26, + 51, + 0, + 255, + 51, + 4, + 255, + 171, + 64, + 34, + 51, + 5, + 27, + 51, + 0, + 0, + 16, + 17, + 17, + 131, + 0, + 17, + 1, + 51, + 1, + 0, + 32, + 34, + 34, + 131, + 17, + 34, + 2, + 51, + 4, + 82, + 4, + 6, + 82, + 5, + 4, + 0, + 40, + 130, + 250, + 33, + 41, + 65, + 4, + 145, + 144, + 72, + 144, + 32, + 18, + 36, + 18, + 68, + 16, + 9, + 34, + 18, + 36, + 136, + 4, + 17, + 9, + 145, + 72, + 36, + 65, + 36, + 18, + 137, + 132, + 36, + 73, + 18, + 9, + 34, + 145, + 8, + 34, + 145, + 72, + 36, + 36, + 73, + 18, + 145, + 16, + 137, + 68, + 18, + 68, + 34, + 145, + 72, + 72, + 146, + 136, + 4, + 17, + 68, + 66, + 34, + 65, + 4, + 145, + 144, + 72, + 16, + 73, + 164, + 65, + 4, + 145, + 146, + 132, + 68, + 26, + 36, + 136, + 148, + 36, + 72, + 164, + 65, + 4, + 145, + 146, + 4, + 17, + 105, + 16, + 65, + 36, + 73, + 72, + 164, + 65, + 130, + 72, + 146, + 32, + 145, + 6, + 17, + 68, + 146, + 4, + 17, + 105, + 16, + 65, + 36, + 73, + 72, + 164, + 65, + 130, + 72, + 146, + 32, + 145, + 6, + 17, + 68, + 146, + 4, + 17, + 105, + 16, + 65, + 36, + 73, + 72, + 164, + 65, + 4, + 73, + 146, + 32, + 145, + 6, + 17, + 68, + 146, + 4, + 17, + 105, + 16, + 65, + 36, + 73, + 72, + 164, + 65, + 4, + 73, + 146, + 32, + 145, + 6, + 17, + 68, + 146, + 4, + 145, + 4, + 145, + 32, + 146, + 32, + 146, + 36, + 73, + 130, + 8, + 162, + 100, + 0 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 572662306, + 2, + 18446744073457889535, + 0, + 27, + 0, + 0, + 18446744073709551615, + 18446744073708568560, + 2, + 18446744073457889535, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9497 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64uzbb_rev8.json b/pvm/programs/riscv_rv64uzbb_rev8.json new file mode 100644 index 00000000..e5329a31 --- /dev/null +++ b/pvm/programs/riscv_rv64uzbb_rev8.json @@ -0,0 +1,830 @@ +{ + "name": "riscv_rv64uzbb_rev8", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 130, + 184, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 0, + 111, + 11, + 51, + 4, + 171, + 75, + 158, + 2, + 51, + 5, + 3, + 51, + 0, + 1, + 111, + 11, + 51, + 4, + 1, + 151, + 68, + 56, + 171, + 75, + 140, + 2, + 51, + 5, + 4, + 51, + 0, + 3, + 111, + 11, + 51, + 4, + 3, + 151, + 68, + 56, + 171, + 75, + 122, + 2, + 51, + 5, + 5, + 51, + 0, + 0, + 128, + 111, + 11, + 51, + 4, + 129, + 0, + 151, + 68, + 48, + 149, + 68, + 255, + 171, + 75, + 99, + 2, + 51, + 5, + 6, + 51, + 0, + 0, + 0, + 128, + 0, + 111, + 11, + 51, + 4, + 1, + 151, + 68, + 47, + 171, + 75, + 78, + 2, + 51, + 5, + 7, + 51, + 0, + 5, + 151, + 0, + 33, + 149, + 0, + 255, + 151, + 0, + 15, + 111, + 11, + 51, + 4, + 129, + 0, + 151, + 68, + 32, + 149, + 68, + 255, + 151, + 68, + 16, + 149, + 68, + 0, + 4, + 171, + 75, + 40, + 2, + 51, + 5, + 8, + 51, + 0, + 0, + 128, + 0, + 131, + 0, + 255, + 111, + 11, + 51, + 4, + 127, + 255, + 151, + 68, + 48, + 171, + 75, + 16, + 2, + 51, + 5, + 9, + 51, + 0, + 0, + 0, + 0, + 128, + 131, + 0, + 255, + 111, + 11, + 51, + 4, + 127, + 255, + 151, + 68, + 32, + 171, + 75, + 247, + 1, + 51, + 5, + 10, + 51, + 0, + 0, + 0, + 8, + 131, + 0, + 255, + 111, + 11, + 51, + 4, + 7, + 255, + 151, + 68, + 40, + 171, + 75, + 223, + 1, + 51, + 5, + 11, + 51, + 0, + 0, + 0, + 0, + 128, + 111, + 11, + 51, + 4, + 129, + 0, + 151, + 68, + 32, + 149, + 68, + 255, + 171, + 75, + 198, + 1, + 51, + 5, + 12, + 51, + 0, + 0, + 192, + 171, + 127, + 131, + 0, + 137, + 7, + 151, + 0, + 13, + 149, + 0, + 245, + 1, + 151, + 0, + 12, + 111, + 11, + 51, + 4, + 0, + 64, + 160, + 0, + 131, + 68, + 37, + 254, + 151, + 68, + 12, + 149, + 68, + 235, + 1, + 151, + 68, + 19, + 149, + 68, + 0, + 255, + 171, + 75, + 145, + 1, + 51, + 5, + 13, + 51, + 0, + 255, + 151, + 0, + 63, + 111, + 11, + 51, + 4, + 128, + 0, + 171, + 75, + 126, + 1, + 51, + 5, + 14, + 51, + 0, + 14, + 111, + 11, + 51, + 4, + 7, + 151, + 68, + 57, + 171, + 75, + 108, + 1, + 51, + 5, + 15, + 51, + 0, + 253, + 151, + 0, + 32, + 149, + 0, + 25, + 151, + 0, + 17, + 149, + 0, + 1, + 4, + 151, + 0, + 12, + 149, + 0, + 65, + 3, + 111, + 11, + 51, + 4, + 0, + 160, + 8, + 2, + 131, + 68, + 1, + 250, + 151, + 68, + 13, + 149, + 68, + 3, + 151, + 68, + 24, + 149, + 68, + 160, + 0, + 171, + 75, + 53, + 1, + 51, + 5, + 16, + 51, + 0, + 13, + 111, + 0, + 51, + 4, + 13, + 151, + 68, + 56, + 171, + 64, + 35, + 1, + 51, + 5, + 17, + 51, + 0, + 11, + 111, + 0, + 51, + 4, + 11, + 151, + 68, + 56, + 171, + 64, + 17, + 1, + 51, + 5, + 18, + 51, + 10, + 1, + 51, + 0, + 13, + 111, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 243, + 51, + 4, + 13, + 151, + 68, + 56, + 171, + 67, + 241, + 0, + 51, + 5, + 29, + 51, + 10, + 1, + 51, + 0, + 19, + 111, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 243, + 51, + 4, + 19, + 151, + 68, + 56, + 171, + 67, + 209, + 0, + 51, + 5, + 20, + 51, + 10, + 1, + 51, + 0, + 34, + 111, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 243, + 51, + 4, + 17, + 151, + 68, + 57, + 171, + 67, + 177, + 0, + 51, + 5, + 21, + 51, + 0, + 0, + 128, + 127, + 111, + 11, + 51, + 4, + 0, + 128, + 0, + 131, + 68, + 127, + 151, + 68, + 40, + 171, + 75, + 152, + 0, + 51, + 5, + 22, + 51, + 0, + 0, + 128, + 128, + 0, + 111, + 11, + 51, + 4, + 1, + 1, + 151, + 68, + 47, + 171, + 75, + 130, + 0, + 51, + 5, + 23, + 51, + 0, + 0, + 128, + 128, + 1, + 111, + 11, + 51, + 4, + 0, + 128, + 128, + 0, + 131, + 68, + 1, + 151, + 68, + 32, + 171, + 75, + 103, + 51, + 5, + 24, + 51, + 0, + 0, + 0, + 6, + 131, + 0, + 1, + 151, + 0, + 15, + 149, + 0, + 255, + 111, + 11, + 51, + 4, + 127, + 255, + 151, + 68, + 24, + 149, + 68, + 3, + 151, + 68, + 24, + 171, + 75, + 68, + 51, + 5, + 25, + 51, + 0, + 15, + 151, + 0, + 31, + 149, + 0, + 255, + 111, + 11, + 51, + 4, + 0, + 128, + 131, + 68, + 7, + 255, + 151, + 68, + 24, + 171, + 75, + 40, + 51, + 5, + 26, + 51, + 0, + 0, + 224, + 1, + 131, + 0, + 1, + 151, + 0, + 19, + 149, + 0, + 255, + 111, + 11, + 51, + 4, + 0, + 0, + 7, + 255, + 131, + 68, + 15, + 151, + 68, + 24, + 171, + 75, + 6, + 82, + 5, + 4, + 0, + 40, + 75, + 253, + 33, + 41, + 85, + 36, + 37, + 145, + 148, + 68, + 162, + 72, + 34, + 65, + 73, + 36, + 73, + 138, + 36, + 17, + 9, + 41, + 18, + 9, + 82, + 36, + 18, + 82, + 36, + 18, + 20, + 73, + 36, + 136, + 68, + 10, + 34, + 145, + 136, + 36, + 69, + 36, + 37, + 145, + 36, + 137, + 68, + 65, + 36, + 137, + 72, + 74, + 34, + 41, + 137, + 52, + 149, + 36, + 137, + 52, + 149, + 36, + 137, + 52, + 149, + 36, + 137, + 132, + 66, + 18, + 9, + 138, + 68, + 130, + 130, + 36, + 9, + 73, + 138, + 36, + 73, + 146, + 34, + 146, + 132, + 36, + 5, + 73, + 50 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 2, + 2449958197289549824, + 18446470295565893632, + 26, + 0, + 0, + 0, + 0, + 2, + 18446470295565893632, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9766 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64uzbb_rol.json b/pvm/programs/riscv_rv64uzbb_rol.json new file mode 100644 index 00000000..c439f124 --- /dev/null +++ b/pvm/programs/riscv_rv64uzbb_rol.json @@ -0,0 +1,1469 @@ +{ + "name": "riscv_rv64uzbb_rol", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 132, + 240, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 8, + 1, + 51, + 9, + 220, + 152, + 11, + 51, + 4, + 1, + 171, + 75, + 209, + 4, + 51, + 5, + 3, + 51, + 8, + 1, + 51, + 9, + 1, + 220, + 152, + 11, + 51, + 4, + 2, + 171, + 75, + 190, + 4, + 51, + 5, + 4, + 51, + 8, + 1, + 51, + 9, + 7, + 220, + 152, + 11, + 51, + 4, + 128, + 0, + 171, + 75, + 170, + 4, + 51, + 5, + 5, + 51, + 8, + 1, + 51, + 9, + 14, + 220, + 152, + 11, + 51, + 4, + 0, + 64, + 171, + 75, + 150, + 4, + 51, + 5, + 6, + 51, + 8, + 1, + 51, + 9, + 31, + 220, + 152, + 11, + 51, + 4, + 1, + 151, + 68, + 31, + 171, + 75, + 128, + 4, + 51, + 5, + 7, + 51, + 8, + 255, + 51, + 9, + 220, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 110, + 4, + 51, + 5, + 8, + 51, + 8, + 255, + 51, + 9, + 1, + 220, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 91, + 4, + 51, + 5, + 9, + 51, + 8, + 255, + 51, + 9, + 7, + 220, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 72, + 4, + 51, + 5, + 10, + 51, + 8, + 255, + 51, + 9, + 14, + 220, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 53, + 4, + 51, + 5, + 11, + 51, + 8, + 255, + 51, + 9, + 31, + 220, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 34, + 4, + 51, + 5, + 12, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 220, + 152, + 11, + 51, + 4, + 0, + 32, + 33, + 33, + 131, + 68, + 33, + 1, + 171, + 75, + 2, + 4, + 51, + 5, + 13, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 1, + 220, + 152, + 11, + 51, + 4, + 0, + 64, + 66, + 66, + 131, + 68, + 66, + 2, + 171, + 75, + 225, + 3, + 51, + 5, + 14, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 7, + 220, + 152, + 11, + 51, + 4, + 0, + 16, + 9, + 1, + 131, + 68, + 9, + 249, + 151, + 68, + 12, + 149, + 68, + 128, + 0, + 171, + 75, + 185, + 3, + 51, + 5, + 15, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 14, + 220, + 152, + 11, + 51, + 4, + 0, + 32, + 33, + 33, + 131, + 68, + 33, + 1, + 151, + 68, + 14, + 171, + 75, + 149, + 3, + 51, + 5, + 16, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 31, + 220, + 152, + 11, + 51, + 4, + 0, + 32, + 33, + 33, + 131, + 68, + 33, + 1, + 151, + 68, + 31, + 171, + 75, + 113, + 3, + 51, + 5, + 17, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 192, + 220, + 152, + 11, + 51, + 4, + 0, + 32, + 33, + 33, + 131, + 68, + 33, + 1, + 171, + 75, + 80, + 3, + 51, + 5, + 18, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 193, + 220, + 152, + 11, + 51, + 4, + 0, + 64, + 66, + 66, + 131, + 68, + 66, + 2, + 171, + 75, + 47, + 3, + 51, + 5, + 19, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 199, + 220, + 152, + 11, + 51, + 4, + 0, + 16, + 9, + 1, + 131, + 68, + 9, + 249, + 151, + 68, + 12, + 149, + 68, + 128, + 0, + 171, + 75, + 7, + 3, + 51, + 5, + 20, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 206, + 220, + 152, + 11, + 51, + 4, + 0, + 32, + 33, + 33, + 131, + 68, + 33, + 1, + 151, + 68, + 14, + 171, + 75, + 227, + 2, + 51, + 5, + 21, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 255, + 220, + 152, + 11, + 51, + 4, + 255, + 151, + 68, + 39, + 149, + 68, + 17, + 151, + 68, + 12, + 149, + 68, + 9, + 249, + 151, + 68, + 12, + 149, + 68, + 144, + 0, + 171, + 75, + 181, + 2, + 51, + 5, + 50, + 51, + 8, + 1, + 51, + 9, + 63, + 220, + 152, + 11, + 51, + 4, + 255, + 151, + 68, + 63, + 171, + 75, + 159, + 2, + 51, + 5, + 51, + 51, + 8, + 255, + 51, + 9, + 39, + 220, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 140, + 2, + 51, + 5, + 52, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 43, + 220, + 152, + 11, + 51, + 4, + 0, + 32, + 1, + 131, + 68, + 33, + 1, + 151, + 68, + 43, + 149, + 68, + 9, + 1, + 171, + 75, + 101, + 2, + 51, + 5, + 22, + 51, + 8, + 1, + 51, + 9, + 7, + 220, + 152, + 8, + 51, + 4, + 128, + 0, + 171, + 72, + 81, + 2, + 51, + 5, + 23, + 51, + 8, + 1, + 51, + 9, + 14, + 220, + 152, + 9, + 51, + 4, + 0, + 64, + 171, + 73, + 61, + 2, + 51, + 5, + 24, + 51, + 8, + 3, + 220, + 136, + 8, + 51, + 4, + 24, + 171, + 72, + 45, + 2, + 51, + 5, + 25, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 7, + 220, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 128, + 0, + 171, + 67, + 11, + 2, + 51, + 5, + 26, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 14, + 220, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 0, + 64, + 171, + 67, + 233, + 1, + 51, + 5, + 27, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 31, + 220, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 1, + 151, + 68, + 31, + 171, + 67, + 197, + 1, + 51, + 5, + 28, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 7, + 220, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 128, + 0, + 171, + 75, + 165, + 1, + 51, + 5, + 29, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 14, + 220, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 0, + 64, + 171, + 75, + 133, + 1, + 51, + 5, + 30, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 31, + 220, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 1, + 151, + 68, + 31, + 171, + 75, + 99, + 1, + 51, + 5, + 31, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 7, + 220, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 128, + 0, + 171, + 75, + 67, + 1, + 51, + 5, + 32, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 14, + 220, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 0, + 64, + 171, + 75, + 35, + 1, + 51, + 5, + 33, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 31, + 220, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 1, + 151, + 68, + 31, + 171, + 75, + 1, + 1, + 51, + 5, + 34, + 51, + 10, + 1, + 51, + 1, + 7, + 51, + 0, + 1, + 220, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 128, + 0, + 171, + 75, + 225, + 0, + 51, + 5, + 35, + 51, + 10, + 1, + 51, + 1, + 14, + 51, + 0, + 1, + 220, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 0, + 64, + 171, + 75, + 193, + 0, + 51, + 5, + 36, + 51, + 10, + 1, + 51, + 1, + 31, + 51, + 0, + 1, + 220, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 1, + 151, + 68, + 31, + 171, + 75, + 159, + 0, + 51, + 5, + 37, + 51, + 10, + 1, + 51, + 1, + 7, + 51, + 0, + 1, + 220, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 128, + 0, + 171, + 75, + 127, + 51, + 5, + 38, + 51, + 10, + 1, + 51, + 1, + 14, + 51, + 0, + 1, + 220, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 0, + 64, + 171, + 75, + 96, + 51, + 5, + 39, + 51, + 10, + 1, + 51, + 1, + 31, + 51, + 0, + 1, + 220, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 1, + 151, + 68, + 31, + 171, + 75, + 63, + 51, + 5, + 40, + 51, + 0, + 15, + 51, + 1, + 51, + 4, + 171, + 65, + 50, + 51, + 5, + 41, + 51, + 0, + 32, + 100, + 1, + 51, + 4, + 32, + 171, + 65, + 36, + 51, + 5, + 42, + 51, + 0, + 51, + 4, + 171, + 64, + 26, + 51, + 5, + 43, + 51, + 0, + 0, + 4, + 51, + 1, + 0, + 16, + 131, + 17, + 0, + 248, + 51, + 4, + 82, + 4, + 6, + 82, + 5, + 4, + 0, + 40, + 19, + 251, + 33, + 41, + 41, + 137, + 36, + 73, + 36, + 73, + 68, + 146, + 68, + 36, + 73, + 18, + 73, + 73, + 36, + 73, + 34, + 73, + 18, + 73, + 146, + 72, + 146, + 68, + 130, + 40, + 65, + 68, + 130, + 72, + 130, + 136, + 4, + 145, + 4, + 145, + 136, + 4, + 145, + 4, + 145, + 72, + 16, + 73, + 16, + 137, + 4, + 145, + 4, + 17, + 9, + 34, + 9, + 34, + 18, + 68, + 18, + 68, + 34, + 18, + 68, + 18, + 68, + 34, + 65, + 36, + 73, + 18, + 137, + 72, + 146, + 36, + 146, + 36, + 145, + 32, + 146, + 16, + 137, + 72, + 146, + 136, + 36, + 137, + 72, + 146, + 72, + 147, + 148, + 36, + 34, + 77, + 82, + 146, + 136, + 52, + 73, + 73, + 146, + 72, + 147, + 36, + 137, + 72, + 147, + 36, + 137, + 72, + 147, + 36, + 73, + 34, + 77, + 146, + 36, + 34, + 77, + 146, + 36, + 34, + 77, + 146, + 36, + 137, + 52, + 73, + 146, + 136, + 52, + 73, + 146, + 136, + 52, + 73, + 146, + 36, + 210, + 36, + 73, + 34, + 105, + 146, + 36, + 145, + 52, + 73, + 146, + 36, + 73, + 37, + 41, + 73, + 37, + 17, + 81, + 50 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 2048, + 2, + 2147483648, + 0, + 43, + 0, + 0, + 24, + 16384, + 2, + 2147483648, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9515 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64uzbb_rolw.json b/pvm/programs/riscv_rv64uzbb_rolw.json new file mode 100644 index 00000000..57550836 --- /dev/null +++ b/pvm/programs/riscv_rv64uzbb_rolw.json @@ -0,0 +1,1512 @@ +{ + "name": "riscv_rv64uzbb_rolw", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 133, + 22, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 8, + 1, + 51, + 9, + 221, + 152, + 11, + 51, + 4, + 1, + 171, + 75, + 247, + 4, + 51, + 5, + 3, + 51, + 8, + 1, + 51, + 9, + 1, + 221, + 152, + 11, + 51, + 4, + 2, + 171, + 75, + 228, + 4, + 51, + 5, + 4, + 51, + 8, + 1, + 51, + 9, + 7, + 221, + 152, + 11, + 51, + 4, + 128, + 0, + 171, + 75, + 208, + 4, + 51, + 5, + 5, + 51, + 8, + 1, + 51, + 9, + 14, + 221, + 152, + 11, + 51, + 4, + 0, + 64, + 171, + 75, + 188, + 4, + 51, + 5, + 6, + 51, + 8, + 1, + 51, + 9, + 31, + 221, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 166, + 4, + 51, + 5, + 7, + 51, + 8, + 255, + 51, + 9, + 221, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 148, + 4, + 51, + 5, + 8, + 51, + 8, + 255, + 51, + 9, + 1, + 221, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 129, + 4, + 51, + 5, + 9, + 51, + 8, + 255, + 51, + 9, + 7, + 221, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 110, + 4, + 51, + 5, + 10, + 51, + 8, + 255, + 51, + 9, + 14, + 221, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 91, + 4, + 51, + 5, + 11, + 51, + 8, + 255, + 51, + 9, + 31, + 221, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 72, + 4, + 51, + 5, + 12, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 221, + 152, + 11, + 51, + 4, + 0, + 32, + 33, + 33, + 131, + 68, + 33, + 1, + 171, + 75, + 40, + 4, + 51, + 5, + 13, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 1, + 221, + 152, + 11, + 51, + 4, + 0, + 64, + 66, + 66, + 131, + 68, + 66, + 2, + 171, + 75, + 7, + 4, + 51, + 5, + 14, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 7, + 221, + 152, + 11, + 51, + 4, + 0, + 144, + 144, + 144, + 131, + 68, + 144, + 0, + 171, + 75, + 230, + 3, + 51, + 5, + 15, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 14, + 221, + 152, + 11, + 51, + 4, + 0, + 80, + 72, + 72, + 131, + 68, + 72, + 248, + 171, + 75, + 197, + 3, + 51, + 5, + 16, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 31, + 221, + 152, + 11, + 51, + 4, + 0, + 144, + 144, + 144, + 131, + 68, + 144, + 0, + 171, + 75, + 164, + 3, + 51, + 5, + 17, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 224, + 221, + 152, + 11, + 51, + 4, + 0, + 32, + 33, + 33, + 131, + 68, + 33, + 1, + 171, + 75, + 131, + 3, + 51, + 5, + 18, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 225, + 221, + 152, + 11, + 51, + 4, + 0, + 64, + 66, + 66, + 131, + 68, + 66, + 2, + 171, + 75, + 98, + 3, + 51, + 5, + 19, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 231, + 221, + 152, + 11, + 51, + 4, + 0, + 144, + 144, + 144, + 131, + 68, + 144, + 0, + 171, + 75, + 65, + 3, + 51, + 5, + 20, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 238, + 221, + 152, + 11, + 51, + 4, + 0, + 80, + 72, + 72, + 131, + 68, + 72, + 248, + 171, + 75, + 32, + 3, + 51, + 5, + 21, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 255, + 221, + 152, + 11, + 51, + 4, + 0, + 144, + 144, + 144, + 131, + 68, + 144, + 0, + 171, + 75, + 255, + 2, + 51, + 5, + 44, + 51, + 8, + 0, + 32, + 241, + 131, + 136, + 69, + 3, + 151, + 136, + 12, + 149, + 136, + 120, + 6, + 51, + 9, + 221, + 152, + 11, + 51, + 4, + 0, + 80, + 52, + 18, + 131, + 68, + 120, + 6, + 171, + 75, + 217, + 2, + 51, + 5, + 45, + 51, + 8, + 0, + 32, + 241, + 131, + 136, + 69, + 3, + 151, + 136, + 12, + 149, + 136, + 120, + 6, + 51, + 9, + 4, + 221, + 152, + 11, + 51, + 4, + 0, + 96, + 69, + 35, + 131, + 68, + 129, + 7, + 171, + 75, + 178, + 2, + 51, + 5, + 46, + 51, + 8, + 0, + 32, + 9, + 131, + 136, + 69, + 3, + 151, + 136, + 12, + 149, + 136, + 120, + 6, + 51, + 9, + 221, + 152, + 11, + 51, + 4, + 0, + 80, + 52, + 146, + 131, + 68, + 120, + 6, + 171, + 75, + 140, + 2, + 51, + 5, + 47, + 51, + 8, + 0, + 144, + 9, + 131, + 136, + 69, + 3, + 151, + 136, + 12, + 149, + 136, + 120, + 6, + 51, + 9, + 4, + 221, + 152, + 11, + 51, + 4, + 0, + 96, + 69, + 147, + 131, + 68, + 137, + 7, + 171, + 75, + 101, + 2, + 51, + 5, + 22, + 51, + 8, + 1, + 51, + 9, + 7, + 221, + 152, + 8, + 51, + 4, + 128, + 0, + 171, + 72, + 81, + 2, + 51, + 5, + 23, + 51, + 8, + 1, + 51, + 9, + 14, + 221, + 152, + 9, + 51, + 4, + 0, + 64, + 171, + 73, + 61, + 2, + 51, + 5, + 24, + 51, + 8, + 3, + 221, + 136, + 8, + 51, + 4, + 24, + 171, + 72, + 45, + 2, + 51, + 5, + 25, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 7, + 221, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 128, + 0, + 171, + 67, + 11, + 2, + 51, + 5, + 26, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 14, + 221, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 0, + 64, + 171, + 67, + 233, + 1, + 51, + 5, + 27, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 31, + 221, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 67, + 197, + 1, + 51, + 5, + 28, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 7, + 221, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 128, + 0, + 171, + 75, + 165, + 1, + 51, + 5, + 29, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 14, + 221, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 0, + 64, + 171, + 75, + 133, + 1, + 51, + 5, + 30, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 31, + 221, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 99, + 1, + 51, + 5, + 31, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 7, + 221, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 128, + 0, + 171, + 75, + 67, + 1, + 51, + 5, + 32, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 14, + 221, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 0, + 64, + 171, + 75, + 35, + 1, + 51, + 5, + 33, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 31, + 221, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 1, + 1, + 51, + 5, + 34, + 51, + 10, + 1, + 51, + 1, + 7, + 51, + 0, + 1, + 221, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 128, + 0, + 171, + 75, + 225, + 0, + 51, + 5, + 35, + 51, + 10, + 1, + 51, + 1, + 14, + 51, + 0, + 1, + 221, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 0, + 64, + 171, + 75, + 193, + 0, + 51, + 5, + 36, + 51, + 10, + 1, + 51, + 1, + 31, + 51, + 0, + 1, + 221, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 159, + 0, + 51, + 5, + 37, + 51, + 10, + 1, + 51, + 1, + 7, + 51, + 0, + 1, + 221, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 128, + 0, + 171, + 75, + 127, + 51, + 5, + 38, + 51, + 10, + 1, + 51, + 1, + 14, + 51, + 0, + 1, + 221, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 0, + 64, + 171, + 75, + 96, + 51, + 5, + 39, + 51, + 10, + 1, + 51, + 1, + 31, + 51, + 0, + 1, + 221, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 63, + 51, + 5, + 40, + 51, + 0, + 15, + 51, + 1, + 51, + 4, + 171, + 65, + 50, + 51, + 5, + 41, + 51, + 0, + 32, + 131, + 1, + 51, + 4, + 32, + 171, + 65, + 36, + 51, + 5, + 42, + 51, + 0, + 51, + 4, + 171, + 64, + 26, + 51, + 5, + 43, + 51, + 0, + 0, + 4, + 51, + 1, + 0, + 16, + 131, + 17, + 0, + 248, + 51, + 4, + 82, + 4, + 6, + 82, + 5, + 4, + 0, + 40, + 237, + 250, + 33, + 41, + 41, + 137, + 36, + 73, + 36, + 73, + 68, + 146, + 68, + 36, + 73, + 16, + 73, + 73, + 36, + 73, + 34, + 73, + 18, + 73, + 146, + 72, + 146, + 68, + 130, + 40, + 65, + 68, + 130, + 72, + 130, + 136, + 4, + 145, + 4, + 17, + 9, + 34, + 9, + 34, + 18, + 68, + 18, + 68, + 36, + 136, + 36, + 136, + 72, + 16, + 73, + 16, + 145, + 32, + 146, + 32, + 34, + 65, + 36, + 65, + 68, + 130, + 72, + 130, + 136, + 132, + 72, + 148, + 32, + 34, + 33, + 18, + 73, + 16, + 145, + 16, + 137, + 18, + 68, + 36, + 68, + 34, + 9, + 34, + 146, + 36, + 34, + 73, + 34, + 146, + 36, + 210, + 36, + 37, + 137, + 72, + 147, + 148, + 36, + 34, + 77, + 82, + 146, + 32, + 210, + 36, + 73, + 34, + 210, + 36, + 73, + 34, + 210, + 36, + 73, + 130, + 72, + 147, + 36, + 137, + 72, + 147, + 36, + 137, + 72, + 147, + 36, + 9, + 34, + 77, + 146, + 36, + 34, + 77, + 146, + 36, + 34, + 77, + 146, + 36, + 136, + 52, + 73, + 146, + 72, + 154, + 36, + 73, + 36, + 77, + 146, + 36, + 72, + 82, + 73, + 74, + 82, + 73, + 68, + 148, + 12 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 2048, + 2, + 18446744071562067968, + 0, + 43, + 0, + 0, + 24, + 16384, + 2, + 18446744071562067968, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9516 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64uzbb_ror.json b/pvm/programs/riscv_rv64uzbb_ror.json new file mode 100644 index 00000000..c1e451a0 --- /dev/null +++ b/pvm/programs/riscv_rv64uzbb_ror.json @@ -0,0 +1,1535 @@ +{ + "name": "riscv_rv64uzbb_ror", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 133, + 42, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 8, + 1, + 51, + 9, + 222, + 152, + 11, + 51, + 4, + 1, + 171, + 75, + 11, + 5, + 51, + 5, + 3, + 51, + 8, + 1, + 51, + 9, + 1, + 222, + 152, + 11, + 51, + 4, + 255, + 151, + 68, + 63, + 171, + 75, + 245, + 4, + 51, + 5, + 4, + 51, + 8, + 1, + 51, + 9, + 7, + 222, + 152, + 11, + 51, + 4, + 1, + 151, + 68, + 57, + 171, + 75, + 223, + 4, + 51, + 5, + 5, + 51, + 8, + 1, + 51, + 9, + 14, + 222, + 152, + 11, + 51, + 4, + 1, + 151, + 68, + 50, + 171, + 75, + 201, + 4, + 51, + 5, + 6, + 51, + 8, + 1, + 51, + 9, + 31, + 222, + 152, + 11, + 51, + 4, + 1, + 151, + 68, + 33, + 171, + 75, + 179, + 4, + 51, + 5, + 7, + 51, + 8, + 255, + 51, + 9, + 222, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 161, + 4, + 51, + 5, + 8, + 51, + 8, + 255, + 51, + 9, + 1, + 222, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 142, + 4, + 51, + 5, + 9, + 51, + 8, + 255, + 51, + 9, + 7, + 222, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 123, + 4, + 51, + 5, + 10, + 51, + 8, + 255, + 51, + 9, + 14, + 222, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 104, + 4, + 51, + 5, + 11, + 51, + 8, + 255, + 51, + 9, + 31, + 222, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 85, + 4, + 51, + 5, + 12, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 222, + 152, + 11, + 51, + 4, + 0, + 32, + 33, + 33, + 131, + 68, + 33, + 1, + 171, + 75, + 53, + 4, + 51, + 5, + 13, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 1, + 222, + 152, + 11, + 51, + 4, + 255, + 151, + 68, + 39, + 149, + 68, + 17, + 151, + 68, + 12, + 149, + 68, + 9, + 249, + 151, + 68, + 12, + 149, + 68, + 144, + 0, + 171, + 75, + 7, + 4, + 51, + 5, + 14, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 7, + 222, + 152, + 11, + 51, + 4, + 33, + 151, + 68, + 43, + 149, + 68, + 9, + 1, + 151, + 68, + 14, + 149, + 68, + 66, + 2, + 171, + 75, + 223, + 3, + 51, + 5, + 15, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 14, + 222, + 152, + 11, + 51, + 4, + 0, + 224, + 131, + 68, + 33, + 1, + 151, + 68, + 35, + 149, + 68, + 1, + 151, + 68, + 15, + 149, + 68, + 132, + 4, + 171, + 75, + 179, + 3, + 51, + 5, + 16, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 31, + 222, + 152, + 11, + 51, + 4, + 0, + 32, + 33, + 33, + 131, + 68, + 33, + 1, + 151, + 68, + 33, + 171, + 75, + 143, + 3, + 51, + 5, + 17, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 192, + 222, + 152, + 11, + 51, + 4, + 0, + 32, + 33, + 33, + 131, + 68, + 33, + 1, + 171, + 75, + 110, + 3, + 51, + 5, + 18, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 193, + 222, + 152, + 11, + 51, + 4, + 255, + 151, + 68, + 39, + 149, + 68, + 17, + 151, + 68, + 12, + 149, + 68, + 9, + 249, + 151, + 68, + 12, + 149, + 68, + 144, + 0, + 171, + 75, + 64, + 3, + 51, + 5, + 19, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 199, + 222, + 152, + 11, + 51, + 4, + 33, + 151, + 68, + 43, + 149, + 68, + 9, + 1, + 151, + 68, + 14, + 149, + 68, + 66, + 2, + 171, + 75, + 24, + 3, + 51, + 5, + 20, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 206, + 222, + 152, + 11, + 51, + 4, + 0, + 224, + 131, + 68, + 33, + 1, + 151, + 68, + 35, + 149, + 68, + 1, + 151, + 68, + 15, + 149, + 68, + 132, + 4, + 171, + 75, + 236, + 2, + 51, + 5, + 21, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 255, + 222, + 152, + 11, + 51, + 4, + 0, + 64, + 66, + 66, + 131, + 68, + 66, + 2, + 171, + 75, + 203, + 2, + 51, + 5, + 50, + 51, + 8, + 1, + 51, + 9, + 63, + 222, + 152, + 11, + 51, + 4, + 2, + 171, + 75, + 184, + 2, + 51, + 5, + 51, + 51, + 8, + 255, + 51, + 9, + 39, + 222, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 165, + 2, + 51, + 5, + 52, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 43, + 222, + 152, + 11, + 51, + 4, + 0, + 32, + 33, + 33, + 131, + 68, + 33, + 1, + 151, + 68, + 21, + 171, + 75, + 129, + 2, + 51, + 5, + 22, + 51, + 8, + 1, + 51, + 9, + 7, + 222, + 152, + 8, + 51, + 4, + 1, + 151, + 68, + 57, + 171, + 72, + 107, + 2, + 51, + 5, + 23, + 51, + 8, + 1, + 51, + 9, + 14, + 222, + 152, + 9, + 51, + 4, + 1, + 151, + 68, + 50, + 171, + 73, + 85, + 2, + 51, + 5, + 24, + 51, + 8, + 3, + 222, + 136, + 8, + 51, + 4, + 3, + 151, + 68, + 61, + 171, + 72, + 66, + 2, + 51, + 5, + 25, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 7, + 222, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 1, + 151, + 68, + 57, + 171, + 67, + 30, + 2, + 51, + 5, + 26, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 14, + 222, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 1, + 151, + 68, + 50, + 171, + 67, + 250, + 1, + 51, + 5, + 27, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 31, + 222, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 1, + 151, + 68, + 33, + 171, + 67, + 214, + 1, + 51, + 5, + 28, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 7, + 222, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 1, + 151, + 68, + 57, + 171, + 75, + 180, + 1, + 51, + 5, + 29, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 14, + 222, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 1, + 151, + 68, + 50, + 171, + 75, + 146, + 1, + 51, + 5, + 30, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 31, + 222, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 1, + 151, + 68, + 33, + 171, + 75, + 112, + 1, + 51, + 5, + 31, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 7, + 222, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 1, + 151, + 68, + 57, + 171, + 75, + 78, + 1, + 51, + 5, + 32, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 14, + 222, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 1, + 151, + 68, + 50, + 171, + 75, + 44, + 1, + 51, + 5, + 33, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 31, + 222, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 1, + 151, + 68, + 33, + 171, + 75, + 10, + 1, + 51, + 5, + 34, + 51, + 10, + 1, + 51, + 1, + 7, + 51, + 0, + 1, + 222, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 1, + 151, + 68, + 57, + 171, + 75, + 232, + 0, + 51, + 5, + 35, + 51, + 10, + 1, + 51, + 1, + 14, + 51, + 0, + 1, + 222, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 1, + 151, + 68, + 50, + 171, + 75, + 198, + 0, + 51, + 5, + 36, + 51, + 10, + 1, + 51, + 1, + 31, + 51, + 0, + 1, + 222, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 1, + 151, + 68, + 33, + 171, + 75, + 164, + 0, + 51, + 5, + 37, + 51, + 10, + 1, + 51, + 1, + 7, + 51, + 0, + 1, + 222, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 1, + 151, + 68, + 57, + 171, + 75, + 130, + 0, + 51, + 5, + 38, + 51, + 10, + 1, + 51, + 1, + 14, + 51, + 0, + 1, + 222, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 1, + 151, + 68, + 50, + 171, + 75, + 96, + 51, + 5, + 39, + 51, + 10, + 1, + 51, + 1, + 31, + 51, + 0, + 1, + 222, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 1, + 151, + 68, + 33, + 171, + 75, + 63, + 51, + 5, + 40, + 51, + 0, + 15, + 159, + 1, + 51, + 4, + 171, + 65, + 50, + 51, + 5, + 41, + 51, + 0, + 32, + 158, + 1, + 51, + 4, + 32, + 171, + 65, + 36, + 51, + 5, + 42, + 51, + 0, + 51, + 4, + 171, + 64, + 26, + 51, + 5, + 43, + 51, + 0, + 0, + 4, + 51, + 1, + 0, + 16, + 131, + 17, + 0, + 248, + 51, + 4, + 82, + 4, + 6, + 82, + 5, + 4, + 0, + 40, + 217, + 250, + 33, + 41, + 41, + 137, + 36, + 73, + 34, + 73, + 146, + 72, + 146, + 36, + 146, + 36, + 137, + 164, + 36, + 146, + 36, + 145, + 36, + 137, + 36, + 73, + 36, + 73, + 34, + 65, + 148, + 32, + 34, + 65, + 36, + 73, + 18, + 137, + 72, + 16, + 73, + 18, + 137, + 72, + 16, + 73, + 68, + 146, + 136, + 4, + 145, + 4, + 145, + 72, + 16, + 73, + 16, + 145, + 32, + 146, + 36, + 137, + 68, + 36, + 136, + 36, + 137, + 68, + 36, + 136, + 36, + 34, + 73, + 68, + 130, + 72, + 130, + 136, + 36, + 73, + 36, + 73, + 34, + 65, + 36, + 65, + 36, + 146, + 36, + 137, + 36, + 73, + 34, + 73, + 18, + 105, + 146, + 146, + 36, + 145, + 38, + 41, + 73, + 18, + 105, + 146, + 146, + 36, + 145, + 38, + 73, + 146, + 68, + 154, + 36, + 73, + 18, + 105, + 146, + 36, + 73, + 164, + 73, + 146, + 36, + 145, + 38, + 73, + 146, + 68, + 154, + 36, + 73, + 18, + 105, + 146, + 36, + 73, + 164, + 73, + 146, + 36, + 145, + 38, + 73, + 146, + 68, + 154, + 36, + 73, + 18, + 105, + 146, + 36, + 73, + 210, + 36, + 73, + 146, + 36, + 149, + 164, + 36, + 149, + 68, + 68, + 201, + 0 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 2048, + 2, + 8589934592, + 0, + 43, + 0, + 0, + 6917529027641081856, + 1125899906842624, + 2, + 8589934592, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9488 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64uzbb_rori.json b/pvm/programs/riscv_rv64uzbb_rori.json new file mode 100644 index 00000000..63b4fe9e --- /dev/null +++ b/pvm/programs/riscv_rv64uzbb_rori.json @@ -0,0 +1,797 @@ +{ + "name": "riscv_rv64uzbb_rori", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 130, + 154, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 10, + 1, + 158, + 171, + 51, + 4, + 1, + 171, + 75, + 126, + 2, + 51, + 5, + 3, + 51, + 10, + 1, + 158, + 171, + 1, + 51, + 4, + 255, + 151, + 68, + 63, + 171, + 75, + 107, + 2, + 51, + 5, + 4, + 51, + 10, + 1, + 158, + 171, + 7, + 51, + 4, + 1, + 151, + 68, + 57, + 171, + 75, + 88, + 2, + 51, + 5, + 5, + 51, + 10, + 1, + 158, + 171, + 14, + 51, + 4, + 1, + 151, + 68, + 50, + 171, + 75, + 69, + 2, + 51, + 5, + 6, + 51, + 10, + 1, + 158, + 171, + 31, + 51, + 4, + 1, + 151, + 68, + 33, + 171, + 75, + 50, + 2, + 51, + 5, + 7, + 51, + 10, + 255, + 158, + 171, + 51, + 4, + 255, + 171, + 75, + 35, + 2, + 51, + 5, + 8, + 51, + 10, + 255, + 158, + 171, + 1, + 51, + 4, + 255, + 171, + 75, + 19, + 2, + 51, + 5, + 9, + 51, + 10, + 255, + 158, + 171, + 7, + 51, + 4, + 255, + 171, + 75, + 3, + 2, + 51, + 5, + 10, + 51, + 10, + 255, + 158, + 171, + 14, + 51, + 4, + 255, + 171, + 75, + 243, + 1, + 51, + 5, + 11, + 51, + 10, + 255, + 158, + 171, + 31, + 51, + 4, + 255, + 171, + 75, + 227, + 1, + 51, + 5, + 12, + 51, + 10, + 0, + 32, + 33, + 33, + 131, + 170, + 33, + 1, + 158, + 171, + 51, + 4, + 0, + 32, + 33, + 33, + 131, + 68, + 33, + 1, + 171, + 75, + 198, + 1, + 51, + 5, + 13, + 51, + 10, + 0, + 32, + 33, + 33, + 131, + 170, + 33, + 1, + 158, + 171, + 1, + 51, + 4, + 255, + 151, + 68, + 39, + 149, + 68, + 17, + 151, + 68, + 12, + 149, + 68, + 9, + 249, + 151, + 68, + 12, + 149, + 68, + 144, + 0, + 171, + 75, + 155, + 1, + 51, + 5, + 14, + 51, + 10, + 0, + 32, + 33, + 33, + 131, + 170, + 33, + 1, + 158, + 171, + 7, + 51, + 4, + 33, + 151, + 68, + 43, + 149, + 68, + 9, + 1, + 151, + 68, + 14, + 149, + 68, + 66, + 2, + 171, + 75, + 118, + 1, + 51, + 5, + 15, + 51, + 10, + 0, + 32, + 33, + 33, + 131, + 170, + 33, + 1, + 158, + 171, + 14, + 51, + 4, + 0, + 224, + 131, + 68, + 33, + 1, + 151, + 68, + 35, + 149, + 68, + 1, + 151, + 68, + 15, + 149, + 68, + 132, + 4, + 171, + 75, + 77, + 1, + 51, + 5, + 16, + 51, + 10, + 0, + 32, + 33, + 33, + 131, + 170, + 33, + 1, + 158, + 171, + 31, + 51, + 4, + 0, + 32, + 33, + 33, + 131, + 68, + 33, + 1, + 151, + 68, + 33, + 171, + 75, + 44, + 1, + 51, + 5, + 17, + 51, + 10, + 1, + 158, + 171, + 63, + 51, + 4, + 2, + 171, + 75, + 28, + 1, + 51, + 5, + 18, + 51, + 10, + 255, + 158, + 171, + 39, + 51, + 4, + 255, + 171, + 75, + 12, + 1, + 51, + 5, + 19, + 51, + 10, + 0, + 32, + 33, + 33, + 131, + 170, + 33, + 1, + 158, + 171, + 43, + 51, + 4, + 0, + 32, + 33, + 33, + 131, + 68, + 33, + 1, + 151, + 68, + 21, + 171, + 75, + 235, + 0, + 51, + 5, + 20, + 51, + 8, + 1, + 158, + 136, + 7, + 51, + 4, + 1, + 151, + 68, + 57, + 171, + 72, + 216, + 0, + 51, + 5, + 21, + 51, + 9, + 1, + 51, + 0, + 1, + 158, + 11, + 7, + 100, + 179, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 242, + 51, + 4, + 1, + 151, + 68, + 57, + 171, + 67, + 183, + 0, + 51, + 5, + 22, + 51, + 9, + 1, + 51, + 0, + 1, + 158, + 11, + 14, + 100, + 179, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 242, + 51, + 4, + 1, + 151, + 68, + 50, + 171, + 67, + 150, + 0, + 51, + 5, + 23, + 51, + 9, + 1, + 51, + 0, + 1, + 158, + 11, + 31, + 100, + 179, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 242, + 51, + 4, + 1, + 151, + 68, + 33, + 171, + 67, + 117, + 51, + 5, + 24, + 51, + 9, + 1, + 51, + 0, + 1, + 158, + 11, + 7, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 244, + 51, + 4, + 1, + 151, + 68, + 57, + 171, + 75, + 87, + 51, + 5, + 25, + 51, + 9, + 1, + 51, + 0, + 1, + 158, + 11, + 14, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 244, + 51, + 4, + 1, + 151, + 68, + 50, + 171, + 75, + 57, + 51, + 5, + 26, + 51, + 9, + 1, + 51, + 0, + 1, + 158, + 11, + 31, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 244, + 51, + 4, + 1, + 151, + 68, + 33, + 171, + 75, + 27, + 51, + 5, + 27, + 51, + 0, + 51, + 4, + 171, + 64, + 17, + 51, + 5, + 28, + 51, + 0, + 33, + 51, + 4, + 82, + 4, + 6, + 82, + 5, + 4, + 0, + 40, + 105, + 253, + 33, + 41, + 41, + 145, + 36, + 137, + 36, + 73, + 36, + 73, + 34, + 73, + 18, + 73, + 137, + 36, + 137, + 36, + 137, + 36, + 137, + 36, + 137, + 4, + 81, + 16, + 145, + 32, + 146, + 36, + 145, + 136, + 4, + 145, + 36, + 18, + 145, + 32, + 18, + 145, + 36, + 34, + 65, + 36, + 136, + 68, + 146, + 68, + 146, + 68, + 130, + 72, + 16, + 137, + 36, + 73, + 164, + 73, + 73, + 146, + 72, + 147, + 146, + 36, + 145, + 38, + 37, + 73, + 146, + 38, + 73, + 146, + 164, + 73, + 146, + 36, + 105, + 146, + 36, + 73, + 42, + 73, + 201, + 0 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 2, + 8589934592, + 0, + 28, + 0, + 0, + 144115188075855872, + 2, + 555819297, + 8589934592, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9758 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64uzbb_roriw.json b/pvm/programs/riscv_rv64uzbb_roriw.json new file mode 100644 index 00000000..a8c43489 --- /dev/null +++ b/pvm/programs/riscv_rv64uzbb_roriw.json @@ -0,0 +1,672 @@ +{ + "name": "riscv_rv64uzbb_roriw", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 130, + 43, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 10, + 1, + 160, + 171, + 51, + 4, + 1, + 171, + 75, + 15, + 2, + 51, + 5, + 3, + 51, + 10, + 1, + 160, + 171, + 1, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 252, + 1, + 51, + 5, + 4, + 51, + 10, + 1, + 160, + 171, + 7, + 51, + 4, + 0, + 0, + 0, + 2, + 171, + 75, + 233, + 1, + 51, + 5, + 5, + 51, + 10, + 1, + 160, + 171, + 14, + 51, + 4, + 0, + 0, + 4, + 171, + 75, + 215, + 1, + 51, + 5, + 6, + 51, + 10, + 1, + 160, + 171, + 31, + 51, + 4, + 2, + 171, + 75, + 199, + 1, + 51, + 5, + 7, + 51, + 10, + 255, + 160, + 171, + 51, + 4, + 255, + 171, + 75, + 184, + 1, + 51, + 5, + 8, + 51, + 10, + 255, + 160, + 171, + 1, + 51, + 4, + 255, + 171, + 75, + 168, + 1, + 51, + 5, + 9, + 51, + 10, + 255, + 160, + 171, + 7, + 51, + 4, + 255, + 171, + 75, + 152, + 1, + 51, + 5, + 10, + 51, + 10, + 255, + 160, + 171, + 14, + 51, + 4, + 255, + 171, + 75, + 136, + 1, + 51, + 5, + 11, + 51, + 10, + 255, + 160, + 171, + 31, + 51, + 4, + 255, + 171, + 75, + 120, + 1, + 51, + 5, + 12, + 51, + 10, + 0, + 32, + 33, + 33, + 131, + 170, + 33, + 1, + 160, + 171, + 51, + 4, + 0, + 32, + 33, + 33, + 131, + 68, + 33, + 1, + 171, + 75, + 91, + 1, + 51, + 5, + 13, + 51, + 10, + 0, + 32, + 33, + 33, + 131, + 170, + 33, + 1, + 160, + 171, + 1, + 51, + 4, + 0, + 144, + 144, + 144, + 131, + 68, + 144, + 0, + 171, + 75, + 61, + 1, + 51, + 5, + 14, + 51, + 10, + 0, + 32, + 33, + 33, + 131, + 170, + 33, + 1, + 160, + 171, + 7, + 51, + 4, + 0, + 64, + 66, + 66, + 131, + 68, + 66, + 2, + 171, + 75, + 31, + 1, + 51, + 5, + 15, + 51, + 10, + 0, + 32, + 33, + 33, + 131, + 170, + 33, + 1, + 160, + 171, + 14, + 51, + 4, + 0, + 128, + 132, + 132, + 131, + 68, + 132, + 4, + 171, + 75, + 1, + 1, + 51, + 5, + 16, + 51, + 10, + 0, + 32, + 33, + 33, + 131, + 170, + 33, + 1, + 160, + 171, + 31, + 51, + 4, + 0, + 64, + 66, + 66, + 131, + 68, + 66, + 2, + 171, + 75, + 227, + 0, + 51, + 5, + 20, + 51, + 8, + 1, + 160, + 136, + 7, + 51, + 4, + 0, + 0, + 0, + 2, + 171, + 72, + 208, + 0, + 51, + 5, + 21, + 51, + 9, + 1, + 51, + 0, + 1, + 160, + 11, + 7, + 100, + 179, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 242, + 51, + 4, + 0, + 0, + 0, + 2, + 171, + 67, + 175, + 0, + 51, + 5, + 22, + 51, + 9, + 1, + 51, + 0, + 1, + 160, + 11, + 14, + 100, + 179, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 242, + 51, + 4, + 0, + 0, + 4, + 171, + 67, + 143, + 0, + 51, + 5, + 23, + 51, + 9, + 1, + 51, + 0, + 1, + 160, + 11, + 31, + 100, + 179, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 242, + 51, + 4, + 2, + 171, + 67, + 113, + 51, + 5, + 24, + 51, + 9, + 1, + 51, + 0, + 1, + 160, + 11, + 7, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 244, + 51, + 4, + 0, + 0, + 0, + 2, + 171, + 75, + 83, + 51, + 5, + 25, + 51, + 9, + 1, + 51, + 0, + 1, + 160, + 11, + 14, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 244, + 51, + 4, + 0, + 0, + 4, + 171, + 75, + 54, + 51, + 5, + 26, + 51, + 9, + 1, + 51, + 0, + 1, + 160, + 11, + 31, + 149, + 153, + 1, + 51, + 2, + 2, + 171, + 41, + 244, + 51, + 4, + 2, + 171, + 75, + 27, + 51, + 5, + 27, + 51, + 0, + 51, + 4, + 171, + 64, + 17, + 51, + 5, + 28, + 51, + 0, + 33, + 51, + 4, + 82, + 4, + 6, + 82, + 5, + 4, + 0, + 40, + 216, + 253, + 33, + 41, + 41, + 145, + 36, + 136, + 36, + 65, + 36, + 9, + 145, + 36, + 145, + 148, + 72, + 146, + 72, + 146, + 72, + 146, + 72, + 146, + 72, + 16, + 5, + 17, + 9, + 34, + 65, + 68, + 130, + 72, + 16, + 145, + 32, + 18, + 68, + 36, + 136, + 4, + 17, + 73, + 130, + 72, + 147, + 146, + 4, + 145, + 38, + 37, + 9, + 145, + 38, + 37, + 73, + 210, + 36, + 73, + 144, + 52, + 73, + 18, + 146, + 38, + 73, + 146, + 84, + 146, + 146, + 1 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 2, + 2, + 0, + 28, + 0, + 0, + 33554432, + 2, + 555819297, + 2, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9800 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64uzbb_rorw.json b/pvm/programs/riscv_rv64uzbb_rorw.json new file mode 100644 index 00000000..4054637b --- /dev/null +++ b/pvm/programs/riscv_rv64uzbb_rorw.json @@ -0,0 +1,1349 @@ +{ + "name": "riscv_rv64uzbb_rorw", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 132, + 133, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 8, + 1, + 51, + 9, + 223, + 152, + 11, + 51, + 4, + 1, + 171, + 75, + 102, + 4, + 51, + 5, + 3, + 51, + 8, + 1, + 51, + 9, + 1, + 223, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 128, + 171, + 75, + 80, + 4, + 51, + 5, + 4, + 51, + 8, + 1, + 51, + 9, + 7, + 223, + 152, + 11, + 51, + 4, + 0, + 0, + 0, + 2, + 171, + 75, + 58, + 4, + 51, + 5, + 5, + 51, + 8, + 1, + 51, + 9, + 14, + 223, + 152, + 11, + 51, + 4, + 0, + 0, + 4, + 171, + 75, + 37, + 4, + 51, + 5, + 6, + 51, + 8, + 1, + 51, + 9, + 31, + 223, + 152, + 11, + 51, + 4, + 2, + 171, + 75, + 18, + 4, + 51, + 5, + 7, + 51, + 8, + 255, + 51, + 9, + 223, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 0, + 4, + 51, + 5, + 8, + 51, + 8, + 255, + 51, + 9, + 1, + 223, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 237, + 3, + 51, + 5, + 9, + 51, + 8, + 255, + 51, + 9, + 7, + 223, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 218, + 3, + 51, + 5, + 10, + 51, + 8, + 255, + 51, + 9, + 14, + 223, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 199, + 3, + 51, + 5, + 11, + 51, + 8, + 255, + 51, + 9, + 31, + 223, + 152, + 11, + 51, + 4, + 255, + 171, + 75, + 180, + 3, + 51, + 5, + 12, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 223, + 152, + 11, + 51, + 4, + 0, + 32, + 33, + 33, + 131, + 68, + 33, + 1, + 171, + 75, + 148, + 3, + 51, + 5, + 13, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 1, + 223, + 152, + 11, + 51, + 4, + 0, + 144, + 144, + 144, + 131, + 68, + 144, + 0, + 171, + 75, + 115, + 3, + 51, + 5, + 14, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 7, + 223, + 152, + 11, + 51, + 4, + 0, + 64, + 66, + 66, + 131, + 68, + 66, + 2, + 171, + 75, + 82, + 3, + 51, + 5, + 15, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 14, + 223, + 152, + 11, + 51, + 4, + 0, + 128, + 132, + 132, + 131, + 68, + 132, + 4, + 171, + 75, + 49, + 3, + 51, + 5, + 16, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 31, + 223, + 152, + 11, + 51, + 4, + 0, + 64, + 66, + 66, + 131, + 68, + 66, + 2, + 171, + 75, + 16, + 3, + 51, + 5, + 17, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 192, + 223, + 152, + 11, + 51, + 4, + 0, + 32, + 33, + 33, + 131, + 68, + 33, + 1, + 171, + 75, + 239, + 2, + 51, + 5, + 18, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 193, + 223, + 152, + 11, + 51, + 4, + 0, + 144, + 144, + 144, + 131, + 68, + 144, + 0, + 171, + 75, + 206, + 2, + 51, + 5, + 19, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 199, + 223, + 152, + 11, + 51, + 4, + 0, + 64, + 66, + 66, + 131, + 68, + 66, + 2, + 171, + 75, + 173, + 2, + 51, + 5, + 20, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 206, + 223, + 152, + 11, + 51, + 4, + 0, + 128, + 132, + 132, + 131, + 68, + 132, + 4, + 171, + 75, + 140, + 2, + 51, + 5, + 21, + 51, + 8, + 0, + 32, + 33, + 33, + 131, + 136, + 33, + 1, + 51, + 9, + 255, + 223, + 152, + 11, + 51, + 4, + 0, + 64, + 66, + 66, + 131, + 68, + 66, + 2, + 171, + 75, + 107, + 2, + 51, + 5, + 22, + 51, + 8, + 1, + 51, + 9, + 7, + 223, + 152, + 8, + 51, + 4, + 0, + 0, + 0, + 2, + 171, + 72, + 85, + 2, + 51, + 5, + 23, + 51, + 8, + 1, + 51, + 9, + 14, + 223, + 152, + 9, + 51, + 4, + 0, + 0, + 4, + 171, + 73, + 64, + 2, + 51, + 5, + 24, + 51, + 8, + 3, + 223, + 136, + 8, + 51, + 4, + 0, + 0, + 0, + 96, + 171, + 72, + 45, + 2, + 51, + 5, + 25, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 7, + 223, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 0, + 0, + 0, + 2, + 171, + 67, + 9, + 2, + 51, + 5, + 26, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 14, + 223, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 0, + 0, + 4, + 171, + 67, + 230, + 1, + 51, + 5, + 27, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 31, + 223, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 239, + 51, + 4, + 2, + 171, + 67, + 197, + 1, + 51, + 5, + 28, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 7, + 223, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 0, + 0, + 0, + 2, + 171, + 75, + 163, + 1, + 51, + 5, + 29, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 14, + 223, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 0, + 0, + 4, + 171, + 75, + 130, + 1, + 51, + 5, + 30, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 31, + 223, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 2, + 171, + 75, + 99, + 1, + 51, + 5, + 31, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 7, + 223, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 0, + 0, + 0, + 2, + 171, + 75, + 65, + 1, + 51, + 5, + 32, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 14, + 223, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 0, + 0, + 4, + 171, + 75, + 32, + 1, + 51, + 5, + 33, + 51, + 10, + 1, + 51, + 0, + 1, + 51, + 1, + 31, + 223, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 2, + 171, + 75, + 1, + 1, + 51, + 5, + 34, + 51, + 10, + 1, + 51, + 1, + 7, + 51, + 0, + 1, + 223, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 0, + 0, + 0, + 2, + 171, + 75, + 223, + 0, + 51, + 5, + 35, + 51, + 10, + 1, + 51, + 1, + 14, + 51, + 0, + 1, + 223, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 0, + 0, + 4, + 171, + 75, + 190, + 0, + 51, + 5, + 36, + 51, + 10, + 1, + 51, + 1, + 31, + 51, + 0, + 1, + 223, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 2, + 171, + 75, + 159, + 0, + 51, + 5, + 37, + 51, + 10, + 1, + 51, + 1, + 7, + 51, + 0, + 1, + 223, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 0, + 0, + 0, + 2, + 171, + 75, + 125, + 51, + 5, + 38, + 51, + 10, + 1, + 51, + 1, + 14, + 51, + 0, + 1, + 223, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 0, + 0, + 4, + 171, + 75, + 93, + 51, + 5, + 39, + 51, + 10, + 1, + 51, + 1, + 31, + 51, + 0, + 1, + 223, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 241, + 51, + 4, + 2, + 171, + 75, + 63, + 51, + 5, + 40, + 51, + 0, + 15, + 161, + 1, + 51, + 4, + 171, + 65, + 50, + 51, + 5, + 41, + 51, + 0, + 32, + 131, + 1, + 51, + 4, + 32, + 171, + 65, + 36, + 51, + 5, + 42, + 51, + 0, + 51, + 4, + 171, + 64, + 26, + 51, + 5, + 43, + 51, + 0, + 0, + 4, + 51, + 1, + 0, + 16, + 131, + 17, + 0, + 248, + 51, + 4, + 82, + 4, + 6, + 82, + 5, + 4, + 0, + 40, + 126, + 251, + 33, + 41, + 41, + 137, + 36, + 9, + 34, + 73, + 130, + 72, + 146, + 16, + 73, + 146, + 72, + 74, + 34, + 73, + 18, + 73, + 146, + 72, + 146, + 68, + 146, + 36, + 18, + 68, + 9, + 34, + 18, + 68, + 18, + 68, + 36, + 136, + 36, + 136, + 72, + 16, + 73, + 16, + 145, + 32, + 146, + 32, + 34, + 65, + 36, + 65, + 68, + 130, + 72, + 130, + 136, + 4, + 145, + 4, + 17, + 9, + 34, + 9, + 34, + 18, + 68, + 18, + 68, + 36, + 73, + 16, + 73, + 18, + 34, + 73, + 16, + 105, + 146, + 146, + 4, + 145, + 38, + 41, + 73, + 136, + 52, + 73, + 73, + 18, + 105, + 146, + 36, + 65, + 164, + 73, + 146, + 132, + 72, + 147, + 36, + 73, + 164, + 73, + 146, + 4, + 145, + 38, + 73, + 18, + 34, + 77, + 146, + 36, + 145, + 38, + 73, + 18, + 68, + 154, + 36, + 73, + 136, + 52, + 73, + 146, + 68, + 154, + 36, + 73, + 144, + 52, + 73, + 146, + 144, + 52, + 73, + 146, + 36, + 169, + 36, + 37, + 169, + 36, + 34, + 74, + 6 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 2048, + 2, + 2, + 0, + 43, + 0, + 0, + 1610612736, + 262144, + 2, + 2, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9556 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64uzbb_sext_b.json b/pvm/programs/riscv_rv64uzbb_sext_b.json new file mode 100644 index 00000000..2b3f93ee --- /dev/null +++ b/pvm/programs/riscv_rv64uzbb_sext_b.json @@ -0,0 +1,640 @@ +{ + "name": "riscv_rv64uzbb_sext_b", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 130, + 15, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 0, + 108, + 11, + 51, + 4, + 171, + 75, + 245, + 1, + 51, + 5, + 3, + 51, + 0, + 1, + 108, + 11, + 51, + 4, + 1, + 171, + 75, + 230, + 1, + 51, + 5, + 4, + 51, + 0, + 3, + 108, + 11, + 51, + 4, + 3, + 171, + 75, + 215, + 1, + 51, + 5, + 5, + 51, + 0, + 0, + 128, + 108, + 11, + 51, + 4, + 171, + 75, + 200, + 1, + 51, + 5, + 6, + 51, + 0, + 0, + 0, + 128, + 0, + 108, + 11, + 51, + 4, + 171, + 75, + 183, + 1, + 51, + 5, + 7, + 51, + 0, + 5, + 151, + 0, + 33, + 149, + 0, + 255, + 151, + 0, + 15, + 108, + 11, + 51, + 4, + 171, + 75, + 160, + 1, + 51, + 5, + 8, + 51, + 0, + 0, + 128, + 0, + 131, + 0, + 255, + 108, + 11, + 51, + 4, + 255, + 171, + 75, + 140, + 1, + 51, + 5, + 9, + 51, + 0, + 0, + 0, + 0, + 128, + 131, + 0, + 255, + 108, + 11, + 51, + 4, + 255, + 171, + 75, + 119, + 1, + 51, + 5, + 10, + 51, + 0, + 0, + 0, + 8, + 131, + 0, + 255, + 108, + 11, + 51, + 4, + 255, + 171, + 75, + 99, + 1, + 51, + 5, + 11, + 51, + 0, + 0, + 0, + 0, + 128, + 108, + 11, + 51, + 4, + 171, + 75, + 82, + 1, + 51, + 5, + 12, + 51, + 0, + 0, + 192, + 171, + 127, + 131, + 0, + 137, + 7, + 151, + 0, + 13, + 149, + 0, + 245, + 1, + 151, + 0, + 12, + 108, + 11, + 51, + 4, + 171, + 75, + 51, + 1, + 51, + 5, + 13, + 51, + 0, + 255, + 151, + 0, + 63, + 108, + 11, + 51, + 4, + 171, + 75, + 34, + 1, + 51, + 5, + 14, + 51, + 0, + 14, + 108, + 11, + 51, + 4, + 14, + 171, + 75, + 19, + 1, + 51, + 5, + 15, + 51, + 0, + 253, + 151, + 0, + 32, + 149, + 0, + 25, + 151, + 0, + 17, + 149, + 0, + 1, + 4, + 151, + 0, + 12, + 149, + 0, + 65, + 3, + 108, + 11, + 51, + 4, + 65, + 171, + 75, + 240, + 0, + 51, + 5, + 16, + 51, + 0, + 13, + 108, + 0, + 51, + 4, + 13, + 171, + 64, + 225, + 0, + 51, + 5, + 17, + 51, + 0, + 11, + 108, + 0, + 51, + 4, + 11, + 171, + 64, + 210, + 0, + 51, + 5, + 18, + 51, + 10, + 1, + 51, + 0, + 13, + 108, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 243, + 51, + 4, + 13, + 171, + 67, + 181, + 0, + 51, + 5, + 29, + 51, + 10, + 1, + 51, + 0, + 19, + 108, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 243, + 51, + 4, + 19, + 171, + 67, + 152, + 0, + 51, + 5, + 20, + 51, + 10, + 1, + 51, + 0, + 34, + 108, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 243, + 51, + 4, + 34, + 171, + 67, + 123, + 51, + 5, + 21, + 51, + 0, + 0, + 128, + 127, + 108, + 11, + 51, + 4, + 171, + 75, + 108, + 51, + 5, + 22, + 51, + 0, + 0, + 128, + 128, + 0, + 108, + 11, + 51, + 4, + 171, + 75, + 92, + 51, + 5, + 23, + 51, + 0, + 0, + 128, + 128, + 1, + 108, + 11, + 51, + 4, + 171, + 75, + 76, + 51, + 5, + 24, + 51, + 0, + 0, + 0, + 6, + 131, + 0, + 1, + 151, + 0, + 15, + 149, + 0, + 255, + 108, + 11, + 51, + 4, + 255, + 171, + 75, + 51, + 51, + 5, + 25, + 51, + 0, + 15, + 151, + 0, + 31, + 149, + 0, + 255, + 108, + 11, + 51, + 4, + 255, + 171, + 75, + 31, + 51, + 5, + 26, + 51, + 0, + 0, + 224, + 1, + 131, + 0, + 1, + 151, + 0, + 19, + 149, + 0, + 255, + 108, + 11, + 51, + 4, + 255, + 171, + 75, + 6, + 82, + 5, + 4, + 0, + 40, + 244, + 253, + 33, + 41, + 85, + 36, + 37, + 146, + 18, + 137, + 138, + 4, + 21, + 73, + 146, + 138, + 132, + 148, + 72, + 144, + 18, + 9, + 41, + 145, + 160, + 34, + 65, + 36, + 82, + 145, + 164, + 34, + 41, + 145, + 36, + 137, + 68, + 137, + 164, + 68, + 82, + 34, + 77, + 37, + 73, + 164, + 169, + 36, + 137, + 52, + 149, + 36, + 73, + 168, + 36, + 168, + 36, + 168, + 36, + 36, + 41, + 73, + 146, + 146, + 132, + 36, + 37, + 25 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 2, + 34, + 18446744073709551615, + 26, + 0, + 0, + 0, + 0, + 2, + 18446744073709551615, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9808 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64uzbb_sext_h.json b/pvm/programs/riscv_rv64uzbb_sext_h.json new file mode 100644 index 00000000..afe131ec --- /dev/null +++ b/pvm/programs/riscv_rv64uzbb_sext_h.json @@ -0,0 +1,672 @@ +{ + "name": "riscv_rv64uzbb_sext_h", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 130, + 43, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 0, + 109, + 11, + 51, + 4, + 171, + 75, + 17, + 2, + 51, + 5, + 3, + 51, + 0, + 1, + 109, + 11, + 51, + 4, + 1, + 171, + 75, + 2, + 2, + 51, + 5, + 4, + 51, + 0, + 3, + 109, + 11, + 51, + 4, + 3, + 171, + 75, + 243, + 1, + 51, + 5, + 5, + 51, + 0, + 0, + 128, + 109, + 11, + 51, + 4, + 0, + 128, + 171, + 75, + 226, + 1, + 51, + 5, + 6, + 51, + 0, + 0, + 0, + 128, + 0, + 109, + 11, + 51, + 4, + 171, + 75, + 209, + 1, + 51, + 5, + 7, + 51, + 0, + 5, + 151, + 0, + 33, + 149, + 0, + 255, + 151, + 0, + 15, + 109, + 11, + 51, + 4, + 0, + 128, + 171, + 75, + 184, + 1, + 51, + 5, + 8, + 51, + 0, + 0, + 128, + 0, + 131, + 0, + 255, + 109, + 11, + 51, + 4, + 0, + 128, + 0, + 131, + 68, + 255, + 171, + 75, + 159, + 1, + 51, + 5, + 9, + 51, + 0, + 0, + 0, + 0, + 128, + 131, + 0, + 255, + 109, + 11, + 51, + 4, + 255, + 171, + 75, + 138, + 1, + 51, + 5, + 10, + 51, + 0, + 0, + 0, + 8, + 131, + 0, + 255, + 109, + 11, + 51, + 4, + 255, + 171, + 75, + 118, + 1, + 51, + 5, + 11, + 51, + 0, + 0, + 0, + 0, + 128, + 109, + 11, + 51, + 4, + 171, + 75, + 101, + 1, + 51, + 5, + 12, + 51, + 0, + 0, + 192, + 171, + 127, + 131, + 0, + 137, + 7, + 151, + 0, + 13, + 149, + 0, + 245, + 1, + 151, + 0, + 12, + 109, + 11, + 51, + 4, + 0, + 80, + 171, + 75, + 68, + 1, + 51, + 5, + 13, + 51, + 0, + 255, + 151, + 0, + 63, + 109, + 11, + 51, + 4, + 171, + 75, + 51, + 1, + 51, + 5, + 14, + 51, + 0, + 14, + 109, + 11, + 51, + 4, + 14, + 171, + 75, + 36, + 1, + 51, + 5, + 15, + 51, + 0, + 253, + 151, + 0, + 32, + 149, + 0, + 25, + 151, + 0, + 17, + 149, + 0, + 1, + 4, + 151, + 0, + 12, + 149, + 0, + 65, + 3, + 109, + 11, + 51, + 4, + 0, + 16, + 131, + 68, + 65, + 3, + 171, + 75, + 252, + 0, + 51, + 5, + 16, + 51, + 0, + 13, + 109, + 0, + 51, + 4, + 13, + 171, + 64, + 237, + 0, + 51, + 5, + 17, + 51, + 0, + 11, + 109, + 0, + 51, + 4, + 11, + 171, + 64, + 222, + 0, + 51, + 5, + 18, + 51, + 10, + 1, + 51, + 0, + 13, + 109, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 243, + 51, + 4, + 13, + 171, + 67, + 193, + 0, + 51, + 5, + 29, + 51, + 10, + 1, + 51, + 0, + 19, + 109, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 243, + 51, + 4, + 19, + 171, + 67, + 164, + 0, + 51, + 5, + 20, + 51, + 10, + 1, + 51, + 0, + 34, + 109, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 243, + 51, + 4, + 34, + 171, + 67, + 135, + 0, + 51, + 5, + 21, + 51, + 0, + 0, + 128, + 127, + 109, + 11, + 51, + 4, + 0, + 128, + 171, + 75, + 117, + 51, + 5, + 22, + 51, + 0, + 0, + 128, + 128, + 0, + 109, + 11, + 51, + 4, + 0, + 128, + 171, + 75, + 99, + 51, + 5, + 23, + 51, + 0, + 0, + 128, + 128, + 1, + 109, + 11, + 51, + 4, + 0, + 128, + 171, + 75, + 81, + 51, + 5, + 24, + 51, + 0, + 0, + 0, + 6, + 131, + 0, + 1, + 151, + 0, + 15, + 149, + 0, + 255, + 109, + 11, + 51, + 4, + 0, + 128, + 0, + 131, + 68, + 255, + 171, + 75, + 51, + 51, + 5, + 25, + 51, + 0, + 15, + 151, + 0, + 31, + 149, + 0, + 255, + 109, + 11, + 51, + 4, + 255, + 171, + 75, + 31, + 51, + 5, + 26, + 51, + 0, + 0, + 224, + 1, + 131, + 0, + 1, + 151, + 0, + 19, + 149, + 0, + 255, + 109, + 11, + 51, + 4, + 255, + 171, + 75, + 6, + 82, + 5, + 4, + 0, + 40, + 216, + 253, + 33, + 41, + 85, + 36, + 37, + 146, + 18, + 137, + 34, + 18, + 84, + 36, + 73, + 138, + 72, + 72, + 33, + 145, + 32, + 37, + 18, + 82, + 34, + 65, + 69, + 130, + 72, + 164, + 136, + 36, + 21, + 73, + 137, + 36, + 73, + 36, + 138, + 136, + 164, + 68, + 82, + 34, + 77, + 37, + 73, + 164, + 169, + 36, + 137, + 52, + 149, + 36, + 145, + 80, + 36, + 65, + 145, + 4, + 69, + 18, + 146, + 20, + 146, + 36, + 41, + 73, + 72, + 82, + 146, + 1 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 2, + 34, + 18446744073709551615, + 26, + 0, + 0, + 0, + 0, + 2, + 18446744073709551615, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9805 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64uzbb_xnor.json b/pvm/programs/riscv_rv64uzbb_xnor.json new file mode 100644 index 00000000..d35c3e31 --- /dev/null +++ b/pvm/programs/riscv_rv64uzbb_xnor.json @@ -0,0 +1,1653 @@ +{ + "name": "riscv_rv64uzbb_xnor", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 133, + 147, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 8, + 0, + 0, + 1, + 255, + 131, + 136, + 0, + 255, + 51, + 9, + 0, + 16, + 15, + 15, + 131, + 153, + 15, + 255, + 226, + 152, + 11, + 51, + 4, + 0, + 16, + 240, + 15, + 131, + 68, + 240, + 171, + 75, + 95, + 5, + 51, + 5, + 3, + 51, + 8, + 0, + 16, + 240, + 15, + 131, + 136, + 240, + 51, + 9, + 0, + 240, + 240, + 240, + 131, + 153, + 240, + 0, + 226, + 152, + 11, + 51, + 4, + 0, + 0, + 255, + 0, + 131, + 68, + 255, + 0, + 171, + 75, + 56, + 5, + 51, + 5, + 4, + 51, + 8, + 0, + 0, + 255, + 0, + 131, + 136, + 255, + 0, + 51, + 9, + 0, + 16, + 15, + 15, + 131, + 153, + 15, + 255, + 226, + 152, + 11, + 51, + 4, + 0, + 240, + 15, + 240, + 131, + 68, + 15, + 171, + 75, + 17, + 5, + 51, + 5, + 5, + 51, + 8, + 0, + 240, + 15, + 240, + 131, + 136, + 15, + 51, + 9, + 0, + 240, + 240, + 240, + 131, + 153, + 240, + 0, + 226, + 152, + 11, + 51, + 4, + 0, + 0, + 1, + 255, + 131, + 68, + 0, + 255, + 171, + 75, + 234, + 4, + 51, + 5, + 50, + 51, + 8, + 0, + 0, + 1, + 131, + 136, + 1, + 255, + 151, + 136, + 16, + 149, + 136, + 1, + 255, + 151, + 136, + 16, + 149, + 136, + 1, + 255, + 151, + 136, + 12, + 149, + 136, + 240, + 51, + 9, + 0, + 16, + 15, + 255, + 131, + 153, + 15, + 255, + 151, + 153, + 12, + 149, + 153, + 241, + 0, + 151, + 153, + 12, + 149, + 153, + 15, + 255, + 151, + 153, + 12, + 149, + 153, + 240, + 0, + 226, + 152, + 11, + 51, + 4, + 0, + 0, + 255, + 0, + 131, + 68, + 255, + 0, + 151, + 68, + 16, + 149, + 68, + 255, + 0, + 151, + 68, + 16, + 149, + 68, + 255, + 0, + 171, + 75, + 140, + 4, + 51, + 5, + 51, + 51, + 8, + 0, + 0, + 255, + 0, + 131, + 136, + 255, + 0, + 151, + 136, + 16, + 149, + 136, + 255, + 0, + 151, + 136, + 16, + 149, + 136, + 255, + 0, + 51, + 9, + 0, + 240, + 240, + 0, + 131, + 153, + 241, + 0, + 151, + 153, + 12, + 149, + 153, + 15, + 255, + 151, + 153, + 12, + 149, + 153, + 241, + 0, + 151, + 153, + 12, + 149, + 153, + 15, + 255, + 226, + 152, + 11, + 51, + 4, + 0, + 0, + 255, + 131, + 68, + 255, + 0, + 151, + 68, + 16, + 149, + 68, + 255, + 0, + 151, + 68, + 16, + 149, + 68, + 255, + 0, + 151, + 68, + 12, + 149, + 68, + 15, + 171, + 75, + 46, + 4, + 51, + 5, + 52, + 51, + 8, + 0, + 0, + 255, + 131, + 136, + 255, + 0, + 151, + 136, + 16, + 149, + 136, + 255, + 0, + 151, + 136, + 16, + 149, + 136, + 255, + 0, + 151, + 136, + 12, + 149, + 136, + 15, + 51, + 9, + 0, + 16, + 15, + 255, + 131, + 153, + 15, + 255, + 151, + 153, + 12, + 149, + 153, + 241, + 0, + 151, + 153, + 12, + 149, + 153, + 15, + 255, + 151, + 153, + 12, + 149, + 153, + 240, + 0, + 226, + 152, + 11, + 51, + 4, + 0, + 0, + 1, + 255, + 131, + 68, + 1, + 255, + 151, + 68, + 16, + 149, + 68, + 1, + 255, + 151, + 68, + 16, + 149, + 68, + 0, + 255, + 171, + 75, + 208, + 3, + 51, + 5, + 6, + 51, + 8, + 0, + 0, + 1, + 255, + 131, + 136, + 0, + 255, + 51, + 9, + 0, + 16, + 15, + 15, + 131, + 153, + 15, + 255, + 226, + 152, + 8, + 51, + 4, + 0, + 16, + 240, + 15, + 131, + 68, + 240, + 171, + 72, + 169, + 3, + 51, + 5, + 7, + 51, + 8, + 0, + 0, + 1, + 255, + 131, + 136, + 0, + 255, + 51, + 9, + 0, + 16, + 15, + 15, + 131, + 153, + 15, + 255, + 226, + 152, + 9, + 51, + 4, + 0, + 16, + 240, + 15, + 131, + 68, + 240, + 171, + 73, + 130, + 3, + 51, + 5, + 8, + 51, + 8, + 0, + 0, + 1, + 255, + 131, + 136, + 0, + 255, + 226, + 136, + 8, + 51, + 4, + 255, + 171, + 72, + 107, + 3, + 51, + 5, + 9, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 1, + 255, + 131, + 0, + 0, + 255, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 226, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 225, + 51, + 4, + 0, + 16, + 240, + 15, + 131, + 68, + 240, + 171, + 67, + 54, + 3, + 51, + 5, + 10, + 51, + 10, + 1, + 51, + 0, + 0, + 16, + 240, + 15, + 131, + 0, + 240, + 51, + 1, + 0, + 240, + 240, + 240, + 131, + 17, + 240, + 0, + 226, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 226, + 51, + 4, + 0, + 0, + 255, + 0, + 131, + 68, + 255, + 0, + 171, + 67, + 1, + 3, + 51, + 5, + 11, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 255, + 0, + 131, + 0, + 255, + 0, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 226, + 16, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 225, + 51, + 4, + 0, + 240, + 15, + 240, + 131, + 68, + 15, + 171, + 67, + 204, + 2, + 51, + 5, + 12, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 1, + 255, + 131, + 0, + 0, + 255, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 226, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 227, + 51, + 4, + 0, + 16, + 240, + 15, + 131, + 68, + 240, + 171, + 75, + 153, + 2, + 51, + 5, + 13, + 51, + 10, + 1, + 51, + 0, + 0, + 16, + 240, + 15, + 131, + 0, + 240, + 51, + 1, + 0, + 240, + 240, + 240, + 131, + 17, + 240, + 0, + 226, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 228, + 51, + 4, + 0, + 0, + 255, + 0, + 131, + 68, + 255, + 0, + 171, + 75, + 102, + 2, + 51, + 5, + 14, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 255, + 0, + 131, + 0, + 255, + 0, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 226, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 227, + 51, + 4, + 0, + 240, + 15, + 240, + 131, + 68, + 15, + 171, + 75, + 51, + 2, + 51, + 5, + 15, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 1, + 255, + 131, + 0, + 0, + 255, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 226, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 227, + 51, + 4, + 0, + 16, + 240, + 15, + 131, + 68, + 240, + 171, + 75, + 0, + 2, + 51, + 5, + 16, + 51, + 10, + 1, + 51, + 0, + 0, + 16, + 240, + 15, + 131, + 0, + 240, + 51, + 1, + 0, + 240, + 240, + 240, + 131, + 17, + 240, + 0, + 226, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 228, + 51, + 4, + 0, + 0, + 255, + 0, + 131, + 68, + 255, + 0, + 171, + 75, + 205, + 1, + 51, + 5, + 17, + 51, + 10, + 1, + 51, + 0, + 0, + 0, + 255, + 0, + 131, + 0, + 255, + 0, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 226, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 227, + 51, + 4, + 0, + 240, + 15, + 240, + 131, + 68, + 15, + 171, + 75, + 154, + 1, + 51, + 5, + 18, + 51, + 10, + 1, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 51, + 0, + 0, + 0, + 1, + 255, + 131, + 0, + 0, + 255, + 226, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 227, + 51, + 4, + 0, + 16, + 240, + 15, + 131, + 68, + 240, + 171, + 75, + 103, + 1, + 51, + 5, + 19, + 51, + 10, + 1, + 51, + 1, + 0, + 240, + 240, + 240, + 131, + 17, + 240, + 0, + 51, + 0, + 0, + 16, + 240, + 15, + 131, + 0, + 240, + 226, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 228, + 51, + 4, + 0, + 0, + 255, + 0, + 131, + 68, + 255, + 0, + 171, + 75, + 52, + 1, + 51, + 5, + 20, + 51, + 10, + 1, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 51, + 0, + 0, + 0, + 255, + 0, + 131, + 0, + 255, + 0, + 226, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 227, + 51, + 4, + 0, + 240, + 15, + 240, + 131, + 68, + 15, + 171, + 75, + 1, + 1, + 51, + 5, + 21, + 51, + 10, + 1, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 51, + 0, + 0, + 0, + 1, + 255, + 131, + 0, + 0, + 255, + 226, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 227, + 51, + 4, + 0, + 16, + 240, + 15, + 131, + 68, + 240, + 171, + 75, + 206, + 0, + 51, + 5, + 22, + 51, + 10, + 1, + 51, + 1, + 0, + 240, + 240, + 240, + 131, + 17, + 240, + 0, + 51, + 0, + 0, + 16, + 240, + 15, + 131, + 0, + 240, + 226, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 228, + 51, + 4, + 0, + 0, + 255, + 0, + 131, + 68, + 255, + 0, + 171, + 75, + 155, + 0, + 51, + 5, + 23, + 51, + 10, + 1, + 51, + 1, + 0, + 16, + 15, + 15, + 131, + 17, + 15, + 255, + 51, + 0, + 0, + 0, + 255, + 0, + 131, + 0, + 255, + 0, + 226, + 16, + 11, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 227, + 51, + 4, + 0, + 240, + 15, + 240, + 131, + 68, + 15, + 171, + 75, + 104, + 51, + 5, + 24, + 51, + 0, + 0, + 0, + 1, + 255, + 131, + 0, + 0, + 255, + 133, + 1, + 255, + 51, + 4, + 0, + 0, + 255, + 0, + 131, + 68, + 255, + 0, + 171, + 65, + 75, + 51, + 5, + 25, + 51, + 0, + 0, + 0, + 255, + 0, + 131, + 0, + 255, + 0, + 133, + 1, + 255, + 51, + 4, + 0, + 0, + 1, + 255, + 131, + 68, + 0, + 255, + 171, + 65, + 46, + 51, + 5, + 26, + 51, + 0, + 255, + 51, + 4, + 255, + 171, + 64, + 34, + 51, + 5, + 27, + 51, + 0, + 0, + 16, + 17, + 17, + 131, + 0, + 17, + 1, + 51, + 1, + 0, + 32, + 34, + 34, + 131, + 17, + 34, + 2, + 51, + 4, + 82, + 4, + 6, + 82, + 5, + 4, + 0, + 40, + 112, + 250, + 33, + 41, + 65, + 4, + 145, + 32, + 145, + 32, + 65, + 36, + 136, + 72, + 16, + 65, + 36, + 72, + 36, + 72, + 16, + 9, + 34, + 18, + 34, + 145, + 72, + 130, + 72, + 36, + 18, + 9, + 34, + 145, + 136, + 4, + 145, + 72, + 4, + 145, + 72, + 36, + 18, + 34, + 145, + 72, + 34, + 33, + 18, + 137, + 36, + 136, + 68, + 34, + 145, + 32, + 18, + 137, + 72, + 16, + 65, + 36, + 72, + 36, + 136, + 32, + 18, + 36, + 18, + 68, + 18, + 105, + 16, + 65, + 164, + 36, + 65, + 34, + 13, + 18, + 68, + 74, + 18, + 68, + 164, + 65, + 4, + 145, + 146, + 4, + 137, + 52, + 136, + 32, + 146, + 36, + 72, + 164, + 65, + 130, + 72, + 146, + 32, + 34, + 13, + 34, + 136, + 36, + 9, + 18, + 105, + 16, + 65, + 36, + 73, + 144, + 72, + 131, + 4, + 145, + 36, + 65, + 68, + 26, + 68, + 16, + 73, + 18, + 36, + 210, + 32, + 130, + 72, + 146, + 32, + 145, + 6, + 17, + 36, + 73, + 130, + 136, + 52, + 136, + 32, + 146, + 36, + 72, + 164, + 65, + 4, + 145, + 36, + 65, + 34, + 13, + 34, + 72, + 146, + 4, + 17, + 105, + 16, + 65, + 36, + 73, + 144, + 36, + 136, + 4, + 145, + 4, + 145, + 32, + 146, + 36, + 9, + 34, + 136, + 146, + 1 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 572662306, + 2, + 18446744073442160655, + 0, + 27, + 0, + 0, + 18446744073709551615, + 267390960, + 2, + 18446744073442160655, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9498 +} \ No newline at end of file diff --git a/pvm/programs/riscv_rv64uzbb_zext_h.json b/pvm/programs/riscv_rv64uzbb_zext_h.json new file mode 100644 index 00000000..88d8c527 --- /dev/null +++ b/pvm/programs/riscv_rv64uzbb_zext_h.json @@ -0,0 +1,701 @@ +{ + "name": "riscv_rv64uzbb_zext_h", + "initial-regs": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "initial-pc": 13, + "initial-page-map": [], + "initial-memory": [], + "initial-gas": 10000, + "program": [ + 0, + 0, + 130, + 69, + 51, + 0, + 0, + 0, + 1, + 131, + 0, + 255, + 151, + 0, + 16, + 50, + 0, + 51, + 5, + 2, + 51, + 0, + 110, + 11, + 51, + 4, + 171, + 75, + 43, + 2, + 51, + 5, + 3, + 51, + 0, + 1, + 110, + 11, + 51, + 4, + 1, + 171, + 75, + 28, + 2, + 51, + 5, + 4, + 51, + 0, + 3, + 110, + 11, + 51, + 4, + 3, + 171, + 75, + 13, + 2, + 51, + 5, + 5, + 51, + 0, + 0, + 128, + 110, + 11, + 51, + 4, + 0, + 128, + 0, + 171, + 75, + 251, + 1, + 51, + 5, + 6, + 51, + 0, + 0, + 0, + 128, + 0, + 110, + 11, + 51, + 4, + 171, + 75, + 234, + 1, + 51, + 5, + 7, + 51, + 0, + 5, + 151, + 0, + 33, + 149, + 0, + 255, + 151, + 0, + 15, + 110, + 11, + 51, + 4, + 0, + 128, + 0, + 171, + 75, + 208, + 1, + 51, + 5, + 8, + 51, + 0, + 0, + 128, + 0, + 131, + 0, + 255, + 110, + 11, + 51, + 4, + 0, + 128, + 0, + 131, + 68, + 255, + 171, + 75, + 183, + 1, + 51, + 5, + 9, + 51, + 0, + 0, + 0, + 0, + 128, + 131, + 0, + 255, + 110, + 11, + 51, + 4, + 0, + 0, + 1, + 131, + 68, + 255, + 171, + 75, + 157, + 1, + 51, + 5, + 10, + 51, + 0, + 0, + 0, + 8, + 131, + 0, + 255, + 110, + 11, + 51, + 4, + 0, + 0, + 1, + 131, + 68, + 255, + 171, + 75, + 132, + 1, + 51, + 5, + 11, + 51, + 0, + 0, + 0, + 0, + 128, + 110, + 11, + 51, + 4, + 171, + 75, + 115, + 1, + 51, + 5, + 12, + 51, + 0, + 0, + 192, + 171, + 127, + 131, + 0, + 137, + 7, + 151, + 0, + 13, + 149, + 0, + 245, + 1, + 151, + 0, + 12, + 110, + 11, + 51, + 4, + 0, + 80, + 171, + 75, + 82, + 1, + 51, + 5, + 13, + 51, + 0, + 255, + 151, + 0, + 63, + 110, + 11, + 51, + 4, + 171, + 75, + 65, + 1, + 51, + 5, + 14, + 51, + 0, + 14, + 110, + 11, + 51, + 4, + 14, + 171, + 75, + 50, + 1, + 51, + 5, + 15, + 51, + 0, + 253, + 151, + 0, + 32, + 149, + 0, + 25, + 151, + 0, + 17, + 149, + 0, + 1, + 4, + 151, + 0, + 12, + 149, + 0, + 65, + 3, + 110, + 11, + 51, + 4, + 0, + 16, + 131, + 68, + 65, + 3, + 171, + 75, + 10, + 1, + 51, + 5, + 16, + 51, + 0, + 13, + 110, + 0, + 51, + 4, + 13, + 171, + 64, + 251, + 0, + 51, + 5, + 17, + 51, + 0, + 11, + 110, + 0, + 51, + 4, + 11, + 171, + 64, + 236, + 0, + 51, + 5, + 18, + 51, + 10, + 1, + 51, + 0, + 13, + 110, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 243, + 51, + 4, + 13, + 171, + 67, + 207, + 0, + 51, + 5, + 29, + 51, + 10, + 1, + 51, + 0, + 19, + 110, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 243, + 51, + 4, + 19, + 171, + 67, + 178, + 0, + 51, + 5, + 20, + 51, + 10, + 1, + 51, + 0, + 34, + 110, + 11, + 100, + 179, + 149, + 170, + 1, + 51, + 2, + 2, + 171, + 42, + 243, + 51, + 4, + 34, + 171, + 67, + 149, + 0, + 51, + 5, + 21, + 51, + 0, + 0, + 128, + 127, + 110, + 11, + 51, + 4, + 0, + 128, + 0, + 171, + 75, + 130, + 0, + 51, + 5, + 22, + 51, + 0, + 0, + 128, + 128, + 0, + 110, + 11, + 51, + 4, + 0, + 128, + 0, + 171, + 75, + 110, + 51, + 5, + 23, + 51, + 0, + 0, + 128, + 128, + 1, + 110, + 11, + 51, + 4, + 0, + 128, + 0, + 171, + 75, + 91, + 51, + 5, + 24, + 51, + 0, + 0, + 0, + 6, + 131, + 0, + 1, + 151, + 0, + 15, + 149, + 0, + 255, + 110, + 11, + 51, + 4, + 0, + 128, + 0, + 131, + 68, + 255, + 171, + 75, + 61, + 51, + 5, + 25, + 51, + 0, + 15, + 151, + 0, + 31, + 149, + 0, + 255, + 110, + 11, + 51, + 4, + 0, + 0, + 1, + 131, + 68, + 255, + 171, + 75, + 36, + 51, + 5, + 26, + 51, + 0, + 0, + 224, + 1, + 131, + 0, + 1, + 151, + 0, + 19, + 149, + 0, + 255, + 110, + 11, + 51, + 4, + 0, + 0, + 1, + 131, + 68, + 255, + 171, + 75, + 6, + 82, + 5, + 4, + 0, + 40, + 190, + 253, + 33, + 41, + 85, + 36, + 37, + 146, + 18, + 137, + 66, + 36, + 168, + 72, + 146, + 20, + 34, + 33, + 133, + 68, + 130, + 20, + 18, + 9, + 41, + 36, + 18, + 84, + 36, + 136, + 68, + 138, + 72, + 82, + 145, + 148, + 72, + 146, + 68, + 162, + 136, + 72, + 74, + 36, + 37, + 210, + 84, + 146, + 68, + 154, + 74, + 146, + 72, + 83, + 73, + 18, + 9, + 133, + 72, + 80, + 72, + 130, + 66, + 18, + 146, + 20, + 146, + 36, + 41, + 36, + 9, + 73, + 10, + 73, + 6 + ], + "expected-status": "halt", + "expected-regs": [ + 4294901760, + 0, + 2, + 34, + 65535, + 26, + 0, + 0, + 0, + 0, + 2, + 65535, + 0 + ], + "expected-pc": 11, + "expected-memory": [], + "expected-gas": 9801 +} \ No newline at end of file diff --git a/pvm/schema.asn b/pvm/schema.asn new file mode 100644 index 00000000..74125ed5 --- /dev/null +++ b/pvm/schema.asn @@ -0,0 +1,87 @@ +PVMTestSuite DEFINITIONS ::= BEGIN + +-- a 64-bit signed integer +I64 ::= INTEGER(-9223372036854775808..9223372036854775807) + +-- a 64-bit unsigned integer +U64 ::= INTEGER(0..18446744073709551615) + +-- a 32-bit unsigned integer +U32 ::= INTEGER(0..4294967295) + +-- an 8-bit unsigned integer (a byte) +U8 ::= INTEGER(0..255) + +-- a blob of bytes at a given memory address +MemoryChunk ::= SEQUENCE OF SEQUENCE { + address U32, + contents SEQUENCE OF U8 +} + +Testcase ::= SEQUENCE { + -- a unique identifier for the test + name UTF8String, + + -- (the "ω" from the paper) + -- the initial value of each of the 13 registers; these need to be set *before* the test program is executed + initial-regs SEQUENCE (SIZE(13..13)) OF U64, + + -- (the "ı" from the paper) + -- the initial program counter from which to start the execution + initial-pc U32, + + -- (part of the "µ" from the paper) + -- lists regions of memory which should be accessible, initialized with zeros by default; any address not on this list should be inaccessible + initial-page-map SEQUENCE OF SEQUENCE { + address U32, + length U32, + is-writable BOOLEAN + }, + + -- (part of the "µ" from the paper) + -- lists all non-zero values to put in memory before execution + initial-memory MemoryChunk, + + -- (the "ξ" from the paper) + -- the initial amount of gas + initial-gas I64, + + -- (the bold "p" from the paper) + -- the program blob to be executed as part of the test + program SEQUENCE OF U8, + + -- (the "ζ" from the paper) + -- the status code of the execution, i.e. the way the program is supposed to end + expected-status ENUMERATED { + -- (called "panic" in the Graypaper) + -- the execution ended with a panic (the `trap` instruction was executed, the execution went "out of bounds", an invalid jump was made, or an invalid instruction was executed) + panic, + + -- the execution finished gracefully (a dynamic jump to address `0xffff0000` was made) + halt, + + -- the execution finished with a page fault + page-fault + }, + + -- (the "ω′" from the paper) + -- the expected values of each of the 13 registers *after* the test program is executed + expected-regs SEQUENCE (SIZE(13..13)) OF U64, + + -- (the "ı′" from the paper) + -- the final value of the program counter, after the execution finishes + expected-pc U32, + + -- (part of the "µ′" from the paper) + -- lists all non-zero values after the execution finishes; all accessible addresses not on this list must be filled with zeroes + expected-memory MemoryChunk, + + -- (the "ξ′" from the paper) + -- the final amount of gas remaining after the execution finishes + expected-gas I64, + + -- the address of a page fault (only if the program finishes with a page fault) + expected-page-fault-address U32 OPTIONAL +} + +END diff --git a/pvm/schema.json b/pvm/schema.json new file mode 100644 index 00000000..aac0477e --- /dev/null +++ b/pvm/schema.json @@ -0,0 +1,98 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "initial-regs": { + "type": "array", + "items": { "$ref": "#/$defs/u64" }, + "minItems": 13, + "maxItems": 13 + }, + "initial-pc": { "$ref": "#/$defs/u32" }, + "initial-page-map": { + "type": "array", + "items": { + "type": "object", + "properties": { + "address": { "$ref": "#/$defs/u32" }, + "length": { "$ref": "#/$defs/u32" }, + "is-writable": { "type": "boolean" } + }, + "required": ["address", "length", "is-writable"], + "additionalProperties": false + } + }, + "initial-memory": { + "$ref": "#/$defs/memory-chunk" + }, + "initial-gas": { + "$ref": "#/$defs/i64" + }, + "program": { + "type": "array", + "items": { "$ref": "#/$defs/u8" } + }, + "expected-status": { + "type": "string", + "enum": ["panic", "halt", "page-fault"] + }, + "expected-regs": { + "type": "array", + "items": { "$ref": "#/$defs/u64" }, + "minItems": 13, + "maxItems": 13 + }, + "expected-pc": { "$ref": "#/$defs/u32" }, + "expected-memory": { + "$ref": "#/$defs/memory-chunk" + }, + "expected-gas": { + "$ref": "#/$defs/i64" + }, + "expected-page-fault-address": { + "$ref": "#/$defs/u32" + } + }, + "required": ["name", "initial-regs", "initial-pc", "initial-page-map", "initial-memory", "initial-gas", "program", "expected-status", "expected-regs", "expected-pc", "expected-memory", "expected-gas"], + "additionalProperties": false, + "$defs": { + "u8": { + "type": "integer", + "minimum": 0, + "maximum": 255 + }, + "u32": { + "type": "integer", + "minimum": 0, + "maximum": 4294967295 + }, + "u64": { + "type": "integer", + "minimum": 0, + "maximum": 18446744073709551615 + }, + "i64": { + "type": "integer", + "minimum": -9223372036854775808, + "maximum": 9223372036854775807 + }, + "memory-chunk": { + "type": "array", + "items": { + "type": "object", + "properties": { + "address": { "$ref": "#/$defs/u32" }, + "contents": { + "type": "array", + "items": { "$ref": "#/$defs/u8" } + } + }, + "required": ["address", "contents"], + "additionalProperties": false + } + } + } +} diff --git a/pvm/validate-asn-schema.py b/pvm/validate-asn-schema.py new file mode 100755 index 00000000..d4a291dc --- /dev/null +++ b/pvm/validate-asn-schema.py @@ -0,0 +1,10 @@ +#!/usr/bin/env python3 + +from pathlib import Path +import asn1tools + +schema = asn1tools.compile_files("schema.asn", codec="jer") + +for path in Path("programs").iterdir(): + print(path) + schema.encode("Testcase", schema.decode("Testcase", open(path, "rb").read())) diff --git a/pvm/validate-json-schema.sh b/pvm/validate-json-schema.sh new file mode 100755 index 00000000..6ec0487f --- /dev/null +++ b/pvm/validate-json-schema.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +# Requires yajsv to be installed. You can install it with: +# go install github.com/neilpa/yajsv@latest + +set -euo pipefail +~/go/bin/yajsv -s schema.json programs/*.json