From d98bdabb745a99c335660699ff0e9b014db10fbc Mon Sep 17 00:00:00 2001 From: Eclypsed Date: Mon, 6 Oct 2025 00:14:04 -0400 Subject: [PATCH] Initial commit --- p1-check/Makefile | 51 + p1-check/elf.h | 57 ++ p1-check/main.c | 66 ++ p1-check/main.o | Bin 0 -> 9272 bytes p1-check/p1-check.c | 60 ++ p1-check/p1-check.h | 29 + p1-check/p1-check.o | Bin 0 -> 9016 bytes p1-check/tests/Makefile | 81 ++ p1-check/tests/expected/A_bad_magic.txt | 1 + p1-check/tests/expected/A_bad_magic_no_H.txt | 1 + .../tests/expected/A_invalid_multi_files.txt | 4 + .../tests/expected/A_invalid_multi_params.txt | 4 + p1-check/tests/expected/A_invalid_param.txt | 4 + .../tests/expected/A_missing_filename.txt | 4 + .../tests/expected/A_nonexistent_file.txt | 1 + p1-check/tests/expected/A_short_header.txt | 1 + .../tests/expected/A_short_header_no_H.txt | 1 + p1-check/tests/expected/B_help.txt | 4 + p1-check/tests/expected/B_multisegment.txt | 6 + p1-check/tests/expected/B_simple_full.txt | 6 + p1-check/tests/expected/B_stack.txt | 6 + p1-check/tests/expected/B_stripped.txt | 6 + p1-check/tests/expected/C_no_output.txt | 0 p1-check/tests/expected/C_simple_hex-2.txt | 6 + p1-check/tests/expected/C_simple_hex.txt | 1 + p1-check/tests/inputs/bad-no_elf.o | Bin 0 -> 137 bytes p1-check/tests/inputs/bad-short_header.o | Bin 0 -> 8 bytes p1-check/tests/inputs/multiseg.o | Bin 0 -> 160 bytes p1-check/tests/inputs/simple.o | Bin 0 -> 146 bytes p1-check/tests/inputs/stack.o | Bin 0 -> 297 bytes p1-check/tests/inputs/stripped.o | Bin 0 -> 88 bytes p1-check/tests/integration.sh | 87 ++ p1-check/tests/itests.include | 21 + p1-check/tests/private.o | Bin 0 -> 8528 bytes p1-check/tests/public.c | 26 + p1-check/tests/testsuite.c | 34 + p1-check/y86 | Bin 0 -> 21728 bytes p2-load/Makefile | 51 + p2-load/elf.h | 98 ++ p2-load/main.c | 134 +++ p2-load/main.o | Bin 0 -> 15136 bytes p2-load/p1-check.h | 29 + p2-load/p1-check.o | Bin 0 -> 3088 bytes p2-load/p2-load.c | 96 ++ p2-load/p2-load.h | 54 + p2-load/p2-load.o | Bin 0 -> 11080 bytes p2-load/tests/Makefile | 81 ++ p2-load/tests/expected/A_bad_phdr_magic.txt | 1 + p2-load/tests/expected/A_bad_phdr_short.txt | 1 + p2-load/tests/expected/A_bad_phdr_vaddr.txt | 1 + p2-load/tests/expected/A_brief_full.txt | 9 + p2-load/tests/expected/A_extra_params.txt | 9 + p2-load/tests/expected/A_full_conflict.txt | 9 + p2-load/tests/expected/A_mem_conflict.txt | 9 + p2-load/tests/expected/A_missing_file.txt | 9 + p2-load/tests/expected/A_no_flags.txt | 0 p2-load/tests/expected/A_no_flags_bad.txt | 1 + p2-load/tests/expected/A_unaligned1.txt | 17 + p2-load/tests/expected/A_unaligned2.txt | 18 + p2-load/tests/expected/B_all_flags.txt | 14 + p2-load/tests/expected/B_repeated.txt | 3 + p2-load/tests/expected/B_stack.txt | 27 + p2-load/tests/expected/B_stripped_m.txt | 5 + p2-load/tests/expected/B_stripped_mH.txt | 11 + p2-load/tests/expected/C_help.txt | 9 + p2-load/tests/expected/C_more_flags_s.txt | 5 + p2-load/tests/expected/C_multiseg_f.txt | 268 +++++ p2-load/tests/expected/C_multiseg_fsHM.txt | 268 +++++ p2-load/tests/expected/C_multiseg_sH.txt | 11 + p2-load/tests/expected/C_simple_H.txt | 6 + p2-load/tests/expected/C_simple_s.txt | 3 + p2-load/tests/expected/C_stripped_sM.txt | 260 +++++ p2-load/tests/inputs/bad-phdr_magic.o | Bin 0 -> 146 bytes p2-load/tests/inputs/bad-phdr_short.o | Bin 0 -> 32 bytes p2-load/tests/inputs/bad-phdr_vaddr.o | Bin 0 -> 117 bytes p2-load/tests/inputs/moreflags.o | Bin 0 -> 160 bytes p2-load/tests/inputs/multiseg.o | Bin 0 -> 160 bytes p2-load/tests/inputs/simple.o | Bin 0 -> 146 bytes p2-load/tests/inputs/stack.o | Bin 0 -> 297 bytes p2-load/tests/inputs/stripped.o | Bin 0 -> 88 bytes p2-load/tests/inputs/unaligned.o | Bin 0 -> 96 bytes p2-load/tests/inputs/unaligned2.o | Bin 0 -> 124 bytes p2-load/tests/integration.sh | 87 ++ p2-load/tests/itests.include | 30 + p2-load/tests/itests.txt | 27 + p2-load/tests/outputs/A_bad_phdr_magic.diff | 0 p2-load/tests/outputs/A_bad_phdr_magic.txt | 1 + p2-load/tests/outputs/A_bad_phdr_short.diff | 0 p2-load/tests/outputs/A_bad_phdr_short.txt | 1 + p2-load/tests/outputs/A_bad_phdr_vaddr.diff | 0 p2-load/tests/outputs/A_bad_phdr_vaddr.txt | 1 + p2-load/tests/outputs/A_brief_full.diff | 0 p2-load/tests/outputs/A_brief_full.txt | 9 + p2-load/tests/outputs/A_extra_params.diff | 0 p2-load/tests/outputs/A_extra_params.txt | 9 + p2-load/tests/outputs/A_full_conflict.diff | 0 p2-load/tests/outputs/A_full_conflict.txt | 9 + p2-load/tests/outputs/A_mem_conflict.diff | 0 p2-load/tests/outputs/A_mem_conflict.txt | 9 + p2-load/tests/outputs/A_missing_file.diff | 0 p2-load/tests/outputs/A_missing_file.txt | 9 + p2-load/tests/outputs/A_no_flags.diff | 0 p2-load/tests/outputs/A_no_flags.txt | 0 p2-load/tests/outputs/A_no_flags_bad.diff | 0 p2-load/tests/outputs/A_no_flags_bad.txt | 1 + p2-load/tests/outputs/A_unaligned1.diff | 0 p2-load/tests/outputs/A_unaligned1.txt | 17 + p2-load/tests/outputs/A_unaligned2.diff | 0 p2-load/tests/outputs/A_unaligned2.txt | 18 + p2-load/tests/outputs/B_all_flags.diff | 0 p2-load/tests/outputs/B_all_flags.txt | 14 + p2-load/tests/outputs/B_repeated.diff | 0 p2-load/tests/outputs/B_repeated.txt | 3 + p2-load/tests/outputs/B_stack.diff | 0 p2-load/tests/outputs/B_stack.txt | 27 + p2-load/tests/outputs/B_stripped_m.diff | 0 p2-load/tests/outputs/B_stripped_m.txt | 5 + p2-load/tests/outputs/B_stripped_mH.diff | 0 p2-load/tests/outputs/B_stripped_mH.txt | 11 + p2-load/tests/outputs/C_help.diff | 0 p2-load/tests/outputs/C_help.txt | 9 + p2-load/tests/outputs/C_more_flags_s.diff | 0 p2-load/tests/outputs/C_more_flags_s.txt | 5 + p2-load/tests/outputs/C_multiseg_f.diff | 0 p2-load/tests/outputs/C_multiseg_f.txt | 268 +++++ p2-load/tests/outputs/C_multiseg_fsHM.diff | 0 p2-load/tests/outputs/C_multiseg_fsHM.txt | 268 +++++ p2-load/tests/outputs/C_multiseg_sH.diff | 0 p2-load/tests/outputs/C_multiseg_sH.txt | 11 + p2-load/tests/outputs/C_simple_H.diff | 0 p2-load/tests/outputs/C_simple_H.txt | 6 + p2-load/tests/outputs/C_simple_s.diff | 0 p2-load/tests/outputs/C_simple_s.txt | 3 + p2-load/tests/outputs/C_stripped_sM.diff | 0 p2-load/tests/outputs/C_stripped_sM.txt | 260 +++++ p2-load/tests/private.o | Bin 0 -> 15272 bytes p2-load/tests/public.c | 87 ++ p2-load/tests/public.o | Bin 0 -> 17744 bytes p2-load/tests/testsuite | Bin 0 -> 81576 bytes p2-load/tests/testsuite.c | 34 + p2-load/tests/testsuite.o | Bin 0 -> 6368 bytes p2-load/tests/utests.txt | 2 + p2-load/tests/valgrind/A_bad_phdr_magic.txt | 15 + p2-load/tests/valgrind/A_bad_phdr_short.txt | 15 + p2-load/tests/valgrind/A_bad_phdr_vaddr.txt | 15 + p2-load/tests/valgrind/A_brief_full.txt | 23 + p2-load/tests/valgrind/A_extra_params.txt | 23 + p2-load/tests/valgrind/A_full_conflict.txt | 23 + p2-load/tests/valgrind/A_mem_conflict.txt | 23 + p2-load/tests/valgrind/A_missing_file.txt | 23 + p2-load/tests/valgrind/A_no_flags.txt | 14 + p2-load/tests/valgrind/A_no_flags_bad.txt | 15 + p2-load/tests/valgrind/A_unaligned1.txt | 31 + p2-load/tests/valgrind/A_unaligned2.txt | 32 + p2-load/tests/valgrind/B_all_flags.txt | 28 + p2-load/tests/valgrind/B_repeated.txt | 17 + p2-load/tests/valgrind/B_stack.txt | 41 + p2-load/tests/valgrind/B_stripped_m.txt | 19 + p2-load/tests/valgrind/B_stripped_mH.txt | 25 + p2-load/tests/valgrind/C_help.txt | 23 + p2-load/tests/valgrind/C_more_flags_s.txt | 19 + p2-load/tests/valgrind/C_multiseg_f.txt | 282 ++++++ p2-load/tests/valgrind/C_multiseg_fsHM.txt | 282 ++++++ p2-load/tests/valgrind/C_multiseg_sH.txt | 25 + p2-load/tests/valgrind/C_simple_H.txt | 20 + p2-load/tests/valgrind/C_simple_s.txt | 17 + p2-load/tests/valgrind/C_stripped_sM.txt | 274 ++++++ p2-load/y86 | Bin 0 -> 24064 bytes p2-load/y86.h | 12 + p3-disas/.clang-format | 7 + p3-disas/Makefile | 51 + p3-disas/elf.h | 98 ++ p3-disas/main.c | 170 ++++ p3-disas/main.o | Bin 0 -> 17224 bytes p3-disas/p1-check.h | 29 + p3-disas/p1-check.o | Bin 0 -> 3088 bytes p3-disas/p2-load.h | 52 + p3-disas/p2-load.o | Bin 0 -> 4104 bytes p3-disas/p3-disas.c | 574 +++++++++++ p3-disas/p3-disas.h | 55 ++ p3-disas/p3-disas.o | Bin 0 -> 26152 bytes p3-disas/tests/Makefile | 81 ++ p3-disas/tests/expected/A_bad_filename.txt | 1 + p3-disas/tests/expected/A_bad_no_elf.txt | 1 + p3-disas/tests/expected/A_bad_phdr.txt | 1 + .../tests/expected/A_bad_short_header.txt | 1 + p3-disas/tests/expected/A_bad_short_phdr.txt | 1 + p3-disas/tests/expected/A_data.txt | 6 + p3-disas/tests/expected/A_data_code.txt | 5 + p3-disas/tests/expected/A_extra_params.txt | 11 + p3-disas/tests/expected/A_interleaved.txt | 22 + p3-disas/tests/expected/A_invalid.txt | 6 + p3-disas/tests/expected/A_missing_file.txt | 11 + p3-disas/tests/expected/A_rodata.txt | 4 + p3-disas/tests/expected/A_rodata_code.txt | 5 + p3-disas/tests/expected/A_rodata_long.txt | 10 + p3-disas/tests/expected/A_rodata_multi.txt | 6 + .../tests/expected/A_rodata_shakespeare.txt | 20 + p3-disas/tests/expected/A_unaligned1.txt | 26 + p3-disas/tests/expected/A_unaligned2.txt | 29 + p3-disas/tests/expected/B_iotrap.txt | 10 + p3-disas/tests/expected/B_jmp.txt | 11 + p3-disas/tests/expected/B_ninebyte.txt | 6 + p3-disas/tests/expected/B_simple.txt | 19 + p3-disas/tests/expected/B_simple_multi.txt | 17 + p3-disas/tests/expected/B_tenbyte.txt | 9 + p3-disas/tests/expected/C_cmov.txt | 11 + p3-disas/tests/expected/C_help.txt | 11 + p3-disas/tests/expected/C_opq.txt | 8 + p3-disas/tests/expected/C_twobyte.txt | 8 + p3-disas/tests/expected/D_onebyte.txt | 7 + p3-disas/tests/inputs/bad-no_elf.o | Bin 0 -> 137 bytes p3-disas/tests/inputs/bad-phdr.o | Bin 0 -> 117 bytes p3-disas/tests/inputs/bad-short_header.o | Bin 0 -> 8 bytes p3-disas/tests/inputs/bad-short_phdr.o | Bin 0 -> 32 bytes p3-disas/tests/inputs/cmov.o | Bin 0 -> 50 bytes p3-disas/tests/inputs/data.o | Bin 0 -> 81 bytes p3-disas/tests/inputs/interleaved.o | Bin 0 -> 166 bytes p3-disas/tests/inputs/invalid.o | Bin 0 -> 88 bytes p3-disas/tests/inputs/iotrap.o | Bin 0 -> 42 bytes p3-disas/tests/inputs/jmp.o | Bin 0 -> 99 bytes p3-disas/tests/inputs/ninebyte.o | Bin 0 -> 54 bytes p3-disas/tests/inputs/onebyte.o | Bin 0 -> 39 bytes p3-disas/tests/inputs/opq.o | Bin 0 -> 44 bytes p3-disas/tests/inputs/rodata.o | Bin 0 -> 63 bytes p3-disas/tests/inputs/rodata_long.o | Bin 0 -> 107 bytes p3-disas/tests/inputs/rodata_multi.o | Bin 0 -> 74 bytes p3-disas/tests/inputs/rodata_shakespeare.o | Bin 0 -> 206 bytes p3-disas/tests/inputs/simple.o | Bin 0 -> 59 bytes p3-disas/tests/inputs/simple_multi.o | Bin 0 -> 126 bytes p3-disas/tests/inputs/tenbyte.o | Bin 0 -> 86 bytes p3-disas/tests/inputs/twobyte.o | Bin 0 -> 44 bytes p3-disas/tests/inputs/unaligned.o | Bin 0 -> 95 bytes p3-disas/tests/inputs/unaligned2.o | Bin 0 -> 124 bytes p3-disas/tests/integration.sh | 87 ++ p3-disas/tests/itests.include | 34 + p3-disas/tests/itests.txt | 31 + p3-disas/tests/outputs/A_bad_filename.diff | 0 p3-disas/tests/outputs/A_bad_filename.txt | 1 + p3-disas/tests/outputs/A_bad_no_elf.diff | 0 p3-disas/tests/outputs/A_bad_no_elf.txt | 1 + p3-disas/tests/outputs/A_bad_phdr.diff | 0 p3-disas/tests/outputs/A_bad_phdr.txt | 1 + .../tests/outputs/A_bad_short_header.diff | 0 p3-disas/tests/outputs/A_bad_short_header.txt | 1 + p3-disas/tests/outputs/A_bad_short_phdr.diff | 0 p3-disas/tests/outputs/A_bad_short_phdr.txt | 1 + p3-disas/tests/outputs/A_data.diff | 0 p3-disas/tests/outputs/A_data.txt | 6 + p3-disas/tests/outputs/A_data_code.diff | 0 p3-disas/tests/outputs/A_data_code.txt | 5 + p3-disas/tests/outputs/A_extra_params.diff | 0 p3-disas/tests/outputs/A_extra_params.txt | 11 + p3-disas/tests/outputs/A_interleaved.diff | 0 p3-disas/tests/outputs/A_interleaved.txt | 22 + p3-disas/tests/outputs/A_invalid.diff | 0 p3-disas/tests/outputs/A_invalid.txt | 6 + p3-disas/tests/outputs/A_missing_file.diff | 0 p3-disas/tests/outputs/A_missing_file.txt | 11 + p3-disas/tests/outputs/A_rodata.diff | 0 p3-disas/tests/outputs/A_rodata.txt | 4 + p3-disas/tests/outputs/A_rodata_code.diff | 0 p3-disas/tests/outputs/A_rodata_code.txt | 5 + p3-disas/tests/outputs/A_rodata_long.diff | 0 p3-disas/tests/outputs/A_rodata_long.txt | 10 + p3-disas/tests/outputs/A_rodata_multi.diff | 0 p3-disas/tests/outputs/A_rodata_multi.txt | 6 + .../tests/outputs/A_rodata_shakespeare.diff | 0 .../tests/outputs/A_rodata_shakespeare.txt | 20 + p3-disas/tests/outputs/A_unaligned1.diff | 0 p3-disas/tests/outputs/A_unaligned1.txt | 26 + p3-disas/tests/outputs/A_unaligned2.diff | 0 p3-disas/tests/outputs/A_unaligned2.txt | 29 + p3-disas/tests/outputs/B_iotrap.diff | 0 p3-disas/tests/outputs/B_iotrap.txt | 10 + p3-disas/tests/outputs/B_jmp.diff | 0 p3-disas/tests/outputs/B_jmp.txt | 11 + p3-disas/tests/outputs/B_ninebyte.diff | 0 p3-disas/tests/outputs/B_ninebyte.txt | 6 + p3-disas/tests/outputs/B_simple.diff | 0 p3-disas/tests/outputs/B_simple.txt | 19 + p3-disas/tests/outputs/B_simple_multi.diff | 0 p3-disas/tests/outputs/B_simple_multi.txt | 17 + p3-disas/tests/outputs/B_tenbyte.diff | 0 p3-disas/tests/outputs/B_tenbyte.txt | 9 + p3-disas/tests/outputs/C_cmov.diff | 0 p3-disas/tests/outputs/C_cmov.txt | 11 + p3-disas/tests/outputs/C_help.diff | 0 p3-disas/tests/outputs/C_help.txt | 11 + p3-disas/tests/outputs/C_opq.diff | 0 p3-disas/tests/outputs/C_opq.txt | 8 + p3-disas/tests/outputs/C_twobyte.diff | 0 p3-disas/tests/outputs/C_twobyte.txt | 8 + p3-disas/tests/outputs/D_onebyte.diff | 0 p3-disas/tests/outputs/D_onebyte.txt | 7 + p3-disas/tests/private.o | Bin 0 -> 48864 bytes p3-disas/tests/public.c | 148 +++ p3-disas/tests/public.o | Bin 0 -> 21464 bytes p3-disas/tests/testsuite | Bin 0 -> 118040 bytes p3-disas/tests/testsuite.c | 34 + p3-disas/tests/testsuite.o | Bin 0 -> 6352 bytes p3-disas/tests/utests.txt | 3 + p3-disas/tests/valgrind/A_bad_filename.txt | 15 + p3-disas/tests/valgrind/A_bad_no_elf.txt | 15 + p3-disas/tests/valgrind/A_bad_phdr.txt | 15 + .../tests/valgrind/A_bad_short_header.txt | 15 + p3-disas/tests/valgrind/A_bad_short_phdr.txt | 15 + p3-disas/tests/valgrind/A_data.txt | 20 + p3-disas/tests/valgrind/A_data_code.txt | 19 + p3-disas/tests/valgrind/A_extra_params.txt | 25 + p3-disas/tests/valgrind/A_interleaved.txt | 36 + p3-disas/tests/valgrind/A_invalid.txt | 20 + p3-disas/tests/valgrind/A_missing_file.txt | 25 + p3-disas/tests/valgrind/A_rodata.txt | 18 + p3-disas/tests/valgrind/A_rodata_code.txt | 19 + p3-disas/tests/valgrind/A_rodata_long.txt | 24 + p3-disas/tests/valgrind/A_rodata_multi.txt | 20 + .../tests/valgrind/A_rodata_shakespeare.txt | 34 + p3-disas/tests/valgrind/A_unaligned1.txt | 40 + p3-disas/tests/valgrind/A_unaligned2.txt | 43 + p3-disas/tests/valgrind/B_iotrap.txt | 24 + p3-disas/tests/valgrind/B_jmp.txt | 25 + p3-disas/tests/valgrind/B_ninebyte.txt | 20 + p3-disas/tests/valgrind/B_simple.txt | 33 + p3-disas/tests/valgrind/B_simple_multi.txt | 31 + p3-disas/tests/valgrind/B_tenbyte.txt | 23 + p3-disas/tests/valgrind/C_cmov.txt | 25 + p3-disas/tests/valgrind/C_help.txt | 25 + p3-disas/tests/valgrind/C_opq.txt | 22 + p3-disas/tests/valgrind/C_twobyte.txt | 22 + p3-disas/tests/valgrind/D_onebyte.txt | 21 + p3-disas/y86 | Bin 0 -> 36312 bytes p3-disas/y86.h | 97 ++ p4-interp/.clang-format | 7 + p4-interp/Makefile | 51 + p4-interp/elf.h | 98 ++ p4-interp/main.c | 246 +++++ p4-interp/main.o | Bin 0 -> 23288 bytes p4-interp/p1-check.h | 29 + p4-interp/p1-check.o | Bin 0 -> 3088 bytes p4-interp/p2-load.h | 52 + p4-interp/p2-load.o | Bin 0 -> 4104 bytes p4-interp/p3-disas.h | 55 ++ p4-interp/p3-disas.o | Bin 0 -> 18584 bytes p4-interp/p4-interp.c | 355 +++++++ p4-interp/p4-interp.h | 47 + p4-interp/p4-interp.o | Bin 0 -> 20024 bytes p4-interp/tests/Makefile | 81 ++ p4-interp/tests/expected/A_bad_addr.txt | 12 + p4-interp/tests/expected/A_bad_addr_debug.txt | 294 ++++++ p4-interp/tests/expected/A_bad_insn.txt | 12 + p4-interp/tests/expected/A_bad_insn_debug.txt | 294 ++++++ p4-interp/tests/expected/A_bad_nostack.txt | 12 + p4-interp/tests/expected/A_both_flags.txt | 13 + p4-interp/tests/expected/A_cjmp_debug.txt | 798 +++++++++++++++ p4-interp/tests/expected/A_cmov_debug.txt | 906 +++++++++++++++++ p4-interp/tests/expected/A_extra_params.txt | 13 + .../tests/expected/A_iotrap_buf2_debug.txt | 402 ++++++++ .../tests/expected/A_iotrap_buf_debug.txt | 330 +++++++ .../tests/expected/A_iotrap_char_debug.txt | 354 +++++++ p4-interp/tests/expected/A_iotrap_dec_bad.txt | 13 + .../tests/expected/A_iotrap_dec_debug.txt | 354 +++++++ .../expected/A_iotrap_escaped_string.txt | 15 + .../tests/expected/A_iotrap_str_debug.txt | 330 +++++++ p4-interp/tests/expected/A_missing_file.txt | 13 + p4-interp/tests/expected/A_movflags_debug.txt | 438 +++++++++ p4-interp/tests/expected/A_opq_of_debug.txt | 402 ++++++++ .../tests/expected/A_pushpop_rsp_debug.txt | 318 ++++++ p4-interp/tests/expected/A_unaligned1.txt | 12 + p4-interp/tests/expected/A_unaligned2.txt | 12 + p4-interp/tests/expected/B_func_debug.txt | 342 +++++++ p4-interp/tests/expected/B_memreg.txt | 12 + p4-interp/tests/expected/B_memreg_debug.txt | 366 +++++++ p4-interp/tests/expected/B_pushpop.txt | 12 + p4-interp/tests/expected/B_pushpop_debug.txt | 366 +++++++ p4-interp/tests/expected/B_simple.txt | 12 + p4-interp/tests/expected/B_simple_entry.txt | 12 + p4-interp/tests/expected/C_irmovq.txt | 12 + p4-interp/tests/expected/C_irmovq_debug.txt | 378 +++++++ p4-interp/tests/expected/C_opq.txt | 12 + p4-interp/tests/expected/C_opq_debug.txt | 390 ++++++++ p4-interp/tests/expected/D_help.txt | 13 + p4-interp/tests/expected/D_nop_hlt.txt | 12 + p4-interp/tests/expected/D_nop_hlt_debug.txt | 294 ++++++ p4-interp/tests/inputs/bad_addr.o | Bin 0 -> 86 bytes p4-interp/tests/inputs/bad_insn.o | Bin 0 -> 88 bytes p4-interp/tests/inputs/bad_nostack.o | Bin 0 -> 106 bytes p4-interp/tests/inputs/cjmp.o | Bin 0 -> 311 bytes p4-interp/tests/inputs/cmov.o | Bin 0 -> 255 bytes p4-interp/tests/inputs/func.o | Bin 0 -> 134 bytes p4-interp/tests/inputs/iotrap_buf.o | Bin 0 -> 121 bytes p4-interp/tests/inputs/iotrap_buf2.o | Bin 0 -> 175 bytes p4-interp/tests/inputs/iotrap_char.o | Bin 0 -> 149 bytes p4-interp/tests/inputs/iotrap_char.txt | 1 + p4-interp/tests/inputs/iotrap_dec.o | Bin 0 -> 149 bytes p4-interp/tests/inputs/iotrap_dec.txt | 1 + p4-interp/tests/inputs/iotrap_str.o | Bin 0 -> 121 bytes p4-interp/tests/inputs/iotrap_str_esc.o | Bin 0 -> 107 bytes p4-interp/tests/inputs/irmovq.o | Bin 0 -> 146 bytes p4-interp/tests/inputs/memreg.o | Bin 0 -> 180 bytes p4-interp/tests/inputs/movflags.o | Bin 0 -> 224 bytes p4-interp/tests/inputs/nop_hlt.o | Bin 0 -> 67 bytes p4-interp/tests/inputs/opq.o | Bin 0 -> 124 bytes p4-interp/tests/inputs/opq_of.o | Bin 0 -> 134 bytes p4-interp/tests/inputs/pushpop.o | Bin 0 -> 124 bytes p4-interp/tests/inputs/pushpop_rsp.o | Bin 0 -> 100 bytes p4-interp/tests/inputs/simple.o | Bin 0 -> 139 bytes p4-interp/tests/inputs/simple_entry.o | Bin 0 -> 139 bytes p4-interp/tests/inputs/unaligned.o | Bin 0 -> 95 bytes p4-interp/tests/inputs/unaligned2.o | Bin 0 -> 124 bytes p4-interp/tests/integration.sh | 87 ++ p4-interp/tests/itests.include | 41 + p4-interp/tests/itests.txt | 38 + p4-interp/tests/outputs/A_bad_addr.diff | 0 p4-interp/tests/outputs/A_bad_addr.txt | 12 + p4-interp/tests/outputs/A_bad_addr_debug.diff | 0 p4-interp/tests/outputs/A_bad_addr_debug.txt | 294 ++++++ p4-interp/tests/outputs/A_bad_insn.diff | 0 p4-interp/tests/outputs/A_bad_insn.txt | 12 + p4-interp/tests/outputs/A_bad_insn_debug.diff | 0 p4-interp/tests/outputs/A_bad_insn_debug.txt | 294 ++++++ p4-interp/tests/outputs/A_bad_nostack.diff | 0 p4-interp/tests/outputs/A_bad_nostack.txt | 12 + p4-interp/tests/outputs/A_both_flags.diff | 0 p4-interp/tests/outputs/A_both_flags.txt | 13 + p4-interp/tests/outputs/A_cjmp_debug.diff | 0 p4-interp/tests/outputs/A_cjmp_debug.txt | 798 +++++++++++++++ p4-interp/tests/outputs/A_cmov_debug.diff | 0 p4-interp/tests/outputs/A_cmov_debug.txt | 906 +++++++++++++++++ p4-interp/tests/outputs/A_extra_params.diff | 0 p4-interp/tests/outputs/A_extra_params.txt | 13 + .../tests/outputs/A_iotrap_buf2_debug.diff | 0 .../tests/outputs/A_iotrap_buf2_debug.txt | 402 ++++++++ .../tests/outputs/A_iotrap_buf_debug.diff | 0 .../tests/outputs/A_iotrap_buf_debug.txt | 330 +++++++ .../tests/outputs/A_iotrap_char_debug.diff | 0 .../tests/outputs/A_iotrap_char_debug.txt | 354 +++++++ p4-interp/tests/outputs/A_iotrap_dec_bad.diff | 0 p4-interp/tests/outputs/A_iotrap_dec_bad.txt | 13 + .../tests/outputs/A_iotrap_dec_debug.diff | 0 .../tests/outputs/A_iotrap_dec_debug.txt | 354 +++++++ .../outputs/A_iotrap_escaped_string.diff | 0 .../tests/outputs/A_iotrap_escaped_string.txt | 15 + .../tests/outputs/A_iotrap_str_debug.diff | 0 .../tests/outputs/A_iotrap_str_debug.txt | 330 +++++++ p4-interp/tests/outputs/A_missing_file.diff | 0 p4-interp/tests/outputs/A_missing_file.txt | 13 + p4-interp/tests/outputs/A_movflags_debug.diff | 0 p4-interp/tests/outputs/A_movflags_debug.txt | 438 +++++++++ p4-interp/tests/outputs/A_opq_of_debug.diff | 0 p4-interp/tests/outputs/A_opq_of_debug.txt | 402 ++++++++ .../tests/outputs/A_pushpop_rsp_debug.diff | 0 .../tests/outputs/A_pushpop_rsp_debug.txt | 318 ++++++ p4-interp/tests/outputs/A_unaligned1.diff | 0 p4-interp/tests/outputs/A_unaligned1.txt | 12 + p4-interp/tests/outputs/A_unaligned2.diff | 0 p4-interp/tests/outputs/A_unaligned2.txt | 12 + p4-interp/tests/outputs/B_func_debug.diff | 0 p4-interp/tests/outputs/B_func_debug.txt | 342 +++++++ p4-interp/tests/outputs/B_memreg.diff | 0 p4-interp/tests/outputs/B_memreg.txt | 12 + p4-interp/tests/outputs/B_memreg_debug.diff | 0 p4-interp/tests/outputs/B_memreg_debug.txt | 366 +++++++ p4-interp/tests/outputs/B_pushpop.diff | 0 p4-interp/tests/outputs/B_pushpop.txt | 12 + p4-interp/tests/outputs/B_pushpop_debug.diff | 0 p4-interp/tests/outputs/B_pushpop_debug.txt | 366 +++++++ p4-interp/tests/outputs/B_simple.diff | 0 p4-interp/tests/outputs/B_simple.txt | 12 + p4-interp/tests/outputs/B_simple_entry.diff | 0 p4-interp/tests/outputs/B_simple_entry.txt | 12 + p4-interp/tests/outputs/C_irmovq.diff | 0 p4-interp/tests/outputs/C_irmovq.txt | 12 + p4-interp/tests/outputs/C_irmovq_debug.diff | 0 p4-interp/tests/outputs/C_irmovq_debug.txt | 378 +++++++ p4-interp/tests/outputs/C_opq.diff | 0 p4-interp/tests/outputs/C_opq.txt | 12 + p4-interp/tests/outputs/C_opq_debug.diff | 0 p4-interp/tests/outputs/C_opq_debug.txt | 390 ++++++++ p4-interp/tests/outputs/D_help.diff | 0 p4-interp/tests/outputs/D_help.txt | 13 + p4-interp/tests/outputs/D_nop_hlt.diff | 0 p4-interp/tests/outputs/D_nop_hlt.txt | 12 + p4-interp/tests/outputs/D_nop_hlt_debug.diff | 0 p4-interp/tests/outputs/D_nop_hlt_debug.txt | 294 ++++++ p4-interp/tests/private.o | Bin 0 -> 43712 bytes p4-interp/tests/public.c | 329 +++++++ p4-interp/tests/public.o | Bin 0 -> 35320 bytes p4-interp/tests/src/bad_addr.ys | 9 + p4-interp/tests/src/bad_nostack.ys | 13 + p4-interp/tests/src/cjmp.ys | 48 + p4-interp/tests/src/cmov.ys | 40 + p4-interp/tests/src/func.ys | 18 + p4-interp/tests/src/iotrap_buf.ys | 14 + p4-interp/tests/src/iotrap_buf2.ys | 24 + p4-interp/tests/src/iotrap_char.ys | 18 + p4-interp/tests/src/iotrap_dec.ys | 18 + p4-interp/tests/src/iotrap_str.ys | 14 + p4-interp/tests/src/iotrap_str_esc.ys | 10 + p4-interp/tests/src/irmovq.ys | 14 + p4-interp/tests/src/memreg.ys | 18 + p4-interp/tests/src/movflags.ys | 30 + p4-interp/tests/src/nop_hlt.ys | 7 + p4-interp/tests/src/opq.ys | 15 + p4-interp/tests/src/opq_of.ys | 18 + p4-interp/tests/src/pushpop.ys | 16 + p4-interp/tests/src/pushpop_rsp.ys | 12 + p4-interp/tests/src/simple.ys | 17 + p4-interp/tests/src/simple_entry.ys | 17 + p4-interp/tests/src/unaligned.ys | 10 + p4-interp/tests/src/unaligned2.ys | 12 + p4-interp/tests/testsuite | Bin 0 -> 124744 bytes p4-interp/tests/testsuite.c | 34 + p4-interp/tests/testsuite.o | Bin 0 -> 6352 bytes p4-interp/tests/utests.txt | 2 + p4-interp/tests/valgrind/A_bad_addr.txt | 26 + p4-interp/tests/valgrind/A_bad_addr_debug.txt | 308 ++++++ p4-interp/tests/valgrind/A_bad_insn.txt | 26 + p4-interp/tests/valgrind/A_bad_insn_debug.txt | 308 ++++++ p4-interp/tests/valgrind/A_bad_nostack.txt | 26 + p4-interp/tests/valgrind/A_both_flags.txt | 27 + p4-interp/tests/valgrind/A_cjmp_debug.txt | 812 ++++++++++++++++ p4-interp/tests/valgrind/A_cmov_debug.txt | 920 ++++++++++++++++++ p4-interp/tests/valgrind/A_extra_params.txt | 27 + .../tests/valgrind/A_iotrap_buf2_debug.txt | 416 ++++++++ .../tests/valgrind/A_iotrap_buf_debug.txt | 344 +++++++ .../tests/valgrind/A_iotrap_char_debug.txt | 368 +++++++ p4-interp/tests/valgrind/A_iotrap_dec_bad.txt | 27 + .../tests/valgrind/A_iotrap_dec_debug.txt | 357 +++++++ .../valgrind/A_iotrap_escaped_string.txt | 29 + .../tests/valgrind/A_iotrap_str_debug.txt | 344 +++++++ p4-interp/tests/valgrind/A_missing_file.txt | 27 + p4-interp/tests/valgrind/A_movflags_debug.txt | 452 +++++++++ p4-interp/tests/valgrind/A_opq_of_debug.txt | 416 ++++++++ .../tests/valgrind/A_pushpop_rsp_debug.txt | 332 +++++++ p4-interp/tests/valgrind/A_unaligned1.txt | 26 + p4-interp/tests/valgrind/A_unaligned2.txt | 26 + p4-interp/tests/valgrind/B_func_debug.txt | 356 +++++++ p4-interp/tests/valgrind/B_memreg.txt | 26 + p4-interp/tests/valgrind/B_memreg_debug.txt | 380 ++++++++ p4-interp/tests/valgrind/B_pushpop.txt | 26 + p4-interp/tests/valgrind/B_pushpop_debug.txt | 380 ++++++++ p4-interp/tests/valgrind/B_simple.txt | 26 + p4-interp/tests/valgrind/B_simple_entry.txt | 26 + p4-interp/tests/valgrind/C_irmovq.txt | 26 + p4-interp/tests/valgrind/C_irmovq_debug.txt | 392 ++++++++ p4-interp/tests/valgrind/C_opq.txt | 26 + p4-interp/tests/valgrind/C_opq_debug.txt | 404 ++++++++ p4-interp/tests/valgrind/D_help.txt | 27 + p4-interp/tests/valgrind/D_nop_hlt.txt | 26 + p4-interp/tests/valgrind/D_nop_hlt_debug.txt | 308 ++++++ p4-interp/y86 | Bin 0 -> 46768 bytes p4-interp/y86.h | 97 ++ 553 files changed, 32764 insertions(+) create mode 100644 p1-check/Makefile create mode 100644 p1-check/elf.h create mode 100644 p1-check/main.c create mode 100644 p1-check/main.o create mode 100644 p1-check/p1-check.c create mode 100644 p1-check/p1-check.h create mode 100644 p1-check/p1-check.o create mode 100644 p1-check/tests/Makefile create mode 100644 p1-check/tests/expected/A_bad_magic.txt create mode 100644 p1-check/tests/expected/A_bad_magic_no_H.txt create mode 100644 p1-check/tests/expected/A_invalid_multi_files.txt create mode 100644 p1-check/tests/expected/A_invalid_multi_params.txt create mode 100644 p1-check/tests/expected/A_invalid_param.txt create mode 100644 p1-check/tests/expected/A_missing_filename.txt create mode 100644 p1-check/tests/expected/A_nonexistent_file.txt create mode 100644 p1-check/tests/expected/A_short_header.txt create mode 100644 p1-check/tests/expected/A_short_header_no_H.txt create mode 100644 p1-check/tests/expected/B_help.txt create mode 100644 p1-check/tests/expected/B_multisegment.txt create mode 100644 p1-check/tests/expected/B_simple_full.txt create mode 100644 p1-check/tests/expected/B_stack.txt create mode 100644 p1-check/tests/expected/B_stripped.txt create mode 100644 p1-check/tests/expected/C_no_output.txt create mode 100644 p1-check/tests/expected/C_simple_hex-2.txt create mode 100644 p1-check/tests/expected/C_simple_hex.txt create mode 100644 p1-check/tests/inputs/bad-no_elf.o create mode 100644 p1-check/tests/inputs/bad-short_header.o create mode 100644 p1-check/tests/inputs/multiseg.o create mode 100644 p1-check/tests/inputs/simple.o create mode 100644 p1-check/tests/inputs/stack.o create mode 100644 p1-check/tests/inputs/stripped.o create mode 100644 p1-check/tests/integration.sh create mode 100644 p1-check/tests/itests.include create mode 100644 p1-check/tests/private.o create mode 100644 p1-check/tests/public.c create mode 100644 p1-check/tests/testsuite.c create mode 100644 p1-check/y86 create mode 100644 p2-load/Makefile create mode 100644 p2-load/elf.h create mode 100644 p2-load/main.c create mode 100644 p2-load/main.o create mode 100644 p2-load/p1-check.h create mode 100644 p2-load/p1-check.o create mode 100644 p2-load/p2-load.c create mode 100644 p2-load/p2-load.h create mode 100644 p2-load/p2-load.o create mode 100644 p2-load/tests/Makefile create mode 100644 p2-load/tests/expected/A_bad_phdr_magic.txt create mode 100644 p2-load/tests/expected/A_bad_phdr_short.txt create mode 100644 p2-load/tests/expected/A_bad_phdr_vaddr.txt create mode 100644 p2-load/tests/expected/A_brief_full.txt create mode 100644 p2-load/tests/expected/A_extra_params.txt create mode 100644 p2-load/tests/expected/A_full_conflict.txt create mode 100644 p2-load/tests/expected/A_mem_conflict.txt create mode 100644 p2-load/tests/expected/A_missing_file.txt create mode 100644 p2-load/tests/expected/A_no_flags.txt create mode 100644 p2-load/tests/expected/A_no_flags_bad.txt create mode 100644 p2-load/tests/expected/A_unaligned1.txt create mode 100644 p2-load/tests/expected/A_unaligned2.txt create mode 100644 p2-load/tests/expected/B_all_flags.txt create mode 100644 p2-load/tests/expected/B_repeated.txt create mode 100644 p2-load/tests/expected/B_stack.txt create mode 100644 p2-load/tests/expected/B_stripped_m.txt create mode 100644 p2-load/tests/expected/B_stripped_mH.txt create mode 100644 p2-load/tests/expected/C_help.txt create mode 100644 p2-load/tests/expected/C_more_flags_s.txt create mode 100644 p2-load/tests/expected/C_multiseg_f.txt create mode 100644 p2-load/tests/expected/C_multiseg_fsHM.txt create mode 100644 p2-load/tests/expected/C_multiseg_sH.txt create mode 100644 p2-load/tests/expected/C_simple_H.txt create mode 100644 p2-load/tests/expected/C_simple_s.txt create mode 100644 p2-load/tests/expected/C_stripped_sM.txt create mode 100644 p2-load/tests/inputs/bad-phdr_magic.o create mode 100644 p2-load/tests/inputs/bad-phdr_short.o create mode 100644 p2-load/tests/inputs/bad-phdr_vaddr.o create mode 100644 p2-load/tests/inputs/moreflags.o create mode 100644 p2-load/tests/inputs/multiseg.o create mode 100644 p2-load/tests/inputs/simple.o create mode 100644 p2-load/tests/inputs/stack.o create mode 100644 p2-load/tests/inputs/stripped.o create mode 100644 p2-load/tests/inputs/unaligned.o create mode 100644 p2-load/tests/inputs/unaligned2.o create mode 100644 p2-load/tests/integration.sh create mode 100644 p2-load/tests/itests.include create mode 100644 p2-load/tests/itests.txt create mode 100644 p2-load/tests/outputs/A_bad_phdr_magic.diff create mode 100644 p2-load/tests/outputs/A_bad_phdr_magic.txt create mode 100644 p2-load/tests/outputs/A_bad_phdr_short.diff create mode 100644 p2-load/tests/outputs/A_bad_phdr_short.txt create mode 100644 p2-load/tests/outputs/A_bad_phdr_vaddr.diff create mode 100644 p2-load/tests/outputs/A_bad_phdr_vaddr.txt create mode 100644 p2-load/tests/outputs/A_brief_full.diff create mode 100644 p2-load/tests/outputs/A_brief_full.txt create mode 100644 p2-load/tests/outputs/A_extra_params.diff create mode 100644 p2-load/tests/outputs/A_extra_params.txt create mode 100644 p2-load/tests/outputs/A_full_conflict.diff create mode 100644 p2-load/tests/outputs/A_full_conflict.txt create mode 100644 p2-load/tests/outputs/A_mem_conflict.diff create mode 100644 p2-load/tests/outputs/A_mem_conflict.txt create mode 100644 p2-load/tests/outputs/A_missing_file.diff create mode 100644 p2-load/tests/outputs/A_missing_file.txt create mode 100644 p2-load/tests/outputs/A_no_flags.diff create mode 100644 p2-load/tests/outputs/A_no_flags.txt create mode 100644 p2-load/tests/outputs/A_no_flags_bad.diff create mode 100644 p2-load/tests/outputs/A_no_flags_bad.txt create mode 100644 p2-load/tests/outputs/A_unaligned1.diff create mode 100644 p2-load/tests/outputs/A_unaligned1.txt create mode 100644 p2-load/tests/outputs/A_unaligned2.diff create mode 100644 p2-load/tests/outputs/A_unaligned2.txt create mode 100644 p2-load/tests/outputs/B_all_flags.diff create mode 100644 p2-load/tests/outputs/B_all_flags.txt create mode 100644 p2-load/tests/outputs/B_repeated.diff create mode 100644 p2-load/tests/outputs/B_repeated.txt create mode 100644 p2-load/tests/outputs/B_stack.diff create mode 100644 p2-load/tests/outputs/B_stack.txt create mode 100644 p2-load/tests/outputs/B_stripped_m.diff create mode 100644 p2-load/tests/outputs/B_stripped_m.txt create mode 100644 p2-load/tests/outputs/B_stripped_mH.diff create mode 100644 p2-load/tests/outputs/B_stripped_mH.txt create mode 100644 p2-load/tests/outputs/C_help.diff create mode 100644 p2-load/tests/outputs/C_help.txt create mode 100644 p2-load/tests/outputs/C_more_flags_s.diff create mode 100644 p2-load/tests/outputs/C_more_flags_s.txt create mode 100644 p2-load/tests/outputs/C_multiseg_f.diff create mode 100644 p2-load/tests/outputs/C_multiseg_f.txt create mode 100644 p2-load/tests/outputs/C_multiseg_fsHM.diff create mode 100644 p2-load/tests/outputs/C_multiseg_fsHM.txt create mode 100644 p2-load/tests/outputs/C_multiseg_sH.diff create mode 100644 p2-load/tests/outputs/C_multiseg_sH.txt create mode 100644 p2-load/tests/outputs/C_simple_H.diff create mode 100644 p2-load/tests/outputs/C_simple_H.txt create mode 100644 p2-load/tests/outputs/C_simple_s.diff create mode 100644 p2-load/tests/outputs/C_simple_s.txt create mode 100644 p2-load/tests/outputs/C_stripped_sM.diff create mode 100644 p2-load/tests/outputs/C_stripped_sM.txt create mode 100644 p2-load/tests/private.o create mode 100644 p2-load/tests/public.c create mode 100644 p2-load/tests/public.o create mode 100644 p2-load/tests/testsuite create mode 100644 p2-load/tests/testsuite.c create mode 100644 p2-load/tests/testsuite.o create mode 100644 p2-load/tests/utests.txt create mode 100644 p2-load/tests/valgrind/A_bad_phdr_magic.txt create mode 100644 p2-load/tests/valgrind/A_bad_phdr_short.txt create mode 100644 p2-load/tests/valgrind/A_bad_phdr_vaddr.txt create mode 100644 p2-load/tests/valgrind/A_brief_full.txt create mode 100644 p2-load/tests/valgrind/A_extra_params.txt create mode 100644 p2-load/tests/valgrind/A_full_conflict.txt create mode 100644 p2-load/tests/valgrind/A_mem_conflict.txt create mode 100644 p2-load/tests/valgrind/A_missing_file.txt create mode 100644 p2-load/tests/valgrind/A_no_flags.txt create mode 100644 p2-load/tests/valgrind/A_no_flags_bad.txt create mode 100644 p2-load/tests/valgrind/A_unaligned1.txt create mode 100644 p2-load/tests/valgrind/A_unaligned2.txt create mode 100644 p2-load/tests/valgrind/B_all_flags.txt create mode 100644 p2-load/tests/valgrind/B_repeated.txt create mode 100644 p2-load/tests/valgrind/B_stack.txt create mode 100644 p2-load/tests/valgrind/B_stripped_m.txt create mode 100644 p2-load/tests/valgrind/B_stripped_mH.txt create mode 100644 p2-load/tests/valgrind/C_help.txt create mode 100644 p2-load/tests/valgrind/C_more_flags_s.txt create mode 100644 p2-load/tests/valgrind/C_multiseg_f.txt create mode 100644 p2-load/tests/valgrind/C_multiseg_fsHM.txt create mode 100644 p2-load/tests/valgrind/C_multiseg_sH.txt create mode 100644 p2-load/tests/valgrind/C_simple_H.txt create mode 100644 p2-load/tests/valgrind/C_simple_s.txt create mode 100644 p2-load/tests/valgrind/C_stripped_sM.txt create mode 100644 p2-load/y86 create mode 100644 p2-load/y86.h create mode 100644 p3-disas/.clang-format create mode 100644 p3-disas/Makefile create mode 100644 p3-disas/elf.h create mode 100644 p3-disas/main.c create mode 100644 p3-disas/main.o create mode 100644 p3-disas/p1-check.h create mode 100644 p3-disas/p1-check.o create mode 100644 p3-disas/p2-load.h create mode 100644 p3-disas/p2-load.o create mode 100644 p3-disas/p3-disas.c create mode 100644 p3-disas/p3-disas.h create mode 100644 p3-disas/p3-disas.o create mode 100644 p3-disas/tests/Makefile create mode 100644 p3-disas/tests/expected/A_bad_filename.txt create mode 100644 p3-disas/tests/expected/A_bad_no_elf.txt create mode 100644 p3-disas/tests/expected/A_bad_phdr.txt create mode 100644 p3-disas/tests/expected/A_bad_short_header.txt create mode 100644 p3-disas/tests/expected/A_bad_short_phdr.txt create mode 100644 p3-disas/tests/expected/A_data.txt create mode 100644 p3-disas/tests/expected/A_data_code.txt create mode 100644 p3-disas/tests/expected/A_extra_params.txt create mode 100644 p3-disas/tests/expected/A_interleaved.txt create mode 100644 p3-disas/tests/expected/A_invalid.txt create mode 100644 p3-disas/tests/expected/A_missing_file.txt create mode 100644 p3-disas/tests/expected/A_rodata.txt create mode 100644 p3-disas/tests/expected/A_rodata_code.txt create mode 100644 p3-disas/tests/expected/A_rodata_long.txt create mode 100644 p3-disas/tests/expected/A_rodata_multi.txt create mode 100644 p3-disas/tests/expected/A_rodata_shakespeare.txt create mode 100644 p3-disas/tests/expected/A_unaligned1.txt create mode 100644 p3-disas/tests/expected/A_unaligned2.txt create mode 100644 p3-disas/tests/expected/B_iotrap.txt create mode 100644 p3-disas/tests/expected/B_jmp.txt create mode 100644 p3-disas/tests/expected/B_ninebyte.txt create mode 100644 p3-disas/tests/expected/B_simple.txt create mode 100644 p3-disas/tests/expected/B_simple_multi.txt create mode 100644 p3-disas/tests/expected/B_tenbyte.txt create mode 100644 p3-disas/tests/expected/C_cmov.txt create mode 100644 p3-disas/tests/expected/C_help.txt create mode 100644 p3-disas/tests/expected/C_opq.txt create mode 100644 p3-disas/tests/expected/C_twobyte.txt create mode 100644 p3-disas/tests/expected/D_onebyte.txt create mode 100644 p3-disas/tests/inputs/bad-no_elf.o create mode 100644 p3-disas/tests/inputs/bad-phdr.o create mode 100644 p3-disas/tests/inputs/bad-short_header.o create mode 100644 p3-disas/tests/inputs/bad-short_phdr.o create mode 100644 p3-disas/tests/inputs/cmov.o create mode 100644 p3-disas/tests/inputs/data.o create mode 100644 p3-disas/tests/inputs/interleaved.o create mode 100644 p3-disas/tests/inputs/invalid.o create mode 100644 p3-disas/tests/inputs/iotrap.o create mode 100644 p3-disas/tests/inputs/jmp.o create mode 100644 p3-disas/tests/inputs/ninebyte.o create mode 100644 p3-disas/tests/inputs/onebyte.o create mode 100644 p3-disas/tests/inputs/opq.o create mode 100644 p3-disas/tests/inputs/rodata.o create mode 100644 p3-disas/tests/inputs/rodata_long.o create mode 100644 p3-disas/tests/inputs/rodata_multi.o create mode 100644 p3-disas/tests/inputs/rodata_shakespeare.o create mode 100644 p3-disas/tests/inputs/simple.o create mode 100644 p3-disas/tests/inputs/simple_multi.o create mode 100644 p3-disas/tests/inputs/tenbyte.o create mode 100644 p3-disas/tests/inputs/twobyte.o create mode 100644 p3-disas/tests/inputs/unaligned.o create mode 100644 p3-disas/tests/inputs/unaligned2.o create mode 100644 p3-disas/tests/integration.sh create mode 100644 p3-disas/tests/itests.include create mode 100644 p3-disas/tests/itests.txt create mode 100644 p3-disas/tests/outputs/A_bad_filename.diff create mode 100644 p3-disas/tests/outputs/A_bad_filename.txt create mode 100644 p3-disas/tests/outputs/A_bad_no_elf.diff create mode 100644 p3-disas/tests/outputs/A_bad_no_elf.txt create mode 100644 p3-disas/tests/outputs/A_bad_phdr.diff create mode 100644 p3-disas/tests/outputs/A_bad_phdr.txt create mode 100644 p3-disas/tests/outputs/A_bad_short_header.diff create mode 100644 p3-disas/tests/outputs/A_bad_short_header.txt create mode 100644 p3-disas/tests/outputs/A_bad_short_phdr.diff create mode 100644 p3-disas/tests/outputs/A_bad_short_phdr.txt create mode 100644 p3-disas/tests/outputs/A_data.diff create mode 100644 p3-disas/tests/outputs/A_data.txt create mode 100644 p3-disas/tests/outputs/A_data_code.diff create mode 100644 p3-disas/tests/outputs/A_data_code.txt create mode 100644 p3-disas/tests/outputs/A_extra_params.diff create mode 100644 p3-disas/tests/outputs/A_extra_params.txt create mode 100644 p3-disas/tests/outputs/A_interleaved.diff create mode 100644 p3-disas/tests/outputs/A_interleaved.txt create mode 100644 p3-disas/tests/outputs/A_invalid.diff create mode 100644 p3-disas/tests/outputs/A_invalid.txt create mode 100644 p3-disas/tests/outputs/A_missing_file.diff create mode 100644 p3-disas/tests/outputs/A_missing_file.txt create mode 100644 p3-disas/tests/outputs/A_rodata.diff create mode 100644 p3-disas/tests/outputs/A_rodata.txt create mode 100644 p3-disas/tests/outputs/A_rodata_code.diff create mode 100644 p3-disas/tests/outputs/A_rodata_code.txt create mode 100644 p3-disas/tests/outputs/A_rodata_long.diff create mode 100644 p3-disas/tests/outputs/A_rodata_long.txt create mode 100644 p3-disas/tests/outputs/A_rodata_multi.diff create mode 100644 p3-disas/tests/outputs/A_rodata_multi.txt create mode 100644 p3-disas/tests/outputs/A_rodata_shakespeare.diff create mode 100644 p3-disas/tests/outputs/A_rodata_shakespeare.txt create mode 100644 p3-disas/tests/outputs/A_unaligned1.diff create mode 100644 p3-disas/tests/outputs/A_unaligned1.txt create mode 100644 p3-disas/tests/outputs/A_unaligned2.diff create mode 100644 p3-disas/tests/outputs/A_unaligned2.txt create mode 100644 p3-disas/tests/outputs/B_iotrap.diff create mode 100644 p3-disas/tests/outputs/B_iotrap.txt create mode 100644 p3-disas/tests/outputs/B_jmp.diff create mode 100644 p3-disas/tests/outputs/B_jmp.txt create mode 100644 p3-disas/tests/outputs/B_ninebyte.diff create mode 100644 p3-disas/tests/outputs/B_ninebyte.txt create mode 100644 p3-disas/tests/outputs/B_simple.diff create mode 100644 p3-disas/tests/outputs/B_simple.txt create mode 100644 p3-disas/tests/outputs/B_simple_multi.diff create mode 100644 p3-disas/tests/outputs/B_simple_multi.txt create mode 100644 p3-disas/tests/outputs/B_tenbyte.diff create mode 100644 p3-disas/tests/outputs/B_tenbyte.txt create mode 100644 p3-disas/tests/outputs/C_cmov.diff create mode 100644 p3-disas/tests/outputs/C_cmov.txt create mode 100644 p3-disas/tests/outputs/C_help.diff create mode 100644 p3-disas/tests/outputs/C_help.txt create mode 100644 p3-disas/tests/outputs/C_opq.diff create mode 100644 p3-disas/tests/outputs/C_opq.txt create mode 100644 p3-disas/tests/outputs/C_twobyte.diff create mode 100644 p3-disas/tests/outputs/C_twobyte.txt create mode 100644 p3-disas/tests/outputs/D_onebyte.diff create mode 100644 p3-disas/tests/outputs/D_onebyte.txt create mode 100644 p3-disas/tests/private.o create mode 100644 p3-disas/tests/public.c create mode 100644 p3-disas/tests/public.o create mode 100644 p3-disas/tests/testsuite create mode 100644 p3-disas/tests/testsuite.c create mode 100644 p3-disas/tests/testsuite.o create mode 100644 p3-disas/tests/utests.txt create mode 100644 p3-disas/tests/valgrind/A_bad_filename.txt create mode 100644 p3-disas/tests/valgrind/A_bad_no_elf.txt create mode 100644 p3-disas/tests/valgrind/A_bad_phdr.txt create mode 100644 p3-disas/tests/valgrind/A_bad_short_header.txt create mode 100644 p3-disas/tests/valgrind/A_bad_short_phdr.txt create mode 100644 p3-disas/tests/valgrind/A_data.txt create mode 100644 p3-disas/tests/valgrind/A_data_code.txt create mode 100644 p3-disas/tests/valgrind/A_extra_params.txt create mode 100644 p3-disas/tests/valgrind/A_interleaved.txt create mode 100644 p3-disas/tests/valgrind/A_invalid.txt create mode 100644 p3-disas/tests/valgrind/A_missing_file.txt create mode 100644 p3-disas/tests/valgrind/A_rodata.txt create mode 100644 p3-disas/tests/valgrind/A_rodata_code.txt create mode 100644 p3-disas/tests/valgrind/A_rodata_long.txt create mode 100644 p3-disas/tests/valgrind/A_rodata_multi.txt create mode 100644 p3-disas/tests/valgrind/A_rodata_shakespeare.txt create mode 100644 p3-disas/tests/valgrind/A_unaligned1.txt create mode 100644 p3-disas/tests/valgrind/A_unaligned2.txt create mode 100644 p3-disas/tests/valgrind/B_iotrap.txt create mode 100644 p3-disas/tests/valgrind/B_jmp.txt create mode 100644 p3-disas/tests/valgrind/B_ninebyte.txt create mode 100644 p3-disas/tests/valgrind/B_simple.txt create mode 100644 p3-disas/tests/valgrind/B_simple_multi.txt create mode 100644 p3-disas/tests/valgrind/B_tenbyte.txt create mode 100644 p3-disas/tests/valgrind/C_cmov.txt create mode 100644 p3-disas/tests/valgrind/C_help.txt create mode 100644 p3-disas/tests/valgrind/C_opq.txt create mode 100644 p3-disas/tests/valgrind/C_twobyte.txt create mode 100644 p3-disas/tests/valgrind/D_onebyte.txt create mode 100644 p3-disas/y86 create mode 100644 p3-disas/y86.h create mode 100644 p4-interp/.clang-format create mode 100644 p4-interp/Makefile create mode 100644 p4-interp/elf.h create mode 100644 p4-interp/main.c create mode 100644 p4-interp/main.o create mode 100644 p4-interp/p1-check.h create mode 100644 p4-interp/p1-check.o create mode 100644 p4-interp/p2-load.h create mode 100644 p4-interp/p2-load.o create mode 100644 p4-interp/p3-disas.h create mode 100644 p4-interp/p3-disas.o create mode 100644 p4-interp/p4-interp.c create mode 100644 p4-interp/p4-interp.h create mode 100644 p4-interp/p4-interp.o create mode 100644 p4-interp/tests/Makefile create mode 100644 p4-interp/tests/expected/A_bad_addr.txt create mode 100644 p4-interp/tests/expected/A_bad_addr_debug.txt create mode 100644 p4-interp/tests/expected/A_bad_insn.txt create mode 100644 p4-interp/tests/expected/A_bad_insn_debug.txt create mode 100644 p4-interp/tests/expected/A_bad_nostack.txt create mode 100644 p4-interp/tests/expected/A_both_flags.txt create mode 100644 p4-interp/tests/expected/A_cjmp_debug.txt create mode 100644 p4-interp/tests/expected/A_cmov_debug.txt create mode 100644 p4-interp/tests/expected/A_extra_params.txt create mode 100644 p4-interp/tests/expected/A_iotrap_buf2_debug.txt create mode 100644 p4-interp/tests/expected/A_iotrap_buf_debug.txt create mode 100644 p4-interp/tests/expected/A_iotrap_char_debug.txt create mode 100644 p4-interp/tests/expected/A_iotrap_dec_bad.txt create mode 100644 p4-interp/tests/expected/A_iotrap_dec_debug.txt create mode 100644 p4-interp/tests/expected/A_iotrap_escaped_string.txt create mode 100644 p4-interp/tests/expected/A_iotrap_str_debug.txt create mode 100644 p4-interp/tests/expected/A_missing_file.txt create mode 100644 p4-interp/tests/expected/A_movflags_debug.txt create mode 100644 p4-interp/tests/expected/A_opq_of_debug.txt create mode 100644 p4-interp/tests/expected/A_pushpop_rsp_debug.txt create mode 100644 p4-interp/tests/expected/A_unaligned1.txt create mode 100644 p4-interp/tests/expected/A_unaligned2.txt create mode 100644 p4-interp/tests/expected/B_func_debug.txt create mode 100644 p4-interp/tests/expected/B_memreg.txt create mode 100644 p4-interp/tests/expected/B_memreg_debug.txt create mode 100644 p4-interp/tests/expected/B_pushpop.txt create mode 100644 p4-interp/tests/expected/B_pushpop_debug.txt create mode 100644 p4-interp/tests/expected/B_simple.txt create mode 100644 p4-interp/tests/expected/B_simple_entry.txt create mode 100644 p4-interp/tests/expected/C_irmovq.txt create mode 100644 p4-interp/tests/expected/C_irmovq_debug.txt create mode 100644 p4-interp/tests/expected/C_opq.txt create mode 100644 p4-interp/tests/expected/C_opq_debug.txt create mode 100644 p4-interp/tests/expected/D_help.txt create mode 100644 p4-interp/tests/expected/D_nop_hlt.txt create mode 100644 p4-interp/tests/expected/D_nop_hlt_debug.txt create mode 100644 p4-interp/tests/inputs/bad_addr.o create mode 100644 p4-interp/tests/inputs/bad_insn.o create mode 100644 p4-interp/tests/inputs/bad_nostack.o create mode 100644 p4-interp/tests/inputs/cjmp.o create mode 100644 p4-interp/tests/inputs/cmov.o create mode 100644 p4-interp/tests/inputs/func.o create mode 100644 p4-interp/tests/inputs/iotrap_buf.o create mode 100644 p4-interp/tests/inputs/iotrap_buf2.o create mode 100644 p4-interp/tests/inputs/iotrap_char.o create mode 100644 p4-interp/tests/inputs/iotrap_char.txt create mode 100644 p4-interp/tests/inputs/iotrap_dec.o create mode 100644 p4-interp/tests/inputs/iotrap_dec.txt create mode 100644 p4-interp/tests/inputs/iotrap_str.o create mode 100644 p4-interp/tests/inputs/iotrap_str_esc.o create mode 100644 p4-interp/tests/inputs/irmovq.o create mode 100644 p4-interp/tests/inputs/memreg.o create mode 100644 p4-interp/tests/inputs/movflags.o create mode 100644 p4-interp/tests/inputs/nop_hlt.o create mode 100644 p4-interp/tests/inputs/opq.o create mode 100644 p4-interp/tests/inputs/opq_of.o create mode 100644 p4-interp/tests/inputs/pushpop.o create mode 100644 p4-interp/tests/inputs/pushpop_rsp.o create mode 100644 p4-interp/tests/inputs/simple.o create mode 100644 p4-interp/tests/inputs/simple_entry.o create mode 100644 p4-interp/tests/inputs/unaligned.o create mode 100644 p4-interp/tests/inputs/unaligned2.o create mode 100644 p4-interp/tests/integration.sh create mode 100644 p4-interp/tests/itests.include create mode 100644 p4-interp/tests/itests.txt create mode 100644 p4-interp/tests/outputs/A_bad_addr.diff create mode 100644 p4-interp/tests/outputs/A_bad_addr.txt create mode 100644 p4-interp/tests/outputs/A_bad_addr_debug.diff create mode 100644 p4-interp/tests/outputs/A_bad_addr_debug.txt create mode 100644 p4-interp/tests/outputs/A_bad_insn.diff create mode 100644 p4-interp/tests/outputs/A_bad_insn.txt create mode 100644 p4-interp/tests/outputs/A_bad_insn_debug.diff create mode 100644 p4-interp/tests/outputs/A_bad_insn_debug.txt create mode 100644 p4-interp/tests/outputs/A_bad_nostack.diff create mode 100644 p4-interp/tests/outputs/A_bad_nostack.txt create mode 100644 p4-interp/tests/outputs/A_both_flags.diff create mode 100644 p4-interp/tests/outputs/A_both_flags.txt create mode 100644 p4-interp/tests/outputs/A_cjmp_debug.diff create mode 100644 p4-interp/tests/outputs/A_cjmp_debug.txt create mode 100644 p4-interp/tests/outputs/A_cmov_debug.diff create mode 100644 p4-interp/tests/outputs/A_cmov_debug.txt create mode 100644 p4-interp/tests/outputs/A_extra_params.diff create mode 100644 p4-interp/tests/outputs/A_extra_params.txt create mode 100644 p4-interp/tests/outputs/A_iotrap_buf2_debug.diff create mode 100644 p4-interp/tests/outputs/A_iotrap_buf2_debug.txt create mode 100644 p4-interp/tests/outputs/A_iotrap_buf_debug.diff create mode 100644 p4-interp/tests/outputs/A_iotrap_buf_debug.txt create mode 100644 p4-interp/tests/outputs/A_iotrap_char_debug.diff create mode 100644 p4-interp/tests/outputs/A_iotrap_char_debug.txt create mode 100644 p4-interp/tests/outputs/A_iotrap_dec_bad.diff create mode 100644 p4-interp/tests/outputs/A_iotrap_dec_bad.txt create mode 100644 p4-interp/tests/outputs/A_iotrap_dec_debug.diff create mode 100644 p4-interp/tests/outputs/A_iotrap_dec_debug.txt create mode 100644 p4-interp/tests/outputs/A_iotrap_escaped_string.diff create mode 100644 p4-interp/tests/outputs/A_iotrap_escaped_string.txt create mode 100644 p4-interp/tests/outputs/A_iotrap_str_debug.diff create mode 100644 p4-interp/tests/outputs/A_iotrap_str_debug.txt create mode 100644 p4-interp/tests/outputs/A_missing_file.diff create mode 100644 p4-interp/tests/outputs/A_missing_file.txt create mode 100644 p4-interp/tests/outputs/A_movflags_debug.diff create mode 100644 p4-interp/tests/outputs/A_movflags_debug.txt create mode 100644 p4-interp/tests/outputs/A_opq_of_debug.diff create mode 100644 p4-interp/tests/outputs/A_opq_of_debug.txt create mode 100644 p4-interp/tests/outputs/A_pushpop_rsp_debug.diff create mode 100644 p4-interp/tests/outputs/A_pushpop_rsp_debug.txt create mode 100644 p4-interp/tests/outputs/A_unaligned1.diff create mode 100644 p4-interp/tests/outputs/A_unaligned1.txt create mode 100644 p4-interp/tests/outputs/A_unaligned2.diff create mode 100644 p4-interp/tests/outputs/A_unaligned2.txt create mode 100644 p4-interp/tests/outputs/B_func_debug.diff create mode 100644 p4-interp/tests/outputs/B_func_debug.txt create mode 100644 p4-interp/tests/outputs/B_memreg.diff create mode 100644 p4-interp/tests/outputs/B_memreg.txt create mode 100644 p4-interp/tests/outputs/B_memreg_debug.diff create mode 100644 p4-interp/tests/outputs/B_memreg_debug.txt create mode 100644 p4-interp/tests/outputs/B_pushpop.diff create mode 100644 p4-interp/tests/outputs/B_pushpop.txt create mode 100644 p4-interp/tests/outputs/B_pushpop_debug.diff create mode 100644 p4-interp/tests/outputs/B_pushpop_debug.txt create mode 100644 p4-interp/tests/outputs/B_simple.diff create mode 100644 p4-interp/tests/outputs/B_simple.txt create mode 100644 p4-interp/tests/outputs/B_simple_entry.diff create mode 100644 p4-interp/tests/outputs/B_simple_entry.txt create mode 100644 p4-interp/tests/outputs/C_irmovq.diff create mode 100644 p4-interp/tests/outputs/C_irmovq.txt create mode 100644 p4-interp/tests/outputs/C_irmovq_debug.diff create mode 100644 p4-interp/tests/outputs/C_irmovq_debug.txt create mode 100644 p4-interp/tests/outputs/C_opq.diff create mode 100644 p4-interp/tests/outputs/C_opq.txt create mode 100644 p4-interp/tests/outputs/C_opq_debug.diff create mode 100644 p4-interp/tests/outputs/C_opq_debug.txt create mode 100644 p4-interp/tests/outputs/D_help.diff create mode 100644 p4-interp/tests/outputs/D_help.txt create mode 100644 p4-interp/tests/outputs/D_nop_hlt.diff create mode 100644 p4-interp/tests/outputs/D_nop_hlt.txt create mode 100644 p4-interp/tests/outputs/D_nop_hlt_debug.diff create mode 100644 p4-interp/tests/outputs/D_nop_hlt_debug.txt create mode 100644 p4-interp/tests/private.o create mode 100644 p4-interp/tests/public.c create mode 100644 p4-interp/tests/public.o create mode 100644 p4-interp/tests/src/bad_addr.ys create mode 100644 p4-interp/tests/src/bad_nostack.ys create mode 100644 p4-interp/tests/src/cjmp.ys create mode 100644 p4-interp/tests/src/cmov.ys create mode 100644 p4-interp/tests/src/func.ys create mode 100644 p4-interp/tests/src/iotrap_buf.ys create mode 100644 p4-interp/tests/src/iotrap_buf2.ys create mode 100644 p4-interp/tests/src/iotrap_char.ys create mode 100644 p4-interp/tests/src/iotrap_dec.ys create mode 100644 p4-interp/tests/src/iotrap_str.ys create mode 100644 p4-interp/tests/src/iotrap_str_esc.ys create mode 100644 p4-interp/tests/src/irmovq.ys create mode 100644 p4-interp/tests/src/memreg.ys create mode 100644 p4-interp/tests/src/movflags.ys create mode 100644 p4-interp/tests/src/nop_hlt.ys create mode 100644 p4-interp/tests/src/opq.ys create mode 100644 p4-interp/tests/src/opq_of.ys create mode 100644 p4-interp/tests/src/pushpop.ys create mode 100644 p4-interp/tests/src/pushpop_rsp.ys create mode 100644 p4-interp/tests/src/simple.ys create mode 100644 p4-interp/tests/src/simple_entry.ys create mode 100644 p4-interp/tests/src/unaligned.ys create mode 100644 p4-interp/tests/src/unaligned2.ys create mode 100644 p4-interp/tests/testsuite create mode 100644 p4-interp/tests/testsuite.c create mode 100644 p4-interp/tests/testsuite.o create mode 100644 p4-interp/tests/utests.txt create mode 100644 p4-interp/tests/valgrind/A_bad_addr.txt create mode 100644 p4-interp/tests/valgrind/A_bad_addr_debug.txt create mode 100644 p4-interp/tests/valgrind/A_bad_insn.txt create mode 100644 p4-interp/tests/valgrind/A_bad_insn_debug.txt create mode 100644 p4-interp/tests/valgrind/A_bad_nostack.txt create mode 100644 p4-interp/tests/valgrind/A_both_flags.txt create mode 100644 p4-interp/tests/valgrind/A_cjmp_debug.txt create mode 100644 p4-interp/tests/valgrind/A_cmov_debug.txt create mode 100644 p4-interp/tests/valgrind/A_extra_params.txt create mode 100644 p4-interp/tests/valgrind/A_iotrap_buf2_debug.txt create mode 100644 p4-interp/tests/valgrind/A_iotrap_buf_debug.txt create mode 100644 p4-interp/tests/valgrind/A_iotrap_char_debug.txt create mode 100644 p4-interp/tests/valgrind/A_iotrap_dec_bad.txt create mode 100644 p4-interp/tests/valgrind/A_iotrap_dec_debug.txt create mode 100644 p4-interp/tests/valgrind/A_iotrap_escaped_string.txt create mode 100644 p4-interp/tests/valgrind/A_iotrap_str_debug.txt create mode 100644 p4-interp/tests/valgrind/A_missing_file.txt create mode 100644 p4-interp/tests/valgrind/A_movflags_debug.txt create mode 100644 p4-interp/tests/valgrind/A_opq_of_debug.txt create mode 100644 p4-interp/tests/valgrind/A_pushpop_rsp_debug.txt create mode 100644 p4-interp/tests/valgrind/A_unaligned1.txt create mode 100644 p4-interp/tests/valgrind/A_unaligned2.txt create mode 100644 p4-interp/tests/valgrind/B_func_debug.txt create mode 100644 p4-interp/tests/valgrind/B_memreg.txt create mode 100644 p4-interp/tests/valgrind/B_memreg_debug.txt create mode 100644 p4-interp/tests/valgrind/B_pushpop.txt create mode 100644 p4-interp/tests/valgrind/B_pushpop_debug.txt create mode 100644 p4-interp/tests/valgrind/B_simple.txt create mode 100644 p4-interp/tests/valgrind/B_simple_entry.txt create mode 100644 p4-interp/tests/valgrind/C_irmovq.txt create mode 100644 p4-interp/tests/valgrind/C_irmovq_debug.txt create mode 100644 p4-interp/tests/valgrind/C_opq.txt create mode 100644 p4-interp/tests/valgrind/C_opq_debug.txt create mode 100644 p4-interp/tests/valgrind/D_help.txt create mode 100644 p4-interp/tests/valgrind/D_nop_hlt.txt create mode 100644 p4-interp/tests/valgrind/D_nop_hlt_debug.txt create mode 100644 p4-interp/y86 create mode 100644 p4-interp/y86.h diff --git a/p1-check/Makefile b/p1-check/Makefile new file mode 100644 index 0000000..2aef9ec --- /dev/null +++ b/p1-check/Makefile @@ -0,0 +1,51 @@ +# +# Simple Makefile +# Mike Lam, James Madison University, August 2016 +# +# This makefile builds a simple application that contains a main module +# (specified by the EXE variable) and a predefined list of additional modules +# (specified by the MODS variable). If there are any external library +# dependencies (e.g., the math library, "-lm"), list them in the LIBS variable. +# If there are any precompiled object files, list them in the OBJS variable. +# +# By default, this makefile will build the project with debugging symbols and +# without optimization. To change this, edit or remove the "-g" and "-O0" +# options in CFLAGS and LDFLAGS accordingly. +# +# By default, this makefile build the application using the GNU C compiler, +# adhering to the C99 standard with all warnings enabled. + + +# application-specific settings and run target + +EXE=y86 +MODS=p1-check.o +OBJS= +LIBS= + +default: $(EXE) + +test: $(EXE) + TPREFIX=tests/ make -C tests test + +# compiler/linker settings + +CC=gcc +CFLAGS=-g -O0 -Wall --std=c99 -pedantic +LDFLAGS=-g -O0 + + +# build targets + +$(EXE): main.o $(MODS) $(OBJS) + $(CC) $(LDFLAGS) -o $(EXE) $^ $(LIBS) + +%.o: %.c + $(CC) -c $(CFLAGS) $< + +clean: + rm -f $(EXE) main.o $(MODS) + make -C tests clean + +.PHONY: default clean + diff --git a/p1-check/elf.h b/p1-check/elf.h new file mode 100644 index 0000000..3dc1045 --- /dev/null +++ b/p1-check/elf.h @@ -0,0 +1,57 @@ +#ifndef __CS261_ELF__ +#define __CS261_ELF__ + +#include +#include + +/* + Mini-ELF file format (byte 0 = first byte of the file) + +----------------------------------------------+ + | header (elf_hdr_t) - 16 bytes | + +----------------------------------------------+ + | program headers (elf_phdr_t) - 20 bytes each | + +----------------------------------------------+ + | program segments - variable length of bytes | + +----------------------------------------------+ + | symbol table - each entry is 4 bytes each | + +----------------------------------------------+ + | string table - variable length of strings | + +----------------------------------------------+ + + ELF header structure: + +----------------------------------------------------------------------------+ + | 0 1 | 2 3 | 4 5 | 6 7 | 8 9 | 10 11 | 12 13 14 15 | + | version | entry | phdr | numphdr | symtab | strtab | magic number | + +----------------------------------------------------------------------------+ + + Sample ELF header (all entries in hex, format is little endian): + +----------------------------------------------------------------------------+ + | 01 00 | 00 01 | 10 00 | 02 00 | 58 00 | 70 00 | 45 4c 46 00 | + | version | entry | phdr | numphdr | symtab | strtab | magic number | + +----------------------------------------------------------------------------+ + + version = 0x0001 entry = 0x0100 phdr = 0x0010 numphdr = 0x0002 + symtab = 0x0058 strtab = 0x0070 magic = "ELF\0" + + Interpretation: + + This file was created under version 1 of this format. When the program is + loaded into memory, the instruct at address 0x100 (256) will be executed + first. The first program header (which indicates segments in this file) + starts at offset 0x10 (16) into the file, and there are 2 program headers + total. The symbol table starts at offset 0x58 (88) into this file, and the + string table starts at offset 0x70 (112). The magic number is the string + "ELF\0", stored in the elf_hdr_t format as a 4-byte integer 0x00464c45 + (4607045) and is used for checking the validity of the header. +*/ +typedef struct __attribute__((__packed__)) elf { + uint16_t e_version; /* version should be 1 */ + uint16_t e_entry; /* entry point of program */ + uint16_t e_phdr_start; /* start of program headers */ + uint16_t e_num_phdr; /* number of program headers */ + uint16_t e_symtab; /* start of symbol table */ + uint16_t e_strtab; /* start of string table */ + uint32_t magic; /* ELF */ +} elf_hdr_t; + +#endif diff --git a/p1-check/main.c b/p1-check/main.c new file mode 100644 index 0000000..db63a8a --- /dev/null +++ b/p1-check/main.c @@ -0,0 +1,66 @@ +/* + * CS 261: Main driver + * + * Name: Nicholas Tamassia + */ + +#include "p1-check.h" + +/* + * helper function for printing help text + */ +void usage (char **argv) +{ + printf("Usage: %s mini-elf-file\n", argv[0]); + printf(" Options are:\n"); + printf(" -h Display usage\n"); + printf(" -H Show the Mini-ELF header\n"); +} + +int main (int argc, char **argv) +{ + int c; + bool display_header = false; + + while ((c = getopt(argc, argv, "hH")) != -1) { + switch (c) { + case 'h': + usage(argv); + return EXIT_SUCCESS; + case 'H': + display_header = true; + break; + default: + usage(argv); + return EXIT_FAILURE; + } + } + + /* Check if file path was the last argument */ + if (optind != argc - 1) { + usage(argv); + return EXIT_FAILURE; + } + + elf_hdr_t header = { 0 }; + FILE *header_file = fopen(argv[optind], "r"); + + /* Invalid file path or failed to read correct data from file */ + if (!read_header(header_file, &header)) { + printf("Failed to read file\n"); + + if (header_file != NULL) { + fclose(header_file); + } + + return EXIT_FAILURE; + } + + if (display_header) { + dump_header(&header); + } + + fclose(header_file); + + return EXIT_SUCCESS; +} diff --git a/p1-check/main.o b/p1-check/main.o new file mode 100644 index 0000000000000000000000000000000000000000..170a2cbeba72a0a1de36623fc3334c708a19112a GIT binary patch literal 9272 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 == 0x00464c45); +} + +/********************************************************************** + * OPTIONAL FUNCTIONS + *********************************************************************/ + +void dump_header (elf_hdr_t *hdr) +{ + uint8_t *byte_arr = (uint8_t*)hdr; + size_t size = sizeof(elf_hdr_t) / sizeof(byte_arr[0]); + + for (int i = 0; i < size; i++) { + printf("%02x", byte_arr[i]); + + if (i != size - 1) { + printf(" "); + } + + if (i == size / 2 - 1) { + printf(" "); + } + } + printf("\n"); + + printf("Mini-ELF version %d\n", hdr->e_version); + printf("Entry point 0x%03x\n", hdr->e_entry); + printf("There are %d program headers, starting at offset %d (0x%02x)\n", hdr->e_num_phdr, hdr->e_phdr_start, hdr->e_phdr_start); + + if (hdr->e_symtab != 0) { + printf("There is a symbol table starting at offset %d (0x%02x)\n", hdr->e_symtab, hdr->e_symtab); + } else { + printf("There is no symbol table present\n"); + } + + if (hdr->e_strtab != 0) { + printf("There is a string table starting at offset %d (0x%02x)\n", hdr->e_strtab, hdr->e_strtab); + } else { + printf("There is no string table present\n"); + } +} + diff --git a/p1-check/p1-check.h b/p1-check/p1-check.h new file mode 100644 index 0000000..5ce84e9 --- /dev/null +++ b/p1-check/p1-check.h @@ -0,0 +1,29 @@ +#ifndef __CS261_P1__ +#define __CS261_P1__ + +#include +#include +#include +#include +#include +#include + +#include "elf.h" + +/** + * @brief Load a Mini-ELF header from an open file stream + * + * @param file File stream to use for input + * @param hdr Pointer to region where the Mini-ELF header should be loaded + * @returns True if the header was successfully loaded and verified, false otherwise + */ +bool read_header (FILE *file, elf_hdr_t *hdr); + +/** + * @brief Print Mini-ELF header information to standard out + * + * @param hdr Header with info to print + */ +void dump_header (elf_hdr_t *hdr); + +#endif diff --git a/p1-check/p1-check.o b/p1-check/p1-check.o new file mode 100644 index 0000000000000000000000000000000000000000..1ed5a83552cb5ea42a3f3dfd44457784cceea133 GIT binary patch literal 9016 zcmbtZdyG`o89#Ss?#}Ga?##mCE(;U}Do>f2Wfzy{>LOj7MFg~xLRBvFxU(}db7y)V zu+Z8Ei)zqRU#h6%{l+?7*(!w8FTT5E2{l0U)vwJxX z(b$und(ZE8zSsHAx#ym9_iIC&HUu<{$)d6A*d&rHW22v$tPk?)AnRhC?A`e6e{ai- zznK}k*q#}``%-4ydpk3B_a)|r;r2H3!cU|0g~80>ZI?2Khu+SNzxoV1c&;5Tnei9T zV{>NglIC57&4&kD2OuQWL#YcoS08&rJN>-RRS&p23*u)p<6!Z{p-X7&#i5I6>%v`! zhc0IFXSg%%O#CSpf9lluuQT7)u@yXWi`?ym;HAvic`dW*S8mJ61PG~(ub!uN&(}US zbWuYCM>A`NF4>1qwn#;cD}I8-Ph7#PXdeuGoIogk;x{A4RtOTc)jZj zP!C1IaAlzozqLogCL-Y`6cBB~4A%-S=&GPVfIl>XS~SZ6O4OHh?!@MZulZ>A;}gvf z&BXc?__4F0WszG!i7zUlzVP)(3eex2f_g-N6&$n+u#$u60<7X7A;4-5774J1gB}6a za0S*QQ7~~)$z&Z}L3UC7l+XeVs=Wd8|mjD~4)d7?Q$ndD^0t|ED3a~NyBy?d^ zfSadcg1#=m=J@xa=c0Jp^N0dPow9c?E;?0x}m@463KjtX!`_d@`V3vee7 z=P?0xHsj#^NC2bdCIC+hu#3lbN`PGCVKDH57%@HE{W8c+g&zxD6XO#mScLW<(h;0G z7*#XQ6(Dy)UC4ZEqV@pPxZo2~u!9A0Xv0YO=R(u;j&Fb!V8KfFv82n}g>X;oWt8TDhnH~>5TKWXkN|xgGzqYrgNOjva?m0`f9!W)tyKgNUJ?8= zAY2sKZmkvPUk&`~8=x{x(0>ZVF^LZ#JpvUSk+?jGVO<43rp@39!RiU_2B>52gG#hi zu-S~+SPdM>@W*vlOoPWbaAX%ppJ_#Vfg`0(RL1gEabsO&rp<|ANP#1FK-w`O!IR)} zItplQO&h?BEW4?q9YeMok=E9Yxd+och_)pnh+XhxW85gfg0a=nHPKbk;f|G25bg94 z;4IFfb0fnYFn(9FX!N>hFa|x>88S^Uys@?5C%l5=h^7s9Xwc9+7jPPkwWPG`yTSh4 z$QpfBbYb^!$J%Zbi0UjDSv^-1ZUfMn*5&Bd&$La^=Epjs!8tSMOwp!>+q+-^TfqIq zDH2!$+aWygGo?cd#-dTt4|FhfvKKI&pf%!eorc-Fielq^U)YU42B&|8hu0a^5Hi*U zQAK2SFwE(fD-Cz})w-cq6S+ibwiJFM&wRNCB#M89mK@%1f_bB}2)h&Nnx_3H)`mBn zOz?xs9KM{Qq`w5TIe~bypW*W48fFX(BVI%#SPSVIYo36?HcgL22J|=!gfv%g_w?9a zeGP)hGx|Eb7X@^o9&B>A!!4A8OVf5;YZ|y#kG-q6j_I+3y6)8w$6`jJ#(X`C7%RS`-x8%k6{6v$hT4&^C(QxOrP*{i;=oWqqmM zR8JyVbv?@*7%?r=F6RMe?R;rqbY*|Ce|aJ~l1Od=8OJRQ zGwrxu+Raw8j$_q;?CoEcuH#=aUov3^%StN$iB-~`W2Y2) zj#yrLSzo$r(_I-fu!?e43amkauX_Qem+N5L$nN{nm39R}aayL`a` zgn8m*0VYurXOaaFo^K*+aA!BJU%xuBXj{&+T#p{kWN)9x@$$vQ;DQZHHvI4qi*EpU zoN+Nfg&bem;XVz1ShW4OGHtY7o7ozU;I45NaQMT*HwZ(q_Im^C+nNG7kPvNaMYGtp z$oAk98W*58^@cB{5PRoCl}8L~ZzCG`hVL)nCw5Mk=>_3c*r)^NHe zDnE~S=~vE(v`^mecfBGnx58VmAirOcUn;_5-@JnSlZt$Wzxd1I1rccyXF# zY>&eKfb86@@XwK*0}6kU@cjyp&o`C_#cd*=;=Ie)BMLA3`9p<2L-?l(e~#ijrSM0I ze?{R5vfnHG5aG8JzLV^{tMCU2%cV}vlTLbZv{9ZU{{i6{3crHvEL3X_{|DGNb%gR@NbfQN#XgoBk=1f{Fiw&^25sHbMXtZbDtvr9paBEJRBf+`M$zG zO86;-e}nu!ukcrsoihsm55ngZ{w1>WH-%3V|1X7qiExPeA;)o;@Dzo=jqq%RKSK7e zQTP(!l?sm^P_PUsd>i4q}kXrQCxGpC-S@h{v=bCHFz#m-@p5913Hip<-0 z1!Pl+mwt(6ixv4CH4Ljf`IYZ7v`->jL+<5N`}4>i%Hw;pkMIJ8zn${;G;?1wB3DV*DS%eg>2QNj{cvw1n6UK2B|X7pIqQ* zSfm)62{n8!1}7L%d5m7XZ;%3>JF$vmjs?$8Sn#<(o*r+cc*!Y#C9nEl3JqxU)9T~- z3vH_IuTRR4G$K$|j7sPghGE~HTIQYM!4FYkvyrjh;vJd{D{mx2OL z^i|SFfp4ULM_ec@Bt3bPdh-4V>C1L`A0vH</dev/null >$(UTESTOUT) + @cat $(UTESTOUT) | sed -n -e '/Checks/,$$p' | sed -e 's/^private.*:[EF]://g' + +itest: $(EXE) + @echo "========================================" + @echo " INTEGRATION TESTS" + @./integration.sh | tee $(ITESTOUT) + + +# compiler/linker settings + +CC=gcc +CFLAGS=-g -O0 -Wall --std=c99 -pedantic +LDFLAGS=-g -O0 + +CFLAGS+=-I/opt/homebrew/include -Wno-gnu-zero-variadic-macro-arguments +LDFLAGS+=-L/opt/homebrew/lib +LIBS+=-lcheck -lm -lpthread + +ifeq ($(shell uname -s),Linux) + LIBS+=-lrt -lsubunit +endif + + +# build targets + +$(TEST): $(TEST).o $(MODS) $(OBJS) + $(CC) $(LDFLAGS) -o $(TEST) $^ $(LIBS) + +%.o: %.c + $(CC) -c $(CFLAGS) $< + +clean: + rm -rf $(TEST) $(TEST).o $(MODS) $(UTESTOUT) $(ITESTOUT) outputs valgrind + +.PHONY: default clean test unittest inttest + diff --git a/p1-check/tests/expected/A_bad_magic.txt b/p1-check/tests/expected/A_bad_magic.txt new file mode 100644 index 0000000..127d3fc --- /dev/null +++ b/p1-check/tests/expected/A_bad_magic.txt @@ -0,0 +1 @@ +Failed to read file diff --git a/p1-check/tests/expected/A_bad_magic_no_H.txt b/p1-check/tests/expected/A_bad_magic_no_H.txt new file mode 100644 index 0000000..127d3fc --- /dev/null +++ b/p1-check/tests/expected/A_bad_magic_no_H.txt @@ -0,0 +1 @@ +Failed to read file diff --git a/p1-check/tests/expected/A_invalid_multi_files.txt b/p1-check/tests/expected/A_invalid_multi_files.txt new file mode 100644 index 0000000..bb71446 --- /dev/null +++ b/p1-check/tests/expected/A_invalid_multi_files.txt @@ -0,0 +1,4 @@ +Usage: ../y86 mini-elf-file + Options are: + -h Display usage + -H Show the Mini-ELF header diff --git a/p1-check/tests/expected/A_invalid_multi_params.txt b/p1-check/tests/expected/A_invalid_multi_params.txt new file mode 100644 index 0000000..bb71446 --- /dev/null +++ b/p1-check/tests/expected/A_invalid_multi_params.txt @@ -0,0 +1,4 @@ +Usage: ../y86 mini-elf-file + Options are: + -h Display usage + -H Show the Mini-ELF header diff --git a/p1-check/tests/expected/A_invalid_param.txt b/p1-check/tests/expected/A_invalid_param.txt new file mode 100644 index 0000000..bb71446 --- /dev/null +++ b/p1-check/tests/expected/A_invalid_param.txt @@ -0,0 +1,4 @@ +Usage: ../y86 mini-elf-file + Options are: + -h Display usage + -H Show the Mini-ELF header diff --git a/p1-check/tests/expected/A_missing_filename.txt b/p1-check/tests/expected/A_missing_filename.txt new file mode 100644 index 0000000..bb71446 --- /dev/null +++ b/p1-check/tests/expected/A_missing_filename.txt @@ -0,0 +1,4 @@ +Usage: ../y86 mini-elf-file + Options are: + -h Display usage + -H Show the Mini-ELF header diff --git a/p1-check/tests/expected/A_nonexistent_file.txt b/p1-check/tests/expected/A_nonexistent_file.txt new file mode 100644 index 0000000..127d3fc --- /dev/null +++ b/p1-check/tests/expected/A_nonexistent_file.txt @@ -0,0 +1 @@ +Failed to read file diff --git a/p1-check/tests/expected/A_short_header.txt b/p1-check/tests/expected/A_short_header.txt new file mode 100644 index 0000000..127d3fc --- /dev/null +++ b/p1-check/tests/expected/A_short_header.txt @@ -0,0 +1 @@ +Failed to read file diff --git a/p1-check/tests/expected/A_short_header_no_H.txt b/p1-check/tests/expected/A_short_header_no_H.txt new file mode 100644 index 0000000..127d3fc --- /dev/null +++ b/p1-check/tests/expected/A_short_header_no_H.txt @@ -0,0 +1 @@ +Failed to read file diff --git a/p1-check/tests/expected/B_help.txt b/p1-check/tests/expected/B_help.txt new file mode 100644 index 0000000..bb71446 --- /dev/null +++ b/p1-check/tests/expected/B_help.txt @@ -0,0 +1,4 @@ +Usage: ../y86 mini-elf-file + Options are: + -h Display usage + -H Show the Mini-ELF header diff --git a/p1-check/tests/expected/B_multisegment.txt b/p1-check/tests/expected/B_multisegment.txt new file mode 100644 index 0000000..ab13265 --- /dev/null +++ b/p1-check/tests/expected/B_multisegment.txt @@ -0,0 +1,6 @@ +01 00 00 01 10 00 04 00 00 00 00 00 45 4c 46 00 +Mini-ELF version 1 +Entry point 0x100 +There are 4 program headers, starting at offset 16 (0x10) +There is no symbol table present +There is no string table present diff --git a/p1-check/tests/expected/B_simple_full.txt b/p1-check/tests/expected/B_simple_full.txt new file mode 100644 index 0000000..2705cba --- /dev/null +++ b/p1-check/tests/expected/B_simple_full.txt @@ -0,0 +1,6 @@ +01 00 00 01 10 00 02 00 58 00 70 00 45 4c 46 00 +Mini-ELF version 1 +Entry point 0x100 +There are 2 program headers, starting at offset 16 (0x10) +There is a symbol table starting at offset 88 (0x58) +There is a string table starting at offset 112 (0x70) diff --git a/p1-check/tests/expected/B_stack.txt b/p1-check/tests/expected/B_stack.txt new file mode 100644 index 0000000..23ae50c --- /dev/null +++ b/p1-check/tests/expected/B_stack.txt @@ -0,0 +1,6 @@ +01 00 00 01 10 00 05 00 f4 00 16 01 45 4c 46 00 +Mini-ELF version 1 +Entry point 0x100 +There are 5 program headers, starting at offset 16 (0x10) +There is a symbol table starting at offset 244 (0xf4) +There is a string table starting at offset 278 (0x116) diff --git a/p1-check/tests/expected/B_stripped.txt b/p1-check/tests/expected/B_stripped.txt new file mode 100644 index 0000000..64103f9 --- /dev/null +++ b/p1-check/tests/expected/B_stripped.txt @@ -0,0 +1,6 @@ +01 00 00 01 10 00 02 00 00 00 00 00 45 4c 46 00 +Mini-ELF version 1 +Entry point 0x100 +There are 2 program headers, starting at offset 16 (0x10) +There is no symbol table present +There is no string table present diff --git a/p1-check/tests/expected/C_no_output.txt b/p1-check/tests/expected/C_no_output.txt new file mode 100644 index 0000000..e69de29 diff --git a/p1-check/tests/expected/C_simple_hex-2.txt b/p1-check/tests/expected/C_simple_hex-2.txt new file mode 100644 index 0000000..2705cba --- /dev/null +++ b/p1-check/tests/expected/C_simple_hex-2.txt @@ -0,0 +1,6 @@ +01 00 00 01 10 00 02 00 58 00 70 00 45 4c 46 00 +Mini-ELF version 1 +Entry point 0x100 +There are 2 program headers, starting at offset 16 (0x10) +There is a symbol table starting at offset 88 (0x58) +There is a string table starting at offset 112 (0x70) diff --git a/p1-check/tests/expected/C_simple_hex.txt b/p1-check/tests/expected/C_simple_hex.txt new file mode 100644 index 0000000..e4e878e --- /dev/null +++ b/p1-check/tests/expected/C_simple_hex.txt @@ -0,0 +1 @@ +01 00 00 01 10 00 02 00 58 00 70 00 45 4c 46 00 diff --git a/p1-check/tests/inputs/bad-no_elf.o b/p1-check/tests/inputs/bad-no_elf.o new file mode 100644 index 0000000000000000000000000000000000000000..8de3a521c09f5975984deb5d1882daa6a92080af GIT binary patch literal 137 zcmZQ%U|}33{{R0!!LWb>sA1LaGk1ZaAj}F>TEM`;SPIlt1;q6XEKDsxalL~4Vuqaj`~nE8 NEV0Ot0Z14z002VM9y$O3 literal 0 HcmV?d00001 diff --git a/p1-check/tests/inputs/bad-short_header.o b/p1-check/tests/inputs/bad-short_header.o new file mode 100644 index 0000000000000000000000000000000000000000..f9d0e54e3d9ac2650880a25683f63a7ce4dca383 GIT binary patch literal 8 PcmZQ%U|Lvii k(A61y<_C%@7&-|5{r~@ef?)v%(BM_O&)fxyf-oU@04Rhdod5s; literal 0 HcmV?d00001 diff --git a/p1-check/tests/inputs/simple.o b/p1-check/tests/inputs/simple.o new file mode 100644 index 0000000000000000000000000000000000000000..e25a53b4175c1fb267fc3f6c24afb2ddbd5adc90 GIT binary patch literal 146 zcmZQ%U|IMN0Y/dev/null +if [[ $? -ne 0 ]]; then + TIMEOUT="gtimeout" +fi + +# Valgrind additional output flags +VG_FLAGS="--leak-check=full --track-origins=yes" + +function run_test { + + # parameters + TAG=$1 + ARGS=$2 + PTAG=$(printf '%-30s' "$TAG") + + # file paths + OUTPUT=outputs/$TAG.txt + DIFF=outputs/$TAG.diff + EXPECT=expected/$TAG.txt + VALGRND=valgrind/$TAG.txt + + # run test with timeout + $TIMEOUT $TIMEOUT_INTERVAL $EXE $ARGS 2>/dev/null >"$OUTPUT" + if [ "$?" -lt 124 ]; then + + # no timeout; compare output to the expected version + diff -u "$OUTPUT" "$EXPECT" >"$DIFF" + if [ -s "$DIFF" ]; then + + # try alternative solution (if it exists) + EXPECT=expected/$TAG-2.txt + if [ -e "$EXPECT" ]; then + diff -u "$OUTPUT" "$EXPECT" >"$DIFF" + if [ -s "$DIFF" ]; then + echo "$PTAG FAIL (see ${TPREFIX}$DIFF for details)" + else + echo "$PTAG pass" + fi + else + echo "$PTAG FAIL (see ${TPREFIX}$DIFF for details)" + fi + else + echo "$PTAG pass" + fi + + # run valgrind + $TIMEOUT $TIMEOUT_INTERVAL valgrind $VG_FLAGS $EXE $ARGS &>$VALGRND + else + echo "$PTAG FAIL (crash or timeout)" + fi +} + +# initialize output folders +mkdir -p outputs +mkdir -p valgrind +rm -f outputs/* valgrind/* + +# run individual tests +source itests.include + +# check for memory leaks +LEAK=`cat valgrind/*.txt | grep 'definitely lost' | grep -v ' 0 bytes in 0 blocks'` +if [ -z "$LEAK" ]; then + echo "No memory leak found." +else + echo "Memory leak(s) found. See files listed below for details." + grep 'definitely lost' valgrind/*.txt | sed -e 's/:.*$//g' | awk "{print \" - ${TPREFIX}\" \$0}" +fi + +# check for uninitialized values +LEAK=`cat valgrind/*.txt | grep 'uninitialised value'` +if [ -z "$LEAK" ]; then + echo "No uninitialized value found." +else + echo "Uninitialized value(s) found. See files listed below for details." + grep 'uninitialised value' valgrind/*.txt | sed -e 's/:.*$//g' | awk "{print \" - ${TPREFIX}\" \$0}" +fi + diff --git a/p1-check/tests/itests.include b/p1-check/tests/itests.include new file mode 100644 index 0000000..5071953 --- /dev/null +++ b/p1-check/tests/itests.include @@ -0,0 +1,21 @@ +# list of integration tests +# format: run_test +# used as the root for all filenames (i.e., "expected/$TAG.txt") +# command-line arguments to test + +run_test C_simple_hex "-H inputs/simple.o" +run_test C_no_output "inputs/simple.o" +run_test B_help "-h" +run_test B_simple_full "-H inputs/simple.o" +run_test B_multisegment "-H inputs/multiseg.o" +run_test B_stripped "-H inputs/stripped.o" +run_test B_stack "-H inputs/stack.o" +run_test A_invalid_param "-x" +run_test A_invalid_multi_files "-H inputs/simple.o inputs/multiseg.o" +run_test A_invalid_multi_params "-H inputs/simple.o -H inputs/multiseg.o" +run_test A_missing_filename "-H" +run_test A_nonexistent_file "-H nonexist.o" +run_test A_bad_magic "-H inputs/bad-no_elf.o" +run_test A_short_header "-H inputs/bad-short_header.o" +run_test A_bad_magic_no_H "inputs/bad-no_elf.o" +run_test A_short_header_no_H "inputs/bad-short_header.o" diff --git a/p1-check/tests/private.o b/p1-check/tests/private.o new file mode 100644 index 0000000000000000000000000000000000000000..7cb1103a2560963610b04f6c6bb5ebf398aa5cb3 GIT binary patch literal 8528 zcmc&(e{38_6`u1oF3>hk0yKrR%_eOVrzMxW)JZAe_8fE0QJox<*r=^4)|b0I`xN`` z*xQR@h>4{j+LP515K{S3p&(T%5=iAA+B8URAc(3`P?4x`k@#T{MGlDo2_yoFFz?O2 zxA$&t*A49-JZX1lzxm$xX5P%s&F-DZb*Ki)pn%tyh2V zx&7Z`+2)(slb6%Y*$c(&{B?KrLVdQGxsp1UeR2(Qv(29drB{}HB=bi0LeX{QUFjh#C4nalk!TUBGEGtcdG zp>s>8&MBB#SBlwt{E6!A>QrlYYN_d2_3C*s=dI@KUnHjqz&5je5LHo*shZ=+LLf{T)SSLu1z_r=9Z7)K+_Bv%<;zn}QIgz(b^N%s z#VrJtev^cbGgV4B_EE>Jqilb_l@iTGM8Du4orIN{j*}Xr}Go#f-ja#_U-K}^z8{Gb)p7r z$91c2+c4GgFbG9^cr2H*^X^1r8gf$i(<=J~smC;7{{3QGUPE-tl|t2Zoq}iUX7Sh` z&KGx9sx}T&Rr!OCp=BsJzF{r)s#Uu_S#>?BsR5dLpgiKwI_}3?x6dwBh#YcRwH2#+ zhKLF122l@HCbD<;FhFl_(e;76?9vBQmu*RWElL|-DgGu6KtNmIMA?c!NK)P#dJMD+G2Fidr;i4pv69WP{od|i*35` z`gfgzO5Bd}mh>MGL}k{l`(oGNP2KTJT|m)wA45kl7f)Q@RmN&v{}|$6OLz+E7lZoa zh=VQRDWv`x#KC@pr=b3I?T=8D#Y1=4m?OPg?r@8%?hXv|6BD>aj62}kCG>S}s4lLc z#;%?3r}EA!GZd$t8)w358*%^_UG%H8t+zVxT0D5tW*zl0Ch?< zF_sA53pncF971EAM>W1ioyM^S+wNafP2=5aobD~UewFlxaKeEt>9bNlApKkDp7no0 z`b(t0h3fGV4`#0bHBRE~FtFcaApUJ!g+JACbz=norVjifw3BlqD_0`$HPD|h{`v^~ zwg`Mz1fGt-hXLOJBe{*Hw0=gQ!H-4o%MtiY1g=)uSlFKD)V)<1u%xddpu$%5&|gCe zb?tlze9h!grt#ysN&`%0L}-JiY;pqXhcct~=)k^Q##W_j&8aBZKe$KiTD4s9l-OS?yKuzDy^HJF zv{STkiw0<6@`#2Ym>}>@)W&&JS6(4sckBWvdXBRFyL_>zYgN5b_8eQ^B8{IxUN2y} z!n&r^R;s`kA2i1A^l#O@bj20qgK%73@$DhPna}IgLBZc7_}l>0xmDo&+r>KgQiL|| zUxN0q{?`ac9o$=Rd!CQrzbN>!J+B%3N9g{y2F`IW2^|^tpAq~O!IyD2!up5C{pJ2| zGjNW3FX3i?AB^Dd7knAlHu%r_%}^Bs=eVB}I9_pb*3D#iVefpgp&a6rJ!JZ~hN$BX%!1z*O!&*0xl@rDeXbq)y~*ui(pee%#={PVGEo;H)z)bYwdpH~3p2HrkgB+@k(`UFgX5^ScKB z8RDNcaBj~}47`u{7li(1Xb0!*cLJAr`<2zyKY=szTpD}Qc;?4*ina_EH&-3pa2F~q#*1$QR-xK;WpDzns=JQvE4(tD3 z@MS(%3_j;`E$u(Cn|QF!Cc@E8=F<|m%;)`v4nO|`g1-f{c%I}0AK%^>uLwSl3F8fe zPu)>ZNASO8@c9kmTm=6WgU|2P7bEyr1%8KUCls~eV@^{?-}8GE;9fy8o$ruSufP%F_spcgk^yPWMEZ|a0$y_5`UDyEb1`k51VA>?^A$<#ph2l z7Su~)f5tuug|PS|IIv*j`V8N%;EKNN&*N7D4CC{91x0NZeG +#include +#include + +#include + +#include "../p1-check.h" + +/* read_header is declared and defined */ +START_TEST (C_sanity_read_header_is_declared) +{ + elf_hdr_t elf; + FILE *fp = fopen ("inputs/simple.o", "r"); + ck_assert (fp != NULL); + bool rc = read_header (fp, &elf); + ck_assert (rc || !rc); +} +END_TEST + +void public_tests (Suite *s) +{ + TCase *tc_public = tcase_create ("Public"); + tcase_add_test (tc_public, C_sanity_read_header_is_declared); + suite_add_tcase (s, tc_public); +} + diff --git a/p1-check/tests/testsuite.c b/p1-check/tests/testsuite.c new file mode 100644 index 0000000..717c193 --- /dev/null +++ b/p1-check/tests/testsuite.c @@ -0,0 +1,34 @@ +#include +#include +#include +#include +#include +#include + +#include + +extern void public_tests (Suite *s); +extern void private_tests (Suite *s); + +Suite * test_suite (void) +{ + Suite *s = suite_create ("Default"); + public_tests (s); + private_tests (s); + return s; +} + +void run_testsuite (void) +{ + Suite *s = test_suite (); + SRunner *sr = srunner_create (s); + srunner_run_all (sr, CK_NORMAL); + srunner_free (sr); +} + +int main (void) +{ + srand((unsigned)time(NULL)); + run_testsuite (); + return EXIT_SUCCESS; +} diff --git a/p1-check/y86 b/p1-check/y86 new file mode 100644 index 0000000000000000000000000000000000000000..60ee7c4ee9d6b9dff538e00c751d7140f9852231 GIT binary patch literal 21728 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 XRk?yo_mI=;cU~tX-f2^?q3nME0<$`M literal 0 HcmV?d00001 diff --git a/p2-load/Makefile b/p2-load/Makefile new file mode 100644 index 0000000..238dba1 --- /dev/null +++ b/p2-load/Makefile @@ -0,0 +1,51 @@ +# +# Simple Makefile +# Mike Lam, James Madison University, August 2016 +# +# This makefile builds a simple application that contains a main module +# (specified by the EXE variable) and a predefined list of additional modules +# (specified by the MODS variable). If there are any external library +# dependencies (e.g., the math library, "-lm"), list them in the LIBS variable. +# If there are any precompiled object files, list them in the OBJS variable. +# +# By default, this makefile will build the project with debugging symbols and +# without optimization. To change this, edit or remove the "-g" and "-O0" +# options in CFLAGS and LDFLAGS accordingly. +# +# By default, this makefile build the application using the GNU C compiler, +# adhering to the C99 standard with all warnings enabled. + + +# application-specific settings and run target + +EXE=y86 +MODS=p2-load.o +OBJS=p1-check.o +LIBS= + +default: $(EXE) + +test: $(EXE) + TPREFIX=tests/ make -C tests test + +# compiler/linker settings + +CC=gcc +CFLAGS=-g -O0 -Wall --std=c99 -pedantic +LDFLAGS=-g -O0 + + +# build targets + +$(EXE): main.o $(MODS) $(OBJS) + $(CC) $(LDFLAGS) -o $(EXE) $^ $(LIBS) + +%.o: %.c + $(CC) -c $(CFLAGS) $< + +clean: + rm -f $(EXE) main.o $(MODS) + make -C tests clean + +.PHONY: default clean + diff --git a/p2-load/elf.h b/p2-load/elf.h new file mode 100644 index 0000000..92d56bf --- /dev/null +++ b/p2-load/elf.h @@ -0,0 +1,98 @@ +#ifndef __CS261_ELF__ +#define __CS261_ELF__ + +#include +#include + +#include "y86.h" + +/* + Mini-ELF file format (byte 0 = first byte of the file) + +----------------------------------------------+ + | header (elf_hdr_t) - 16 bytes | + +----------------------------------------------+ + | program headers (elf_phdr_t) - 20 bytes each | + +----------------------------------------------+ + | program segments - variable length of bytes | + +----------------------------------------------+ + | symbol table - each entry is 4 bytes each | + +----------------------------------------------+ + | string table - variable length of strings | + +----------------------------------------------+ + + ELF header structure: + +----------------------------------------------------------------------------+ + | 0 1 | 2 3 | 4 5 | 6 7 | 8 9 | 10 11 | 12 13 14 15 | + | version | entry | phdr | numphdr | symtab | strtab | magic number | + +----------------------------------------------------------------------------+ + + Sample ELF header (all entries in hex, format is little endian): + +----------------------------------------------------------------------------+ + | 01 00 | 00 01 | 10 00 | 05 00 | ac 00 | c2 00 | 45 4c 46 00 | + | version | entry | phdr | numphdr | symtab | strtab | magic number | + +----------------------------------------------------------------------------+ + + version = 0x0001 entry = 0x0100 phdr = 0x0010 numphdr = 0x0005 + symtab = 0x00ac strtab = 0x00c2 magic = "ELF\0" + + Interpretation: + This file was created under version 1 of this format. When the program is + loaded into memory, the instruct at address 0x100 (256) will be executed + first. The first program header (which indicates segments in this file) + starts at offset 0x10 (16) into the file, and there are 5 program headers + total. The symbol table starts at offset 0xac (172) into this file, and the + string table starts at offset 0xc2 (194). The magic number is the string + "ELF\0" and is for error checking. +*/ +typedef struct __attribute__((__packed__)) elf { + uint16_t e_version; /* version should be 1 */ + uint16_t e_entry; /* entry point of program */ + uint16_t e_phdr_start; /* start of program headers */ + uint16_t e_num_phdr; /* number of program headers */ + uint16_t e_symtab; /* start of symbol table */ + uint16_t e_strtab; /* start of string table */ + uint32_t magic; /* ELF */ +} elf_hdr_t; + +typedef enum { + DATA, CODE, STACK, HEAP, UNKNOWN +} elf_segtype_t; + +/* + ELF program header structure (describing segments): + +-----------------------------------------------------------------------+ + | 0 1 2 3 | 4 5 6 7 | 8 9 10 11 | 12 13 | 14 15 | 16 17 18 19 | + | offset | size | virt addr | type | flags | magic number| + +-----------------------------------------------------------------------+ + + Flags store segment permissions as RWX (read/write/execute) in binary. + Examples: 100 (binary) = 4 (decimal/hex) = read-only (R ) + 101 (binary) = 5 (decimal/hex) = read-execute (R X) + 110 (binary) = 6 (decimal/hex) = read-write (RW ) + + Sample ELF program header (all entries in hex, format is little endian): + +-----------------------------------------------------------------------+ + | 74 00 00 00 | 12 00 00 00 | 00 01 00 00 | 01 00 | 05 00 | ef be ad de | + | offset | size | virt addr | type | flags | magic number| + +-----------------------------------------------------------------------+ + + offset = 0x00000074 size = 0x00000012 virt addr = 0x00000100 + type = 0x0001 (CODE) flags = 0x0005 (RX) magic = 0xDEADBEEF + + Interpretation: + The segment starts at offset 0x74 (116) in the file, and it is 0x12 (18) + bytes in size. It will be loaded into memory address 0x100 (256). Since it + is a CODE segment, it needs to have read-execute (RX) permissions attached. + The magic number is the value 0xDEADBEEF and is for error checking. +*/ +typedef struct __attribute__((__packed__)) elf_phdr { + uint32_t p_offset; /* beginning of the segment in the file (in bytes) */ + uint32_t p_size; /* number of bytes in the segment */ + uint32_t p_vaddr; /* intended virtual address of the beginning of + the segment in a running program's memory */ + uint16_t p_type; /* segment type (e.g., code, data, etc.) */ + uint16_t p_flags; /* permissions flags */ + uint32_t magic; /* DEADBEEF */ +} elf_phdr_t; + +#endif diff --git a/p2-load/main.c b/p2-load/main.c new file mode 100644 index 0000000..cf671d7 --- /dev/null +++ b/p2-load/main.c @@ -0,0 +1,134 @@ +/* + * CS 261: Main driver + * + * Name: Nicholas Tamassia + * This code was developed in compliance with the JMU Honor Code. + */ + +#include "p1-check.h" +#include "p2-load.h" + +/* Helper function for printing help text */ +void usage (char **argv) +{ + printf("Usage: %s mini-elf-file\n", argv[0]); + printf(" Options are:\n"); + printf(" -h Display usage\n"); + printf(" -H Show the Mini-ELF header\n"); + printf(" -a Show all with brief memory\n"); + printf(" -f Show all with full memory\n"); + printf(" -s Show the program headers\n"); + printf(" -m Show the memory contents (brief)\n"); + printf(" -M Show the memory contents (full)\n"); +} + +void exit_file_error(FILE* file) { + if (file) { + fclose(file); + } + + printf("Failed to read file\n"); + exit(EXIT_FAILURE); +} + +int main (int argc, char **argv) +{ + int c; + bool show_elf_header = false; + bool show_program_header = false; + bool show_memory_brief = false; + bool show_memory_full = false; + + while ((c = getopt(argc, argv, "hHafsmM")) != -1) { + switch (c) { + case 'h': + usage(argv); + return EXIT_SUCCESS; + case 'H': + show_elf_header = true; + break; + case 'a': + show_elf_header = true; + show_program_header = true; + show_memory_brief = true; + break; + case 'f': + show_elf_header = true; + show_program_header = true; + show_memory_full = true; + break; + case 's': + show_program_header = true; + break; + case 'm': + show_memory_brief = true; + break; + case 'M': + show_memory_full = true; + break; + default: + usage(argv); + return EXIT_FAILURE; + } + } + + bool invalid_arguments = optind != argc - 1; /* File path was not the last argument */ + bool memory_flag_conflict = show_memory_brief && show_memory_full; /* Attempted to ask for brief and full memory at same time */ + + if (invalid_arguments || memory_flag_conflict) { + usage(argv); + return EXIT_FAILURE; + } + + elf_hdr_t header = { 0 }; + FILE *header_file = fopen(argv[optind], "r"); + + /* Read contents of header_file into header */ + if (!read_header(header_file, &header)) { + exit_file_error(header_file); + } + + if (show_elf_header) { + dump_header(&header); + } + + elf_phdr_t phdrs[header.e_num_phdr]; + memset(phdrs, 0, sizeof(phdrs)); + + /* Read program headers into phdrs array */ + for (int i = 0; i < header.e_num_phdr; i++) { + if (!read_phdr(header_file, header.e_phdr_start + i * sizeof(elf_phdr_t), &phdrs[i])) { + exit_file_error(header_file); + } + } + + if (show_program_header) { + dump_phdrs(header.e_num_phdr, phdrs); + } + + byte_t memory[MEMSIZE]; + memset(memory, 0, MEMSIZE); + + /* Read memory segments into memory array */ + for (int i = 0; i < header.e_num_phdr; i++) { + if (!load_segment(header_file, memory, &phdrs[i])) { + exit_file_error(header_file); + } + } + + if (show_memory_brief) { + for (int i = 0; i < header.e_num_phdr; i++) { + uint32_t start = phdrs[i].p_vaddr; + uint32_t end = start + phdrs[i].p_size; + + dump_memory(memory, start, end); + } + } else if (show_memory_full) { + dump_memory(memory, 0, MEMSIZE); + } + + fclose(header_file); + + return EXIT_SUCCESS; +} + diff --git a/p2-load/main.o b/p2-load/main.o new file mode 100644 index 0000000000000000000000000000000000000000..43847a2ac7480f1f0a46d2df6bbd12f4c2d71d1a GIT binary patch literal 15136 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 vkan_T)lkM;QrAaJUwZ%&CoaXS$p2HVlm_Cj +#include +#include +#include +#include +#include + +#include "elf.h" + +/** + * @brief Load a Mini-ELF header from an open file stream + * + * @param file File stream to use for input + * @param hdr Pointer to region where the Mini-ELF header should be loaded + * @returns True if the header was successfully loaded and verified, false otherwise + */ +bool read_header (FILE *file, elf_hdr_t *hdr); + +/** + * @brief Print Mini-ELF header information to standard out + * + * @param hdr Header with info to print + */ +void dump_header (elf_hdr_t *hdr); + +#endif diff --git a/p2-load/p1-check.o b/p2-load/p1-check.o new file mode 100644 index 0000000000000000000000000000000000000000..a943a48b0294ee909f5e10c422409af42e455650 GIT binary patch literal 3088 zcmbtWUuYvm82>iuwK29$JyZ@(bU-RsxGqUKq5e6|wQjoyJx|V71Ruh-*)-8+6E?Gw z3aw&P2&Guxd{pq&*J}~<3J2bu+{5|kixfd9)`uSUA&98ow>y(grwNtwgV~wy_x*m~ zd^0;c$@|vKRLn3yngK7tp(jy*jl|(N8xFHD2m|m(>d8On?B=g_QWm?>GJ?k_yq4|1h_yh_w?(YIQ(F{o z>=<`$DswQLV;AYWcGGIzvJQx|ccrm%0ISIx44p75`iVgC*Q^73;U3Cbws9|Y9a7h~ zo8Q~(r$~*Jgfm4#>%c&9YW3?INtujhOKn1Gvx_E*XJaQ3dQzLW1s8`@4W`ZZo+L{Y zKHlc0U?&cRIP6l;Ug~gZ(I!VzCDlyH!%R5*ubDRP+@w828%~ea;Y!IXjp9pV@49}i zRPoqwkOa%){xYjpN*-tF`f!~#5@5FI`Yv;@4F|01R~CJz%!;m)N9B1|tbG4~uKp7v<+ZmGS`j zRbe~-^yK98?A+XZ;PHTEGUf#{J(>wZH?ul6W~MKU2$*W=!A2hloz3Z2=O6~KO;{Wo z8I2h>83!=JI6|Qr!k6FhqY{7b8W{B<<7|IlVgrLuAWn@ePY-Kw=#$vwKyU0VWJIwS z2}fI}WHKKA$Os8xr1K-*@dlwagkRh-QM|pnqoH`X+M^hGap*k`hIn5W92eBV;_%Qh zl$Ls0sXyEs#0Id@d(rJ_1Ulg(h*KV^5BCtUXS?t(cEMlif`gCWPA>X@AU8d8b>h-Y z?&{Rk>(*>;_R_?Rm4gCNARm;gl2;A*LecS|iU*t*0Nom<5A6lf_hA1pw!i*~>@x+Y zJ&^d9UGQ%Oj^~!nZkzvu!XH%dpA}rqe_!A-54{(%zoRZZ8ET%>f*|>i3*J)#r**0P z%NqZ@;J?v@|DncT68ulQ@ITl1UkUyf3O|LI+|Roj|E}Qwr0~`Hf6@3o!v9U-tNEG8 zNBbivA(GYbyzs%qYZk9S?71KHMLF`_CCB7$or9ToxC7>Vtp=uFiJXN>xl9+U=~cLE z;vF`MxBJ37!e8_P6R-cO>+@yQP$svSE8wqzD`);+Jwr9EPro6uh>_h_7mvQ?!db-V ztYopNmJkVdgn+&g8p@mHj37TFaCu(~7&5f+9Za8}&LQP|P<;lqlvAH>TmU25gtC5= zg!UXhiIR@o_R|ps$?rr4WIEYTU_g!~hx&DWK_aMguOUvixL*H;(7z^hveWB-8v~S6 z*Y61Zn^GuxT~DX5)BE2QKP_@!=>5~Lht$jW-)U}|YMhdyeIORxkK;~y!a8l$miXzs YOi2{e_wNymb<&>^g|`3jh#b29U%e&kb^rhX literal 0 HcmV?d00001 diff --git a/p2-load/p2-load.c b/p2-load/p2-load.c new file mode 100644 index 0000000..8beb505 --- /dev/null +++ b/p2-load/p2-load.c @@ -0,0 +1,96 @@ +/* + * CS 261 PA2: Mini-ELF loader + * + * Name: Nicholas Tamassia + * This code was developed in compliance with the JMU Honor Code. + */ + +#include "p2-load.h" + +/********************************************************************** + * REQUIRED FUNCTIONS + *********************************************************************/ + +bool read_phdr (FILE *file, uint16_t offset, elf_phdr_t *phdr) +{ + if (!file || !phdr || fseek(file, offset, SEEK_SET) != 0) { + return false; + } + + return ((fread(phdr, sizeof(elf_phdr_t), 1, file) == 1) && phdr->magic == 0xDEADBEEF); +} + +bool load_segment (FILE *file, byte_t *memory, elf_phdr_t *phdr) +{ + if (!file || !memory || !phdr) { + return false; + } + + if (phdr->p_vaddr + phdr->p_size > MEMSIZE || fseek(file, phdr->p_offset, SEEK_SET) != 0) { + return false; + } + + if ((fread(memory + phdr->p_vaddr, phdr->p_size, 1, file) != 1) && phdr->p_size != 0) { + return false; + } + + return true; +} + +/********************************************************************** + * OPTIONAL FUNCTIONS + *********************************************************************/ + +void dump_phdrs (uint16_t numphdrs, elf_phdr_t *phdrs) +{ + printf(" Segment Offset Size VirtAddr Type Flags\n"); + + for (int i = 0; i < numphdrs; i++) { + elf_phdr_t phdr = phdrs[i]; + char flags[4] = "RWX"; + + for (int j = 2; j >= 0; j--) { + if ((phdr.p_flags & (1 << (2 - j))) == 0) { + flags[j] = ' '; + } + } + + printf(" %02d 0x%04x 0x%04x 0x%04x %-10s%s\n", i, phdr.p_offset, phdr.p_size, phdr.p_vaddr, p_type_mapper(phdr.p_type), flags); + } +} + +char* p_type_mapper(uint16_t type) { + switch (type) { + case 0: return "DATA"; break; + case 1: return "CODE"; break; + case 2: return "STACK"; break; + case 3: return "HEAP"; break; + default: return "UNKNOWN"; break; + } +} + +void dump_memory (byte_t *memory, uint16_t start, uint16_t end) +{ + printf("Contents of memory from %04x to %04x:\n", start, end); + + int aligned_start = start - (start % 16); + + for (int i = aligned_start; i < end; i++) { + if (i % 16 == 0) { + printf(" %04x ", i); + } + + if (i >= start) { + printf(" %02x", memory[i]); + } else { + printf(" "); + } + + if (i % 16 == 15 || i == end - 1) { + printf("\n"); + } else if (i % 16 == 7) { + printf(" "); + } + } +} + diff --git a/p2-load/p2-load.h b/p2-load/p2-load.h new file mode 100644 index 0000000..07334bd --- /dev/null +++ b/p2-load/p2-load.h @@ -0,0 +1,54 @@ +#ifndef __CS261_P2__ +#define __CS261_P2__ + +#include +#include +#include +#include +#include +#include + +#include "elf.h" +#include "y86.h" + +/** + * @brief Load a Mini-ELF program header from an open file stream + * + * @param file File stream to use for input + * @param offset Byte offset in file where the program header is located + * @param phdr Pointer to memory where the Mini-ELF program header should be loaded + * @returns True if the header was successfully loaded and verified, false otherwise + */ +bool read_phdr (FILE *file, uint16_t offset, elf_phdr_t *phdr); + +/** + * @brief Load a Mini-ELF program segment from an open file stream + * + * @param file File stream to use for input + * @param memory Pointer to the beginning of the Y86 address space into which + * the segment should be loaded + * @param phdr Pointer to the program header for the segment that should be loaded + * @returns True if the segment was successfully loaded, false otherwise + */ +bool load_segment (FILE *file, byte_t *memory, elf_phdr_t *phdr); + +/** + * @brief Print Mini-ELF program header information to standard out + * + * @param numphdrs Number of program headers to print + * @param phdrs Pointer to array of program headers with info to print + */ +void dump_phdrs (uint16_t numphdrs, elf_phdr_t *phdrs); + +char* p_type_mapper(uint16_t type); + +/** + * @brief Print a portion of a Y86 address space + * + * @param memory Pointer to the beginning of the Y86 address space + * @param start Byte offset where printing should begin + * @param end Byte offset where printing should end + */ +void dump_memory (byte_t *memory, uint16_t start, uint16_t end); + +#endif diff --git a/p2-load/p2-load.o b/p2-load/p2-load.o new file mode 100644 index 0000000000000000000000000000000000000000..2d96423df96d9718450f1864cc4ca53c8527c2c9 GIT binary patch literal 11080 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 I<+}d=0Hl2rI{*Lx literal 0 HcmV?d00001 diff --git a/p2-load/tests/Makefile b/p2-load/tests/Makefile new file mode 100644 index 0000000..c38cb76 --- /dev/null +++ b/p2-load/tests/Makefile @@ -0,0 +1,81 @@ +# +# Simple Test Makefile +# Mike Lam, James Madison University, August 2016 +# +# This version of the Makefile includes support for building a test suite. The +# recommended framework is Check (http://check.sourceforge.net/). To build and +# run the test suite, execute the "test" target. The test suite must be located +# in a module called "testsuite". The MODS, LIBS, and OBJS variables work as +# they do in the main Makefile. +# +# To change the default build target (which executes when you just type +# "make"), change the right-hand side of the definition of the "default" +# target. +# +# By default, this makefile will build the project with debugging symbols and +# without optimization. To change this, edit or remove the "-g" and "-O0" +# options in CFLAGS and LDFLAGS accordingly. +# +# By default, this makefile build the application using the GNU C compiler, +# adhering to the C99 standard with all warnings enabled. + + +# application-specific settings and run target + +EXE=../y86 +TEST=testsuite +MODS=public.o +OBJS=../p1-check.o ../p2-load.o private.o +LIBS= + +UTESTOUT=utests.txt +ITESTOUT=itests.txt + +default: $(TEST) + +$(EXE): + make -C ../ + +test: utest itest + @echo "========================================" + +utest: $(EXE) $(TEST) + @echo "========================================" + @echo " UNIT TESTS" + @./$(TEST) 2>/dev/null >$(UTESTOUT) + @cat $(UTESTOUT) | sed -n -e '/Checks/,$$p' | sed -e 's/^private.*:[EF]://g' + +itest: $(EXE) + @echo "========================================" + @echo " INTEGRATION TESTS" + @./integration.sh | tee $(ITESTOUT) + + +# compiler/linker settings + +CC=gcc +CFLAGS=-g -O0 -Wall --std=c99 -pedantic +LDFLAGS=-g -O0 + +CFLAGS+=-I/opt/homebrew/include -Wno-gnu-zero-variadic-macro-arguments +LDFLAGS+=-L/opt/homebrew/lib +LIBS+=-lcheck -lm -lpthread + +ifeq ($(shell uname -s),Linux) + LIBS+=-lrt -lsubunit +endif + + +# build targets + +$(TEST): $(TEST).o $(MODS) $(OBJS) + $(CC) $(LDFLAGS) -o $(TEST) $^ $(LIBS) + +%.o: %.c + $(CC) -c $(CFLAGS) $< + +clean: + rm -rf $(TEST) $(TEST).o $(MODS) $(UTESTOUT) $(ITESTOUT) outputs valgrind + +.PHONY: default clean test unittest inttest + diff --git a/p2-load/tests/expected/A_bad_phdr_magic.txt b/p2-load/tests/expected/A_bad_phdr_magic.txt new file mode 100644 index 0000000..127d3fc --- /dev/null +++ b/p2-load/tests/expected/A_bad_phdr_magic.txt @@ -0,0 +1 @@ +Failed to read file diff --git a/p2-load/tests/expected/A_bad_phdr_short.txt b/p2-load/tests/expected/A_bad_phdr_short.txt new file mode 100644 index 0000000..127d3fc --- /dev/null +++ b/p2-load/tests/expected/A_bad_phdr_short.txt @@ -0,0 +1 @@ +Failed to read file diff --git a/p2-load/tests/expected/A_bad_phdr_vaddr.txt b/p2-load/tests/expected/A_bad_phdr_vaddr.txt new file mode 100644 index 0000000..127d3fc --- /dev/null +++ b/p2-load/tests/expected/A_bad_phdr_vaddr.txt @@ -0,0 +1 @@ +Failed to read file diff --git a/p2-load/tests/expected/A_brief_full.txt b/p2-load/tests/expected/A_brief_full.txt new file mode 100644 index 0000000..d7838bc --- /dev/null +++ b/p2-load/tests/expected/A_brief_full.txt @@ -0,0 +1,9 @@ +Usage: ../y86 mini-elf-file + Options are: + -h Display usage + -H Show the Mini-ELF header + -a Show all with brief memory + -f Show all with full memory + -s Show the program headers + -m Show the memory contents (brief) + -M Show the memory contents (full) diff --git a/p2-load/tests/expected/A_extra_params.txt b/p2-load/tests/expected/A_extra_params.txt new file mode 100644 index 0000000..d7838bc --- /dev/null +++ b/p2-load/tests/expected/A_extra_params.txt @@ -0,0 +1,9 @@ +Usage: ../y86 mini-elf-file + Options are: + -h Display usage + -H Show the Mini-ELF header + -a Show all with brief memory + -f Show all with full memory + -s Show the program headers + -m Show the memory contents (brief) + -M Show the memory contents (full) diff --git a/p2-load/tests/expected/A_full_conflict.txt b/p2-load/tests/expected/A_full_conflict.txt new file mode 100644 index 0000000..d7838bc --- /dev/null +++ b/p2-load/tests/expected/A_full_conflict.txt @@ -0,0 +1,9 @@ +Usage: ../y86 mini-elf-file + Options are: + -h Display usage + -H Show the Mini-ELF header + -a Show all with brief memory + -f Show all with full memory + -s Show the program headers + -m Show the memory contents (brief) + -M Show the memory contents (full) diff --git a/p2-load/tests/expected/A_mem_conflict.txt b/p2-load/tests/expected/A_mem_conflict.txt new file mode 100644 index 0000000..d7838bc --- /dev/null +++ b/p2-load/tests/expected/A_mem_conflict.txt @@ -0,0 +1,9 @@ +Usage: ../y86 mini-elf-file + Options are: + -h Display usage + -H Show the Mini-ELF header + -a Show all with brief memory + -f Show all with full memory + -s Show the program headers + -m Show the memory contents (brief) + -M Show the memory contents (full) diff --git a/p2-load/tests/expected/A_missing_file.txt b/p2-load/tests/expected/A_missing_file.txt new file mode 100644 index 0000000..d7838bc --- /dev/null +++ b/p2-load/tests/expected/A_missing_file.txt @@ -0,0 +1,9 @@ +Usage: ../y86 mini-elf-file + Options are: + -h Display usage + -H Show the Mini-ELF header + -a Show all with brief memory + -f Show all with full memory + -s Show the program headers + -m Show the memory contents (brief) + -M Show the memory contents (full) diff --git a/p2-load/tests/expected/A_no_flags.txt b/p2-load/tests/expected/A_no_flags.txt new file mode 100644 index 0000000..e69de29 diff --git a/p2-load/tests/expected/A_no_flags_bad.txt b/p2-load/tests/expected/A_no_flags_bad.txt new file mode 100644 index 0000000..127d3fc --- /dev/null +++ b/p2-load/tests/expected/A_no_flags_bad.txt @@ -0,0 +1 @@ +Failed to read file diff --git a/p2-load/tests/expected/A_unaligned1.txt b/p2-load/tests/expected/A_unaligned1.txt new file mode 100644 index 0000000..e403f1b --- /dev/null +++ b/p2-load/tests/expected/A_unaligned1.txt @@ -0,0 +1,17 @@ +01 00 18 01 10 00 03 00 00 00 00 00 45 4c 46 00 +Mini-ELF version 1 +Entry point 0x118 +There are 3 program headers, starting at offset 16 (0x10) +There is no symbol table present +There is no string table present + Segment Offset Size VirtAddr Type Flags + 00 0x004c 0x0009 0x0000 CODE R X + 01 0x0055 0x0002 0x0118 CODE R X + 02 0x0057 0x0008 0x013a DATA RW +Contents of memory from 0000 to 0009: + 0000 70 18 01 00 00 00 00 00 00 +Contents of memory from 0118 to 011a: + 0110 10 00 +Contents of memory from 013a to 0142: + 0130 39 30 00 00 00 00 + 0140 00 00 diff --git a/p2-load/tests/expected/A_unaligned2.txt b/p2-load/tests/expected/A_unaligned2.txt new file mode 100644 index 0000000..1a02a1b --- /dev/null +++ b/p2-load/tests/expected/A_unaligned2.txt @@ -0,0 +1,18 @@ +01 00 55 05 10 00 03 00 00 00 00 00 45 4c 46 00 +Mini-ELF version 1 +Entry point 0x555 +There are 3 program headers, starting at offset 16 (0x10) +There is no symbol table present +There is no string table present + Segment Offset Size VirtAddr Type Flags + 00 0x004c 0x0009 0x0000 CODE R X + 01 0x0055 0x001f 0x0555 CODE R X + 02 0x0074 0x0008 0x0987 DATA RW +Contents of memory from 0000 to 0009: + 0000 70 55 05 00 00 00 00 00 00 +Contents of memory from 0555 to 0574: + 0550 30 f0 4d 01 00 00 00 00 00 00 30 + 0560 f3 de 00 00 00 00 00 00 00 30 f1 6f 00 00 00 00 + 0570 00 00 00 00 +Contents of memory from 0987 to 098f: + 0980 dd cc bb aa 00 00 00 00 diff --git a/p2-load/tests/expected/B_all_flags.txt b/p2-load/tests/expected/B_all_flags.txt new file mode 100644 index 0000000..d6db550 --- /dev/null +++ b/p2-load/tests/expected/B_all_flags.txt @@ -0,0 +1,14 @@ +01 00 00 01 10 00 02 00 58 00 70 00 45 4c 46 00 +Mini-ELF version 1 +Entry point 0x100 +There are 2 program headers, starting at offset 16 (0x10) +There is a symbol table starting at offset 88 (0x58) +There is a string table starting at offset 112 (0x70) + Segment Offset Size VirtAddr Type Flags + 00 0x0038 0x0015 0x0100 CODE R X + 01 0x004d 0x000b 0x0200 DATA RW +Contents of memory from 0100 to 0115: + 0100 30 f3 0f 00 00 00 20 31 40 13 fd ff ff ff 60 31 + 0110 70 08 01 00 00 +Contents of memory from 0200 to 020b: + 0200 aa bb cc dd 00 00 00 dd 00 00 00 diff --git a/p2-load/tests/expected/B_repeated.txt b/p2-load/tests/expected/B_repeated.txt new file mode 100644 index 0000000..042929e --- /dev/null +++ b/p2-load/tests/expected/B_repeated.txt @@ -0,0 +1,3 @@ + Segment Offset Size VirtAddr Type Flags + 00 0x0038 0x0015 0x0100 CODE R X + 01 0x004d 0x000b 0x0200 DATA RW diff --git a/p2-load/tests/expected/B_stack.txt b/p2-load/tests/expected/B_stack.txt new file mode 100644 index 0000000..ddeb8f2 --- /dev/null +++ b/p2-load/tests/expected/B_stack.txt @@ -0,0 +1,27 @@ +01 00 00 01 10 00 05 00 f4 00 16 01 45 4c 46 00 +Mini-ELF version 1 +Entry point 0x100 +There are 5 program headers, starting at offset 16 (0x10) +There is a symbol table starting at offset 244 (0xf4) +There is a string table starting at offset 278 (0x116) + Segment Offset Size VirtAddr Type Flags + 00 0x0074 0x001e 0x0100 CODE R X + 01 0x0092 0x0032 0x0200 CODE R X + 02 0x00c4 0x000d 0x0300 DATA RW + 03 0x00d1 0x0023 0x0400 DATA R + 04 0x00f4 0x0000 0x0f00 STACK RW +Contents of memory from 0100 to 011e: + 0100 30 f4 00 0f 00 00 00 00 00 00 30 f5 00 0f 00 00 + 0110 00 00 00 00 80 00 02 00 00 00 00 00 00 00 +Contents of memory from 0200 to 0232: + 0200 30 f0 02 03 00 00 00 00 00 00 50 30 00 00 00 00 + 0210 00 00 00 00 20 31 a0 0f b0 3f c0 c1 c5 40 13 fd + 0220 ff ff ff 00 00 00 00 60 31 70 1d 02 00 00 00 00 + 0230 00 00 +Contents of memory from 0300 to 030d: + 0300 bb aa 0f 0a 00 00 00 00 00 00 00 dd cc +Contents of memory from 0400 to 0423: + 0400 68 65 6c 6c 6f 20 77 6f 72 6c 64 00 67 6f 6f 64 + 0410 00 79 61 64 64 61 20 79 61 64 64 61 20 79 61 64 + 0420 64 61 00 +Contents of memory from 0f00 to 0f00: diff --git a/p2-load/tests/expected/B_stripped_m.txt b/p2-load/tests/expected/B_stripped_m.txt new file mode 100644 index 0000000..07aaa20 --- /dev/null +++ b/p2-load/tests/expected/B_stripped_m.txt @@ -0,0 +1,5 @@ +Contents of memory from 0100 to 0115: + 0100 30 f3 0f 00 00 00 20 31 40 13 fd ff ff ff 60 31 + 0110 70 08 01 00 00 +Contents of memory from 0200 to 020b: + 0200 aa bb cc dd 00 00 00 dd 00 00 00 diff --git a/p2-load/tests/expected/B_stripped_mH.txt b/p2-load/tests/expected/B_stripped_mH.txt new file mode 100644 index 0000000..aa947f5 --- /dev/null +++ b/p2-load/tests/expected/B_stripped_mH.txt @@ -0,0 +1,11 @@ +01 00 00 01 10 00 02 00 00 00 00 00 45 4c 46 00 +Mini-ELF version 1 +Entry point 0x100 +There are 2 program headers, starting at offset 16 (0x10) +There is no symbol table present +There is no string table present +Contents of memory from 0100 to 0115: + 0100 30 f3 0f 00 00 00 20 31 40 13 fd ff ff ff 60 31 + 0110 70 08 01 00 00 +Contents of memory from 0200 to 020b: + 0200 aa bb cc dd 00 00 00 dd 00 00 00 diff --git a/p2-load/tests/expected/C_help.txt b/p2-load/tests/expected/C_help.txt new file mode 100644 index 0000000..d7838bc --- /dev/null +++ b/p2-load/tests/expected/C_help.txt @@ -0,0 +1,9 @@ +Usage: ../y86 mini-elf-file + Options are: + -h Display usage + -H Show the Mini-ELF header + -a Show all with brief memory + -f Show all with full memory + -s Show the program headers + -m Show the memory contents (brief) + -M Show the memory contents (full) diff --git a/p2-load/tests/expected/C_more_flags_s.txt b/p2-load/tests/expected/C_more_flags_s.txt new file mode 100644 index 0000000..9003a84 --- /dev/null +++ b/p2-load/tests/expected/C_more_flags_s.txt @@ -0,0 +1,5 @@ + Segment Offset Size VirtAddr Type Flags + 00 0x0060 0x0015 0x0100 DATA W + 01 0x0075 0x000b 0x0200 DATA X + 02 0x0080 0x0015 0x0300 DATA WX + 03 0x0090 0x000b 0x0200 DATA RWX diff --git a/p2-load/tests/expected/C_multiseg_f.txt b/p2-load/tests/expected/C_multiseg_f.txt new file mode 100644 index 0000000..da6ea09 --- /dev/null +++ b/p2-load/tests/expected/C_multiseg_f.txt @@ -0,0 +1,268 @@ +01 00 00 01 10 00 04 00 00 00 00 00 45 4c 46 00 +Mini-ELF version 1 +Entry point 0x100 +There are 4 program headers, starting at offset 16 (0x10) +There is no symbol table present +There is no string table present + Segment Offset Size VirtAddr Type Flags + 00 0x0060 0x0015 0x0100 CODE R X + 01 0x0075 0x000b 0x0200 DATA RW + 02 0x0080 0x0015 0x0300 CODE R X + 03 0x0090 0x000b 0x0200 DATA RW +Contents of memory from 0000 to 1000: + 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f3 0f 00 00 00 20 31 40 13 fd ff ff ff 60 31 + 0110 70 08 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 70 08 01 00 00 aa bb cc dd 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 30 f3 0f 00 00 00 20 31 40 13 fd ff ff ff 60 31 + 0310 70 08 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/p2-load/tests/expected/C_multiseg_fsHM.txt b/p2-load/tests/expected/C_multiseg_fsHM.txt new file mode 100644 index 0000000..da6ea09 --- /dev/null +++ b/p2-load/tests/expected/C_multiseg_fsHM.txt @@ -0,0 +1,268 @@ +01 00 00 01 10 00 04 00 00 00 00 00 45 4c 46 00 +Mini-ELF version 1 +Entry point 0x100 +There are 4 program headers, starting at offset 16 (0x10) +There is no symbol table present +There is no string table present + Segment Offset Size VirtAddr Type Flags + 00 0x0060 0x0015 0x0100 CODE R X + 01 0x0075 0x000b 0x0200 DATA RW + 02 0x0080 0x0015 0x0300 CODE R X + 03 0x0090 0x000b 0x0200 DATA RW +Contents of memory from 0000 to 1000: + 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f3 0f 00 00 00 20 31 40 13 fd ff ff ff 60 31 + 0110 70 08 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 70 08 01 00 00 aa bb cc dd 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 30 f3 0f 00 00 00 20 31 40 13 fd ff ff ff 60 31 + 0310 70 08 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/p2-load/tests/expected/C_multiseg_sH.txt b/p2-load/tests/expected/C_multiseg_sH.txt new file mode 100644 index 0000000..1d3a3a5 --- /dev/null +++ b/p2-load/tests/expected/C_multiseg_sH.txt @@ -0,0 +1,11 @@ +01 00 00 01 10 00 04 00 00 00 00 00 45 4c 46 00 +Mini-ELF version 1 +Entry point 0x100 +There are 4 program headers, starting at offset 16 (0x10) +There is no symbol table present +There is no string table present + Segment Offset Size VirtAddr Type Flags + 00 0x0060 0x0015 0x0100 CODE R X + 01 0x0075 0x000b 0x0200 DATA RW + 02 0x0080 0x0015 0x0300 CODE R X + 03 0x0090 0x000b 0x0200 DATA RW diff --git a/p2-load/tests/expected/C_simple_H.txt b/p2-load/tests/expected/C_simple_H.txt new file mode 100644 index 0000000..2705cba --- /dev/null +++ b/p2-load/tests/expected/C_simple_H.txt @@ -0,0 +1,6 @@ +01 00 00 01 10 00 02 00 58 00 70 00 45 4c 46 00 +Mini-ELF version 1 +Entry point 0x100 +There are 2 program headers, starting at offset 16 (0x10) +There is a symbol table starting at offset 88 (0x58) +There is a string table starting at offset 112 (0x70) diff --git a/p2-load/tests/expected/C_simple_s.txt b/p2-load/tests/expected/C_simple_s.txt new file mode 100644 index 0000000..042929e --- /dev/null +++ b/p2-load/tests/expected/C_simple_s.txt @@ -0,0 +1,3 @@ + Segment Offset Size VirtAddr Type Flags + 00 0x0038 0x0015 0x0100 CODE R X + 01 0x004d 0x000b 0x0200 DATA RW diff --git a/p2-load/tests/expected/C_stripped_sM.txt b/p2-load/tests/expected/C_stripped_sM.txt new file mode 100644 index 0000000..294e8db --- /dev/null +++ b/p2-load/tests/expected/C_stripped_sM.txt @@ -0,0 +1,260 @@ + Segment Offset Size VirtAddr Type Flags + 00 0x0038 0x0015 0x0100 CODE R X + 01 0x004d 0x000b 0x0200 DATA RW +Contents of memory from 0000 to 1000: + 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f3 0f 00 00 00 20 31 40 13 fd ff ff ff 60 31 + 0110 70 08 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 aa bb cc dd 00 00 00 dd 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/p2-load/tests/inputs/bad-phdr_magic.o b/p2-load/tests/inputs/bad-phdr_magic.o new file mode 100644 index 0000000000000000000000000000000000000000..ab738db47a6c6ce885a665853410def4b1740dd9 GIT binary patch literal 146 zcmZQ%U|A3m7;UOBooLs(`qjfrY6BD6UtKU(Aq`pI-oBl_eG#G5`r91^^nI B9OwW5 literal 0 HcmV?d00001 diff --git a/p2-load/tests/inputs/moreflags.o b/p2-load/tests/inputs/moreflags.o new file mode 100644 index 0000000000000000000000000000000000000000..10d82ad9e950c9171f08ee6c14d1f8d585b9a9b6 GIT binary patch literal 160 zcmZQ%U|*4`@xvbZ5!Ajt?8YXGvq>X<Lvii k(A61y<_C%@7&-|5{r~@ef?)v%(BM_O&)fxyf-oU@04Rhdod5s; literal 0 HcmV?d00001 diff --git a/p2-load/tests/inputs/simple.o b/p2-load/tests/inputs/simple.o new file mode 100644 index 0000000000000000000000000000000000000000..e25a53b4175c1fb267fc3f6c24afb2ddbd5adc90 GIT binary patch literal 146 zcmZQ%U|IMN0Y|9)!VQ@G&3CVz_%|_bLz@0Ih-+1^@s6 literal 0 HcmV?d00001 diff --git a/p2-load/tests/integration.sh b/p2-load/tests/integration.sh new file mode 100644 index 0000000..ed5a430 --- /dev/null +++ b/p2-load/tests/integration.sh @@ -0,0 +1,87 @@ +#!/bin/bash + +# extract executable name from Makefile +EXE=$(grep "EXE=" Makefile | sed -e "s/EXE=//") + +# detect timeout utility (i.e., "timeout" on Linux and "gtimeout" on MacOS) +# and set timeout interval +TIMEOUT="timeout" +TIMEOUT_INTERVAL="3s" +$TIMEOUT --help &>/dev/null +if [[ $? -ne 0 ]]; then + TIMEOUT="gtimeout" +fi + +# Valgrind additional output flags +VG_FLAGS="--leak-check=full --track-origins=yes" + +function run_test { + + # parameters + TAG=$1 + ARGS=$2 + PTAG=$(printf '%-30s' "$TAG") + + # file paths + OUTPUT=outputs/$TAG.txt + DIFF=outputs/$TAG.diff + EXPECT=expected/$TAG.txt + VALGRND=valgrind/$TAG.txt + + # run test with timeout + $TIMEOUT $TIMEOUT_INTERVAL $EXE $ARGS 2>/dev/null >"$OUTPUT" + if [ "$?" -lt 124 ]; then + + # no timeout; compare output to the expected version + diff -u "$OUTPUT" "$EXPECT" >"$DIFF" + if [ -s "$DIFF" ]; then + + # try alternative solution (if it exists) + EXPECT=expected/$TAG-2.txt + if [ -e "$EXPECT" ]; then + diff -u "$OUTPUT" "$EXPECT" >"$DIFF" + if [ -s "$DIFF" ]; then + echo "$PTAG FAIL (see ${TPREFIX}$DIFF for details)" + else + echo "$PTAG pass" + fi + else + echo "$PTAG FAIL (see ${TPREFIX}$DIFF for details)" + fi + else + echo "$PTAG pass" + fi + + # run valgrind + $TIMEOUT $TIMEOUT_INTERVAL valgrind $VG_FLAGS $EXE $ARGS &>$VALGRND + else + echo "$PTAG FAIL (crash or timeout)" + fi +} + +# initialize output folders +mkdir -p outputs +mkdir -p valgrind +rm -f outputs/* valgrind/* + +# run individual tests +source itests.include + +# check for memory leaks +LEAK=`cat valgrind/*.txt | grep 'definitely lost' | grep -v ' 0 bytes in 0 blocks'` +if [ -z "$LEAK" ]; then + echo "No memory leak found." +else + echo "Memory leak(s) found. See files listed below for details." + grep 'definitely lost' valgrind/*.txt | sed -e 's/:.*$//g' | awk "{print \" - ${TPREFIX}\" \$0}" +fi + +# check for uninitialized values +LEAK=`cat valgrind/*.txt | grep 'uninitialised value'` +if [ -z "$LEAK" ]; then + echo "No uninitialized value found." +else + echo "Uninitialized value(s) found. See files listed below for details." + grep 'uninitialised value' valgrind/*.txt | sed -e 's/:.*$//g' | awk "{print \" - ${TPREFIX}\" \$0}" +fi + diff --git a/p2-load/tests/itests.include b/p2-load/tests/itests.include new file mode 100644 index 0000000..d1b0e77 --- /dev/null +++ b/p2-load/tests/itests.include @@ -0,0 +1,30 @@ +# list of integration tests +# format: run_test +# used as the root for all filenames (i.e., "expected/$TAG.txt") +# command-line arguments to test + +run_test C_help "-h" +run_test C_simple_H "-H inputs/simple.o" +run_test C_simple_s "-s inputs/simple.o" +run_test C_multiseg_sH "-sH inputs/multiseg.o" +run_test C_multiseg_f "-f inputs/multiseg.o" +run_test C_multiseg_fsHM "-fsHM inputs/multiseg.o" +run_test C_stripped_sM "-sM inputs/stripped.o" +run_test C_more_flags_s "-s inputs/moreflags.o" +run_test B_stripped_m "-m inputs/stripped.o" +run_test B_stripped_mH "-mH inputs/stripped.o" +run_test B_all_flags "-Hsma inputs/simple.o" +run_test B_repeated "-s -s -s inputs/simple.o" +run_test B_stack "-a inputs/stack.o" +run_test A_brief_full "-m -M inputs/simple.o" +run_test A_bad_phdr_vaddr "-m inputs/bad-phdr_vaddr.o" +run_test A_bad_phdr_short "-s inputs/bad-phdr_short.o" +run_test A_bad_phdr_magic "-s inputs/bad-phdr_magic.o" +run_test A_no_flags "inputs/simple.o" +run_test A_no_flags_bad "inputs/bad-phdr_short.o" +run_test A_missing_file "-a" +run_test A_extra_params "-a inputs/simple.o extra params" +run_test A_mem_conflict "-m -M inputs/simple.o" +run_test A_full_conflict "-m -f inputs/simple.o" +run_test A_unaligned1 "-a inputs/unaligned.o" +run_test A_unaligned2 "-a inputs/unaligned2.o" diff --git a/p2-load/tests/itests.txt b/p2-load/tests/itests.txt new file mode 100644 index 0000000..51f6b09 --- /dev/null +++ b/p2-load/tests/itests.txt @@ -0,0 +1,27 @@ +C_help pass +C_simple_H pass +C_simple_s pass +C_multiseg_sH pass +C_multiseg_f pass +C_multiseg_fsHM pass +C_stripped_sM pass +C_more_flags_s pass +B_stripped_m pass +B_stripped_mH pass +B_all_flags pass +B_repeated pass +B_stack pass +A_brief_full pass +A_bad_phdr_vaddr pass +A_bad_phdr_short pass +A_bad_phdr_magic pass +A_no_flags pass +A_no_flags_bad pass +A_missing_file pass +A_extra_params pass +A_mem_conflict pass +A_full_conflict pass +A_unaligned1 pass +A_unaligned2 pass +No memory leak found. +No uninitialized value found. diff --git a/p2-load/tests/outputs/A_bad_phdr_magic.diff b/p2-load/tests/outputs/A_bad_phdr_magic.diff new file mode 100644 index 0000000..e69de29 diff --git a/p2-load/tests/outputs/A_bad_phdr_magic.txt b/p2-load/tests/outputs/A_bad_phdr_magic.txt new file mode 100644 index 0000000..127d3fc --- /dev/null +++ b/p2-load/tests/outputs/A_bad_phdr_magic.txt @@ -0,0 +1 @@ +Failed to read file diff --git a/p2-load/tests/outputs/A_bad_phdr_short.diff b/p2-load/tests/outputs/A_bad_phdr_short.diff new file mode 100644 index 0000000..e69de29 diff --git a/p2-load/tests/outputs/A_bad_phdr_short.txt b/p2-load/tests/outputs/A_bad_phdr_short.txt new file mode 100644 index 0000000..127d3fc --- /dev/null +++ b/p2-load/tests/outputs/A_bad_phdr_short.txt @@ -0,0 +1 @@ +Failed to read file diff --git a/p2-load/tests/outputs/A_bad_phdr_vaddr.diff b/p2-load/tests/outputs/A_bad_phdr_vaddr.diff new file mode 100644 index 0000000..e69de29 diff --git a/p2-load/tests/outputs/A_bad_phdr_vaddr.txt b/p2-load/tests/outputs/A_bad_phdr_vaddr.txt new file mode 100644 index 0000000..127d3fc --- /dev/null +++ b/p2-load/tests/outputs/A_bad_phdr_vaddr.txt @@ -0,0 +1 @@ +Failed to read file diff --git a/p2-load/tests/outputs/A_brief_full.diff b/p2-load/tests/outputs/A_brief_full.diff new file mode 100644 index 0000000..e69de29 diff --git a/p2-load/tests/outputs/A_brief_full.txt b/p2-load/tests/outputs/A_brief_full.txt new file mode 100644 index 0000000..d7838bc --- /dev/null +++ b/p2-load/tests/outputs/A_brief_full.txt @@ -0,0 +1,9 @@ +Usage: ../y86 mini-elf-file + Options are: + -h Display usage + -H Show the Mini-ELF header + -a Show all with brief memory + -f Show all with full memory + -s Show the program headers + -m Show the memory contents (brief) + -M Show the memory contents (full) diff --git a/p2-load/tests/outputs/A_extra_params.diff b/p2-load/tests/outputs/A_extra_params.diff new file mode 100644 index 0000000..e69de29 diff --git a/p2-load/tests/outputs/A_extra_params.txt b/p2-load/tests/outputs/A_extra_params.txt new file mode 100644 index 0000000..d7838bc --- /dev/null +++ b/p2-load/tests/outputs/A_extra_params.txt @@ -0,0 +1,9 @@ +Usage: ../y86 mini-elf-file + Options are: + -h Display usage + -H Show the Mini-ELF header + -a Show all with brief memory + -f Show all with full memory + -s Show the program headers + -m Show the memory contents (brief) + -M Show the memory contents (full) diff --git a/p2-load/tests/outputs/A_full_conflict.diff b/p2-load/tests/outputs/A_full_conflict.diff new file mode 100644 index 0000000..e69de29 diff --git a/p2-load/tests/outputs/A_full_conflict.txt b/p2-load/tests/outputs/A_full_conflict.txt new file mode 100644 index 0000000..d7838bc --- /dev/null +++ b/p2-load/tests/outputs/A_full_conflict.txt @@ -0,0 +1,9 @@ +Usage: ../y86 mini-elf-file + Options are: + -h Display usage + -H Show the Mini-ELF header + -a Show all with brief memory + -f Show all with full memory + -s Show the program headers + -m Show the memory contents (brief) + -M Show the memory contents (full) diff --git a/p2-load/tests/outputs/A_mem_conflict.diff b/p2-load/tests/outputs/A_mem_conflict.diff new file mode 100644 index 0000000..e69de29 diff --git a/p2-load/tests/outputs/A_mem_conflict.txt b/p2-load/tests/outputs/A_mem_conflict.txt new file mode 100644 index 0000000..d7838bc --- /dev/null +++ b/p2-load/tests/outputs/A_mem_conflict.txt @@ -0,0 +1,9 @@ +Usage: ../y86 mini-elf-file + Options are: + -h Display usage + -H Show the Mini-ELF header + -a Show all with brief memory + -f Show all with full memory + -s Show the program headers + -m Show the memory contents (brief) + -M Show the memory contents (full) diff --git a/p2-load/tests/outputs/A_missing_file.diff b/p2-load/tests/outputs/A_missing_file.diff new file mode 100644 index 0000000..e69de29 diff --git a/p2-load/tests/outputs/A_missing_file.txt b/p2-load/tests/outputs/A_missing_file.txt new file mode 100644 index 0000000..d7838bc --- /dev/null +++ b/p2-load/tests/outputs/A_missing_file.txt @@ -0,0 +1,9 @@ +Usage: ../y86 mini-elf-file + Options are: + -h Display usage + -H Show the Mini-ELF header + -a Show all with brief memory + -f Show all with full memory + -s Show the program headers + -m Show the memory contents (brief) + -M Show the memory contents (full) diff --git a/p2-load/tests/outputs/A_no_flags.diff b/p2-load/tests/outputs/A_no_flags.diff new file mode 100644 index 0000000..e69de29 diff --git a/p2-load/tests/outputs/A_no_flags.txt b/p2-load/tests/outputs/A_no_flags.txt new file mode 100644 index 0000000..e69de29 diff --git a/p2-load/tests/outputs/A_no_flags_bad.diff b/p2-load/tests/outputs/A_no_flags_bad.diff new file mode 100644 index 0000000..e69de29 diff --git a/p2-load/tests/outputs/A_no_flags_bad.txt b/p2-load/tests/outputs/A_no_flags_bad.txt new file mode 100644 index 0000000..127d3fc --- /dev/null +++ b/p2-load/tests/outputs/A_no_flags_bad.txt @@ -0,0 +1 @@ +Failed to read file diff --git a/p2-load/tests/outputs/A_unaligned1.diff b/p2-load/tests/outputs/A_unaligned1.diff new file mode 100644 index 0000000..e69de29 diff --git a/p2-load/tests/outputs/A_unaligned1.txt b/p2-load/tests/outputs/A_unaligned1.txt new file mode 100644 index 0000000..e403f1b --- /dev/null +++ b/p2-load/tests/outputs/A_unaligned1.txt @@ -0,0 +1,17 @@ +01 00 18 01 10 00 03 00 00 00 00 00 45 4c 46 00 +Mini-ELF version 1 +Entry point 0x118 +There are 3 program headers, starting at offset 16 (0x10) +There is no symbol table present +There is no string table present + Segment Offset Size VirtAddr Type Flags + 00 0x004c 0x0009 0x0000 CODE R X + 01 0x0055 0x0002 0x0118 CODE R X + 02 0x0057 0x0008 0x013a DATA RW +Contents of memory from 0000 to 0009: + 0000 70 18 01 00 00 00 00 00 00 +Contents of memory from 0118 to 011a: + 0110 10 00 +Contents of memory from 013a to 0142: + 0130 39 30 00 00 00 00 + 0140 00 00 diff --git a/p2-load/tests/outputs/A_unaligned2.diff b/p2-load/tests/outputs/A_unaligned2.diff new file mode 100644 index 0000000..e69de29 diff --git a/p2-load/tests/outputs/A_unaligned2.txt b/p2-load/tests/outputs/A_unaligned2.txt new file mode 100644 index 0000000..1a02a1b --- /dev/null +++ b/p2-load/tests/outputs/A_unaligned2.txt @@ -0,0 +1,18 @@ +01 00 55 05 10 00 03 00 00 00 00 00 45 4c 46 00 +Mini-ELF version 1 +Entry point 0x555 +There are 3 program headers, starting at offset 16 (0x10) +There is no symbol table present +There is no string table present + Segment Offset Size VirtAddr Type Flags + 00 0x004c 0x0009 0x0000 CODE R X + 01 0x0055 0x001f 0x0555 CODE R X + 02 0x0074 0x0008 0x0987 DATA RW +Contents of memory from 0000 to 0009: + 0000 70 55 05 00 00 00 00 00 00 +Contents of memory from 0555 to 0574: + 0550 30 f0 4d 01 00 00 00 00 00 00 30 + 0560 f3 de 00 00 00 00 00 00 00 30 f1 6f 00 00 00 00 + 0570 00 00 00 00 +Contents of memory from 0987 to 098f: + 0980 dd cc bb aa 00 00 00 00 diff --git a/p2-load/tests/outputs/B_all_flags.diff b/p2-load/tests/outputs/B_all_flags.diff new file mode 100644 index 0000000..e69de29 diff --git a/p2-load/tests/outputs/B_all_flags.txt b/p2-load/tests/outputs/B_all_flags.txt new file mode 100644 index 0000000..d6db550 --- /dev/null +++ b/p2-load/tests/outputs/B_all_flags.txt @@ -0,0 +1,14 @@ +01 00 00 01 10 00 02 00 58 00 70 00 45 4c 46 00 +Mini-ELF version 1 +Entry point 0x100 +There are 2 program headers, starting at offset 16 (0x10) +There is a symbol table starting at offset 88 (0x58) +There is a string table starting at offset 112 (0x70) + Segment Offset Size VirtAddr Type Flags + 00 0x0038 0x0015 0x0100 CODE R X + 01 0x004d 0x000b 0x0200 DATA RW +Contents of memory from 0100 to 0115: + 0100 30 f3 0f 00 00 00 20 31 40 13 fd ff ff ff 60 31 + 0110 70 08 01 00 00 +Contents of memory from 0200 to 020b: + 0200 aa bb cc dd 00 00 00 dd 00 00 00 diff --git a/p2-load/tests/outputs/B_repeated.diff b/p2-load/tests/outputs/B_repeated.diff new file mode 100644 index 0000000..e69de29 diff --git a/p2-load/tests/outputs/B_repeated.txt b/p2-load/tests/outputs/B_repeated.txt new file mode 100644 index 0000000..042929e --- /dev/null +++ b/p2-load/tests/outputs/B_repeated.txt @@ -0,0 +1,3 @@ + Segment Offset Size VirtAddr Type Flags + 00 0x0038 0x0015 0x0100 CODE R X + 01 0x004d 0x000b 0x0200 DATA RW diff --git a/p2-load/tests/outputs/B_stack.diff b/p2-load/tests/outputs/B_stack.diff new file mode 100644 index 0000000..e69de29 diff --git a/p2-load/tests/outputs/B_stack.txt b/p2-load/tests/outputs/B_stack.txt new file mode 100644 index 0000000..ddeb8f2 --- /dev/null +++ b/p2-load/tests/outputs/B_stack.txt @@ -0,0 +1,27 @@ +01 00 00 01 10 00 05 00 f4 00 16 01 45 4c 46 00 +Mini-ELF version 1 +Entry point 0x100 +There are 5 program headers, starting at offset 16 (0x10) +There is a symbol table starting at offset 244 (0xf4) +There is a string table starting at offset 278 (0x116) + Segment Offset Size VirtAddr Type Flags + 00 0x0074 0x001e 0x0100 CODE R X + 01 0x0092 0x0032 0x0200 CODE R X + 02 0x00c4 0x000d 0x0300 DATA RW + 03 0x00d1 0x0023 0x0400 DATA R + 04 0x00f4 0x0000 0x0f00 STACK RW +Contents of memory from 0100 to 011e: + 0100 30 f4 00 0f 00 00 00 00 00 00 30 f5 00 0f 00 00 + 0110 00 00 00 00 80 00 02 00 00 00 00 00 00 00 +Contents of memory from 0200 to 0232: + 0200 30 f0 02 03 00 00 00 00 00 00 50 30 00 00 00 00 + 0210 00 00 00 00 20 31 a0 0f b0 3f c0 c1 c5 40 13 fd + 0220 ff ff ff 00 00 00 00 60 31 70 1d 02 00 00 00 00 + 0230 00 00 +Contents of memory from 0300 to 030d: + 0300 bb aa 0f 0a 00 00 00 00 00 00 00 dd cc +Contents of memory from 0400 to 0423: + 0400 68 65 6c 6c 6f 20 77 6f 72 6c 64 00 67 6f 6f 64 + 0410 00 79 61 64 64 61 20 79 61 64 64 61 20 79 61 64 + 0420 64 61 00 +Contents of memory from 0f00 to 0f00: diff --git a/p2-load/tests/outputs/B_stripped_m.diff b/p2-load/tests/outputs/B_stripped_m.diff new file mode 100644 index 0000000..e69de29 diff --git a/p2-load/tests/outputs/B_stripped_m.txt b/p2-load/tests/outputs/B_stripped_m.txt new file mode 100644 index 0000000..07aaa20 --- /dev/null +++ b/p2-load/tests/outputs/B_stripped_m.txt @@ -0,0 +1,5 @@ +Contents of memory from 0100 to 0115: + 0100 30 f3 0f 00 00 00 20 31 40 13 fd ff ff ff 60 31 + 0110 70 08 01 00 00 +Contents of memory from 0200 to 020b: + 0200 aa bb cc dd 00 00 00 dd 00 00 00 diff --git a/p2-load/tests/outputs/B_stripped_mH.diff b/p2-load/tests/outputs/B_stripped_mH.diff new file mode 100644 index 0000000..e69de29 diff --git a/p2-load/tests/outputs/B_stripped_mH.txt b/p2-load/tests/outputs/B_stripped_mH.txt new file mode 100644 index 0000000..aa947f5 --- /dev/null +++ b/p2-load/tests/outputs/B_stripped_mH.txt @@ -0,0 +1,11 @@ +01 00 00 01 10 00 02 00 00 00 00 00 45 4c 46 00 +Mini-ELF version 1 +Entry point 0x100 +There are 2 program headers, starting at offset 16 (0x10) +There is no symbol table present +There is no string table present +Contents of memory from 0100 to 0115: + 0100 30 f3 0f 00 00 00 20 31 40 13 fd ff ff ff 60 31 + 0110 70 08 01 00 00 +Contents of memory from 0200 to 020b: + 0200 aa bb cc dd 00 00 00 dd 00 00 00 diff --git a/p2-load/tests/outputs/C_help.diff b/p2-load/tests/outputs/C_help.diff new file mode 100644 index 0000000..e69de29 diff --git a/p2-load/tests/outputs/C_help.txt b/p2-load/tests/outputs/C_help.txt new file mode 100644 index 0000000..d7838bc --- /dev/null +++ b/p2-load/tests/outputs/C_help.txt @@ -0,0 +1,9 @@ +Usage: ../y86 mini-elf-file + Options are: + -h Display usage + -H Show the Mini-ELF header + -a Show all with brief memory + -f Show all with full memory + -s Show the program headers + -m Show the memory contents (brief) + -M Show the memory contents (full) diff --git a/p2-load/tests/outputs/C_more_flags_s.diff b/p2-load/tests/outputs/C_more_flags_s.diff new file mode 100644 index 0000000..e69de29 diff --git a/p2-load/tests/outputs/C_more_flags_s.txt b/p2-load/tests/outputs/C_more_flags_s.txt new file mode 100644 index 0000000..9003a84 --- /dev/null +++ b/p2-load/tests/outputs/C_more_flags_s.txt @@ -0,0 +1,5 @@ + Segment Offset Size VirtAddr Type Flags + 00 0x0060 0x0015 0x0100 DATA W + 01 0x0075 0x000b 0x0200 DATA X + 02 0x0080 0x0015 0x0300 DATA WX + 03 0x0090 0x000b 0x0200 DATA RWX diff --git a/p2-load/tests/outputs/C_multiseg_f.diff b/p2-load/tests/outputs/C_multiseg_f.diff new file mode 100644 index 0000000..e69de29 diff --git a/p2-load/tests/outputs/C_multiseg_f.txt b/p2-load/tests/outputs/C_multiseg_f.txt new file mode 100644 index 0000000..da6ea09 --- /dev/null +++ b/p2-load/tests/outputs/C_multiseg_f.txt @@ -0,0 +1,268 @@ +01 00 00 01 10 00 04 00 00 00 00 00 45 4c 46 00 +Mini-ELF version 1 +Entry point 0x100 +There are 4 program headers, starting at offset 16 (0x10) +There is no symbol table present +There is no string table present + Segment Offset Size VirtAddr Type Flags + 00 0x0060 0x0015 0x0100 CODE R X + 01 0x0075 0x000b 0x0200 DATA RW + 02 0x0080 0x0015 0x0300 CODE R X + 03 0x0090 0x000b 0x0200 DATA RW +Contents of memory from 0000 to 1000: + 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f3 0f 00 00 00 20 31 40 13 fd ff ff ff 60 31 + 0110 70 08 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 70 08 01 00 00 aa bb cc dd 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 30 f3 0f 00 00 00 20 31 40 13 fd ff ff ff 60 31 + 0310 70 08 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/p2-load/tests/outputs/C_multiseg_fsHM.diff b/p2-load/tests/outputs/C_multiseg_fsHM.diff new file mode 100644 index 0000000..e69de29 diff --git a/p2-load/tests/outputs/C_multiseg_fsHM.txt b/p2-load/tests/outputs/C_multiseg_fsHM.txt new file mode 100644 index 0000000..da6ea09 --- /dev/null +++ b/p2-load/tests/outputs/C_multiseg_fsHM.txt @@ -0,0 +1,268 @@ +01 00 00 01 10 00 04 00 00 00 00 00 45 4c 46 00 +Mini-ELF version 1 +Entry point 0x100 +There are 4 program headers, starting at offset 16 (0x10) +There is no symbol table present +There is no string table present + Segment Offset Size VirtAddr Type Flags + 00 0x0060 0x0015 0x0100 CODE R X + 01 0x0075 0x000b 0x0200 DATA RW + 02 0x0080 0x0015 0x0300 CODE R X + 03 0x0090 0x000b 0x0200 DATA RW +Contents of memory from 0000 to 1000: + 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f3 0f 00 00 00 20 31 40 13 fd ff ff ff 60 31 + 0110 70 08 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 70 08 01 00 00 aa bb cc dd 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 30 f3 0f 00 00 00 20 31 40 13 fd ff ff ff 60 31 + 0310 70 08 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/p2-load/tests/outputs/C_multiseg_sH.diff b/p2-load/tests/outputs/C_multiseg_sH.diff new file mode 100644 index 0000000..e69de29 diff --git a/p2-load/tests/outputs/C_multiseg_sH.txt b/p2-load/tests/outputs/C_multiseg_sH.txt new file mode 100644 index 0000000..1d3a3a5 --- /dev/null +++ b/p2-load/tests/outputs/C_multiseg_sH.txt @@ -0,0 +1,11 @@ +01 00 00 01 10 00 04 00 00 00 00 00 45 4c 46 00 +Mini-ELF version 1 +Entry point 0x100 +There are 4 program headers, starting at offset 16 (0x10) +There is no symbol table present +There is no string table present + Segment Offset Size VirtAddr Type Flags + 00 0x0060 0x0015 0x0100 CODE R X + 01 0x0075 0x000b 0x0200 DATA RW + 02 0x0080 0x0015 0x0300 CODE R X + 03 0x0090 0x000b 0x0200 DATA RW diff --git a/p2-load/tests/outputs/C_simple_H.diff b/p2-load/tests/outputs/C_simple_H.diff new file mode 100644 index 0000000..e69de29 diff --git a/p2-load/tests/outputs/C_simple_H.txt b/p2-load/tests/outputs/C_simple_H.txt new file mode 100644 index 0000000..2705cba --- /dev/null +++ b/p2-load/tests/outputs/C_simple_H.txt @@ -0,0 +1,6 @@ +01 00 00 01 10 00 02 00 58 00 70 00 45 4c 46 00 +Mini-ELF version 1 +Entry point 0x100 +There are 2 program headers, starting at offset 16 (0x10) +There is a symbol table starting at offset 88 (0x58) +There is a string table starting at offset 112 (0x70) diff --git a/p2-load/tests/outputs/C_simple_s.diff b/p2-load/tests/outputs/C_simple_s.diff new file mode 100644 index 0000000..e69de29 diff --git a/p2-load/tests/outputs/C_simple_s.txt b/p2-load/tests/outputs/C_simple_s.txt new file mode 100644 index 0000000..042929e --- /dev/null +++ b/p2-load/tests/outputs/C_simple_s.txt @@ -0,0 +1,3 @@ + Segment Offset Size VirtAddr Type Flags + 00 0x0038 0x0015 0x0100 CODE R X + 01 0x004d 0x000b 0x0200 DATA RW diff --git a/p2-load/tests/outputs/C_stripped_sM.diff b/p2-load/tests/outputs/C_stripped_sM.diff new file mode 100644 index 0000000..e69de29 diff --git a/p2-load/tests/outputs/C_stripped_sM.txt b/p2-load/tests/outputs/C_stripped_sM.txt new file mode 100644 index 0000000..294e8db --- /dev/null +++ b/p2-load/tests/outputs/C_stripped_sM.txt @@ -0,0 +1,260 @@ + Segment Offset Size VirtAddr Type Flags + 00 0x0038 0x0015 0x0100 CODE R X + 01 0x004d 0x000b 0x0200 DATA RW +Contents of memory from 0000 to 1000: + 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f3 0f 00 00 00 20 31 40 13 fd ff ff ff 60 31 + 0110 70 08 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 aa bb cc dd 00 00 00 dd 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/p2-load/tests/private.o b/p2-load/tests/private.o new file mode 100644 index 0000000000000000000000000000000000000000..0966f0df4c49a1b860cc9b4b63b63b0bcc8398ba GIT binary patch literal 15272 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 F{{R~~n`Zz3 literal 0 HcmV?d00001 diff --git a/p2-load/tests/public.c b/p2-load/tests/public.c new file mode 100644 index 0000000..1098ecf --- /dev/null +++ b/p2-load/tests/public.c @@ -0,0 +1,87 @@ +#include +#include +#include + +#include + +#include "../p2-load.h" + +/* check read_phdr (code section) */ +START_TEST (C_read_phdr_code) +{ + FILE *fp = fopen ("inputs/stripped.o", "r"); + uint16_t offset = 0x10; + elf_phdr_t phdr; + bool rc = false; + ck_assert (fp != NULL); + + rc = read_phdr (fp, offset, &phdr); + ck_assert (rc == true); + ck_assert (phdr.p_offset == 0x38); + ck_assert (phdr.p_vaddr == 0x100); + ck_assert (phdr.p_size == 0x15); + ck_assert (phdr.p_type == CODE); + ck_assert (phdr.p_flags == 0x5); // 101 + ck_assert (phdr.magic == 0xDEADBEEF); +} +END_TEST + +/* check read_phdr (data section) */ +START_TEST (C_read_phdr_data) +{ + FILE *fp = fopen ("inputs/stripped.o", "r"); + uint16_t offset = 0x10 + sizeof(elf_phdr_t); + elf_phdr_t phdr; + bool rc = false; + ck_assert (fp != NULL); + + rc = read_phdr (fp, offset, &phdr); + ck_assert (rc == true); + ck_assert (phdr.p_offset == 0x4d); + ck_assert (phdr.p_vaddr == 0x200); + ck_assert (phdr.p_size == 0x0b); + ck_assert (phdr.p_type == DATA); + ck_assert (phdr.p_flags == 0x6); // 110 + ck_assert (phdr.magic == 0xDEADBEEF); +} +END_TEST + +/* check load_segment */ +START_TEST (C_load_segment) +{ + FILE *fp = fopen ("inputs/simple.o", "r"); + ck_assert (fp != NULL); + byte_t *memory = (byte_t*) calloc (32, sizeof (uint8_t)); + elf_phdr_t phdr; + phdr.p_offset = 0x30; + phdr.p_vaddr = 0x10; + phdr.p_size = 0x10; + phdr.p_type = DATA; + phdr.p_flags = 0x6; // 110 + phdr.magic = 0xDEADBEEF; + uint8_t expected[] = { 0, 0, 6, 0, 0xef, 0xbe, 0xad, 0xde, + 0x30, 0xf3, 0xf, 0, 0, 0, 0x20, 0x31 }; + size_t i = 0; + + bool rc = load_segment (fp, memory, &phdr); + ck_assert (rc == true); + + for (i = 0; i < 16; i++) { + ck_assert (memory[i] == 0); + } + + for (i = 0; i < 16; i++) { + ck_assert (memory[i+16] == expected[i]); + } +} +END_TEST + +void public_tests (Suite *s) +{ + TCase *tc_public = tcase_create ("Public"); + tcase_add_test (tc_public, C_read_phdr_code); + tcase_add_test (tc_public, C_read_phdr_data); + tcase_add_test (tc_public, C_load_segment); + suite_add_tcase (s, tc_public); +} + diff --git a/p2-load/tests/public.o b/p2-load/tests/public.o new file mode 100644 index 0000000000000000000000000000000000000000..335f1c10d680b0cd8464bbd1e48b86cee490b48f GIT binary patch literal 17744 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

    LainOr$Vq>Un< zORx%V$N4{$X#WBpib9&9vh0=HasE2ga5+nY!h6(S$FOX2&j5x~)CjXUOYJ>Srzegd zV|Z?aI?eX(X^L@>iIkh|@jas0__cMb2AilIj^70MCM*B| literal 0 HcmV?d00001 diff --git a/p2-load/tests/testsuite b/p2-load/tests/testsuite new file mode 100644 index 0000000000000000000000000000000000000000..74dcd81e32db6ce4bda9cf8e618fb7341de7c99a GIT binary patch literal 81576 zcmeFadtg*W(l>l^gUBTl6)-C5h!agDK!Skb5}hF#IFSJ&1i=LjA(=oVH#0L3l}mII zma{_?U3Brf=&~-)iYvNaFzbep011kUc*7MXx~}#Zlqkr>3-kS|yU)y-Nuv9_-}nCY zIhxezs_N?M>gww1K0RTz-7zIPDoW8mG0HUxm6}ro#wrOZV?#VvB~uxwSe46_WTg-2 zvG~#XBH_Vk5b@DryeKL$fK)Gu9(sU71zORe-a0|5*V|{Kte`_BQE*bdIC?bGFMQ1W zcMyK(5@j74>+$wBN&X0!mm%;vG}a^AZ2LgaxB0{2ej?(d4iHeUN9H0@?S}$i+ZhfM zr9E}1+mm#ppG;}bNSH3fC_0R+w?x*9ggLUF4yg_L%>IwN`2VE6JXtUQ1tBLA9+C~{ zP;c*g)RQI?6@THk9Cl@vY_GR*$df{KNPa?}QDvoz#*GQ#D8Be_yN7hNr54Hl5<`!_=|gy542*& zPvob#7yb`>!T%KkdeSGk7yhHY@KadmNzTMx;7daOJZ^lpL z=f_^;f7?rcX}#^qui|>ar}ZL7?S+4PFZ^fs(%;8>;a|}U{_S4yzlA=-B8`J`axZ$G z2CXMMeBF!ut9rrj??wK|Uiy1OFLGw~f}hfho(p>6Khz68rWbuq_QIcrcFp*S{1o@n z-@d)bS=9^wnqK&;dcimMf`1nHvy}^#+Ag7~p1;gNyTc-tNBJ}S^fc}lgP-JVijboe z*=3a#&iukfWlp7_U~ze6MS;s*SnVz-5Uf2imXuXiRx2*g zB2PuByTI*qxeJ`t)sd)@!qT#Erm8}hD;&eyQmUQHODl>McWJq^8p@S9-A<*-<8~

    +mO1ZPVymFb7nBA4difp#B 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 KibRNb&Hn*os0^$C literal 0 HcmV?d00001 diff --git a/p2-load/tests/testsuite.c b/p2-load/tests/testsuite.c new file mode 100644 index 0000000..717c193 --- /dev/null +++ b/p2-load/tests/testsuite.c @@ -0,0 +1,34 @@ +#include +#include +#include +#include +#include +#include + +#include + +extern void public_tests (Suite *s); +extern void private_tests (Suite *s); + +Suite * test_suite (void) +{ + Suite *s = suite_create ("Default"); + public_tests (s); + private_tests (s); + return s; +} + +void run_testsuite (void) +{ + Suite *s = test_suite (); + SRunner *sr = srunner_create (s); + srunner_run_all (sr, CK_NORMAL); + srunner_free (sr); +} + +int main (void) +{ + srand((unsigned)time(NULL)); + run_testsuite (); + return EXIT_SUCCESS; +} diff --git a/p2-load/tests/testsuite.o b/p2-load/tests/testsuite.o new file mode 100644 index 0000000000000000000000000000000000000000..c05f5abcf1f1edf1fbc657fc923c6aa3819ef90c GIT binary patch literal 6368 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 literal 0 HcmV?d00001 diff --git a/p2-load/tests/utests.txt b/p2-load/tests/utests.txt new file mode 100644 index 0000000..0e47d06 --- /dev/null +++ b/p2-load/tests/utests.txt @@ -0,0 +1,2 @@ +Running suite(s): Default +100%: Checks: 12, Failures: 0, Errors: 0 diff --git a/p2-load/tests/valgrind/A_bad_phdr_magic.txt b/p2-load/tests/valgrind/A_bad_phdr_magic.txt new file mode 100644 index 0000000..0e75c31 --- /dev/null +++ b/p2-load/tests/valgrind/A_bad_phdr_magic.txt @@ -0,0 +1,15 @@ +==2765188== Memcheck, a memory error detector +==2765188== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2765188== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2765188== Command: ../y86 -s inputs/bad-phdr_magic.o +==2765188== +Failed to read file +==2765188== +==2765188== HEAP SUMMARY: +==2765188== in use at exit: 0 bytes in 0 blocks +==2765188== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==2765188== +==2765188== All heap blocks were freed -- no leaks are possible +==2765188== +==2765188== For lists of detected and suppressed errors, rerun with: -s +==2765188== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p2-load/tests/valgrind/A_bad_phdr_short.txt b/p2-load/tests/valgrind/A_bad_phdr_short.txt new file mode 100644 index 0000000..d423c62 --- /dev/null +++ b/p2-load/tests/valgrind/A_bad_phdr_short.txt @@ -0,0 +1,15 @@ +==2765178== Memcheck, a memory error detector +==2765178== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2765178== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2765178== Command: ../y86 -s inputs/bad-phdr_short.o +==2765178== +Failed to read file +==2765178== +==2765178== HEAP SUMMARY: +==2765178== in use at exit: 0 bytes in 0 blocks +==2765178== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==2765178== +==2765178== All heap blocks were freed -- no leaks are possible +==2765178== +==2765178== For lists of detected and suppressed errors, rerun with: -s +==2765178== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p2-load/tests/valgrind/A_bad_phdr_vaddr.txt b/p2-load/tests/valgrind/A_bad_phdr_vaddr.txt new file mode 100644 index 0000000..ef0a551 --- /dev/null +++ b/p2-load/tests/valgrind/A_bad_phdr_vaddr.txt @@ -0,0 +1,15 @@ +==2765155== Memcheck, a memory error detector +==2765155== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2765155== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2765155== Command: ../y86 -m inputs/bad-phdr_vaddr.o +==2765155== +Failed to read file +==2765155== +==2765155== HEAP SUMMARY: +==2765155== in use at exit: 0 bytes in 0 blocks +==2765155== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==2765155== +==2765155== All heap blocks were freed -- no leaks are possible +==2765155== +==2765155== For lists of detected and suppressed errors, rerun with: -s +==2765155== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p2-load/tests/valgrind/A_brief_full.txt b/p2-load/tests/valgrind/A_brief_full.txt new file mode 100644 index 0000000..976de64 --- /dev/null +++ b/p2-load/tests/valgrind/A_brief_full.txt @@ -0,0 +1,23 @@ +==2765141== Memcheck, a memory error detector +==2765141== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2765141== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2765141== Command: ../y86 -m -M inputs/simple.o +==2765141== +Usage: ../y86 mini-elf-file + Options are: + -h Display usage + -H Show the Mini-ELF header + -a Show all with brief memory + -f Show all with full memory + -s Show the program headers + -m Show the memory contents (brief) + -M Show the memory contents (full) +==2765141== +==2765141== HEAP SUMMARY: +==2765141== in use at exit: 0 bytes in 0 blocks +==2765141== total heap usage: 1 allocs, 1 frees, 8,192 bytes allocated +==2765141== +==2765141== All heap blocks were freed -- no leaks are possible +==2765141== +==2765141== For lists of detected and suppressed errors, rerun with: -s +==2765141== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p2-load/tests/valgrind/A_extra_params.txt b/p2-load/tests/valgrind/A_extra_params.txt new file mode 100644 index 0000000..e0ce77f --- /dev/null +++ b/p2-load/tests/valgrind/A_extra_params.txt @@ -0,0 +1,23 @@ +==2765226== Memcheck, a memory error detector +==2765226== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2765226== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2765226== Command: ../y86 -a inputs/simple.o extra params +==2765226== +Usage: ../y86 mini-elf-file + Options are: + -h Display usage + -H Show the Mini-ELF header + -a Show all with brief memory + -f Show all with full memory + -s Show the program headers + -m Show the memory contents (brief) + -M Show the memory contents (full) +==2765226== +==2765226== HEAP SUMMARY: +==2765226== in use at exit: 0 bytes in 0 blocks +==2765226== total heap usage: 1 allocs, 1 frees, 8,192 bytes allocated +==2765226== +==2765226== All heap blocks were freed -- no leaks are possible +==2765226== +==2765226== For lists of detected and suppressed errors, rerun with: -s +==2765226== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p2-load/tests/valgrind/A_full_conflict.txt b/p2-load/tests/valgrind/A_full_conflict.txt new file mode 100644 index 0000000..d81ece7 --- /dev/null +++ b/p2-load/tests/valgrind/A_full_conflict.txt @@ -0,0 +1,23 @@ +==2765260== Memcheck, a memory error detector +==2765260== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2765260== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2765260== Command: ../y86 -m -f inputs/simple.o +==2765260== +Usage: ../y86 mini-elf-file + Options are: + -h Display usage + -H Show the Mini-ELF header + -a Show all with brief memory + -f Show all with full memory + -s Show the program headers + -m Show the memory contents (brief) + -M Show the memory contents (full) +==2765260== +==2765260== HEAP SUMMARY: +==2765260== in use at exit: 0 bytes in 0 blocks +==2765260== total heap usage: 1 allocs, 1 frees, 8,192 bytes allocated +==2765260== +==2765260== All heap blocks were freed -- no leaks are possible +==2765260== +==2765260== For lists of detected and suppressed errors, rerun with: -s +==2765260== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p2-load/tests/valgrind/A_mem_conflict.txt b/p2-load/tests/valgrind/A_mem_conflict.txt new file mode 100644 index 0000000..6a3ba22 --- /dev/null +++ b/p2-load/tests/valgrind/A_mem_conflict.txt @@ -0,0 +1,23 @@ +==2765248== Memcheck, a memory error detector +==2765248== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2765248== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2765248== Command: ../y86 -m -M inputs/simple.o +==2765248== +Usage: ../y86 mini-elf-file + Options are: + -h Display usage + -H Show the Mini-ELF header + -a Show all with brief memory + -f Show all with full memory + -s Show the program headers + -m Show the memory contents (brief) + -M Show the memory contents (full) +==2765248== +==2765248== HEAP SUMMARY: +==2765248== in use at exit: 0 bytes in 0 blocks +==2765248== total heap usage: 1 allocs, 1 frees, 8,192 bytes allocated +==2765248== +==2765248== All heap blocks were freed -- no leaks are possible +==2765248== +==2765248== For lists of detected and suppressed errors, rerun with: -s +==2765248== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p2-load/tests/valgrind/A_missing_file.txt b/p2-load/tests/valgrind/A_missing_file.txt new file mode 100644 index 0000000..b0022dc --- /dev/null +++ b/p2-load/tests/valgrind/A_missing_file.txt @@ -0,0 +1,23 @@ +==2765213== Memcheck, a memory error detector +==2765213== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2765213== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2765213== Command: ../y86 -a +==2765213== +Usage: ../y86 mini-elf-file + Options are: + -h Display usage + -H Show the Mini-ELF header + -a Show all with brief memory + -f Show all with full memory + -s Show the program headers + -m Show the memory contents (brief) + -M Show the memory contents (full) +==2765213== +==2765213== HEAP SUMMARY: +==2765213== in use at exit: 0 bytes in 0 blocks +==2765213== total heap usage: 1 allocs, 1 frees, 8,192 bytes allocated +==2765213== +==2765213== All heap blocks were freed -- no leaks are possible +==2765213== +==2765213== For lists of detected and suppressed errors, rerun with: -s +==2765213== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p2-load/tests/valgrind/A_no_flags.txt b/p2-load/tests/valgrind/A_no_flags.txt new file mode 100644 index 0000000..49a05cb --- /dev/null +++ b/p2-load/tests/valgrind/A_no_flags.txt @@ -0,0 +1,14 @@ +==2765201== Memcheck, a memory error detector +==2765201== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2765201== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2765201== Command: ../y86 inputs/simple.o +==2765201== +==2765201== +==2765201== HEAP SUMMARY: +==2765201== in use at exit: 0 bytes in 0 blocks +==2765201== total heap usage: 2 allocs, 2 frees, 8,664 bytes allocated +==2765201== +==2765201== All heap blocks were freed -- no leaks are possible +==2765201== +==2765201== For lists of detected and suppressed errors, rerun with: -s +==2765201== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p2-load/tests/valgrind/A_no_flags_bad.txt b/p2-load/tests/valgrind/A_no_flags_bad.txt new file mode 100644 index 0000000..1fc3944 --- /dev/null +++ b/p2-load/tests/valgrind/A_no_flags_bad.txt @@ -0,0 +1,15 @@ +==2765207== Memcheck, a memory error detector +==2765207== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2765207== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2765207== Command: ../y86 inputs/bad-phdr_short.o +==2765207== +Failed to read file +==2765207== +==2765207== HEAP SUMMARY: +==2765207== in use at exit: 0 bytes in 0 blocks +==2765207== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==2765207== +==2765207== All heap blocks were freed -- no leaks are possible +==2765207== +==2765207== For lists of detected and suppressed errors, rerun with: -s +==2765207== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p2-load/tests/valgrind/A_unaligned1.txt b/p2-load/tests/valgrind/A_unaligned1.txt new file mode 100644 index 0000000..53f3413 --- /dev/null +++ b/p2-load/tests/valgrind/A_unaligned1.txt @@ -0,0 +1,31 @@ +==2765283== Memcheck, a memory error detector +==2765283== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2765283== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2765283== Command: ../y86 -a inputs/unaligned.o +==2765283== +01 00 18 01 10 00 03 00 00 00 00 00 45 4c 46 00 +Mini-ELF version 1 +Entry point 0x118 +There are 3 program headers, starting at offset 16 (0x10) +There is no symbol table present +There is no string table present + Segment Offset Size VirtAddr Type Flags + 00 0x004c 0x0009 0x0000 CODE R X + 01 0x0055 0x0002 0x0118 CODE R X + 02 0x0057 0x0008 0x013a DATA RW +Contents of memory from 0000 to 0009: + 0000 70 18 01 00 00 00 00 00 00 +Contents of memory from 0118 to 011a: + 0110 10 00 +Contents of memory from 013a to 0142: + 0130 39 30 00 00 00 00 + 0140 00 00 +==2765283== +==2765283== HEAP SUMMARY: +==2765283== in use at exit: 0 bytes in 0 blocks +==2765283== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==2765283== +==2765283== All heap blocks were freed -- no leaks are possible +==2765283== +==2765283== For lists of detected and suppressed errors, rerun with: -s +==2765283== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p2-load/tests/valgrind/A_unaligned2.txt b/p2-load/tests/valgrind/A_unaligned2.txt new file mode 100644 index 0000000..2814983 --- /dev/null +++ b/p2-load/tests/valgrind/A_unaligned2.txt @@ -0,0 +1,32 @@ +==2765293== Memcheck, a memory error detector +==2765293== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2765293== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2765293== Command: ../y86 -a inputs/unaligned2.o +==2765293== +01 00 55 05 10 00 03 00 00 00 00 00 45 4c 46 00 +Mini-ELF version 1 +Entry point 0x555 +There are 3 program headers, starting at offset 16 (0x10) +There is no symbol table present +There is no string table present + Segment Offset Size VirtAddr Type Flags + 00 0x004c 0x0009 0x0000 CODE R X + 01 0x0055 0x001f 0x0555 CODE R X + 02 0x0074 0x0008 0x0987 DATA RW +Contents of memory from 0000 to 0009: + 0000 70 55 05 00 00 00 00 00 00 +Contents of memory from 0555 to 0574: + 0550 30 f0 4d 01 00 00 00 00 00 00 30 + 0560 f3 de 00 00 00 00 00 00 00 30 f1 6f 00 00 00 00 + 0570 00 00 00 00 +Contents of memory from 0987 to 098f: + 0980 dd cc bb aa 00 00 00 00 +==2765293== +==2765293== HEAP SUMMARY: +==2765293== in use at exit: 0 bytes in 0 blocks +==2765293== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==2765293== +==2765293== All heap blocks were freed -- no leaks are possible +==2765293== +==2765293== For lists of detected and suppressed errors, rerun with: -s +==2765293== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p2-load/tests/valgrind/B_all_flags.txt b/p2-load/tests/valgrind/B_all_flags.txt new file mode 100644 index 0000000..e483c05 --- /dev/null +++ b/p2-load/tests/valgrind/B_all_flags.txt @@ -0,0 +1,28 @@ +==2765100== Memcheck, a memory error detector +==2765100== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2765100== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2765100== Command: ../y86 -Hsma inputs/simple.o +==2765100== +01 00 00 01 10 00 02 00 58 00 70 00 45 4c 46 00 +Mini-ELF version 1 +Entry point 0x100 +There are 2 program headers, starting at offset 16 (0x10) +There is a symbol table starting at offset 88 (0x58) +There is a string table starting at offset 112 (0x70) + Segment Offset Size VirtAddr Type Flags + 00 0x0038 0x0015 0x0100 CODE R X + 01 0x004d 0x000b 0x0200 DATA RW +Contents of memory from 0100 to 0115: + 0100 30 f3 0f 00 00 00 20 31 40 13 fd ff ff ff 60 31 + 0110 70 08 01 00 00 +Contents of memory from 0200 to 020b: + 0200 aa bb cc dd 00 00 00 dd 00 00 00 +==2765100== +==2765100== HEAP SUMMARY: +==2765100== in use at exit: 0 bytes in 0 blocks +==2765100== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==2765100== +==2765100== All heap blocks were freed -- no leaks are possible +==2765100== +==2765100== For lists of detected and suppressed errors, rerun with: -s +==2765100== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p2-load/tests/valgrind/B_repeated.txt b/p2-load/tests/valgrind/B_repeated.txt new file mode 100644 index 0000000..aac6c4b --- /dev/null +++ b/p2-load/tests/valgrind/B_repeated.txt @@ -0,0 +1,17 @@ +==2765113== Memcheck, a memory error detector +==2765113== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2765113== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2765113== Command: ../y86 -s -s -s inputs/simple.o +==2765113== + Segment Offset Size VirtAddr Type Flags + 00 0x0038 0x0015 0x0100 CODE R X + 01 0x004d 0x000b 0x0200 DATA RW +==2765113== +==2765113== HEAP SUMMARY: +==2765113== in use at exit: 0 bytes in 0 blocks +==2765113== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==2765113== +==2765113== All heap blocks were freed -- no leaks are possible +==2765113== +==2765113== For lists of detected and suppressed errors, rerun with: -s +==2765113== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p2-load/tests/valgrind/B_stack.txt b/p2-load/tests/valgrind/B_stack.txt new file mode 100644 index 0000000..6a87206 --- /dev/null +++ b/p2-load/tests/valgrind/B_stack.txt @@ -0,0 +1,41 @@ +==2765119== Memcheck, a memory error detector +==2765119== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2765119== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2765119== Command: ../y86 -a inputs/stack.o +==2765119== +01 00 00 01 10 00 05 00 f4 00 16 01 45 4c 46 00 +Mini-ELF version 1 +Entry point 0x100 +There are 5 program headers, starting at offset 16 (0x10) +There is a symbol table starting at offset 244 (0xf4) +There is a string table starting at offset 278 (0x116) + Segment Offset Size VirtAddr Type Flags + 00 0x0074 0x001e 0x0100 CODE R X + 01 0x0092 0x0032 0x0200 CODE R X + 02 0x00c4 0x000d 0x0300 DATA RW + 03 0x00d1 0x0023 0x0400 DATA R + 04 0x00f4 0x0000 0x0f00 STACK RW +Contents of memory from 0100 to 011e: + 0100 30 f4 00 0f 00 00 00 00 00 00 30 f5 00 0f 00 00 + 0110 00 00 00 00 80 00 02 00 00 00 00 00 00 00 +Contents of memory from 0200 to 0232: + 0200 30 f0 02 03 00 00 00 00 00 00 50 30 00 00 00 00 + 0210 00 00 00 00 20 31 a0 0f b0 3f c0 c1 c5 40 13 fd + 0220 ff ff ff 00 00 00 00 60 31 70 1d 02 00 00 00 00 + 0230 00 00 +Contents of memory from 0300 to 030d: + 0300 bb aa 0f 0a 00 00 00 00 00 00 00 dd cc +Contents of memory from 0400 to 0423: + 0400 68 65 6c 6c 6f 20 77 6f 72 6c 64 00 67 6f 6f 64 + 0410 00 79 61 64 64 61 20 79 61 64 64 61 20 79 61 64 + 0420 64 61 00 +Contents of memory from 0f00 to 0f00: +==2765119== +==2765119== HEAP SUMMARY: +==2765119== in use at exit: 0 bytes in 0 blocks +==2765119== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==2765119== +==2765119== All heap blocks were freed -- no leaks are possible +==2765119== +==2765119== For lists of detected and suppressed errors, rerun with: -s +==2765119== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p2-load/tests/valgrind/B_stripped_m.txt b/p2-load/tests/valgrind/B_stripped_m.txt new file mode 100644 index 0000000..5b12257 --- /dev/null +++ b/p2-load/tests/valgrind/B_stripped_m.txt @@ -0,0 +1,19 @@ +==2765084== Memcheck, a memory error detector +==2765084== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2765084== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2765084== Command: ../y86 -m inputs/stripped.o +==2765084== +Contents of memory from 0100 to 0115: + 0100 30 f3 0f 00 00 00 20 31 40 13 fd ff ff ff 60 31 + 0110 70 08 01 00 00 +Contents of memory from 0200 to 020b: + 0200 aa bb cc dd 00 00 00 dd 00 00 00 +==2765084== +==2765084== HEAP SUMMARY: +==2765084== in use at exit: 0 bytes in 0 blocks +==2765084== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==2765084== +==2765084== All heap blocks were freed -- no leaks are possible +==2765084== +==2765084== For lists of detected and suppressed errors, rerun with: -s +==2765084== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p2-load/tests/valgrind/B_stripped_mH.txt b/p2-load/tests/valgrind/B_stripped_mH.txt new file mode 100644 index 0000000..0646d88 --- /dev/null +++ b/p2-load/tests/valgrind/B_stripped_mH.txt @@ -0,0 +1,25 @@ +==2765094== Memcheck, a memory error detector +==2765094== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2765094== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2765094== Command: ../y86 -mH inputs/stripped.o +==2765094== +01 00 00 01 10 00 02 00 00 00 00 00 45 4c 46 00 +Mini-ELF version 1 +Entry point 0x100 +There are 2 program headers, starting at offset 16 (0x10) +There is no symbol table present +There is no string table present +Contents of memory from 0100 to 0115: + 0100 30 f3 0f 00 00 00 20 31 40 13 fd ff ff ff 60 31 + 0110 70 08 01 00 00 +Contents of memory from 0200 to 020b: + 0200 aa bb cc dd 00 00 00 dd 00 00 00 +==2765094== +==2765094== HEAP SUMMARY: +==2765094== in use at exit: 0 bytes in 0 blocks +==2765094== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==2765094== +==2765094== All heap blocks were freed -- no leaks are possible +==2765094== +==2765094== For lists of detected and suppressed errors, rerun with: -s +==2765094== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p2-load/tests/valgrind/C_help.txt b/p2-load/tests/valgrind/C_help.txt new file mode 100644 index 0000000..6fa58dd --- /dev/null +++ b/p2-load/tests/valgrind/C_help.txt @@ -0,0 +1,23 @@ +==2764894== Memcheck, a memory error detector +==2764894== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2764894== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2764894== Command: ../y86 -h +==2764894== +Usage: ../y86 mini-elf-file + Options are: + -h Display usage + -H Show the Mini-ELF header + -a Show all with brief memory + -f Show all with full memory + -s Show the program headers + -m Show the memory contents (brief) + -M Show the memory contents (full) +==2764894== +==2764894== HEAP SUMMARY: +==2764894== in use at exit: 0 bytes in 0 blocks +==2764894== total heap usage: 1 allocs, 1 frees, 8,192 bytes allocated +==2764894== +==2764894== All heap blocks were freed -- no leaks are possible +==2764894== +==2764894== For lists of detected and suppressed errors, rerun with: -s +==2764894== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p2-load/tests/valgrind/C_more_flags_s.txt b/p2-load/tests/valgrind/C_more_flags_s.txt new file mode 100644 index 0000000..f5dd0f0 --- /dev/null +++ b/p2-load/tests/valgrind/C_more_flags_s.txt @@ -0,0 +1,19 @@ +==2765052== Memcheck, a memory error detector +==2765052== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2765052== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2765052== Command: ../y86 -s inputs/moreflags.o +==2765052== + Segment Offset Size VirtAddr Type Flags + 00 0x0060 0x0015 0x0100 DATA W + 01 0x0075 0x000b 0x0200 DATA X + 02 0x0080 0x0015 0x0300 DATA WX + 03 0x0090 0x000b 0x0200 DATA RWX +==2765052== +==2765052== HEAP SUMMARY: +==2765052== in use at exit: 0 bytes in 0 blocks +==2765052== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==2765052== +==2765052== All heap blocks were freed -- no leaks are possible +==2765052== +==2765052== For lists of detected and suppressed errors, rerun with: -s +==2765052== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p2-load/tests/valgrind/C_multiseg_f.txt b/p2-load/tests/valgrind/C_multiseg_f.txt new file mode 100644 index 0000000..b8459e0 --- /dev/null +++ b/p2-load/tests/valgrind/C_multiseg_f.txt @@ -0,0 +1,282 @@ +==2764995== Memcheck, a memory error detector +==2764995== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2764995== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2764995== Command: ../y86 -f inputs/multiseg.o +==2764995== +01 00 00 01 10 00 04 00 00 00 00 00 45 4c 46 00 +Mini-ELF version 1 +Entry point 0x100 +There are 4 program headers, starting at offset 16 (0x10) +There is no symbol table present +There is no string table present + Segment Offset Size VirtAddr Type Flags + 00 0x0060 0x0015 0x0100 CODE R X + 01 0x0075 0x000b 0x0200 DATA RW + 02 0x0080 0x0015 0x0300 CODE R X + 03 0x0090 0x000b 0x0200 DATA RW +Contents of memory from 0000 to 1000: + 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f3 0f 00 00 00 20 31 40 13 fd ff ff ff 60 31 + 0110 70 08 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 70 08 01 00 00 aa bb cc dd 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 30 f3 0f 00 00 00 20 31 40 13 fd ff ff ff 60 31 + 0310 70 08 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +==2764995== +==2764995== HEAP SUMMARY: +==2764995== in use at exit: 0 bytes in 0 blocks +==2764995== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==2764995== +==2764995== All heap blocks were freed -- no leaks are possible +==2764995== +==2764995== For lists of detected and suppressed errors, rerun with: -s +==2764995== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p2-load/tests/valgrind/C_multiseg_fsHM.txt b/p2-load/tests/valgrind/C_multiseg_fsHM.txt new file mode 100644 index 0000000..cba9a0f --- /dev/null +++ b/p2-load/tests/valgrind/C_multiseg_fsHM.txt @@ -0,0 +1,282 @@ +==2765002== Memcheck, a memory error detector +==2765002== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2765002== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2765002== Command: ../y86 -fsHM inputs/multiseg.o +==2765002== +01 00 00 01 10 00 04 00 00 00 00 00 45 4c 46 00 +Mini-ELF version 1 +Entry point 0x100 +There are 4 program headers, starting at offset 16 (0x10) +There is no symbol table present +There is no string table present + Segment Offset Size VirtAddr Type Flags + 00 0x0060 0x0015 0x0100 CODE R X + 01 0x0075 0x000b 0x0200 DATA RW + 02 0x0080 0x0015 0x0300 CODE R X + 03 0x0090 0x000b 0x0200 DATA RW +Contents of memory from 0000 to 1000: + 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f3 0f 00 00 00 20 31 40 13 fd ff ff ff 60 31 + 0110 70 08 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 70 08 01 00 00 aa bb cc dd 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 30 f3 0f 00 00 00 20 31 40 13 fd ff ff ff 60 31 + 0310 70 08 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +==2765002== +==2765002== HEAP SUMMARY: +==2765002== in use at exit: 0 bytes in 0 blocks +==2765002== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==2765002== +==2765002== All heap blocks were freed -- no leaks are possible +==2765002== +==2765002== For lists of detected and suppressed errors, rerun with: -s +==2765002== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p2-load/tests/valgrind/C_multiseg_sH.txt b/p2-load/tests/valgrind/C_multiseg_sH.txt new file mode 100644 index 0000000..963baed --- /dev/null +++ b/p2-load/tests/valgrind/C_multiseg_sH.txt @@ -0,0 +1,25 @@ +==2764979== Memcheck, a memory error detector +==2764979== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2764979== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2764979== Command: ../y86 -sH inputs/multiseg.o +==2764979== +01 00 00 01 10 00 04 00 00 00 00 00 45 4c 46 00 +Mini-ELF version 1 +Entry point 0x100 +There are 4 program headers, starting at offset 16 (0x10) +There is no symbol table present +There is no string table present + Segment Offset Size VirtAddr Type Flags + 00 0x0060 0x0015 0x0100 CODE R X + 01 0x0075 0x000b 0x0200 DATA RW + 02 0x0080 0x0015 0x0300 CODE R X + 03 0x0090 0x000b 0x0200 DATA RW +==2764979== +==2764979== HEAP SUMMARY: +==2764979== in use at exit: 0 bytes in 0 blocks +==2764979== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==2764979== +==2764979== All heap blocks were freed -- no leaks are possible +==2764979== +==2764979== For lists of detected and suppressed errors, rerun with: -s +==2764979== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p2-load/tests/valgrind/C_simple_H.txt b/p2-load/tests/valgrind/C_simple_H.txt new file mode 100644 index 0000000..59a0f42 --- /dev/null +++ b/p2-load/tests/valgrind/C_simple_H.txt @@ -0,0 +1,20 @@ +==2764926== Memcheck, a memory error detector +==2764926== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2764926== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2764926== Command: ../y86 -H inputs/simple.o +==2764926== +01 00 00 01 10 00 02 00 58 00 70 00 45 4c 46 00 +Mini-ELF version 1 +Entry point 0x100 +There are 2 program headers, starting at offset 16 (0x10) +There is a symbol table starting at offset 88 (0x58) +There is a string table starting at offset 112 (0x70) +==2764926== +==2764926== HEAP SUMMARY: +==2764926== in use at exit: 0 bytes in 0 blocks +==2764926== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==2764926== +==2764926== All heap blocks were freed -- no leaks are possible +==2764926== +==2764926== For lists of detected and suppressed errors, rerun with: -s +==2764926== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p2-load/tests/valgrind/C_simple_s.txt b/p2-load/tests/valgrind/C_simple_s.txt new file mode 100644 index 0000000..7f01334 --- /dev/null +++ b/p2-load/tests/valgrind/C_simple_s.txt @@ -0,0 +1,17 @@ +==2764935== Memcheck, a memory error detector +==2764935== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2764935== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2764935== Command: ../y86 -s inputs/simple.o +==2764935== + Segment Offset Size VirtAddr Type Flags + 00 0x0038 0x0015 0x0100 CODE R X + 01 0x004d 0x000b 0x0200 DATA RW +==2764935== +==2764935== HEAP SUMMARY: +==2764935== in use at exit: 0 bytes in 0 blocks +==2764935== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==2764935== +==2764935== All heap blocks were freed -- no leaks are possible +==2764935== +==2764935== For lists of detected and suppressed errors, rerun with: -s +==2764935== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p2-load/tests/valgrind/C_stripped_sM.txt b/p2-load/tests/valgrind/C_stripped_sM.txt new file mode 100644 index 0000000..3aedda9 --- /dev/null +++ b/p2-load/tests/valgrind/C_stripped_sM.txt @@ -0,0 +1,274 @@ +==2765036== Memcheck, a memory error detector +==2765036== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2765036== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2765036== Command: ../y86 -sM inputs/stripped.o +==2765036== + Segment Offset Size VirtAddr Type Flags + 00 0x0038 0x0015 0x0100 CODE R X + 01 0x004d 0x000b 0x0200 DATA RW +Contents of memory from 0000 to 1000: + 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f3 0f 00 00 00 20 31 40 13 fd ff ff ff 60 31 + 0110 70 08 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 aa bb cc dd 00 00 00 dd 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +==2765036== +==2765036== HEAP SUMMARY: +==2765036== in use at exit: 0 bytes in 0 blocks +==2765036== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==2765036== +==2765036== All heap blocks were freed -- no leaks are possible +==2765036== +==2765036== For lists of detected and suppressed errors, rerun with: -s +==2765036== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p2-load/y86 b/p2-load/y86 new file mode 100644 index 0000000000000000000000000000000000000000..fc8ef38dc6aa58a6dd0754f34cea4d8bf5db8424 GIT binary patch literal 24064 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 literal 0 HcmV?d00001 diff --git a/p2-load/y86.h b/p2-load/y86.h new file mode 100644 index 0000000..a55a4cb --- /dev/null +++ b/p2-load/y86.h @@ -0,0 +1,12 @@ +#ifndef __CS261_Y86__ +#define __CS261_Y86__ + +#include + +#define VADDRBITS 12 +#define MEMSIZE (1 << VADDRBITS) + +/* type declarations */ +typedef uint8_t byte_t; // byte + +#endif diff --git a/p3-disas/.clang-format b/p3-disas/.clang-format new file mode 100644 index 0000000..62fb300 --- /dev/null +++ b/p3-disas/.clang-format @@ -0,0 +1,7 @@ +BasedOnStyle: LLVM +BreakBeforeBraces: Attach +IndentCaseLabels: true +IndentWidth: 4 +TabWidth: 4 +UseTab: Never +ColumnLimit: 80 \ No newline at end of file diff --git a/p3-disas/Makefile b/p3-disas/Makefile new file mode 100644 index 0000000..1080ffc --- /dev/null +++ b/p3-disas/Makefile @@ -0,0 +1,51 @@ +# +# Simple Makefile +# Mike Lam, James Madison University, August 2016 +# +# This makefile builds a simple application that contains a main module +# (specified by the EXE variable) and a predefined list of additional modules +# (specified by the MODS variable). If there are any external library +# dependencies (e.g., the math library, "-lm"), list them in the LIBS variable. +# If there are any precompiled object files, list them in the OBJS variable. +# +# By default, this makefile will build the project with debugging symbols and +# without optimization. To change this, edit or remove the "-g" and "-O0" +# options in CFLAGS and LDFLAGS accordingly. +# +# By default, this makefile build the application using the GNU C compiler, +# adhering to the C99 standard with all warnings enabled. + + +# application-specific settings and run target + +EXE=y86 +MODS=p3-disas.o +OBJS=p1-check.o p2-load.o +LIBS= + +default: $(EXE) + +test: $(EXE) + TPREFIX=tests/ make -C tests test + +# compiler/linker settings + +CC=gcc +CFLAGS=-g -O0 -Wall --std=c99 -pedantic +LDFLAGS=-g -O0 + + +# build targets + +$(EXE): main.o $(MODS) $(OBJS) + $(CC) $(LDFLAGS) -o $(EXE) $^ $(LIBS) + +%.o: %.c + $(CC) -c $(CFLAGS) $< + +clean: + rm -f $(EXE) main.o $(MODS) + make -C tests clean + +.PHONY: default clean + diff --git a/p3-disas/elf.h b/p3-disas/elf.h new file mode 100644 index 0000000..92d56bf --- /dev/null +++ b/p3-disas/elf.h @@ -0,0 +1,98 @@ +#ifndef __CS261_ELF__ +#define __CS261_ELF__ + +#include +#include + +#include "y86.h" + +/* + Mini-ELF file format (byte 0 = first byte of the file) + +----------------------------------------------+ + | header (elf_hdr_t) - 16 bytes | + +----------------------------------------------+ + | program headers (elf_phdr_t) - 20 bytes each | + +----------------------------------------------+ + | program segments - variable length of bytes | + +----------------------------------------------+ + | symbol table - each entry is 4 bytes each | + +----------------------------------------------+ + | string table - variable length of strings | + +----------------------------------------------+ + + ELF header structure: + +----------------------------------------------------------------------------+ + | 0 1 | 2 3 | 4 5 | 6 7 | 8 9 | 10 11 | 12 13 14 15 | + | version | entry | phdr | numphdr | symtab | strtab | magic number | + +----------------------------------------------------------------------------+ + + Sample ELF header (all entries in hex, format is little endian): + +----------------------------------------------------------------------------+ + | 01 00 | 00 01 | 10 00 | 05 00 | ac 00 | c2 00 | 45 4c 46 00 | + | version | entry | phdr | numphdr | symtab | strtab | magic number | + +----------------------------------------------------------------------------+ + + version = 0x0001 entry = 0x0100 phdr = 0x0010 numphdr = 0x0005 + symtab = 0x00ac strtab = 0x00c2 magic = "ELF\0" + + Interpretation: + This file was created under version 1 of this format. When the program is + loaded into memory, the instruct at address 0x100 (256) will be executed + first. The first program header (which indicates segments in this file) + starts at offset 0x10 (16) into the file, and there are 5 program headers + total. The symbol table starts at offset 0xac (172) into this file, and the + string table starts at offset 0xc2 (194). The magic number is the string + "ELF\0" and is for error checking. +*/ +typedef struct __attribute__((__packed__)) elf { + uint16_t e_version; /* version should be 1 */ + uint16_t e_entry; /* entry point of program */ + uint16_t e_phdr_start; /* start of program headers */ + uint16_t e_num_phdr; /* number of program headers */ + uint16_t e_symtab; /* start of symbol table */ + uint16_t e_strtab; /* start of string table */ + uint32_t magic; /* ELF */ +} elf_hdr_t; + +typedef enum { + DATA, CODE, STACK, HEAP, UNKNOWN +} elf_segtype_t; + +/* + ELF program header structure (describing segments): + +-----------------------------------------------------------------------+ + | 0 1 2 3 | 4 5 6 7 | 8 9 10 11 | 12 13 | 14 15 | 16 17 18 19 | + | offset | size | virt addr | type | flags | magic number| + +-----------------------------------------------------------------------+ + + Flags store segment permissions as RWX (read/write/execute) in binary. + Examples: 100 (binary) = 4 (decimal/hex) = read-only (R ) + 101 (binary) = 5 (decimal/hex) = read-execute (R X) + 110 (binary) = 6 (decimal/hex) = read-write (RW ) + + Sample ELF program header (all entries in hex, format is little endian): + +-----------------------------------------------------------------------+ + | 74 00 00 00 | 12 00 00 00 | 00 01 00 00 | 01 00 | 05 00 | ef be ad de | + | offset | size | virt addr | type | flags | magic number| + +-----------------------------------------------------------------------+ + + offset = 0x00000074 size = 0x00000012 virt addr = 0x00000100 + type = 0x0001 (CODE) flags = 0x0005 (RX) magic = 0xDEADBEEF + + Interpretation: + The segment starts at offset 0x74 (116) in the file, and it is 0x12 (18) + bytes in size. It will be loaded into memory address 0x100 (256). Since it + is a CODE segment, it needs to have read-execute (RX) permissions attached. + The magic number is the value 0xDEADBEEF and is for error checking. +*/ +typedef struct __attribute__((__packed__)) elf_phdr { + uint32_t p_offset; /* beginning of the segment in the file (in bytes) */ + uint32_t p_size; /* number of bytes in the segment */ + uint32_t p_vaddr; /* intended virtual address of the beginning of + the segment in a running program's memory */ + uint16_t p_type; /* segment type (e.g., code, data, etc.) */ + uint16_t p_flags; /* permissions flags */ + uint32_t magic; /* DEADBEEF */ +} elf_phdr_t; + +#endif diff --git a/p3-disas/main.c b/p3-disas/main.c new file mode 100644 index 0000000..ff0c03b --- /dev/null +++ b/p3-disas/main.c @@ -0,0 +1,170 @@ +/* + * CS 261: Main driver + * + * Name: Nicholas Tamassia + * + * This code was developed in compliance with the JMU Honor code. + */ + +#include "p1-check.h" +#include "p2-load.h" +#include "p3-disas.h" + +/* + * helper function for printing help text + */ +void usage(char **argv) { + printf("Usage: %s mini-elf-file\n", argv[0]); + printf(" Options are:\n"); + printf(" -h Display usage\n"); + printf(" -H Show the Mini-ELF header\n"); + printf(" -a Show all with brief memory\n"); + printf(" -f Show all with full memory\n"); + printf(" -s Show the program headers\n"); + printf(" -m Show the memory contents (brief)\n"); + printf(" -M Show the memory contents (full)\n"); + printf(" -d Disassemble code contents\n"); + printf(" -D Disassemble data contents\n"); +} + +void exit_file_error(FILE *file) { + if (file) { + fclose(file); + } + + printf("Failed to read file\n"); + exit(EXIT_FAILURE); +} + +int main(int argc, char **argv) { + int c; + bool show_elf_header = false; + bool show_program_header = false; + bool show_memory_brief = false; + bool show_memory_full = false; + bool show_code = false; + bool show_data = false; + + while ((c = getopt(argc, argv, "hHafsmMdD")) != -1) { + switch (c) { + case 'h': + usage(argv); + return EXIT_SUCCESS; + case 'H': + show_elf_header = true; + break; + case 'a': + show_elf_header = true; + show_program_header = true; + show_memory_brief = true; + break; + case 'f': + show_elf_header = true; + show_program_header = true; + show_memory_full = true; + break; + case 's': + show_program_header = true; + break; + case 'm': + show_memory_brief = true; + break; + case 'M': + show_memory_full = true; + break; + case 'd': + show_code = true; + break; + case 'D': + show_data = true; + break; + default: + usage(argv); + return EXIT_FAILURE; + } + } + + /* File path was not the last argument */ + bool invalid_arguments = optind != argc - 1; + /* Attempted to ask for brief and full memory at same time */ + bool memory_flag_conflict = show_memory_brief && show_memory_full; + + if (invalid_arguments || memory_flag_conflict) { + usage(argv); + return EXIT_FAILURE; + } + + elf_hdr_t header = {0}; + FILE *header_file = fopen(argv[optind], "r"); + + /* Read contents of header_file into header */ + if (!read_header(header_file, &header)) { + exit_file_error(header_file); + } + + if (show_elf_header) { + dump_header(&header); + } + + elf_phdr_t phdrs[header.e_num_phdr]; + memset(phdrs, 0, sizeof(phdrs)); + + /* Read program headers into phdrs array */ + for (int i = 0; i < header.e_num_phdr; i++) { + uint16_t offset = header.e_phdr_start + i * sizeof(elf_phdr_t); + if (!read_phdr(header_file, offset, &phdrs[i])) { + exit_file_error(header_file); + } + } + + if (show_program_header) { + dump_phdrs(header.e_num_phdr, phdrs); + } + + byte_t memory[MEMSIZE]; + memset(memory, 0, MEMSIZE); + + /* Read memory segments into memory array */ + for (int i = 0; i < header.e_num_phdr; i++) { + if (!load_segment(header_file, memory, &phdrs[i])) { + exit_file_error(header_file); + } + } + + fclose(header_file); + + if (show_memory_brief) { + for (int i = 0; i < header.e_num_phdr; i++) { + uint32_t start = phdrs[i].p_vaddr; + uint32_t end = start + phdrs[i].p_size; + + dump_memory(memory, start, end); + } + } else if (show_memory_full) { + dump_memory(memory, 0, MEMSIZE); + } + + if (show_code) { + printf("Disassembly of executable contents:\n"); + + for (int i = 0; i < header.e_num_phdr; i++) { + if (phdrs[i].p_type == CODE) { + disassemble_code(memory, &phdrs[i], &header); + } + } + } + + if (show_data) { + printf("Disassembly of data contents:\n"); + + for (int i = 0; i < header.e_num_phdr; i++) { + if (phdrs[i].p_type == DATA && phdrs[i].p_flags == 4) { + disassemble_rodata(memory, &phdrs[i]); + } else if (phdrs[i].p_type == DATA) { + disassemble_data(memory, &phdrs[i]); + } + } + } + + return EXIT_SUCCESS; +} diff --git a/p3-disas/main.o b/p3-disas/main.o new file mode 100644 index 0000000000000000000000000000000000000000..df83110c4b94295670241cf48b8d4533d728bed3 GIT binary patch literal 17224 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 bQm^Q&cr?dvJk*TVKE?6BRBWjWX8ZpJ)MAcN literal 0 HcmV?d00001 diff --git a/p3-disas/p1-check.h b/p3-disas/p1-check.h new file mode 100644 index 0000000..5ce84e9 --- /dev/null +++ b/p3-disas/p1-check.h @@ -0,0 +1,29 @@ +#ifndef __CS261_P1__ +#define __CS261_P1__ + +#include +#include +#include +#include +#include +#include + +#include "elf.h" + +/** + * @brief Load a Mini-ELF header from an open file stream + * + * @param file File stream to use for input + * @param hdr Pointer to region where the Mini-ELF header should be loaded + * @returns True if the header was successfully loaded and verified, false otherwise + */ +bool read_header (FILE *file, elf_hdr_t *hdr); + +/** + * @brief Print Mini-ELF header information to standard out + * + * @param hdr Header with info to print + */ +void dump_header (elf_hdr_t *hdr); + +#endif diff --git a/p3-disas/p1-check.o b/p3-disas/p1-check.o new file mode 100644 index 0000000000000000000000000000000000000000..a943a48b0294ee909f5e10c422409af42e455650 GIT binary patch literal 3088 zcmbtWUuYvm82>iuwK29$JyZ@(bU-RsxGqUKq5e6|wQjoyJx|V71Ruh-*)-8+6E?Gw z3aw&P2&Guxd{pq&*J}~<3J2bu+{5|kixfd9)`uSUA&98ow>y(grwNtwgV~wy_x*m~ zd^0;c$@|vKRLn3yngK7tp(jy*jl|(N8xFHD2m|m(>d8On?B=g_QWm?>GJ?k_yq4|1h_yh_w?(YIQ(F{o z>=<`$DswQLV;AYWcGGIzvJQx|ccrm%0ISIx44p75`iVgC*Q^73;U3Cbws9|Y9a7h~ zo8Q~(r$~*Jgfm4#>%c&9YW3?INtujhOKn1Gvx_E*XJaQ3dQzLW1s8`@4W`ZZo+L{Y zKHlc0U?&cRIP6l;Ug~gZ(I!VzCDlyH!%R5*ubDRP+@w828%~ea;Y!IXjp9pV@49}i zRPoqwkOa%){xYjpN*-tF`f!~#5@5FI`Yv;@4F|01R~CJz%!;m)N9B1|tbG4~uKp7v<+ZmGS`j zRbe~-^yK98?A+XZ;PHTEGUf#{J(>wZH?ul6W~MKU2$*W=!A2hloz3Z2=O6~KO;{Wo z8I2h>83!=JI6|Qr!k6FhqY{7b8W{B<<7|IlVgrLuAWn@ePY-Kw=#$vwKyU0VWJIwS z2}fI}WHKKA$Os8xr1K-*@dlwagkRh-QM|pnqoH`X+M^hGap*k`hIn5W92eBV;_%Qh zl$Ls0sXyEs#0Id@d(rJ_1Ulg(h*KV^5BCtUXS?t(cEMlif`gCWPA>X@AU8d8b>h-Y z?&{Rk>(*>;_R_?Rm4gCNARm;gl2;A*LecS|iU*t*0Nom<5A6lf_hA1pw!i*~>@x+Y zJ&^d9UGQ%Oj^~!nZkzvu!XH%dpA}rqe_!A-54{(%zoRZZ8ET%>f*|>i3*J)#r**0P z%NqZ@;J?v@|DncT68ulQ@ITl1UkUyf3O|LI+|Roj|E}Qwr0~`Hf6@3o!v9U-tNEG8 zNBbivA(GYbyzs%qYZk9S?71KHMLF`_CCB7$or9ToxC7>Vtp=uFiJXN>xl9+U=~cLE z;vF`MxBJ37!e8_P6R-cO>+@yQP$svSE8wqzD`);+Jwr9EPro6uh>_h_7mvQ?!db-V ztYopNmJkVdgn+&g8p@mHj37TFaCu(~7&5f+9Za8}&LQP|P<;lqlvAH>TmU25gtC5= zg!UXhiIR@o_R|ps$?rr4WIEYTU_g!~hx&DWK_aMguOUvixL*H;(7z^hveWB-8v~S6 z*Y61Zn^GuxT~DX5)BE2QKP_@!=>5~Lht$jW-)U}|YMhdyeIORxkK;~y!a8l$miXzs YOi2{e_wNymb<&>^g|`3jh#b29U%e&kb^rhX literal 0 HcmV?d00001 diff --git a/p3-disas/p2-load.h b/p3-disas/p2-load.h new file mode 100644 index 0000000..e15cfa7 --- /dev/null +++ b/p3-disas/p2-load.h @@ -0,0 +1,52 @@ +#ifndef __CS261_P2__ +#define __CS261_P2__ + +#include +#include +#include +#include +#include +#include + +#include "elf.h" +#include "y86.h" + +/** + * @brief Load a Mini-ELF program header from an open file stream + * + * @param file File stream to use for input + * @param offset Byte offset in file where the program header is located + * @param phdr Pointer to memory where the Mini-ELF program header should be loaded + * @returns True if the header was successfully loaded and verified, false otherwise + */ +bool read_phdr (FILE *file, uint16_t offset, elf_phdr_t *phdr); + +/** + * @brief Load a Mini-ELF program segment from an open file stream + * + * @param file File stream to use for input + * @param memory Pointer to the beginning of the Y86 address space into which + * the segment should be loaded + * @param phdr Pointer to the program header for the segment that should be loaded + * @returns True if the segment was successfully loaded, false otherwise + */ +bool load_segment (FILE *file, byte_t *memory, elf_phdr_t *phdr); + +/** + * @brief Print Mini-ELF program header information to standard out + * + * @param numphdrs Number of program headers to print + * @param phdrs Pointer to array of program headers with info to print + */ +void dump_phdrs (uint16_t numphdrs, elf_phdr_t *phdrs); + +/** + * @brief Print a portion of a Y86 address space + * + * @param memory Pointer to the beginning of the Y86 address space + * @param start Byte offset where printing should begin + * @param end Byte offset where printing should end + */ +void dump_memory (byte_t *memory, uint16_t start, uint16_t end); + +#endif diff --git a/p3-disas/p2-load.o b/p3-disas/p2-load.o new file mode 100644 index 0000000000000000000000000000000000000000..657b8101649af6e70b68a5cc6cb80231093d0187 GIT binary patch literal 4104 zcmbtWUu;uV7(ch|=p19M|A+=+u7oK>S6ecTLohAlj!T#uuog)M)^6=({As(~-bzQD z7%vcR#texj`ec0YK_1jMMi_s}AS@^`^Noka^Z}BRkvJj`jafFo@7#0B z%0{fL7}5h-AFdFs7p5}NqQ0^B9>^n7w5Sw{AFG5@wa603l$EE~U_$Jm#i zqdKO7tXG8m^C%t(`#1h^>4)F*-gBrmQ+E!YL@x<9uG+JZjXceR=HNT_4f@lEXNm9F z7baT<_9U|4*Ebe!RP>5RJ3^yuuQ!8vgsF|hPsrhZwmx3ec2JfWS75I3DwwCoxNh3i z8xz3H%A*@xXdxR{=nK*}r!Q9fRg4N0an3g;&FK}l_9i@zw&@j@whA6c-+)}aP#A6L z%xZbG4qk-Jtm4dzobhwU%b2~@LPcVcXb<#kjR8sJixBE26sQPQ`3h>w)On94rD=?C zHw~f@Xxc<)xjuh%2qab@8qu@umey^Suf2(mnVpL$GnC*jF z)9uW*#x+rwrUmH!%{FP;ck0Ca!orMjS{_Z6dn0=ydmlEEox8Ge- zI^VH6Xqay-Rsuh_og<+{FU{gsyE_S$!~N#0sZ2`qP}w2SnAb~Q1rBb*WvnvI7^2`_ zofjt1W81{=a;Nv230C!{a2Mg3hfQ;q_|6ucqta+a0rHzy^x=8m;pJ5i7^&1Y;X8F; zVPWBN1J6X!r8z%{=9G7&lJB$EKnRt)aTVl9n535-Aw|U8 zFp!WJVQ@Ji0+j zr@%HW?I~cH8u~;{C6e*Mfuu^}TROWpMLOf%9UVPVG#-s?>XhOH&Uoq|QBaK>%7Sjr zyZ{K=#5FkOaV;CqX(~zP(}UDgjtu5Cc&Pg`nqtD{kwv_JAfZAod~f4ZG@Z{-_1F#ub?z#$~0YNZ5w+^Y@_* z=jZQJ8_v()_colLClbgFrL{yK%$jP>1DsP+hY|rTRnSNvna~m>(3i`RfSNTI{n<2r zI7uLr)lvcYwzTB5ME^my-j~S-2G#6fO4WwI20f();)A>%{jp_ZDW% z8CGYGTWgBg3K*yohGC`M>}m~TBY^NMqb z+K0dveX=xxGijE^pW*?WviGwKU9;FCYq$R!3LhWe literal 0 HcmV?d00001 diff --git a/p3-disas/p3-disas.c b/p3-disas/p3-disas.c new file mode 100644 index 0000000..606be53 --- /dev/null +++ b/p3-disas/p3-disas.c @@ -0,0 +1,574 @@ +/* + * CS 261 PA3: Mini-ELF disassembler + * + * Name: Nicholas Tamassia + * + * This code was developed in compliance with the JMU Honor code. + */ + +#include "p3-disas.h" + +/********************************************************************** + * REQUIRED FUNCTIONS + *********************************************************************/ + +bool has_register_byte(y86_inst_t ins); + +bool has_register_byte(y86_inst_t ins) { + switch (ins.icode) { + case CMOV: + case IRMOVQ: + case RMMOVQ: + case MRMOVQ: + case OPQ: + case PUSHQ: + case POPQ: + return true; + default: + return false; + } +} + +bool has_valc_bytes(y86_inst_t ins); + +bool has_valc_bytes(y86_inst_t ins) { + switch (ins.icode) { + case IRMOVQ: + case RMMOVQ: + case MRMOVQ: + case JUMP: + case CALL: + return true; + default: + return false; + } +} + +void validate_opcode(y86_inst_t *ins, byte_t *current_byte); + +void validate_opcode(y86_inst_t *ins, byte_t *current_byte) { + if (ins == NULL || current_byte == NULL) { + return; + } + + y86_icode_t opcode_high = *current_byte >> 4; + byte_t opcode_low = *current_byte & 0xF; + ins->icode = opcode_high; + + switch (ins->icode) { + case CMOV: + if (opcode_low >= BADCMOV) { + ins->icode = INVALID; + } + ins->ifun.cmov = opcode_low; + break; + + case OPQ: + if (opcode_low >= BADOP) { + ins->icode = INVALID; + } + ins->ifun.op = opcode_low; + break; + + case JUMP: + if (opcode_low >= BADJUMP) { + ins->icode = INVALID; + } + ins->ifun.jump = opcode_low; + break; + + case IOTRAP: + if (opcode_low >= BADTRAP) { + ins->icode = INVALID; + } + ins->ifun.trap = opcode_low; + break; + + case HALT: + case NOP: + case IRMOVQ: + case RMMOVQ: + case MRMOVQ: + case CALL: + case RET: + case PUSHQ: + case POPQ: + if (opcode_low != 0x0) { + ins->icode = INVALID; + } + ins->ifun.b = opcode_low; + break; + + default: + ins->icode = INVALID; + break; + } +} + +void validate_registers(y86_inst_t *ins, byte_t *current_byte); + +void validate_registers(y86_inst_t *ins, byte_t *current_byte) { + if (ins == NULL || current_byte == NULL) { + return; + } + + ins->ra = *current_byte >> 4; + ins->rb = *current_byte & 0xF; + + switch (ins->icode) { + case IRMOVQ: + if (ins->ra != NOREG || ins->rb == NOREG) { + ins->icode = INVALID; + } + break; + + case PUSHQ: + case POPQ: + if (ins->ra == NOREG || ins->rb != NOREG) { + ins->icode = INVALID; + } + break; + + case RMMOVQ: + case MRMOVQ: + if (ins->ra == NOREG) { + ins->icode = INVALID; + } + break; + + case CMOV: + case OPQ: + if (ins->ra == NOREG || ins->rb == NOREG) { + ins->icode = INVALID; + } + break; + default: + break; + } +} + +void assign_valc(y86_inst_t *ins, byte_t *current_byte); + +void assign_valc(y86_inst_t *ins, byte_t *current_byte) { + if (ins == NULL || current_byte == NULL) { + return; + } + + uint64_t valc = 0; + for (int i = 0; i < 8; i++) { + valc |= (uint64_t) * (current_byte + i) << (8 * i); + } + + switch (ins->icode) { + case IRMOVQ: + ins->valC.v = valc; + break; + case RMMOVQ: + case MRMOVQ: + ins->valC.d = valc; + break; + case JUMP: + case CALL: + ins->valC.dest = valc; + break; + default: + break; + } +} + +y86_inst_t fetch(y86_t *cpu, byte_t *memory) { + y86_inst_t ins = {0}; + + if (cpu == NULL || memory == NULL) { + ins.icode = INVALID; + return ins; + } + + if (cpu->pc > MEMSIZE - 10) { + ins.icode = INVALID; + cpu->stat = ADR; + return ins; + } + + byte_t *current_byte = &memory[cpu->pc]; + + validate_opcode(&ins, current_byte); + if (ins.icode == INVALID) { + cpu->stat = INS; + return ins; + } + + current_byte++; + + if (has_register_byte(ins)) { + validate_registers(&ins, current_byte); + + if (ins.icode == INVALID) { + cpu->stat = INS; + return ins; + } + + current_byte++; + } + + if (has_valc_bytes(ins)) { + assign_valc(&ins, current_byte); + current_byte += 8; + } + + ins.valP = current_byte - memory; + + if (ins.icode == HALT) { + cpu->stat = HLT; + } else { + cpu->stat = AOK; + } + + return ins; +} + +/********************************************************************** + * OPTIONAL FUNCTIONS + *********************************************************************/ + +void print_register(y86_regnum_t y86_register); + +void print_register(y86_regnum_t y86_register) { + switch (y86_register) { + case RAX: + printf("%%rax"); + break; + case RCX: + printf("%%rcx"); + break; + case RDX: + printf("%%rdx"); + break; + case RBX: + printf("%%rbx"); + break; + case RSP: + printf("%%rsp"); + break; + case RBP: + printf("%%rbp"); + break; + case RSI: + printf("%%rsi"); + break; + case RDI: + printf("%%rdi"); + break; + case R8: + case R9: + case R10: + case R11: + case R12: + case R13: + case R14: + printf("%%r%d", y86_register); + break; + case NOREG: + break; + } +} + +void print_cmov(y86_cmov_t cmov); + +void print_cmov(y86_cmov_t cmov) { + switch (cmov) { + case RRMOVQ: + printf("rrmovq"); + break; + case CMOVLE: + printf("cmovle"); + break; + case CMOVL: + printf("cmovl"); + break; + case CMOVE: + printf("cmove"); + break; + case CMOVNE: + printf("cmovne"); + break; + case CMOVGE: + printf("cmovge"); + break; + case CMOVG: + printf("cmovg"); + break; + case BADCMOV: + break; + } +} + +void print_opq(y86_op_t opq); + +void print_opq(y86_op_t opq) { + switch (opq) { + case ADD: + printf("addq"); + break; + case SUB: + printf("subq"); + break; + case AND: + printf("andq"); + break; + case XOR: + printf("xorq"); + break; + case BADOP: + break; + } +} + +void print_jump(y86_jump_t jump); + +void print_jump(y86_jump_t jump) { + switch (jump) { + case JMP: + printf("jmp"); + break; + case JLE: + printf("jle"); + break; + case JL: + printf("jl"); + break; + case JE: + printf("je"); + break; + case JNE: + printf("jne"); + break; + case JGE: + printf("jge"); + break; + case JG: + printf("jg"); + break; + case BADJUMP: + break; + } +} + +void disassemble(y86_inst_t *inst) { + if (inst == NULL) { + return; + } + + switch (inst->icode) { + case HALT: + printf("halt"); + break; + case NOP: + printf("nop"); + break; + case CMOV: + print_cmov(inst->ifun.cmov); + printf(" "); + print_register(inst->ra); + printf(", "); + print_register(inst->rb); + break; + case IRMOVQ: + printf("irmovq 0x%lx, ", inst->valC.v); + print_register(inst->rb); + break; + case RMMOVQ: + printf("rmmovq "); + print_register(inst->ra); + printf(", "); + printf("0x%lx", inst->valC.d); + if (inst->rb != NOREG) { + printf("("); + print_register(inst->rb); + printf(")"); + } + break; + case MRMOVQ: + printf("mrmovq 0x%lx", inst->valC.d); + if (inst->rb != NOREG) { + printf("("); + print_register(inst->rb); + printf(")"); + } + printf(", "); + print_register(inst->ra); + break; + case OPQ: + print_opq(inst->ifun.op); + printf(" "); + print_register(inst->ra); + printf(", "); + print_register(inst->rb); + break; + case JUMP: + print_jump(inst->ifun.jump); + printf(" 0x%lx", inst->valC.dest); + break; + case CALL: + printf("call 0x%lx", inst->valC.dest); + break; + case RET: + printf("ret"); + break; + case PUSHQ: + printf("pushq "); + print_register(inst->ra); + break; + case POPQ: + printf("popq "); + print_register(inst->ra); + break; + case IOTRAP: + printf("iotrap %d", inst->ifun.trap); + break; + default: + break; + } +} + +void disassemble_code(byte_t *memory, elf_phdr_t *phdr, elf_hdr_t *hdr) { + if (memory == NULL || phdr == NULL || hdr == NULL) { + printf("Failed to disassemble code\n"); + return; + } + + y86_t cpu = {0}; + y86_inst_t ins = {0}; + uint32_t p_vaddr_end = phdr->p_vaddr + phdr->p_size; + cpu.pc = phdr->p_vaddr; + + printf(" 0x%03lx:%*s| .pos 0x%03lx code\n", cpu.pc, 31, "", cpu.pc); + + while (cpu.pc < p_vaddr_end) { + if (cpu.pc == hdr->e_entry) { + printf(" 0x%03lx:%*s| _start:\n", cpu.pc, 31, ""); + } + + ins = fetch(&cpu, memory); + + if (ins.icode == INVALID) { + printf("Invalid opcode: 0x%02x\n", memory[cpu.pc]); + break; + } + + printf(" 0x%03lx: ", cpu.pc); + + int bytes_printed = 1; + printf("%02x ", ins.icode << 4 | ins.ifun.b); + + if (has_register_byte(ins)) { + printf("%02x ", (ins.ra << 4 | ins.rb)); + bytes_printed++; + } + + if (has_valc_bytes(ins)) { + for (int i = 0; i < 8; i++) { + printf("%02lx ", (ins.valC.d >> (8 * i)) & 0xFF); + } + + bytes_printed += 8; + } + + /* Print #x spaces to align the "|" */ + printf("%*s| ", 30 - 3 * bytes_printed, ""); + disassemble(&ins); + printf("\n"); + + cpu.pc = ins.valP; + } + + printf("\n"); +} + +void disassemble_data(byte_t *memory, elf_phdr_t *phdr) { + if (memory == NULL || phdr == NULL) { + printf("Failed to disassemble data\n"); + return; + } + + uint32_t pc = phdr->p_vaddr; + uint32_t p_vaddr_end = phdr->p_vaddr + phdr->p_size; + + printf(" 0x%03x:%*s| .pos 0x%03x data\n", pc, 31, "", pc); + + while (pc < p_vaddr_end) { + uint64_t byte_string = 0; + + printf(" 0x%03x: ", pc); + for (int i = 0; i < 8; i++) { + byte_string |= (uint64_t)(memory[pc + i]) << (8 * i); + printf("%02x ", memory[pc + i]); + } + printf(" | .quad 0x%lx\n", byte_string); + + pc += 8; + } + + printf("\n"); +} + +void disassemble_rodata(byte_t *memory, elf_phdr_t *phdr) { + if (memory == NULL || phdr == NULL) { + printf("Failed to disassemble read-only data\n"); + return; + } + + uint32_t pc = phdr->p_vaddr; + uint32_t p_vaddr_end = phdr->p_vaddr + phdr->p_size; + + printf(" 0x%03x:%*s| .pos 0x%03x rodata\n", pc, 31, "", pc); + + uint32_t string_address = pc; /* Address of current .string */ + uint32_t char_count = 0; + + while (pc < p_vaddr_end) { + bool on_line_start = (char_count + 1) % 10 == 1; + bool on_null_terminator = memory[pc] == 0x00; + bool break_line = on_null_terminator || (char_count + 1) % 10 == 0; + + if (on_line_start) { + printf(" 0x%03x: ", pc); + } + + printf("%02x ", memory[pc]); + + /* If reached end of line, print #x spaces to align the "|" */ + if (break_line) { + int spaces = 27 - (char_count % 10) * 3; + printf("%*s| ", spaces, ""); + } + + /* Prints out the full string if reached the end of the first line */ + if (break_line && char_count <= 9) { + byte_t *current_byte = &memory[string_address]; + + printf(" .string \""); + while (*current_byte != 0x00) { + printf("%c", *current_byte); + current_byte++; + } + printf("\""); + } + + if (break_line) { + printf("\n"); + } + + /* Reset char count to indicate new word on null terminator */ + if (on_null_terminator) { + string_address = pc + 1; + char_count = 0; + } else { + char_count++; + } + + pc++; + } + + printf("\n"); +} diff --git a/p3-disas/p3-disas.h b/p3-disas/p3-disas.h new file mode 100644 index 0000000..116ac49 --- /dev/null +++ b/p3-disas/p3-disas.h @@ -0,0 +1,55 @@ +#ifndef __CS261_P3__ +#define __CS261_P3__ + +#include +#include +#include +#include +#include +#include + +#include "elf.h" +#include "y86.h" + +/** + * @brief Load a Y86 instruction from memory + * + * @param cpu Pointer to Y86 CPU structure with the PC address to be loaded + * @param memory Pointer to the beginning of the Y86 address space + * @returns Populated Y86 instruction structure + */ +y86_inst_t fetch (y86_t *cpu, byte_t *memory); + +/** + * @brief Print the disassembly of a Y86 instruction to standard out + * + * @param inst Pointer to Y86 instruction structure to be printed + */ +void disassemble (y86_inst_t *inst); + +/** + * @brief Print the disassembly of a Y86 code segment + * + * @param memory Pointer to the beginning of the Y86 address space + * @param phdr Program header of segment to be printed + * @param hdr File header (needed to detect the entry point) + */ +void disassemble_code (byte_t *memory, elf_phdr_t *phdr, elf_hdr_t *hdr); + +/** + * @brief Print the disassembly of a Y86 read/write data segment + * + * @param memory Pointer to the beginning of the Y86 address space + * @param phdr Program header of segment to be printed + */ +void disassemble_data (byte_t *memory, elf_phdr_t *phdr); + +/** + * @brief Print the disassembly of a Y86 read-only data segment + * + * @param memory Pointer to the beginning of the Y86 address space + * @param phdr Program header of segment to be printed + */ +void disassemble_rodata (byte_t *memory, elf_phdr_t *phdr); + +#endif diff --git a/p3-disas/p3-disas.o b/p3-disas/p3-disas.o new file mode 100644 index 0000000000000000000000000000000000000000..9ffb45f880164c5ae6b1c66556dc7295c9d2650a GIT binary patch literal 26152 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 literal 0 HcmV?d00001 diff --git a/p3-disas/tests/Makefile b/p3-disas/tests/Makefile new file mode 100644 index 0000000..cf0e4f5 --- /dev/null +++ b/p3-disas/tests/Makefile @@ -0,0 +1,81 @@ +# +# Simple Test Makefile +# Mike Lam, James Madison University, August 2016 +# +# This version of the Makefile includes support for building a test suite. The +# recommended framework is Check (http://check.sourceforge.net/). To build and +# run the test suite, execute the "test" target. The test suite must be located +# in a module called "testsuite". The MODS, LIBS, and OBJS variables work as +# they do in the main Makefile. +# +# To change the default build target (which executes when you just type +# "make"), change the right-hand side of the definition of the "default" +# target. +# +# By default, this makefile will build the project with debugging symbols and +# without optimization. To change this, edit or remove the "-g" and "-O0" +# options in CFLAGS and LDFLAGS accordingly. +# +# By default, this makefile build the application using the GNU C compiler, +# adhering to the C99 standard with all warnings enabled. + + +# application-specific settings and run target + +EXE=../y86 +TEST=testsuite +MODS=public.o +OBJS=../p1-check.o ../p2-load.o ../p3-disas.o private.o +LIBS= + +UTESTOUT=utests.txt +ITESTOUT=itests.txt + +default: $(TEST) + +$(EXE): + make -C ../ + +test: utest itest + @echo "========================================" + +utest: $(EXE) $(TEST) + @echo "========================================" + @echo " UNIT TESTS" + @./$(TEST) 2>/dev/null >$(UTESTOUT) + @cat $(UTESTOUT) | sed -n -e '/Checks/,$$p' | sed -e 's/^private.*:[EF]://g' + +itest: $(EXE) + @echo "========================================" + @echo " INTEGRATION TESTS" + @./integration.sh | tee $(ITESTOUT) + + +# compiler/linker settings + +CC=gcc +CFLAGS=-g -O0 -Wall --std=c99 -pedantic +LDFLAGS=-g -O0 + +CFLAGS+=-I/opt/homebrew/include -Wno-gnu-zero-variadic-macro-arguments +LDFLAGS+=-L/opt/homebrew/lib +LIBS+=-lcheck -lm -lpthread + +ifeq ($(shell uname -s),Linux) + LIBS+=-lrt -lsubunit +endif + + +# build targets + +$(TEST): $(TEST).o $(MODS) $(OBJS) + $(CC) $(LDFLAGS) -o $(TEST) $^ $(LIBS) + +%.o: %.c + $(CC) -c $(CFLAGS) $< + +clean: + rm -rf $(TEST) $(TEST).o $(MODS) $(UTESTOUT) $(ITESTOUT) outputs valgrind + +.PHONY: default clean test unittest inttest + diff --git a/p3-disas/tests/expected/A_bad_filename.txt b/p3-disas/tests/expected/A_bad_filename.txt new file mode 100644 index 0000000..127d3fc --- /dev/null +++ b/p3-disas/tests/expected/A_bad_filename.txt @@ -0,0 +1 @@ +Failed to read file diff --git a/p3-disas/tests/expected/A_bad_no_elf.txt b/p3-disas/tests/expected/A_bad_no_elf.txt new file mode 100644 index 0000000..127d3fc --- /dev/null +++ b/p3-disas/tests/expected/A_bad_no_elf.txt @@ -0,0 +1 @@ +Failed to read file diff --git a/p3-disas/tests/expected/A_bad_phdr.txt b/p3-disas/tests/expected/A_bad_phdr.txt new file mode 100644 index 0000000..127d3fc --- /dev/null +++ b/p3-disas/tests/expected/A_bad_phdr.txt @@ -0,0 +1 @@ +Failed to read file diff --git a/p3-disas/tests/expected/A_bad_short_header.txt b/p3-disas/tests/expected/A_bad_short_header.txt new file mode 100644 index 0000000..127d3fc --- /dev/null +++ b/p3-disas/tests/expected/A_bad_short_header.txt @@ -0,0 +1 @@ +Failed to read file diff --git a/p3-disas/tests/expected/A_bad_short_phdr.txt b/p3-disas/tests/expected/A_bad_short_phdr.txt new file mode 100644 index 0000000..127d3fc --- /dev/null +++ b/p3-disas/tests/expected/A_bad_short_phdr.txt @@ -0,0 +1 @@ +Failed to read file diff --git a/p3-disas/tests/expected/A_data.txt b/p3-disas/tests/expected/A_data.txt new file mode 100644 index 0000000..f2f788c --- /dev/null +++ b/p3-disas/tests/expected/A_data.txt @@ -0,0 +1,6 @@ +Disassembly of data contents: + 0x200: | .pos 0x200 data + 0x200: 88 77 66 55 44 33 22 11 | .quad 0x1122334455667788 + 0x208: 78 56 34 12 00 00 00 00 | .quad 0x12345678 + 0x210: 42 00 00 00 00 00 00 00 | .quad 0x42 + diff --git a/p3-disas/tests/expected/A_data_code.txt b/p3-disas/tests/expected/A_data_code.txt new file mode 100644 index 0000000..02ccbc6 --- /dev/null +++ b/p3-disas/tests/expected/A_data_code.txt @@ -0,0 +1,5 @@ +Disassembly of executable contents: + 0x100: | .pos 0x100 code + 0x100: | _start: + 0x100: 00 | halt + diff --git a/p3-disas/tests/expected/A_extra_params.txt b/p3-disas/tests/expected/A_extra_params.txt new file mode 100644 index 0000000..d8cdcea --- /dev/null +++ b/p3-disas/tests/expected/A_extra_params.txt @@ -0,0 +1,11 @@ +Usage: ../y86 mini-elf-file + Options are: + -h Display usage + -H Show the Mini-ELF header + -a Show all with brief memory + -f Show all with full memory + -s Show the program headers + -m Show the memory contents (brief) + -M Show the memory contents (full) + -d Disassemble code contents + -D Disassemble data contents diff --git a/p3-disas/tests/expected/A_interleaved.txt b/p3-disas/tests/expected/A_interleaved.txt new file mode 100644 index 0000000..2a36f13 --- /dev/null +++ b/p3-disas/tests/expected/A_interleaved.txt @@ -0,0 +1,22 @@ +Disassembly of executable contents: + 0x100: | .pos 0x100 code + 0x100: | _start: + 0x100: 00 | halt + + 0x400: | .pos 0x400 code + 0x400: 10 | nop + 0x401: 00 | halt + +Disassembly of data contents: + 0x200: | .pos 0x200 data + 0x200: 10 00 00 00 00 00 00 00 | .quad 0x10 + + 0x300: | .pos 0x300 rodata + 0x300: 74 65 73 74 00 | .string "test" + + 0x500: | .pos 0x500 data + 0x500: 78 56 34 12 00 00 00 00 | .quad 0x12345678 + + 0x600: | .pos 0x600 rodata + 0x600: 61 67 61 69 6e 00 | .string "again" + diff --git a/p3-disas/tests/expected/A_invalid.txt b/p3-disas/tests/expected/A_invalid.txt new file mode 100644 index 0000000..1fc31b4 --- /dev/null +++ b/p3-disas/tests/expected/A_invalid.txt @@ -0,0 +1,6 @@ +Disassembly of executable contents: + 0x100: | .pos 0x100 code + 0x100: | _start: + 0x100: 30 f3 0f 00 00 00 20 31 40 13 | irmovq 0x134031200000000f, %rbx +Invalid opcode: 0xfd + diff --git a/p3-disas/tests/expected/A_missing_file.txt b/p3-disas/tests/expected/A_missing_file.txt new file mode 100644 index 0000000..d8cdcea --- /dev/null +++ b/p3-disas/tests/expected/A_missing_file.txt @@ -0,0 +1,11 @@ +Usage: ../y86 mini-elf-file + Options are: + -h Display usage + -H Show the Mini-ELF header + -a Show all with brief memory + -f Show all with full memory + -s Show the program headers + -m Show the memory contents (brief) + -M Show the memory contents (full) + -d Disassemble code contents + -D Disassemble data contents diff --git a/p3-disas/tests/expected/A_rodata.txt b/p3-disas/tests/expected/A_rodata.txt new file mode 100644 index 0000000..6918389 --- /dev/null +++ b/p3-disas/tests/expected/A_rodata.txt @@ -0,0 +1,4 @@ +Disassembly of data contents: + 0x200: | .pos 0x200 rodata + 0x200: 68 65 6c 6c 6f 00 | .string "hello" + diff --git a/p3-disas/tests/expected/A_rodata_code.txt b/p3-disas/tests/expected/A_rodata_code.txt new file mode 100644 index 0000000..02ccbc6 --- /dev/null +++ b/p3-disas/tests/expected/A_rodata_code.txt @@ -0,0 +1,5 @@ +Disassembly of executable contents: + 0x100: | .pos 0x100 code + 0x100: | _start: + 0x100: 00 | halt + diff --git a/p3-disas/tests/expected/A_rodata_long.txt b/p3-disas/tests/expected/A_rodata_long.txt new file mode 100644 index 0000000..029f49b --- /dev/null +++ b/p3-disas/tests/expected/A_rodata_long.txt @@ -0,0 +1,10 @@ +Disassembly of data contents: + 0x200: | .pos 0x200 rodata + 0x200: 30 31 32 33 34 35 36 37 38 39 | .string "0123456789" + 0x20a: 00 | + 0x20b: 68 65 6c 6c 6f 20 77 6f 72 6c | .string "hello world" + 0x215: 64 00 | + 0x217: 61 62 63 64 65 66 67 68 69 6a | .string "abcdefghijklmnopqrstuvwxyz" + 0x221: 6b 6c 6d 6e 6f 70 71 72 73 74 | + 0x22b: 75 76 77 78 79 7a 00 | + diff --git a/p3-disas/tests/expected/A_rodata_multi.txt b/p3-disas/tests/expected/A_rodata_multi.txt new file mode 100644 index 0000000..2ebe064 --- /dev/null +++ b/p3-disas/tests/expected/A_rodata_multi.txt @@ -0,0 +1,6 @@ +Disassembly of data contents: + 0x200: | .pos 0x200 rodata + 0x200: 66 6f 6f 00 | .string "foo" + 0x204: 77 30 30 74 00 | .string "w00t" + 0x209: 75 70 20 64 6f 77 6e 00 | .string "up down" + diff --git a/p3-disas/tests/expected/A_rodata_shakespeare.txt b/p3-disas/tests/expected/A_rodata_shakespeare.txt new file mode 100644 index 0000000..553a78f --- /dev/null +++ b/p3-disas/tests/expected/A_rodata_shakespeare.txt @@ -0,0 +1,20 @@ +Disassembly of data contents: + 0x200: | .pos 0x200 rodata + 0x200: 54 6f 20 62 65 2c 20 6f 72 20 | .string "To be, or not to be: that is the question" + 0x20a: 6e 6f 74 20 74 6f 20 62 65 3a | + 0x214: 20 74 68 61 74 20 69 73 20 74 | + 0x21e: 68 65 20 71 75 65 73 74 69 6f | + 0x228: 6e 00 | + 0x22a: 57 68 61 74 27 73 20 69 6e 20 | .string "What's in a name? A rose by any other name would smell as sweet." + 0x234: 61 20 6e 61 6d 65 3f 20 41 20 | + 0x23e: 72 6f 73 65 20 62 79 20 61 6e | + 0x248: 79 20 6f 74 68 65 72 20 6e 61 | + 0x252: 6d 65 20 77 6f 75 6c 64 20 73 | + 0x25c: 6d 65 6c 6c 20 61 73 20 73 77 | + 0x266: 65 65 74 2e 00 | + 0x26b: 42 75 74 2c 20 66 6f 72 20 6d | .string "But, for my own part, it was Greek to me." + 0x275: 79 20 6f 77 6e 20 70 61 72 74 | + 0x27f: 2c 20 69 74 20 77 61 73 20 47 | + 0x289: 72 65 65 6b 20 74 6f 20 6d 65 | + 0x293: 2e 00 | + diff --git a/p3-disas/tests/expected/A_unaligned1.txt b/p3-disas/tests/expected/A_unaligned1.txt new file mode 100644 index 0000000..4f16bfd --- /dev/null +++ b/p3-disas/tests/expected/A_unaligned1.txt @@ -0,0 +1,26 @@ +01 00 18 01 10 00 03 00 00 00 00 00 45 4c 46 00 +Mini-ELF version 1 +Entry point 0x118 +There are 3 program headers, starting at offset 16 (0x10) +There is no symbol table present +There is no string table present + Segment Offset Size VirtAddr Type Flags + 00 0x004c 0x0009 0x0000 CODE R X + 01 0x0055 0x0002 0x0118 CODE R X + 02 0x0057 0x0008 0x013a DATA RW +Contents of memory from 0000 to 0009: + 0000 70 18 01 00 00 00 00 00 00 +Contents of memory from 0118 to 011a: + 0110 10 00 +Contents of memory from 013a to 0142: + 0130 39 30 00 00 00 00 + 0140 00 00 +Disassembly of executable contents: + 0x000: | .pos 0x000 code + 0x000: 70 18 01 00 00 00 00 00 00 | jmp 0x118 + + 0x118: | .pos 0x118 code + 0x118: | _start: + 0x118: 10 | nop + 0x119: 00 | halt + diff --git a/p3-disas/tests/expected/A_unaligned2.txt b/p3-disas/tests/expected/A_unaligned2.txt new file mode 100644 index 0000000..6857997 --- /dev/null +++ b/p3-disas/tests/expected/A_unaligned2.txt @@ -0,0 +1,29 @@ +01 00 55 05 10 00 03 00 00 00 00 00 45 4c 46 00 +Mini-ELF version 1 +Entry point 0x555 +There are 3 program headers, starting at offset 16 (0x10) +There is no symbol table present +There is no string table present + Segment Offset Size VirtAddr Type Flags + 00 0x004c 0x0009 0x0000 CODE R X + 01 0x0055 0x001f 0x0555 CODE R X + 02 0x0074 0x0008 0x0987 DATA RW +Contents of memory from 0000 to 0009: + 0000 70 55 05 00 00 00 00 00 00 +Contents of memory from 0555 to 0574: + 0550 30 f0 4d 01 00 00 00 00 00 00 30 + 0560 f3 de 00 00 00 00 00 00 00 30 f1 6f 00 00 00 00 + 0570 00 00 00 00 +Contents of memory from 0987 to 098f: + 0980 dd cc bb aa 00 00 00 00 +Disassembly of executable contents: + 0x000: | .pos 0x000 code + 0x000: 70 55 05 00 00 00 00 00 00 | jmp 0x555 + + 0x555: | .pos 0x555 code + 0x555: | _start: + 0x555: 30 f0 4d 01 00 00 00 00 00 00 | irmovq 0x14d, %rax + 0x55f: 30 f3 de 00 00 00 00 00 00 00 | irmovq 0xde, %rbx + 0x569: 30 f1 6f 00 00 00 00 00 00 00 | irmovq 0x6f, %rcx + 0x573: 00 | halt + diff --git a/p3-disas/tests/expected/B_iotrap.txt b/p3-disas/tests/expected/B_iotrap.txt new file mode 100644 index 0000000..f846789 --- /dev/null +++ b/p3-disas/tests/expected/B_iotrap.txt @@ -0,0 +1,10 @@ +Disassembly of executable contents: + 0x100: | .pos 0x100 code + 0x100: | _start: + 0x100: c0 | iotrap 0 + 0x101: c1 | iotrap 1 + 0x102: c2 | iotrap 2 + 0x103: c3 | iotrap 3 + 0x104: c4 | iotrap 4 + 0x105: c5 | iotrap 5 + diff --git a/p3-disas/tests/expected/B_jmp.txt b/p3-disas/tests/expected/B_jmp.txt new file mode 100644 index 0000000..0a63de6 --- /dev/null +++ b/p3-disas/tests/expected/B_jmp.txt @@ -0,0 +1,11 @@ +Disassembly of executable contents: + 0x100: | .pos 0x100 code + 0x100: | _start: + 0x100: 70 88 77 66 55 44 33 22 11 | jmp 0x1122334455667788 + 0x109: 71 77 66 55 44 33 22 11 88 | jle 0x8811223344556677 + 0x112: 72 66 55 44 33 22 11 88 77 | jl 0x7788112233445566 + 0x11b: 73 55 44 33 22 11 88 77 66 | je 0x6677881122334455 + 0x124: 74 44 33 22 11 88 77 66 55 | jne 0x5566778811223344 + 0x12d: 75 33 22 11 88 77 66 55 44 | jge 0x4455667788112233 + 0x136: 76 22 11 88 77 66 55 44 33 | jg 0x3344556677881122 + diff --git a/p3-disas/tests/expected/B_ninebyte.txt b/p3-disas/tests/expected/B_ninebyte.txt new file mode 100644 index 0000000..322463d --- /dev/null +++ b/p3-disas/tests/expected/B_ninebyte.txt @@ -0,0 +1,6 @@ +Disassembly of executable contents: + 0x100: | .pos 0x100 code + 0x100: | _start: + 0x100: 70 88 77 66 55 44 33 22 11 | jmp 0x1122334455667788 + 0x109: 80 11 22 33 44 55 66 77 88 | call 0x8877665544332211 + diff --git a/p3-disas/tests/expected/B_simple.txt b/p3-disas/tests/expected/B_simple.txt new file mode 100644 index 0000000..243a57e --- /dev/null +++ b/p3-disas/tests/expected/B_simple.txt @@ -0,0 +1,19 @@ +01 00 00 01 10 00 01 00 00 00 00 00 45 4c 46 00 +Mini-ELF version 1 +Entry point 0x100 +There are 1 program headers, starting at offset 16 (0x10) +There is no symbol table present +There is no string table present + Segment Offset Size VirtAddr Type Flags + 00 0x0024 0x0017 0x0100 CODE R X +Contents of memory from 0100 to 0117: + 0100 30 f0 68 24 00 00 00 00 00 00 30 f3 34 12 00 00 + 0110 00 00 00 00 60 03 00 +Disassembly of executable contents: + 0x100: | .pos 0x100 code + 0x100: | _start: + 0x100: 30 f0 68 24 00 00 00 00 00 00 | irmovq 0x2468, %rax + 0x10a: 30 f3 34 12 00 00 00 00 00 00 | irmovq 0x1234, %rbx + 0x114: 60 03 | addq %rax, %rbx + 0x116: 00 | halt + diff --git a/p3-disas/tests/expected/B_simple_multi.txt b/p3-disas/tests/expected/B_simple_multi.txt new file mode 100644 index 0000000..6bd9226 --- /dev/null +++ b/p3-disas/tests/expected/B_simple_multi.txt @@ -0,0 +1,17 @@ +Disassembly of executable contents: + 0x100: | .pos 0x100 code + 0x100: 10 | nop + 0x101: 10 | nop + 0x102: 10 | nop + 0x103: | _start: + 0x103: 30 f0 68 24 00 00 00 00 00 00 | irmovq 0x2468, %rax + 0x10d: 30 f3 34 12 00 00 00 00 00 00 | irmovq 0x1234, %rbx + 0x117: 60 03 | addq %rax, %rbx + 0x119: 70 00 02 00 00 00 00 00 00 | jmp 0x200 + + 0x200: | .pos 0x200 code + 0x200: 30 f1 78 56 00 00 00 00 00 00 | irmovq 0x5678, %rcx + 0x20a: 30 f2 14 15 00 00 00 00 00 00 | irmovq 0x1514, %rdx + 0x214: 61 21 | subq %rdx, %rcx + 0x216: 00 | halt + diff --git a/p3-disas/tests/expected/B_tenbyte.txt b/p3-disas/tests/expected/B_tenbyte.txt new file mode 100644 index 0000000..72d4b75 --- /dev/null +++ b/p3-disas/tests/expected/B_tenbyte.txt @@ -0,0 +1,9 @@ +Disassembly of executable contents: + 0x100: | .pos 0x100 code + 0x100: | _start: + 0x100: 30 f0 88 77 66 55 44 33 22 11 | irmovq 0x1122334455667788, %rax + 0x10a: 40 12 21 43 65 87 78 56 34 12 | rmmovq %rcx, 0x1234567887654321(%rdx) + 0x114: 50 12 78 56 34 12 21 43 65 87 | mrmovq 0x8765432112345678(%rdx), %rcx + 0x11e: 40 1f 21 43 65 87 78 56 34 12 | rmmovq %rcx, 0x1234567887654321 + 0x128: 50 1f 78 56 34 12 21 43 65 87 | mrmovq 0x8765432112345678, %rcx + diff --git a/p3-disas/tests/expected/C_cmov.txt b/p3-disas/tests/expected/C_cmov.txt new file mode 100644 index 0000000..abf4b94 --- /dev/null +++ b/p3-disas/tests/expected/C_cmov.txt @@ -0,0 +1,11 @@ +Disassembly of executable contents: + 0x100: | .pos 0x100 code + 0x100: | _start: + 0x100: 20 01 | rrmovq %rax, %rcx + 0x102: 21 23 | cmovle %rdx, %rbx + 0x104: 22 45 | cmovl %rsp, %rbp + 0x106: 23 67 | cmove %rsi, %rdi + 0x108: 24 89 | cmovne %r8, %r9 + 0x10a: 25 ab | cmovge %r10, %r11 + 0x10c: 26 ce | cmovg %r12, %r14 + diff --git a/p3-disas/tests/expected/C_help.txt b/p3-disas/tests/expected/C_help.txt new file mode 100644 index 0000000..d8cdcea --- /dev/null +++ b/p3-disas/tests/expected/C_help.txt @@ -0,0 +1,11 @@ +Usage: ../y86 mini-elf-file + Options are: + -h Display usage + -H Show the Mini-ELF header + -a Show all with brief memory + -f Show all with full memory + -s Show the program headers + -m Show the memory contents (brief) + -M Show the memory contents (full) + -d Disassemble code contents + -D Disassemble data contents diff --git a/p3-disas/tests/expected/C_opq.txt b/p3-disas/tests/expected/C_opq.txt new file mode 100644 index 0000000..ee43e76 --- /dev/null +++ b/p3-disas/tests/expected/C_opq.txt @@ -0,0 +1,8 @@ +Disassembly of executable contents: + 0x100: | .pos 0x100 code + 0x100: | _start: + 0x100: 60 23 | addq %rdx, %rbx + 0x102: 61 01 | subq %rax, %rcx + 0x104: 62 45 | andq %rsp, %rbp + 0x106: 63 67 | xorq %rsi, %rdi + diff --git a/p3-disas/tests/expected/C_twobyte.txt b/p3-disas/tests/expected/C_twobyte.txt new file mode 100644 index 0000000..2960202 --- /dev/null +++ b/p3-disas/tests/expected/C_twobyte.txt @@ -0,0 +1,8 @@ +Disassembly of executable contents: + 0x100: | .pos 0x100 code + 0x100: | _start: + 0x100: 20 01 | rrmovq %rax, %rcx + 0x102: 60 23 | addq %rdx, %rbx + 0x104: a0 6f | pushq %rsi + 0x106: b0 7f | popq %rdi + diff --git a/p3-disas/tests/expected/D_onebyte.txt b/p3-disas/tests/expected/D_onebyte.txt new file mode 100644 index 0000000..f77ec94 --- /dev/null +++ b/p3-disas/tests/expected/D_onebyte.txt @@ -0,0 +1,7 @@ +Disassembly of executable contents: + 0x100: | .pos 0x100 code + 0x100: | _start: + 0x100: 00 | halt + 0x101: 10 | nop + 0x102: 90 | ret + diff --git a/p3-disas/tests/inputs/bad-no_elf.o b/p3-disas/tests/inputs/bad-no_elf.o new file mode 100644 index 0000000000000000000000000000000000000000..8de3a521c09f5975984deb5d1882daa6a92080af GIT binary patch literal 137 zcmZQ%U|}33{{R0!!LWb>sA1LaGk1ZaAj}F>TEM`;SPIlt1;q6XEKDsxalL~4Vuqaj`~nE8 NEV0Ot0Z14z002VM9y$O3 literal 0 HcmV?d00001 diff --git a/p3-disas/tests/inputs/bad-phdr.o b/p3-disas/tests/inputs/bad-phdr.o new file mode 100644 index 0000000000000000000000000000000000000000..2abcf6e7268a00d73d97738d789da90a53a909dc GIT binary patch literal 117 zcmZQ%U|GzVU;Bo88QF~BL)C$ Cwi+n_ literal 0 HcmV?d00001 diff --git a/p3-disas/tests/inputs/bad-short_header.o b/p3-disas/tests/inputs/bad-short_header.o new file mode 100644 index 0000000000000000000000000000000000000000..f9d0e54e3d9ac2650880a25683f63a7ce4dca383 GIT binary patch literal 8 PcmZQ%U|&^rSt2G$E!4AHv)COhEK92ml2^pd_`p1jwlfGZ6xD6Vnqj^B4ef CcO3Ts literal 0 HcmV?d00001 diff --git a/p3-disas/tests/inputs/invalid.o b/p3-disas/tests/inputs/invalid.o new file mode 100644 index 0000000000000000000000000000000000000000..6f003428ce519091883880ff0b26c9065a3e276c GIT binary patch literal 88 zcmZQ%U|IMN0YK{=5z$u&7008RP^tN;K2 literal 0 HcmV?d00001 diff --git a/p3-disas/tests/inputs/rodata.o b/p3-disas/tests/inputs/rodata.o new file mode 100644 index 0000000000000000000000000000000000000000..8bbce5610b8b412552f0dcdd36f97050c5308bef GIT binary patch literal 63 zcmZQ%U|%=5#gCAdrBD5{Wt|j5u*gAn_@>K^TJ-7=;yB0S6cU`p;kf zhR955L}j*z9nDouF}e&*==*+s7HXe`{bS=lqhmnB6+(m$0x50@xmrP+R2h$+leEFp zN#QJ^^|0{P@d|6ikQmJX>jwl)>leKshrT-_Iqo{xgp`@3rcEyuF52WYoIUO~Drf~+ NGyBMVEB%gZ`TabvJxU|>)JVg^PKVr6*0Z|%J(AXgkD#)J?P5D+lywBmgq5fWGMA~Gp(L>=J+*`Z0Hp*I_y7O^ literal 0 HcmV?d00001 diff --git a/p3-disas/tests/inputs/tenbyte.o b/p3-disas/tests/inputs/tenbyte.o new file mode 100644 index 0000000000000000000000000000000000000000..3be1315d5f0e47e8961f62c95aaf92069d9835d6 GIT binary patch literal 86 zcmZQ%U|q%08Q8jH~;_u literal 0 HcmV?d00001 diff --git a/p3-disas/tests/inputs/unaligned.o b/p3-disas/tests/inputs/unaligned.o new file mode 100644 index 0000000000000000000000000000000000000000..079af97dac4c242aee033ca0292e291b4e5cb635 GIT binary patch literal 95 zcmZQ%kYE&GU}gXTS06V9A0W*M<}olZGO#kd-?#Q&D3H$t#1f1Mv2Y-t1Bk7FVhjvy RV08r`1t1{6U}*qh0RTWW4Ilsj literal 0 HcmV?d00001 diff --git a/p3-disas/tests/inputs/unaligned2.o b/p3-disas/tests/inputs/unaligned2.o new file mode 100644 index 0000000000000000000000000000000000000000..2d0318969b9a91f7d5f4a3efc16f62d0bfbe3b5a GIT binary patch literal 124 zcmZQ%2xS#uU}gXTS06V9A0W*M<}olZGO#kd-?#Q&D3C7?#G$MRu@WGk1BlzfirK*G g3P1`#z~F-~Bb4>|9)!VQ@G&3CVz_%|_bLz@0Ih-+1^@s6 literal 0 HcmV?d00001 diff --git a/p3-disas/tests/integration.sh b/p3-disas/tests/integration.sh new file mode 100644 index 0000000..ed5a430 --- /dev/null +++ b/p3-disas/tests/integration.sh @@ -0,0 +1,87 @@ +#!/bin/bash + +# extract executable name from Makefile +EXE=$(grep "EXE=" Makefile | sed -e "s/EXE=//") + +# detect timeout utility (i.e., "timeout" on Linux and "gtimeout" on MacOS) +# and set timeout interval +TIMEOUT="timeout" +TIMEOUT_INTERVAL="3s" +$TIMEOUT --help &>/dev/null +if [[ $? -ne 0 ]]; then + TIMEOUT="gtimeout" +fi + +# Valgrind additional output flags +VG_FLAGS="--leak-check=full --track-origins=yes" + +function run_test { + + # parameters + TAG=$1 + ARGS=$2 + PTAG=$(printf '%-30s' "$TAG") + + # file paths + OUTPUT=outputs/$TAG.txt + DIFF=outputs/$TAG.diff + EXPECT=expected/$TAG.txt + VALGRND=valgrind/$TAG.txt + + # run test with timeout + $TIMEOUT $TIMEOUT_INTERVAL $EXE $ARGS 2>/dev/null >"$OUTPUT" + if [ "$?" -lt 124 ]; then + + # no timeout; compare output to the expected version + diff -u "$OUTPUT" "$EXPECT" >"$DIFF" + if [ -s "$DIFF" ]; then + + # try alternative solution (if it exists) + EXPECT=expected/$TAG-2.txt + if [ -e "$EXPECT" ]; then + diff -u "$OUTPUT" "$EXPECT" >"$DIFF" + if [ -s "$DIFF" ]; then + echo "$PTAG FAIL (see ${TPREFIX}$DIFF for details)" + else + echo "$PTAG pass" + fi + else + echo "$PTAG FAIL (see ${TPREFIX}$DIFF for details)" + fi + else + echo "$PTAG pass" + fi + + # run valgrind + $TIMEOUT $TIMEOUT_INTERVAL valgrind $VG_FLAGS $EXE $ARGS &>$VALGRND + else + echo "$PTAG FAIL (crash or timeout)" + fi +} + +# initialize output folders +mkdir -p outputs +mkdir -p valgrind +rm -f outputs/* valgrind/* + +# run individual tests +source itests.include + +# check for memory leaks +LEAK=`cat valgrind/*.txt | grep 'definitely lost' | grep -v ' 0 bytes in 0 blocks'` +if [ -z "$LEAK" ]; then + echo "No memory leak found." +else + echo "Memory leak(s) found. See files listed below for details." + grep 'definitely lost' valgrind/*.txt | sed -e 's/:.*$//g' | awk "{print \" - ${TPREFIX}\" \$0}" +fi + +# check for uninitialized values +LEAK=`cat valgrind/*.txt | grep 'uninitialised value'` +if [ -z "$LEAK" ]; then + echo "No uninitialized value found." +else + echo "Uninitialized value(s) found. See files listed below for details." + grep 'uninitialised value' valgrind/*.txt | sed -e 's/:.*$//g' | awk "{print \" - ${TPREFIX}\" \$0}" +fi + diff --git a/p3-disas/tests/itests.include b/p3-disas/tests/itests.include new file mode 100644 index 0000000..12f5443 --- /dev/null +++ b/p3-disas/tests/itests.include @@ -0,0 +1,34 @@ +# list of integration tests +# format: run_test +# used as the root for all filenames (i.e., "expected/$TAG.txt") +# command-line arguments to test + +run_test D_onebyte "-d inputs/onebyte.o" +run_test C_help "-h" +run_test C_twobyte "-d inputs/twobyte.o" +run_test C_cmov "-d inputs/cmov.o" +run_test C_opq "-d inputs/opq.o" +run_test B_ninebyte "-d inputs/ninebyte.o" +run_test B_jmp "-d inputs/jmp.o" +run_test B_tenbyte "-d inputs/tenbyte.o" +run_test B_simple "-a -d inputs/simple.o" +run_test B_simple_multi "-d inputs/simple_multi.o" +run_test B_iotrap "-d inputs/iotrap.o" +run_test A_data_code "-d inputs/data.o" +run_test A_rodata_code "-d inputs/rodata.o" +run_test A_data "-D inputs/data.o" +run_test A_rodata "-D inputs/rodata.o" +run_test A_rodata_multi "-D inputs/rodata_multi.o" +run_test A_interleaved "-d -D inputs/interleaved.o" +run_test A_invalid "-d inputs/invalid.o" +run_test A_bad_no_elf "-d inputs/bad-no_elf.o" +run_test A_bad_phdr "-d inputs/bad-phdr.o" +run_test A_bad_short_header "-d inputs/bad-short_header.o" +run_test A_bad_short_phdr "-d inputs/bad-short_phdr.o" +run_test A_bad_filename "-d inputs/bad-nonexist.o" +run_test A_missing_file "-d" +run_test A_extra_params "-d inputs/onebyte.o extra params" +run_test A_unaligned1 "-a -d inputs/unaligned.o" +run_test A_unaligned2 "-a -d inputs/unaligned2.o" +run_test A_rodata_long "-D inputs/rodata_long.o" +run_test A_rodata_shakespeare "-D inputs/rodata_shakespeare.o" diff --git a/p3-disas/tests/itests.txt b/p3-disas/tests/itests.txt new file mode 100644 index 0000000..7003399 --- /dev/null +++ b/p3-disas/tests/itests.txt @@ -0,0 +1,31 @@ +D_onebyte pass +C_help pass +C_twobyte pass +C_cmov pass +C_opq pass +B_ninebyte pass +B_jmp pass +B_tenbyte pass +B_simple pass +B_simple_multi pass +B_iotrap pass +A_data_code pass +A_rodata_code pass +A_data pass +A_rodata pass +A_rodata_multi pass +A_interleaved pass +A_invalid pass +A_bad_no_elf pass +A_bad_phdr pass +A_bad_short_header pass +A_bad_short_phdr pass +A_bad_filename pass +A_missing_file pass +A_extra_params pass +A_unaligned1 pass +A_unaligned2 pass +A_rodata_long pass +A_rodata_shakespeare pass +No memory leak found. +No uninitialized value found. diff --git a/p3-disas/tests/outputs/A_bad_filename.diff b/p3-disas/tests/outputs/A_bad_filename.diff new file mode 100644 index 0000000..e69de29 diff --git a/p3-disas/tests/outputs/A_bad_filename.txt b/p3-disas/tests/outputs/A_bad_filename.txt new file mode 100644 index 0000000..127d3fc --- /dev/null +++ b/p3-disas/tests/outputs/A_bad_filename.txt @@ -0,0 +1 @@ +Failed to read file diff --git a/p3-disas/tests/outputs/A_bad_no_elf.diff b/p3-disas/tests/outputs/A_bad_no_elf.diff new file mode 100644 index 0000000..e69de29 diff --git a/p3-disas/tests/outputs/A_bad_no_elf.txt b/p3-disas/tests/outputs/A_bad_no_elf.txt new file mode 100644 index 0000000..127d3fc --- /dev/null +++ b/p3-disas/tests/outputs/A_bad_no_elf.txt @@ -0,0 +1 @@ +Failed to read file diff --git a/p3-disas/tests/outputs/A_bad_phdr.diff b/p3-disas/tests/outputs/A_bad_phdr.diff new file mode 100644 index 0000000..e69de29 diff --git a/p3-disas/tests/outputs/A_bad_phdr.txt b/p3-disas/tests/outputs/A_bad_phdr.txt new file mode 100644 index 0000000..127d3fc --- /dev/null +++ b/p3-disas/tests/outputs/A_bad_phdr.txt @@ -0,0 +1 @@ +Failed to read file diff --git a/p3-disas/tests/outputs/A_bad_short_header.diff b/p3-disas/tests/outputs/A_bad_short_header.diff new file mode 100644 index 0000000..e69de29 diff --git a/p3-disas/tests/outputs/A_bad_short_header.txt b/p3-disas/tests/outputs/A_bad_short_header.txt new file mode 100644 index 0000000..127d3fc --- /dev/null +++ b/p3-disas/tests/outputs/A_bad_short_header.txt @@ -0,0 +1 @@ +Failed to read file diff --git a/p3-disas/tests/outputs/A_bad_short_phdr.diff b/p3-disas/tests/outputs/A_bad_short_phdr.diff new file mode 100644 index 0000000..e69de29 diff --git a/p3-disas/tests/outputs/A_bad_short_phdr.txt b/p3-disas/tests/outputs/A_bad_short_phdr.txt new file mode 100644 index 0000000..127d3fc --- /dev/null +++ b/p3-disas/tests/outputs/A_bad_short_phdr.txt @@ -0,0 +1 @@ +Failed to read file diff --git a/p3-disas/tests/outputs/A_data.diff b/p3-disas/tests/outputs/A_data.diff new file mode 100644 index 0000000..e69de29 diff --git a/p3-disas/tests/outputs/A_data.txt b/p3-disas/tests/outputs/A_data.txt new file mode 100644 index 0000000..f2f788c --- /dev/null +++ b/p3-disas/tests/outputs/A_data.txt @@ -0,0 +1,6 @@ +Disassembly of data contents: + 0x200: | .pos 0x200 data + 0x200: 88 77 66 55 44 33 22 11 | .quad 0x1122334455667788 + 0x208: 78 56 34 12 00 00 00 00 | .quad 0x12345678 + 0x210: 42 00 00 00 00 00 00 00 | .quad 0x42 + diff --git a/p3-disas/tests/outputs/A_data_code.diff b/p3-disas/tests/outputs/A_data_code.diff new file mode 100644 index 0000000..e69de29 diff --git a/p3-disas/tests/outputs/A_data_code.txt b/p3-disas/tests/outputs/A_data_code.txt new file mode 100644 index 0000000..02ccbc6 --- /dev/null +++ b/p3-disas/tests/outputs/A_data_code.txt @@ -0,0 +1,5 @@ +Disassembly of executable contents: + 0x100: | .pos 0x100 code + 0x100: | _start: + 0x100: 00 | halt + diff --git a/p3-disas/tests/outputs/A_extra_params.diff b/p3-disas/tests/outputs/A_extra_params.diff new file mode 100644 index 0000000..e69de29 diff --git a/p3-disas/tests/outputs/A_extra_params.txt b/p3-disas/tests/outputs/A_extra_params.txt new file mode 100644 index 0000000..d8cdcea --- /dev/null +++ b/p3-disas/tests/outputs/A_extra_params.txt @@ -0,0 +1,11 @@ +Usage: ../y86 mini-elf-file + Options are: + -h Display usage + -H Show the Mini-ELF header + -a Show all with brief memory + -f Show all with full memory + -s Show the program headers + -m Show the memory contents (brief) + -M Show the memory contents (full) + -d Disassemble code contents + -D Disassemble data contents diff --git a/p3-disas/tests/outputs/A_interleaved.diff b/p3-disas/tests/outputs/A_interleaved.diff new file mode 100644 index 0000000..e69de29 diff --git a/p3-disas/tests/outputs/A_interleaved.txt b/p3-disas/tests/outputs/A_interleaved.txt new file mode 100644 index 0000000..2a36f13 --- /dev/null +++ b/p3-disas/tests/outputs/A_interleaved.txt @@ -0,0 +1,22 @@ +Disassembly of executable contents: + 0x100: | .pos 0x100 code + 0x100: | _start: + 0x100: 00 | halt + + 0x400: | .pos 0x400 code + 0x400: 10 | nop + 0x401: 00 | halt + +Disassembly of data contents: + 0x200: | .pos 0x200 data + 0x200: 10 00 00 00 00 00 00 00 | .quad 0x10 + + 0x300: | .pos 0x300 rodata + 0x300: 74 65 73 74 00 | .string "test" + + 0x500: | .pos 0x500 data + 0x500: 78 56 34 12 00 00 00 00 | .quad 0x12345678 + + 0x600: | .pos 0x600 rodata + 0x600: 61 67 61 69 6e 00 | .string "again" + diff --git a/p3-disas/tests/outputs/A_invalid.diff b/p3-disas/tests/outputs/A_invalid.diff new file mode 100644 index 0000000..e69de29 diff --git a/p3-disas/tests/outputs/A_invalid.txt b/p3-disas/tests/outputs/A_invalid.txt new file mode 100644 index 0000000..1fc31b4 --- /dev/null +++ b/p3-disas/tests/outputs/A_invalid.txt @@ -0,0 +1,6 @@ +Disassembly of executable contents: + 0x100: | .pos 0x100 code + 0x100: | _start: + 0x100: 30 f3 0f 00 00 00 20 31 40 13 | irmovq 0x134031200000000f, %rbx +Invalid opcode: 0xfd + diff --git a/p3-disas/tests/outputs/A_missing_file.diff b/p3-disas/tests/outputs/A_missing_file.diff new file mode 100644 index 0000000..e69de29 diff --git a/p3-disas/tests/outputs/A_missing_file.txt b/p3-disas/tests/outputs/A_missing_file.txt new file mode 100644 index 0000000..d8cdcea --- /dev/null +++ b/p3-disas/tests/outputs/A_missing_file.txt @@ -0,0 +1,11 @@ +Usage: ../y86 mini-elf-file + Options are: + -h Display usage + -H Show the Mini-ELF header + -a Show all with brief memory + -f Show all with full memory + -s Show the program headers + -m Show the memory contents (brief) + -M Show the memory contents (full) + -d Disassemble code contents + -D Disassemble data contents diff --git a/p3-disas/tests/outputs/A_rodata.diff b/p3-disas/tests/outputs/A_rodata.diff new file mode 100644 index 0000000..e69de29 diff --git a/p3-disas/tests/outputs/A_rodata.txt b/p3-disas/tests/outputs/A_rodata.txt new file mode 100644 index 0000000..6918389 --- /dev/null +++ b/p3-disas/tests/outputs/A_rodata.txt @@ -0,0 +1,4 @@ +Disassembly of data contents: + 0x200: | .pos 0x200 rodata + 0x200: 68 65 6c 6c 6f 00 | .string "hello" + diff --git a/p3-disas/tests/outputs/A_rodata_code.diff b/p3-disas/tests/outputs/A_rodata_code.diff new file mode 100644 index 0000000..e69de29 diff --git a/p3-disas/tests/outputs/A_rodata_code.txt b/p3-disas/tests/outputs/A_rodata_code.txt new file mode 100644 index 0000000..02ccbc6 --- /dev/null +++ b/p3-disas/tests/outputs/A_rodata_code.txt @@ -0,0 +1,5 @@ +Disassembly of executable contents: + 0x100: | .pos 0x100 code + 0x100: | _start: + 0x100: 00 | halt + diff --git a/p3-disas/tests/outputs/A_rodata_long.diff b/p3-disas/tests/outputs/A_rodata_long.diff new file mode 100644 index 0000000..e69de29 diff --git a/p3-disas/tests/outputs/A_rodata_long.txt b/p3-disas/tests/outputs/A_rodata_long.txt new file mode 100644 index 0000000..029f49b --- /dev/null +++ b/p3-disas/tests/outputs/A_rodata_long.txt @@ -0,0 +1,10 @@ +Disassembly of data contents: + 0x200: | .pos 0x200 rodata + 0x200: 30 31 32 33 34 35 36 37 38 39 | .string "0123456789" + 0x20a: 00 | + 0x20b: 68 65 6c 6c 6f 20 77 6f 72 6c | .string "hello world" + 0x215: 64 00 | + 0x217: 61 62 63 64 65 66 67 68 69 6a | .string "abcdefghijklmnopqrstuvwxyz" + 0x221: 6b 6c 6d 6e 6f 70 71 72 73 74 | + 0x22b: 75 76 77 78 79 7a 00 | + diff --git a/p3-disas/tests/outputs/A_rodata_multi.diff b/p3-disas/tests/outputs/A_rodata_multi.diff new file mode 100644 index 0000000..e69de29 diff --git a/p3-disas/tests/outputs/A_rodata_multi.txt b/p3-disas/tests/outputs/A_rodata_multi.txt new file mode 100644 index 0000000..2ebe064 --- /dev/null +++ b/p3-disas/tests/outputs/A_rodata_multi.txt @@ -0,0 +1,6 @@ +Disassembly of data contents: + 0x200: | .pos 0x200 rodata + 0x200: 66 6f 6f 00 | .string "foo" + 0x204: 77 30 30 74 00 | .string "w00t" + 0x209: 75 70 20 64 6f 77 6e 00 | .string "up down" + diff --git a/p3-disas/tests/outputs/A_rodata_shakespeare.diff b/p3-disas/tests/outputs/A_rodata_shakespeare.diff new file mode 100644 index 0000000..e69de29 diff --git a/p3-disas/tests/outputs/A_rodata_shakespeare.txt b/p3-disas/tests/outputs/A_rodata_shakespeare.txt new file mode 100644 index 0000000..553a78f --- /dev/null +++ b/p3-disas/tests/outputs/A_rodata_shakespeare.txt @@ -0,0 +1,20 @@ +Disassembly of data contents: + 0x200: | .pos 0x200 rodata + 0x200: 54 6f 20 62 65 2c 20 6f 72 20 | .string "To be, or not to be: that is the question" + 0x20a: 6e 6f 74 20 74 6f 20 62 65 3a | + 0x214: 20 74 68 61 74 20 69 73 20 74 | + 0x21e: 68 65 20 71 75 65 73 74 69 6f | + 0x228: 6e 00 | + 0x22a: 57 68 61 74 27 73 20 69 6e 20 | .string "What's in a name? A rose by any other name would smell as sweet." + 0x234: 61 20 6e 61 6d 65 3f 20 41 20 | + 0x23e: 72 6f 73 65 20 62 79 20 61 6e | + 0x248: 79 20 6f 74 68 65 72 20 6e 61 | + 0x252: 6d 65 20 77 6f 75 6c 64 20 73 | + 0x25c: 6d 65 6c 6c 20 61 73 20 73 77 | + 0x266: 65 65 74 2e 00 | + 0x26b: 42 75 74 2c 20 66 6f 72 20 6d | .string "But, for my own part, it was Greek to me." + 0x275: 79 20 6f 77 6e 20 70 61 72 74 | + 0x27f: 2c 20 69 74 20 77 61 73 20 47 | + 0x289: 72 65 65 6b 20 74 6f 20 6d 65 | + 0x293: 2e 00 | + diff --git a/p3-disas/tests/outputs/A_unaligned1.diff b/p3-disas/tests/outputs/A_unaligned1.diff new file mode 100644 index 0000000..e69de29 diff --git a/p3-disas/tests/outputs/A_unaligned1.txt b/p3-disas/tests/outputs/A_unaligned1.txt new file mode 100644 index 0000000..4f16bfd --- /dev/null +++ b/p3-disas/tests/outputs/A_unaligned1.txt @@ -0,0 +1,26 @@ +01 00 18 01 10 00 03 00 00 00 00 00 45 4c 46 00 +Mini-ELF version 1 +Entry point 0x118 +There are 3 program headers, starting at offset 16 (0x10) +There is no symbol table present +There is no string table present + Segment Offset Size VirtAddr Type Flags + 00 0x004c 0x0009 0x0000 CODE R X + 01 0x0055 0x0002 0x0118 CODE R X + 02 0x0057 0x0008 0x013a DATA RW +Contents of memory from 0000 to 0009: + 0000 70 18 01 00 00 00 00 00 00 +Contents of memory from 0118 to 011a: + 0110 10 00 +Contents of memory from 013a to 0142: + 0130 39 30 00 00 00 00 + 0140 00 00 +Disassembly of executable contents: + 0x000: | .pos 0x000 code + 0x000: 70 18 01 00 00 00 00 00 00 | jmp 0x118 + + 0x118: | .pos 0x118 code + 0x118: | _start: + 0x118: 10 | nop + 0x119: 00 | halt + diff --git a/p3-disas/tests/outputs/A_unaligned2.diff b/p3-disas/tests/outputs/A_unaligned2.diff new file mode 100644 index 0000000..e69de29 diff --git a/p3-disas/tests/outputs/A_unaligned2.txt b/p3-disas/tests/outputs/A_unaligned2.txt new file mode 100644 index 0000000..6857997 --- /dev/null +++ b/p3-disas/tests/outputs/A_unaligned2.txt @@ -0,0 +1,29 @@ +01 00 55 05 10 00 03 00 00 00 00 00 45 4c 46 00 +Mini-ELF version 1 +Entry point 0x555 +There are 3 program headers, starting at offset 16 (0x10) +There is no symbol table present +There is no string table present + Segment Offset Size VirtAddr Type Flags + 00 0x004c 0x0009 0x0000 CODE R X + 01 0x0055 0x001f 0x0555 CODE R X + 02 0x0074 0x0008 0x0987 DATA RW +Contents of memory from 0000 to 0009: + 0000 70 55 05 00 00 00 00 00 00 +Contents of memory from 0555 to 0574: + 0550 30 f0 4d 01 00 00 00 00 00 00 30 + 0560 f3 de 00 00 00 00 00 00 00 30 f1 6f 00 00 00 00 + 0570 00 00 00 00 +Contents of memory from 0987 to 098f: + 0980 dd cc bb aa 00 00 00 00 +Disassembly of executable contents: + 0x000: | .pos 0x000 code + 0x000: 70 55 05 00 00 00 00 00 00 | jmp 0x555 + + 0x555: | .pos 0x555 code + 0x555: | _start: + 0x555: 30 f0 4d 01 00 00 00 00 00 00 | irmovq 0x14d, %rax + 0x55f: 30 f3 de 00 00 00 00 00 00 00 | irmovq 0xde, %rbx + 0x569: 30 f1 6f 00 00 00 00 00 00 00 | irmovq 0x6f, %rcx + 0x573: 00 | halt + diff --git a/p3-disas/tests/outputs/B_iotrap.diff b/p3-disas/tests/outputs/B_iotrap.diff new file mode 100644 index 0000000..e69de29 diff --git a/p3-disas/tests/outputs/B_iotrap.txt b/p3-disas/tests/outputs/B_iotrap.txt new file mode 100644 index 0000000..f846789 --- /dev/null +++ b/p3-disas/tests/outputs/B_iotrap.txt @@ -0,0 +1,10 @@ +Disassembly of executable contents: + 0x100: | .pos 0x100 code + 0x100: | _start: + 0x100: c0 | iotrap 0 + 0x101: c1 | iotrap 1 + 0x102: c2 | iotrap 2 + 0x103: c3 | iotrap 3 + 0x104: c4 | iotrap 4 + 0x105: c5 | iotrap 5 + diff --git a/p3-disas/tests/outputs/B_jmp.diff b/p3-disas/tests/outputs/B_jmp.diff new file mode 100644 index 0000000..e69de29 diff --git a/p3-disas/tests/outputs/B_jmp.txt b/p3-disas/tests/outputs/B_jmp.txt new file mode 100644 index 0000000..0a63de6 --- /dev/null +++ b/p3-disas/tests/outputs/B_jmp.txt @@ -0,0 +1,11 @@ +Disassembly of executable contents: + 0x100: | .pos 0x100 code + 0x100: | _start: + 0x100: 70 88 77 66 55 44 33 22 11 | jmp 0x1122334455667788 + 0x109: 71 77 66 55 44 33 22 11 88 | jle 0x8811223344556677 + 0x112: 72 66 55 44 33 22 11 88 77 | jl 0x7788112233445566 + 0x11b: 73 55 44 33 22 11 88 77 66 | je 0x6677881122334455 + 0x124: 74 44 33 22 11 88 77 66 55 | jne 0x5566778811223344 + 0x12d: 75 33 22 11 88 77 66 55 44 | jge 0x4455667788112233 + 0x136: 76 22 11 88 77 66 55 44 33 | jg 0x3344556677881122 + diff --git a/p3-disas/tests/outputs/B_ninebyte.diff b/p3-disas/tests/outputs/B_ninebyte.diff new file mode 100644 index 0000000..e69de29 diff --git a/p3-disas/tests/outputs/B_ninebyte.txt b/p3-disas/tests/outputs/B_ninebyte.txt new file mode 100644 index 0000000..322463d --- /dev/null +++ b/p3-disas/tests/outputs/B_ninebyte.txt @@ -0,0 +1,6 @@ +Disassembly of executable contents: + 0x100: | .pos 0x100 code + 0x100: | _start: + 0x100: 70 88 77 66 55 44 33 22 11 | jmp 0x1122334455667788 + 0x109: 80 11 22 33 44 55 66 77 88 | call 0x8877665544332211 + diff --git a/p3-disas/tests/outputs/B_simple.diff b/p3-disas/tests/outputs/B_simple.diff new file mode 100644 index 0000000..e69de29 diff --git a/p3-disas/tests/outputs/B_simple.txt b/p3-disas/tests/outputs/B_simple.txt new file mode 100644 index 0000000..243a57e --- /dev/null +++ b/p3-disas/tests/outputs/B_simple.txt @@ -0,0 +1,19 @@ +01 00 00 01 10 00 01 00 00 00 00 00 45 4c 46 00 +Mini-ELF version 1 +Entry point 0x100 +There are 1 program headers, starting at offset 16 (0x10) +There is no symbol table present +There is no string table present + Segment Offset Size VirtAddr Type Flags + 00 0x0024 0x0017 0x0100 CODE R X +Contents of memory from 0100 to 0117: + 0100 30 f0 68 24 00 00 00 00 00 00 30 f3 34 12 00 00 + 0110 00 00 00 00 60 03 00 +Disassembly of executable contents: + 0x100: | .pos 0x100 code + 0x100: | _start: + 0x100: 30 f0 68 24 00 00 00 00 00 00 | irmovq 0x2468, %rax + 0x10a: 30 f3 34 12 00 00 00 00 00 00 | irmovq 0x1234, %rbx + 0x114: 60 03 | addq %rax, %rbx + 0x116: 00 | halt + diff --git a/p3-disas/tests/outputs/B_simple_multi.diff b/p3-disas/tests/outputs/B_simple_multi.diff new file mode 100644 index 0000000..e69de29 diff --git a/p3-disas/tests/outputs/B_simple_multi.txt b/p3-disas/tests/outputs/B_simple_multi.txt new file mode 100644 index 0000000..6bd9226 --- /dev/null +++ b/p3-disas/tests/outputs/B_simple_multi.txt @@ -0,0 +1,17 @@ +Disassembly of executable contents: + 0x100: | .pos 0x100 code + 0x100: 10 | nop + 0x101: 10 | nop + 0x102: 10 | nop + 0x103: | _start: + 0x103: 30 f0 68 24 00 00 00 00 00 00 | irmovq 0x2468, %rax + 0x10d: 30 f3 34 12 00 00 00 00 00 00 | irmovq 0x1234, %rbx + 0x117: 60 03 | addq %rax, %rbx + 0x119: 70 00 02 00 00 00 00 00 00 | jmp 0x200 + + 0x200: | .pos 0x200 code + 0x200: 30 f1 78 56 00 00 00 00 00 00 | irmovq 0x5678, %rcx + 0x20a: 30 f2 14 15 00 00 00 00 00 00 | irmovq 0x1514, %rdx + 0x214: 61 21 | subq %rdx, %rcx + 0x216: 00 | halt + diff --git a/p3-disas/tests/outputs/B_tenbyte.diff b/p3-disas/tests/outputs/B_tenbyte.diff new file mode 100644 index 0000000..e69de29 diff --git a/p3-disas/tests/outputs/B_tenbyte.txt b/p3-disas/tests/outputs/B_tenbyte.txt new file mode 100644 index 0000000..72d4b75 --- /dev/null +++ b/p3-disas/tests/outputs/B_tenbyte.txt @@ -0,0 +1,9 @@ +Disassembly of executable contents: + 0x100: | .pos 0x100 code + 0x100: | _start: + 0x100: 30 f0 88 77 66 55 44 33 22 11 | irmovq 0x1122334455667788, %rax + 0x10a: 40 12 21 43 65 87 78 56 34 12 | rmmovq %rcx, 0x1234567887654321(%rdx) + 0x114: 50 12 78 56 34 12 21 43 65 87 | mrmovq 0x8765432112345678(%rdx), %rcx + 0x11e: 40 1f 21 43 65 87 78 56 34 12 | rmmovq %rcx, 0x1234567887654321 + 0x128: 50 1f 78 56 34 12 21 43 65 87 | mrmovq 0x8765432112345678, %rcx + diff --git a/p3-disas/tests/outputs/C_cmov.diff b/p3-disas/tests/outputs/C_cmov.diff new file mode 100644 index 0000000..e69de29 diff --git a/p3-disas/tests/outputs/C_cmov.txt b/p3-disas/tests/outputs/C_cmov.txt new file mode 100644 index 0000000..abf4b94 --- /dev/null +++ b/p3-disas/tests/outputs/C_cmov.txt @@ -0,0 +1,11 @@ +Disassembly of executable contents: + 0x100: | .pos 0x100 code + 0x100: | _start: + 0x100: 20 01 | rrmovq %rax, %rcx + 0x102: 21 23 | cmovle %rdx, %rbx + 0x104: 22 45 | cmovl %rsp, %rbp + 0x106: 23 67 | cmove %rsi, %rdi + 0x108: 24 89 | cmovne %r8, %r9 + 0x10a: 25 ab | cmovge %r10, %r11 + 0x10c: 26 ce | cmovg %r12, %r14 + diff --git a/p3-disas/tests/outputs/C_help.diff b/p3-disas/tests/outputs/C_help.diff new file mode 100644 index 0000000..e69de29 diff --git a/p3-disas/tests/outputs/C_help.txt b/p3-disas/tests/outputs/C_help.txt new file mode 100644 index 0000000..d8cdcea --- /dev/null +++ b/p3-disas/tests/outputs/C_help.txt @@ -0,0 +1,11 @@ +Usage: ../y86 mini-elf-file + Options are: + -h Display usage + -H Show the Mini-ELF header + -a Show all with brief memory + -f Show all with full memory + -s Show the program headers + -m Show the memory contents (brief) + -M Show the memory contents (full) + -d Disassemble code contents + -D Disassemble data contents diff --git a/p3-disas/tests/outputs/C_opq.diff b/p3-disas/tests/outputs/C_opq.diff new file mode 100644 index 0000000..e69de29 diff --git a/p3-disas/tests/outputs/C_opq.txt b/p3-disas/tests/outputs/C_opq.txt new file mode 100644 index 0000000..ee43e76 --- /dev/null +++ b/p3-disas/tests/outputs/C_opq.txt @@ -0,0 +1,8 @@ +Disassembly of executable contents: + 0x100: | .pos 0x100 code + 0x100: | _start: + 0x100: 60 23 | addq %rdx, %rbx + 0x102: 61 01 | subq %rax, %rcx + 0x104: 62 45 | andq %rsp, %rbp + 0x106: 63 67 | xorq %rsi, %rdi + diff --git a/p3-disas/tests/outputs/C_twobyte.diff b/p3-disas/tests/outputs/C_twobyte.diff new file mode 100644 index 0000000..e69de29 diff --git a/p3-disas/tests/outputs/C_twobyte.txt b/p3-disas/tests/outputs/C_twobyte.txt new file mode 100644 index 0000000..2960202 --- /dev/null +++ b/p3-disas/tests/outputs/C_twobyte.txt @@ -0,0 +1,8 @@ +Disassembly of executable contents: + 0x100: | .pos 0x100 code + 0x100: | _start: + 0x100: 20 01 | rrmovq %rax, %rcx + 0x102: 60 23 | addq %rdx, %rbx + 0x104: a0 6f | pushq %rsi + 0x106: b0 7f | popq %rdi + diff --git a/p3-disas/tests/outputs/D_onebyte.diff b/p3-disas/tests/outputs/D_onebyte.diff new file mode 100644 index 0000000..e69de29 diff --git a/p3-disas/tests/outputs/D_onebyte.txt b/p3-disas/tests/outputs/D_onebyte.txt new file mode 100644 index 0000000..f77ec94 --- /dev/null +++ b/p3-disas/tests/outputs/D_onebyte.txt @@ -0,0 +1,7 @@ +Disassembly of executable contents: + 0x100: | .pos 0x100 code + 0x100: | _start: + 0x100: 00 | halt + 0x101: 10 | nop + 0x102: 90 | ret + diff --git a/p3-disas/tests/private.o b/p3-disas/tests/private.o new file mode 100644 index 0000000000000000000000000000000000000000..492d544d97cf4830d7f805181975d500c3fd202c GIT binary patch literal 48864 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 +#include +#include + +#include + +#include "../p3-disas.h" + +#define testsuite_memsize 24 +uint8_t array[testsuite_memsize]; +byte_t *testsuite_memory = array; + +/* check HALT handling */ +START_TEST (D_fetch_halt) +{ + y86_t cpu; + uint8_t opcode = HALT << 4; + uint8_t opsize = 1; + cpu.pc = (y86_reg_t) (rand () % (testsuite_memsize - opsize + 1)); + memset (testsuite_memory, 0, testsuite_memsize); + memset (&cpu, 0, sizeof (cpu)); + testsuite_memory[cpu.pc] = opcode; + + y86_inst_t inst = fetch (&cpu, testsuite_memory); + ck_assert (inst.icode == HALT); + ck_assert (inst.ifun.b == 0); + ck_assert (inst.valP == cpu.pc + opsize); +} +END_TEST + +/* check NOP handling */ +START_TEST (D_fetch_nop) +{ + y86_t cpu; + uint8_t opcode = NOP << 4; + uint8_t opsize = 1; + memset (testsuite_memory, 0, testsuite_memsize); + memset (&cpu, 0, sizeof (cpu)); + cpu.pc = (y86_reg_t) (rand () % (testsuite_memsize - opsize + 1)); + testsuite_memory[cpu.pc] = opcode; + + y86_inst_t inst = fetch (&cpu, testsuite_memory); + ck_assert (inst.icode == NOP); + ck_assert (inst.ifun.b == 0); + ck_assert (inst.valP == cpu.pc + opsize); +} +END_TEST + +/* check RET handling */ +START_TEST (D_fetch_ret) +{ + y86_t cpu; + uint8_t opcode = RET << 4; + uint8_t opsize = 1; + memset (testsuite_memory, 0, testsuite_memsize); + memset (&cpu, 0, sizeof (cpu)); + cpu.pc = (y86_reg_t) (rand () % (testsuite_memsize - opsize + 1)); + testsuite_memory[cpu.pc] = opcode; + + y86_inst_t inst = fetch (&cpu, testsuite_memory); + ck_assert (inst.icode == RET); + ck_assert (inst.ifun.b == 0); + ck_assert (inst.valP == cpu.pc + opsize); +} +END_TEST + +/* check HALT handling w/ errors */ +START_TEST (D_errors_fetch_halt) +{ + y86_t cpu; + uint8_t opcode; + memset (&cpu, 0, sizeof (cpu)); + uint8_t i; + size_t opsize = 1; + + for (i = 1; i < 16; i++) + { + opcode = (HALT << 4) | i; // set low-order bits to non-zero + memset (testsuite_memory, 0, testsuite_memsize); + cpu.pc = (y86_reg_t) (rand () % (testsuite_memsize - opsize + 1)); + testsuite_memory[cpu.pc] = opcode; + cpu.stat = AOK; + y86_inst_t inst = fetch (&cpu, testsuite_memory); + ck_assert (inst.icode == INVALID); + ck_assert (cpu.stat == INS); + } +} +END_TEST + +/* check NOP handling w/ errors */ +START_TEST (D_errors_fetch_nop) +{ + y86_t cpu; + uint8_t opcode; + memset (&cpu, 0, sizeof (cpu)); + uint8_t i; + size_t opsize = 1; + + for (i = 1; i < 16; i++) + { + opcode = (NOP << 4) | i; // set low-order bits to non-zero + memset (testsuite_memory, 0, testsuite_memsize); + cpu.pc = (y86_reg_t) (rand () % (testsuite_memsize - opsize + 1)); + testsuite_memory[cpu.pc] = opcode; + cpu.stat = AOK; + y86_inst_t inst = fetch (&cpu, testsuite_memory); + ck_assert (inst.icode == INVALID); + ck_assert (cpu.stat == INS); + } +} +END_TEST + +/* check NOP handling w/ errors */ +START_TEST (D_errors_fetch_ret) +{ + y86_t cpu; + uint8_t opcode; + uint8_t opsize = 1; + uint8_t i; + y86_inst_t inst; + memset (testsuite_memory, 0, testsuite_memsize); + memset (&cpu, 0, sizeof (cpu)); + cpu.pc = (y86_reg_t) (rand () % (testsuite_memsize - opsize + 1)); + + for (i = 1; i < 16; i++) + { + opcode = (RET << 4) | i; // set low-order bits to non-zero + testsuite_memory[cpu.pc] = opcode; + cpu.stat = AOK; + inst = fetch (&cpu, testsuite_memory); + ck_assert (inst.icode == INVALID); + ck_assert (cpu.stat == INS); + } +} +END_TEST + +void public_tests (Suite *s) +{ + TCase *tc_public = tcase_create ("Public"); + tcase_add_test (tc_public, D_fetch_halt); + tcase_add_test (tc_public, D_fetch_nop); + tcase_add_test (tc_public, D_fetch_ret); + tcase_add_test (tc_public, D_errors_fetch_halt); + tcase_add_test (tc_public, D_errors_fetch_nop); + tcase_add_test (tc_public, D_errors_fetch_ret); + suite_add_tcase (s, tc_public); +} + diff --git a/p3-disas/tests/public.o b/p3-disas/tests/public.o new file mode 100644 index 0000000000000000000000000000000000000000..23d5d9d015db418739999b508069e280e4f36e73 GIT binary patch literal 21464 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

    q{O%9P#{eF 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 +#include +#include +#include +#include +#include + +#include + +extern void public_tests (Suite *s); +extern void private_tests (Suite *s); + +Suite * test_suite (void) +{ + Suite *s = suite_create ("Default"); + public_tests (s); + private_tests (s); + return s; +} + +void run_testsuite (void) +{ + Suite *s = test_suite (); + SRunner *sr = srunner_create (s); + srunner_run_all (sr, CK_NORMAL); + srunner_free (sr); +} + +int main (void) +{ + srand((unsigned)time(NULL)); + run_testsuite (); + return EXIT_SUCCESS; +} diff --git a/p3-disas/tests/testsuite.o b/p3-disas/tests/testsuite.o new file mode 100644 index 0000000000000000000000000000000000000000..1e1c8c9850e738632558f7d1343cdef38b5a2ba5 GIT binary patch literal 6352 zcmb_fYit}>6~41O<8`urnsDnv*3MtxLPN5vkoTikB{;6LUjF8_Yw z=|6T%JZC{Oarx#SLO%Yti7(TqWUYSdjkvRNStpnE$mMbv;>U@2+*q6|8$o`8Hf0oU zPu713^szS{v=@p&%@+d{$Pz{~&@_q`6mfbrCK$~rNQN1*(9KA&)FgEY+2wvNUCB$+Ahb!_pi|^cd|S5*vYW; z+1siDr8|v#+Pc%p{=WWBqbt?1hn6xYNpsw~PbS%B8p*cf=``g-c~Kfjp`Ftt5ovZr z&B`=Yvzg5%WwhrBO0+BTkSe7>?C#B~$!?{jas3E=*v7mFWer7q!$lxfzCoWw z3wDOMVHp2xYXzf4fptukez{plj3{CBC)(xajG*u=lg)-31e&B}h#g@nkXj9^W6iRf z^J`Yinq@qE5MuXL%evj%Z5eAL)~=^5OC(I=n}OBxh-EyINKpIBE^YWiJ@A(UUyMCm zn0jFLtneyz*UtowS6y`M`3#PPO~OL0Ui8IsP^wkS1>g33Z$n?M6kSoPJByqBXM?J5 zqk+?t)03wkm=cA8UtO{bve9$nXHLw_j*Iy^g|vm|7M*#qRIEDU)bw0tYB&7mD7hQ?9smryh9O z!1;95na}z~YQiI>=NHS5XP4c&Z%hWVoAPV)jhnQ0n3M$U(x`dK8M#LfN&+jYl5}1Sohieq>BTI6ZR) zBgnHOo0LW>0GZ5APK{5W#dy!ootT@Rq&ekAkan?Fi{u5@wne_|YnOyn5bI1pto3A?MS}g7<5OWB$6k+(m%1Ge>7AJc}FPyqoJNvTNut2Q~c$lM!M7}NJ_a`J^Gyfv=0gX&JlYx2 zURMXqe>w`}u`3U&@EE29iR9~xIIbJ4{eQg|65ZF5uqW^eQuzK5miq^*Lg5239B)>I zKNQ39dQ$i&VmMZd!s{^{xhecJF&yKq@GCJKFD->XAH(V5kML_T9BWe9WAB2{*Z8hc zD;zkk?w9EU$yXh5;P6%JVK>!53J)bA?%)dcadfp){a(glA3YJNelUik-E%AtY4`z_ zM>Kqb<&zq|i{;ZAzJ|nz&W23pk9NPxcuB**%lM*(<97iRge;0P!}g!o@QaK;tKlWa zzpml(Z-B7t8vY#1-_h_2%Qv>cU)OLJ#Vrm073cE{4R=`nwT9nd`?oY)ogcr`@Cmkm zN5g;1_@6Xft;@e^xWo49ml^8{^QiD9)+_vL?BA>5Rh9=e{O>GJY52P=&ujQIEPqbJ z&$5g=6{PaHKNQ7v4Zq3q>l*$d+y9JlFzhci&T8IN{3C4lmS(T+jTSf)Df^e$ZV%%s zerUC^XJL=CQjxk7bo&pn0qk*ZsC~Xq!_|JjSHso*%4zs3EXU6W#Qz@Ss(-58HO5ac zSNKhqPieSX_fs1F85k()32MUg9cp2)fNP>|YryA&)Is?I{4Y-GJyD!KMWGJ`Wi z^gFXiPuMs{&tO}*P?(W@bgO4!D!j|8mq(Ktx;3;aZEW(T~VQNWgltQxw~xPc#Qb0VvEL9A>nKjDeU-1$>FpmUg^t1Y&+PCqEwFAoOm>aN zuYyMt(GVXZ7(dLB%14dgLxkxu2@?BwKpxbTnkew@)iL;glH0uxLX33V^Q3E(|8+j_ zlt1#vdr!~*Q-tX;2@)@I`|5oK45ZuE2y4{-o7{ee9ne0Oq~88#Ii|{!L`lO|$eXsA zKb6N9$qaSfeB2)svuRZ zo8mnCXOtmxJuKcuh^hOpu;I%4`2U>rjplE?GjyC_f6O1=*s6WC{u{LomvuILn>&nm mZlm=FOg}r||0XUdqA!IkD)sS0nvML2_=n(^k!M)Z{r?Soq~)^! literal 0 HcmV?d00001 diff --git a/p3-disas/tests/utests.txt b/p3-disas/tests/utests.txt new file mode 100644 index 0000000..fde36ad --- /dev/null +++ b/p3-disas/tests/utests.txt @@ -0,0 +1,3 @@ +Running suite(s): Default +20 ff = 13 +100%: Checks: 34, Failures: 0, Errors: 0 diff --git a/p3-disas/tests/valgrind/A_bad_filename.txt b/p3-disas/tests/valgrind/A_bad_filename.txt new file mode 100644 index 0000000..595dc34 --- /dev/null +++ b/p3-disas/tests/valgrind/A_bad_filename.txt @@ -0,0 +1,15 @@ +==2061914== Memcheck, a memory error detector +==2061914== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2061914== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2061914== Command: ../y86 -d inputs/bad-nonexist.o +==2061914== +Failed to read file +==2061914== +==2061914== HEAP SUMMARY: +==2061914== in use at exit: 0 bytes in 0 blocks +==2061914== total heap usage: 2 allocs, 2 frees, 8,664 bytes allocated +==2061914== +==2061914== All heap blocks were freed -- no leaks are possible +==2061914== +==2061914== For lists of detected and suppressed errors, rerun with: -s +==2061914== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p3-disas/tests/valgrind/A_bad_no_elf.txt b/p3-disas/tests/valgrind/A_bad_no_elf.txt new file mode 100644 index 0000000..d7a9623 --- /dev/null +++ b/p3-disas/tests/valgrind/A_bad_no_elf.txt @@ -0,0 +1,15 @@ +==2061781== Memcheck, a memory error detector +==2061781== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2061781== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2061781== Command: ../y86 -d inputs/bad-no_elf.o +==2061781== +Failed to read file +==2061781== +==2061781== HEAP SUMMARY: +==2061781== in use at exit: 0 bytes in 0 blocks +==2061781== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==2061781== +==2061781== All heap blocks were freed -- no leaks are possible +==2061781== +==2061781== For lists of detected and suppressed errors, rerun with: -s +==2061781== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p3-disas/tests/valgrind/A_bad_phdr.txt b/p3-disas/tests/valgrind/A_bad_phdr.txt new file mode 100644 index 0000000..36e5d25 --- /dev/null +++ b/p3-disas/tests/valgrind/A_bad_phdr.txt @@ -0,0 +1,15 @@ +==2061802== Memcheck, a memory error detector +==2061802== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2061802== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2061802== Command: ../y86 -d inputs/bad-phdr.o +==2061802== +Failed to read file +==2061802== +==2061802== HEAP SUMMARY: +==2061802== in use at exit: 0 bytes in 0 blocks +==2061802== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==2061802== +==2061802== All heap blocks were freed -- no leaks are possible +==2061802== +==2061802== For lists of detected and suppressed errors, rerun with: -s +==2061802== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p3-disas/tests/valgrind/A_bad_short_header.txt b/p3-disas/tests/valgrind/A_bad_short_header.txt new file mode 100644 index 0000000..fd80c36 --- /dev/null +++ b/p3-disas/tests/valgrind/A_bad_short_header.txt @@ -0,0 +1,15 @@ +==2061820== Memcheck, a memory error detector +==2061820== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2061820== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2061820== Command: ../y86 -d inputs/bad-short_header.o +==2061820== +Failed to read file +==2061820== +==2061820== HEAP SUMMARY: +==2061820== in use at exit: 0 bytes in 0 blocks +==2061820== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==2061820== +==2061820== All heap blocks were freed -- no leaks are possible +==2061820== +==2061820== For lists of detected and suppressed errors, rerun with: -s +==2061820== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p3-disas/tests/valgrind/A_bad_short_phdr.txt b/p3-disas/tests/valgrind/A_bad_short_phdr.txt new file mode 100644 index 0000000..588ec96 --- /dev/null +++ b/p3-disas/tests/valgrind/A_bad_short_phdr.txt @@ -0,0 +1,15 @@ +==2061857== Memcheck, a memory error detector +==2061857== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2061857== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2061857== Command: ../y86 -d inputs/bad-short_phdr.o +==2061857== +Failed to read file +==2061857== +==2061857== HEAP SUMMARY: +==2061857== in use at exit: 0 bytes in 0 blocks +==2061857== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==2061857== +==2061857== All heap blocks were freed -- no leaks are possible +==2061857== +==2061857== For lists of detected and suppressed errors, rerun with: -s +==2061857== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p3-disas/tests/valgrind/A_data.txt b/p3-disas/tests/valgrind/A_data.txt new file mode 100644 index 0000000..9ae5373 --- /dev/null +++ b/p3-disas/tests/valgrind/A_data.txt @@ -0,0 +1,20 @@ +==2061441== Memcheck, a memory error detector +==2061441== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2061441== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2061441== Command: ../y86 -D inputs/data.o +==2061441== +Disassembly of data contents: + 0x200: | .pos 0x200 data + 0x200: 88 77 66 55 44 33 22 11 | .quad 0x1122334455667788 + 0x208: 78 56 34 12 00 00 00 00 | .quad 0x12345678 + 0x210: 42 00 00 00 00 00 00 00 | .quad 0x42 + +==2061441== +==2061441== HEAP SUMMARY: +==2061441== in use at exit: 0 bytes in 0 blocks +==2061441== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==2061441== +==2061441== All heap blocks were freed -- no leaks are possible +==2061441== +==2061441== For lists of detected and suppressed errors, rerun with: -s +==2061441== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p3-disas/tests/valgrind/A_data_code.txt b/p3-disas/tests/valgrind/A_data_code.txt new file mode 100644 index 0000000..c2ecc31 --- /dev/null +++ b/p3-disas/tests/valgrind/A_data_code.txt @@ -0,0 +1,19 @@ +==2061311== Memcheck, a memory error detector +==2061311== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2061311== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2061311== Command: ../y86 -d inputs/data.o +==2061311== +Disassembly of executable contents: + 0x100: | .pos 0x100 code + 0x100: | _start: + 0x100: 00 | halt + +==2061311== +==2061311== HEAP SUMMARY: +==2061311== in use at exit: 0 bytes in 0 blocks +==2061311== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==2061311== +==2061311== All heap blocks were freed -- no leaks are possible +==2061311== +==2061311== For lists of detected and suppressed errors, rerun with: -s +==2061311== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p3-disas/tests/valgrind/A_extra_params.txt b/p3-disas/tests/valgrind/A_extra_params.txt new file mode 100644 index 0000000..7327399 --- /dev/null +++ b/p3-disas/tests/valgrind/A_extra_params.txt @@ -0,0 +1,25 @@ +==2062039== Memcheck, a memory error detector +==2062039== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2062039== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2062039== Command: ../y86 -d inputs/onebyte.o extra params +==2062039== +Usage: ../y86 mini-elf-file + Options are: + -h Display usage + -H Show the Mini-ELF header + -a Show all with brief memory + -f Show all with full memory + -s Show the program headers + -m Show the memory contents (brief) + -M Show the memory contents (full) + -d Disassemble code contents + -D Disassemble data contents +==2062039== +==2062039== HEAP SUMMARY: +==2062039== in use at exit: 0 bytes in 0 blocks +==2062039== total heap usage: 1 allocs, 1 frees, 8,192 bytes allocated +==2062039== +==2062039== All heap blocks were freed -- no leaks are possible +==2062039== +==2062039== For lists of detected and suppressed errors, rerun with: -s +==2062039== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p3-disas/tests/valgrind/A_interleaved.txt b/p3-disas/tests/valgrind/A_interleaved.txt new file mode 100644 index 0000000..2187f88 --- /dev/null +++ b/p3-disas/tests/valgrind/A_interleaved.txt @@ -0,0 +1,36 @@ +==2061697== Memcheck, a memory error detector +==2061697== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2061697== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2061697== Command: ../y86 -d -D inputs/interleaved.o +==2061697== +Disassembly of executable contents: + 0x100: | .pos 0x100 code + 0x100: | _start: + 0x100: 00 | halt + + 0x400: | .pos 0x400 code + 0x400: 10 | nop + 0x401: 00 | halt + +Disassembly of data contents: + 0x200: | .pos 0x200 data + 0x200: 10 00 00 00 00 00 00 00 | .quad 0x10 + + 0x300: | .pos 0x300 rodata + 0x300: 74 65 73 74 00 | .string "test" + + 0x500: | .pos 0x500 data + 0x500: 78 56 34 12 00 00 00 00 | .quad 0x12345678 + + 0x600: | .pos 0x600 rodata + 0x600: 61 67 61 69 6e 00 | .string "again" + +==2061697== +==2061697== HEAP SUMMARY: +==2061697== in use at exit: 0 bytes in 0 blocks +==2061697== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==2061697== +==2061697== All heap blocks were freed -- no leaks are possible +==2061697== +==2061697== For lists of detected and suppressed errors, rerun with: -s +==2061697== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p3-disas/tests/valgrind/A_invalid.txt b/p3-disas/tests/valgrind/A_invalid.txt new file mode 100644 index 0000000..bc7af64 --- /dev/null +++ b/p3-disas/tests/valgrind/A_invalid.txt @@ -0,0 +1,20 @@ +==2061744== Memcheck, a memory error detector +==2061744== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2061744== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2061744== Command: ../y86 -d inputs/invalid.o +==2061744== +Disassembly of executable contents: + 0x100: | .pos 0x100 code + 0x100: | _start: + 0x100: 30 f3 0f 00 00 00 20 31 40 13 | irmovq 0x134031200000000f, %rbx +Invalid opcode: 0xfd + +==2061744== +==2061744== HEAP SUMMARY: +==2061744== in use at exit: 0 bytes in 0 blocks +==2061744== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==2061744== +==2061744== All heap blocks were freed -- no leaks are possible +==2061744== +==2061744== For lists of detected and suppressed errors, rerun with: -s +==2061744== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p3-disas/tests/valgrind/A_missing_file.txt b/p3-disas/tests/valgrind/A_missing_file.txt new file mode 100644 index 0000000..e12054b --- /dev/null +++ b/p3-disas/tests/valgrind/A_missing_file.txt @@ -0,0 +1,25 @@ +==2061946== Memcheck, a memory error detector +==2061946== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2061946== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2061946== Command: ../y86 -d +==2061946== +Usage: ../y86 mini-elf-file + Options are: + -h Display usage + -H Show the Mini-ELF header + -a Show all with brief memory + -f Show all with full memory + -s Show the program headers + -m Show the memory contents (brief) + -M Show the memory contents (full) + -d Disassemble code contents + -D Disassemble data contents +==2061946== +==2061946== HEAP SUMMARY: +==2061946== in use at exit: 0 bytes in 0 blocks +==2061946== total heap usage: 1 allocs, 1 frees, 8,192 bytes allocated +==2061946== +==2061946== All heap blocks were freed -- no leaks are possible +==2061946== +==2061946== For lists of detected and suppressed errors, rerun with: -s +==2061946== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p3-disas/tests/valgrind/A_rodata.txt b/p3-disas/tests/valgrind/A_rodata.txt new file mode 100644 index 0000000..ddd3a53 --- /dev/null +++ b/p3-disas/tests/valgrind/A_rodata.txt @@ -0,0 +1,18 @@ +==2061510== Memcheck, a memory error detector +==2061510== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2061510== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2061510== Command: ../y86 -D inputs/rodata.o +==2061510== +Disassembly of data contents: + 0x200: | .pos 0x200 rodata + 0x200: 68 65 6c 6c 6f 00 | .string "hello" + +==2061510== +==2061510== HEAP SUMMARY: +==2061510== in use at exit: 0 bytes in 0 blocks +==2061510== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==2061510== +==2061510== All heap blocks were freed -- no leaks are possible +==2061510== +==2061510== For lists of detected and suppressed errors, rerun with: -s +==2061510== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p3-disas/tests/valgrind/A_rodata_code.txt b/p3-disas/tests/valgrind/A_rodata_code.txt new file mode 100644 index 0000000..8f01cae --- /dev/null +++ b/p3-disas/tests/valgrind/A_rodata_code.txt @@ -0,0 +1,19 @@ +==2061349== Memcheck, a memory error detector +==2061349== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2061349== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2061349== Command: ../y86 -d inputs/rodata.o +==2061349== +Disassembly of executable contents: + 0x100: | .pos 0x100 code + 0x100: | _start: + 0x100: 00 | halt + +==2061349== +==2061349== HEAP SUMMARY: +==2061349== in use at exit: 0 bytes in 0 blocks +==2061349== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==2061349== +==2061349== All heap blocks were freed -- no leaks are possible +==2061349== +==2061349== For lists of detected and suppressed errors, rerun with: -s +==2061349== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p3-disas/tests/valgrind/A_rodata_long.txt b/p3-disas/tests/valgrind/A_rodata_long.txt new file mode 100644 index 0000000..99947e5 --- /dev/null +++ b/p3-disas/tests/valgrind/A_rodata_long.txt @@ -0,0 +1,24 @@ +==2062146== Memcheck, a memory error detector +==2062146== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2062146== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2062146== Command: ../y86 -D inputs/rodata_long.o +==2062146== +Disassembly of data contents: + 0x200: | .pos 0x200 rodata + 0x200: 30 31 32 33 34 35 36 37 38 39 | .string "0123456789" + 0x20a: 00 | + 0x20b: 68 65 6c 6c 6f 20 77 6f 72 6c | .string "hello world" + 0x215: 64 00 | + 0x217: 61 62 63 64 65 66 67 68 69 6a | .string "abcdefghijklmnopqrstuvwxyz" + 0x221: 6b 6c 6d 6e 6f 70 71 72 73 74 | + 0x22b: 75 76 77 78 79 7a 00 | + +==2062146== +==2062146== HEAP SUMMARY: +==2062146== in use at exit: 0 bytes in 0 blocks +==2062146== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==2062146== +==2062146== All heap blocks were freed -- no leaks are possible +==2062146== +==2062146== For lists of detected and suppressed errors, rerun with: -s +==2062146== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p3-disas/tests/valgrind/A_rodata_multi.txt b/p3-disas/tests/valgrind/A_rodata_multi.txt new file mode 100644 index 0000000..50e347f --- /dev/null +++ b/p3-disas/tests/valgrind/A_rodata_multi.txt @@ -0,0 +1,20 @@ +==2061670== Memcheck, a memory error detector +==2061670== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2061670== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2061670== Command: ../y86 -D inputs/rodata_multi.o +==2061670== +Disassembly of data contents: + 0x200: | .pos 0x200 rodata + 0x200: 66 6f 6f 00 | .string "foo" + 0x204: 77 30 30 74 00 | .string "w00t" + 0x209: 75 70 20 64 6f 77 6e 00 | .string "up down" + +==2061670== +==2061670== HEAP SUMMARY: +==2061670== in use at exit: 0 bytes in 0 blocks +==2061670== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==2061670== +==2061670== All heap blocks were freed -- no leaks are possible +==2061670== +==2061670== For lists of detected and suppressed errors, rerun with: -s +==2061670== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p3-disas/tests/valgrind/A_rodata_shakespeare.txt b/p3-disas/tests/valgrind/A_rodata_shakespeare.txt new file mode 100644 index 0000000..33aacc7 --- /dev/null +++ b/p3-disas/tests/valgrind/A_rodata_shakespeare.txt @@ -0,0 +1,34 @@ +==2062177== Memcheck, a memory error detector +==2062177== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2062177== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2062177== Command: ../y86 -D inputs/rodata_shakespeare.o +==2062177== +Disassembly of data contents: + 0x200: | .pos 0x200 rodata + 0x200: 54 6f 20 62 65 2c 20 6f 72 20 | .string "To be, or not to be: that is the question" + 0x20a: 6e 6f 74 20 74 6f 20 62 65 3a | + 0x214: 20 74 68 61 74 20 69 73 20 74 | + 0x21e: 68 65 20 71 75 65 73 74 69 6f | + 0x228: 6e 00 | + 0x22a: 57 68 61 74 27 73 20 69 6e 20 | .string "What's in a name? A rose by any other name would smell as sweet." + 0x234: 61 20 6e 61 6d 65 3f 20 41 20 | + 0x23e: 72 6f 73 65 20 62 79 20 61 6e | + 0x248: 79 20 6f 74 68 65 72 20 6e 61 | + 0x252: 6d 65 20 77 6f 75 6c 64 20 73 | + 0x25c: 6d 65 6c 6c 20 61 73 20 73 77 | + 0x266: 65 65 74 2e 00 | + 0x26b: 42 75 74 2c 20 66 6f 72 20 6d | .string "But, for my own part, it was Greek to me." + 0x275: 79 20 6f 77 6e 20 70 61 72 74 | + 0x27f: 2c 20 69 74 20 77 61 73 20 47 | + 0x289: 72 65 65 6b 20 74 6f 20 6d 65 | + 0x293: 2e 00 | + +==2062177== +==2062177== HEAP SUMMARY: +==2062177== in use at exit: 0 bytes in 0 blocks +==2062177== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==2062177== +==2062177== All heap blocks were freed -- no leaks are possible +==2062177== +==2062177== For lists of detected and suppressed errors, rerun with: -s +==2062177== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p3-disas/tests/valgrind/A_unaligned1.txt b/p3-disas/tests/valgrind/A_unaligned1.txt new file mode 100644 index 0000000..dc7d534 --- /dev/null +++ b/p3-disas/tests/valgrind/A_unaligned1.txt @@ -0,0 +1,40 @@ +==2062084== Memcheck, a memory error detector +==2062084== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2062084== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2062084== Command: ../y86 -a -d inputs/unaligned.o +==2062084== +01 00 18 01 10 00 03 00 00 00 00 00 45 4c 46 00 +Mini-ELF version 1 +Entry point 0x118 +There are 3 program headers, starting at offset 16 (0x10) +There is no symbol table present +There is no string table present + Segment Offset Size VirtAddr Type Flags + 00 0x004c 0x0009 0x0000 CODE R X + 01 0x0055 0x0002 0x0118 CODE R X + 02 0x0057 0x0008 0x013a DATA RW +Contents of memory from 0000 to 0009: + 0000 70 18 01 00 00 00 00 00 00 +Contents of memory from 0118 to 011a: + 0110 10 00 +Contents of memory from 013a to 0142: + 0130 39 30 00 00 00 00 + 0140 00 00 +Disassembly of executable contents: + 0x000: | .pos 0x000 code + 0x000: 70 18 01 00 00 00 00 00 00 | jmp 0x118 + + 0x118: | .pos 0x118 code + 0x118: | _start: + 0x118: 10 | nop + 0x119: 00 | halt + +==2062084== +==2062084== HEAP SUMMARY: +==2062084== in use at exit: 0 bytes in 0 blocks +==2062084== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==2062084== +==2062084== All heap blocks were freed -- no leaks are possible +==2062084== +==2062084== For lists of detected and suppressed errors, rerun with: -s +==2062084== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p3-disas/tests/valgrind/A_unaligned2.txt b/p3-disas/tests/valgrind/A_unaligned2.txt new file mode 100644 index 0000000..c5768ff --- /dev/null +++ b/p3-disas/tests/valgrind/A_unaligned2.txt @@ -0,0 +1,43 @@ +==2062113== Memcheck, a memory error detector +==2062113== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2062113== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2062113== Command: ../y86 -a -d inputs/unaligned2.o +==2062113== +01 00 55 05 10 00 03 00 00 00 00 00 45 4c 46 00 +Mini-ELF version 1 +Entry point 0x555 +There are 3 program headers, starting at offset 16 (0x10) +There is no symbol table present +There is no string table present + Segment Offset Size VirtAddr Type Flags + 00 0x004c 0x0009 0x0000 CODE R X + 01 0x0055 0x001f 0x0555 CODE R X + 02 0x0074 0x0008 0x0987 DATA RW +Contents of memory from 0000 to 0009: + 0000 70 55 05 00 00 00 00 00 00 +Contents of memory from 0555 to 0574: + 0550 30 f0 4d 01 00 00 00 00 00 00 30 + 0560 f3 de 00 00 00 00 00 00 00 30 f1 6f 00 00 00 00 + 0570 00 00 00 00 +Contents of memory from 0987 to 098f: + 0980 dd cc bb aa 00 00 00 00 +Disassembly of executable contents: + 0x000: | .pos 0x000 code + 0x000: 70 55 05 00 00 00 00 00 00 | jmp 0x555 + + 0x555: | .pos 0x555 code + 0x555: | _start: + 0x555: 30 f0 4d 01 00 00 00 00 00 00 | irmovq 0x14d, %rax + 0x55f: 30 f3 de 00 00 00 00 00 00 00 | irmovq 0xde, %rbx + 0x569: 30 f1 6f 00 00 00 00 00 00 00 | irmovq 0x6f, %rcx + 0x573: 00 | halt + +==2062113== +==2062113== HEAP SUMMARY: +==2062113== in use at exit: 0 bytes in 0 blocks +==2062113== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==2062113== +==2062113== All heap blocks were freed -- no leaks are possible +==2062113== +==2062113== For lists of detected and suppressed errors, rerun with: -s +==2062113== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p3-disas/tests/valgrind/B_iotrap.txt b/p3-disas/tests/valgrind/B_iotrap.txt new file mode 100644 index 0000000..3058acc --- /dev/null +++ b/p3-disas/tests/valgrind/B_iotrap.txt @@ -0,0 +1,24 @@ +==2061103== Memcheck, a memory error detector +==2061103== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2061103== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2061103== Command: ../y86 -d inputs/iotrap.o +==2061103== +Disassembly of executable contents: + 0x100: | .pos 0x100 code + 0x100: | _start: + 0x100: c0 | iotrap 0 + 0x101: c1 | iotrap 1 + 0x102: c2 | iotrap 2 + 0x103: c3 | iotrap 3 + 0x104: c4 | iotrap 4 + 0x105: c5 | iotrap 5 + +==2061103== +==2061103== HEAP SUMMARY: +==2061103== in use at exit: 0 bytes in 0 blocks +==2061103== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==2061103== +==2061103== All heap blocks were freed -- no leaks are possible +==2061103== +==2061103== For lists of detected and suppressed errors, rerun with: -s +==2061103== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p3-disas/tests/valgrind/B_jmp.txt b/p3-disas/tests/valgrind/B_jmp.txt new file mode 100644 index 0000000..8feba32 --- /dev/null +++ b/p3-disas/tests/valgrind/B_jmp.txt @@ -0,0 +1,25 @@ +==2060908== Memcheck, a memory error detector +==2060908== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2060908== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2060908== Command: ../y86 -d inputs/jmp.o +==2060908== +Disassembly of executable contents: + 0x100: | .pos 0x100 code + 0x100: | _start: + 0x100: 70 88 77 66 55 44 33 22 11 | jmp 0x1122334455667788 + 0x109: 71 77 66 55 44 33 22 11 88 | jle 0x8811223344556677 + 0x112: 72 66 55 44 33 22 11 88 77 | jl 0x7788112233445566 + 0x11b: 73 55 44 33 22 11 88 77 66 | je 0x6677881122334455 + 0x124: 74 44 33 22 11 88 77 66 55 | jne 0x5566778811223344 + 0x12d: 75 33 22 11 88 77 66 55 44 | jge 0x4455667788112233 + 0x136: 76 22 11 88 77 66 55 44 33 | jg 0x3344556677881122 + +==2060908== +==2060908== HEAP SUMMARY: +==2060908== in use at exit: 0 bytes in 0 blocks +==2060908== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==2060908== +==2060908== All heap blocks were freed -- no leaks are possible +==2060908== +==2060908== For lists of detected and suppressed errors, rerun with: -s +==2060908== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p3-disas/tests/valgrind/B_ninebyte.txt b/p3-disas/tests/valgrind/B_ninebyte.txt new file mode 100644 index 0000000..dfa8a3e --- /dev/null +++ b/p3-disas/tests/valgrind/B_ninebyte.txt @@ -0,0 +1,20 @@ +==2060882== Memcheck, a memory error detector +==2060882== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2060882== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2060882== Command: ../y86 -d inputs/ninebyte.o +==2060882== +Disassembly of executable contents: + 0x100: | .pos 0x100 code + 0x100: | _start: + 0x100: 70 88 77 66 55 44 33 22 11 | jmp 0x1122334455667788 + 0x109: 80 11 22 33 44 55 66 77 88 | call 0x8877665544332211 + +==2060882== +==2060882== HEAP SUMMARY: +==2060882== in use at exit: 0 bytes in 0 blocks +==2060882== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==2060882== +==2060882== All heap blocks were freed -- no leaks are possible +==2060882== +==2060882== For lists of detected and suppressed errors, rerun with: -s +==2060882== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p3-disas/tests/valgrind/B_simple.txt b/p3-disas/tests/valgrind/B_simple.txt new file mode 100644 index 0000000..e98d6e7 --- /dev/null +++ b/p3-disas/tests/valgrind/B_simple.txt @@ -0,0 +1,33 @@ +==2061005== Memcheck, a memory error detector +==2061005== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2061005== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2061005== Command: ../y86 -a -d inputs/simple.o +==2061005== +01 00 00 01 10 00 01 00 00 00 00 00 45 4c 46 00 +Mini-ELF version 1 +Entry point 0x100 +There are 1 program headers, starting at offset 16 (0x10) +There is no symbol table present +There is no string table present + Segment Offset Size VirtAddr Type Flags + 00 0x0024 0x0017 0x0100 CODE R X +Contents of memory from 0100 to 0117: + 0100 30 f0 68 24 00 00 00 00 00 00 30 f3 34 12 00 00 + 0110 00 00 00 00 60 03 00 +Disassembly of executable contents: + 0x100: | .pos 0x100 code + 0x100: | _start: + 0x100: 30 f0 68 24 00 00 00 00 00 00 | irmovq 0x2468, %rax + 0x10a: 30 f3 34 12 00 00 00 00 00 00 | irmovq 0x1234, %rbx + 0x114: 60 03 | addq %rax, %rbx + 0x116: 00 | halt + +==2061005== +==2061005== HEAP SUMMARY: +==2061005== in use at exit: 0 bytes in 0 blocks +==2061005== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==2061005== +==2061005== All heap blocks were freed -- no leaks are possible +==2061005== +==2061005== For lists of detected and suppressed errors, rerun with: -s +==2061005== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p3-disas/tests/valgrind/B_simple_multi.txt b/p3-disas/tests/valgrind/B_simple_multi.txt new file mode 100644 index 0000000..310f461 --- /dev/null +++ b/p3-disas/tests/valgrind/B_simple_multi.txt @@ -0,0 +1,31 @@ +==2061025== Memcheck, a memory error detector +==2061025== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2061025== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2061025== Command: ../y86 -d inputs/simple_multi.o +==2061025== +Disassembly of executable contents: + 0x100: | .pos 0x100 code + 0x100: 10 | nop + 0x101: 10 | nop + 0x102: 10 | nop + 0x103: | _start: + 0x103: 30 f0 68 24 00 00 00 00 00 00 | irmovq 0x2468, %rax + 0x10d: 30 f3 34 12 00 00 00 00 00 00 | irmovq 0x1234, %rbx + 0x117: 60 03 | addq %rax, %rbx + 0x119: 70 00 02 00 00 00 00 00 00 | jmp 0x200 + + 0x200: | .pos 0x200 code + 0x200: 30 f1 78 56 00 00 00 00 00 00 | irmovq 0x5678, %rcx + 0x20a: 30 f2 14 15 00 00 00 00 00 00 | irmovq 0x1514, %rdx + 0x214: 61 21 | subq %rdx, %rcx + 0x216: 00 | halt + +==2061025== +==2061025== HEAP SUMMARY: +==2061025== in use at exit: 0 bytes in 0 blocks +==2061025== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==2061025== +==2061025== All heap blocks were freed -- no leaks are possible +==2061025== +==2061025== For lists of detected and suppressed errors, rerun with: -s +==2061025== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p3-disas/tests/valgrind/B_tenbyte.txt b/p3-disas/tests/valgrind/B_tenbyte.txt new file mode 100644 index 0000000..2f6b38b --- /dev/null +++ b/p3-disas/tests/valgrind/B_tenbyte.txt @@ -0,0 +1,23 @@ +==2060938== Memcheck, a memory error detector +==2060938== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2060938== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2060938== Command: ../y86 -d inputs/tenbyte.o +==2060938== +Disassembly of executable contents: + 0x100: | .pos 0x100 code + 0x100: | _start: + 0x100: 30 f0 88 77 66 55 44 33 22 11 | irmovq 0x1122334455667788, %rax + 0x10a: 40 12 21 43 65 87 78 56 34 12 | rmmovq %rcx, 0x1234567887654321(%rdx) + 0x114: 50 12 78 56 34 12 21 43 65 87 | mrmovq 0x8765432112345678(%rdx), %rcx + 0x11e: 40 1f 21 43 65 87 78 56 34 12 | rmmovq %rcx, 0x1234567887654321 + 0x128: 50 1f 78 56 34 12 21 43 65 87 | mrmovq 0x8765432112345678, %rcx + +==2060938== +==2060938== HEAP SUMMARY: +==2060938== in use at exit: 0 bytes in 0 blocks +==2060938== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==2060938== +==2060938== All heap blocks were freed -- no leaks are possible +==2060938== +==2060938== For lists of detected and suppressed errors, rerun with: -s +==2060938== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p3-disas/tests/valgrind/C_cmov.txt b/p3-disas/tests/valgrind/C_cmov.txt new file mode 100644 index 0000000..1fdca0b --- /dev/null +++ b/p3-disas/tests/valgrind/C_cmov.txt @@ -0,0 +1,25 @@ +==2060830== Memcheck, a memory error detector +==2060830== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2060830== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2060830== Command: ../y86 -d inputs/cmov.o +==2060830== +Disassembly of executable contents: + 0x100: | .pos 0x100 code + 0x100: | _start: + 0x100: 20 01 | rrmovq %rax, %rcx + 0x102: 21 23 | cmovle %rdx, %rbx + 0x104: 22 45 | cmovl %rsp, %rbp + 0x106: 23 67 | cmove %rsi, %rdi + 0x108: 24 89 | cmovne %r8, %r9 + 0x10a: 25 ab | cmovge %r10, %r11 + 0x10c: 26 ce | cmovg %r12, %r14 + +==2060830== +==2060830== HEAP SUMMARY: +==2060830== in use at exit: 0 bytes in 0 blocks +==2060830== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==2060830== +==2060830== All heap blocks were freed -- no leaks are possible +==2060830== +==2060830== For lists of detected and suppressed errors, rerun with: -s +==2060830== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p3-disas/tests/valgrind/C_help.txt b/p3-disas/tests/valgrind/C_help.txt new file mode 100644 index 0000000..19a1f54 --- /dev/null +++ b/p3-disas/tests/valgrind/C_help.txt @@ -0,0 +1,25 @@ +==2060717== Memcheck, a memory error detector +==2060717== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2060717== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2060717== Command: ../y86 -h +==2060717== +Usage: ../y86 mini-elf-file + Options are: + -h Display usage + -H Show the Mini-ELF header + -a Show all with brief memory + -f Show all with full memory + -s Show the program headers + -m Show the memory contents (brief) + -M Show the memory contents (full) + -d Disassemble code contents + -D Disassemble data contents +==2060717== +==2060717== HEAP SUMMARY: +==2060717== in use at exit: 0 bytes in 0 blocks +==2060717== total heap usage: 1 allocs, 1 frees, 8,192 bytes allocated +==2060717== +==2060717== All heap blocks were freed -- no leaks are possible +==2060717== +==2060717== For lists of detected and suppressed errors, rerun with: -s +==2060717== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p3-disas/tests/valgrind/C_opq.txt b/p3-disas/tests/valgrind/C_opq.txt new file mode 100644 index 0000000..cbe538e --- /dev/null +++ b/p3-disas/tests/valgrind/C_opq.txt @@ -0,0 +1,22 @@ +==2060854== Memcheck, a memory error detector +==2060854== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2060854== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2060854== Command: ../y86 -d inputs/opq.o +==2060854== +Disassembly of executable contents: + 0x100: | .pos 0x100 code + 0x100: | _start: + 0x100: 60 23 | addq %rdx, %rbx + 0x102: 61 01 | subq %rax, %rcx + 0x104: 62 45 | andq %rsp, %rbp + 0x106: 63 67 | xorq %rsi, %rdi + +==2060854== +==2060854== HEAP SUMMARY: +==2060854== in use at exit: 0 bytes in 0 blocks +==2060854== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==2060854== +==2060854== All heap blocks were freed -- no leaks are possible +==2060854== +==2060854== For lists of detected and suppressed errors, rerun with: -s +==2060854== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p3-disas/tests/valgrind/C_twobyte.txt b/p3-disas/tests/valgrind/C_twobyte.txt new file mode 100644 index 0000000..0a8e39b --- /dev/null +++ b/p3-disas/tests/valgrind/C_twobyte.txt @@ -0,0 +1,22 @@ +==2060757== Memcheck, a memory error detector +==2060757== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2060757== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2060757== Command: ../y86 -d inputs/twobyte.o +==2060757== +Disassembly of executable contents: + 0x100: | .pos 0x100 code + 0x100: | _start: + 0x100: 20 01 | rrmovq %rax, %rcx + 0x102: 60 23 | addq %rdx, %rbx + 0x104: a0 6f | pushq %rsi + 0x106: b0 7f | popq %rdi + +==2060757== +==2060757== HEAP SUMMARY: +==2060757== in use at exit: 0 bytes in 0 blocks +==2060757== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==2060757== +==2060757== All heap blocks were freed -- no leaks are possible +==2060757== +==2060757== For lists of detected and suppressed errors, rerun with: -s +==2060757== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p3-disas/tests/valgrind/D_onebyte.txt b/p3-disas/tests/valgrind/D_onebyte.txt new file mode 100644 index 0000000..153f11c --- /dev/null +++ b/p3-disas/tests/valgrind/D_onebyte.txt @@ -0,0 +1,21 @@ +==2060670== Memcheck, a memory error detector +==2060670== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==2060670== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==2060670== Command: ../y86 -d inputs/onebyte.o +==2060670== +Disassembly of executable contents: + 0x100: | .pos 0x100 code + 0x100: | _start: + 0x100: 00 | halt + 0x101: 10 | nop + 0x102: 90 | ret + +==2060670== +==2060670== HEAP SUMMARY: +==2060670== in use at exit: 0 bytes in 0 blocks +==2060670== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==2060670== +==2060670== All heap blocks were freed -- no leaks are possible +==2060670== +==2060670== For lists of detected and suppressed errors, rerun with: -s +==2060670== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p3-disas/y86 b/p3-disas/y86 new file mode 100644 index 0000000000000000000000000000000000000000..909f9af22e239c7376ab39d628b0d0b17863fdf0 GIT binary patch literal 36312 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 TBjQLzR$fR_+#bge2eSVIv`Acg literal 0 HcmV?d00001 diff --git a/p3-disas/y86.h b/p3-disas/y86.h new file mode 100644 index 0000000..32c2464 --- /dev/null +++ b/p3-disas/y86.h @@ -0,0 +1,97 @@ +#ifndef __CS261_Y86__ +#define __CS261_Y86__ + +#include +#include + +#define VADDRBITS 12 +#define MEMSIZE (1 << VADDRBITS) +#define NUMREGS 15 + +/* type declarations */ +typedef uint8_t byte_t; // byte +typedef uint64_t y86_reg_t; // register +typedef uint64_t address_t; // address +typedef bool flag_t; // CPU flag + +/* possible CPU statuses */ +typedef enum { AOK = 1, HLT, ADR, INS } y86_stat_t; + +/* y86 CPU data storage structure */ +typedef struct y86 { + + y86_reg_t reg[NUMREGS]; // 64-bit general-purpose registers + + flag_t zf; // zero flag + flag_t sf; // negative flag + flag_t of; // overflow flag + + y86_reg_t pc; // program counter + + y86_stat_t stat; // program status + +} y86_t; + +/* These enums are specified to match the order of the numbers for all Y86 + instructions and operands. As such, they can be used as constants throughout + the code. */ +typedef enum { + HALT = 0, NOP, CMOV, IRMOVQ, RMMOVQ, MRMOVQ, OPQ, JUMP, CALL, RET, PUSHQ, + POPQ, IOTRAP, INVALID +} y86_icode_t; + +typedef enum { + RRMOVQ = 0, CMOVLE, CMOVL, CMOVE, CMOVNE, CMOVGE, CMOVG, BADCMOV +} y86_cmov_t; + +typedef enum { + ADD = 0, SUB, AND, XOR, BADOP +} y86_op_t; + +typedef enum { + JMP = 0, JLE, JL, JE, JNE, JGE, JG, BADJUMP +} y86_jump_t; + +typedef enum { + CHAROUT = 0, CHARIN, DECOUT, DECIN, STROUT, FLUSH, BADTRAP +} y86_iotrap_t; + +typedef enum { + RAX = 0, RCX, RDX, RBX, RSP, RBP, RSI, RDI, + R8, R9, R10, R11, R12, R13, R14, NOREG +} y86_regnum_t; + +/* Instruction storage structure; use the constants defined in enums above. + Comments reflect correlated information from y86 ISA sheet. See the sheet + for more details. */ +typedef struct y86_inst { + + // opcode (first byte) + + y86_icode_t icode; // high-order 4 bits of opcode (instruction code) + union { + int b; // low-order 4 bits of opcode (instruction function) + y86_cmov_t cmov; // (cmovXX only) + y86_op_t op; // (OPq only) + y86_jump_t jump; // (jXX only) + y86_iotrap_t trap; // (iotrap only) + } ifun; + + // registers (second byte, if present based on icode) + + y86_regnum_t ra; // rA (high-order 4 bits) + y86_regnum_t rb; // rB (low-order 4 bits) + + // valC (eight bytes, if present, starting at either second or third byte) + + union { + address_t dest; // Dest (jXX and call only) + int64_t v; // V (irmovq only) + int64_t d; // D (rmmovq and mrmovq only) + } valC; + + address_t valP; // valP (address of next instruction) + +} y86_inst_t; + +#endif diff --git a/p4-interp/.clang-format b/p4-interp/.clang-format new file mode 100644 index 0000000..62fb300 --- /dev/null +++ b/p4-interp/.clang-format @@ -0,0 +1,7 @@ +BasedOnStyle: LLVM +BreakBeforeBraces: Attach +IndentCaseLabels: true +IndentWidth: 4 +TabWidth: 4 +UseTab: Never +ColumnLimit: 80 \ No newline at end of file diff --git a/p4-interp/Makefile b/p4-interp/Makefile new file mode 100644 index 0000000..3061743 --- /dev/null +++ b/p4-interp/Makefile @@ -0,0 +1,51 @@ +# +# Simple Makefile +# Mike Lam, James Madison University, August 2016 +# +# This makefile builds a simple application that contains a main module +# (specified by the EXE variable) and a predefined list of additional modules +# (specified by the MODS variable). If there are any external library +# dependencies (e.g., the math library, "-lm"), list them in the LIBS variable. +# If there are any precompiled object files, list them in the OBJS variable. +# +# By default, this makefile will build the project with debugging symbols and +# without optimization. To change this, edit or remove the "-g" and "-O0" +# options in CFLAGS and LDFLAGS accordingly. +# +# By default, this makefile build the application using the GNU C compiler, +# adhering to the C99 standard with all warnings enabled. + + +# application-specific settings and run target + +EXE=y86 +MODS=p4-interp.o +OBJS=p1-check.o p2-load.o p3-disas.o +LIBS= + +default: $(EXE) + +test: $(EXE) + TPREFIX=tests/ make -C tests test + +# compiler/linker settings + +CC=gcc +CFLAGS=-g -O0 -Wall --std=c99 -pedantic +LDFLAGS=-g -O0 + + +# build targets + +$(EXE): main.o $(MODS) $(OBJS) + $(CC) $(LDFLAGS) -o $(EXE) $^ $(LIBS) + +%.o: %.c + $(CC) -c $(CFLAGS) $< + +clean: + rm -f $(EXE) main.o $(MODS) + make -C tests clean + +.PHONY: default clean + diff --git a/p4-interp/elf.h b/p4-interp/elf.h new file mode 100644 index 0000000..92d56bf --- /dev/null +++ b/p4-interp/elf.h @@ -0,0 +1,98 @@ +#ifndef __CS261_ELF__ +#define __CS261_ELF__ + +#include +#include + +#include "y86.h" + +/* + Mini-ELF file format (byte 0 = first byte of the file) + +----------------------------------------------+ + | header (elf_hdr_t) - 16 bytes | + +----------------------------------------------+ + | program headers (elf_phdr_t) - 20 bytes each | + +----------------------------------------------+ + | program segments - variable length of bytes | + +----------------------------------------------+ + | symbol table - each entry is 4 bytes each | + +----------------------------------------------+ + | string table - variable length of strings | + +----------------------------------------------+ + + ELF header structure: + +----------------------------------------------------------------------------+ + | 0 1 | 2 3 | 4 5 | 6 7 | 8 9 | 10 11 | 12 13 14 15 | + | version | entry | phdr | numphdr | symtab | strtab | magic number | + +----------------------------------------------------------------------------+ + + Sample ELF header (all entries in hex, format is little endian): + +----------------------------------------------------------------------------+ + | 01 00 | 00 01 | 10 00 | 05 00 | ac 00 | c2 00 | 45 4c 46 00 | + | version | entry | phdr | numphdr | symtab | strtab | magic number | + +----------------------------------------------------------------------------+ + + version = 0x0001 entry = 0x0100 phdr = 0x0010 numphdr = 0x0005 + symtab = 0x00ac strtab = 0x00c2 magic = "ELF\0" + + Interpretation: + This file was created under version 1 of this format. When the program is + loaded into memory, the instruct at address 0x100 (256) will be executed + first. The first program header (which indicates segments in this file) + starts at offset 0x10 (16) into the file, and there are 5 program headers + total. The symbol table starts at offset 0xac (172) into this file, and the + string table starts at offset 0xc2 (194). The magic number is the string + "ELF\0" and is for error checking. +*/ +typedef struct __attribute__((__packed__)) elf { + uint16_t e_version; /* version should be 1 */ + uint16_t e_entry; /* entry point of program */ + uint16_t e_phdr_start; /* start of program headers */ + uint16_t e_num_phdr; /* number of program headers */ + uint16_t e_symtab; /* start of symbol table */ + uint16_t e_strtab; /* start of string table */ + uint32_t magic; /* ELF */ +} elf_hdr_t; + +typedef enum { + DATA, CODE, STACK, HEAP, UNKNOWN +} elf_segtype_t; + +/* + ELF program header structure (describing segments): + +-----------------------------------------------------------------------+ + | 0 1 2 3 | 4 5 6 7 | 8 9 10 11 | 12 13 | 14 15 | 16 17 18 19 | + | offset | size | virt addr | type | flags | magic number| + +-----------------------------------------------------------------------+ + + Flags store segment permissions as RWX (read/write/execute) in binary. + Examples: 100 (binary) = 4 (decimal/hex) = read-only (R ) + 101 (binary) = 5 (decimal/hex) = read-execute (R X) + 110 (binary) = 6 (decimal/hex) = read-write (RW ) + + Sample ELF program header (all entries in hex, format is little endian): + +-----------------------------------------------------------------------+ + | 74 00 00 00 | 12 00 00 00 | 00 01 00 00 | 01 00 | 05 00 | ef be ad de | + | offset | size | virt addr | type | flags | magic number| + +-----------------------------------------------------------------------+ + + offset = 0x00000074 size = 0x00000012 virt addr = 0x00000100 + type = 0x0001 (CODE) flags = 0x0005 (RX) magic = 0xDEADBEEF + + Interpretation: + The segment starts at offset 0x74 (116) in the file, and it is 0x12 (18) + bytes in size. It will be loaded into memory address 0x100 (256). Since it + is a CODE segment, it needs to have read-execute (RX) permissions attached. + The magic number is the value 0xDEADBEEF and is for error checking. +*/ +typedef struct __attribute__((__packed__)) elf_phdr { + uint32_t p_offset; /* beginning of the segment in the file (in bytes) */ + uint32_t p_size; /* number of bytes in the segment */ + uint32_t p_vaddr; /* intended virtual address of the beginning of + the segment in a running program's memory */ + uint16_t p_type; /* segment type (e.g., code, data, etc.) */ + uint16_t p_flags; /* permissions flags */ + uint32_t magic; /* DEADBEEF */ +} elf_phdr_t; + +#endif diff --git a/p4-interp/main.c b/p4-interp/main.c new file mode 100644 index 0000000..45f4cc3 --- /dev/null +++ b/p4-interp/main.c @@ -0,0 +1,246 @@ +/* + * CS 261: Main driver + * + * Name: Nicholas Tamassia + * + * This code was developed in compliance with the JMU honor code + */ + +#include "p1-check.h" +#include "p2-load.h" +#include "p3-disas.h" +#include "p4-interp.h" + +/* + * helper function for printing help text + */ +void usage(char **argv) { + printf("Usage: %s mini-elf-file\n", argv[0]); + printf(" Options are:\n"); + printf(" -h Display usage\n"); + printf(" -H Show the Mini-ELF header\n"); + printf(" -a Show all with brief memory\n"); + printf(" -f Show all with full memory\n"); + printf(" -s Show the program headers\n"); + printf(" -m Show the memory contents (brief)\n"); + printf(" -M Show the memory contents (full)\n"); + printf(" -d Disassemble code contents\n"); + printf(" -D Disassemble data contents\n"); + printf(" -e Execute program\n"); + printf(" -E Execute program (trace mode)\n"); +} + +void exit_file_error(FILE *file) { + if (file) { + fclose(file); + } + + printf("Failed to read file\n"); + exit(EXIT_FAILURE); +} + +void execute_y86(y86_t *cpu, byte_t *memory, bool trace) { + bool cnd = false; + y86_reg_t valA = 0; + y86_reg_t valE = 0; + + printf("Beginning execution at 0x%04lx\n", cpu->pc); + + /* Dump initial state of cpu */ + if (trace) { + dump_cpu_state(cpu); + } + + int execution_count = 0; + + while (cpu->stat == AOK) { + y86_inst_t inst = fetch(cpu, memory); + + if (cpu->stat == ADR || cpu->stat == INS) { + if (trace) { + printf("\nInvalid instruction at 0x%04lx\n", cpu->pc); + } + break; + } + + if (trace) { + printf("\nExecuting: "); + disassemble(&inst); + printf("\n"); + } + + valE = decode_execute(cpu, &inst, &cnd, &valA); + memory_wb_pc(cpu, &inst, memory, cnd, valA, valE); + + if (inst.icode == IOTRAP && cpu->stat == HLT) { + printf("I/O Error\n"); + } + + if (trace && cpu->stat == AOK) { + dump_cpu_state(cpu); + } + + execution_count++; + } + + /* Final state of the cpu */ + dump_cpu_state(cpu); + + printf("Total execution count: %d\n", execution_count); + + if (trace) { + printf("\n"); + dump_memory(memory, 0, MEMSIZE); + } +} + +int main(int argc, char **argv) { + int c; + bool show_elf_header = false; + bool show_program_header = false; + bool show_memory_brief = false; + bool show_memory_full = false; + bool show_code = false; + bool show_data = false; + bool execute_default = false; + bool execute_trace = false; + + while ((c = getopt(argc, argv, "hHafsmMdDeE")) != -1) { + switch (c) { + case 'h': + usage(argv); + return EXIT_SUCCESS; + case 'H': + show_elf_header = true; + break; + case 'a': + show_elf_header = true; + show_program_header = true; + show_memory_brief = true; + break; + case 'f': + show_elf_header = true; + show_program_header = true; + show_memory_full = true; + break; + case 's': + show_program_header = true; + break; + case 'm': + show_memory_brief = true; + break; + case 'M': + show_memory_full = true; + break; + case 'd': + show_code = true; + break; + case 'D': + show_data = true; + break; + case 'e': + execute_default = true; + break; + case 'E': + execute_trace = true; + break; + default: + usage(argv); + return EXIT_FAILURE; + } + } + + /* File path was not the last argument */ + bool invalid_arguments = optind != argc - 1; + /* Attempted to ask for brief and full memory at same time */ + bool memory_flag_conflict = show_memory_brief && show_memory_full; + /* Attempted to execute program in both default and trace mode */ + bool execute_flag_conflict = execute_default && execute_trace; + + if (invalid_arguments || memory_flag_conflict || execute_flag_conflict) { + usage(argv); + return EXIT_FAILURE; + } + + elf_hdr_t header = {0}; + FILE *header_file = fopen(argv[optind], "r"); + + /* Read contents of header_file into header */ + if (!read_header(header_file, &header)) { + exit_file_error(header_file); + } + + if (show_elf_header) { + dump_header(&header); + } + + elf_phdr_t phdrs[header.e_num_phdr]; + memset(phdrs, 0, sizeof(phdrs)); + + /* Read program headers into phdrs array */ + for (int i = 0; i < header.e_num_phdr; i++) { + uint16_t offset = header.e_phdr_start + i * sizeof(elf_phdr_t); + if (!read_phdr(header_file, offset, &phdrs[i])) { + exit_file_error(header_file); + } + } + + if (show_program_header) { + dump_phdrs(header.e_num_phdr, phdrs); + } + + byte_t memory[MEMSIZE]; + memset(memory, 0, MEMSIZE); + + /* Read memory segments into memory array */ + for (int i = 0; i < header.e_num_phdr; i++) { + if (!load_segment(header_file, memory, &phdrs[i])) { + exit_file_error(header_file); + } + } + + fclose(header_file); + + if (show_memory_brief) { + for (int i = 0; i < header.e_num_phdr; i++) { + uint32_t start = phdrs[i].p_vaddr; + uint32_t end = start + phdrs[i].p_size; + + dump_memory(memory, start, end); + } + } else if (show_memory_full) { + dump_memory(memory, 0, MEMSIZE); + } + + if (show_code) { + printf("Disassembly of executable contents:\n"); + + for (int i = 0; i < header.e_num_phdr; i++) { + if (phdrs[i].p_type == CODE) { + disassemble_code(memory, &phdrs[i], &header); + } + } + } + + if (show_data) { + printf("Disassembly of data contents:\n"); + + for (int i = 0; i < header.e_num_phdr; i++) { + if (phdrs[i].p_type == DATA && phdrs[i].p_flags == 4) { + disassemble_rodata(memory, &phdrs[i]); + } else if (phdrs[i].p_type == DATA) { + disassemble_data(memory, &phdrs[i]); + } + } + } + + if (execute_default || execute_trace) { + y86_t cpu = {0}; + cpu.stat = AOK; + cpu.pc = header.e_entry; + + execute_y86(&cpu, memory, execute_trace); + } + + return EXIT_SUCCESS; +} \ No newline at end of file diff --git a/p4-interp/main.o b/p4-interp/main.o new file mode 100644 index 0000000000000000000000000000000000000000..581256917f83b419d24afe1ff9f0d92247caa405 GIT binary patch literal 23288 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 +#include +#include +#include +#include +#include + +#include "elf.h" + +/** + * @brief Load a Mini-ELF header from an open file stream + * + * @param file File stream to use for input + * @param hdr Pointer to region where the Mini-ELF header should be loaded + * @returns True if the header was successfully loaded and verified, false otherwise + */ +bool read_header (FILE *file, elf_hdr_t *hdr); + +/** + * @brief Print Mini-ELF header information to standard out + * + * @param hdr Header with info to print + */ +void dump_header (elf_hdr_t *hdr); + +#endif diff --git a/p4-interp/p1-check.o b/p4-interp/p1-check.o new file mode 100644 index 0000000000000000000000000000000000000000..a943a48b0294ee909f5e10c422409af42e455650 GIT binary patch literal 3088 zcmbtWUuYvm82>iuwK29$JyZ@(bU-RsxGqUKq5e6|wQjoyJx|V71Ruh-*)-8+6E?Gw z3aw&P2&Guxd{pq&*J}~<3J2bu+{5|kixfd9)`uSUA&98ow>y(grwNtwgV~wy_x*m~ zd^0;c$@|vKRLn3yngK7tp(jy*jl|(N8xFHD2m|m(>d8On?B=g_QWm?>GJ?k_yq4|1h_yh_w?(YIQ(F{o z>=<`$DswQLV;AYWcGGIzvJQx|ccrm%0ISIx44p75`iVgC*Q^73;U3Cbws9|Y9a7h~ zo8Q~(r$~*Jgfm4#>%c&9YW3?INtujhOKn1Gvx_E*XJaQ3dQzLW1s8`@4W`ZZo+L{Y zKHlc0U?&cRIP6l;Ug~gZ(I!VzCDlyH!%R5*ubDRP+@w828%~ea;Y!IXjp9pV@49}i zRPoqwkOa%){xYjpN*-tF`f!~#5@5FI`Yv;@4F|01R~CJz%!;m)N9B1|tbG4~uKp7v<+ZmGS`j zRbe~-^yK98?A+XZ;PHTEGUf#{J(>wZH?ul6W~MKU2$*W=!A2hloz3Z2=O6~KO;{Wo z8I2h>83!=JI6|Qr!k6FhqY{7b8W{B<<7|IlVgrLuAWn@ePY-Kw=#$vwKyU0VWJIwS z2}fI}WHKKA$Os8xr1K-*@dlwagkRh-QM|pnqoH`X+M^hGap*k`hIn5W92eBV;_%Qh zl$Ls0sXyEs#0Id@d(rJ_1Ulg(h*KV^5BCtUXS?t(cEMlif`gCWPA>X@AU8d8b>h-Y z?&{Rk>(*>;_R_?Rm4gCNARm;gl2;A*LecS|iU*t*0Nom<5A6lf_hA1pw!i*~>@x+Y zJ&^d9UGQ%Oj^~!nZkzvu!XH%dpA}rqe_!A-54{(%zoRZZ8ET%>f*|>i3*J)#r**0P z%NqZ@;J?v@|DncT68ulQ@ITl1UkUyf3O|LI+|Roj|E}Qwr0~`Hf6@3o!v9U-tNEG8 zNBbivA(GYbyzs%qYZk9S?71KHMLF`_CCB7$or9ToxC7>Vtp=uFiJXN>xl9+U=~cLE z;vF`MxBJ37!e8_P6R-cO>+@yQP$svSE8wqzD`);+Jwr9EPro6uh>_h_7mvQ?!db-V ztYopNmJkVdgn+&g8p@mHj37TFaCu(~7&5f+9Za8}&LQP|P<;lqlvAH>TmU25gtC5= zg!UXhiIR@o_R|ps$?rr4WIEYTU_g!~hx&DWK_aMguOUvixL*H;(7z^hveWB-8v~S6 z*Y61Zn^GuxT~DX5)BE2QKP_@!=>5~Lht$jW-)U}|YMhdyeIORxkK;~y!a8l$miXzs YOi2{e_wNymb<&>^g|`3jh#b29U%e&kb^rhX literal 0 HcmV?d00001 diff --git a/p4-interp/p2-load.h b/p4-interp/p2-load.h new file mode 100644 index 0000000..e15cfa7 --- /dev/null +++ b/p4-interp/p2-load.h @@ -0,0 +1,52 @@ +#ifndef __CS261_P2__ +#define __CS261_P2__ + +#include +#include +#include +#include +#include +#include + +#include "elf.h" +#include "y86.h" + +/** + * @brief Load a Mini-ELF program header from an open file stream + * + * @param file File stream to use for input + * @param offset Byte offset in file where the program header is located + * @param phdr Pointer to memory where the Mini-ELF program header should be loaded + * @returns True if the header was successfully loaded and verified, false otherwise + */ +bool read_phdr (FILE *file, uint16_t offset, elf_phdr_t *phdr); + +/** + * @brief Load a Mini-ELF program segment from an open file stream + * + * @param file File stream to use for input + * @param memory Pointer to the beginning of the Y86 address space into which + * the segment should be loaded + * @param phdr Pointer to the program header for the segment that should be loaded + * @returns True if the segment was successfully loaded, false otherwise + */ +bool load_segment (FILE *file, byte_t *memory, elf_phdr_t *phdr); + +/** + * @brief Print Mini-ELF program header information to standard out + * + * @param numphdrs Number of program headers to print + * @param phdrs Pointer to array of program headers with info to print + */ +void dump_phdrs (uint16_t numphdrs, elf_phdr_t *phdrs); + +/** + * @brief Print a portion of a Y86 address space + * + * @param memory Pointer to the beginning of the Y86 address space + * @param start Byte offset where printing should begin + * @param end Byte offset where printing should end + */ +void dump_memory (byte_t *memory, uint16_t start, uint16_t end); + +#endif diff --git a/p4-interp/p2-load.o b/p4-interp/p2-load.o new file mode 100644 index 0000000000000000000000000000000000000000..657b8101649af6e70b68a5cc6cb80231093d0187 GIT binary patch literal 4104 zcmbtWUu;uV7(ch|=p19M|A+=+u7oK>S6ecTLohAlj!T#uuog)M)^6=({As(~-bzQD z7%vcR#texj`ec0YK_1jMMi_s}AS@^`^Noka^Z}BRkvJj`jafFo@7#0B z%0{fL7}5h-AFdFs7p5}NqQ0^B9>^n7w5Sw{AFG5@wa603l$EE~U_$Jm#i zqdKO7tXG8m^C%t(`#1h^>4)F*-gBrmQ+E!YL@x<9uG+JZjXceR=HNT_4f@lEXNm9F z7baT<_9U|4*Ebe!RP>5RJ3^yuuQ!8vgsF|hPsrhZwmx3ec2JfWS75I3DwwCoxNh3i z8xz3H%A*@xXdxR{=nK*}r!Q9fRg4N0an3g;&FK}l_9i@zw&@j@whA6c-+)}aP#A6L z%xZbG4qk-Jtm4dzobhwU%b2~@LPcVcXb<#kjR8sJixBE26sQPQ`3h>w)On94rD=?C zHw~f@Xxc<)xjuh%2qab@8qu@umey^Suf2(mnVpL$GnC*jF z)9uW*#x+rwrUmH!%{FP;ck0Ca!orMjS{_Z6dn0=ydmlEEox8Ge- zI^VH6Xqay-Rsuh_og<+{FU{gsyE_S$!~N#0sZ2`qP}w2SnAb~Q1rBb*WvnvI7^2`_ zofjt1W81{=a;Nv230C!{a2Mg3hfQ;q_|6ucqta+a0rHzy^x=8m;pJ5i7^&1Y;X8F; zVPWBN1J6X!r8z%{=9G7&lJB$EKnRt)aTVl9n535-Aw|U8 zFp!WJVQ@Ji0+j zr@%HW?I~cH8u~;{C6e*Mfuu^}TROWpMLOf%9UVPVG#-s?>XhOH&Uoq|QBaK>%7Sjr zyZ{K=#5FkOaV;CqX(~zP(}UDgjtu5Cc&Pg`nqtD{kwv_JAfZAod~f4ZG@Z{-_1F#ub?z#$~0YNZ5w+^Y@_* z=jZQJ8_v()_colLClbgFrL{yK%$jP>1DsP+hY|rTRnSNvna~m>(3i`RfSNTI{n<2r zI7uLr)lvcYwzTB5ME^my-j~S-2G#6fO4WwI20f();)A>%{jp_ZDW% z8CGYGTWgBg3K*yohGC`M>}m~TBY^NMqb z+K0dveX=xxGijE^pW*?WviGwKU9;FCYq$R!3LhWe literal 0 HcmV?d00001 diff --git a/p4-interp/p3-disas.h b/p4-interp/p3-disas.h new file mode 100644 index 0000000..116ac49 --- /dev/null +++ b/p4-interp/p3-disas.h @@ -0,0 +1,55 @@ +#ifndef __CS261_P3__ +#define __CS261_P3__ + +#include +#include +#include +#include +#include +#include + +#include "elf.h" +#include "y86.h" + +/** + * @brief Load a Y86 instruction from memory + * + * @param cpu Pointer to Y86 CPU structure with the PC address to be loaded + * @param memory Pointer to the beginning of the Y86 address space + * @returns Populated Y86 instruction structure + */ +y86_inst_t fetch (y86_t *cpu, byte_t *memory); + +/** + * @brief Print the disassembly of a Y86 instruction to standard out + * + * @param inst Pointer to Y86 instruction structure to be printed + */ +void disassemble (y86_inst_t *inst); + +/** + * @brief Print the disassembly of a Y86 code segment + * + * @param memory Pointer to the beginning of the Y86 address space + * @param phdr Program header of segment to be printed + * @param hdr File header (needed to detect the entry point) + */ +void disassemble_code (byte_t *memory, elf_phdr_t *phdr, elf_hdr_t *hdr); + +/** + * @brief Print the disassembly of a Y86 read/write data segment + * + * @param memory Pointer to the beginning of the Y86 address space + * @param phdr Program header of segment to be printed + */ +void disassemble_data (byte_t *memory, elf_phdr_t *phdr); + +/** + * @brief Print the disassembly of a Y86 read-only data segment + * + * @param memory Pointer to the beginning of the Y86 address space + * @param phdr Program header of segment to be printed + */ +void disassemble_rodata (byte_t *memory, elf_phdr_t *phdr); + +#endif diff --git a/p4-interp/p3-disas.o b/p4-interp/p3-disas.o new file mode 100644 index 0000000000000000000000000000000000000000..b8902512adf3931516c14c4c19c0c3006276f40c GIT binary patch literal 18584 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 + bool less_than = cpu->sf != cpu->of; + + switch (ifun) { + case RRMOVQ: + return true; + case CMOVLE: + return less_than || equals; + case CMOVL: + return less_than && !equals; + case CMOVE: + return equals; + case CMOVNE: + return !equals; + case CMOVGE: + return !less_than || equals; + case CMOVG: + return !less_than && !equals; + case BADCMOV: + default: + cpu->stat = INS; + return false; + } +} + +int64_t OP(y86_t *cpu, y86_op_t ifun, int64_t valA, int64_t valB); + +int64_t OP(y86_t *cpu, y86_op_t ifun, int64_t valA, int64_t valB) { + int64_t result = 0; + + switch (ifun) { + case ADD: + result = valA + valB; + cpu->of = ((valA > 0 && valB > 0 && result < 0) || + (valA < 0 && valB < 0 && result > 0)); + break; + case SUB: + result = valB - valA; + cpu->of = ((valA < 0 && valB > 0 && result < 0) || + (valA > 0 && valB < 0 && result > 0)); + break; + case AND: + result = valA & valB; + cpu->of = false; + break; + case XOR: + result = valA ^ valB; + cpu->of = false; + break; + case BADOP: + default: + cpu->stat = INS; + return 0; + } + + cpu->sf = result < 0; + cpu->zf = result == 0; + return result; +} + +bool jmp_cond(y86_t *cpu, y86_jump_t ifun); + +bool jmp_cond(y86_t *cpu, y86_jump_t ifun) { + bool equals = cpu->zf; + bool less_than = cpu->sf != cpu->of; + + switch (ifun) { + case JMP: + return true; + case JLE: + return less_than || equals; + case JL: + return less_than && !equals; + case JE: + return equals; + case JNE: + return !equals; + case JGE: + return !less_than || equals; + case JG: + return !less_than && !equals; + case BADJUMP: + default: + cpu->stat = INS; + return false; + } +} + +y86_reg_t decode_execute(y86_t *cpu, y86_inst_t *inst, bool *cnd, + y86_reg_t *valA) { + + y86_reg_t valE = 0; + + if (cpu == NULL) { + return valE; + } + + if (inst == NULL || cnd == NULL || valA == NULL) { + cpu->stat = INS; + return valE; + } + + switch (inst->icode) { + case HALT: + cpu->stat = HLT; + break; + case NOP: + break; + case CMOV: + *valA = cpu->reg[inst->ra]; + valE = *valA; + *cnd = cmov_cond(cpu, inst->ifun.cmov); + break; + case IRMOVQ: + valE = inst->valC.v; + break; + case RMMOVQ: + *valA = cpu->reg[inst->ra]; + valE = cpu->reg[inst->rb] + inst->valC.d; + break; + case MRMOVQ: + valE = cpu->reg[inst->rb] + inst->valC.d; + break; + case OPQ: + *valA = cpu->reg[inst->ra]; + valE = OP(cpu, inst->ifun.op, *valA, cpu->reg[inst->rb]); + break; + case JUMP: + *cnd = jmp_cond(cpu, inst->ifun.jump); + break; + case CALL: + valE = cpu->reg[RSP] - 8; + break; + case PUSHQ: + *valA = cpu->reg[inst->ra]; + valE = cpu->reg[RSP] - 8; + break; + case POPQ: + case RET: + *valA = cpu->reg[RSP]; + valE = cpu->reg[RSP] + 8; + break; + case IOTRAP: + break; + case INVALID: + default: + cpu->stat = INS; + break; + } + + return valE; +} + +bool validate_address(y86_reg_t dest_address, size_t size, y86_t *cpu); + +bool validate_address(y86_reg_t dest_address, size_t size, y86_t *cpu) { + bool valid = dest_address <= MEMSIZE - size; + if (!valid) { + cpu->stat = ADR; + } + return valid; +} + +char buffer[100]; +int buffer_offset = 0; + +void iotrap(y86_t *cpu, y86_iotrap_t ifun, byte_t *memory); + +void iotrap(y86_t *cpu, y86_iotrap_t ifun, byte_t *memory) { + int64_t dec = 0; + y86_reg_t rdi = cpu->reg[RDI]; + y86_reg_t rsi = cpu->reg[RSI]; + + char *start = buffer + buffer_offset; + size_t space = sizeof(buffer) - buffer_offset; + + switch (ifun) { + case CHAROUT: + if (validate_address(rsi, 1, cpu)) { + buffer[buffer_offset++] = memory[rsi]; + } + break; + case CHARIN: + if (validate_address(rdi, 1, cpu) && + scanf("%c", memory + rdi) <= 0) { + cpu->stat = HLT; + } + break; + case DECOUT: + if (validate_address(rsi, sizeof(dec), cpu)) { + memcpy(&dec, memory + rsi, sizeof(dec)); + buffer_offset += snprintf(start, space, "%ld", dec); + } + break; + case DECIN: + if (!validate_address(rdi, sizeof(dec), cpu)) { + break; + } + + if (scanf("%ld", &dec) <= 0) { + cpu->stat = HLT; + } else { + memcpy(memory + rdi, &dec, sizeof(dec)); + } + break; + case STROUT: + if (validate_address(rsi, 1, cpu)) { + buffer_offset += snprintf(start, space, "%s", memory + rsi); + } + break; + case FLUSH: + printf("%s", buffer); + memset(buffer, 0, sizeof(buffer)); + buffer_offset = 0; + break; + case BADTRAP: + default: + cpu->stat = INS; + break; + } +} + +void memory_wb_pc(y86_t *cpu, y86_inst_t *inst, byte_t *memory, bool cnd, + y86_reg_t valA, y86_reg_t valE) { + + if (cpu == NULL) { + return; + } + + if (inst == NULL || memory == NULL) { + cpu->stat = INS; + return; + } + + y86_reg_t *RA = &cpu->reg[inst->ra]; + y86_reg_t *RB = &cpu->reg[inst->rb]; + + switch (inst->icode) { + case HALT: + case NOP: + cpu->pc = inst->valP; + break; + case CMOV: + if (cnd) { + *RB = valE; + } + cpu->pc = inst->valP; + break; + case IRMOVQ: + case OPQ: + *RB = valE; + cpu->pc = inst->valP; + break; + case RMMOVQ: + if (validate_address(valE, sizeof(valA), cpu)) { + memcpy(memory + valE, &valA, sizeof(valA)); + } + cpu->pc = inst->valP; + break; + case MRMOVQ: + if (validate_address(valE, sizeof(*RA), cpu)) { + memcpy(RA, memory + valE, sizeof(*RA)); + } + cpu->pc = inst->valP; + break; + case JUMP: + cpu->pc = cnd ? inst->valC.dest : inst->valP; + break; + case CALL: + if (validate_address(valE, sizeof(inst->valP), cpu)) { + memcpy(memory + valE, &inst->valP, sizeof(inst->valP)); + cpu->reg[RSP] = valE; + } + cpu->pc = inst->valC.dest; + break; + case RET: + if (validate_address(valA, sizeof(cpu->pc), cpu)) { + memcpy(&cpu->pc, memory + valA, sizeof(cpu->pc)); + cpu->reg[RSP] = valE; + } + break; + case PUSHQ: + if (validate_address(valE, sizeof(valA), cpu)) { + memcpy(memory + valE, &valA, sizeof(valA)); + cpu->reg[RSP] = valE; + } + cpu->pc = inst->valP; + break; + case POPQ: + if (validate_address(valA, sizeof(*RA), cpu)) { + memcpy(RA, memory + valA, sizeof(*RA)); + cpu->reg[RSP] = valE; + } + cpu->pc = inst->valP; + break; + case IOTRAP: + iotrap(cpu, inst->ifun.trap, memory); + cpu->pc = inst->valP; + break; + case INVALID: + default: + break; + } +} + +/********************************************************************** + * OPTIONAL FUNCTIONS + *********************************************************************/ + +const char *registers[] = {"rax", "rcx", "rdx", "rbx", "rsp", + "rbp", "rsi", "rdi", "r8", "r9", + "r10", "r11", "r12", "r13", "r14"}; + +const char *status_codes[] = {"INVALID", "AOK", "HLT", "ADR", "INS"}; + +void dump_cpu_state(y86_t *cpu) { + printf("Y86 CPU state:\n"); + + char buffer[50]; + + snprintf(buffer, sizeof(buffer), "PC: %016lx", cpu->pc); + + printf("%24s", buffer); + + snprintf(buffer, sizeof(buffer), "flags: Z%d S%d O%d %3s", cpu->zf, + cpu->sf, cpu->of, status_codes[cpu->stat]); + + printf(" %24s\n", buffer); + + for (int i = 0; i < NUMREGS; i++) { + snprintf(buffer, sizeof(buffer), "%%%s: %016lx", registers[i], + cpu->reg[i]); + + printf("%24s", buffer); + + printf((i % 2 == 0 && i < NUMREGS - 1) ? " " : "\n"); + } +} diff --git a/p4-interp/p4-interp.h b/p4-interp/p4-interp.h new file mode 100644 index 0000000..de136f9 --- /dev/null +++ b/p4-interp/p4-interp.h @@ -0,0 +1,47 @@ +#ifndef __CS261_P4__ +#define __CS261_P4__ + +#include +#include +#include +#include +#include +#include +#include + +#include "elf.h" +#include "y86.h" + +/** + * @brief Read register values and execute ALU operation + * + * @param cpu Y86 CPU structure + * @param inst Y86 instruction structure for currently-executing instruction + * @param cnd Pointer to boolean flag to be set for conditional jumps and moves + * @param valA Pointer to Y86 register for passing valA to later stages + * @returns Result of execute phase (valE) + */ +y86_reg_t decode_execute (y86_t *cpu, y86_inst_t *inst, bool *cnd, y86_reg_t *valA); + +/** + * @brief Perform any memory read/write, write register values, and update the PC + * + * @param cpu Y86 CPU structure + * @param inst Y86 instruction structure for currently-executing instruction + * @param memory Pointer to beginning of the Y86 address space + * @param cnd Flag that indicates whether a conditional jumps or move should happen + * @param valA Register with valA from earlier stages + * @param valE Register with valE from earlier stages + */ + +void memory_wb_pc (y86_t *cpu, y86_inst_t *inst, byte_t *memory, + bool cnd, y86_reg_t valA, y86_reg_t valE); + +/** + * @brief Print info about a Y86 CPU to standard out + * + * @param cpu Pointer to Y86 CPU structure to print + */ +void dump_cpu_state (y86_t *cpu); + +#endif diff --git a/p4-interp/p4-interp.o b/p4-interp/p4-interp.o new file mode 100644 index 0000000000000000000000000000000000000000..3aab9c751a2f07bcb8c1a2c2bfecd8660c96d14e GIT binary patch literal 20024 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 QYJZ08|D9?`x#kY`pO)}+(*OVf literal 0 HcmV?d00001 diff --git a/p4-interp/tests/Makefile b/p4-interp/tests/Makefile new file mode 100644 index 0000000..4ccd4e1 --- /dev/null +++ b/p4-interp/tests/Makefile @@ -0,0 +1,81 @@ +# +# Simple Test Makefile +# Mike Lam, James Madison University, August 2016 +# +# This version of the Makefile includes support for building a test suite. The +# recommended framework is Check (http://check.sourceforge.net/). To build and +# run the test suite, execute the "test" target. The test suite must be located +# in a module called "testsuite". The MODS, LIBS, and OBJS variables work as +# they do in the main Makefile. +# +# To change the default build target (which executes when you just type +# "make"), change the right-hand side of the definition of the "default" +# target. +# +# By default, this makefile will build the project with debugging symbols and +# without optimization. To change this, edit or remove the "-g" and "-O0" +# options in CFLAGS and LDFLAGS accordingly. +# +# By default, this makefile build the application using the GNU C compiler, +# adhering to the C99 standard with all warnings enabled. + + +# application-specific settings and run target + +EXE=../y86 +TEST=testsuite +MODS=public.o +OBJS=../p1-check.o ../p2-load.o ../p3-disas.o ../p4-interp.o private.o +LIBS= + +UTESTOUT=utests.txt +ITESTOUT=itests.txt + +default: $(TEST) + +$(EXE): + make -C ../ + +test: utest itest + @echo "========================================" + +utest: $(EXE) $(TEST) + @echo "========================================" + @echo " UNIT TESTS" + @./$(TEST) 2>/dev/null >$(UTESTOUT) + @cat $(UTESTOUT) | sed -n -e '/Checks/,$$p' | sed -e 's/^private.*:[EF]://g' + +itest: $(EXE) + @echo "========================================" + @echo " INTEGRATION TESTS" + @./integration.sh | tee $(ITESTOUT) + + +# compiler/linker settings + +CC=gcc +CFLAGS=-g -O0 -Wall --std=c99 -pedantic +LDFLAGS=-g -O0 + +CFLAGS+=-I/opt/homebrew/include -Wno-gnu-zero-variadic-macro-arguments +LDFLAGS+=-L/opt/homebrew/lib +LIBS+=-lcheck -lm -lpthread + +ifeq ($(shell uname -s),Linux) + LIBS+=-lrt -lsubunit +endif + + +# build targets + +$(TEST): $(TEST).o $(MODS) $(OBJS) + $(CC) $(LDFLAGS) -o $(TEST) $^ $(LIBS) + +%.o: %.c + $(CC) -c $(CFLAGS) $< + +clean: + rm -rf $(TEST) $(TEST).o $(MODS) $(UTESTOUT) $(ITESTOUT) outputs valgrind + +.PHONY: default clean test unittest inttest + diff --git a/p4-interp/tests/expected/A_bad_addr.txt b/p4-interp/tests/expected/A_bad_addr.txt new file mode 100644 index 0000000..411787d --- /dev/null +++ b/p4-interp/tests/expected/A_bad_addr.txt @@ -0,0 +1,12 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000114 flags: Z0 S0 O0 ADR + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 000000000001e240 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 2 diff --git a/p4-interp/tests/expected/A_bad_addr_debug.txt b/p4-interp/tests/expected/A_bad_addr_debug.txt new file mode 100644 index 0000000..b7fcdc2 --- /dev/null +++ b/p4-interp/tests/expected/A_bad_addr_debug.txt @@ -0,0 +1,294 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x1e240, %rbx +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 000000000001e240 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: mrmovq 0x0(%rbx), %rax +Y86 CPU state: + PC: 0000000000000114 flags: Z0 S0 O0 ADR + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 000000000001e240 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 2 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f3 40 e2 01 00 00 00 00 00 50 03 00 00 00 00 + 0110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/p4-interp/tests/expected/A_bad_insn.txt b/p4-interp/tests/expected/A_bad_insn.txt new file mode 100644 index 0000000..079b685 --- /dev/null +++ b/p4-interp/tests/expected/A_bad_insn.txt @@ -0,0 +1,12 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 INS + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 134031200000000f + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 1 diff --git a/p4-interp/tests/expected/A_bad_insn_debug.txt b/p4-interp/tests/expected/A_bad_insn_debug.txt new file mode 100644 index 0000000..fec2c75 --- /dev/null +++ b/p4-interp/tests/expected/A_bad_insn_debug.txt @@ -0,0 +1,294 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x134031200000000f, %rbx +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 134031200000000f + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Invalid instruction at 0x010a +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 INS + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 134031200000000f + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 1 + +Contents of memory from 0000 to 1000: + 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f3 0f 00 00 00 20 31 40 13 fd ff ff ff 60 31 + 0110 70 08 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 aa bb cc dd 00 00 00 dd 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/p4-interp/tests/expected/A_bad_nostack.txt b/p4-interp/tests/expected/A_bad_nostack.txt new file mode 100644 index 0000000..4006202 --- /dev/null +++ b/p4-interp/tests/expected/A_bad_nostack.txt @@ -0,0 +1,12 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 ADR + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 1 diff --git a/p4-interp/tests/expected/A_both_flags.txt b/p4-interp/tests/expected/A_both_flags.txt new file mode 100644 index 0000000..a976979 --- /dev/null +++ b/p4-interp/tests/expected/A_both_flags.txt @@ -0,0 +1,13 @@ +Usage: ../y86 mini-elf-file + Options are: + -h Display usage + -H Show the Mini-ELF header + -a Show all with brief memory + -f Show all with full memory + -s Show the program headers + -m Show the memory contents (brief) + -M Show the memory contents (full) + -d Disassemble code contents + -D Disassemble data contents + -e Execute program + -E Execute program (trace mode) diff --git a/p4-interp/tests/expected/A_cjmp_debug.txt b/p4-interp/tests/expected/A_cjmp_debug.txt new file mode 100644 index 0000000..d5f23a8 --- /dev/null +++ b/p4-interp/tests/expected/A_cjmp_debug.txt @@ -0,0 +1,798 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0xf00, %rsp +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x1, %rax +Y86 CPU state: + PC: 0000000000000114 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: andq %rax, %rax +Y86 CPU state: + PC: 0000000000000116 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: call 0x14a +Y86 CPU state: + PC: 000000000000014a flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jmp 0x154 +Y86 CPU state: + PC: 0000000000000154 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jle 0x15e +Y86 CPU state: + PC: 000000000000015d flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: nop +Y86 CPU state: + PC: 000000000000015e flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jl 0x168 +Y86 CPU state: + PC: 0000000000000167 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: nop +Y86 CPU state: + PC: 0000000000000168 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: je 0x172 +Y86 CPU state: + PC: 0000000000000171 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: nop +Y86 CPU state: + PC: 0000000000000172 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jne 0x17c +Y86 CPU state: + PC: 000000000000017c flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jge 0x186 +Y86 CPU state: + PC: 0000000000000186 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jg 0x190 +Y86 CPU state: + PC: 0000000000000190 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: ret +Y86 CPU state: + PC: 000000000000011f flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0xffffffffffffffff, %rax +Y86 CPU state: + PC: 0000000000000129 flags: Z0 S0 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: andq %rax, %rax +Y86 CPU state: + PC: 000000000000012b flags: Z0 S1 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: call 0x14a +Y86 CPU state: + PC: 000000000000014a flags: Z0 S1 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jmp 0x154 +Y86 CPU state: + PC: 0000000000000154 flags: Z0 S1 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jle 0x15e +Y86 CPU state: + PC: 000000000000015e flags: Z0 S1 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jl 0x168 +Y86 CPU state: + PC: 0000000000000168 flags: Z0 S1 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: je 0x172 +Y86 CPU state: + PC: 0000000000000171 flags: Z0 S1 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: nop +Y86 CPU state: + PC: 0000000000000172 flags: Z0 S1 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jne 0x17c +Y86 CPU state: + PC: 000000000000017c flags: Z0 S1 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jge 0x186 +Y86 CPU state: + PC: 0000000000000185 flags: Z0 S1 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: nop +Y86 CPU state: + PC: 0000000000000186 flags: Z0 S1 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jg 0x190 +Y86 CPU state: + PC: 000000000000018f flags: Z0 S1 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: nop +Y86 CPU state: + PC: 0000000000000190 flags: Z0 S1 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: ret +Y86 CPU state: + PC: 0000000000000134 flags: Z0 S1 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rax +Y86 CPU state: + PC: 000000000000013e flags: Z0 S1 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: andq %rax, %rax +Y86 CPU state: + PC: 0000000000000140 flags: Z1 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: call 0x14a +Y86 CPU state: + PC: 000000000000014a flags: Z1 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jmp 0x154 +Y86 CPU state: + PC: 0000000000000154 flags: Z1 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jle 0x15e +Y86 CPU state: + PC: 000000000000015e flags: Z1 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jl 0x168 +Y86 CPU state: + PC: 0000000000000167 flags: Z1 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: nop +Y86 CPU state: + PC: 0000000000000168 flags: Z1 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: je 0x172 +Y86 CPU state: + PC: 0000000000000172 flags: Z1 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jne 0x17c +Y86 CPU state: + PC: 000000000000017b flags: Z1 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: nop +Y86 CPU state: + PC: 000000000000017c flags: Z1 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jge 0x186 +Y86 CPU state: + PC: 0000000000000186 flags: Z1 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jg 0x190 +Y86 CPU state: + PC: 000000000000018f flags: Z1 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: nop +Y86 CPU state: + PC: 0000000000000190 flags: Z1 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: ret +Y86 CPU state: + PC: 0000000000000149 flags: Z1 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 000000000000014a flags: Z1 S0 O0 HLT + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 44 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f4 00 0f 00 00 00 00 00 00 30 f0 01 00 00 00 + 0110 00 00 00 00 62 00 80 4a 01 00 00 00 00 00 00 30 + 0120 f0 ff ff ff ff ff ff ff ff 62 00 80 4a 01 00 00 + 0130 00 00 00 00 30 f0 00 00 00 00 00 00 00 00 62 00 + 0140 80 4a 01 00 00 00 00 00 00 00 70 54 01 00 00 00 + 0150 00 00 00 10 71 5e 01 00 00 00 00 00 00 10 72 68 + 0160 01 00 00 00 00 00 00 10 73 72 01 00 00 00 00 00 + 0170 00 10 74 7c 01 00 00 00 00 00 00 10 75 86 01 00 + 0180 00 00 00 00 00 10 76 90 01 00 00 00 00 00 00 10 + 0190 90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 49 01 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/p4-interp/tests/expected/A_cmov_debug.txt b/p4-interp/tests/expected/A_cmov_debug.txt new file mode 100644 index 0000000..b5fba8d --- /dev/null +++ b/p4-interp/tests/expected/A_cmov_debug.txt @@ -0,0 +1,906 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0xf00, %rsp +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x1, %rax +Y86 CPU state: + PC: 0000000000000114 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: andq %rax, %rax +Y86 CPU state: + PC: 0000000000000116 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: call 0x14a +Y86 CPU state: + PC: 000000000000014a flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x1, %rax +Y86 CPU state: + PC: 0000000000000154 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 000000000000015e flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmovle %rax, %rdx +Y86 CPU state: + PC: 0000000000000160 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 000000000000016a flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmovl %rax, %rdx +Y86 CPU state: + PC: 000000000000016c flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 0000000000000176 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmove %rax, %rdx +Y86 CPU state: + PC: 0000000000000178 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 0000000000000182 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmovne %rax, %rdx +Y86 CPU state: + PC: 0000000000000184 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000001 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 000000000000018e flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmovge %rax, %rdx +Y86 CPU state: + PC: 0000000000000190 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000001 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 000000000000019a flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmovg %rax, %rdx +Y86 CPU state: + PC: 000000000000019c flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000001 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: ret +Y86 CPU state: + PC: 000000000000011f flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000001 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0xffffffffffffffff, %rax +Y86 CPU state: + PC: 0000000000000129 flags: Z0 S0 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000001 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: andq %rax, %rax +Y86 CPU state: + PC: 000000000000012b flags: Z0 S1 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000001 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: call 0x14a +Y86 CPU state: + PC: 000000000000014a flags: Z0 S1 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000001 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x1, %rax +Y86 CPU state: + PC: 0000000000000154 flags: Z0 S1 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000001 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 000000000000015e flags: Z0 S1 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmovle %rax, %rdx +Y86 CPU state: + PC: 0000000000000160 flags: Z0 S1 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000001 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 000000000000016a flags: Z0 S1 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmovl %rax, %rdx +Y86 CPU state: + PC: 000000000000016c flags: Z0 S1 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000001 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 0000000000000176 flags: Z0 S1 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmove %rax, %rdx +Y86 CPU state: + PC: 0000000000000178 flags: Z0 S1 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 0000000000000182 flags: Z0 S1 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmovne %rax, %rdx +Y86 CPU state: + PC: 0000000000000184 flags: Z0 S1 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000001 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 000000000000018e flags: Z0 S1 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmovge %rax, %rdx +Y86 CPU state: + PC: 0000000000000190 flags: Z0 S1 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 000000000000019a flags: Z0 S1 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmovg %rax, %rdx +Y86 CPU state: + PC: 000000000000019c flags: Z0 S1 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: ret +Y86 CPU state: + PC: 0000000000000134 flags: Z0 S1 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rax +Y86 CPU state: + PC: 000000000000013e flags: Z0 S1 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: andq %rax, %rax +Y86 CPU state: + PC: 0000000000000140 flags: Z1 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: call 0x14a +Y86 CPU state: + PC: 000000000000014a flags: Z1 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x1, %rax +Y86 CPU state: + PC: 0000000000000154 flags: Z1 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 000000000000015e flags: Z1 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmovle %rax, %rdx +Y86 CPU state: + PC: 0000000000000160 flags: Z1 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000001 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 000000000000016a flags: Z1 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmovl %rax, %rdx +Y86 CPU state: + PC: 000000000000016c flags: Z1 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 0000000000000176 flags: Z1 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmove %rax, %rdx +Y86 CPU state: + PC: 0000000000000178 flags: Z1 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000001 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 0000000000000182 flags: Z1 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmovne %rax, %rdx +Y86 CPU state: + PC: 0000000000000184 flags: Z1 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 000000000000018e flags: Z1 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmovge %rax, %rdx +Y86 CPU state: + PC: 0000000000000190 flags: Z1 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000001 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 000000000000019a flags: Z1 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmovg %rax, %rdx +Y86 CPU state: + PC: 000000000000019c flags: Z1 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: ret +Y86 CPU state: + PC: 0000000000000149 flags: Z1 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 000000000000014a flags: Z1 S0 O0 HLT + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 53 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f4 00 0f 00 00 00 00 00 00 30 f0 01 00 00 00 + 0110 00 00 00 00 62 00 80 4a 01 00 00 00 00 00 00 30 + 0120 f0 ff ff ff ff ff ff ff ff 62 00 80 4a 01 00 00 + 0130 00 00 00 00 30 f0 00 00 00 00 00 00 00 00 62 00 + 0140 80 4a 01 00 00 00 00 00 00 00 30 f0 01 00 00 00 + 0150 00 00 00 00 30 f2 00 00 00 00 00 00 00 00 21 02 + 0160 30 f2 00 00 00 00 00 00 00 00 22 02 30 f2 00 00 + 0170 00 00 00 00 00 00 23 02 30 f2 00 00 00 00 00 00 + 0180 00 00 24 02 30 f2 00 00 00 00 00 00 00 00 25 02 + 0190 30 f2 00 00 00 00 00 00 00 00 26 02 90 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 49 01 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/p4-interp/tests/expected/A_extra_params.txt b/p4-interp/tests/expected/A_extra_params.txt new file mode 100644 index 0000000..a976979 --- /dev/null +++ b/p4-interp/tests/expected/A_extra_params.txt @@ -0,0 +1,13 @@ +Usage: ../y86 mini-elf-file + Options are: + -h Display usage + -H Show the Mini-ELF header + -a Show all with brief memory + -f Show all with full memory + -s Show the program headers + -m Show the memory contents (brief) + -M Show the memory contents (full) + -d Disassemble code contents + -D Disassemble data contents + -e Execute program + -E Execute program (trace mode) diff --git a/p4-interp/tests/expected/A_iotrap_buf2_debug.txt b/p4-interp/tests/expected/A_iotrap_buf2_debug.txt new file mode 100644 index 0000000..258a56d --- /dev/null +++ b/p4-interp/tests/expected/A_iotrap_buf2_debug.txt @@ -0,0 +1,402 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x200, %rsi +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000200 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 2 +Y86 CPU state: + PC: 000000000000010b flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000200 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 2 +Y86 CPU state: + PC: 000000000000010c flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000200 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x300, %rsi +Y86 CPU state: + PC: 0000000000000116 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 0 +Y86 CPU state: + PC: 0000000000000117 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 0 +Y86 CPU state: + PC: 0000000000000118 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 4 +Y86 CPU state: + PC: 0000000000000119 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 5 +1234512345aaabcdefghY86 CPU state: + PC: 000000000000011a flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 2 +Y86 CPU state: + PC: 000000000000011b flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 4 +Y86 CPU state: + PC: 000000000000011c flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 000000000000011d flags: Z0 S0 O0 HLT + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 11 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f6 00 02 00 00 00 00 00 00 c2 c2 30 f6 00 03 + 0110 00 00 00 00 00 00 c0 c0 c4 c5 c2 c4 00 00 00 00 + 0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 39 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 61 62 63 64 65 66 67 68 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/p4-interp/tests/expected/A_iotrap_buf_debug.txt b/p4-interp/tests/expected/A_iotrap_buf_debug.txt new file mode 100644 index 0000000..24aa32f --- /dev/null +++ b/p4-interp/tests/expected/A_iotrap_buf_debug.txt @@ -0,0 +1,330 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x300, %rsi +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 4 +Y86 CPU state: + PC: 000000000000010b flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 5 +abcdefghY86 CPU state: + PC: 000000000000010c flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 4 +Y86 CPU state: + PC: 000000000000010d flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 000000000000010e flags: Z0 S0 O0 HLT + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 5 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f6 00 03 00 00 00 00 00 00 c4 c5 c4 00 00 00 + 0110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 61 62 63 64 65 66 67 68 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/p4-interp/tests/expected/A_iotrap_char_debug.txt b/p4-interp/tests/expected/A_iotrap_char_debug.txt new file mode 100644 index 0000000..c780e01 --- /dev/null +++ b/p4-interp/tests/expected/A_iotrap_char_debug.txt @@ -0,0 +1,354 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x300, %rsi +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 0 +Y86 CPU state: + PC: 000000000000010b flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 0 +Y86 CPU state: + PC: 000000000000010c flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 5 +YYY86 CPU state: + PC: 000000000000010d flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x308, %rdi +Y86 CPU state: + PC: 0000000000000117 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000308 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 1 +Y86 CPU state: + PC: 0000000000000118 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000308 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 0000000000000119 flags: Z0 S0 O0 HLT + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000308 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 7 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f6 00 03 00 00 00 00 00 00 c0 c0 c5 30 f7 08 + 0110 03 00 00 00 00 00 00 c1 00 00 00 00 00 00 00 00 + 0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 59 00 00 00 00 00 00 00 79 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/p4-interp/tests/expected/A_iotrap_dec_bad.txt b/p4-interp/tests/expected/A_iotrap_dec_bad.txt new file mode 100644 index 0000000..8369d5c --- /dev/null +++ b/p4-interp/tests/expected/A_iotrap_dec_bad.txt @@ -0,0 +1,13 @@ +Beginning execution at 0x0100 +256256I/O Error +Y86 CPU state: + PC: 0000000000000118 flags: Z0 S0 O0 HLT + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000308 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 6 diff --git a/p4-interp/tests/expected/A_iotrap_dec_debug.txt b/p4-interp/tests/expected/A_iotrap_dec_debug.txt new file mode 100644 index 0000000..395583e --- /dev/null +++ b/p4-interp/tests/expected/A_iotrap_dec_debug.txt @@ -0,0 +1,354 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x300, %rsi +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 2 +Y86 CPU state: + PC: 000000000000010b flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 2 +Y86 CPU state: + PC: 000000000000010c flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 5 +256256Y86 CPU state: + PC: 000000000000010d flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x308, %rdi +Y86 CPU state: + PC: 0000000000000117 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000308 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 3 +Y86 CPU state: + PC: 0000000000000118 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000308 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 0000000000000119 flags: Z0 S0 O0 HLT + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000308 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 7 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f6 00 03 00 00 00 00 00 00 c2 c2 c5 30 f7 08 + 0110 03 00 00 00 00 00 00 c3 00 00 00 00 00 00 00 00 + 0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 00 01 00 00 00 00 00 00 2a 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/p4-interp/tests/expected/A_iotrap_escaped_string.txt b/p4-interp/tests/expected/A_iotrap_escaped_string.txt new file mode 100644 index 0000000..855776a --- /dev/null +++ b/p4-interp/tests/expected/A_iotrap_escaped_string.txt @@ -0,0 +1,15 @@ +Beginning execution at 0x0100 +hello! +ab c +'str\ing' +Y86 CPU state: + PC: 000000000000010d flags: Z0 S0 O0 HLT + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 4 diff --git a/p4-interp/tests/expected/A_iotrap_str_debug.txt b/p4-interp/tests/expected/A_iotrap_str_debug.txt new file mode 100644 index 0000000..d8c6608 --- /dev/null +++ b/p4-interp/tests/expected/A_iotrap_str_debug.txt @@ -0,0 +1,330 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x300, %rsi +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 4 +Y86 CPU state: + PC: 000000000000010b flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 4 +Y86 CPU state: + PC: 000000000000010c flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 5 +abcdefghabcdefghY86 CPU state: + PC: 000000000000010d flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 000000000000010e flags: Z0 S0 O0 HLT + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 5 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f6 00 03 00 00 00 00 00 00 c4 c4 c5 00 00 00 + 0110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 61 62 63 64 65 66 67 68 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/p4-interp/tests/expected/A_missing_file.txt b/p4-interp/tests/expected/A_missing_file.txt new file mode 100644 index 0000000..a976979 --- /dev/null +++ b/p4-interp/tests/expected/A_missing_file.txt @@ -0,0 +1,13 @@ +Usage: ../y86 mini-elf-file + Options are: + -h Display usage + -H Show the Mini-ELF header + -a Show all with brief memory + -f Show all with full memory + -s Show the program headers + -m Show the memory contents (brief) + -M Show the memory contents (full) + -d Disassemble code contents + -D Disassemble data contents + -e Execute program + -E Execute program (trace mode) diff --git a/p4-interp/tests/expected/A_movflags_debug.txt b/p4-interp/tests/expected/A_movflags_debug.txt new file mode 100644 index 0000000..cb82d6d --- /dev/null +++ b/p4-interp/tests/expected/A_movflags_debug.txt @@ -0,0 +1,438 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0xf00, %rsp +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rax +Y86 CPU state: + PC: 0000000000000114 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x200, %rbx +Y86 CPU state: + PC: 000000000000011e flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000200 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: rmmovq %rax, 0x0(%rbx) +Y86 CPU state: + PC: 0000000000000128 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000200 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: mrmovq 0x0(%rbx), %rcx +Y86 CPU state: + PC: 0000000000000132 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000200 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: pushq %rax +Y86 CPU state: + PC: 0000000000000134 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000200 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: popq %rdx +Y86 CPU state: + PC: 0000000000000136 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000200 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0xffffffffffffffff, %rax +Y86 CPU state: + PC: 0000000000000140 flags: Z0 S0 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000200 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x200, %rbx +Y86 CPU state: + PC: 000000000000014a flags: Z0 S0 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000200 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: rmmovq %rax, 0x0(%rbx) +Y86 CPU state: + PC: 0000000000000154 flags: Z0 S0 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000200 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: mrmovq 0x0(%rbx), %rcx +Y86 CPU state: + PC: 000000000000015e flags: Z0 S0 O0 AOK + %rax: ffffffffffffffff %rcx: ffffffffffffffff + %rdx: 0000000000000000 %rbx: 0000000000000200 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: pushq %rax +Y86 CPU state: + PC: 0000000000000160 flags: Z0 S0 O0 AOK + %rax: ffffffffffffffff %rcx: ffffffffffffffff + %rdx: 0000000000000000 %rbx: 0000000000000200 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: popq %rdx +Y86 CPU state: + PC: 0000000000000162 flags: Z0 S0 O0 AOK + %rax: ffffffffffffffff %rcx: ffffffffffffffff + %rdx: ffffffffffffffff %rbx: 0000000000000200 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 0000000000000163 flags: Z0 S0 O0 HLT + %rax: ffffffffffffffff %rcx: ffffffffffffffff + %rdx: ffffffffffffffff %rbx: 0000000000000200 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 14 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f4 00 0f 00 00 00 00 00 00 30 f0 00 00 00 00 + 0110 00 00 00 00 30 f3 00 02 00 00 00 00 00 00 40 03 + 0120 00 00 00 00 00 00 00 00 50 13 00 00 00 00 00 00 + 0130 00 00 a0 0f b0 2f 30 f0 ff ff ff ff ff ff ff ff + 0140 30 f3 00 02 00 00 00 00 00 00 40 03 00 00 00 00 + 0150 00 00 00 00 50 13 00 00 00 00 00 00 00 00 a0 0f + 0160 b0 2f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/p4-interp/tests/expected/A_opq_of_debug.txt b/p4-interp/tests/expected/A_opq_of_debug.txt new file mode 100644 index 0000000..a61a9dc --- /dev/null +++ b/p4-interp/tests/expected/A_opq_of_debug.txt @@ -0,0 +1,402 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x1, %rbx +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000001 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x7fffffffffffffff, %rax +Y86 CPU state: + PC: 0000000000000114 flags: Z0 S0 O0 AOK + %rax: 7fffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000001 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: addq %rbx, %rax +Y86 CPU state: + PC: 0000000000000116 flags: Z0 S1 O1 AOK + %rax: 8000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000001 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x8000000000000000, %rax +Y86 CPU state: + PC: 0000000000000120 flags: Z0 S1 O1 AOK + %rax: 8000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000001 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: subq %rbx, %rax +Y86 CPU state: + PC: 0000000000000122 flags: Z0 S0 O1 AOK + %rax: 7fffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000001 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0xffffffffffffffff, %rbx +Y86 CPU state: + PC: 000000000000012c flags: Z0 S0 O1 AOK + %rax: 7fffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: ffffffffffffffff + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x8000000000000000, %rax +Y86 CPU state: + PC: 0000000000000136 flags: Z0 S0 O1 AOK + %rax: 8000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: ffffffffffffffff + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: addq %rbx, %rax +Y86 CPU state: + PC: 0000000000000138 flags: Z0 S0 O1 AOK + %rax: 7fffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: ffffffffffffffff + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x7fffffffffffffff, %rax +Y86 CPU state: + PC: 0000000000000142 flags: Z0 S0 O1 AOK + %rax: 7fffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: ffffffffffffffff + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: subq %rbx, %rax +Y86 CPU state: + PC: 0000000000000144 flags: Z0 S1 O1 AOK + %rax: 8000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: ffffffffffffffff + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 0000000000000145 flags: Z0 S1 O1 HLT + %rax: 8000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: ffffffffffffffff + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 11 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f3 01 00 00 00 00 00 00 00 30 f0 ff ff ff ff + 0110 ff ff ff 7f 60 30 30 f0 00 00 00 00 00 00 00 80 + 0120 61 30 30 f3 ff ff ff ff ff ff ff ff 30 f0 00 00 + 0130 00 00 00 00 00 80 60 30 30 f0 ff ff ff ff ff ff + 0140 ff 7f 61 30 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/p4-interp/tests/expected/A_pushpop_rsp_debug.txt b/p4-interp/tests/expected/A_pushpop_rsp_debug.txt new file mode 100644 index 0000000..09827c1 --- /dev/null +++ b/p4-interp/tests/expected/A_pushpop_rsp_debug.txt @@ -0,0 +1,318 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0xf00, %rsp +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: pushq %rsp +Y86 CPU state: + PC: 000000000000010c flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: popq %rax +Y86 CPU state: + PC: 000000000000010e flags: Z0 S0 O0 AOK + %rax: 0000000000000f00 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 000000000000010f flags: Z0 S0 O0 HLT + %rax: 0000000000000f00 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 4 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f4 00 0f 00 00 00 00 00 00 a0 4f b0 0f 00 00 + 0110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 00 0f 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/p4-interp/tests/expected/A_unaligned1.txt b/p4-interp/tests/expected/A_unaligned1.txt new file mode 100644 index 0000000..9cb3e52 --- /dev/null +++ b/p4-interp/tests/expected/A_unaligned1.txt @@ -0,0 +1,12 @@ +Beginning execution at 0x0118 +Y86 CPU state: + PC: 000000000000011a flags: Z0 S0 O0 HLT + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 2 diff --git a/p4-interp/tests/expected/A_unaligned2.txt b/p4-interp/tests/expected/A_unaligned2.txt new file mode 100644 index 0000000..776899c --- /dev/null +++ b/p4-interp/tests/expected/A_unaligned2.txt @@ -0,0 +1,12 @@ +Beginning execution at 0x0555 +Y86 CPU state: + PC: 0000000000000574 flags: Z0 S0 O0 HLT + %rax: 000000000000014d %rcx: 000000000000006f + %rdx: 0000000000000000 %rbx: 00000000000000de + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 4 diff --git a/p4-interp/tests/expected/B_func_debug.txt b/p4-interp/tests/expected/B_func_debug.txt new file mode 100644 index 0000000..e190928 --- /dev/null +++ b/p4-interp/tests/expected/B_func_debug.txt @@ -0,0 +1,342 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0xf00, %rsp +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: call 0x114 +Y86 CPU state: + PC: 0000000000000114 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: call 0x11e +Y86 CPU state: + PC: 000000000000011e flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef0 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: ret +Y86 CPU state: + PC: 000000000000011d flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: ret +Y86 CPU state: + PC: 0000000000000113 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 0000000000000114 flags: Z0 S0 O0 HLT + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 6 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f4 00 0f 00 00 00 00 00 00 80 14 01 00 00 00 + 0110 00 00 00 00 80 1e 01 00 00 00 00 00 00 90 90 00 + 0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 1d 01 00 00 00 00 00 00 13 01 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/p4-interp/tests/expected/B_memreg.txt b/p4-interp/tests/expected/B_memreg.txt new file mode 100644 index 0000000..d3ed785 --- /dev/null +++ b/p4-interp/tests/expected/B_memreg.txt @@ -0,0 +1,12 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000147 flags: Z0 S0 O0 HLT + %rax: fedcba9876543210 %rcx: fedcba9876543210 + %rdx: 0123456789abcdef %rbx: 0000000000000200 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0123456789abcdef + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 8 diff --git a/p4-interp/tests/expected/B_memreg_debug.txt b/p4-interp/tests/expected/B_memreg_debug.txt new file mode 100644 index 0000000..366e104 --- /dev/null +++ b/p4-interp/tests/expected/B_memreg_debug.txt @@ -0,0 +1,366 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0xfedcba9876543210, %rax +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: fedcba9876543210 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x200, %rbx +Y86 CPU state: + PC: 0000000000000114 flags: Z0 S0 O0 AOK + %rax: fedcba9876543210 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000200 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: rmmovq %rax, 0x0(%rbx) +Y86 CPU state: + PC: 000000000000011e flags: Z0 S0 O0 AOK + %rax: fedcba9876543210 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000200 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: mrmovq 0x0(%rbx), %rcx +Y86 CPU state: + PC: 0000000000000128 flags: Z0 S0 O0 AOK + %rax: fedcba9876543210 %rcx: fedcba9876543210 + %rdx: 0000000000000000 %rbx: 0000000000000200 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: mrmovq 0x8(%rbx), %rdx +Y86 CPU state: + PC: 0000000000000132 flags: Z0 S0 O0 AOK + %rax: fedcba9876543210 %rcx: fedcba9876543210 + %rdx: 0123456789abcdef %rbx: 0000000000000200 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: rmmovq %rdx, 0x210 +Y86 CPU state: + PC: 000000000000013c flags: Z0 S0 O0 AOK + %rax: fedcba9876543210 %rcx: fedcba9876543210 + %rdx: 0123456789abcdef %rbx: 0000000000000200 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: mrmovq 0x210, %rdi +Y86 CPU state: + PC: 0000000000000146 flags: Z0 S0 O0 AOK + %rax: fedcba9876543210 %rcx: fedcba9876543210 + %rdx: 0123456789abcdef %rbx: 0000000000000200 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0123456789abcdef + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 0000000000000147 flags: Z0 S0 O0 HLT + %rax: fedcba9876543210 %rcx: fedcba9876543210 + %rdx: 0123456789abcdef %rbx: 0000000000000200 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0123456789abcdef + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 8 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f0 10 32 54 76 98 ba dc fe 30 f3 00 02 00 00 + 0110 00 00 00 00 40 03 00 00 00 00 00 00 00 00 50 13 + 0120 00 00 00 00 00 00 00 00 50 23 08 00 00 00 00 00 + 0130 00 00 40 2f 10 02 00 00 00 00 00 00 50 7f 10 02 + 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 10 32 54 76 98 ba dc fe ef cd ab 89 67 45 23 01 + 0210 ef cd ab 89 67 45 23 01 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/p4-interp/tests/expected/B_pushpop.txt b/p4-interp/tests/expected/B_pushpop.txt new file mode 100644 index 0000000..d6724c3 --- /dev/null +++ b/p4-interp/tests/expected/B_pushpop.txt @@ -0,0 +1,12 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000127 flags: Z0 S0 O0 HLT + %rax: 0000000000000001 %rcx: 0123456789abcdef + %rdx: 0000000000000001 %rbx: 0123456789abcdef + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 8 diff --git a/p4-interp/tests/expected/B_pushpop_debug.txt b/p4-interp/tests/expected/B_pushpop_debug.txt new file mode 100644 index 0000000..9e8fcfd --- /dev/null +++ b/p4-interp/tests/expected/B_pushpop_debug.txt @@ -0,0 +1,366 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0xf00, %rsp +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x1, %rax +Y86 CPU state: + PC: 0000000000000114 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x123456789abcdef, %rbx +Y86 CPU state: + PC: 000000000000011e flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0123456789abcdef + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: pushq %rax +Y86 CPU state: + PC: 0000000000000120 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0123456789abcdef + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: pushq %rbx +Y86 CPU state: + PC: 0000000000000122 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0123456789abcdef + %rsp: 0000000000000ef0 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: popq %rcx +Y86 CPU state: + PC: 0000000000000124 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0123456789abcdef + %rdx: 0000000000000000 %rbx: 0123456789abcdef + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: popq %rdx +Y86 CPU state: + PC: 0000000000000126 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0123456789abcdef + %rdx: 0000000000000001 %rbx: 0123456789abcdef + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 0000000000000127 flags: Z0 S0 O0 HLT + %rax: 0000000000000001 %rcx: 0123456789abcdef + %rdx: 0000000000000001 %rbx: 0123456789abcdef + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 8 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f4 00 0f 00 00 00 00 00 00 30 f0 01 00 00 00 + 0110 00 00 00 00 30 f3 ef cd ab 89 67 45 23 01 a0 0f + 0120 a0 3f b0 1f b0 2f 00 00 00 00 00 00 00 00 00 00 + 0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 ef cd ab 89 67 45 23 01 01 00 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/p4-interp/tests/expected/B_simple.txt b/p4-interp/tests/expected/B_simple.txt new file mode 100644 index 0000000..db77842 --- /dev/null +++ b/p4-interp/tests/expected/B_simple.txt @@ -0,0 +1,12 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000114 flags: Z0 S0 O0 HLT + %rax: 0000000000000005 %rcx: 0000000000000003 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 7 diff --git a/p4-interp/tests/expected/B_simple_entry.txt b/p4-interp/tests/expected/B_simple_entry.txt new file mode 100644 index 0000000..46910e2 --- /dev/null +++ b/p4-interp/tests/expected/B_simple_entry.txt @@ -0,0 +1,12 @@ +Beginning execution at 0x0250 +Y86 CPU state: + PC: 0000000000000264 flags: Z0 S0 O0 HLT + %rax: 0000000000000005 %rcx: 0000000000000003 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 7 diff --git a/p4-interp/tests/expected/C_irmovq.txt b/p4-interp/tests/expected/C_irmovq.txt new file mode 100644 index 0000000..7681b9f --- /dev/null +++ b/p4-interp/tests/expected/C_irmovq.txt @@ -0,0 +1,12 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000151 flags: Z0 S0 O0 HLT + %rax: 0000000000000001 %rcx: 0000000000001234 + %rdx: 1122334455667788 %rbx: 000000000000000f + %rsp: 00000000deadbeef %rbp: 0000000000000000 + %rsi: 8877665544332211 %rdi: ffffffffffffffff + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 9 diff --git a/p4-interp/tests/expected/C_irmovq_debug.txt b/p4-interp/tests/expected/C_irmovq_debug.txt new file mode 100644 index 0000000..49e4d1d --- /dev/null +++ b/p4-interp/tests/expected/C_irmovq_debug.txt @@ -0,0 +1,378 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x1, %rax +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0xf, %rbx +Y86 CPU state: + PC: 0000000000000114 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 000000000000000f + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x1234, %rcx +Y86 CPU state: + PC: 000000000000011e flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000001234 + %rdx: 0000000000000000 %rbx: 000000000000000f + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x1122334455667788, %rdx +Y86 CPU state: + PC: 0000000000000128 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000001234 + %rdx: 1122334455667788 %rbx: 000000000000000f + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x8877665544332211, %rsi +Y86 CPU state: + PC: 0000000000000132 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000001234 + %rdx: 1122334455667788 %rbx: 000000000000000f + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 8877665544332211 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0xffffffffffffffff, %rdi +Y86 CPU state: + PC: 000000000000013c flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000001234 + %rdx: 1122334455667788 %rbx: 000000000000000f + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 8877665544332211 %rdi: ffffffffffffffff + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rbp +Y86 CPU state: + PC: 0000000000000146 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000001234 + %rdx: 1122334455667788 %rbx: 000000000000000f + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 8877665544332211 %rdi: ffffffffffffffff + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0xdeadbeef, %rsp +Y86 CPU state: + PC: 0000000000000150 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000001234 + %rdx: 1122334455667788 %rbx: 000000000000000f + %rsp: 00000000deadbeef %rbp: 0000000000000000 + %rsi: 8877665544332211 %rdi: ffffffffffffffff + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 0000000000000151 flags: Z0 S0 O0 HLT + %rax: 0000000000000001 %rcx: 0000000000001234 + %rdx: 1122334455667788 %rbx: 000000000000000f + %rsp: 00000000deadbeef %rbp: 0000000000000000 + %rsi: 8877665544332211 %rdi: ffffffffffffffff + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 9 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f0 01 00 00 00 00 00 00 00 30 f3 0f 00 00 00 + 0110 00 00 00 00 30 f1 34 12 00 00 00 00 00 00 30 f2 + 0120 88 77 66 55 44 33 22 11 30 f6 11 22 33 44 55 66 + 0130 77 88 30 f7 ff ff ff ff ff ff ff ff 30 f5 00 00 + 0140 00 00 00 00 00 00 30 f4 ef be ad de 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/p4-interp/tests/expected/C_opq.txt b/p4-interp/tests/expected/C_opq.txt new file mode 100644 index 0000000..8d2da4f --- /dev/null +++ b/p4-interp/tests/expected/C_opq.txt @@ -0,0 +1,12 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 000000000000013b flags: Z0 S0 O0 HLT + %rax: 0000000000000008 %rcx: 0000000000000001 + %rdx: 0000000000000006 %rbx: 0000000000000002 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000003 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 10 diff --git a/p4-interp/tests/expected/C_opq_debug.txt b/p4-interp/tests/expected/C_opq_debug.txt new file mode 100644 index 0000000..e5a122f --- /dev/null +++ b/p4-interp/tests/expected/C_opq_debug.txt @@ -0,0 +1,390 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x5, %rax +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: 0000000000000005 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x5, %rbx +Y86 CPU state: + PC: 0000000000000114 flags: Z0 S0 O0 AOK + %rax: 0000000000000005 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000005 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x5, %rcx +Y86 CPU state: + PC: 000000000000011e flags: Z0 S0 O0 AOK + %rax: 0000000000000005 %rcx: 0000000000000005 + %rdx: 0000000000000000 %rbx: 0000000000000005 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x5, %rdx +Y86 CPU state: + PC: 0000000000000128 flags: Z0 S0 O0 AOK + %rax: 0000000000000005 %rcx: 0000000000000005 + %rdx: 0000000000000005 %rbx: 0000000000000005 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x3, %rdi +Y86 CPU state: + PC: 0000000000000132 flags: Z0 S0 O0 AOK + %rax: 0000000000000005 %rcx: 0000000000000005 + %rdx: 0000000000000005 %rbx: 0000000000000005 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000003 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: addq %rdi, %rax +Y86 CPU state: + PC: 0000000000000134 flags: Z0 S0 O0 AOK + %rax: 0000000000000008 %rcx: 0000000000000005 + %rdx: 0000000000000005 %rbx: 0000000000000005 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000003 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: subq %rdi, %rbx +Y86 CPU state: + PC: 0000000000000136 flags: Z0 S0 O0 AOK + %rax: 0000000000000008 %rcx: 0000000000000005 + %rdx: 0000000000000005 %rbx: 0000000000000002 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000003 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: andq %rdi, %rcx +Y86 CPU state: + PC: 0000000000000138 flags: Z0 S0 O0 AOK + %rax: 0000000000000008 %rcx: 0000000000000001 + %rdx: 0000000000000005 %rbx: 0000000000000002 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000003 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: xorq %rdi, %rdx +Y86 CPU state: + PC: 000000000000013a flags: Z0 S0 O0 AOK + %rax: 0000000000000008 %rcx: 0000000000000001 + %rdx: 0000000000000006 %rbx: 0000000000000002 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000003 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 000000000000013b flags: Z0 S0 O0 HLT + %rax: 0000000000000008 %rcx: 0000000000000001 + %rdx: 0000000000000006 %rbx: 0000000000000002 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000003 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 10 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f0 05 00 00 00 00 00 00 00 30 f3 05 00 00 00 + 0110 00 00 00 00 30 f1 05 00 00 00 00 00 00 00 30 f2 + 0120 05 00 00 00 00 00 00 00 30 f7 03 00 00 00 00 00 + 0130 00 00 60 70 61 73 62 71 63 72 00 00 00 00 00 00 + 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/p4-interp/tests/expected/D_help.txt b/p4-interp/tests/expected/D_help.txt new file mode 100644 index 0000000..a976979 --- /dev/null +++ b/p4-interp/tests/expected/D_help.txt @@ -0,0 +1,13 @@ +Usage: ../y86 mini-elf-file + Options are: + -h Display usage + -H Show the Mini-ELF header + -a Show all with brief memory + -f Show all with full memory + -s Show the program headers + -m Show the memory contents (brief) + -M Show the memory contents (full) + -d Disassemble code contents + -D Disassemble data contents + -e Execute program + -E Execute program (trace mode) diff --git a/p4-interp/tests/expected/D_nop_hlt.txt b/p4-interp/tests/expected/D_nop_hlt.txt new file mode 100644 index 0000000..16f14a7 --- /dev/null +++ b/p4-interp/tests/expected/D_nop_hlt.txt @@ -0,0 +1,12 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000102 flags: Z0 S0 O0 HLT + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 2 diff --git a/p4-interp/tests/expected/D_nop_hlt_debug.txt b/p4-interp/tests/expected/D_nop_hlt_debug.txt new file mode 100644 index 0000000..3012b2f --- /dev/null +++ b/p4-interp/tests/expected/D_nop_hlt_debug.txt @@ -0,0 +1,294 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: nop +Y86 CPU state: + PC: 0000000000000101 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 0000000000000102 flags: Z0 S0 O0 HLT + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 2 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/p4-interp/tests/inputs/bad_addr.o b/p4-interp/tests/inputs/bad_addr.o new file mode 100644 index 0000000000000000000000000000000000000000..c3b59e6a16cf9632afcd298d2fc657a7c593c47b GIT binary patch literal 86 zcmZQ%U|IMN0YLWwPfkw}cn7to5riW(2%6+DV1trYgk|L~1Y zva@ezcL~r!7bOhN-343#gSw=M9-jBxV_EaH3BFk=XDJitps(&ky;ZVbGM2KdHo^)Q zN3W}QtG}@M!0#o5*Zx>XUsD`vN@7iErs0}c&(H0g85kR!$%GvkCgrz|+* YI!c2ig@}^vUdXl!luJ`|P`+s#AH8Zi#Q*>R literal 0 HcmV?d00001 diff --git a/p4-interp/tests/inputs/cmov.o b/p4-interp/tests/inputs/cmov.o new file mode 100644 index 0000000000000000000000000000000000000000..7c6fba271f1371ae954acf9f2b84bc75a7cc527e GIT binary patch literal 255 zcmZQ%U|4(@M8SIkdj}LT3o^a07d~Ul>h($ literal 0 HcmV?d00001 diff --git a/p4-interp/tests/inputs/func.o b/p4-interp/tests/inputs/func.o new file mode 100644 index 0000000000000000000000000000000000000000..397453066af6836a16f62c8b66fd0dcbf06798c9 GIT binary patch literal 134 zcmZQ%U|#X8VrY&02fOJ^1pM$malwF@Xp+ zu)01V3#^wJB*p?3D*);M1A}i6r3?&*4guL+Q0Yp(^QgTXaT6zXZ YDbqp*2IdtE`K2Y9c_kpKxTJ^y0G>l6JOBUy literal 0 HcmV?d00001 diff --git a/p4-interp/tests/inputs/iotrap_char.o b/p4-interp/tests/inputs/iotrap_char.o new file mode 100644 index 0000000000000000000000000000000000000000..161b36baa4b4ab38de26e30c81646de30afb1edc GIT binary patch literal 149 zcmZQ%U|+7&7xfBmlgT B82JDI literal 0 HcmV?d00001 diff --git a/p4-interp/tests/inputs/iotrap_char.txt b/p4-interp/tests/inputs/iotrap_char.txt new file mode 100644 index 0000000..975fbec --- /dev/null +++ b/p4-interp/tests/inputs/iotrap_char.txt @@ -0,0 +1 @@ +y diff --git a/p4-interp/tests/inputs/iotrap_dec.o b/p4-interp/tests/inputs/iotrap_dec.o new file mode 100644 index 0000000000000000000000000000000000000000..8c81a80f094534671f5197629c7bc824eab111b6 GIT binary patch literal 149 zcmZQ%U|&02fOJ^1cF(Sm~0J#z%F(wef23A)9 zQUC%59|Vj-%4Y1k^UvTjL;(YX1H=xXY=AIW5s0PC0cASq3xEv*iq*qdFjWli&#vxF LcU6WO&cFZwY$X|h literal 0 HcmV?d00001 diff --git a/p4-interp/tests/inputs/movflags.o b/p4-interp/tests/inputs/movflags.o new file mode 100644 index 0000000000000000000000000000000000000000..280ef5210978c0cdf4441a6251403c0f3cd183a3 GIT binary patch literal 224 zcmZQ%U| Yvp&LEpWv+T%usa+1&PH;g~>$>0K$q9rvLx| literal 0 HcmV?d00001 diff --git a/p4-interp/tests/inputs/opq_of.o b/p4-interp/tests/inputs/opq_of.o new file mode 100644 index 0000000000000000000000000000000000000000..377059e127465669ba8fc8b7ebc34a19546b79de GIT binary patch literal 134 zcmZQ%U|M2HoDI3Qr~8OmTV`0yVB d>JtnMK0ss{8WIf*K10R-BSb+eV5$=h7ywMRDUtvH literal 0 HcmV?d00001 diff --git a/p4-interp/tests/inputs/pushpop.o b/p4-interp/tests/inputs/pushpop.o new file mode 100644 index 0000000000000000000000000000000000000000..74854a1b1984ed48ed58ae5f286dd269f12f598f GIT binary patch literal 124 zcmZQ%U|;0s6?%=!QoVlepp{_N_`bXR4@1^f%_H^^_$X8-_7%ogeZ literal 0 HcmV?d00001 diff --git a/p4-interp/tests/inputs/pushpop_rsp.o b/p4-interp/tests/inputs/pushpop_rsp.o new file mode 100644 index 0000000000000000000000000000000000000000..ed3555ef3f92708f67a5406d9e2cd6427efb674a GIT binary patch literal 100 zcmZQ%U|= RAYkwXqMm_af&T`61^|GU4=4Zt literal 0 HcmV?d00001 diff --git a/p4-interp/tests/inputs/simple.o b/p4-interp/tests/inputs/simple.o new file mode 100644 index 0000000000000000000000000000000000000000..ada13d54a4fb2237f382e23c2038153ef8f05f35 GIT binary patch literal 139 zcmZQ%U|#X8Vleo?1QB8|_{a=pB?wGlWDsF&W5`X+%wqrmkvbIA literal 0 HcmV?d00001 diff --git a/p4-interp/tests/inputs/simple_entry.o b/p4-interp/tests/inputs/simple_entry.o new file mode 100644 index 0000000000000000000000000000000000000000..615c43e0d1fcfd7bb6708a45940091e24abfdf98 GIT binary patch literal 139 zcmZQ%2w)OmU}k7wXk&2oabxgdU|`?`Vh~_tU}bo}Z|%KMAX^)V1DFtE4M08^@G~$l vF|dKv6@V0gfWa3ApfCtDq(Frj3_ieFADJPN3<&}g7#UKS+8A;ZGxHb#{;w8k literal 0 HcmV?d00001 diff --git a/p4-interp/tests/inputs/unaligned.o b/p4-interp/tests/inputs/unaligned.o new file mode 100644 index 0000000000000000000000000000000000000000..079af97dac4c242aee033ca0292e291b4e5cb635 GIT binary patch literal 95 zcmZQ%kYE&GU}gXTS06V9A0W*M<}olZGO#kd-?#Q&D3H$t#1f1Mv2Y-t1Bk7FVhjvy RV08r`1t1{6U}*qh0RTWW4Ilsj literal 0 HcmV?d00001 diff --git a/p4-interp/tests/inputs/unaligned2.o b/p4-interp/tests/inputs/unaligned2.o new file mode 100644 index 0000000000000000000000000000000000000000..2d0318969b9a91f7d5f4a3efc16f62d0bfbe3b5a GIT binary patch literal 124 zcmZQ%2xS#uU}gXTS06V9A0W*M<}olZGO#kd-?#Q&D3C7?#G$MRu@WGk1BlzfirK*G g3P1`#z~F-~Bb4>|9)!VQ@G&3CVz_%|_bLz@0Ih-+1^@s6 literal 0 HcmV?d00001 diff --git a/p4-interp/tests/integration.sh b/p4-interp/tests/integration.sh new file mode 100644 index 0000000..ed5a430 --- /dev/null +++ b/p4-interp/tests/integration.sh @@ -0,0 +1,87 @@ +#!/bin/bash + +# extract executable name from Makefile +EXE=$(grep "EXE=" Makefile | sed -e "s/EXE=//") + +# detect timeout utility (i.e., "timeout" on Linux and "gtimeout" on MacOS) +# and set timeout interval +TIMEOUT="timeout" +TIMEOUT_INTERVAL="3s" +$TIMEOUT --help &>/dev/null +if [[ $? -ne 0 ]]; then + TIMEOUT="gtimeout" +fi + +# Valgrind additional output flags +VG_FLAGS="--leak-check=full --track-origins=yes" + +function run_test { + + # parameters + TAG=$1 + ARGS=$2 + PTAG=$(printf '%-30s' "$TAG") + + # file paths + OUTPUT=outputs/$TAG.txt + DIFF=outputs/$TAG.diff + EXPECT=expected/$TAG.txt + VALGRND=valgrind/$TAG.txt + + # run test with timeout + $TIMEOUT $TIMEOUT_INTERVAL $EXE $ARGS 2>/dev/null >"$OUTPUT" + if [ "$?" -lt 124 ]; then + + # no timeout; compare output to the expected version + diff -u "$OUTPUT" "$EXPECT" >"$DIFF" + if [ -s "$DIFF" ]; then + + # try alternative solution (if it exists) + EXPECT=expected/$TAG-2.txt + if [ -e "$EXPECT" ]; then + diff -u "$OUTPUT" "$EXPECT" >"$DIFF" + if [ -s "$DIFF" ]; then + echo "$PTAG FAIL (see ${TPREFIX}$DIFF for details)" + else + echo "$PTAG pass" + fi + else + echo "$PTAG FAIL (see ${TPREFIX}$DIFF for details)" + fi + else + echo "$PTAG pass" + fi + + # run valgrind + $TIMEOUT $TIMEOUT_INTERVAL valgrind $VG_FLAGS $EXE $ARGS &>$VALGRND + else + echo "$PTAG FAIL (crash or timeout)" + fi +} + +# initialize output folders +mkdir -p outputs +mkdir -p valgrind +rm -f outputs/* valgrind/* + +# run individual tests +source itests.include + +# check for memory leaks +LEAK=`cat valgrind/*.txt | grep 'definitely lost' | grep -v ' 0 bytes in 0 blocks'` +if [ -z "$LEAK" ]; then + echo "No memory leak found." +else + echo "Memory leak(s) found. See files listed below for details." + grep 'definitely lost' valgrind/*.txt | sed -e 's/:.*$//g' | awk "{print \" - ${TPREFIX}\" \$0}" +fi + +# check for uninitialized values +LEAK=`cat valgrind/*.txt | grep 'uninitialised value'` +if [ -z "$LEAK" ]; then + echo "No uninitialized value found." +else + echo "Uninitialized value(s) found. See files listed below for details." + grep 'uninitialised value' valgrind/*.txt | sed -e 's/:.*$//g' | awk "{print \" - ${TPREFIX}\" \$0}" +fi + diff --git a/p4-interp/tests/itests.include b/p4-interp/tests/itests.include new file mode 100644 index 0000000..67ce48b --- /dev/null +++ b/p4-interp/tests/itests.include @@ -0,0 +1,41 @@ +# list of integration tests +# format: run_test +# used as the root for all filenames (i.e., "expected/$TAG.txt") +# command-line arguments to test + +run_test D_help "-h" +run_test D_nop_hlt "-e inputs/nop_hlt.o" +run_test D_nop_hlt_debug "-E inputs/nop_hlt.o" +run_test C_irmovq "-e inputs/irmovq.o" +run_test C_irmovq_debug "-E inputs/irmovq.o" +run_test C_opq "-e inputs/opq.o" +run_test C_opq_debug "-E inputs/opq.o" +run_test B_pushpop "-e inputs/pushpop.o" +run_test B_pushpop_debug "-E inputs/pushpop.o" +run_test B_memreg "-e inputs/memreg.o" +run_test B_memreg_debug "-E inputs/memreg.o" +run_test B_simple "-e inputs/simple.o" +run_test B_simple_entry "-e inputs/simple_entry.o" +run_test B_func_debug "-E inputs/func.o" +run_test A_cmov_debug "-E inputs/cmov.o" +run_test A_cjmp_debug "-E inputs/cjmp.o" +run_test A_opq_of_debug "-E inputs/opq_of.o" +run_test A_movflags_debug "-E inputs/movflags.o" +run_test A_pushpop_rsp_debug "-E inputs/pushpop_rsp.o" +run_test A_bad_addr "-e inputs/bad_addr.o" +run_test A_bad_addr_debug "-E inputs/bad_addr.o" +run_test A_bad_insn "-e inputs/bad_insn.o" +run_test A_bad_insn_debug "-E inputs/bad_insn.o" +run_test A_bad_nostack "-e inputs/bad_nostack.o" +run_test A_missing_file "-e" +run_test A_both_flags "-e -E inputs/simple.o" +run_test A_extra_params "-e inputs/nop_hlt.o extra params" +run_test A_unaligned1 "-e inputs/unaligned.o" +run_test A_unaligned2 "-e inputs/unaligned2.o" +run_test A_iotrap_char_debug "-E inputs/iotrap_char.o" mini-elf-file + Options are: + -h Display usage + -H Show the Mini-ELF header + -a Show all with brief memory + -f Show all with full memory + -s Show the program headers + -m Show the memory contents (brief) + -M Show the memory contents (full) + -d Disassemble code contents + -D Disassemble data contents + -e Execute program + -E Execute program (trace mode) diff --git a/p4-interp/tests/outputs/A_cjmp_debug.diff b/p4-interp/tests/outputs/A_cjmp_debug.diff new file mode 100644 index 0000000..e69de29 diff --git a/p4-interp/tests/outputs/A_cjmp_debug.txt b/p4-interp/tests/outputs/A_cjmp_debug.txt new file mode 100644 index 0000000..d5f23a8 --- /dev/null +++ b/p4-interp/tests/outputs/A_cjmp_debug.txt @@ -0,0 +1,798 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0xf00, %rsp +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x1, %rax +Y86 CPU state: + PC: 0000000000000114 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: andq %rax, %rax +Y86 CPU state: + PC: 0000000000000116 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: call 0x14a +Y86 CPU state: + PC: 000000000000014a flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jmp 0x154 +Y86 CPU state: + PC: 0000000000000154 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jle 0x15e +Y86 CPU state: + PC: 000000000000015d flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: nop +Y86 CPU state: + PC: 000000000000015e flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jl 0x168 +Y86 CPU state: + PC: 0000000000000167 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: nop +Y86 CPU state: + PC: 0000000000000168 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: je 0x172 +Y86 CPU state: + PC: 0000000000000171 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: nop +Y86 CPU state: + PC: 0000000000000172 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jne 0x17c +Y86 CPU state: + PC: 000000000000017c flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jge 0x186 +Y86 CPU state: + PC: 0000000000000186 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jg 0x190 +Y86 CPU state: + PC: 0000000000000190 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: ret +Y86 CPU state: + PC: 000000000000011f flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0xffffffffffffffff, %rax +Y86 CPU state: + PC: 0000000000000129 flags: Z0 S0 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: andq %rax, %rax +Y86 CPU state: + PC: 000000000000012b flags: Z0 S1 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: call 0x14a +Y86 CPU state: + PC: 000000000000014a flags: Z0 S1 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jmp 0x154 +Y86 CPU state: + PC: 0000000000000154 flags: Z0 S1 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jle 0x15e +Y86 CPU state: + PC: 000000000000015e flags: Z0 S1 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jl 0x168 +Y86 CPU state: + PC: 0000000000000168 flags: Z0 S1 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: je 0x172 +Y86 CPU state: + PC: 0000000000000171 flags: Z0 S1 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: nop +Y86 CPU state: + PC: 0000000000000172 flags: Z0 S1 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jne 0x17c +Y86 CPU state: + PC: 000000000000017c flags: Z0 S1 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jge 0x186 +Y86 CPU state: + PC: 0000000000000185 flags: Z0 S1 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: nop +Y86 CPU state: + PC: 0000000000000186 flags: Z0 S1 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jg 0x190 +Y86 CPU state: + PC: 000000000000018f flags: Z0 S1 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: nop +Y86 CPU state: + PC: 0000000000000190 flags: Z0 S1 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: ret +Y86 CPU state: + PC: 0000000000000134 flags: Z0 S1 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rax +Y86 CPU state: + PC: 000000000000013e flags: Z0 S1 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: andq %rax, %rax +Y86 CPU state: + PC: 0000000000000140 flags: Z1 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: call 0x14a +Y86 CPU state: + PC: 000000000000014a flags: Z1 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jmp 0x154 +Y86 CPU state: + PC: 0000000000000154 flags: Z1 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jle 0x15e +Y86 CPU state: + PC: 000000000000015e flags: Z1 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jl 0x168 +Y86 CPU state: + PC: 0000000000000167 flags: Z1 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: nop +Y86 CPU state: + PC: 0000000000000168 flags: Z1 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: je 0x172 +Y86 CPU state: + PC: 0000000000000172 flags: Z1 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jne 0x17c +Y86 CPU state: + PC: 000000000000017b flags: Z1 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: nop +Y86 CPU state: + PC: 000000000000017c flags: Z1 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jge 0x186 +Y86 CPU state: + PC: 0000000000000186 flags: Z1 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jg 0x190 +Y86 CPU state: + PC: 000000000000018f flags: Z1 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: nop +Y86 CPU state: + PC: 0000000000000190 flags: Z1 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: ret +Y86 CPU state: + PC: 0000000000000149 flags: Z1 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 000000000000014a flags: Z1 S0 O0 HLT + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 44 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f4 00 0f 00 00 00 00 00 00 30 f0 01 00 00 00 + 0110 00 00 00 00 62 00 80 4a 01 00 00 00 00 00 00 30 + 0120 f0 ff ff ff ff ff ff ff ff 62 00 80 4a 01 00 00 + 0130 00 00 00 00 30 f0 00 00 00 00 00 00 00 00 62 00 + 0140 80 4a 01 00 00 00 00 00 00 00 70 54 01 00 00 00 + 0150 00 00 00 10 71 5e 01 00 00 00 00 00 00 10 72 68 + 0160 01 00 00 00 00 00 00 10 73 72 01 00 00 00 00 00 + 0170 00 10 74 7c 01 00 00 00 00 00 00 10 75 86 01 00 + 0180 00 00 00 00 00 10 76 90 01 00 00 00 00 00 00 10 + 0190 90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 49 01 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/p4-interp/tests/outputs/A_cmov_debug.diff b/p4-interp/tests/outputs/A_cmov_debug.diff new file mode 100644 index 0000000..e69de29 diff --git a/p4-interp/tests/outputs/A_cmov_debug.txt b/p4-interp/tests/outputs/A_cmov_debug.txt new file mode 100644 index 0000000..b5fba8d --- /dev/null +++ b/p4-interp/tests/outputs/A_cmov_debug.txt @@ -0,0 +1,906 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0xf00, %rsp +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x1, %rax +Y86 CPU state: + PC: 0000000000000114 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: andq %rax, %rax +Y86 CPU state: + PC: 0000000000000116 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: call 0x14a +Y86 CPU state: + PC: 000000000000014a flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x1, %rax +Y86 CPU state: + PC: 0000000000000154 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 000000000000015e flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmovle %rax, %rdx +Y86 CPU state: + PC: 0000000000000160 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 000000000000016a flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmovl %rax, %rdx +Y86 CPU state: + PC: 000000000000016c flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 0000000000000176 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmove %rax, %rdx +Y86 CPU state: + PC: 0000000000000178 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 0000000000000182 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmovne %rax, %rdx +Y86 CPU state: + PC: 0000000000000184 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000001 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 000000000000018e flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmovge %rax, %rdx +Y86 CPU state: + PC: 0000000000000190 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000001 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 000000000000019a flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmovg %rax, %rdx +Y86 CPU state: + PC: 000000000000019c flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000001 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: ret +Y86 CPU state: + PC: 000000000000011f flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000001 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0xffffffffffffffff, %rax +Y86 CPU state: + PC: 0000000000000129 flags: Z0 S0 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000001 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: andq %rax, %rax +Y86 CPU state: + PC: 000000000000012b flags: Z0 S1 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000001 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: call 0x14a +Y86 CPU state: + PC: 000000000000014a flags: Z0 S1 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000001 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x1, %rax +Y86 CPU state: + PC: 0000000000000154 flags: Z0 S1 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000001 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 000000000000015e flags: Z0 S1 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmovle %rax, %rdx +Y86 CPU state: + PC: 0000000000000160 flags: Z0 S1 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000001 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 000000000000016a flags: Z0 S1 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmovl %rax, %rdx +Y86 CPU state: + PC: 000000000000016c flags: Z0 S1 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000001 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 0000000000000176 flags: Z0 S1 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmove %rax, %rdx +Y86 CPU state: + PC: 0000000000000178 flags: Z0 S1 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 0000000000000182 flags: Z0 S1 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmovne %rax, %rdx +Y86 CPU state: + PC: 0000000000000184 flags: Z0 S1 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000001 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 000000000000018e flags: Z0 S1 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmovge %rax, %rdx +Y86 CPU state: + PC: 0000000000000190 flags: Z0 S1 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 000000000000019a flags: Z0 S1 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmovg %rax, %rdx +Y86 CPU state: + PC: 000000000000019c flags: Z0 S1 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: ret +Y86 CPU state: + PC: 0000000000000134 flags: Z0 S1 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rax +Y86 CPU state: + PC: 000000000000013e flags: Z0 S1 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: andq %rax, %rax +Y86 CPU state: + PC: 0000000000000140 flags: Z1 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: call 0x14a +Y86 CPU state: + PC: 000000000000014a flags: Z1 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x1, %rax +Y86 CPU state: + PC: 0000000000000154 flags: Z1 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 000000000000015e flags: Z1 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmovle %rax, %rdx +Y86 CPU state: + PC: 0000000000000160 flags: Z1 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000001 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 000000000000016a flags: Z1 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmovl %rax, %rdx +Y86 CPU state: + PC: 000000000000016c flags: Z1 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 0000000000000176 flags: Z1 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmove %rax, %rdx +Y86 CPU state: + PC: 0000000000000178 flags: Z1 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000001 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 0000000000000182 flags: Z1 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmovne %rax, %rdx +Y86 CPU state: + PC: 0000000000000184 flags: Z1 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 000000000000018e flags: Z1 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmovge %rax, %rdx +Y86 CPU state: + PC: 0000000000000190 flags: Z1 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000001 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 000000000000019a flags: Z1 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmovg %rax, %rdx +Y86 CPU state: + PC: 000000000000019c flags: Z1 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: ret +Y86 CPU state: + PC: 0000000000000149 flags: Z1 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 000000000000014a flags: Z1 S0 O0 HLT + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 53 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f4 00 0f 00 00 00 00 00 00 30 f0 01 00 00 00 + 0110 00 00 00 00 62 00 80 4a 01 00 00 00 00 00 00 30 + 0120 f0 ff ff ff ff ff ff ff ff 62 00 80 4a 01 00 00 + 0130 00 00 00 00 30 f0 00 00 00 00 00 00 00 00 62 00 + 0140 80 4a 01 00 00 00 00 00 00 00 30 f0 01 00 00 00 + 0150 00 00 00 00 30 f2 00 00 00 00 00 00 00 00 21 02 + 0160 30 f2 00 00 00 00 00 00 00 00 22 02 30 f2 00 00 + 0170 00 00 00 00 00 00 23 02 30 f2 00 00 00 00 00 00 + 0180 00 00 24 02 30 f2 00 00 00 00 00 00 00 00 25 02 + 0190 30 f2 00 00 00 00 00 00 00 00 26 02 90 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 49 01 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/p4-interp/tests/outputs/A_extra_params.diff b/p4-interp/tests/outputs/A_extra_params.diff new file mode 100644 index 0000000..e69de29 diff --git a/p4-interp/tests/outputs/A_extra_params.txt b/p4-interp/tests/outputs/A_extra_params.txt new file mode 100644 index 0000000..a976979 --- /dev/null +++ b/p4-interp/tests/outputs/A_extra_params.txt @@ -0,0 +1,13 @@ +Usage: ../y86 mini-elf-file + Options are: + -h Display usage + -H Show the Mini-ELF header + -a Show all with brief memory + -f Show all with full memory + -s Show the program headers + -m Show the memory contents (brief) + -M Show the memory contents (full) + -d Disassemble code contents + -D Disassemble data contents + -e Execute program + -E Execute program (trace mode) diff --git a/p4-interp/tests/outputs/A_iotrap_buf2_debug.diff b/p4-interp/tests/outputs/A_iotrap_buf2_debug.diff new file mode 100644 index 0000000..e69de29 diff --git a/p4-interp/tests/outputs/A_iotrap_buf2_debug.txt b/p4-interp/tests/outputs/A_iotrap_buf2_debug.txt new file mode 100644 index 0000000..258a56d --- /dev/null +++ b/p4-interp/tests/outputs/A_iotrap_buf2_debug.txt @@ -0,0 +1,402 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x200, %rsi +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000200 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 2 +Y86 CPU state: + PC: 000000000000010b flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000200 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 2 +Y86 CPU state: + PC: 000000000000010c flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000200 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x300, %rsi +Y86 CPU state: + PC: 0000000000000116 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 0 +Y86 CPU state: + PC: 0000000000000117 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 0 +Y86 CPU state: + PC: 0000000000000118 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 4 +Y86 CPU state: + PC: 0000000000000119 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 5 +1234512345aaabcdefghY86 CPU state: + PC: 000000000000011a flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 2 +Y86 CPU state: + PC: 000000000000011b flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 4 +Y86 CPU state: + PC: 000000000000011c flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 000000000000011d flags: Z0 S0 O0 HLT + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 11 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f6 00 02 00 00 00 00 00 00 c2 c2 30 f6 00 03 + 0110 00 00 00 00 00 00 c0 c0 c4 c5 c2 c4 00 00 00 00 + 0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 39 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 61 62 63 64 65 66 67 68 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/p4-interp/tests/outputs/A_iotrap_buf_debug.diff b/p4-interp/tests/outputs/A_iotrap_buf_debug.diff new file mode 100644 index 0000000..e69de29 diff --git a/p4-interp/tests/outputs/A_iotrap_buf_debug.txt b/p4-interp/tests/outputs/A_iotrap_buf_debug.txt new file mode 100644 index 0000000..24aa32f --- /dev/null +++ b/p4-interp/tests/outputs/A_iotrap_buf_debug.txt @@ -0,0 +1,330 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x300, %rsi +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 4 +Y86 CPU state: + PC: 000000000000010b flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 5 +abcdefghY86 CPU state: + PC: 000000000000010c flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 4 +Y86 CPU state: + PC: 000000000000010d flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 000000000000010e flags: Z0 S0 O0 HLT + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 5 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f6 00 03 00 00 00 00 00 00 c4 c5 c4 00 00 00 + 0110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 61 62 63 64 65 66 67 68 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/p4-interp/tests/outputs/A_iotrap_char_debug.diff b/p4-interp/tests/outputs/A_iotrap_char_debug.diff new file mode 100644 index 0000000..e69de29 diff --git a/p4-interp/tests/outputs/A_iotrap_char_debug.txt b/p4-interp/tests/outputs/A_iotrap_char_debug.txt new file mode 100644 index 0000000..c780e01 --- /dev/null +++ b/p4-interp/tests/outputs/A_iotrap_char_debug.txt @@ -0,0 +1,354 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x300, %rsi +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 0 +Y86 CPU state: + PC: 000000000000010b flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 0 +Y86 CPU state: + PC: 000000000000010c flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 5 +YYY86 CPU state: + PC: 000000000000010d flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x308, %rdi +Y86 CPU state: + PC: 0000000000000117 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000308 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 1 +Y86 CPU state: + PC: 0000000000000118 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000308 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 0000000000000119 flags: Z0 S0 O0 HLT + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000308 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 7 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f6 00 03 00 00 00 00 00 00 c0 c0 c5 30 f7 08 + 0110 03 00 00 00 00 00 00 c1 00 00 00 00 00 00 00 00 + 0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 59 00 00 00 00 00 00 00 79 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/p4-interp/tests/outputs/A_iotrap_dec_bad.diff b/p4-interp/tests/outputs/A_iotrap_dec_bad.diff new file mode 100644 index 0000000..e69de29 diff --git a/p4-interp/tests/outputs/A_iotrap_dec_bad.txt b/p4-interp/tests/outputs/A_iotrap_dec_bad.txt new file mode 100644 index 0000000..8369d5c --- /dev/null +++ b/p4-interp/tests/outputs/A_iotrap_dec_bad.txt @@ -0,0 +1,13 @@ +Beginning execution at 0x0100 +256256I/O Error +Y86 CPU state: + PC: 0000000000000118 flags: Z0 S0 O0 HLT + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000308 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 6 diff --git a/p4-interp/tests/outputs/A_iotrap_dec_debug.diff b/p4-interp/tests/outputs/A_iotrap_dec_debug.diff new file mode 100644 index 0000000..e69de29 diff --git a/p4-interp/tests/outputs/A_iotrap_dec_debug.txt b/p4-interp/tests/outputs/A_iotrap_dec_debug.txt new file mode 100644 index 0000000..395583e --- /dev/null +++ b/p4-interp/tests/outputs/A_iotrap_dec_debug.txt @@ -0,0 +1,354 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x300, %rsi +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 2 +Y86 CPU state: + PC: 000000000000010b flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 2 +Y86 CPU state: + PC: 000000000000010c flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 5 +256256Y86 CPU state: + PC: 000000000000010d flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x308, %rdi +Y86 CPU state: + PC: 0000000000000117 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000308 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 3 +Y86 CPU state: + PC: 0000000000000118 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000308 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 0000000000000119 flags: Z0 S0 O0 HLT + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000308 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 7 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f6 00 03 00 00 00 00 00 00 c2 c2 c5 30 f7 08 + 0110 03 00 00 00 00 00 00 c3 00 00 00 00 00 00 00 00 + 0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 00 01 00 00 00 00 00 00 2a 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/p4-interp/tests/outputs/A_iotrap_escaped_string.diff b/p4-interp/tests/outputs/A_iotrap_escaped_string.diff new file mode 100644 index 0000000..e69de29 diff --git a/p4-interp/tests/outputs/A_iotrap_escaped_string.txt b/p4-interp/tests/outputs/A_iotrap_escaped_string.txt new file mode 100644 index 0000000..855776a --- /dev/null +++ b/p4-interp/tests/outputs/A_iotrap_escaped_string.txt @@ -0,0 +1,15 @@ +Beginning execution at 0x0100 +hello! +ab c +'str\ing' +Y86 CPU state: + PC: 000000000000010d flags: Z0 S0 O0 HLT + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 4 diff --git a/p4-interp/tests/outputs/A_iotrap_str_debug.diff b/p4-interp/tests/outputs/A_iotrap_str_debug.diff new file mode 100644 index 0000000..e69de29 diff --git a/p4-interp/tests/outputs/A_iotrap_str_debug.txt b/p4-interp/tests/outputs/A_iotrap_str_debug.txt new file mode 100644 index 0000000..d8c6608 --- /dev/null +++ b/p4-interp/tests/outputs/A_iotrap_str_debug.txt @@ -0,0 +1,330 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x300, %rsi +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 4 +Y86 CPU state: + PC: 000000000000010b flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 4 +Y86 CPU state: + PC: 000000000000010c flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 5 +abcdefghabcdefghY86 CPU state: + PC: 000000000000010d flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 000000000000010e flags: Z0 S0 O0 HLT + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 5 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f6 00 03 00 00 00 00 00 00 c4 c4 c5 00 00 00 + 0110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 61 62 63 64 65 66 67 68 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/p4-interp/tests/outputs/A_missing_file.diff b/p4-interp/tests/outputs/A_missing_file.diff new file mode 100644 index 0000000..e69de29 diff --git a/p4-interp/tests/outputs/A_missing_file.txt b/p4-interp/tests/outputs/A_missing_file.txt new file mode 100644 index 0000000..a976979 --- /dev/null +++ b/p4-interp/tests/outputs/A_missing_file.txt @@ -0,0 +1,13 @@ +Usage: ../y86 mini-elf-file + Options are: + -h Display usage + -H Show the Mini-ELF header + -a Show all with brief memory + -f Show all with full memory + -s Show the program headers + -m Show the memory contents (brief) + -M Show the memory contents (full) + -d Disassemble code contents + -D Disassemble data contents + -e Execute program + -E Execute program (trace mode) diff --git a/p4-interp/tests/outputs/A_movflags_debug.diff b/p4-interp/tests/outputs/A_movflags_debug.diff new file mode 100644 index 0000000..e69de29 diff --git a/p4-interp/tests/outputs/A_movflags_debug.txt b/p4-interp/tests/outputs/A_movflags_debug.txt new file mode 100644 index 0000000..cb82d6d --- /dev/null +++ b/p4-interp/tests/outputs/A_movflags_debug.txt @@ -0,0 +1,438 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0xf00, %rsp +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rax +Y86 CPU state: + PC: 0000000000000114 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x200, %rbx +Y86 CPU state: + PC: 000000000000011e flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000200 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: rmmovq %rax, 0x0(%rbx) +Y86 CPU state: + PC: 0000000000000128 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000200 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: mrmovq 0x0(%rbx), %rcx +Y86 CPU state: + PC: 0000000000000132 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000200 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: pushq %rax +Y86 CPU state: + PC: 0000000000000134 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000200 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: popq %rdx +Y86 CPU state: + PC: 0000000000000136 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000200 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0xffffffffffffffff, %rax +Y86 CPU state: + PC: 0000000000000140 flags: Z0 S0 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000200 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x200, %rbx +Y86 CPU state: + PC: 000000000000014a flags: Z0 S0 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000200 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: rmmovq %rax, 0x0(%rbx) +Y86 CPU state: + PC: 0000000000000154 flags: Z0 S0 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000200 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: mrmovq 0x0(%rbx), %rcx +Y86 CPU state: + PC: 000000000000015e flags: Z0 S0 O0 AOK + %rax: ffffffffffffffff %rcx: ffffffffffffffff + %rdx: 0000000000000000 %rbx: 0000000000000200 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: pushq %rax +Y86 CPU state: + PC: 0000000000000160 flags: Z0 S0 O0 AOK + %rax: ffffffffffffffff %rcx: ffffffffffffffff + %rdx: 0000000000000000 %rbx: 0000000000000200 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: popq %rdx +Y86 CPU state: + PC: 0000000000000162 flags: Z0 S0 O0 AOK + %rax: ffffffffffffffff %rcx: ffffffffffffffff + %rdx: ffffffffffffffff %rbx: 0000000000000200 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 0000000000000163 flags: Z0 S0 O0 HLT + %rax: ffffffffffffffff %rcx: ffffffffffffffff + %rdx: ffffffffffffffff %rbx: 0000000000000200 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 14 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f4 00 0f 00 00 00 00 00 00 30 f0 00 00 00 00 + 0110 00 00 00 00 30 f3 00 02 00 00 00 00 00 00 40 03 + 0120 00 00 00 00 00 00 00 00 50 13 00 00 00 00 00 00 + 0130 00 00 a0 0f b0 2f 30 f0 ff ff ff ff ff ff ff ff + 0140 30 f3 00 02 00 00 00 00 00 00 40 03 00 00 00 00 + 0150 00 00 00 00 50 13 00 00 00 00 00 00 00 00 a0 0f + 0160 b0 2f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/p4-interp/tests/outputs/A_opq_of_debug.diff b/p4-interp/tests/outputs/A_opq_of_debug.diff new file mode 100644 index 0000000..e69de29 diff --git a/p4-interp/tests/outputs/A_opq_of_debug.txt b/p4-interp/tests/outputs/A_opq_of_debug.txt new file mode 100644 index 0000000..a61a9dc --- /dev/null +++ b/p4-interp/tests/outputs/A_opq_of_debug.txt @@ -0,0 +1,402 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x1, %rbx +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000001 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x7fffffffffffffff, %rax +Y86 CPU state: + PC: 0000000000000114 flags: Z0 S0 O0 AOK + %rax: 7fffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000001 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: addq %rbx, %rax +Y86 CPU state: + PC: 0000000000000116 flags: Z0 S1 O1 AOK + %rax: 8000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000001 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x8000000000000000, %rax +Y86 CPU state: + PC: 0000000000000120 flags: Z0 S1 O1 AOK + %rax: 8000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000001 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: subq %rbx, %rax +Y86 CPU state: + PC: 0000000000000122 flags: Z0 S0 O1 AOK + %rax: 7fffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000001 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0xffffffffffffffff, %rbx +Y86 CPU state: + PC: 000000000000012c flags: Z0 S0 O1 AOK + %rax: 7fffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: ffffffffffffffff + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x8000000000000000, %rax +Y86 CPU state: + PC: 0000000000000136 flags: Z0 S0 O1 AOK + %rax: 8000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: ffffffffffffffff + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: addq %rbx, %rax +Y86 CPU state: + PC: 0000000000000138 flags: Z0 S0 O1 AOK + %rax: 7fffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: ffffffffffffffff + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x7fffffffffffffff, %rax +Y86 CPU state: + PC: 0000000000000142 flags: Z0 S0 O1 AOK + %rax: 7fffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: ffffffffffffffff + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: subq %rbx, %rax +Y86 CPU state: + PC: 0000000000000144 flags: Z0 S1 O1 AOK + %rax: 8000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: ffffffffffffffff + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 0000000000000145 flags: Z0 S1 O1 HLT + %rax: 8000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: ffffffffffffffff + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 11 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f3 01 00 00 00 00 00 00 00 30 f0 ff ff ff ff + 0110 ff ff ff 7f 60 30 30 f0 00 00 00 00 00 00 00 80 + 0120 61 30 30 f3 ff ff ff ff ff ff ff ff 30 f0 00 00 + 0130 00 00 00 00 00 80 60 30 30 f0 ff ff ff ff ff ff + 0140 ff 7f 61 30 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/p4-interp/tests/outputs/A_pushpop_rsp_debug.diff b/p4-interp/tests/outputs/A_pushpop_rsp_debug.diff new file mode 100644 index 0000000..e69de29 diff --git a/p4-interp/tests/outputs/A_pushpop_rsp_debug.txt b/p4-interp/tests/outputs/A_pushpop_rsp_debug.txt new file mode 100644 index 0000000..09827c1 --- /dev/null +++ b/p4-interp/tests/outputs/A_pushpop_rsp_debug.txt @@ -0,0 +1,318 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0xf00, %rsp +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: pushq %rsp +Y86 CPU state: + PC: 000000000000010c flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: popq %rax +Y86 CPU state: + PC: 000000000000010e flags: Z0 S0 O0 AOK + %rax: 0000000000000f00 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 000000000000010f flags: Z0 S0 O0 HLT + %rax: 0000000000000f00 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 4 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f4 00 0f 00 00 00 00 00 00 a0 4f b0 0f 00 00 + 0110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 00 0f 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/p4-interp/tests/outputs/A_unaligned1.diff b/p4-interp/tests/outputs/A_unaligned1.diff new file mode 100644 index 0000000..e69de29 diff --git a/p4-interp/tests/outputs/A_unaligned1.txt b/p4-interp/tests/outputs/A_unaligned1.txt new file mode 100644 index 0000000..9cb3e52 --- /dev/null +++ b/p4-interp/tests/outputs/A_unaligned1.txt @@ -0,0 +1,12 @@ +Beginning execution at 0x0118 +Y86 CPU state: + PC: 000000000000011a flags: Z0 S0 O0 HLT + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 2 diff --git a/p4-interp/tests/outputs/A_unaligned2.diff b/p4-interp/tests/outputs/A_unaligned2.diff new file mode 100644 index 0000000..e69de29 diff --git a/p4-interp/tests/outputs/A_unaligned2.txt b/p4-interp/tests/outputs/A_unaligned2.txt new file mode 100644 index 0000000..776899c --- /dev/null +++ b/p4-interp/tests/outputs/A_unaligned2.txt @@ -0,0 +1,12 @@ +Beginning execution at 0x0555 +Y86 CPU state: + PC: 0000000000000574 flags: Z0 S0 O0 HLT + %rax: 000000000000014d %rcx: 000000000000006f + %rdx: 0000000000000000 %rbx: 00000000000000de + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 4 diff --git a/p4-interp/tests/outputs/B_func_debug.diff b/p4-interp/tests/outputs/B_func_debug.diff new file mode 100644 index 0000000..e69de29 diff --git a/p4-interp/tests/outputs/B_func_debug.txt b/p4-interp/tests/outputs/B_func_debug.txt new file mode 100644 index 0000000..e190928 --- /dev/null +++ b/p4-interp/tests/outputs/B_func_debug.txt @@ -0,0 +1,342 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0xf00, %rsp +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: call 0x114 +Y86 CPU state: + PC: 0000000000000114 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: call 0x11e +Y86 CPU state: + PC: 000000000000011e flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef0 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: ret +Y86 CPU state: + PC: 000000000000011d flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: ret +Y86 CPU state: + PC: 0000000000000113 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 0000000000000114 flags: Z0 S0 O0 HLT + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 6 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f4 00 0f 00 00 00 00 00 00 80 14 01 00 00 00 + 0110 00 00 00 00 80 1e 01 00 00 00 00 00 00 90 90 00 + 0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 1d 01 00 00 00 00 00 00 13 01 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/p4-interp/tests/outputs/B_memreg.diff b/p4-interp/tests/outputs/B_memreg.diff new file mode 100644 index 0000000..e69de29 diff --git a/p4-interp/tests/outputs/B_memreg.txt b/p4-interp/tests/outputs/B_memreg.txt new file mode 100644 index 0000000..d3ed785 --- /dev/null +++ b/p4-interp/tests/outputs/B_memreg.txt @@ -0,0 +1,12 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000147 flags: Z0 S0 O0 HLT + %rax: fedcba9876543210 %rcx: fedcba9876543210 + %rdx: 0123456789abcdef %rbx: 0000000000000200 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0123456789abcdef + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 8 diff --git a/p4-interp/tests/outputs/B_memreg_debug.diff b/p4-interp/tests/outputs/B_memreg_debug.diff new file mode 100644 index 0000000..e69de29 diff --git a/p4-interp/tests/outputs/B_memreg_debug.txt b/p4-interp/tests/outputs/B_memreg_debug.txt new file mode 100644 index 0000000..366e104 --- /dev/null +++ b/p4-interp/tests/outputs/B_memreg_debug.txt @@ -0,0 +1,366 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0xfedcba9876543210, %rax +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: fedcba9876543210 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x200, %rbx +Y86 CPU state: + PC: 0000000000000114 flags: Z0 S0 O0 AOK + %rax: fedcba9876543210 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000200 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: rmmovq %rax, 0x0(%rbx) +Y86 CPU state: + PC: 000000000000011e flags: Z0 S0 O0 AOK + %rax: fedcba9876543210 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000200 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: mrmovq 0x0(%rbx), %rcx +Y86 CPU state: + PC: 0000000000000128 flags: Z0 S0 O0 AOK + %rax: fedcba9876543210 %rcx: fedcba9876543210 + %rdx: 0000000000000000 %rbx: 0000000000000200 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: mrmovq 0x8(%rbx), %rdx +Y86 CPU state: + PC: 0000000000000132 flags: Z0 S0 O0 AOK + %rax: fedcba9876543210 %rcx: fedcba9876543210 + %rdx: 0123456789abcdef %rbx: 0000000000000200 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: rmmovq %rdx, 0x210 +Y86 CPU state: + PC: 000000000000013c flags: Z0 S0 O0 AOK + %rax: fedcba9876543210 %rcx: fedcba9876543210 + %rdx: 0123456789abcdef %rbx: 0000000000000200 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: mrmovq 0x210, %rdi +Y86 CPU state: + PC: 0000000000000146 flags: Z0 S0 O0 AOK + %rax: fedcba9876543210 %rcx: fedcba9876543210 + %rdx: 0123456789abcdef %rbx: 0000000000000200 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0123456789abcdef + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 0000000000000147 flags: Z0 S0 O0 HLT + %rax: fedcba9876543210 %rcx: fedcba9876543210 + %rdx: 0123456789abcdef %rbx: 0000000000000200 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0123456789abcdef + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 8 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f0 10 32 54 76 98 ba dc fe 30 f3 00 02 00 00 + 0110 00 00 00 00 40 03 00 00 00 00 00 00 00 00 50 13 + 0120 00 00 00 00 00 00 00 00 50 23 08 00 00 00 00 00 + 0130 00 00 40 2f 10 02 00 00 00 00 00 00 50 7f 10 02 + 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 10 32 54 76 98 ba dc fe ef cd ab 89 67 45 23 01 + 0210 ef cd ab 89 67 45 23 01 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/p4-interp/tests/outputs/B_pushpop.diff b/p4-interp/tests/outputs/B_pushpop.diff new file mode 100644 index 0000000..e69de29 diff --git a/p4-interp/tests/outputs/B_pushpop.txt b/p4-interp/tests/outputs/B_pushpop.txt new file mode 100644 index 0000000..d6724c3 --- /dev/null +++ b/p4-interp/tests/outputs/B_pushpop.txt @@ -0,0 +1,12 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000127 flags: Z0 S0 O0 HLT + %rax: 0000000000000001 %rcx: 0123456789abcdef + %rdx: 0000000000000001 %rbx: 0123456789abcdef + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 8 diff --git a/p4-interp/tests/outputs/B_pushpop_debug.diff b/p4-interp/tests/outputs/B_pushpop_debug.diff new file mode 100644 index 0000000..e69de29 diff --git a/p4-interp/tests/outputs/B_pushpop_debug.txt b/p4-interp/tests/outputs/B_pushpop_debug.txt new file mode 100644 index 0000000..9e8fcfd --- /dev/null +++ b/p4-interp/tests/outputs/B_pushpop_debug.txt @@ -0,0 +1,366 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0xf00, %rsp +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x1, %rax +Y86 CPU state: + PC: 0000000000000114 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x123456789abcdef, %rbx +Y86 CPU state: + PC: 000000000000011e flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0123456789abcdef + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: pushq %rax +Y86 CPU state: + PC: 0000000000000120 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0123456789abcdef + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: pushq %rbx +Y86 CPU state: + PC: 0000000000000122 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0123456789abcdef + %rsp: 0000000000000ef0 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: popq %rcx +Y86 CPU state: + PC: 0000000000000124 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0123456789abcdef + %rdx: 0000000000000000 %rbx: 0123456789abcdef + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: popq %rdx +Y86 CPU state: + PC: 0000000000000126 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0123456789abcdef + %rdx: 0000000000000001 %rbx: 0123456789abcdef + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 0000000000000127 flags: Z0 S0 O0 HLT + %rax: 0000000000000001 %rcx: 0123456789abcdef + %rdx: 0000000000000001 %rbx: 0123456789abcdef + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 8 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f4 00 0f 00 00 00 00 00 00 30 f0 01 00 00 00 + 0110 00 00 00 00 30 f3 ef cd ab 89 67 45 23 01 a0 0f + 0120 a0 3f b0 1f b0 2f 00 00 00 00 00 00 00 00 00 00 + 0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 ef cd ab 89 67 45 23 01 01 00 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/p4-interp/tests/outputs/B_simple.diff b/p4-interp/tests/outputs/B_simple.diff new file mode 100644 index 0000000..e69de29 diff --git a/p4-interp/tests/outputs/B_simple.txt b/p4-interp/tests/outputs/B_simple.txt new file mode 100644 index 0000000..db77842 --- /dev/null +++ b/p4-interp/tests/outputs/B_simple.txt @@ -0,0 +1,12 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000114 flags: Z0 S0 O0 HLT + %rax: 0000000000000005 %rcx: 0000000000000003 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 7 diff --git a/p4-interp/tests/outputs/B_simple_entry.diff b/p4-interp/tests/outputs/B_simple_entry.diff new file mode 100644 index 0000000..e69de29 diff --git a/p4-interp/tests/outputs/B_simple_entry.txt b/p4-interp/tests/outputs/B_simple_entry.txt new file mode 100644 index 0000000..46910e2 --- /dev/null +++ b/p4-interp/tests/outputs/B_simple_entry.txt @@ -0,0 +1,12 @@ +Beginning execution at 0x0250 +Y86 CPU state: + PC: 0000000000000264 flags: Z0 S0 O0 HLT + %rax: 0000000000000005 %rcx: 0000000000000003 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 7 diff --git a/p4-interp/tests/outputs/C_irmovq.diff b/p4-interp/tests/outputs/C_irmovq.diff new file mode 100644 index 0000000..e69de29 diff --git a/p4-interp/tests/outputs/C_irmovq.txt b/p4-interp/tests/outputs/C_irmovq.txt new file mode 100644 index 0000000..7681b9f --- /dev/null +++ b/p4-interp/tests/outputs/C_irmovq.txt @@ -0,0 +1,12 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000151 flags: Z0 S0 O0 HLT + %rax: 0000000000000001 %rcx: 0000000000001234 + %rdx: 1122334455667788 %rbx: 000000000000000f + %rsp: 00000000deadbeef %rbp: 0000000000000000 + %rsi: 8877665544332211 %rdi: ffffffffffffffff + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 9 diff --git a/p4-interp/tests/outputs/C_irmovq_debug.diff b/p4-interp/tests/outputs/C_irmovq_debug.diff new file mode 100644 index 0000000..e69de29 diff --git a/p4-interp/tests/outputs/C_irmovq_debug.txt b/p4-interp/tests/outputs/C_irmovq_debug.txt new file mode 100644 index 0000000..49e4d1d --- /dev/null +++ b/p4-interp/tests/outputs/C_irmovq_debug.txt @@ -0,0 +1,378 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x1, %rax +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0xf, %rbx +Y86 CPU state: + PC: 0000000000000114 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 000000000000000f + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x1234, %rcx +Y86 CPU state: + PC: 000000000000011e flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000001234 + %rdx: 0000000000000000 %rbx: 000000000000000f + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x1122334455667788, %rdx +Y86 CPU state: + PC: 0000000000000128 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000001234 + %rdx: 1122334455667788 %rbx: 000000000000000f + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x8877665544332211, %rsi +Y86 CPU state: + PC: 0000000000000132 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000001234 + %rdx: 1122334455667788 %rbx: 000000000000000f + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 8877665544332211 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0xffffffffffffffff, %rdi +Y86 CPU state: + PC: 000000000000013c flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000001234 + %rdx: 1122334455667788 %rbx: 000000000000000f + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 8877665544332211 %rdi: ffffffffffffffff + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rbp +Y86 CPU state: + PC: 0000000000000146 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000001234 + %rdx: 1122334455667788 %rbx: 000000000000000f + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 8877665544332211 %rdi: ffffffffffffffff + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0xdeadbeef, %rsp +Y86 CPU state: + PC: 0000000000000150 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000001234 + %rdx: 1122334455667788 %rbx: 000000000000000f + %rsp: 00000000deadbeef %rbp: 0000000000000000 + %rsi: 8877665544332211 %rdi: ffffffffffffffff + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 0000000000000151 flags: Z0 S0 O0 HLT + %rax: 0000000000000001 %rcx: 0000000000001234 + %rdx: 1122334455667788 %rbx: 000000000000000f + %rsp: 00000000deadbeef %rbp: 0000000000000000 + %rsi: 8877665544332211 %rdi: ffffffffffffffff + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 9 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f0 01 00 00 00 00 00 00 00 30 f3 0f 00 00 00 + 0110 00 00 00 00 30 f1 34 12 00 00 00 00 00 00 30 f2 + 0120 88 77 66 55 44 33 22 11 30 f6 11 22 33 44 55 66 + 0130 77 88 30 f7 ff ff ff ff ff ff ff ff 30 f5 00 00 + 0140 00 00 00 00 00 00 30 f4 ef be ad de 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/p4-interp/tests/outputs/C_opq.diff b/p4-interp/tests/outputs/C_opq.diff new file mode 100644 index 0000000..e69de29 diff --git a/p4-interp/tests/outputs/C_opq.txt b/p4-interp/tests/outputs/C_opq.txt new file mode 100644 index 0000000..8d2da4f --- /dev/null +++ b/p4-interp/tests/outputs/C_opq.txt @@ -0,0 +1,12 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 000000000000013b flags: Z0 S0 O0 HLT + %rax: 0000000000000008 %rcx: 0000000000000001 + %rdx: 0000000000000006 %rbx: 0000000000000002 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000003 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 10 diff --git a/p4-interp/tests/outputs/C_opq_debug.diff b/p4-interp/tests/outputs/C_opq_debug.diff new file mode 100644 index 0000000..e69de29 diff --git a/p4-interp/tests/outputs/C_opq_debug.txt b/p4-interp/tests/outputs/C_opq_debug.txt new file mode 100644 index 0000000..e5a122f --- /dev/null +++ b/p4-interp/tests/outputs/C_opq_debug.txt @@ -0,0 +1,390 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x5, %rax +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: 0000000000000005 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x5, %rbx +Y86 CPU state: + PC: 0000000000000114 flags: Z0 S0 O0 AOK + %rax: 0000000000000005 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000005 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x5, %rcx +Y86 CPU state: + PC: 000000000000011e flags: Z0 S0 O0 AOK + %rax: 0000000000000005 %rcx: 0000000000000005 + %rdx: 0000000000000000 %rbx: 0000000000000005 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x5, %rdx +Y86 CPU state: + PC: 0000000000000128 flags: Z0 S0 O0 AOK + %rax: 0000000000000005 %rcx: 0000000000000005 + %rdx: 0000000000000005 %rbx: 0000000000000005 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x3, %rdi +Y86 CPU state: + PC: 0000000000000132 flags: Z0 S0 O0 AOK + %rax: 0000000000000005 %rcx: 0000000000000005 + %rdx: 0000000000000005 %rbx: 0000000000000005 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000003 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: addq %rdi, %rax +Y86 CPU state: + PC: 0000000000000134 flags: Z0 S0 O0 AOK + %rax: 0000000000000008 %rcx: 0000000000000005 + %rdx: 0000000000000005 %rbx: 0000000000000005 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000003 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: subq %rdi, %rbx +Y86 CPU state: + PC: 0000000000000136 flags: Z0 S0 O0 AOK + %rax: 0000000000000008 %rcx: 0000000000000005 + %rdx: 0000000000000005 %rbx: 0000000000000002 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000003 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: andq %rdi, %rcx +Y86 CPU state: + PC: 0000000000000138 flags: Z0 S0 O0 AOK + %rax: 0000000000000008 %rcx: 0000000000000001 + %rdx: 0000000000000005 %rbx: 0000000000000002 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000003 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: xorq %rdi, %rdx +Y86 CPU state: + PC: 000000000000013a flags: Z0 S0 O0 AOK + %rax: 0000000000000008 %rcx: 0000000000000001 + %rdx: 0000000000000006 %rbx: 0000000000000002 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000003 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 000000000000013b flags: Z0 S0 O0 HLT + %rax: 0000000000000008 %rcx: 0000000000000001 + %rdx: 0000000000000006 %rbx: 0000000000000002 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000003 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 10 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f0 05 00 00 00 00 00 00 00 30 f3 05 00 00 00 + 0110 00 00 00 00 30 f1 05 00 00 00 00 00 00 00 30 f2 + 0120 05 00 00 00 00 00 00 00 30 f7 03 00 00 00 00 00 + 0130 00 00 60 70 61 73 62 71 63 72 00 00 00 00 00 00 + 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/p4-interp/tests/outputs/D_help.diff b/p4-interp/tests/outputs/D_help.diff new file mode 100644 index 0000000..e69de29 diff --git a/p4-interp/tests/outputs/D_help.txt b/p4-interp/tests/outputs/D_help.txt new file mode 100644 index 0000000..a976979 --- /dev/null +++ b/p4-interp/tests/outputs/D_help.txt @@ -0,0 +1,13 @@ +Usage: ../y86 mini-elf-file + Options are: + -h Display usage + -H Show the Mini-ELF header + -a Show all with brief memory + -f Show all with full memory + -s Show the program headers + -m Show the memory contents (brief) + -M Show the memory contents (full) + -d Disassemble code contents + -D Disassemble data contents + -e Execute program + -E Execute program (trace mode) diff --git a/p4-interp/tests/outputs/D_nop_hlt.diff b/p4-interp/tests/outputs/D_nop_hlt.diff new file mode 100644 index 0000000..e69de29 diff --git a/p4-interp/tests/outputs/D_nop_hlt.txt b/p4-interp/tests/outputs/D_nop_hlt.txt new file mode 100644 index 0000000..16f14a7 --- /dev/null +++ b/p4-interp/tests/outputs/D_nop_hlt.txt @@ -0,0 +1,12 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000102 flags: Z0 S0 O0 HLT + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 2 diff --git a/p4-interp/tests/outputs/D_nop_hlt_debug.diff b/p4-interp/tests/outputs/D_nop_hlt_debug.diff new file mode 100644 index 0000000..e69de29 diff --git a/p4-interp/tests/outputs/D_nop_hlt_debug.txt b/p4-interp/tests/outputs/D_nop_hlt_debug.txt new file mode 100644 index 0000000..3012b2f --- /dev/null +++ b/p4-interp/tests/outputs/D_nop_hlt_debug.txt @@ -0,0 +1,294 @@ +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: nop +Y86 CPU state: + PC: 0000000000000101 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 0000000000000102 flags: Z0 S0 O0 HLT + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 2 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/p4-interp/tests/private.o b/p4-interp/tests/private.o new file mode 100644 index 0000000000000000000000000000000000000000..69e18e9d29024024163762ec59d864112f7a1693 GIT binary patch literal 43712 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 +#include +#include + +#include + +#include "../p4-interp.h" + +/* check decoding and execution of the HALT instruction */ +START_TEST (D_func_decode_halt) +{ + y86_t cpu; + y86_inst_t inst; + bool cnd = false; + y86_reg_t valA = 0; + y86_reg_t valE = 0; + + memset (&inst, 0, sizeof (inst)); + inst.icode = HALT; + + memset (&cpu, 0, sizeof (cpu)); + cpu.stat = AOK; + + valE = decode_execute (&cpu, &inst, &cnd, &valA); + ck_assert (valE == 0 || valE != 0); + ck_assert (cpu.stat == HLT); +} +END_TEST + +/* check decoding and execution of the NOP instruction */ +START_TEST (D_func_decode_nop) +{ + y86_t cpu; + y86_inst_t inst; + bool cnd = false; + y86_reg_t valA = 0; + y86_reg_t valE = 0; + + memset (&inst, 0, sizeof (inst)); + inst.icode = NOP; + + memset (&cpu, 0, sizeof (cpu)); + cpu.stat = AOK; + + valE = decode_execute (&cpu, &inst, &cnd, &valA); + ck_assert (valE == 0 || valE != 0); + ck_assert (cpu.stat == AOK); +} +END_TEST + +/* check memory, writeback, and PC update of the HALT instruction */ +START_TEST (D_func_memory_halt) +{ + y86_t cpu; + byte_t *memory = malloc (MEMSIZE); + y86_inst_t inst; + bool cnd = false; + y86_reg_t valA; + y86_reg_t valE; + + memset (&cpu, 0, sizeof (cpu)); + memset (memory, 0, MEMSIZE); + memset (&inst, 0, sizeof (inst)); + cpu.stat = AOK; + valA = valE = 0; + + inst.icode = HALT; + inst.valP = rand() % MEMSIZE; + memory_wb_pc (&cpu, &inst, memory, cnd, valA, valE); + ck_assert (cpu.pc == inst.valP); +} +END_TEST + +/* check memory, writeback, and PC update of the NOP instruction */ +START_TEST (D_func_memory_nop) +{ + y86_t cpu; + byte_t *memory = malloc (MEMSIZE); + y86_inst_t inst; + bool cnd = false; + y86_reg_t valA; + y86_reg_t valE; + + memset (&cpu, 0, sizeof (cpu)); + memset (memory, 0, MEMSIZE); + memset (&inst, 0, sizeof (inst)); + cpu.stat = AOK; + valA = valE = 0; + + inst.icode = NOP; + inst.valP = rand() % MEMSIZE; + memory_wb_pc (&cpu, &inst, memory, cnd, valA, valE); + ck_assert (cpu.pc == inst.valP); +} +END_TEST + +/* check for null-pointer handling */ +START_TEST (D_error_decode_NULL_cnd_valA) +{ + y86_t cpu; + y86_inst_t inst; + y86_reg_t valE = 0; + + memset (&inst, 0, sizeof (inst)); + memset (&cpu, 0, sizeof (cpu)); + cpu.stat = AOK; + + inst.icode = NOP; + valE = decode_execute (&cpu, &inst, NULL, NULL); + ck_assert (valE == 0 || valE != 0); + ck_assert (cpu.stat == INS); +} +END_TEST + +/* helper function: extract the given register value from a CPU state */ +static y86_reg_t _check_get_reg (y86_t *cpu, y86_regnum_t num) +{ + return cpu->reg[num]; +} + +/* check decoding and execution of the IRMOVQ instruction */ +START_TEST (C_func_decode_irmovq) +{ + y86_t cpu; + y86_inst_t inst; + bool cnd = false; + y86_reg_t valA = 0; + y86_reg_t valE = 0; + + /* assemble test instruction and initial CPU state */ + memset (&inst, 0, sizeof (inst)); + inst.icode = IRMOVQ; + memset (&cpu, 0, sizeof (cpu)); + cpu.stat = AOK; + inst.valC.v = 0 + rand(); + inst.rb = (y86_regnum_t)(rand() % NOREG); /* random register */ + + /* test: load a positive value */ + valE = decode_execute (&cpu, &inst, &cnd, &valA); + ck_assert (valE == (y86_reg_t)inst.valC.v); + ck_assert (cpu.sf == 0); + ck_assert (cpu.zf == 0); + ck_assert (_check_get_reg (&cpu, inst.rb) == 0); + + /* test: load a negative value */ + inst.valC.v = -inst.valC.v; + valE = decode_execute (&cpu, &inst, &cnd, &valA); + ck_assert (valE == (y86_reg_t)inst.valC.v); + ck_assert (cpu.sf == 0); + ck_assert (cpu.zf == 0); + ck_assert (_check_get_reg (&cpu, inst.rb) == 0); + + /* test: load a zero value */ + inst.valC.v = 0; + valE = decode_execute (&cpu, &inst, &cnd, &valA); + ck_assert (valE == (y86_reg_t)inst.valC.v); + ck_assert (cpu.sf == 0); + ck_assert (cpu.zf == 0); + ck_assert (_check_get_reg (&cpu, inst.rb) == 0); +} +END_TEST + +/* helper function: set the given register value in a CPU state */ +static void _check_set_reg (y86_t *cpu, y86_regnum_t num, y86_reg_t val) +{ + cpu->reg[num] = val; +} + +/* check decoding and execution of the OPq instructions (no CC testing) */ +START_TEST (C_func_decode_opq) +{ + y86_t cpu; + y86_inst_t inst; + bool cnd = false; + y86_reg_t valA = 0; + y86_reg_t valE = 0; + y86_reg_t expected_valE = 0; + y86_reg_t regs[NOREG]; + uint8_t i = 0; + + memset (&inst, 0, sizeof (inst)); + inst.icode = OPQ; + + memset (&cpu, 0, sizeof (cpu)); + cpu.stat = AOK; + for (i = RAX; i < NOREG; i++) + { + /* set registers to random values */ + regs[i] = (((int64_t)rand()) << 32) | rand(); + _check_set_reg (&cpu, i, regs[i]); + } + + /* addition */ + inst.ra = (y86_regnum_t)(rand() % NOREG); + inst.rb = (y86_regnum_t)(rand() % NOREG); + inst.ifun.op = ADD; + expected_valE = _check_get_reg (&cpu, inst.ra) + _check_get_reg (&cpu, inst.rb); + valE = decode_execute (&cpu, &inst, &cnd, &valA); + ck_assert (valE == expected_valE); + ck_assert (regs[inst.ra] == _check_get_reg (&cpu, inst.ra)); + ck_assert (regs[inst.rb] == _check_get_reg (&cpu, inst.rb)); + + /* subtraction */ + inst.ra = (y86_regnum_t)(rand() % NOREG); + inst.rb = (y86_regnum_t)(rand() % NOREG); + inst.ifun.op = SUB; + expected_valE = _check_get_reg (&cpu, inst.rb) - _check_get_reg (&cpu, inst.ra); + valE = decode_execute (&cpu, &inst, &cnd, &valA); + ck_assert (valE == expected_valE); + ck_assert (regs[inst.ra] == _check_get_reg (&cpu, inst.ra)); + ck_assert (regs[inst.rb] == _check_get_reg (&cpu, inst.rb)); + + /* bitwise AND */ + inst.ra = (y86_regnum_t)(rand() % NOREG); + inst.rb = (y86_regnum_t)(rand() % NOREG); + inst.ifun.op = AND; + expected_valE = _check_get_reg (&cpu, inst.ra) & _check_get_reg (&cpu, inst.rb); + valE = decode_execute (&cpu, &inst, &cnd, &valA); + ck_assert (valE == expected_valE); + ck_assert (regs[inst.ra] == _check_get_reg (&cpu, inst.ra)); + ck_assert (regs[inst.rb] == _check_get_reg (&cpu, inst.rb)); + + /* bitwise XOR */ + inst.ra = (y86_regnum_t)(rand() % NOREG); + inst.rb = (y86_regnum_t)(rand() % NOREG); + inst.ifun.op = XOR; + expected_valE = _check_get_reg (&cpu, inst.ra) ^ _check_get_reg (&cpu, inst.rb); + valE = decode_execute (&cpu, &inst, &cnd, &valA); + ck_assert (valE == expected_valE); + ck_assert (regs[inst.ra] == _check_get_reg (&cpu, inst.ra)); + ck_assert (regs[inst.rb] == _check_get_reg (&cpu, inst.rb)); +} +END_TEST + +/* check handling of invalid OPq instruction */ +START_TEST (C_error_decode_invalid_opq) +{ + y86_t cpu; + y86_inst_t inst; + bool cnd = false; + y86_reg_t valA = 0; + y86_reg_t valE = 0; + + memset (&inst, 0, sizeof (inst)); + memset (&cpu, 0, sizeof (cpu)); + cpu.stat = AOK; + + inst.icode = OPQ; + inst.ifun.op = BADOP; + valE = decode_execute (&cpu, &inst, &cnd, &valA); + ck_assert (valE == 0 || valE != 0); + ck_assert (cpu.stat == INS); +} +END_TEST + +/* check memory, writeback, and PC update of the IRMOVQ instruction */ +START_TEST (C_func_memory_irmovq) +{ + y86_t cpu; + byte_t *memory = malloc (MEMSIZE); + y86_inst_t inst; + bool cnd = false; + y86_reg_t valA; + y86_reg_t valE; + + for (y86_regnum_t reg = RAX; reg < NOREG; reg++) { + valA = 0; + memset (&cpu, 0, sizeof (cpu)); + memset (memory, 0, MEMSIZE); + memset (&inst, 0, sizeof (inst)); + cpu.stat = AOK; + + inst.icode = IRMOVQ; + inst.rb = reg; + inst.valP = rand() % MEMSIZE; + valE = rand(); + memory_wb_pc (&cpu, &inst, memory, cnd, valA, valE); + ck_assert (cpu.stat == AOK); + ck_assert (cpu.reg[reg] == valE); + ck_assert (cpu.pc == inst.valP); + } +} +END_TEST + +/* check memory, writeback, and PC update of the OPQ instruction */ +START_TEST (C_func_memory_opq) +{ + y86_t cpu; + byte_t *memory = malloc (MEMSIZE); + y86_inst_t inst; + bool cnd = false; + y86_reg_t valA; + y86_reg_t valE; + + for (y86_regnum_t reg = RAX; reg < NOREG; reg++) { + valA = 0; + memset (&cpu, 0, sizeof (cpu)); + memset (memory, 0, MEMSIZE); + memset (&inst, 0, sizeof (inst)); + cpu.stat = AOK; + + inst.icode = OPQ; + inst.rb = reg; + inst.valP = rand() % MEMSIZE; + valE = rand(); + memory_wb_pc (&cpu, &inst, memory, cnd, valA, valE); + ck_assert (cpu.stat == AOK); + ck_assert (cpu.reg[reg] == valE); + ck_assert (cpu.pc == inst.valP); + } +} +END_TEST + +void public_tests (Suite *s) +{ + TCase *tc_public = tcase_create ("Public"); + tcase_add_test (tc_public, D_func_decode_halt); + tcase_add_test (tc_public, D_func_decode_nop); + tcase_add_test (tc_public, D_func_memory_halt); + tcase_add_test (tc_public, D_func_memory_nop); + tcase_add_test (tc_public, D_error_decode_NULL_cnd_valA); + tcase_add_test (tc_public, C_func_decode_irmovq); + tcase_add_test (tc_public, C_func_decode_opq); + tcase_add_test (tc_public, C_func_memory_irmovq); + tcase_add_test (tc_public, C_func_memory_opq); + tcase_add_test (tc_public, C_error_decode_invalid_opq); + suite_add_tcase (s, tc_public); +} + diff --git a/p4-interp/tests/public.o b/p4-interp/tests/public.o new file mode 100644 index 0000000000000000000000000000000000000000..82daa8e667b7579faf4ffeb7adad055dd37955ab GIT binary patch literal 35320 zcmeHw3wTx4weH+|XD6GyNqCCFj>scQ5?&%8Xd*;+c)#MoS2ua=KqMqF*`dHe#9}<8 zkyB_zX%7nLNN+7Zs%^DuD}q*0d)rI(9P2r^4^FQrT5s#CmDblCW3Dmw9&7Bq2-u_d z_WSPq%vx*y^PgjkImTRb%{Av@dqefSOZ`5d;p8(HnPiSpW2SCNURT=7N;AxyVcsnm z{+HTF&#}mjZ@vX^&*Nu)^2sNSk=~3^V<8*qsXj5`;4|G70Gi0*?(uj={BZYFzTDPb z373zB0X|^MdJZ4Q^I?lyWLx(Nq-=+bn^JuoZH;W(hJqv8cA}ohwuew)#Hkb^X^|eQ zF|y@xt2myWxEg+7sFe}4s)*iOeSFIaf7hbljeXR@+o<$OMScWJt+@xzfU5}eoF;6K z^j4o}jGX5c!&r=(TqW_1WZ&VD0XC zvggR56C(~CAK-iP#@~KYU`#0>kzK%E4we->ybTSUMoQLr6FM5aC2HTuA%pT^_vN`KoP$D8AG_4qZP#^dfvC-eAG5a09oI0&#BpHF2p z_U!M6o!;woQfEAoeY$ySB}K3$a9aOcC5%qH&(dG$(A2zOO?|1 zSmCael%~gup6gHabiIcIdv7hAGLBsHnUB%|+a8bchWu~Mw1dDR2(XiDI1*`op=ayX zt&u}-gndu;{QS_L179!wdC&8Qew$JHeCd&%Lp{&-bkDN`!>K<(dv~G+7%K2VibF-o zfm>1?Uhr`Bzi)ZVchkZ6+|;L@o1gUcfo*98z3d2Dkt)c|7lQsVRZ#Cvr=`}9JuhK* z9P=@>p!;A!_g8?PD%~waNJqNrrr;0jmiJ$V{%x;LV^Wgh(lkDE>lDV^nrh5Ro$uxg zK|9k5@^-$PF9h9|DkzQf_kT#v?*V$M^W8#(^xIRV!vKaZhXM%8U(u7(xZSNyn6W$6 zjFY01NGpikes!v2+-Ka5s#}1NyeCz1-vg?3RGXxMk(z>o~q%+y)@NQ|!Vs+IqNqZ}RePx_qYl zcFWt={Q#WPy>K9&Y1?Z1Q@R(9m+=utl71KCQTNc%aHQuc&h>jL((@k$4_kFOB;We< z5fGdNdKuV;2EmgRJ8#d=a721FN!)VKx7CW+{5aC`*M9YMM)gOa%IWZb1pLF@--jbQ zuy-fcXUptZ`N0VQdYE`}N_;T|!1%zJX-^m0 zid~l+IBb3Iei7?NOL`7QdUsndrm?IJ^-p`Mt3CBzaSKfL!2{2x(}XRPno?T&{`*!_ zLH9`L1*zKHLWQ>HQnj5L3xH2uphP-uEJou)pcUPPMGto^wK z3Qe!2YQhQ9@sqCoxho~5Ien$~niHSp`X4-zPr9b+ywBrg=y3OJn4Vk-IrQ%F`cL8M0CUgrl=t*8 zOnh)T?)29Pov7H`+-h~+-fbiLSQd0T6--9$Ydb6wqV2FqXkX%cA4iiXvDoLS(!Sga90x2hNMbMt?ecyYj3fQ z@ojk=W1C-a^JthFs$LfSo9sJyNB92U?K_iF1LIh93Vp|2HyN)3lT(HE-FMuTgtYTh zrKR>AHz`^B)AXG!Z^8@Y^~cpMh1+M5-t!@32A(D-svZTiOqJD?W?l9F6F+bF)IxNs zVXeZxAY+uaKlc=#AkB_8b+tA`8)FS^jj`yex|XTN#a)vSG8z*Cxa`j??XLvYt+oRQZOJ zlt&v@#Tr&eSH|L~H9U4S1Y(@ylaBgQw_JA{+S;#kta163+YwvW9&3oltc$9XmZjJa zN;|KzE$yhg2GyO+pt@4GB+*VGr@l`)^+`Fi+>vc=g$6V?MzL|!Tb2lSkN!Sp3VyObA8>RYLNxPR zS3*9=Uf$gwuT5@KtI7O!_V3{`?J1Phr!rnkc6Vr zZviO`L#^4KHL$Q8YUjcYY_bLy;I+x!&}6cP=H3dVb-A5zeTKbWpW6o4!|e5j-1Y{O zbymSf;B2;S${JCKs<)aF#4Z9kXJd@=NoPsmC4jAoqrVM>Ha^C`VBsR;v)6um4A`R+ z#GrrSqQxfDB3bqr@-L}g2E7U7nrwT_vBz9{%p+B$fjOYSsygqjgept%RAoy^6^SVe zJj7xuM#1YDIC3@|m)2eauB}=y8(h15A-L97W!Fv!e8`n1HDjeY^B3W9UNuyjGY{&_ zsfK9GSx{{<{Btg=HbFRY8%go`feBF4+JC`*xUveIV;}aDfN6m)7I5JRsO?`;wH%ML zmV*&XW-kXTmRzzN%viE?5ty;$l0{&~lBG2!6H04LmVe1q1FoJ1cjJ-?<4rakCzu>K zPBgi2oMiIgIN9V|!wN|0MS+Jw>EMjWN`MRNO-&wl@%|X9IRh{Zg)otrTZEpp;Jg9o zAA31}5H`~c4*lINP}f4si?>2|DO_u==#R7F!bWqYy)gEM%bN8H5S?y!S%2(Klv$8< z9u#EccGQ`yB}LfwP;N)P$y#c!bDbJjWmyxQ%ryn5Xb3eT8bAvGfd1uM4d;Gnm`wzp z0XJb1%tnqa8Ig`Y!sn)2=HztD$?2GL(=q3!W7el*)~91`NXOiej=4V_bALMKo9UQu zDyALreLh8H)a@sW4o}Mk)Xg1&(aHS9u2 z-wx;MV2Y5L`RZB7`WTsZD7OkiqcTgus(?L|$Jo%29Mt|8 z79~xy*(U%q*=S%kQf%9@XIkyAARWzcR9QR5pdG&H&Jz`{UxZ4Se7nQ&;4khp(|y** z{vFFvvYFw_ML+p>tb#8_AtfgtGw^Zrs6~K(qgnc>aslbjS zo2;x7U!Ha6j$KavY+oTdF|gwS;I}rKkv`jyz>cpu<>&b9gD0?Kuah6e`MWm_v#R0n zI@w=!8jNMcHFwjIOZnjQb}_+^>fUHUg|P8pv=us<_49ynabQOHjm5=ao)?^ zY-w&jwkR<*T$KpRdthw{ocm_N*i7{8?-Q=I%s(VNnTei!iyXOUlP!Ha;YXW&hq8BX zg6B4*u#@}34O0z3ZUdNbDAvk#`GPO>)=T>5tZ8cjr3>^leV z3Fx7r)~+>X-xT{S+|d|>CGjG(f|H$FL&mrJYp5HW5HFQYh&zw-9gU9B^;|JRLVUY_ zM@H9^(YrU<@HD!OjwOt?6`PV~*|5)Lxg80)?J(s>XUugwW4>GNg2ZiXD=ti^vAtjs z`Q~=V8H*EIEqO`8RZim)FKbC7{zyhlb{jFpZNvp`Bc{5InC3QOy4#2gl@WN@m-iREvKf~4-Y*5SQ7}H34JLLG&RLAqk?=s=7WQfn&U9x!38x# zu9{gaE6B3oy-jiYonvxxF3Jf&XUi@yIVB-fk&`DRPX$%E0EAc-0(lv}i%PO`N-}DS zrr8Zg>AW?(T`Jp-l~gNnh5oRY9LxTFxZ4<78x$stRF2n=xxcSH{* zuq5-s;IxuqV}?5L8QdxWRjY>O_^^@iF5cfaD!(``5G##x!~ftT!$;$M zX^gv2#$>E*m^FffwZYm~Dhq0gojOj@xw43bftqpf=S()Bp(4rU2mzaQ;IyC#nUw&- zL;i#OJUrpe27hodf(CzC2Q>Ib_zS>0GT9r{s!ks4s{+h2=#9;013@3WMRCnQwl6d% znEhI?pzFS1@cv+7XiG4-H<%Bn+_k}=|GZ-3&+up73CF;lnW33*&bR{(KL6O_pf5Bt z7{v0>h#&&%|7%4JdNr6G8W0Sw3vB^&(4_ud!R&j3g)ayD?+Fe;E8@WdJcX7AgI)fq zXsa*touCg4O)>1hR$9Sp;4QMMaBVPm5BO@#Y56KR;8@Ui-$dcE?>OGyW1Bj#%Qj|t zu)jT*2ZwhBN8#mir^)`2MZrAGmj`p3IZ)8>awkas!&n9}u_1HkfYk)0{>*!b6Fe() zaj-ZZ>^~!z+r_f{p=zgia2gSP3G5F7bD={~|M?W6I@z|AP8KW@5Y|)CrU?(?6!jTEZ>1?oPsq zAPonfdh~$Pw&S@(Xaeg(VYJde_6()?^Rx$VA7`lfo41GEmNGg%C~kEzbQJ9o-Qsjc zS{l#>uL}n64CY@E?026XCyQWI8n6~e$bml$o{6E2+x~}xWMNk@ACcw3emi)${1Ocq zp&OlUKqE#7?*be^;N;JQx)be1pu<1b=iE;5pf6DPY-lw!>;Dl`t_==(Hy8|6_)CjV z@*f1I!XJQ#YiCz;JQl5MY>dVm>N;a)$&&dCFJEjr>fo((7F-$&M;kg~b@7Nx8g1{@Rm0#RZcV>k9C3s z&b#_MMyumAXO;K%IJCxNdxV&m!&1`E2?$iS0-m7C>v^`84X4Yi1 zr3w$#hGc)SJ_-xyw7VWIp$kHgvh_@~lS%^fn_!2VUDN68s~U8enO!{#gBFGT);hcM9i`py z2G|XD;@gJt1J8CgZ-~L^lB(IumQ*b=5ZNh{(czc0wY8kIDeMoI$H?$#w2KAJcRHVY zN7soMMqm+cJT${*zqz(+O}lAWRo9^eLyttF?Ub;A4z{Il1a603SGaH~zSyNr- z`qqY39c`^`U7clJtzT?zZ7hq|)wjetp%5b2u)3_hqb&~m+HDqS+KgM`CK}~!r)=z-Fy-4Q$XAI%)7oj(E0XE&_KfHZ9GqFlxfM z2pwqIG92QZan>1e?U3hug5kb1Kyw;VHx@>-ODIxUQ3;#mi?xn#{gs<6Bqg8sK&=lbwrmE~^(w!b%I#`lqJDFt{>DDacT>4tN=?+iI8pyc zRDLF&xqK;F=h*&BD!1#$Tpkz~Wcxp)a=T2;1sT}v${6ao2mSS-LmU(oV27piC%$R5KOcSOGd~Sq1 z%4fNJUJp3R;re{;wRonfgfphFJsPtQ&M4u&SnCv|O=fAi7OtTk3NMU<4<~HJIz;YWV-cz~X@zoy4hXX;OyxI|oM-IE39vN^c}#bboJyNZw)cA^C#>ZBgyi_`mUU9jQIZo; zaxfb(cz2|xK zon~)#vgxWX3z7y1R7prqdr4PvUWikv6c7;C9M1LW@F~7fo=gP4XwnC~>NSJj=$sb2 zC-}*iy>vK><@Z-N2VcI@$)uOE6!OU?s4U0jB{|atuX@jKxxEyHbnSH)S!wnwb{DSX zq%@Go?gl17d@;fIPql&|-`Y~&`lC_%P6>-BtL;JnuT3nc}lQFIPCXt3k+-?P~Mje^KzI-kpknlWh&m>lDs< z9~5$=-iHM){rRfEaqhx?&cjXy3H>JhjL%0*8o$^BZx#3isK@f37WhPg|0m&S7G83@ zUKf1nALrv-oJ%?UAHf;ZAT$sX<1A++;dqk%87pwj)5xDfjM;>@N&Ev6M@_wu( zT(|2Q!I$moRD8Z4zoc+(*H?rb*{*-`;NKI5rwnfUkN!}z0-sL-vnRk{a3}`M|%I4!ddTILXOn?p$9($*IpoLKTi|5 zj8`4u9IqdfJ?#o-d#)F9q&+A zy*CRvvb|sR;D1B#rQRPaKF9qN*ZHhkt zD?<9F!r5=%6>`df$No9s!GA{ZrQQq@$ac;qy~PS=yGXd};qz6rbaDr@~q9JwlF**AG1SPYAx$ z`;p>vymI?vZ%G{whZ3&aJIaG!CiqhCM1fBLJ>1{wJ@7vXT*hlyku@_h4s*QDRXF?Y z0>ZWZvpo271z+0Vt@s?TTNTcF|5?b9@w(50|B&EIz3(bM$IB0&0b}BR%X$k4*X|3kMok8t)I^9KsP)H_M>+0U0KoaHPOa%6j# z3A_Sg&-dx~1umbPKlQ+KX+H+rCHuo9!gaeY6nxpP#fs1GxhoXT?OG$`$abyw;NK|t zQtuwc=l9(E70!BpDC9`J2L&$u`If-P3qMbQe@K7{{U-f9#{+Nhz`F%5@855G;BN?g zBIxG0e@wWJS0-(EqMg!j=Mm2Qo1h%ibcM6uE)#O3-p=YOz@@NcNL%eiJ$gCwciQ|$GA(qQw1*j$zml3_hm6%A^4La&-Zns z;Ny}Q<2MWb`2ydj_-GfV?|ASZR{UItZeI4_|3>lYacO)s;G;fiPl#~z8`@7&!%66LBCCb zKaMZf!Gz0Y)J1HbmgOvtKIKHO3kg0=^GuisET@z5V+D?K_`4k(yD%}I<}f4{Rx;AlU~S)uUPD8EYJD2Kn_X&1PZvsvMPruS^fWW1kg9^v*Y%o3RoDy>Qdz>QzmvW9O{6%a8q~p#hDTn5BZwXw=u|z22 zIR2jGgvc&DA;jO~6bf9*2`hX&7D5^;aFoN})_2Tyr)jd&^i zHIhH+_0fK*bS`o5MAOd%PRq;A4>UkIwwFSSbmt#O!x`ms+Y!fS5GK}JMwMnda1y8e zFdpZae+BX8EB;*KFH?9f?HgUCaQ;Mbg~ESBouXCY+X&yF@JWPkRru|MZ&Ub}sJ;KB z@E;QXErk!FxZJOB{+{q5g^#25KBjQ~&g~h6<9A?~UT{tc|35Tw*uOYy>=kHw^M{>GN^)x;m8`0tSXN`>=Jip*Ddl;o^XILp6I;mgRM z&JSE9?d0*NNAbVmG{@{zIRA6yyA;mv`#(|mvm~d4;=_LUhTG+&iCgIgbSld3=9H;hV^B|6SqJN$(2^KbP>A755_5^K*dh=kXz~1jWCc|K8N`K zn{dqHEy4e8pg#>1+^#L8w?yFw={_1mILqPpO8(A@<;*63u2FJ$-C&!-KSJXn-Jx(l z*?*tXdl9Xx9#Q-oN$*RF&+pN>^n#}CJX7Ip=M06jo%0mVc3w?*!avj@ZczNIsGr@W z_+OxPgGUsf?RiPzY|k-;vps)QcqR3dzYxxL^14SkItCK^hxN`=IP1Mi;jH&sg+EVm z;qRAN{>6mfrue_7xZgoI+sXgF>NkpiEA`J;6rb0HhUBDg*A#_wyQ&q=?W$Gyi;h^c zf^fEz|DD;bivJw7>+6co>tH`seD?n@70&kXcR|?fQuzBF`SWchpXH3A1!U&)eL7j; z%wM8#_D`L{*`DhZ&ij3931|QCI^=%EXL}x1INS3Jg|j`cDxB^4lft{{zWac1wujeO zD`)|T{lj|aE1dOSt#H=cqVRqcmrlZ2FLfVtm*TVDLkefTM-9p;$(k8-X8b#puTuCUl)qHr zhbTW+;m=ckk-~W$r&i%dDSxHHdA%m8aDMM-R5-__S>gTA;gDLLQ^F5Lgs&qUvowTR zBuqGB60cM^_uCZ;=lg53!nt4VRXC472Nlla*inV^xN4{!Y$uP;JYQp+pD(i&pPzS) z3g_qbO$z7v#y*Afe8!Y_u3rPc_yOm5hjU)VR~@mIy7G8zUEGv6*2U{gd3|T6Deq`= zGPV>i;eQ6v0%$q>n|| zm18mcLl;y9jN{q}!#^m4d_&usH8J>|kn&det&(#19Rm2R68P;B%EM1Dl*6x>w8Q_X zWj)D_t%^2v;BR&OwJ8h&(6u~{u)IpT&_7E^VPKlU?MIwKRwfYVqHw-*-cI|I_ObWWy*UFvSvByuTg^8e&k@f2>#O9 ze=v-t;1^|Z*rLh9G`LLXzrCv*&Ji*U{f9AP{g}seIsB#5Z_c*GhQ~!Gm#okE#c+{M zfBR~O@fHzLAL`cnk*1nxYb+xDN9nm`!8F_^z|!eo(c;v2nKoijKR!FO{x1TSPXGAv zPW?w!U^Vy49`#?R2N{WRgr(tj1D4MIsW&)PxIWsCuF&@5|La=Ygf)jw!XxaP(|eqg zOXYqY3exFcMf!J3z>var!lg|+r#t68YG7bn`HcH6>FQ6ea_Zy%AVen4 z^7&~f#A~g8;U!M3F|smo5#stk6W54yT1)jg&u6a3dED1Q7prb!)=~X16Y0$UWB5;S zfiiXdT~z;|QmE^{4RzDS&)n!}m`e3Aez^C@^)Zhroo>XJ&&DIHOVK9%HyaXGJN(ctlCU9J8u z1D$LV2(A1pr(L^T_7`g&QrZbd)>TNQY5iu-xbEC@`pukj_RJZxOBSBJF#FuI&poH_ zyg7aQa{`hp4gZr(jksj2hH0rJm{g+{Un=SrKWghH+X;VLr)kS?F**+Qo^|mqJ6Aj_eAMuk@9W$ z@HG7I{OcBj&!HH4_&kO@onycU#^7^V4E(AX_V!$gPPcNr(Q12T< z&iEL74#t2Fi2>gega7at<1LKAXM7C!aEu|EpC-lNKQ#uQuVTPYh{1;zqiFq}1$ol& zzw>Wa417wXqVc&k2L7Ef@E65^?}!1vG6w$*!0)1+piL}B0e@D0bS?0EIR}OMclbY= z{HFt-_>?;MXoVxkj4GTmwRq~Z8S}hTi^q%_HgnGGsbeNxH*>01SU7FgoY{r*ypxK( zg@pn&Dq_*hIdh7&c_r7C%%0&b^iG}UEu30h>;x4}nlUpHY3`(X^CBUlxD~P4>>1GaG}%fTw{M;c4@{#ZyY=(xrIv^kV93^7Ki? zTFGprTi0tvVpK&%GfU=8*Je$fHEYiNsf6sEGewi#&MBHQX_0_|V9wmBvo(k}ciN08 z8l;;vlLRd+MoTg8Z6>vQiy_bKNi!h~3UX+Lh4YKV__<`LTKbTZPMK5U)n;9fX@er> zdZ*LC3TKsgr!K^hCSMONPMV2=RycLx46oGGWB{Q<^jO3-R#>R^F-sB@BFmgC=Y7_s z86+W01VT^Y<0&k(dMlZ2*+b#vNwX(UovB?vW9H1c)3kZTlQ4mWg_9RfDlD3Tq0P8~ z?8%~YQb8V}S{tQgHrYVo?5PXAq}r*o=WEa&ji(6HJZ~zgADRNw8S~~$?mqzHVj4 zRq)Mlz;}-pd@>zyi;vp@Uvr}1qdVZ8mI*!u4)`{SKhXi7bCTdQ-2s2^R>5bk18(st zb->?}e3m=lZ{8;OR5;)kpH&X{^(PB?Ry*N-!Do#FZt!4?-YD$9dL_J zy#vl9ALfAXy-V+6*xcD=z&e`6N5w`|lBaQXFuLPnrY1jt)}rm*Ieacc0*s z>3~~&+z$Agl8^3yuX<4MDR96oJ`)}Ac4^Xn9Ps|M!N=cR2i)RQ>VS`we3m=ldmk5k zDjaZ&&ngFeo#eCH0ssAw-_M18(uDcfdc8e3%2?f1}{j=zv>%GhsONc5ZGfLDGh;F%8iLJK%pvc%=g#-$Ur9#sP0D;k6EUM+vWY zz!PQO#T@Wt32$`3J4$$y1D+z`+TSDXxtoM1JK(7jp5lO?DB-CNc$$Q#IpFCMp5cI> zF5#ID_!$zO?SS`{aJK{AU&3_<{9FkyaKO)(@QDuiPzj&zfDf1OxeoY6628y@zeK`I z9q`K~e7OVemi|@YfKQb0`yKF7318)auafZ94tS-6uW`WZC49XDuE~6&(g9DC@EQl) zE#b8e_(Tb>bHGa_yxsv{CE?5guaxjc2fSXwn;dXWu4kI#+%(Nv=Nxdigr_**6D2&= z0WX#CGzWZ@gl9P5l@gxmfY(cSwgYahyOncwYY)R5c2`tysGFzqJZnJ`%v; zbqc(Xf?uz|^AtE!;G-1yL@6iTr>1**)?cXtztjTax}0u=;*Vq$C0^Ak6gZB!!+-ZH za2(-;|5hn*y02~htybXtc?{XGMuC&=tiSaN+{$UFtx|#GfGPY}qrlsTp_*2!z&k4N zIt7k{ukc^J0`DA#Y8q4EE(PAGz^$`1YHm{C)}tPrY__du^*%zf0`IEuPf_6X9D((h zs=&KjKwQ%lcn<}hp}>z-;F$_MRe@(K@Z%J?TY(?1z;y+Ff&wp4;3q2Z@d}*oWm(5ZCDnyr%-6tH9F~_(BDKiUKcH;OhOI!Az}GAAGZc8G0zXrM*C=qhCujZDD)6%{Ag*-^ysrYUSK$2=I8)%63cOK) zXDRR|1>RqQYcgI@oEf0NlNIhy;KLR8{R(`90$-)Tbp^g!fsa(+YZUlJ3Vgi+zgU6)ulPR={7(b_ z)4=~U@IMXwPXqt=8u-z5@^89tU$Sl{?YJOL)5|Np@y)fmZ)@@v&a`>p)34PJr++0+_>$H^#?Y8T*K@0`$I&BO?FWGh45QZMN>$DLJ-EG%t0~os5 zu2Yg2Dz@vi5e!{t*J%S7y43J!yG|RT&@pzMHbS9zyG|RR(1G8>J=nK0} z8=lZ^yG|ROP|&W^1}F5AU8jvr=yAJF8=BDFcAYjdp_}bGZD2yhcAYjZq3i5AZCFB= z+jZKggf6t}v_T2=x9hYq3H7q;v>^!{W7laT5{kF$v;henI20bgo9bWKb=q)*cH4E@ zXoP}xoi-Sum+X2T)gQO(w9yFNZP#go5xO~CZ|>b=aGX};>IpiEH_g5KI_iP!$o934 z`ty$ZQ;zy0j`~VR{SHU{7Ds)lqdwnJpY5m@IqKIs>Q^}GmpJOf9rdA(`nisJUq}5k zNBv|+y@#XT*->xfs2@HrQvbg=>fbx+UpwlbIqDxc>Tf&h+a2|QqrTQrf8J4l%29vB zQD5n(-{Gj=;;1im)aN_uvmNy!NBvqy{R&6@5=VWwqdwG8Ki5(3>!_dRsGsbp_i)rZ zJL+v5^~2{n=HF5O-ckSBQUAssCTLic^ySTM$uRhhLz_vhpzEo$yQ8Kghi1c2{>^XUGh z-Eg-5 z1_s?FgXHFV5hpErikGE14}(@KIdiP;%Q-L*Mcw$y+fg@j+JKDx>$m1+HU-(v_M{Tv z#a#p1aQ{RfT7X6>j0GK%#S}>Y=KI8@n$5hGuAU~{#Q&&oK(1kxr};#A#}<{Cy##I` zX#`p$k?gtCW)Yy&k$~Mc+I*&0K+!gn&7>bT56ctqI^x0}2FLXTy~gh8rhSb77@JN+ z+Z5eQ>`h4nNt#u;y}TcQnqFO=NmqhbmuFi=f4LjQ4QT)ecpG||k4dlQa1Qa8Pb3tG zWuuHH6c2-PF}Z$Xtov6`Kf3=_VyFuu8e1dQZ{6TM>b_09V{iL#>Er;Vb5L>FdxTca z48NwC9_DL`FDYoqcuh!^9iE#z?mnQMVf14V$6KyVo3iSV{+D(N43hfH*MbYlh=>90RdpEMBBWahCJLu)KcZGJ( zyj^NHPStLA-Wm)@cAK?U{~AAPshKIC5qNIgRO3Iv<*ZTw&$m)A)2B4(O~IWaSxMwiqxv@2<$V= zoDno?tD1UNv2Jm}o4#mvX<8pZ^!tH59+J7%`bofi$-?CJuA3`J_DI(lWmJtcco6B2 zgjF}k)u%OUyWKRYyD5BA2UvoOJq_}p4FX5bXn-rqrk)TJ6v)cDK8=LYo5Lu(OsX40y| z@mGz+vkA|i^xNA4y%~!gkHm>;tO)VeU_c_jC6L9)KLtf#j^Of&G4fyL-oXqAq0qU!%rLJ?~q+wu!0iGn}@ zCYZfSwaK;mjNQia<;(S|Z`0y}#;&Sg6CUWZ%h*}@6{E`YoE~TI<>4Ym6(a^j>VQdWBrMK?}dDz!x)j zDu@DD`S|?5DHt`Eb4GQ7(L|fkC6bZE-zo3~qmMuoxI-{{Q8HQ!n7KlXl*eu316t`% z$B_%tKv(&lK)1Q4NbZu!OqKg$;!fxo?`X+=JYdiVSIfaV=!utFNlGSU(invjTc}jg z*%MqzL95TbZ*bL!q3%ag9Jp5qvt2Z>Hvo&O{4cn)K?{GS%IGO#v_ddiA{pH*7`0UX zF3CvZk5U<3LyT4mM(0RIg8+-7{AZ9!a^)k;DayY`a+gf@?^MRyj087upWyz1XkZ^x z(p$|{js{H2kuCYlzQnI}wVx%$kiAV;#aKvUJS4=pREjYMu&8Rko@*g!;rCP-^&>_P z3r1}uqYi?RRQuJoRbC|-N&F9XD2n;|W-xk0Fxn&ONSQZYdqnK`VtgWyk>u4mv3$Y#> zn{J28s>>In?Zrv}$q4SJE6G}2zRE7Hmc{Mm_i;Rb`5Ig!HylZjshY#v@Ue1xirjE~ z@jV6GI?4(pr-rF))DO_+{d!e>nr>`i7l>NBExPfMYc21NLh`-aYSEz$FfD+e1VUt| zcwxLv5$S6i(N`I_oUw8d3UFALbcmCD{E(;;ea`P3U+fOk5neGjsVL znBP(2+jB|A8fC`%(KrmuWs6zvPAz@NesyET(M;#PeMr+{9wVo7rmdi-F|jlqQV%C= zqiVI7jx(1+LD(*kg5pI3YYW&>O#F08av~>w8&`4AV))`#rKhST=m}dv>gj&bz#azd zC?@_eWxzD?^tO^cu3KeqlIbwDx6#xa_Mz0<8M3#2fU)Dh1Ft{f#NX~aYJ7X*t2|udU4bi+nbNmJ)hzQRZUcVrb`Mp`DJRfpr1wC}y4V zV#ln%!}S}q7``42cA(o(AkFW<6Q-8;*JwY1Y_J-ySu-J?jb4XWjiHctxG{)2JouXlH$O@1vOY*ZFJ)EhY4;Qs&}< z8=#%9gm!v}26h5qM=|S*4?t4*x)N3PaQy}?hTAHYp59-Cp1u}6{aZA!7XdqpSwBYh zq@4XdDtnR)C#XGLPd$Ajdb&{dGy*V6kXY2SzXv2YNz_T@b`mHV`wC+x9sxHq%dXmUTc;wuA`KjDK_`WdOIqMs;zoCI0p>U(bK7h08**kPQMDiv+&(M; zw^YIHdCBc%z-(%dltm&LD)j@v^zp&O`8Ls*I=gN;4KdkaWl7Ba#h`GT`XMmWP?yrk!KHh6dbOhVE zh9d_9l6DVH6vG*0XdY(!9Kp0wG_Y-e#kQS0T7^`RJM~?A7MMbeQCO}gu$iG7H+`?%%maGjlO|($Kg&S4jgk|!yvU>ZsV^} zz(LPKhab$L;SOBaD&lhjab>HBWdgCJRm2GbaZIa-{RQHHRuS6?#A8}Tte?$C{VSaK z$m&@q5bIh+yh9*9+A1PGZbkM*w_$Ns!8gbUW?>;xmTbCji^F2wC~4GvOPVzA1-LY7 z-fT&Sd$GIdD`;8(cZ$fGS?Q;6Ghb6&32sq)8clb{9DFQTD`~r)uo{y1y!-0oBKi;vReOE{rq(dZx8x^nY5UD-sIc2UX>LY6xkT1)K;88GL|YKplpa^>T8opbN@F{W zFQD4;T@c6T`6&*>uBFdyZcof|KulwHtUs&H*mhw?JiBZk6BVNRS!vJpg~ zQTGptCkoxD;x^Cj{YVZhwsjj#P~z{db)MgSO$pwC_-EN5+?4nB!avLUL6){qjJHEW zI%anu;$cHC6tbvr913Ssfu5W=g9>d?I1L5+NHKS8?wHYdxFUmYftFOFt2d#bN@(Ri zv6RFEoxF0x9$G>_fvU6+y4@n2cy>5S!9g;5_4J4oz7L3gb8!48(R-PU-F)wRC{`%4#%=+@zpny zsfDVcIkGp7`Iw4X4$Puz&tYhG5ikz>>f0iCSRwWF4~frMvemny z7d#p=!+5nK0<*{ne6C9267n6!Q845?T;yAF*tMWXm;?1xKPc$B{clK8MSOnv1IX#~ z{GNiQ--`x&>RmUViAHEnSv4p~)fhi4ANAAnv5m_;`*7dlr%IOSTFX}iqac|8zIqoo z>L#P0V=1j$czy}@Jl)B@rp^o8z-SbAAOPQ*;Ehd-`C3|+0B^W!lh-S4U0Kvs=SoN&!cq4#P}EwRCTuhG11aapaE zWa#Fo_2>fQ8C$0tak_CCg|vE95n^*wP)`l5O9GYYS)-e!rJSFqM!#uE4LwjX|6FRQ zE~WTLo2{c^H=VN^yBd@=VoJG6D-AA%0>)ZPy7jyV`Fu?sUAK;ejpEqZ->n>7(XJ}{ zRm6(Kcx2rE?q{J4c0-#Xye%sX0=Xdz@oiWXIP5fHY`)5Pj?WJ;BJkUD_}eY;1$=D` zIA2a8_z3>Dw7_pi{2TrrDZBt)9SP(kY8Vj-1j9$5(>OpAf={=N>QXyH9-N5xM z$`*s;-7HqRp%1BEZw=#GzHE%rT8NIX;^%e+^X^XlbFy*Zr-65r-58UN%J!; z!08nYy(=1eRW$UhXgIN=;kb&19u*B;D;iQN8ah=pw6ADrThWkMfhCE%R;QBA5Jfts zu$NY2Hwcu+DwEi{T5jCyl{L=VeepG`BX`_wq$Y&dJ?&|~*p26-SkI`fqt&*FwM9!916lkjB$sZwvAz&>AC)=})D5|WfPGzrI2Va7Ar5UPF9-21 z+$*CEfbc@>GUGFqEhdu-?1SwV<7E(h%G+d)L6rzE|p-4clPlX;3NNyGBd9>wc!SZuOACj zh<@?{Nb6Oku?o_3Lb_8RJ)k0GDoDc!>2Ct*1{JA;f^;$=c?gM&EbM3nD*nfB0_T(# zIOnQ3>j>u$5tbD`C#pF25YCyobi$#%W#qVC zQgIRphf>8zocmOqy>9@gH{tk`47Fi9HFT83GUkO1Z3h-8Zm!%2#;SC85Z!weHo2Kc z8qZx3bf>9wR}kGpBHVUY8*-?@CmNE}hIBME%!1ra&!RUg=5{9NI6xazXwyy}OZ`co zsn9P7dM0ppsn9nG+8xlXDs(NN6_LR_lgCn{q#ipD>={PY>eZem2&y%V#^9Uu!JfK# znega(UW*IzX^1#HTcUd380xnh`kkdhhXShmJWZ7F5zE@*CnChSX)S*WsJ+3byqwy^tkcfe6m>e~3AgORR-+oG z%}t5Y@ z3C%3m_+>>hC*lu8p=~^BCP(x&bt>s6w9g-}w~}RXPM4(${80@|Y&)5lc%q$Dfm0be zj-;nmdqMT}80{WzeY8%uSE(NYHOJtZXs0&a#GAwu^5&>|y-y9T(u3bZt5uyj3&anA#U8zByXV8W&_6f{(7C2xM)%0LW(Lpr@0ZJO|~sIzn^~Sh}QHD```@|YnV&_Vw1I^5@`JBC9dIW%8fZyj1C&k4`Up$i>@?S zaioBxQsc*$%5fGQN&h_pxN6 zXrOb`SOP?1(zz)h1!=fSy-I{i!Kw=(*t07$3}tnt^97j`ucupqh!ypGakz(KyB#Iz z45!XMT%`uZPks9eXpJ^Xwjvm=pAz|YFjl%+=zu1!2II`e82M_4awf|4X40F7&`O8l zg;e0v#muC&9J*l&k@mrP$=F8UlC4RuTeDzZre~|N)VQCt?eQFxEqmlkczpo#jtQz} zZL!>yRl3UXD?bos?0N`P4^-FMWHV_bI>R}w(cNvy^6qc=cx%U$&~9!vA{z*^qDL}` z6}g6FB~k^-bpH7S?~kt*?CMIoZR)!74q<&YLWkT#ZnQbq2dwnzI>~vG&6$K02a33i z#s4DhqH`pF_rYpsdp9AU?!E+)BYRIO!8L@3EJ#9V-cuLud00(9ixz*9uSRE<)BfAuvqQ%L_UNK zzltHege!7Tf073UA>t(}_S+lrq6b-sxMk!|I*H>|v+iJ1oiqnE`fH$j333dHRF6ET ztUzl-+C2hn6({lSbE}(2qbA?*;Qvu@k@t9vb(OWF0~#J)X{D~yN*t*}Xg{VL-N=O7 zFE{7pzTDm$MVorg6mDzcZ6X#w2{sY2`0B@O+b=-bvVGcV6r_R@{#{XuF^A}v151~@ zhnxdY@EltyB5?~ux;4-Wia3AaZ}e1#t?FrnJiHHh3|QBJzET)R4U7Y|7QK8X3={Fn zW3!kdSRi?@Sisy;%GBtOA8(7W&3 z(w3YD4pV47a#=s(}=7y zqu&UXw^OkF9k(jOO`9bbli%6peqx=rZbcfdn;mINS7S$WgKKS*EG}}bZIs1@bc>u= z;}M3-a*bbejYclSL+B(@h!X0_w>8BUr)BM+oNmD3 zkH&OXkskoE&$AKFeQoUQx?>Vn#R`l+A^;8tiZXpidM8@8(W6LU!rz&W`g-4T_=>S< zF_t$qKj5$T`2f`LT=jCglD4YLE9~O^b}`CJf7Rt>vb`abJ^C7ECH%JDU82?w+wP#r z(RBH$o{!h?^e@qNo?or|qr5V>doAXW!)eI?N&z$#`O4r6gd$!UWT%SWjPgqGWZkKT zr-;<|v#WkfFsiD4?b&B1-qij)vCpnPHS}Pv!QX%ruSodyIAiB}{z|v&g&=lHX;m!2 z2-5r9L8At5bn|!E*g9Ck16AL4kE`w7+!o)55MPI&jumyBCC4n^Ml}62SUC*gz}Wye zRPhFzKvs6YZt#~aO+US?f-^swgb3Q-v9hy%QRSdhEz{56Kr-b!X386oTR^CrTuVG_ z7B3ajA}C%r^83jQbpHynik7bzCh~V(xP5>NM;*jP#TPAx@_9-c`XHtYG3BulT8 zFlSz(ymx&n#|m0R?F5lX+7^H^aDm{~_z%HtG+;=3cZk!7OYO&n+e=0gzf#}}M)WIt z0k>fEv}Dv?Fscy=SlJe|+RVP=NI{Ecp33a=;b4|4m|Z2AZ32v~h8g~K#&!|7w`y!- zUV~h4lB9e&04e874{+@XZKOfiR*murqySE%)DJ#P1{m8KXM>16_G&aik8F(tLHJ)- z!>cKUpHLl=T!GI*XQ4k5Wh4L`(;{>CtCUZ0~yHYTFQ#7!CfU)CW`75n)%kN@aVPvJ0Q5 ziBR9tqpuVkA&oH+qW)y=LSH+8&>C`=|ExiG;oRkYQIoj~q1m|$)sVZ;C06dz1G0RVQd}*bv5m-F!pcDA!bcp=TzF0WjKWg9 z&FteyVMV;b9uu4$S<#WbZ6LiCeZ*{pGErnBG`TIak@?>ODpRGFFWYa#`^DlNd^-KS z_x)PpF{l=q3KmIPEbqNrc;Z21E|7vJSu#^m>^|!r!U|eMg@R~3*$sOOlmR3l#BI3b z_AkI<+x-NN6|{)DsN9x;l3nyHq-w?SEl1qEQVw-285CTC=pL#mmnWGGQ^?Ude`~rS%EaiJAP=FYLj6KCaTP z&1eQThtFQnqWh#DP76;q8*){z1_U>`KW+A{VM$-U3D7Bf(|3QmrZ5b%pMNj?32DS(t2m|AX{?QH=t{@brfmM;^hYjpyQTs0pY|!^dGO*F$ z|7WAwH{Z2xW5dKt(h)XhN3)Xy2gPJA!hJJ}IiH*t%_NrIE+$bT=L=+ESQ|hQXcAlo zNG>Y@i)|7WlA9ztd>ijtaGMEAcHWbJu}Ku617Q;FxZqJ@&M-o8n#A*Dt6`H^C2IeL zNu0LtNG9P1{|J+4E#`dK(7HVg_#8Nn)y0}AV#1gA~R5K*J z*CakHG2jV4PI?Y*d-*|N;lmP5birTfPTW4KF8|%C&P3JZt%EtxRdzWbtdh*|e!MQ) z?7AoDTDw~}#Pf8fxE%aQM?P(oC!-5?FX6UG;ycI#$Qe5|7tRf9jG#Ulw^qwjh-4B- zFuli7X1+{j=Ba2vh^Ka}2)xFR>e2`h?GqypJ;pI5~#BS z!-Qd1+#(G7$Ntt>l+PrPU?t=1jP2`N2{~xdjuEuN&VyhO$P-KlOQw%-res$NQ<_Zm zyB$|@`wm*P^ij^Rxz8e|9>Mf$(ZEIm2Bl@w;0JTvsoVxgZj$Ilm0M5ZHe7JKUvfK? zMcnAI+wixEm9KzwlH4TGWR=@4PzJ=KsYw?}ZqEVM(C0OBD&3z%- z@NwJ19+Fgq&w$*DhZlX^@c<+51Z)am6e}Wbko0~e;s!~p-aqhBC`-8J_VQ*hhP#sy zk)WYG?)`~Y^%U;?)H=AFfUdH(u`QDEy1Pp&;hbFScH+Fb1i4hzA zwHNWs3IOwkBiwm28EG{;(ASdI>8nZr_{t|NTGEadv?2ghfk9w_V0yk}`Y>lIG!*`D z56!3Qvg6AHQ%QUHCN7Z7e~2k<{^3qvi3X+v7Taa}OKy^Ajmqt0;2geed;}wsh8gLP<Gv9iDh4|$Fx`qUyBzG+X1c_!(o@*e*}jWZXb~Z)8S7z5&qK-yRnXxVeK6_`>4+P zuCTOQZxojH?dg{MM{w3p7ZWnRJt}A~7PP_uUju^xf7#rh)L$}P0a%2y2A$4I-*Y97 zlJM6XxHN*}G~)Qa=&D{cuwk5IENAV`{V8Y>J*#p%j<|gwxZN$e{d^k97t2}OO4%gQ zH7d6^KpFT@aLbe2o(9Zz)?cNrBvMb6+7HYY&iZOJXB}|QpL5n>_hR;~j5h&M0Lv#W z*|1J6^n5)0^M@6{I0~P$RzaTGZUj-wHHRF4Jr=bormr5jo6IvxuDXXBqWNki8f;(X zUI>R2UYCqvRr5_KEsgdf8TMR$q!ad4vDc~Q-bNZh1Lqg9M3UB8ERjb_FE4tZ4~cW~ z^CgmFNAbEd0&$oE-JjHDA-8kpO(!Aj@X~TM``aSI3|fSB3pk;0kl~;X#0!p_MFZ=_ zIYv0hD0{Vigj?~xH6g>#4n zN!UL~TDnGT`@b`6ERk!~9%_hc|7fu7pZdh}`=xe>=McVo`~#atv5G%4_1XL0n!JZS=Sz=r)Na5YMwh*@RL6`;NSKJ)KajqkYb)VF-Ko4w!5BXn&iiSx5VXL_5Rqy=wySThdf0 z-9-O(p8tAvxfca=tA)5@-#B zaJQUFkk!7e&H?Ie^)>JEyAA|zF@`|ov#0z^oKt|0=t%~#-GeuR@vzWx4}KxiPlkir z=wwGYou#>u`lj=hoi&__EDGU;Uj}m?C3%5sg(D>Xo!dB@b`q4ef^sp(Ffl)Vj3%2~9(68+_hwyk3`LAU8BCkrf=?T7pLeba#qJbSc5z+o@ zSioOC8I!DI(dpdZgO((nRS_3MoTHkwL%aUmq`d(A@TBdCqls&6#!~4maYIa%bH?PS zL@u8rX6)4yV$T@8HF%^M8_9VD1CnL)Y|c`|?^)m*xL(ZI*P?-q1dN?y{(m`RUl$9b zl9F7lin#OmqnxpkwSR8L{&+{7F%2^o*V>E~;T`noGv*G=7g}63OUzgT#E#`-Lme}w zW_u5E`k=+`GQm#F*5>0dTMI-#*|MJp0kggHE$-n#3#qG0eG@Q!JVfH$f}9^;W7~n( zW*j#PlUT+r7-hsGC|K8Go+iq}Lo8;Lms2oCkx~gNZs!>i7M@%HaJf)ihEel&{$YLq zJpwpf07rj}3$tOJMx+C{-BU*ayKcE>4~&U4f`Cm&3kcXe zYZR<0U>~=I85z3$qstY zXt>degl%N7maGy5D`8B<;1}Ru;KS!>{wDgk1hDO%J&0a)6upip{#C)2;-6z%;_EW% z$Q}&QgXsET4|FF#@`8arE(Tg8h1h}CXan7Rgn^zUdy}kAP@C(rHO7|xnC;M0om^~@CNNS1n({x4F>wp=N^CCR-ik9=XyIIY75gHmH@BgD8 zPR;@EsNR>3hOqa!Vd$OEDP}H{yH<=JPF}Z}&s;X)MEgOHO+r`SP2*}{1>G|{Uxz%^Y!uxFL zU#H!@;2l-F+tCoAT?`3PE)R-pdlY)UG;m}+Q;>v)%8P`a*)h@dd=(E)_~|QwJYFCR zJ#Pm^V7F+vKyrB;u-JOuC%H+Y_A0l9pk%|A{dIa?0Nzpcd@ULx^i0}4dOd%$@yL4q zN@(b$sY1`CU83pv0FMm#*&%`4IE5n%Jzoooz}KSTL(#y_2Q0Rp%XmNyT11bl+)_Zv zK3;P4dOjWYM%hCKUCHk3d(-^W1ma1f8B1*~L_5a$6+K4Pemxo@v`;tCt?p7#4B!7Q zfBEWN7;ejQ_?Yu`S<*o39l2Ze}3ze2l=DKFzxOiv89#18VxT2BqtDJ(w*0dK_BRR zBuV>8NhQ%$f=GUQylv zG&&Gs#jnw@#Br8fL@>B+VsI}_5=h;TIJnFCIvcczmIxv-xCSg_Z0!yI)!^Dj3~qb* zc`z)feg$14AL9~>8bs{6QlZMq8QZ$kS(@xE#_-iFd&JZ7DQrH-DyLiM}i3!xfTG03|yuQu3Sj)j~#N(-7#>A%E0BvjF76*kpvEc#=X9CL&n07+Kin zCLz#^Oa!KOt{B<~AtigJ!;yye6A!>ai|812Xr-WJ7cX>7N*e$6hd=2Gxvt)jNZOz; zXbimXWfbvbSnMC}ISKcLfH=QZ#GkOz0dZ`rh;InQb6Q1wTp)IB6>*V3Jn&L$gDDV* zyIMs&T_CP$74dKzKI%JLMSNc%&TbX)-vV(|tB5{3R|&)cts-U##4lcKO^?X} zv8q+Xy>Jg0#i~{j*9ydCts?pb;)JDKsi?T} z>U858jkzc(I3x?4}41?*$ne4dY=H>&glumyyf>`J{U-x^{Q?QiN zh^zC`Nf8?R53q_{88t<&{gp+oel@O}#V4uIt`B0ave6K(G+T3((>FMa`nr0S5g8(Q zj*earxVq%0C$s1O&bvYp9f7^q9qudK(G9$#{ktI&@X%GT_;}qE-FQ=|i?V}Y?CM!c z{2@}6Wc~wmDTwfI_bnLV0o`?0B`UoiL4`2!|DGb(m|&5sZ@q2|OP)V~PypV~(Ux(v zvAX~~1B1+{JKzfLX#;{!4!Ew~LVzOI6(6De#sSxrovxHURDn|pOTY?_LMr z><3ZEWK0w?*j`b{W*>-xo5qzI{=jR=nV97a-KgVpEc6HIJJn6W!P(0=fOPeQBCo6o zwZ-ztUV<)*xV`3%fwBEDnw4^{TlDhpyqA-G`OjX7w2+O2UUcJoOz22sD|>w&)v9Tt zdxIZ4leg|glECQqS+WR~tqdcTe3ox~!#c$~q?aSO`|M+Cn zz{+RPJLPM-d83IX}Jp7gw2y$;}-z()fwSrW*%Gvp6sy zVfJ8{_${77-CW{k`%q~ZV2i}gt>Tfi@5w?Gq|KjaKqc@i&vsqvQ*^a}AWmNcn!Zo3%kw{2B z)~GH2h(7*i?}FTMxmVE7CPnl!k^)mIX~uXz*Lc%oRC|oKSw?$J%UeFN8#+y;kD?hF zdB(!zJY#OhJY#x_=#hRyDfimk!q5p^79LM%It3KAE&Vl`JTwizQ&4;tGviGck zt!bxeBhAI>X}U2TA#Qs$Ii$wF|BHC(J&Pl<+awkYd%TTBeTQ5ST{kbKl z%y54QHL!1RQTjVxVr7T>BP`zEqiBlK-&pwn?x?Yoq7R}=UV8F8e0WRsRaf~Ta3z1` z&I*tJ1EKDkt0B*hnN}R)L2iq8aLXXKVirZyh#&`#;X!VTw*wDycY}XX1w}0x-@44T z_)>iP&qO7@1yCVO{IA3}k2AhK%F&KCzAchHAijB0LVqanXBx$y{xk#`e{zlYgq^}X zvESC%&v2|f<7-4A_BRxDVV8Y+cq)*Yx*ExzOq4Pi@=Si-|H|^tJqx5x5 z*KmNUmKnOsH_Flr(x{tvb>ppkh!dc#^)mq_L_z^-Cvfj zog#mlCBPvD0xPVCS~7uAotTb)HLP`snYdD03R?t4()xcH?AVvnc{M(D=_#)sH`sBMP9pmKonI43)D9y4vy+jCZ-#O;_EQoe z4NIlDKK+aH4Wg+YMj?ipkpWjB?3h;l0PlfJ-&m5D+oyHOM}Sg|N%vl*h`W)rDE`QLP! z@cnEJukUA+|I-*~*GusmWNHKuAC~IZJQ#NONfl3y@V{Li3G-_Tmt# zgTF`2pE)ksyf8W8!bF+xnj?};a$n2~%`XLU&XJlq_5%Ejp>!RMhpS_ zC*90h_c&B=H-z#S^|}!fvDwU71u(wM`1}~YECjh@eXbiH$=F?%-UxOeUkE%zehR8` zHONa(i(CV~nu5o)25ShLF!c3PQCXbOe7^StWYOn?T6~p%E>t0w*K^Sq+XWgko83VD znmJv8COht)4vFwFYOGafqp@LwVo_udWPj{sGC8yPZmNPJ!32Lyft;ZF+V^Awfc1s~W<4uLqNn@Q)7r&0pLaU~pQSTebYTw*3f z+AHPPbF6%VHWlWvFk$4^DT9LZ&ei=CR}Sk{UnEds|18O64omS3>lo)thy!Evh>kMI z^>}VpN`SaZV_2f@KW7_N*lFn7>?(S%Zg>vsgz68}|FnqyUFJB^|E_s`&0!sVRdGfK zd>*>UHG3z%;aTLGTUB4=`d}F3I_pD6zq^gm)bIPe-{+ws6N@n|tkn&#QoqXFP#om` zI!I(p?4tkHh4_W;4vuN z|2UyPI{!d6Z~=)7tMi^Kr8dWP%&Hs|Tzr~tj;43o%pt+%_swCPWk~6w|Oa8O7?@Q79*X;5C)$U^me14=74yEs+Kg+aCn^I;bluvMZx$D1(+I` ze%@s=;5~+bM^?uw4ncD?0yC%gD!?#oH|s#^G;=xYUFLA1RBAR8xmJ!v5juMK}gE(Edt z5FZ}<5H9fdPk)QHejq+aL^T){8-VBmVe+YOBQc!>8h~icLkL?*TPljgpB54pLb-iN zaWW<&6+;p04_F*WEXtcps@MxKZ+1Kcw*xlWE3FUC{*A@y@Ti=(9^tg!4BbB_Ju!e) zTVu!Z&LjFfUiRrG{ryYOl)T9}rB|{v>R3lGChyI)umtc6AG$?=0 z9VqjiDSa<_0aaXijaijh-?6=Es2Dt~ZpCQID;M^{Ns)ixOrk!98{}Y|+OcWG2-}Kd zuzuj@Bdo(up2wMk+3IW1TupPylSy$hs>qi+CYPTlm?ypc5Q*}!tBilu154jYWN)}8 zkquzkpk#L{44rv@M}sft-yqOjWhayE`*QB!wQ}+DbIu~v82`2bzID$TgZM%sKJOP0 zo1-%zyQln1`~pV#ZdV!IJTiwRVh9%-o<#hfKqgkD3=*1tbbJif6om7=NDz~;x?l%P zYZkRu597HX>rXRBhrV;Pbzp~_aS+v37(V{fM;4W z{@7>eAA@j?1O4#RTj%ek7jFG?R!sbnVl-i8v>g^X1wQ${j`EGq10NI(fE zUEn+?a7sS0#&E~Qd<;`bqWYh0N#_grD1z4zTuOSafK$}O*q%p=J$Kgn8@d$+EcM9m z1?a|yx^Vz$l1Q*3=O(#uP zyMISF5PBYhMq)ba4qclaj2c%BRE3{q>6T6-%2U_T^D%!&17!fQ=5JF+@M(CMYjTj7 zs1A^uYjQn>;X?-y1lC@u&X-gEq0z*@giQhw#D{?U+0Ph%3-R$Qg-8J){Wt^(hqOIZ zX%T-mk>NGG!pI>tp-0<4tHDtEg{(1ERmp+pEhGtRu%SG1GTA<=jt z(OxVI>>|jc4o0F36ezb7%IP#1TFWuWlLXv@3u0y`8jL*}dEP8;jL_R-6-0zwG8qcT zT}w61EK6UGMmP?3+I*2^6JgdkA;6OFT7C)lt(E$ zu4Wx9IPUjr`k*@3&A(CsI!ep>g>{1Ql8QlC{vzP{{we8c`Tnze-zyIAHjNhtcuC}Y z)K9+YO-~lf2olZIeB%eW0h`a!4$^9J<~Tu-z^~u1Gp_*Upa!g#gwOKFplXV-g>!OO z`2!@=OGx>yikA7JWj8LErXr=~YSHqLXvs$lYYQDJ`5*UHe*QI@26JO7 zn=c9(Y!(%0vpNL@YdsF%3LCBaPbwhxzJ23q)>HYZTtu|fAx-Lj&P1Nh(NSZyI|G_Q zQkF@+Rqf{47N8>evJUga=^blFG9VAZnO4{ek_60EJ`-7;ZYIsb-5K3Kgz}a3S{ll( zye75^W98}HHn#2ZmOQEi%vGK$c=X{s&QW=k0>3J}~%<>&2`5t3P zdc!|N{LRHtULr!=IFdY@J$D&?j1|vFhV5&lZ*h7C-&AF~%4jKOw-E~50VtSCao#;2 zuv~fqfTm|83beXt4J(WAG+kbLcCK$odOYu*^pN5zdmgQVatJ6rFa<2z_=jDCA&vx2 zatJr!&;t#fr4n~DF`c~oRZtR7U2&c`QipHrczNz?-x4KL1KU(=)lR~B{4ebLpT(@i zZ3)o}qMSc<`!)AUl&J3v>Wd~KG30^}LQf=ZD!ZdVNSh|4eF0=dks6{GOohMt&(T7^ zAlVJ)@k6xG>&DBFguMf9Fv;w~hS<$p~}|KxU`$?`PxBZ!<=tD5?@#JW%SUw;rlUElGC;ksLzgr+kH3m;+B}95ncoBa${(Ik z;xd?dj2}2Z$*haYEO!iNmphg{L*zJmXn59&hrZ^{-onwwAz!o0+Y^WPw38ax^)Afl zZgD((EZ*%3V0)@Hz;p**iB$nDE|TsKFbh!0%((#s>@AoRTaFPMpG`2TLjhEUy_z{! zp`A0SPP!CD8hGdtv>U%}zyy+k4Z1)Y(Qp*lb&TwX(mwUOicAK_$H3$QOH1?_rrNm z?B;b<)8`}*lEQwO;~NU@`=AjlVaQ2`WwICYc_ouQMFkvVJc4UzIC(3bH$r7?Km)2<@JVA#Vlg$O$q{$R0^2CVMZhTfH-Q~!nf80nob4hl{ z@{#WE)R($47iO{vZd(BNFbV9E>ZGMgZOPEX|%>a(wB+ zxH%==N*BiCs~*sT_kI{j84B{2L&NfLoi%&~LRwAWLYs++KPUAzFno8EH4Uz^%^+k! ziRcF6NJ!O{Qu=Yv}@Gc|hEuNUYCzt^jN zYpWaY>wVrLM5rj-fKj^jGohFnmF^2&8b|E2EAFkhZKMFK6`HFDZUkYT+4TrbMXotC z<@89}7Vj*&ZwIUsxj`7$r_%Iii|Ln9pRWs76Q2bBqk3~u%4R=&MiM8$vQLDqhEBk= z7gbazkmEoJV~1eO0rF*7N{C)3WsMixhVk8Cj@1QNFpM71jqpRVTysP=W+Dk;*G;Jp zo+ilYOxz}3MBIWjO-Yz0Z&xxhnoevetoh+H_f6>y@!EPmbDuYSq*$EDr;P>K;4S8p z`crPpkHmu=qw|b6kZLpH4Qs>%V1UOIyQjcyUpt0(hjSN(bh-_U;Ya;hwB^H=;74EK zvbi%*@{P0ika?w(F8tkB7$hVMQ~L+rNDzPbpTHBivrq#g5hfe)vMidamOE*lCWya# znxJ_AHKO4GbR%eT&86Apc!Z(84LW}P3(RB>7?FV|~1W>$$sgYY3Jf=1Vq}<+(@2UG&yOa1!@L)nS`}Io_4J!;^ zEJk95tp;JJ=(STSY}%3DT;nWA~|Q@99Hv`!lzaxE26 zL#k}R(;xfUT;5PJN?6P8dayK?q>VJk!ZF2&km>qI6&X#%X`TjWFRpFpM) za<^{@p5{3pkKfQJdLpS8^1TX)MX7_3y(|ym0*{suS{>eq44uO>LS(tKuz>Doi9}#r zosJ}Rar(r3V_TMQrd4B+OO6O*BUyulMYF1bnvdI8NoXmEVS zJMp2DTyr=@mW#2M@J^(iMfohS$TL2-(Pq-VkW3Kj{Tai}^=*yw44&F?@vFKCrqo>s z-G{sopU;;+r}#W5V5^$yK%zI;k#87a>MGLP1Yv(RP)tt4NKzF+au@A3kPX z76&P)!)Cy%szuvET?(_Bt5HdhSZk8blNGuTi3MSy6EoS@Up9uH%^wnsL zy(oRC_j!k~?k6l|T@qu}&lF>iT%F#Dt7dOu>X4jVfpLoXZzS!;Zm&A&P5euL%)}}~ zH;?Y+#~ToDC&VLVorq}kW3Fq?I6O1GzcOnFkj#x7iICTTmQ*dS_oi18uM1#wL|UB$ zDgFQE^CR<{EPPG;d&GgOM<5l$ect^RGj=}o$MZt8-hnbkN%J}qDn<88T^_v7-_6)* zypd~`r1-vA=IW8``_D38FpeI@aM%7;w%c{*FCZxYc=?$0Wx1|&R>soS--8EcF;@01VofHRj>e+7eftwj;*yccGL3h>~-3t^kou*_9<9n1g=`PJ#} zJY!-vSC{c=)Kf=5tA0&}os_?Z)iF1_##O!xFb^8bXzM~LQZ>(RDav#DTwk~kdM!F~E&$*dU-y<^EyNmLr_O$A{$}-U*&qqW1uzrd8 z9Q2v1EFQkX;TZK?_ARCyBbf_o8cf+g;AI%c6dK1=jALqAwMT=XkaS5Vje|dT&t<&; zo$|d6>kX?gJ3WgVI3tZ<`3_gv?Sf0v5F~T1E}Fi6>cY7*ile+Z`5=#tuCkw-hyr<$81L7pit$1}*Ae|I zl3vx%S&)$*g@tm^p};38B+qrYmn{=6H>|}~UV@NF(?t{22?pY3L%|g$;pR%R`dN-7EC9wLvGpFr6iPbO(ql!QM6Du9&<}k#PJCA;YA-Gx%vFK zVeT*dK&whn3MKGbE^p6)mt5Ygv$)(sBv=C9pX2KfeLM-SeA65{h$9<8Oa~|gAJCi#*spv znY73USAf~#tc;sjc+_8B5FYhwjU=ikGxRfNX#-6fR_mNBy5vm41^H^xN7np>T?yx* zKo8MBv@XzHPbB5+A@URCu(^2Vh_clJS_KQ_++e;QCca`v&DKB$Y^8C+At%|3WgRE;^&*CKWTAVqj?f?Q z30ie1SsG8v=)`=iecAaY)?aM8IwLE{U|X=|4E2QFLo0JLF$2M&C_}Y9C?a&>d3cBL z2)u7_!*AHSp#!u4eSX)E>vJtADgVcUwBak!@~&u^C0c&3!z#IF!^sr6ka(euALAsQ ziyrIIwjo8#&%=W1B*4LMJGG>W7N2MtCR+ZD7B&qdmG;T=f8z%ao(I^GwL9yVPy>RV zvSSeKJ9vBOoyaztXKEkK+F+KAEqH#QlR5C1oA@d^557hlbcL6N&+i$jn+fb;@wi~~ z(qXtq;h&kF2)nk{qc>sKd_AIbM}vNu0$(62{WWfBXQ)~pFr=cZ(yyDnIOz9&ht)J0 z^@#nAc&!5GOgHVL)RcBLNP_;LN)hb17)2fJyiqkz4qE`uYEoHoKr@Fl@$aof9H zL6{xQ()$AnrgUwtEZSePXSD^x?h-tEbF(DP7yHV&Dga-!2b;^`5o*N<8w#C5cbf3; zK@)&g)2L15BT%F_b!=>(Z~4pn4~X?TF<%>Pms>8A(Ll+p^SabCT@}+%&}#pRb5~5s zuB&qjc6n1vb}h^-*)_+5EpS+B4%EQyewj_)m-t%%T9LzJOSDM}n}D(7YR|OcK<6*M z3J-*g>&Rcybu+cva@7$11ET#Uix#b|ffq3B#N}tBHSGv;f;IHQ6YoFHeh9gsT_+OK zpCph}Z~{sH2$A3aMx?zYf7><#w~F=spdiW>;3YkXeb)vjG|v$=nAO`Fkdc(G*5hFSMN+b^gPo%U;CU@nO=}e*R(7 zHTtlA7;`0!IZv%Fdbx2OXAd9+@@vte0eumTG0-;&H1bay-ap1tB%a^lr)qXJ!RXL zXcs;f-uJ07+&e@4KO!;NKZAa{2upw%|ETSz)8>Nn>|S+`K>8akcR@$ThMD-aY`B~{q)T@t{(dtAw7nx5N|Mkw8KSyYh-Rx3$bS#sA*}x)%zh)@A1KUD^G6+Aq)38s$t zJKaRbvhiSum3I+wKNxy+O_W+9E*|uIM>GE#HFBa`ed=%tjysjD@|%fIymjO62F>Et z!D7pa;(vDHO%^Z>b;CtJKbuli_j6i5EFRT?PW1OvNeSbvqb+1M+&WUV4g)=D@8Y&U zj{CR-H&n4w_Rp>z(7)@oQ`F>k+D*Eb5~iy1oV z(+6EgreJ76uNg)CQiWa#2HM?%brI}ugJ#9MCXS%?U_~4VCM{)4fA(lBn3aIZB*38g z+4D%p9Q7_lp>*P-qQ)TV`R!`L7FvSe8g7Bs_fPq_p=9=u%*;Ed`})%am6*3o#q zx@`jZzXGW!;*+cr7Uy}Zr z49Y)bN)vU;@lD2HzZ^1%njkB#0qo4KIE|1MUyb^o%oN$Fa)R_V-t2T( zOf0ZYch-ZNLG|ybU0%D@HFaiZt+YaFEhW2L zKdr>Ip*vX(2i#>XYI~1-kVnEFgfPJC+CC1>>;S*)0K0C3^rE(N)I6;YFFglikhd1x zD((sja~06&4f6R)+LhqfoK=|{uzE#(uN0FD56N9`~9){8W>?Iyy@fM9VNT6ez%rxvi&9a z7}aUykY@DZs=e+*>_=AFESZw=D40byPrty~#B^#5tQgMSf^hDB1+~t;0CROc3}!NT z8$C_1(7&kR{;Si?5F?F3nZWKUJH z&mKaW5;s!e+MYXmnNavoUEhT5Wc!$3CYm<9bYa}b*sk&dtvX`C3GVel*G1^?{-lUK zx~>#iA!8`X54s8k*9Tp9i7b2o*5h5TAzX}A1B{5c zQXd^5mxy*<0yFKI){2e|O>5h6D5lywYM+vR>e`MaW?F~Nzq+{XpZQmn?3v^piYv6_ zS)~*xL%m;wvD(t2r%C#DObEF$JKrBo?LzA(BZIT(!9!R=j!CJ|8qpHuC;fDxrFh%( zmhCSDzSjE5^bLcHlJ0xi|H`(r!&*NXyrDDci5H41?Ym1XotQ)I-IL#$`?dAOt)C<& z-PY0i$Q+^C5KFXqTGCIkdG~i+ zI&65>2frc}?Mg-1qyeVsdOjP}GV;s4W_l6PzfW}Z227`JNe#QxiT-t>r}jwybO`9R zME?kWQPbn|deJWi5e=m2QKwxFu}g3r3R7$jq<1hM@j(d`wyWCbYpQ``rj+cec8bR7 zuOR;v18UJGog7WReO%NldJ>r0DJRrHJ5|zlzGPJA{5>_6{Nn}WzK%~1r@sQWQn1$8B;#Yu%Pqa^MCPrh- z8WHZ4u~B*7>G~PR#!M)j#4%!8&#@Dt2tOpkwIX&w)JuYrZu%XV;JF@D80EZYCuLGA zS3m`h>Bo~4>xe&CSy}D(`aKEdW?nOpTLnrXCD>_+-RyPud5IGszuA{I(rA&N8K44(Cok+us*Y8 zq{?Sk9~iOi7w_L6HCH0LiSZ!jv-AcYF^(5IBcVmo_IHBaR ztzBbFGCf%S224mT_OT44cVi^Iu6ghS^lFtzM(N*%N2fl=1Cynd7-m!YP@M85CX%ql zGr0c$>tPXh7EjD9sIDmw)(5l#Z%weV(pyzs*;G~SU0n`TbFiYmt}+|O!IAIxSNj5W zO^u#Q*O%89dZtbDNZ4UAHX&B|UM7SprcYJ{aDOeVW- z`U1MQa&>j(T5oN2fKv5jjzk8=NSpX7Mj7QA^U&11PHJPYt15Tgv9GQSR0|UoMl|cD zKN9t?5IOagUrWh-kwWF8jFO`A86~IUOXXBV%p%yD+vg}BH>2BOlX z@)q4Wv74_9$8dIi=c#TcQh|Ruge|2L(e>eA=i;SkIOFDpLc?%Q#km;g8k{%c{1(oG zIDd}wO`PxJEGY?vDsgVY`83WE^J!QKIXEXR01f9}oZrX!51ca=hC&&>@)j+_S4lrr z^ix4U{$>i%kG~E-RrE6%=MGq9>qs z(kI$Ak5-B14Spq|1bo%VuvS5jCTkX1xxPh+_cc)Kh=j&?v<8+a2<25(>pYr2Sb^X2 zMhdqy`S81@p;<=P)*w}>-I{t82xE{o(~!CfaiFriUPbU#Q@7?{O&Vy;sI>&^ngYIZ zq@n`jRA9UcOi+P|DlkdQ%F?ce{l{av_1`_4|HJrgi2n%AU*f!gb4Y0@G!thn&aa}= z?ytz#o2=LW!}$FceKkFMOTQ8EZ^d~8=WqWTvaE|kp^-S};%vnEO`K2Qd>dzPX-4Be z|B8IkaiYV+mVC8zqT@t|ulx_=`~SoE4ED(_Y8*kd>j(2ApSb7G4_)9l-g-*W~#M;6HH=^oBy$;-v6>fG^=p zUlj_i#`z>pM>+IE*Fil8bsW@hP`5$726Y$zd7Y^Qr9EbDG`xgAyX(uNaJ=i~@*XXaV z7v&?I2V+Xq@0n7?4Px31C4 z<43rrQ6`x(il5~6Hh(oL&wgY?%HlW4gKbxcB1ht==2?+)H$|4E(@h^!{L#I|7dAKL z2bneJALB4DMtr^=?G?#CNi*^pwWZ-4AEx|D`*lku-_VNCP`0P|ja7!`1FHcmi1peP zIT2TjPOn$~asMX&_$YpZrfY%?%~I2-bYa(jZylxwJxTDtlP}5t)$=9!4f!%Gx2Q>Z z9rgW`!>Ig`AE^GAmbM==s$Xiif#kEto8?8?B(ThIl@FKq3 zgWgnMa>S~^q%faJx5glx8+nY*vd_3G(_@UrDy=6xydghK;M|3iFxZuwAuQTuX0C6l ztMXhnDkrjPqGU&lkYTMU=RF0WkMO<_VJfo}XY(6VZ(u!Kyx+7qBPi*jGB zC!Ouk?vaRh7f{T|f@XpF#QmDd9mKK+Zi{b^dN|qKBddu?XEFogyvZ!k;OVc_g z)*EHzm+NaIdGRtcM)jm&PH5S0cirgp< zJ0ZEE{D(tk_~DQgNjOOmrp@$^n%d1&^-bhajZIjiTdR%B&d#X9c-BvvWI+VWLnzKD zOJao4;L30=II+i1srWsxK4v@_*JNchWI;|w(bSCjQ!|!exST6ErpM6$IyX=ksIQ)` z<&KpBnmy%?Wd^8#q{*x$3+H%e7nc-z7v#?uc3(EXq&u=Kztn`>pp9G?YzkbdjV#CP z4WORFwF1%5jNtH=jAd6MP0}Rd0n=!zG@W#zBe%IcuzGriKX$u6i;hUN|L#254dl#{@cayd)i1w{CpW~gm98!HgM%El-zdbb zE=SF6uJ$$5`Du~bPZhcftHDi_r-hC68$C@}UTZ{RGapxMouUKR8SCB{IB7V`I|4TwVZNGpYXpg*D{K~ zs;;I65dsl&^q4?czKP#Y{U>6e1B*7hRz~$UP}fl16b#VJnV!iU6P`kIs~>JuwceWB zs3>TzL<20cE4n*O*Bb-g28{HmvkQvld=#ah{JGla1@J;A(Y18%xkxu3bpaGW&sOe( zV^+7+1w0$-0;|#K1cJUs_B!-U-FgWbUsjH(nwC+OkulXXi+UDXZ$MtDH$$!DD-mCW zBl=gbryCHWv*r%3N{nIxRWO>j9u-y-`Rs)+P~OZ;5J}xqFMRb>VHIcYjFyIab^mDE zuyNTr!)8p66WA<&U}Jr?e|0tP29Z+Jh6Soy0%KeJ^}{@?ebqJ7hOG_+nx~HC!I!@& z=&P(oJ5XDl-B=C2hI$^|piKx+Tat~a0U=(rEV2gzTciI=L^V=7k0u_=Wz}S7(Q=0` zgu@e+EB*A0`e1fO&gJz%wBZUDC);P)?V*+a0{cKCWgTfpIpB~5L!-)I1?5Qce1RMT zUpIfLX=+Bzl#MP0sqGUjDf%juUw8h>dh{F|fx;94BLWd=s_N^|smqpcI`wyvE49p} z_`-I{s3KE=H;j?2=K6Z(MXU$n)LsgOIss4fwZi9|429IWAK_I|*LetQuZBXNm+{y( z&b(J7Y-e~1uod*^vxToa0r%oO_3KdRzfMQamk~Z}!bQ{nyWzbovl-Ab$aZBWHnBa6 z@>m)AJhT$wGqzA@JK#mY1Az5TtWBqD+GfB4Tvx}2LXQL93-|`$p8!7sOo$7GQnBB9 zO?)Uc5%5GpC{zYG)fK`!?KSOS64r77KXM~JpgS4y0So&fKHwU_R6O{&W@soh8Sr%v zo)HFg4G)D{0Ow*q%6`Bh*eY}k@CLv$M8|%Wi-5NQ4#smZ-pfLvT)?LRR|4)BgZuzK znH37%4_KOwHFv-}Cx$}r0)7T)hf8dkg!_enFHS{10T*3~Pn-hoord^;+ovNw;J;=d zKHyM{VBQ66#S^i1?EAWZ7UBc`7v9=X0GNq4C{zK)6eB)haS7rBIu{^5;0VBX2@hz; z_AvL=p-?8E6YJI`fZxa3bTeIhVK=}*SZ_W8IJy$~2BeQ~Tm(F`2KmN=B8`p6H{c*2 z@(nmS7z%9$T-1Vc1iWl(DAWO1xDEadc;9yTtV`44cffA}{a=UQ0w%Y?w*j95Yz5qZ zb12jf*tiSv0W)_aKA>$6;$yemxxL6Y;Fx{T8}I<&c7nIUe*p*I27LkR0qt)1$?Zr7 zupY1l@FL*5bbSZ%fv4Ke0G0s`-jDPFR{|actOx7>+zj{z;DK)=|A1q@gY;80tpso~ zV8Ve=XeZ!czyp9|01pEm06YVD5zvXPfF*Y!-+-F|a{+e)mI59CtO7g;*aCPAa5vyd zz;?hhfR6(v+#L#?02~Z>25>jvMZlByKrSBex(JvHIHn!t0ay>%0(cJaLAw4f+8Dsy zfad@Y0%~~Z>kQyvz=V6z-T;mPEC4(J*i3Z5?SK~n+X0W=2Y&+0y&vTQco6U+;F#}0 z4?M+s05BKuAYdtA$peTFnEN2?33v|h4B$n;^F;pv((e!b0CNBj0xknQ2UrhS@(}7F z;2FR(fCnDN7k#mTY|KIE33vdo1@I!^{eXiHAswOvz5#d)@I2t|M^NACol1vcAHdCk zEr919!@V28`p2pf$T#5TpFkeq8NdW=13U-lA^051 zA28uK${%nH;In`$0XqRt0@|??^W5|BN5BIoaBm0j4B%$Kk{3|#0FMEl0$lkb^Z^`$ z{=tK7s|hDj9)Jg5fj?pI??trX2LQ*MLOlg60Xzw~8}MDggMb$RPXZKC=|XHbr~F?SI#2XOOmVGqFE-=Q1<;iBTOY+9^Y zTHKaF2{F#S7Kw*hv>Yq$!x2Y83~DplH=Gl3UbygisMU^u%RSqbHa97LgR@neF>uOd z6GlL)jK31F6yKrq5P}a%FMx9y@XZvT4@zq{&L1GXX@o0uxp!D+B{~972$w`Zi1Rq; zg@9rD<_P^H(C>qu5lvqip`Qc(Jm_CT{=)HXOD)7f@)Lm1w)ajS1A4uV`-6t~b>a9W z!2i_IJG~xsw-fh44e@7$l5lWX{M{!wy_y~BzJT`Aw#~jdoX=r-@BlHPYr9&z3w+!r= z?m?7h&>tF%y%`4iFADh}i*mRPJl9-;`a%fh2i6r~9Ulk%F3|TFWNZ)X_y*{4o=|9q zA^!E@_#c7Z4Ejq3`Y*!tR2%x+bohaRzEseK|AT%F=r2U4U%bb*+rCY=Jt?z7wp3aGpy%k(BnshLfxYr0eu?i&r<`csrZXWTI_2w z(A&cFRLom0D-VSZ8R++i=@UVJvI_f64D{46y$tlnF^(T#pt}W~>=^+4(3()_*U-aI zE+<6Q7J1wco{Dv$&>;9|n8%i4SH5!u^lO8?_f@AszjJ->?f3=I|FEHVdK!FY^u|!= zZbRL=J?xv4LI1&~Q0O737uL`E-EiGr2Kt2Su>Z_Je~uX3O9+$1$G*E6r2g zH^NWDHY}F$@@yRz#FR-C#}n^P@V<*VoR89goZVLFvV+ptX17+l((+yInNUaQ{Wy3h zZ^x5Gd``pj{88U-WiJsG4k;9CX0JBe>0$pqgH8~7lz778F82+fa2Qpg2@Mb8|^ zAd1F!X_x~)i@1v@t|8CYlIG7Kr^j8+63R7HLyB{sIldaKrHFS9@ou1a^IYz4SZBJ@ zZn4dDdG^?6x-xg``L3KDjsn-@Z7~I|yv=d0$@$N?av&>n=1G@l=F6_MnXf>VSD_1J zPX>2BNT7fqR75%_Uw-9P((xG5a^DmRHBef@W+H$2B7X~@rZid!tt& zDlSUnBKWkOXs3t|M+r_hlt=)MUcN{^!{t|KEWdm%Kif`=Ycian#{v}jSOs~T+wg1= zC4hs{4FJ~y93@W&*=r|o0pQjWBI5tEL|I-NF&Oba4&Ec+U1{W%L zH-N*`UmWCTgMsS=uADHDyugmuB2|wHkPnJq1l|#Q&^8b+4$@&IaHYU`2q9a^Yg}Na z>lV<;Kzod6=m@MuFn>Y30Qo3Nihlq+=fSg{c&MBgf~PoM(2h|2TktfZqRj%WFkZ-h z1GEQ0+d?!^KC@jp*0MO!P8Z4e7rYpef(X0WK4`GTfVx z);biF?8*w`m#E-m#94_r9f(8EGe`NMtf$Y*;zg%3FWx#kd_itZdEbw?fqkLSy$Dmi zZII+`OS!aR8}W|vjew~_+jfE)PHWXEp>U8h1Dawf(>ic$Pak2oF)!xTb)>Q zoCuuq=^a+lX2NfmtA1U?%>iEt_@+|KxAQa4QHGX>SpC71BlpM8803=YiY| z-h<%XMZD#sMh_O+mehV3MP|^)?E|2V& zVcog$8pY{Cob9(_?TFItAT$W0O5JHrZ{*C}RhWO}07axH>Gh zB#h5!`VmyX+#AFtX(?DJ9Dw^XeEq3LI z`O7lMwcm;P1IZQbuXPa`;96>lJwVZ#`F7C7+6dI#hOud$bv??fKvWj0R|mk;egMyk z(OgjYpBQh=akW~kYmg(^=oG}0Z=4``SgT)xum-Pyw~_0MI{PkYCqQ!&4Mz*k3&1@K z+$U71k#dTRb71Ek4pB~XUF}xeA}XgMS5A>}G+G>Q`>BHlvE53rDBk9@xE@3^a@e{G zFdtHolpALN4NuWSk@kmhJAo?$4%Ji~l&1s0tpYBcFv6$d@d$cw9sw-?+G>PlJrnI6 zv?c_`2RP4wrvp5faQnN5d~vr8KE1<^vfZY`l2+@#P@bqOh%N`%`SH{qrs1B!{SSvi z50Eglzw2CSrNoqp2Bz5MgvDfD^1w&;2*wj14wzLd18x~`YXwIBkUsUm9|m5uC&JfI zo_lPt`EJsO>z{Rz(Z8h32NCyO#J!coSvOMhVxB_xI_eLFLN60u*a%~B42I_6w=f=B zV+1+Zl{w3mgRZwgAjLTM0^->p358zcc-&vW5ae01-pq|hgtQXTelLut`Xs~i;^!b- z>~hZ)U9NT;WEA0^$!(B#2NiO}pTxYUnC3mgpTxXp4(h%2A3ZwFoOtUGdL$IaTcHc8 znRz-iCm!{Y@Ni5hA8xEL6wvlUl}@^sa~Q91=)nh2n%hV()HB8r%=?@0GxZ-qdfkSre3Q2X)kE?puu&;LHEtn+1`yw_6U+HXPoW?2rOMDelXqrW6sgE7e7 z8zqa{Sy4I~9 z7dD>b%CpU;ZX7kk*p25v#s$bIcmmHGBP{bVkJd)O$ZI3;OJszGZQ>}y@0dYozYu2~ z)g{c&zCmSsi>;XE#-fg+f7s!eM{{E&Zv94YHF+=1erOQ`V)AfqhuqUohC+YtEkCHE zG%hK%{e$v@rZPG|bH$wP1Y`vM_<0CRzPKk>y3Mge-)-MxyM;tj{pbR{>L}LQi7whn zD-9#&#m{y*$w!=EdKUC`Oy@N&RPd|AZZRi*HNvvjod?5A25%nXB|L?DnG_HHzLqE#+ z;e3rHQ*mtL>+D>4t?1aYAdaV)zFXYH*EB_^HinLWGW~PWnMdgJBw341mgzU=NrZ}D z!Ss1degqGt*m!NqX$# zM*0t#{uI+|e{7`xg6VHD{naOo^f#G)f$3KqG15if50rnnO#fFuG14uxo`B`3{IVEO=YvmIk#6Fr;h?zg4f4sl}-^HYY+jL%`X z>Wt)T|BZx)8PCP2Ens=-dYS2ZHD4#l=oom)0G6%Ak(MN5VrVOl^EL7s!yIv_x&A=D zzQFXsCi*`<4>b|$FsCQRPq<#q13w4zi~EQOt9I~L%&*3Wm`aGlJeFZLt+_$!$8MlK z$bwb7pzar7x+V_Vvqgu(x6^TgVKc*4hI<*dGd#?&gW)NLoea-2)Og{<&CtUzhhZMWQiiJ- zHZyExxR+r&!@~?a7@lI-$?!ZwZ35??p@(4(!#swi3|BF1X4uMbFT-|*hZ%M-JjJk+ z;dzE)5eF)`d4S+yn8PrSVJX8^44WCYGTh5h=H@^DbvCnK)=KDMn8$Dx!&Zjv3_BQh zGStLII!*I1JkeLmdzspE0!dlk#I2CNNYMvGaJu z$uNPTn_()$G=_s2dKivicqzln7-lmZ&+u}FQyHrCr}On}hI1J%V7QoJ9@}db!&Zjv z3_BQhGSuq0oEYXYT*a`JVLQVPhMf$xH5{K|9>Y}(TN$=9>|of*P~&zC?P-W4QF}^F z=$u)2*GuM7Jb4ocdd5x29-p0)HGTp;i4zD;9K{$D*SPG7;2I~H#%&poIK(Q@;-;x= ztYue#=WWIDeF?h#jseE1U4bZ)Uk&V&hje2V2+7~yt@wY|Ecp`EDw8SN1W493ix3|F zO%O$oO+P(pW^u+8gJiMCEFfTUUP-_jL*1su;-E=`#j0qr60{sDmb1Z{0lLIDiz-PW1uxR`Ih~z zn4!cK!VfTTqCDZJ|GDKen@Gv`2 z1`%*r4y0s((bCsZ!<0fv03{xU9pl&fCkQR}t%~vcv^1B<#=g~BpY0ScF_ws`@To-U zupB_VB#yTl_aFdr0 zE&(t5&|>;0QCLgZRHMZVNVpA5EeU>v2a52VF&ZXtiI!ug(4=aNF%e z5!S5>OBZPl`>SLD`!GauS{E0Vp^QHQPn>-^@bUKB@S9-Y0BWM9y8vQF+2+z!KID%+ zkC43!DQot>AVG`$QLtO>-^H)ZPHcAjNC?yImm=)2?*KkV(|A&uLkQUiLZoJ=i)Sr^5{nC#L5syRmq87@O$ll&o>>Yt7B4B* z9H16!G1kSC$<$L&8yDlnX>s@+r^VxUyq19930fk4Cu%PHEfAih>9>=+PPaXQMEl!| zYJqfDXvLz<#q8-(OopqBO7 zi9&O)*RDyX$+f#mTP^}xzx$Ehm|5?FG5!&<_?%>NCoO&!Ffj{aMg!OreC1lq;uOle zGr?D(#Virwg!n9qu_8vO82?+kxHgFrO4IZTitoj90kHB!WGK!;EqSa>D9(Q(p-s%$t~kFfkW$adit{(n^C9N!P@Gjz=^>Vx zr#SD0O6QofQ*ma2^Bi*)F=xytP|0FpR*i>(G5>|+ftBf(D&FzHUZQwCiuWRn4Xor{ z#=L2#fpxq!h&Gzr#LrI<(&DJmj-v&S0SUNXVWIZMMkE`>7tOipM@#vDME!9HaeYpl zqA5?KM_8O0j!|$+oA}A5&;sM(7n-;5*ehVMl3vD2&x)Yy+mLH=Xg zt*#Jf%(_S&C9k zT>cC=Eshk7BbJmmNULcg^>>M#)R0LDJuanR%T$ZQbrk|Q#6v%TmIEFqlJ{#DW+J3!A^$|{W$MquBA96A~uNSEv=F7d;Tf9)>QNG-Ny`>8o z_>mZs*!Fc?@2JxrOMDJCugAO_~Lmz1T6>3uv|zv-DI@yW}|(tH`;fL z(Y{+bFYQ}IPFwjB_8oOIDu5-BLRuW*wAFg2<-o0!Hf13&Dmn`R*`4pJ(p;6ueMNJg zRJsU4=&&4kpOvm)r4MWo#ZzTex;m`1P^%`Qma7#dFi+j^5f4uax$-giI&GfO81o}? zsU9x~S7YG?3&Y6>FDPZ(d`tS?qHwB0iN#@4X|A8cHWSrdsfZH)z?6eZWTH`t%Z*B0 zVN_zWQHd!=C8ipcxH3u!dh%$fx^?!ou!YxRGDJ!YH7b!FQ9`s}##DzJ-C{&I8Ikpj zuoBv3&%%tBIE$KCMbf1->W14frO?JAoW( z6i)Mk!XR+Q(rTbCr(OdoJV;K~VrjUq%L$$?CwRJ?_vvyLh&VLEw0#Fzw2tgQkJ#mO z&qnh+>zDyF)79l7f{o^R)~rFRfEw(y(L~NRsLu_!ve87&p4O+4!ZeYy4@$j_!Zh#H z-|W8%VF;nwpp7O{j)as)h)feHM`FrR3e!Z&;gaFEA4V=uX`UZ;;FmopF}||ep3xbAD}Zc22gmPn}YBIsI$fJ?K{6v~lqn*o$iZe#+Iw~8s0 zMNFZrVhUvyQz)yLLRqP`(=B2OWffB>tC&Jr#1zUZrchQfg|dn%lvPflY&3;(jIz-^ zK9SVuB_b(YYF06YvWh8`RZO9*VhUvyQz)yLLRsY$%0^QtN0u!Ok%gGCI}w5j3-BwZ zP!=(TvWO{^RZgL7G=*}Evw2md2`4F%m_k{^6biqZ)iM`TD2tdvS;Q0yznHqnDU>Zl z#XQM&o04%wA`EL4Qz)yLLRrNW$||N%RxyRLiYb&;PN8fxg>p=>omK*_yb%bCm_k{^ z6v`r|P!=(TvWO`Z!k9uKj42eTm_k`-3T2@wltoOT@QW!Feldl@FQ!oV#T3dar%*PU zLOG_}Xe{5yUi2b>m_p5f)p-g<#UQ6pWJ#Vvk$rdyMcLH)IIsQykf%_814c}t?xg@t zp(vnTLQ^P@W0sqyObIlJnv+caq$LnyLCh_XV2{TXYH-5HM=)DjU)NT3PSiWs3^ z0?nVUO`=57G#gEy99|oxo=A;?7uUjjE49?+=!JjmSO`q4t(}|m)Ga_hp;HE9ZFWDo z7h=xF&$m@fm)7?fnC4i>w_|OcJm42hKUGY2t?vOa&9girm{zTml7`Z7H)fiv9Rg`R z$4LPvrRF@2AFW>{BCWNEB#dt;5MGmQqU`EgNB^yLChy#-?;UEP}JGd1#pe8|B_i4lt)*Ywyr|HT0muQI#hj@G$&~jidc@!mjejp`@k&d0< z`O!qM?klxZhkbs^LUC0j2Zyt%5wz|ru#2(bkoO?Sw(rPRJB?|k06eB$j5M44xB|?q1(|^X%3`8F^`TU zFShM_e5=sz=tR=aw(r5MN%*Fd_Eh4%h;7}MmqagiKbAx(Soakr(W~B{=Bv_}JCNkh z;;H0lrb3VRb|f4ZSF5zNvA8@$nS6kCnhgpamIE_Evb%_$E(I^Muc52UW#m$!@1a?w zFA~K{gQh(aC+*dwjikw#WlcQATpbV+#S)kl{V;e%^fl=+x-5z{%Ov>If%Q6 z6>p6B5v~@8vvDb{#%0Blng6g(N-jq#bXX3oQLOFN5T) zY4R#BCJ$HHTz;$Z0wY{nk{y%Zcgg?-N#Evy9N<;DK<)qwkTDZA zn{#TqMKW2_Q0x037HuMq4f8|5r2~rl$QW^q7ID%Om7w@!ONOgYylv>9p~;q%7&o>I zB(Rb&XW~eqq|0uxxu(a*Lm%h`HAsadRuh+`raPRhP*WwFoUO6;tPQ1-m$n&-ri5b% zk|L1oK1Nb;A4Q~sM%G=1tXpA2C)v;@ZHl`!(xzrhb~758QOFXR5N6cPhK-GsSzNe` z;u9$%m(gS-odAS08j)zXOiz!APq)Kn=`kp$bQk5!l?_u$?b9un4p8|L236{Xm2nH9 zBDSz`vPd;@ZL*-Uc^{RBu%J{~j(wGn^y>pH;?q4s;dD2p-oL*kKAttz36W+j1L;Kr z7@6*X8>A0XUNlhU3P@9~2E|(_lNcm-_p~9fCv0~~#NmeaMRZEt0}Y)}NSK%q=@v_I z9|{ahhfj`0wBcdb3VR$@Ucy?3krXMzi2k~T>(NNm9PLsgF}h4LMaF~@s<1W*{YFI- zlz&RnWzi%hj2u_FDfz3Y^EP8mx1-#Qo~=iG&!GxcGz;XaVdo8FoYMbe!)_WE?Szi7 z6O#9$^&kZNO1UqRj>04=d%Kjqlazmk(_{bSSQyqx{|sNJkahb=$0B69aI92S>4cma z11K+j6%G!RSlmY<`zdF0lCvd5+OqzNKCQ8LPJWkUy|v2;-7%njZ^Svv+r z+;FgT%pqncyhPNSD6bqEb{%9UqM#>?h8H%vB82p4f>G~bqJTy7THJ?hGF;ds3Nb=e zr3_ILQIwHkv8;x2JMw+$-rP8u%>f7RseRsr_F20Vr;a=Q3(0vcmVdbt2~dBF6M>=h zPC{)QPFm8WQKi)~)S864u8x}#u+W6vO0sPC(a%Bp(Ji=lqi*Zk5-qy>DP4DteM(Pw zO1I1#N0)u}>H3GxKDyuNDG(R8J@MXzL-V zNa~4k6R8;g7_Kz&(}jSA^t94M!5X3;p{xs;w5QUKP}_r$R9h{5*y1eCxq956^rYY+ zU4KM(JE3K}?gB_yuj|&)eW0?{aW{T#cRQTZ0PS~CF07fzm2;ZNlGQmBllsg)8~8bDOmP6yCO!h-*{d+`K`vyg3mg&g?X6u&(^$ZFwlUcS7 zPtgLXUjseK2J21i6}DT6}W0ZwK^VV9({;&hTbQjC+F%3K_$!TER^K_ zJ&5=+fyoe<0Ec4#`EQ8wE8V&|ncl}aR=2#DheDTrdq_`wMAz3Fd>7dW=$DMs`;wSt z`bYxV`d9)1{8$~!^eh3hg%zze!p_!!9(#{I6a<@fluJhbyMD?3-YkDfZEuv6TD|W* z`sI|KbFVHO!&xKUL{urbsVpdq!+L3o&_v}}m^*?F7t$rLX)hk|Z|m_wxM*xGP7i5m z%^YY-`2VCnRDEPq^MAcQ%52?Q$48^8dQ{Vqa!-_7{5vfzH)#D^bp3AKb&Vc-NVJnF zXq8geQw!PmDSa>%Z9w=RHInY2?jp=GJ$9dJE^p)p!+C>r18y;#R12s90kAp{cf1JL zeAY~htWE*lVsoExu0^)~KcdPSJ?%s4fvuzZe8E2oW~|kQ-u4r$GEm=p4fUQq4h=@3 zzodSb`rq)-AXeN65+Wc zxKWS0QP;QYsn+aN{gQTJTxykVHP|^~w`b$Wu`JiITu(>HQlno&fSN9wV{SBup6bZa z6Ibi0?=IJe%BF2DaT&x2rlA3S7zvpx8n_;1^>>WZQ{U1p%k^2~^+ac_RB%eFKJ7gj zH=vVZwt!9p0S5#I1p+Qc2;J`>)nbSzcA02CV;#AA;(9%GxjyZw|4>8@IdmeNTLt%r+yaPYvj)ck82b_0#~1Tt<>mXi*6a&JlvP>BDk3fx$t>3>l~Qxls>a z_MZS%FVhn)rNSs0uV04ISlnLfS)I^*o}O@;2)UEcAtt`3CvAI5A9zfUzfm9lmY#q* zaZFF9I^pKLjoYSYys3|RS5E|Cc^I9%P4?!_kUnU;o`@k~gqDGk;z9CF*@n?b>9n4* zTn?pRE+INsPu{`O?$!s*(-Ys;hh9bT;I2`!hHYahmywhl=L`BEG_Z;H=5Eu5C3AY6fKs3X3Cbb=WqY(EF1~=IWLQto_m4 z%TJ8pa~#dVfcWH5{*p4yznZ?MgU{9A(^b{<$&LWNMA}qNpMtKaudDQmuU%+idgbbJ zpGM!+GDcZK-@_o8^NSZ0&(AN>yk7d&g;%5_zbI6w;Y%R+>bmCl;cHp=R9Ri4HfO<7 z&#Wm^cn7>Et053}SYGih6v2X> zru3Cce7Fe$3Ji?myXYjpsTnl&JzPT2x9ou8uer)EtJSJxa4!a*zwyfNqHFT2hph01 z3NLPHcTdHO?a*bjDAUllR0-lpEQm8Cs$Jy_D|w*U@); z#0Mk0y9RiKPc_2Bd-4cQ5qgt{Y4H8RIa={TkqKnKc!6-MLLmfpfehk>~+Qfz@nQNxZs@JL53n+<)7WyVN3QXPW5_~NY0v=?p6TCe!Loi@8<>5?Mp{`dl% z(I?cmIH~4zD|}QnuWT;6D?*y$?w8SZBMw7Kkv>!klMzxD)EdjtxGbJ8YBC||3!b1G z)250>)}U`kgSezj)M6OVPljpoZPZGUr9~Qjxl2@X7`cqTj-$z@LN*$7Z7fb%b4YRz z=}F6W%aCUHM05`k6^d&o*??UJ3S%Q3GSIux*?H)bmS4;Vkwy7K2&P)kxwr*fPQTaMI;)&V1?Ed zUzgNiqB=jmkL1_tL^~il64CHyS88J`{bN@*HB^uF2ZCb*bqEGc+J~0b^5p2nV@yAxw1-=T)So)Thkx>(zfxuR-Am#86> zz(gWf`k4erX;7N{ov*lctqaL47a#pgOJd>Ot z%Q5d9-NkY|yn{%|xtryzGRb*@<(Rj@zQl6WqZdlfZ&^;ONe(h4^3|Lt4WPE^dVnYU zs0TBYoN3H&-Va?xk*(E4kgCOJ0LH&MQ(J?!bglb-4k5v8ZtOanP;v%81==W3Q?-nrkza@6A^ zO3rqHhrg{x0pak7U%X?F<(MB>c$DR+M@y8PXMpdizP#EC{?{!3ByZ?a`?~+k_%6n0 zus;6+-h%w*ne?R1tzIxS!I&*HI}2^V{jsQ2QC?@&MvZQUd}?It-X zXm}}K9VR)WfhYT@_viFseewnWKW1>4J=2!2j~#|m5y(*oKq$_53!t9lN{QOP5P+!1&MER zK+dmO&S{gJb1bLbB*%_B(b*zo?pmqfABc}a$#hk_QO|PnOmc2vIqLmLO3opc<21>6f#s|+$+^IC z)O(bu-=%}T)j{@go8-(F`2Jd}NzPi}DPQV+OAkpg+76bJW|DI^%V{^sImU9-dzpUA za^7M&9+R98SWbsYjw?>;qu$^2Cd;`Dc*<9%NzN>RNB?M&Q_gbKd!FbK1v)mfoE(#! z+gOfzkA+8YV~;hNuR zV07;jDH4r zDwiUYo$1>p)c)krQ_wg(;urqLc#jGHHp}s_oJ{8L0=}nm`3QJXF7HZ4-m|U6V&f6v zbKaBqc`RoL<69YjlJVKVlm3HSq@K#3r!jx&A0^}6%wNp>ts5l&e#Wn0eCK*2zLD{1 zCiyKa|2)edC!=XMGd`zF3XbFPMmx*NGs%B~@$EFh!J+gy$#~6#?_~TcwzJ}==jVE| zvn5g5Q@rv5@|B;Y08e)FnDRA@@p+6-6`kg=aBFBc8IrU_Re!zQJ=V&k<_+($#pLtKt;) zBLCW6@J#{_yL}=htYtyhF;a?&qK`b7Mn-$@)hQP zn(;YyDgS!Lzs`6(MJF&Yqd5Lc;Q1m7eAo-#A^ahVk%NQTPjZ}6{b^~qzqE#U+jfv0kD zn#Ni`~Pla-O!7pGr9`@(%RsF(d#y7t%8I}Cq0?(17 z!1tKH-DIC1F}{@Lz%1f;26(EEZmy52oqUV=b6%5t8=3!{!1F~E2=#(bLBA=+3C~OB z>1^i_j9%B4-ctyMHek$1wl5d*MH%_+OHY;#*b-KGk2^zn$CRDwcDU`B!nie2jm& z7x|sQQ+sY6pZta89Ap;zE8jtN^Ijeptxz+gRy8<6AL53e= zeh=H{I%fF=<4Tjp=)`lZ_QpQMqUyC3J6zmx6B&4l(j zRf1c%B!T8w%&lgdkg83gw*kamymc-=Oe3Z{p>CjlQ!*esvu?nv!!s;5l*>_;D}z z7g2a6gbIpZs7Le1@`l|7=NDaR?cy{dXe)l=0AKvGCsik=mLd5 zba4M$!1x5lH=F7^eH*N&{wTW_{2Z3E>K9V*=d6Dj<8R>#_jOKpRWEV^%>Vi|l5q#~ ze+?6~p7hz$i=2JHQ@?MXx8B9_JB~}i4J`jBy~z0`^Z)*8$*9I%?*Q-NxY6Jf=0DH= zfN8rpVh8oCe>U*sC!MDG&Sb&w?)GMoIlahP-V45o<(&VO)PvnxyPol%?zO2!Gdu&7hs`MgG}d@SA%X$I|!AsC`q`*Ga74OUTck;$bwb8UY zdk;G-4I4y_J1>p#u?18`=S`s^9Yg$R0=8}%x1EZO=0;RxYi)OYxA;3=p5OD+Y?@iRh!6-JhVw#TCqDGM(Bq8@{PA&urpT(G}thDvoxp0 z#mJd5=w>8E)HC3f&W!Aq!6Y za~c^d%j@ga?tX*41fiP*!kQ%b@GOLM3ZrDgcZ(0Ciq6H}Q@I#P5g`V=Nls7Y!u;LJ z#eg@->7iVh-CQowXtR)R<)WC4U(!2>G|(WqKqQ?MC!MAWFKJ~7aP9pp2e;@MO@iRW!>s%i4AC9yKm#_A0$ zID0|_8%Zu3ZH1+VxFT+DZ{oc-89zns{6b&AQ)9)7dFPZYoS9$Z zT{wI8lEN}?S^mtDLNB>pb>sTHIVHt2XL-ltLt2v%mmb|3KLLsR0!_jCFmb|U>0!!6 zFe9poWF=5ekDt*)cJ$nm&-?#$cI_~76hU+%G9;6kY=taHU}TGvO$5S37g#v3ARuVZ z?aqF<{fzc=z9T>uIg&FFBCsVSkdQ2=M0P;x5D`G&#JNe36EN@9r?m5fqHhoRf+u;n#jW@7VAgIM<2aSOt+k_O zj<7MrVKbgO;;|YPuLTH)a5U6_vYpmLK=@Q&M*+s3%wrpG?^VqKLb_vt^nFO`49Hf9 zidqj{lqYjUy&fT|j1m;c!}A42K}0HRVKYap*mj0O`28E#;5Ylz?Tu?6@Y(i8BQf4< z1bgRWV6#(+5z8kW+T%%HbA{DloG^viIZ4KC!@ku_))0>Xp%P@oZ8hu7%7W({W8ADT z6@=HOyojfC3Bkn;C9;x`E3wMvi*Py=ur7MUi z$8Xc&^?@*Bhj2o^;ZR<*z|x=*+0x(`vxRaCEutkG)9R`mRphcv0-{2|3%N9=!|rdE zOT66B&ediZjR69m9flbADwi&?3vsOx1W4UvA=ENRGj3pjFl7+4yh;J*ET`>Oc*xdH zP1aNekx@hVLde0;dyu6MTLeA8bORJq=`^nWUQS9eMXJLS)uVy`5eE`X6jrHxe@(_7W+l7oc?@kU6n1M zHpI3LTE5kcqXdH^!^i-GAI%`>u}3a~5DoG)nk~%8(oYD3)xw;pbZHSIy@u_RVE2Bv zWrs`b06Zm}(PL)#_ya5%+#n+(T^E-!7}j2up;({6NXJsLNNStK2=p|Ik$DL|QS zlHp+3Lfos_AtK3(^+SpR#HF{zOvZy{V0d>}FGSI_mN3H|;)Ey4gaQd!EwKsQnKQkm zomhJ(h)N6;glG#y)*E-S9CV@rhh2sPo{>qNaY~{^=F8JW)WxD&v8?O9XkpVmSqmz> zBDJwk@|0SHR8vwbhk1Lv)fwRL;eeVjYcYfa1oNBvfQQ4pJ3>^+grkZR16IvhWOPx} z%M}joik}oDQHq!ac!J1lBT6UnK=Gpxpv*9{>*P&LddUT)7026#txTqt4!v3p*?N(S00@RsvGZUPWPV8*kP?SvNrj)7=aPt&xMD`b z=AhP(`7Bm&nK1oHq2~F-%W+o2TTA5kiS2NuLV&kz4^e7as5>{vh6D$(<)ioUn$M>A zBBXM&^8g`c-W@kO@=nXljVH(Zgt_=zzW3^<`Ujq>!uZsa=75lR1j#0XqEj4gbVavH zT|~HpnO6&6Ycc}GO1qbiRi!M1{&7P;4~aZJD+owMThR^4hLh{|9nGF5?SRLddp6s3 zC|9AXS0^*RZK%m$0>^%)`6{YbXSk<+V(WK~LGno$F!utTN_5Rg;q`4YZ zQXPtaT-Ae{1@u{no+3vOV%UlGMiTfShTu$gF=&{{Il4n`Ot6Z7ZqH+desm_*|SFww)oCao-;I z!Z`jrhVSrVtf?oyKii8h<0Qo&8@|H}UeTcMAN1n=0^jqKIP7^vgC#zhbRN#BQ9fwbCzf0M_Uq3AHJ$}RC z%U;o7F`SCq@JK&jf8Xcp@aLW(8t{30>0_Lv_#SWQ@Xffeic$9eTY>-VGF!v1Ga0;7 zC@|+gsf2$|@rSLmB7-dRd_T`V(ss)Fe(mrN;80{-Og+EQ^Z$td7jW5=<5!mdrTSR= zzgbMUhq~#(FfNkF@jZ_7<|m5p`8Z4sMfve{_z}2i|J_XSI{pSAj@xlzZ2;Hx>VSf#1_+;{R7sjcvv8+kU0%2a5mP_8mGx&rb|8&XF}Q7Uhob`$PS|`?^0h&pSYqs1OMt7_^x{W_`mGy`Wg5SztEcJ z$=u0N;%h#rUHbicM{7QI#<4aW-yzwR=Oz8W`&w(T{q*q56c#L^)xXgi=U&jp`= q=X~d6<$iGI9j&SV&plH7_X_# +#include +#include +#include +#include +#include + +#include + +extern void public_tests (Suite *s); +extern void private_tests (Suite *s); + +Suite * test_suite (void) +{ + Suite *s = suite_create ("Default"); + public_tests (s); + private_tests (s); + return s; +} + +void run_testsuite (void) +{ + Suite *s = test_suite (); + SRunner *sr = srunner_create (s); + srunner_run_all (sr, CK_NORMAL); + srunner_free (sr); +} + +int main (void) +{ + srand((unsigned)time(NULL)); + run_testsuite (); + return EXIT_SUCCESS; +} diff --git a/p4-interp/tests/testsuite.o b/p4-interp/tests/testsuite.o new file mode 100644 index 0000000000000000000000000000000000000000..3899e92127ce18840689aea74510559072c393be GIT binary patch literal 6352 zcmb_fYit}>6~41O<8`urny%mw!L; z^dGw>p0l8txP0>uAs_$S#Fyz)vR1$KM%-Dstdq-n?=8JwvNUCB$+AUs!qOa0^@tf)0f+zfHw<=+a+_Kq+s3Ig(`>=8x`z z$7?{Z!l4_5ahG)-oar9s#Qj2$u^RL4;e8Q0P@*(p!#YLi)9y^!);(bplnakV1k zf;QT>$?QTGag@1njr=;8B}(>?y$B{>k3ZV>`pr zXLq{_lF7--2L}ebjhAg-%YBM5Ngj zH7nCp&35MmXV2N7mC?Q@DAAtCL#mVlv3na;lf6nw37-iE$hDY~LocNQD{XM?J5 zqk+?t)03wkm=cA8UtO{bve9$nXHLw_j*Iy^g|vm|7M*#qRIEDU)bw0tY-A*}|6uMw z?!HWR$qyX+=%Ve|ZnaEe(Jfbwt_&Z_9vaGI7c00r(ALCPCf9l zf%ECAGoST~)PzS$&o7oA&n~-l-!A)gm)yvZLa?G-D|!{BuGSq=low*Ma04goyXx8a z^f@7WPh)zq=u_Y1$Z$8o#O#^Cq140ik%NS>^(Yjfg|cgt8;?E|2vG23{K%MwaC+tp zMv!MmHYtr%05X}KoEo1#i}9YFJ25vsNps4LAnjtU7Rd{)ZOevah+J9Z%U-@xU$XO_ zALRYwQql9AI)Mic?awa{<-<<>cSeEd=BrM*7R=junxw*^p=_<{1S{D^C&-tov~2S4 zYm)a@m+eNwhIC~<7$Qntn&v7Z9CE6ZD|Y#D;uniBn@^hco-;N`d1CytuLl z4hB*l`Y#T0*eZjzfExY6lsFDZ^8g1g?te-=wR6s%TwKCbi;%q+6Ch~Zc*3a`g-_HKflOYr_V3s5D$7F}{&$wAH2htb=QaEpmOrQA zXIaLb3R3ypABy6-hTmlQbq#-!?SIBN81|PMXEkps{$aLzOS4z^MjM=ol>JL=w~KKV zKeXD|v#`fmsYu-ky8VaP0QNXH)IQ&%;cCC%tKn*YimgDCG;(w2E)j!ql8sjIJ zEBq$Qr!-ux`za0o4a*Y+s9uzV*aoG*l&o5brdJnzRFkW^!AUDLdRhHXLk6Q7Ff3(A-iVd zSK)`kFdrfqKg^NJM~&Y@gy}H}5_@<+9@LbYDDdvpG5CLy+r1A$jC9-cq-&P{bw2Qv zKk~U{+aq}$dAYu5go+Yt(iBPaX`1=xInlk5XIN2wihqm!H8XKebyQO*KLy{Q3R2a& zDbBNhMj0~K!{S|pn7aQ88?L;M|IbO^Z2s1}L&pjB$Nb@qt=d=XzggRGS!ctyxx;wp lHd}wd^s@v0Z{mU?`clZEQXfC0+01{Ke+YgVd4?6;|KEB`<(vQj literal 0 HcmV?d00001 diff --git a/p4-interp/tests/utests.txt b/p4-interp/tests/utests.txt new file mode 100644 index 0000000..d5a4ce9 --- /dev/null +++ b/p4-interp/tests/utests.txt @@ -0,0 +1,2 @@ +Running suite(s): Default +100%: Checks: 33, Failures: 0, Errors: 0 diff --git a/p4-interp/tests/valgrind/A_bad_addr.txt b/p4-interp/tests/valgrind/A_bad_addr.txt new file mode 100644 index 0000000..396677a --- /dev/null +++ b/p4-interp/tests/valgrind/A_bad_addr.txt @@ -0,0 +1,26 @@ +==4085977== Memcheck, a memory error detector +==4085977== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==4085977== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==4085977== Command: ../y86 -e inputs/bad_addr.o +==4085977== +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000114 flags: Z0 S0 O0 ADR + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 000000000001e240 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 2 +==4085977== +==4085977== HEAP SUMMARY: +==4085977== in use at exit: 0 bytes in 0 blocks +==4085977== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==4085977== +==4085977== All heap blocks were freed -- no leaks are possible +==4085977== +==4085977== For lists of detected and suppressed errors, rerun with: -s +==4085977== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p4-interp/tests/valgrind/A_bad_addr_debug.txt b/p4-interp/tests/valgrind/A_bad_addr_debug.txt new file mode 100644 index 0000000..eb51c61 --- /dev/null +++ b/p4-interp/tests/valgrind/A_bad_addr_debug.txt @@ -0,0 +1,308 @@ +==4086006== Memcheck, a memory error detector +==4086006== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==4086006== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==4086006== Command: ../y86 -E inputs/bad_addr.o +==4086006== +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x1e240, %rbx +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 000000000001e240 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: mrmovq 0x0(%rbx), %rax +Y86 CPU state: + PC: 0000000000000114 flags: Z0 S0 O0 ADR + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 000000000001e240 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 2 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f3 40 e2 01 00 00 00 00 00 50 03 00 00 00 00 + 0110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +==4086006== +==4086006== HEAP SUMMARY: +==4086006== in use at exit: 0 bytes in 0 blocks +==4086006== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==4086006== +==4086006== All heap blocks were freed -- no leaks are possible +==4086006== +==4086006== For lists of detected and suppressed errors, rerun with: -s +==4086006== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p4-interp/tests/valgrind/A_bad_insn.txt b/p4-interp/tests/valgrind/A_bad_insn.txt new file mode 100644 index 0000000..6da83dc --- /dev/null +++ b/p4-interp/tests/valgrind/A_bad_insn.txt @@ -0,0 +1,26 @@ +==4086119== Memcheck, a memory error detector +==4086119== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==4086119== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==4086119== Command: ../y86 -e inputs/bad_insn.o +==4086119== +Beginning execution at 0x0100 +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 INS + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 134031200000000f + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 1 +==4086119== +==4086119== HEAP SUMMARY: +==4086119== in use at exit: 0 bytes in 0 blocks +==4086119== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==4086119== +==4086119== All heap blocks were freed -- no leaks are possible +==4086119== +==4086119== For lists of detected and suppressed errors, rerun with: -s +==4086119== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p4-interp/tests/valgrind/A_bad_insn_debug.txt b/p4-interp/tests/valgrind/A_bad_insn_debug.txt new file mode 100644 index 0000000..7cd21be --- /dev/null +++ b/p4-interp/tests/valgrind/A_bad_insn_debug.txt @@ -0,0 +1,308 @@ +==4086155== Memcheck, a memory error detector +==4086155== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==4086155== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==4086155== Command: ../y86 -E inputs/bad_insn.o +==4086155== +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x134031200000000f, %rbx +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 134031200000000f + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Invalid instruction at 0x010a +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 INS + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 134031200000000f + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 1 + +Contents of memory from 0000 to 1000: + 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f3 0f 00 00 00 20 31 40 13 fd ff ff ff 60 31 + 0110 70 08 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 aa bb cc dd 00 00 00 dd 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +==4086155== +==4086155== HEAP SUMMARY: +==4086155== in use at exit: 0 bytes in 0 blocks +==4086155== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==4086155== +==4086155== All heap blocks were freed -- no leaks are possible +==4086155== +==4086155== For lists of detected and suppressed errors, rerun with: -s +==4086155== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p4-interp/tests/valgrind/A_bad_nostack.txt b/p4-interp/tests/valgrind/A_bad_nostack.txt new file mode 100644 index 0000000..f65a5d5 --- /dev/null +++ b/p4-interp/tests/valgrind/A_bad_nostack.txt @@ -0,0 +1,26 @@ +==4086179== Memcheck, a memory error detector +==4086179== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==4086179== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==4086179== Command: ../y86 -e inputs/bad_nostack.o +==4086179== +Beginning execution at 0x0100 +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 ADR + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 1 +==4086179== +==4086179== HEAP SUMMARY: +==4086179== in use at exit: 0 bytes in 0 blocks +==4086179== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==4086179== +==4086179== All heap blocks were freed -- no leaks are possible +==4086179== +==4086179== For lists of detected and suppressed errors, rerun with: -s +==4086179== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p4-interp/tests/valgrind/A_both_flags.txt b/p4-interp/tests/valgrind/A_both_flags.txt new file mode 100644 index 0000000..0f062dd --- /dev/null +++ b/p4-interp/tests/valgrind/A_both_flags.txt @@ -0,0 +1,27 @@ +==4086367== Memcheck, a memory error detector +==4086367== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==4086367== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==4086367== Command: ../y86 -e -E inputs/simple.o +==4086367== +Usage: ../y86 mini-elf-file + Options are: + -h Display usage + -H Show the Mini-ELF header + -a Show all with brief memory + -f Show all with full memory + -s Show the program headers + -m Show the memory contents (brief) + -M Show the memory contents (full) + -d Disassemble code contents + -D Disassemble data contents + -e Execute program + -E Execute program (trace mode) +==4086367== +==4086367== HEAP SUMMARY: +==4086367== in use at exit: 0 bytes in 0 blocks +==4086367== total heap usage: 1 allocs, 1 frees, 8,192 bytes allocated +==4086367== +==4086367== All heap blocks were freed -- no leaks are possible +==4086367== +==4086367== For lists of detected and suppressed errors, rerun with: -s +==4086367== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p4-interp/tests/valgrind/A_cjmp_debug.txt b/p4-interp/tests/valgrind/A_cjmp_debug.txt new file mode 100644 index 0000000..814b16b --- /dev/null +++ b/p4-interp/tests/valgrind/A_cjmp_debug.txt @@ -0,0 +1,812 @@ +==4085644== Memcheck, a memory error detector +==4085644== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==4085644== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==4085644== Command: ../y86 -E inputs/cjmp.o +==4085644== +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0xf00, %rsp +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x1, %rax +Y86 CPU state: + PC: 0000000000000114 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: andq %rax, %rax +Y86 CPU state: + PC: 0000000000000116 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: call 0x14a +Y86 CPU state: + PC: 000000000000014a flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jmp 0x154 +Y86 CPU state: + PC: 0000000000000154 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jle 0x15e +Y86 CPU state: + PC: 000000000000015d flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: nop +Y86 CPU state: + PC: 000000000000015e flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jl 0x168 +Y86 CPU state: + PC: 0000000000000167 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: nop +Y86 CPU state: + PC: 0000000000000168 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: je 0x172 +Y86 CPU state: + PC: 0000000000000171 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: nop +Y86 CPU state: + PC: 0000000000000172 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jne 0x17c +Y86 CPU state: + PC: 000000000000017c flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jge 0x186 +Y86 CPU state: + PC: 0000000000000186 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jg 0x190 +Y86 CPU state: + PC: 0000000000000190 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: ret +Y86 CPU state: + PC: 000000000000011f flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0xffffffffffffffff, %rax +Y86 CPU state: + PC: 0000000000000129 flags: Z0 S0 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: andq %rax, %rax +Y86 CPU state: + PC: 000000000000012b flags: Z0 S1 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: call 0x14a +Y86 CPU state: + PC: 000000000000014a flags: Z0 S1 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jmp 0x154 +Y86 CPU state: + PC: 0000000000000154 flags: Z0 S1 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jle 0x15e +Y86 CPU state: + PC: 000000000000015e flags: Z0 S1 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jl 0x168 +Y86 CPU state: + PC: 0000000000000168 flags: Z0 S1 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: je 0x172 +Y86 CPU state: + PC: 0000000000000171 flags: Z0 S1 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: nop +Y86 CPU state: + PC: 0000000000000172 flags: Z0 S1 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jne 0x17c +Y86 CPU state: + PC: 000000000000017c flags: Z0 S1 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jge 0x186 +Y86 CPU state: + PC: 0000000000000185 flags: Z0 S1 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: nop +Y86 CPU state: + PC: 0000000000000186 flags: Z0 S1 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jg 0x190 +Y86 CPU state: + PC: 000000000000018f flags: Z0 S1 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: nop +Y86 CPU state: + PC: 0000000000000190 flags: Z0 S1 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: ret +Y86 CPU state: + PC: 0000000000000134 flags: Z0 S1 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rax +Y86 CPU state: + PC: 000000000000013e flags: Z0 S1 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: andq %rax, %rax +Y86 CPU state: + PC: 0000000000000140 flags: Z1 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: call 0x14a +Y86 CPU state: + PC: 000000000000014a flags: Z1 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jmp 0x154 +Y86 CPU state: + PC: 0000000000000154 flags: Z1 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jle 0x15e +Y86 CPU state: + PC: 000000000000015e flags: Z1 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jl 0x168 +Y86 CPU state: + PC: 0000000000000167 flags: Z1 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: nop +Y86 CPU state: + PC: 0000000000000168 flags: Z1 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: je 0x172 +Y86 CPU state: + PC: 0000000000000172 flags: Z1 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jne 0x17c +Y86 CPU state: + PC: 000000000000017b flags: Z1 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: nop +Y86 CPU state: + PC: 000000000000017c flags: Z1 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jge 0x186 +Y86 CPU state: + PC: 0000000000000186 flags: Z1 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: jg 0x190 +Y86 CPU state: + PC: 000000000000018f flags: Z1 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: nop +Y86 CPU state: + PC: 0000000000000190 flags: Z1 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: ret +Y86 CPU state: + PC: 0000000000000149 flags: Z1 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 000000000000014a flags: Z1 S0 O0 HLT + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 44 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f4 00 0f 00 00 00 00 00 00 30 f0 01 00 00 00 + 0110 00 00 00 00 62 00 80 4a 01 00 00 00 00 00 00 30 + 0120 f0 ff ff ff ff ff ff ff ff 62 00 80 4a 01 00 00 + 0130 00 00 00 00 30 f0 00 00 00 00 00 00 00 00 62 00 + 0140 80 4a 01 00 00 00 00 00 00 00 70 54 01 00 00 00 + 0150 00 00 00 10 71 5e 01 00 00 00 00 00 00 10 72 68 + 0160 01 00 00 00 00 00 00 10 73 72 01 00 00 00 00 00 + 0170 00 10 74 7c 01 00 00 00 00 00 00 10 75 86 01 00 + 0180 00 00 00 00 00 10 76 90 01 00 00 00 00 00 00 10 + 0190 90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 49 01 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +==4085644== +==4085644== HEAP SUMMARY: +==4085644== in use at exit: 0 bytes in 0 blocks +==4085644== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==4085644== +==4085644== All heap blocks were freed -- no leaks are possible +==4085644== +==4085644== For lists of detected and suppressed errors, rerun with: -s +==4085644== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p4-interp/tests/valgrind/A_cmov_debug.txt b/p4-interp/tests/valgrind/A_cmov_debug.txt new file mode 100644 index 0000000..6fbe5e2 --- /dev/null +++ b/p4-interp/tests/valgrind/A_cmov_debug.txt @@ -0,0 +1,920 @@ +==4085626== Memcheck, a memory error detector +==4085626== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==4085626== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==4085626== Command: ../y86 -E inputs/cmov.o +==4085626== +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0xf00, %rsp +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x1, %rax +Y86 CPU state: + PC: 0000000000000114 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: andq %rax, %rax +Y86 CPU state: + PC: 0000000000000116 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: call 0x14a +Y86 CPU state: + PC: 000000000000014a flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x1, %rax +Y86 CPU state: + PC: 0000000000000154 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 000000000000015e flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmovle %rax, %rdx +Y86 CPU state: + PC: 0000000000000160 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 000000000000016a flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmovl %rax, %rdx +Y86 CPU state: + PC: 000000000000016c flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 0000000000000176 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmove %rax, %rdx +Y86 CPU state: + PC: 0000000000000178 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 0000000000000182 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmovne %rax, %rdx +Y86 CPU state: + PC: 0000000000000184 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000001 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 000000000000018e flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmovge %rax, %rdx +Y86 CPU state: + PC: 0000000000000190 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000001 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 000000000000019a flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmovg %rax, %rdx +Y86 CPU state: + PC: 000000000000019c flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000001 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: ret +Y86 CPU state: + PC: 000000000000011f flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000001 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0xffffffffffffffff, %rax +Y86 CPU state: + PC: 0000000000000129 flags: Z0 S0 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000001 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: andq %rax, %rax +Y86 CPU state: + PC: 000000000000012b flags: Z0 S1 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000001 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: call 0x14a +Y86 CPU state: + PC: 000000000000014a flags: Z0 S1 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000001 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x1, %rax +Y86 CPU state: + PC: 0000000000000154 flags: Z0 S1 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000001 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 000000000000015e flags: Z0 S1 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmovle %rax, %rdx +Y86 CPU state: + PC: 0000000000000160 flags: Z0 S1 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000001 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 000000000000016a flags: Z0 S1 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmovl %rax, %rdx +Y86 CPU state: + PC: 000000000000016c flags: Z0 S1 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000001 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 0000000000000176 flags: Z0 S1 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmove %rax, %rdx +Y86 CPU state: + PC: 0000000000000178 flags: Z0 S1 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 0000000000000182 flags: Z0 S1 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmovne %rax, %rdx +Y86 CPU state: + PC: 0000000000000184 flags: Z0 S1 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000001 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 000000000000018e flags: Z0 S1 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmovge %rax, %rdx +Y86 CPU state: + PC: 0000000000000190 flags: Z0 S1 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 000000000000019a flags: Z0 S1 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmovg %rax, %rdx +Y86 CPU state: + PC: 000000000000019c flags: Z0 S1 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: ret +Y86 CPU state: + PC: 0000000000000134 flags: Z0 S1 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rax +Y86 CPU state: + PC: 000000000000013e flags: Z0 S1 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: andq %rax, %rax +Y86 CPU state: + PC: 0000000000000140 flags: Z1 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: call 0x14a +Y86 CPU state: + PC: 000000000000014a flags: Z1 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x1, %rax +Y86 CPU state: + PC: 0000000000000154 flags: Z1 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 000000000000015e flags: Z1 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmovle %rax, %rdx +Y86 CPU state: + PC: 0000000000000160 flags: Z1 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000001 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 000000000000016a flags: Z1 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmovl %rax, %rdx +Y86 CPU state: + PC: 000000000000016c flags: Z1 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 0000000000000176 flags: Z1 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmove %rax, %rdx +Y86 CPU state: + PC: 0000000000000178 flags: Z1 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000001 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 0000000000000182 flags: Z1 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmovne %rax, %rdx +Y86 CPU state: + PC: 0000000000000184 flags: Z1 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 000000000000018e flags: Z1 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmovge %rax, %rdx +Y86 CPU state: + PC: 0000000000000190 flags: Z1 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000001 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rdx +Y86 CPU state: + PC: 000000000000019a flags: Z1 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: cmovg %rax, %rdx +Y86 CPU state: + PC: 000000000000019c flags: Z1 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: ret +Y86 CPU state: + PC: 0000000000000149 flags: Z1 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 000000000000014a flags: Z1 S0 O0 HLT + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 53 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f4 00 0f 00 00 00 00 00 00 30 f0 01 00 00 00 + 0110 00 00 00 00 62 00 80 4a 01 00 00 00 00 00 00 30 + 0120 f0 ff ff ff ff ff ff ff ff 62 00 80 4a 01 00 00 + 0130 00 00 00 00 30 f0 00 00 00 00 00 00 00 00 62 00 + 0140 80 4a 01 00 00 00 00 00 00 00 30 f0 01 00 00 00 + 0150 00 00 00 00 30 f2 00 00 00 00 00 00 00 00 21 02 + 0160 30 f2 00 00 00 00 00 00 00 00 22 02 30 f2 00 00 + 0170 00 00 00 00 00 00 23 02 30 f2 00 00 00 00 00 00 + 0180 00 00 24 02 30 f2 00 00 00 00 00 00 00 00 25 02 + 0190 30 f2 00 00 00 00 00 00 00 00 26 02 90 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 49 01 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +==4085626== +==4085626== HEAP SUMMARY: +==4085626== in use at exit: 0 bytes in 0 blocks +==4085626== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==4085626== +==4085626== All heap blocks were freed -- no leaks are possible +==4085626== +==4085626== For lists of detected and suppressed errors, rerun with: -s +==4085626== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p4-interp/tests/valgrind/A_extra_params.txt b/p4-interp/tests/valgrind/A_extra_params.txt new file mode 100644 index 0000000..d894284 --- /dev/null +++ b/p4-interp/tests/valgrind/A_extra_params.txt @@ -0,0 +1,27 @@ +==4086493== Memcheck, a memory error detector +==4086493== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==4086493== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==4086493== Command: ../y86 -e inputs/nop_hlt.o extra params +==4086493== +Usage: ../y86 mini-elf-file + Options are: + -h Display usage + -H Show the Mini-ELF header + -a Show all with brief memory + -f Show all with full memory + -s Show the program headers + -m Show the memory contents (brief) + -M Show the memory contents (full) + -d Disassemble code contents + -D Disassemble data contents + -e Execute program + -E Execute program (trace mode) +==4086493== +==4086493== HEAP SUMMARY: +==4086493== in use at exit: 0 bytes in 0 blocks +==4086493== total heap usage: 1 allocs, 1 frees, 8,192 bytes allocated +==4086493== +==4086493== All heap blocks were freed -- no leaks are possible +==4086493== +==4086493== For lists of detected and suppressed errors, rerun with: -s +==4086493== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p4-interp/tests/valgrind/A_iotrap_buf2_debug.txt b/p4-interp/tests/valgrind/A_iotrap_buf2_debug.txt new file mode 100644 index 0000000..746f07f --- /dev/null +++ b/p4-interp/tests/valgrind/A_iotrap_buf2_debug.txt @@ -0,0 +1,416 @@ +==4086873== Memcheck, a memory error detector +==4086873== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==4086873== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==4086873== Command: ../y86 -E inputs/iotrap_buf2.o +==4086873== +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x200, %rsi +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000200 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 2 +Y86 CPU state: + PC: 000000000000010b flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000200 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 2 +Y86 CPU state: + PC: 000000000000010c flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000200 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x300, %rsi +Y86 CPU state: + PC: 0000000000000116 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 0 +Y86 CPU state: + PC: 0000000000000117 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 0 +Y86 CPU state: + PC: 0000000000000118 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 4 +Y86 CPU state: + PC: 0000000000000119 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 5 +1234512345aaabcdefghY86 CPU state: + PC: 000000000000011a flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 2 +Y86 CPU state: + PC: 000000000000011b flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 4 +Y86 CPU state: + PC: 000000000000011c flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 000000000000011d flags: Z0 S0 O0 HLT + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 11 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f6 00 02 00 00 00 00 00 00 c2 c2 30 f6 00 03 + 0110 00 00 00 00 00 00 c0 c0 c4 c5 c2 c4 00 00 00 00 + 0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 39 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 61 62 63 64 65 66 67 68 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +==4086873== +==4086873== HEAP SUMMARY: +==4086873== in use at exit: 0 bytes in 0 blocks +==4086873== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==4086873== +==4086873== All heap blocks were freed -- no leaks are possible +==4086873== +==4086873== For lists of detected and suppressed errors, rerun with: -s +==4086873== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p4-interp/tests/valgrind/A_iotrap_buf_debug.txt b/p4-interp/tests/valgrind/A_iotrap_buf_debug.txt new file mode 100644 index 0000000..8150975 --- /dev/null +++ b/p4-interp/tests/valgrind/A_iotrap_buf_debug.txt @@ -0,0 +1,344 @@ +==4086814== Memcheck, a memory error detector +==4086814== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==4086814== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==4086814== Command: ../y86 -E inputs/iotrap_buf.o +==4086814== +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x300, %rsi +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 4 +Y86 CPU state: + PC: 000000000000010b flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 5 +abcdefghY86 CPU state: + PC: 000000000000010c flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 4 +Y86 CPU state: + PC: 000000000000010d flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 000000000000010e flags: Z0 S0 O0 HLT + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 5 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f6 00 03 00 00 00 00 00 00 c4 c5 c4 00 00 00 + 0110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 61 62 63 64 65 66 67 68 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +==4086814== +==4086814== HEAP SUMMARY: +==4086814== in use at exit: 0 bytes in 0 blocks +==4086814== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==4086814== +==4086814== All heap blocks were freed -- no leaks are possible +==4086814== +==4086814== For lists of detected and suppressed errors, rerun with: -s +==4086814== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p4-interp/tests/valgrind/A_iotrap_char_debug.txt b/p4-interp/tests/valgrind/A_iotrap_char_debug.txt new file mode 100644 index 0000000..8aff621 --- /dev/null +++ b/p4-interp/tests/valgrind/A_iotrap_char_debug.txt @@ -0,0 +1,368 @@ +==4086630== Memcheck, a memory error detector +==4086630== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==4086630== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==4086630== Command: ../y86 -E inputs/iotrap_char.o +==4086630== +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x300, %rsi +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 0 +Y86 CPU state: + PC: 000000000000010b flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 0 +Y86 CPU state: + PC: 000000000000010c flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 5 +YYY86 CPU state: + PC: 000000000000010d flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x308, %rdi +Y86 CPU state: + PC: 0000000000000117 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000308 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 1 +Y86 CPU state: + PC: 0000000000000118 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000308 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 0000000000000119 flags: Z0 S0 O0 HLT + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000308 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 7 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f6 00 03 00 00 00 00 00 00 c0 c0 c5 30 f7 08 + 0110 03 00 00 00 00 00 00 c1 00 00 00 00 00 00 00 00 + 0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 59 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +==4086630== +==4086630== HEAP SUMMARY: +==4086630== in use at exit: 0 bytes in 0 blocks +==4086630== total heap usage: 4 allocs, 4 frees, 25,048 bytes allocated +==4086630== +==4086630== All heap blocks were freed -- no leaks are possible +==4086630== +==4086630== For lists of detected and suppressed errors, rerun with: -s +==4086630== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p4-interp/tests/valgrind/A_iotrap_dec_bad.txt b/p4-interp/tests/valgrind/A_iotrap_dec_bad.txt new file mode 100644 index 0000000..81d5db9 --- /dev/null +++ b/p4-interp/tests/valgrind/A_iotrap_dec_bad.txt @@ -0,0 +1,27 @@ +==4086718== Memcheck, a memory error detector +==4086718== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==4086718== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==4086718== Command: ../y86 -e inputs/iotrap_dec.o +==4086718== +Beginning execution at 0x0100 +256256I/O Error +Y86 CPU state: + PC: 0000000000000118 flags: Z0 S0 O0 HLT + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000308 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 6 +==4086718== +==4086718== HEAP SUMMARY: +==4086718== in use at exit: 0 bytes in 0 blocks +==4086718== total heap usage: 4 allocs, 4 frees, 25,048 bytes allocated +==4086718== +==4086718== All heap blocks were freed -- no leaks are possible +==4086718== +==4086718== For lists of detected and suppressed errors, rerun with: -s +==4086718== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p4-interp/tests/valgrind/A_iotrap_dec_debug.txt b/p4-interp/tests/valgrind/A_iotrap_dec_debug.txt new file mode 100644 index 0000000..7aa2795 --- /dev/null +++ b/p4-interp/tests/valgrind/A_iotrap_dec_debug.txt @@ -0,0 +1,357 @@ +==4086680== Memcheck, a memory error detector +==4086680== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==4086680== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==4086680== Command: ../y86 -E inputs/iotrap_dec.o +==4086680== +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x300, %rsi +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 2 +Y86 CPU state: + PC: 000000000000010b flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 2 +Y86 CPU state: + PC: 000000000000010c flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 5 +256256Y86 CPU state: + PC: 000000000000010d flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x308, %rdi +Y86 CPU state: + PC: 0000000000000117 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000308 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 3 +I/O Error +Y86 CPU state: + PC: 0000000000000118 flags: Z0 S0 O0 HLT + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000308 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 6 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f6 00 03 00 00 00 00 00 00 c2 c2 c5 30 f7 08 + 0110 03 00 00 00 00 00 00 c3 00 00 00 00 00 00 00 00 + 0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +==4086680== +==4086680== HEAP SUMMARY: +==4086680== in use at exit: 0 bytes in 0 blocks +==4086680== total heap usage: 4 allocs, 4 frees, 25,048 bytes allocated +==4086680== +==4086680== All heap blocks were freed -- no leaks are possible +==4086680== +==4086680== For lists of detected and suppressed errors, rerun with: -s +==4086680== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p4-interp/tests/valgrind/A_iotrap_escaped_string.txt b/p4-interp/tests/valgrind/A_iotrap_escaped_string.txt new file mode 100644 index 0000000..c780c54 --- /dev/null +++ b/p4-interp/tests/valgrind/A_iotrap_escaped_string.txt @@ -0,0 +1,29 @@ +==4086796== Memcheck, a memory error detector +==4086796== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==4086796== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==4086796== Command: ../y86 -e inputs/iotrap_str_esc.o +==4086796== +Beginning execution at 0x0100 +hello! +ab c +'str\ing' +Y86 CPU state: + PC: 000000000000010d flags: Z0 S0 O0 HLT + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 4 +==4086796== +==4086796== HEAP SUMMARY: +==4086796== in use at exit: 0 bytes in 0 blocks +==4086796== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==4086796== +==4086796== All heap blocks were freed -- no leaks are possible +==4086796== +==4086796== For lists of detected and suppressed errors, rerun with: -s +==4086796== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p4-interp/tests/valgrind/A_iotrap_str_debug.txt b/p4-interp/tests/valgrind/A_iotrap_str_debug.txt new file mode 100644 index 0000000..9df45c5 --- /dev/null +++ b/p4-interp/tests/valgrind/A_iotrap_str_debug.txt @@ -0,0 +1,344 @@ +==4086754== Memcheck, a memory error detector +==4086754== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==4086754== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==4086754== Command: ../y86 -E inputs/iotrap_str.o +==4086754== +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x300, %rsi +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 4 +Y86 CPU state: + PC: 000000000000010b flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 4 +Y86 CPU state: + PC: 000000000000010c flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: iotrap 5 +abcdefghabcdefghY86 CPU state: + PC: 000000000000010d flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 000000000000010e flags: Z0 S0 O0 HLT + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000300 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 5 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f6 00 03 00 00 00 00 00 00 c4 c4 c5 00 00 00 + 0110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 61 62 63 64 65 66 67 68 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +==4086754== +==4086754== HEAP SUMMARY: +==4086754== in use at exit: 0 bytes in 0 blocks +==4086754== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==4086754== +==4086754== All heap blocks were freed -- no leaks are possible +==4086754== +==4086754== For lists of detected and suppressed errors, rerun with: -s +==4086754== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p4-interp/tests/valgrind/A_missing_file.txt b/p4-interp/tests/valgrind/A_missing_file.txt new file mode 100644 index 0000000..3663cd2 --- /dev/null +++ b/p4-interp/tests/valgrind/A_missing_file.txt @@ -0,0 +1,27 @@ +==4086240== Memcheck, a memory error detector +==4086240== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==4086240== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==4086240== Command: ../y86 -e +==4086240== +Usage: ../y86 mini-elf-file + Options are: + -h Display usage + -H Show the Mini-ELF header + -a Show all with brief memory + -f Show all with full memory + -s Show the program headers + -m Show the memory contents (brief) + -M Show the memory contents (full) + -d Disassemble code contents + -D Disassemble data contents + -e Execute program + -E Execute program (trace mode) +==4086240== +==4086240== HEAP SUMMARY: +==4086240== in use at exit: 0 bytes in 0 blocks +==4086240== total heap usage: 1 allocs, 1 frees, 8,192 bytes allocated +==4086240== +==4086240== All heap blocks were freed -- no leaks are possible +==4086240== +==4086240== For lists of detected and suppressed errors, rerun with: -s +==4086240== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p4-interp/tests/valgrind/A_movflags_debug.txt b/p4-interp/tests/valgrind/A_movflags_debug.txt new file mode 100644 index 0000000..7dbd82c --- /dev/null +++ b/p4-interp/tests/valgrind/A_movflags_debug.txt @@ -0,0 +1,452 @@ +==4085893== Memcheck, a memory error detector +==4085893== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==4085893== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==4085893== Command: ../y86 -E inputs/movflags.o +==4085893== +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0xf00, %rsp +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rax +Y86 CPU state: + PC: 0000000000000114 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x200, %rbx +Y86 CPU state: + PC: 000000000000011e flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000200 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: rmmovq %rax, 0x0(%rbx) +Y86 CPU state: + PC: 0000000000000128 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000200 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: mrmovq 0x0(%rbx), %rcx +Y86 CPU state: + PC: 0000000000000132 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000200 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: pushq %rax +Y86 CPU state: + PC: 0000000000000134 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000200 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: popq %rdx +Y86 CPU state: + PC: 0000000000000136 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000200 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0xffffffffffffffff, %rax +Y86 CPU state: + PC: 0000000000000140 flags: Z0 S0 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000200 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x200, %rbx +Y86 CPU state: + PC: 000000000000014a flags: Z0 S0 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000200 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: rmmovq %rax, 0x0(%rbx) +Y86 CPU state: + PC: 0000000000000154 flags: Z0 S0 O0 AOK + %rax: ffffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000200 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: mrmovq 0x0(%rbx), %rcx +Y86 CPU state: + PC: 000000000000015e flags: Z0 S0 O0 AOK + %rax: ffffffffffffffff %rcx: ffffffffffffffff + %rdx: 0000000000000000 %rbx: 0000000000000200 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: pushq %rax +Y86 CPU state: + PC: 0000000000000160 flags: Z0 S0 O0 AOK + %rax: ffffffffffffffff %rcx: ffffffffffffffff + %rdx: 0000000000000000 %rbx: 0000000000000200 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: popq %rdx +Y86 CPU state: + PC: 0000000000000162 flags: Z0 S0 O0 AOK + %rax: ffffffffffffffff %rcx: ffffffffffffffff + %rdx: ffffffffffffffff %rbx: 0000000000000200 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 0000000000000163 flags: Z0 S0 O0 HLT + %rax: ffffffffffffffff %rcx: ffffffffffffffff + %rdx: ffffffffffffffff %rbx: 0000000000000200 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 14 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f4 00 0f 00 00 00 00 00 00 30 f0 00 00 00 00 + 0110 00 00 00 00 30 f3 00 02 00 00 00 00 00 00 40 03 + 0120 00 00 00 00 00 00 00 00 50 13 00 00 00 00 00 00 + 0130 00 00 a0 0f b0 2f 30 f0 ff ff ff ff ff ff ff ff + 0140 30 f3 00 02 00 00 00 00 00 00 40 03 00 00 00 00 + 0150 00 00 00 00 50 13 00 00 00 00 00 00 00 00 a0 0f + 0160 b0 2f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +==4085893== +==4085893== HEAP SUMMARY: +==4085893== in use at exit: 0 bytes in 0 blocks +==4085893== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==4085893== +==4085893== All heap blocks were freed -- no leaks are possible +==4085893== +==4085893== For lists of detected and suppressed errors, rerun with: -s +==4085893== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p4-interp/tests/valgrind/A_opq_of_debug.txt b/p4-interp/tests/valgrind/A_opq_of_debug.txt new file mode 100644 index 0000000..6a0e61b --- /dev/null +++ b/p4-interp/tests/valgrind/A_opq_of_debug.txt @@ -0,0 +1,416 @@ +==4085757== Memcheck, a memory error detector +==4085757== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==4085757== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==4085757== Command: ../y86 -E inputs/opq_of.o +==4085757== +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x1, %rbx +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000001 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x7fffffffffffffff, %rax +Y86 CPU state: + PC: 0000000000000114 flags: Z0 S0 O0 AOK + %rax: 7fffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000001 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: addq %rbx, %rax +Y86 CPU state: + PC: 0000000000000116 flags: Z0 S1 O1 AOK + %rax: 8000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000001 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x8000000000000000, %rax +Y86 CPU state: + PC: 0000000000000120 flags: Z0 S1 O1 AOK + %rax: 8000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000001 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: subq %rbx, %rax +Y86 CPU state: + PC: 0000000000000122 flags: Z0 S0 O1 AOK + %rax: 7fffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000001 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0xffffffffffffffff, %rbx +Y86 CPU state: + PC: 000000000000012c flags: Z0 S0 O1 AOK + %rax: 7fffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: ffffffffffffffff + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x8000000000000000, %rax +Y86 CPU state: + PC: 0000000000000136 flags: Z0 S0 O1 AOK + %rax: 8000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: ffffffffffffffff + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: addq %rbx, %rax +Y86 CPU state: + PC: 0000000000000138 flags: Z0 S0 O1 AOK + %rax: 7fffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: ffffffffffffffff + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x7fffffffffffffff, %rax +Y86 CPU state: + PC: 0000000000000142 flags: Z0 S0 O1 AOK + %rax: 7fffffffffffffff %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: ffffffffffffffff + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: subq %rbx, %rax +Y86 CPU state: + PC: 0000000000000144 flags: Z0 S1 O1 AOK + %rax: 8000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: ffffffffffffffff + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 0000000000000145 flags: Z0 S1 O1 HLT + %rax: 8000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: ffffffffffffffff + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 11 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f3 01 00 00 00 00 00 00 00 30 f0 ff ff ff ff + 0110 ff ff ff 7f 60 30 30 f0 00 00 00 00 00 00 00 80 + 0120 61 30 30 f3 ff ff ff ff ff ff ff ff 30 f0 00 00 + 0130 00 00 00 00 00 80 60 30 30 f0 ff ff ff ff ff ff + 0140 ff 7f 61 30 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +==4085757== +==4085757== HEAP SUMMARY: +==4085757== in use at exit: 0 bytes in 0 blocks +==4085757== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==4085757== +==4085757== All heap blocks were freed -- no leaks are possible +==4085757== +==4085757== For lists of detected and suppressed errors, rerun with: -s +==4085757== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p4-interp/tests/valgrind/A_pushpop_rsp_debug.txt b/p4-interp/tests/valgrind/A_pushpop_rsp_debug.txt new file mode 100644 index 0000000..f36cb0a --- /dev/null +++ b/p4-interp/tests/valgrind/A_pushpop_rsp_debug.txt @@ -0,0 +1,332 @@ +==4085960== Memcheck, a memory error detector +==4085960== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==4085960== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==4085960== Command: ../y86 -E inputs/pushpop_rsp.o +==4085960== +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0xf00, %rsp +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: pushq %rsp +Y86 CPU state: + PC: 000000000000010c flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: popq %rax +Y86 CPU state: + PC: 000000000000010e flags: Z0 S0 O0 AOK + %rax: 0000000000000f00 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 000000000000010f flags: Z0 S0 O0 HLT + %rax: 0000000000000f00 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 4 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f4 00 0f 00 00 00 00 00 00 a0 4f b0 0f 00 00 + 0110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 00 0f 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +==4085960== +==4085960== HEAP SUMMARY: +==4085960== in use at exit: 0 bytes in 0 blocks +==4085960== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==4085960== +==4085960== All heap blocks were freed -- no leaks are possible +==4085960== +==4085960== For lists of detected and suppressed errors, rerun with: -s +==4085960== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p4-interp/tests/valgrind/A_unaligned1.txt b/p4-interp/tests/valgrind/A_unaligned1.txt new file mode 100644 index 0000000..24e9451 --- /dev/null +++ b/p4-interp/tests/valgrind/A_unaligned1.txt @@ -0,0 +1,26 @@ +==4086559== Memcheck, a memory error detector +==4086559== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==4086559== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==4086559== Command: ../y86 -e inputs/unaligned.o +==4086559== +Beginning execution at 0x0118 +Y86 CPU state: + PC: 000000000000011a flags: Z0 S0 O0 HLT + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 2 +==4086559== +==4086559== HEAP SUMMARY: +==4086559== in use at exit: 0 bytes in 0 blocks +==4086559== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==4086559== +==4086559== All heap blocks were freed -- no leaks are possible +==4086559== +==4086559== For lists of detected and suppressed errors, rerun with: -s +==4086559== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p4-interp/tests/valgrind/A_unaligned2.txt b/p4-interp/tests/valgrind/A_unaligned2.txt new file mode 100644 index 0000000..c616674 --- /dev/null +++ b/p4-interp/tests/valgrind/A_unaligned2.txt @@ -0,0 +1,26 @@ +==4086609== Memcheck, a memory error detector +==4086609== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==4086609== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==4086609== Command: ../y86 -e inputs/unaligned2.o +==4086609== +Beginning execution at 0x0555 +Y86 CPU state: + PC: 0000000000000574 flags: Z0 S0 O0 HLT + %rax: 000000000000014d %rcx: 000000000000006f + %rdx: 0000000000000000 %rbx: 00000000000000de + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 4 +==4086609== +==4086609== HEAP SUMMARY: +==4086609== in use at exit: 0 bytes in 0 blocks +==4086609== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==4086609== +==4086609== All heap blocks were freed -- no leaks are possible +==4086609== +==4086609== For lists of detected and suppressed errors, rerun with: -s +==4086609== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p4-interp/tests/valgrind/B_func_debug.txt b/p4-interp/tests/valgrind/B_func_debug.txt new file mode 100644 index 0000000..6172db4 --- /dev/null +++ b/p4-interp/tests/valgrind/B_func_debug.txt @@ -0,0 +1,356 @@ +==4085496== Memcheck, a memory error detector +==4085496== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==4085496== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==4085496== Command: ../y86 -E inputs/func.o +==4085496== +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0xf00, %rsp +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: call 0x114 +Y86 CPU state: + PC: 0000000000000114 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: call 0x11e +Y86 CPU state: + PC: 000000000000011e flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef0 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: ret +Y86 CPU state: + PC: 000000000000011d flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: ret +Y86 CPU state: + PC: 0000000000000113 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 0000000000000114 flags: Z0 S0 O0 HLT + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 6 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f4 00 0f 00 00 00 00 00 00 80 14 01 00 00 00 + 0110 00 00 00 00 80 1e 01 00 00 00 00 00 00 90 90 00 + 0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 1d 01 00 00 00 00 00 00 13 01 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +==4085496== +==4085496== HEAP SUMMARY: +==4085496== in use at exit: 0 bytes in 0 blocks +==4085496== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==4085496== +==4085496== All heap blocks were freed -- no leaks are possible +==4085496== +==4085496== For lists of detected and suppressed errors, rerun with: -s +==4085496== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p4-interp/tests/valgrind/B_memreg.txt b/p4-interp/tests/valgrind/B_memreg.txt new file mode 100644 index 0000000..3b4c888 --- /dev/null +++ b/p4-interp/tests/valgrind/B_memreg.txt @@ -0,0 +1,26 @@ +==4085370== Memcheck, a memory error detector +==4085370== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==4085370== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==4085370== Command: ../y86 -e inputs/memreg.o +==4085370== +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000147 flags: Z0 S0 O0 HLT + %rax: fedcba9876543210 %rcx: fedcba9876543210 + %rdx: 0123456789abcdef %rbx: 0000000000000200 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0123456789abcdef + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 8 +==4085370== +==4085370== HEAP SUMMARY: +==4085370== in use at exit: 0 bytes in 0 blocks +==4085370== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==4085370== +==4085370== All heap blocks were freed -- no leaks are possible +==4085370== +==4085370== For lists of detected and suppressed errors, rerun with: -s +==4085370== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p4-interp/tests/valgrind/B_memreg_debug.txt b/p4-interp/tests/valgrind/B_memreg_debug.txt new file mode 100644 index 0000000..8dd568f --- /dev/null +++ b/p4-interp/tests/valgrind/B_memreg_debug.txt @@ -0,0 +1,380 @@ +==4085388== Memcheck, a memory error detector +==4085388== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==4085388== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==4085388== Command: ../y86 -E inputs/memreg.o +==4085388== +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0xfedcba9876543210, %rax +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: fedcba9876543210 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x200, %rbx +Y86 CPU state: + PC: 0000000000000114 flags: Z0 S0 O0 AOK + %rax: fedcba9876543210 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000200 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: rmmovq %rax, 0x0(%rbx) +Y86 CPU state: + PC: 000000000000011e flags: Z0 S0 O0 AOK + %rax: fedcba9876543210 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000200 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: mrmovq 0x0(%rbx), %rcx +Y86 CPU state: + PC: 0000000000000128 flags: Z0 S0 O0 AOK + %rax: fedcba9876543210 %rcx: fedcba9876543210 + %rdx: 0000000000000000 %rbx: 0000000000000200 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: mrmovq 0x8(%rbx), %rdx +Y86 CPU state: + PC: 0000000000000132 flags: Z0 S0 O0 AOK + %rax: fedcba9876543210 %rcx: fedcba9876543210 + %rdx: 0123456789abcdef %rbx: 0000000000000200 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: rmmovq %rdx, 0x210 +Y86 CPU state: + PC: 000000000000013c flags: Z0 S0 O0 AOK + %rax: fedcba9876543210 %rcx: fedcba9876543210 + %rdx: 0123456789abcdef %rbx: 0000000000000200 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: mrmovq 0x210, %rdi +Y86 CPU state: + PC: 0000000000000146 flags: Z0 S0 O0 AOK + %rax: fedcba9876543210 %rcx: fedcba9876543210 + %rdx: 0123456789abcdef %rbx: 0000000000000200 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0123456789abcdef + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 0000000000000147 flags: Z0 S0 O0 HLT + %rax: fedcba9876543210 %rcx: fedcba9876543210 + %rdx: 0123456789abcdef %rbx: 0000000000000200 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0123456789abcdef + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 8 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f0 10 32 54 76 98 ba dc fe 30 f3 00 02 00 00 + 0110 00 00 00 00 40 03 00 00 00 00 00 00 00 00 50 13 + 0120 00 00 00 00 00 00 00 00 50 23 08 00 00 00 00 00 + 0130 00 00 40 2f 10 02 00 00 00 00 00 00 50 7f 10 02 + 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 10 32 54 76 98 ba dc fe ef cd ab 89 67 45 23 01 + 0210 ef cd ab 89 67 45 23 01 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +==4085388== +==4085388== HEAP SUMMARY: +==4085388== in use at exit: 0 bytes in 0 blocks +==4085388== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==4085388== +==4085388== All heap blocks were freed -- no leaks are possible +==4085388== +==4085388== For lists of detected and suppressed errors, rerun with: -s +==4085388== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p4-interp/tests/valgrind/B_pushpop.txt b/p4-interp/tests/valgrind/B_pushpop.txt new file mode 100644 index 0000000..9a43e60 --- /dev/null +++ b/p4-interp/tests/valgrind/B_pushpop.txt @@ -0,0 +1,26 @@ +==4085308== Memcheck, a memory error detector +==4085308== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==4085308== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==4085308== Command: ../y86 -e inputs/pushpop.o +==4085308== +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000127 flags: Z0 S0 O0 HLT + %rax: 0000000000000001 %rcx: 0123456789abcdef + %rdx: 0000000000000001 %rbx: 0123456789abcdef + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 8 +==4085308== +==4085308== HEAP SUMMARY: +==4085308== in use at exit: 0 bytes in 0 blocks +==4085308== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==4085308== +==4085308== All heap blocks were freed -- no leaks are possible +==4085308== +==4085308== For lists of detected and suppressed errors, rerun with: -s +==4085308== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p4-interp/tests/valgrind/B_pushpop_debug.txt b/p4-interp/tests/valgrind/B_pushpop_debug.txt new file mode 100644 index 0000000..89d9d06 --- /dev/null +++ b/p4-interp/tests/valgrind/B_pushpop_debug.txt @@ -0,0 +1,380 @@ +==4085323== Memcheck, a memory error detector +==4085323== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==4085323== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==4085323== Command: ../y86 -E inputs/pushpop.o +==4085323== +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0xf00, %rsp +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x1, %rax +Y86 CPU state: + PC: 0000000000000114 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x123456789abcdef, %rbx +Y86 CPU state: + PC: 000000000000011e flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0123456789abcdef + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: pushq %rax +Y86 CPU state: + PC: 0000000000000120 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0123456789abcdef + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: pushq %rbx +Y86 CPU state: + PC: 0000000000000122 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0123456789abcdef + %rsp: 0000000000000ef0 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: popq %rcx +Y86 CPU state: + PC: 0000000000000124 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0123456789abcdef + %rdx: 0000000000000000 %rbx: 0123456789abcdef + %rsp: 0000000000000ef8 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: popq %rdx +Y86 CPU state: + PC: 0000000000000126 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0123456789abcdef + %rdx: 0000000000000001 %rbx: 0123456789abcdef + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 0000000000000127 flags: Z0 S0 O0 HLT + %rax: 0000000000000001 %rcx: 0123456789abcdef + %rdx: 0000000000000001 %rbx: 0123456789abcdef + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 8 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f4 00 0f 00 00 00 00 00 00 30 f0 01 00 00 00 + 0110 00 00 00 00 30 f3 ef cd ab 89 67 45 23 01 a0 0f + 0120 a0 3f b0 1f b0 2f 00 00 00 00 00 00 00 00 00 00 + 0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 ef cd ab 89 67 45 23 01 01 00 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +==4085323== +==4085323== HEAP SUMMARY: +==4085323== in use at exit: 0 bytes in 0 blocks +==4085323== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==4085323== +==4085323== All heap blocks were freed -- no leaks are possible +==4085323== +==4085323== For lists of detected and suppressed errors, rerun with: -s +==4085323== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p4-interp/tests/valgrind/B_simple.txt b/p4-interp/tests/valgrind/B_simple.txt new file mode 100644 index 0000000..f293744 --- /dev/null +++ b/p4-interp/tests/valgrind/B_simple.txt @@ -0,0 +1,26 @@ +==4085404== Memcheck, a memory error detector +==4085404== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==4085404== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==4085404== Command: ../y86 -e inputs/simple.o +==4085404== +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000114 flags: Z0 S0 O0 HLT + %rax: 0000000000000005 %rcx: 0000000000000003 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 7 +==4085404== +==4085404== HEAP SUMMARY: +==4085404== in use at exit: 0 bytes in 0 blocks +==4085404== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==4085404== +==4085404== All heap blocks were freed -- no leaks are possible +==4085404== +==4085404== For lists of detected and suppressed errors, rerun with: -s +==4085404== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p4-interp/tests/valgrind/B_simple_entry.txt b/p4-interp/tests/valgrind/B_simple_entry.txt new file mode 100644 index 0000000..344e703 --- /dev/null +++ b/p4-interp/tests/valgrind/B_simple_entry.txt @@ -0,0 +1,26 @@ +==4085426== Memcheck, a memory error detector +==4085426== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==4085426== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==4085426== Command: ../y86 -e inputs/simple_entry.o +==4085426== +Beginning execution at 0x0250 +Y86 CPU state: + PC: 0000000000000264 flags: Z0 S0 O0 HLT + %rax: 0000000000000005 %rcx: 0000000000000003 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000f00 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 7 +==4085426== +==4085426== HEAP SUMMARY: +==4085426== in use at exit: 0 bytes in 0 blocks +==4085426== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==4085426== +==4085426== All heap blocks were freed -- no leaks are possible +==4085426== +==4085426== For lists of detected and suppressed errors, rerun with: -s +==4085426== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p4-interp/tests/valgrind/C_irmovq.txt b/p4-interp/tests/valgrind/C_irmovq.txt new file mode 100644 index 0000000..e752d50 --- /dev/null +++ b/p4-interp/tests/valgrind/C_irmovq.txt @@ -0,0 +1,26 @@ +==4085137== Memcheck, a memory error detector +==4085137== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==4085137== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==4085137== Command: ../y86 -e inputs/irmovq.o +==4085137== +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000151 flags: Z0 S0 O0 HLT + %rax: 0000000000000001 %rcx: 0000000000001234 + %rdx: 1122334455667788 %rbx: 000000000000000f + %rsp: 00000000deadbeef %rbp: 0000000000000000 + %rsi: 8877665544332211 %rdi: ffffffffffffffff + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 9 +==4085137== +==4085137== HEAP SUMMARY: +==4085137== in use at exit: 0 bytes in 0 blocks +==4085137== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==4085137== +==4085137== All heap blocks were freed -- no leaks are possible +==4085137== +==4085137== For lists of detected and suppressed errors, rerun with: -s +==4085137== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p4-interp/tests/valgrind/C_irmovq_debug.txt b/p4-interp/tests/valgrind/C_irmovq_debug.txt new file mode 100644 index 0000000..d6b3a89 --- /dev/null +++ b/p4-interp/tests/valgrind/C_irmovq_debug.txt @@ -0,0 +1,392 @@ +==4085214== Memcheck, a memory error detector +==4085214== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==4085214== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==4085214== Command: ../y86 -E inputs/irmovq.o +==4085214== +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x1, %rax +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0xf, %rbx +Y86 CPU state: + PC: 0000000000000114 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 000000000000000f + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x1234, %rcx +Y86 CPU state: + PC: 000000000000011e flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000001234 + %rdx: 0000000000000000 %rbx: 000000000000000f + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x1122334455667788, %rdx +Y86 CPU state: + PC: 0000000000000128 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000001234 + %rdx: 1122334455667788 %rbx: 000000000000000f + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x8877665544332211, %rsi +Y86 CPU state: + PC: 0000000000000132 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000001234 + %rdx: 1122334455667788 %rbx: 000000000000000f + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 8877665544332211 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0xffffffffffffffff, %rdi +Y86 CPU state: + PC: 000000000000013c flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000001234 + %rdx: 1122334455667788 %rbx: 000000000000000f + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 8877665544332211 %rdi: ffffffffffffffff + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x0, %rbp +Y86 CPU state: + PC: 0000000000000146 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000001234 + %rdx: 1122334455667788 %rbx: 000000000000000f + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 8877665544332211 %rdi: ffffffffffffffff + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0xdeadbeef, %rsp +Y86 CPU state: + PC: 0000000000000150 flags: Z0 S0 O0 AOK + %rax: 0000000000000001 %rcx: 0000000000001234 + %rdx: 1122334455667788 %rbx: 000000000000000f + %rsp: 00000000deadbeef %rbp: 0000000000000000 + %rsi: 8877665544332211 %rdi: ffffffffffffffff + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 0000000000000151 flags: Z0 S0 O0 HLT + %rax: 0000000000000001 %rcx: 0000000000001234 + %rdx: 1122334455667788 %rbx: 000000000000000f + %rsp: 00000000deadbeef %rbp: 0000000000000000 + %rsi: 8877665544332211 %rdi: ffffffffffffffff + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 9 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f0 01 00 00 00 00 00 00 00 30 f3 0f 00 00 00 + 0110 00 00 00 00 30 f1 34 12 00 00 00 00 00 00 30 f2 + 0120 88 77 66 55 44 33 22 11 30 f6 11 22 33 44 55 66 + 0130 77 88 30 f7 ff ff ff ff ff ff ff ff 30 f5 00 00 + 0140 00 00 00 00 00 00 30 f4 ef be ad de 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +==4085214== +==4085214== HEAP SUMMARY: +==4085214== in use at exit: 0 bytes in 0 blocks +==4085214== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==4085214== +==4085214== All heap blocks were freed -- no leaks are possible +==4085214== +==4085214== For lists of detected and suppressed errors, rerun with: -s +==4085214== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p4-interp/tests/valgrind/C_opq.txt b/p4-interp/tests/valgrind/C_opq.txt new file mode 100644 index 0000000..a578c86 --- /dev/null +++ b/p4-interp/tests/valgrind/C_opq.txt @@ -0,0 +1,26 @@ +==4085226== Memcheck, a memory error detector +==4085226== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==4085226== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==4085226== Command: ../y86 -e inputs/opq.o +==4085226== +Beginning execution at 0x0100 +Y86 CPU state: + PC: 000000000000013b flags: Z0 S0 O0 HLT + %rax: 0000000000000008 %rcx: 0000000000000001 + %rdx: 0000000000000006 %rbx: 0000000000000002 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000003 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 10 +==4085226== +==4085226== HEAP SUMMARY: +==4085226== in use at exit: 0 bytes in 0 blocks +==4085226== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==4085226== +==4085226== All heap blocks were freed -- no leaks are possible +==4085226== +==4085226== For lists of detected and suppressed errors, rerun with: -s +==4085226== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p4-interp/tests/valgrind/C_opq_debug.txt b/p4-interp/tests/valgrind/C_opq_debug.txt new file mode 100644 index 0000000..2e6834c --- /dev/null +++ b/p4-interp/tests/valgrind/C_opq_debug.txt @@ -0,0 +1,404 @@ +==4085255== Memcheck, a memory error detector +==4085255== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==4085255== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==4085255== Command: ../y86 -E inputs/opq.o +==4085255== +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x5, %rax +Y86 CPU state: + PC: 000000000000010a flags: Z0 S0 O0 AOK + %rax: 0000000000000005 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x5, %rbx +Y86 CPU state: + PC: 0000000000000114 flags: Z0 S0 O0 AOK + %rax: 0000000000000005 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000005 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x5, %rcx +Y86 CPU state: + PC: 000000000000011e flags: Z0 S0 O0 AOK + %rax: 0000000000000005 %rcx: 0000000000000005 + %rdx: 0000000000000000 %rbx: 0000000000000005 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x5, %rdx +Y86 CPU state: + PC: 0000000000000128 flags: Z0 S0 O0 AOK + %rax: 0000000000000005 %rcx: 0000000000000005 + %rdx: 0000000000000005 %rbx: 0000000000000005 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: irmovq 0x3, %rdi +Y86 CPU state: + PC: 0000000000000132 flags: Z0 S0 O0 AOK + %rax: 0000000000000005 %rcx: 0000000000000005 + %rdx: 0000000000000005 %rbx: 0000000000000005 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000003 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: addq %rdi, %rax +Y86 CPU state: + PC: 0000000000000134 flags: Z0 S0 O0 AOK + %rax: 0000000000000008 %rcx: 0000000000000005 + %rdx: 0000000000000005 %rbx: 0000000000000005 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000003 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: subq %rdi, %rbx +Y86 CPU state: + PC: 0000000000000136 flags: Z0 S0 O0 AOK + %rax: 0000000000000008 %rcx: 0000000000000005 + %rdx: 0000000000000005 %rbx: 0000000000000002 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000003 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: andq %rdi, %rcx +Y86 CPU state: + PC: 0000000000000138 flags: Z0 S0 O0 AOK + %rax: 0000000000000008 %rcx: 0000000000000001 + %rdx: 0000000000000005 %rbx: 0000000000000002 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000003 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: xorq %rdi, %rdx +Y86 CPU state: + PC: 000000000000013a flags: Z0 S0 O0 AOK + %rax: 0000000000000008 %rcx: 0000000000000001 + %rdx: 0000000000000006 %rbx: 0000000000000002 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000003 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 000000000000013b flags: Z0 S0 O0 HLT + %rax: 0000000000000008 %rcx: 0000000000000001 + %rdx: 0000000000000006 %rbx: 0000000000000002 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000003 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 10 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 30 f0 05 00 00 00 00 00 00 00 30 f3 05 00 00 00 + 0110 00 00 00 00 30 f1 05 00 00 00 00 00 00 00 30 f2 + 0120 05 00 00 00 00 00 00 00 30 f7 03 00 00 00 00 00 + 0130 00 00 60 70 61 73 62 71 63 72 00 00 00 00 00 00 + 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +==4085255== +==4085255== HEAP SUMMARY: +==4085255== in use at exit: 0 bytes in 0 blocks +==4085255== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==4085255== +==4085255== All heap blocks were freed -- no leaks are possible +==4085255== +==4085255== For lists of detected and suppressed errors, rerun with: -s +==4085255== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p4-interp/tests/valgrind/D_help.txt b/p4-interp/tests/valgrind/D_help.txt new file mode 100644 index 0000000..e74a1a4 --- /dev/null +++ b/p4-interp/tests/valgrind/D_help.txt @@ -0,0 +1,27 @@ +==4085068== Memcheck, a memory error detector +==4085068== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==4085068== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==4085068== Command: ../y86 -h +==4085068== +Usage: ../y86 mini-elf-file + Options are: + -h Display usage + -H Show the Mini-ELF header + -a Show all with brief memory + -f Show all with full memory + -s Show the program headers + -m Show the memory contents (brief) + -M Show the memory contents (full) + -d Disassemble code contents + -D Disassemble data contents + -e Execute program + -E Execute program (trace mode) +==4085068== +==4085068== HEAP SUMMARY: +==4085068== in use at exit: 0 bytes in 0 blocks +==4085068== total heap usage: 1 allocs, 1 frees, 8,192 bytes allocated +==4085068== +==4085068== All heap blocks were freed -- no leaks are possible +==4085068== +==4085068== For lists of detected and suppressed errors, rerun with: -s +==4085068== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p4-interp/tests/valgrind/D_nop_hlt.txt b/p4-interp/tests/valgrind/D_nop_hlt.txt new file mode 100644 index 0000000..60e2029 --- /dev/null +++ b/p4-interp/tests/valgrind/D_nop_hlt.txt @@ -0,0 +1,26 @@ +==4085082== Memcheck, a memory error detector +==4085082== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==4085082== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==4085082== Command: ../y86 -e inputs/nop_hlt.o +==4085082== +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000102 flags: Z0 S0 O0 HLT + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 2 +==4085082== +==4085082== HEAP SUMMARY: +==4085082== in use at exit: 0 bytes in 0 blocks +==4085082== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==4085082== +==4085082== All heap blocks were freed -- no leaks are possible +==4085082== +==4085082== For lists of detected and suppressed errors, rerun with: -s +==4085082== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p4-interp/tests/valgrind/D_nop_hlt_debug.txt b/p4-interp/tests/valgrind/D_nop_hlt_debug.txt new file mode 100644 index 0000000..0fa4c4f --- /dev/null +++ b/p4-interp/tests/valgrind/D_nop_hlt_debug.txt @@ -0,0 +1,308 @@ +==4085109== Memcheck, a memory error detector +==4085109== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. +==4085109== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info +==4085109== Command: ../y86 -E inputs/nop_hlt.o +==4085109== +Beginning execution at 0x0100 +Y86 CPU state: + PC: 0000000000000100 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: nop +Y86 CPU state: + PC: 0000000000000101 flags: Z0 S0 O0 AOK + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 + +Executing: halt +Y86 CPU state: + PC: 0000000000000102 flags: Z0 S0 O0 HLT + %rax: 0000000000000000 %rcx: 0000000000000000 + %rdx: 0000000000000000 %rbx: 0000000000000000 + %rsp: 0000000000000000 %rbp: 0000000000000000 + %rsi: 0000000000000000 %rdi: 0000000000000000 + %r8: 0000000000000000 %r9: 0000000000000000 + %r10: 0000000000000000 %r11: 0000000000000000 + %r12: 0000000000000000 %r13: 0000000000000000 + %r14: 0000000000000000 +Total execution count: 2 + +Contents of memory from 0000 to 1000: + 0000 70 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0100 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 04f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 05f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 06f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 07f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 08f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 09f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0a90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ad0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0b90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0bf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0c90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0d90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0db0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0dd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0e90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0eb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ef0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0f90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fd0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +==4085109== +==4085109== HEAP SUMMARY: +==4085109== in use at exit: 0 bytes in 0 blocks +==4085109== total heap usage: 3 allocs, 3 frees, 16,856 bytes allocated +==4085109== +==4085109== All heap blocks were freed -- no leaks are possible +==4085109== +==4085109== For lists of detected and suppressed errors, rerun with: -s +==4085109== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/p4-interp/y86 b/p4-interp/y86 new file mode 100644 index 0000000000000000000000000000000000000000..1a431d6d7be755ad8ea1faab8153a36ef54ae5f3 GIT binary patch literal 46768 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 M!nHk$Au7rK54cR*bpQYW literal 0 HcmV?d00001 diff --git a/p4-interp/y86.h b/p4-interp/y86.h new file mode 100644 index 0000000..32c2464 --- /dev/null +++ b/p4-interp/y86.h @@ -0,0 +1,97 @@ +#ifndef __CS261_Y86__ +#define __CS261_Y86__ + +#include +#include + +#define VADDRBITS 12 +#define MEMSIZE (1 << VADDRBITS) +#define NUMREGS 15 + +/* type declarations */ +typedef uint8_t byte_t; // byte +typedef uint64_t y86_reg_t; // register +typedef uint64_t address_t; // address +typedef bool flag_t; // CPU flag + +/* possible CPU statuses */ +typedef enum { AOK = 1, HLT, ADR, INS } y86_stat_t; + +/* y86 CPU data storage structure */ +typedef struct y86 { + + y86_reg_t reg[NUMREGS]; // 64-bit general-purpose registers + + flag_t zf; // zero flag + flag_t sf; // negative flag + flag_t of; // overflow flag + + y86_reg_t pc; // program counter + + y86_stat_t stat; // program status + +} y86_t; + +/* These enums are specified to match the order of the numbers for all Y86 + instructions and operands. As such, they can be used as constants throughout + the code. */ +typedef enum { + HALT = 0, NOP, CMOV, IRMOVQ, RMMOVQ, MRMOVQ, OPQ, JUMP, CALL, RET, PUSHQ, + POPQ, IOTRAP, INVALID +} y86_icode_t; + +typedef enum { + RRMOVQ = 0, CMOVLE, CMOVL, CMOVE, CMOVNE, CMOVGE, CMOVG, BADCMOV +} y86_cmov_t; + +typedef enum { + ADD = 0, SUB, AND, XOR, BADOP +} y86_op_t; + +typedef enum { + JMP = 0, JLE, JL, JE, JNE, JGE, JG, BADJUMP +} y86_jump_t; + +typedef enum { + CHAROUT = 0, CHARIN, DECOUT, DECIN, STROUT, FLUSH, BADTRAP +} y86_iotrap_t; + +typedef enum { + RAX = 0, RCX, RDX, RBX, RSP, RBP, RSI, RDI, + R8, R9, R10, R11, R12, R13, R14, NOREG +} y86_regnum_t; + +/* Instruction storage structure; use the constants defined in enums above. + Comments reflect correlated information from y86 ISA sheet. See the sheet + for more details. */ +typedef struct y86_inst { + + // opcode (first byte) + + y86_icode_t icode; // high-order 4 bits of opcode (instruction code) + union { + int b; // low-order 4 bits of opcode (instruction function) + y86_cmov_t cmov; // (cmovXX only) + y86_op_t op; // (OPq only) + y86_jump_t jump; // (jXX only) + y86_iotrap_t trap; // (iotrap only) + } ifun; + + // registers (second byte, if present based on icode) + + y86_regnum_t ra; // rA (high-order 4 bits) + y86_regnum_t rb; // rB (low-order 4 bits) + + // valC (eight bytes, if present, starting at either second or third byte) + + union { + address_t dest; // Dest (jXX and call only) + int64_t v; // V (irmovq only) + int64_t d; // D (rmmovq and mrmovq only) + } valC; + + address_t valP; // valP (address of next instruction) + +} y86_inst_t; + +#endif