├── external ├── zydis │ ├── tests │ │ └── cases │ │ │ ├── mvex_025.out │ │ │ ├── vexc4_026.out │ │ │ ├── vexc4_027.out │ │ │ ├── default_007.in │ │ │ ├── default_009.in │ │ │ ├── default_016.in │ │ │ ├── default_017.in │ │ │ ├── default_020.in │ │ │ ├── default_023.in │ │ │ ├── default_024.in │ │ │ ├── 3dnow_000.in │ │ │ ├── 3dnow_002.in │ │ │ ├── 3dnow_003.in │ │ │ ├── 3dnow_005.in │ │ │ ├── 3dnow_006.in │ │ │ ├── 3dnow_007.in │ │ │ ├── 3dnow_009.in │ │ │ ├── 3dnow_013.in │ │ │ ├── 3dnow_014.in │ │ │ ├── 3dnow_016.in │ │ │ ├── 3dnow_017.in │ │ │ ├── 3dnow_022.in │ │ │ ├── default_000.in │ │ │ ├── default_002.in │ │ │ ├── default_003.in │ │ │ ├── default_004.in │ │ │ ├── default_005.in │ │ │ ├── default_008.in │ │ │ ├── default_010.in │ │ │ ├── default_011.in │ │ │ ├── default_012.in │ │ │ ├── default_013.in │ │ │ ├── default_014.in │ │ │ ├── default_015.in │ │ │ ├── default_022.in │ │ │ ├── default_036.in │ │ │ ├── default_048.in │ │ │ ├── vexc4_008.in │ │ │ ├── vexc4_016.in │ │ │ ├── vexc4_020.in │ │ │ ├── vexc4_021.in │ │ │ ├── vexc4_022.in │ │ │ ├── vexc4_023.in │ │ │ ├── vexc4_024.in │ │ │ ├── vexc5_000.in │ │ │ ├── vexc5_001.in │ │ │ ├── vexc5_002.in │ │ │ ├── vexc5_003.in │ │ │ ├── vexc5_009.in │ │ │ ├── vexc5_013.in │ │ │ ├── vexc5_015.in │ │ │ ├── vexc5_016.in │ │ │ ├── vexc5_018.in │ │ │ ├── vexc5_019.in │ │ │ ├── vexc5_020.in │ │ │ ├── vexc5_021.in │ │ │ ├── vexc5_022.in │ │ │ ├── vexc5_023.in │ │ │ ├── xop_001.in │ │ │ ├── xop_002.in │ │ │ ├── xop_003.in │ │ │ ├── xop_005.in │ │ │ ├── xop_007.in │ │ │ ├── xop_008.in │ │ │ ├── xop_009.in │ │ │ ├── xop_010.in │ │ │ ├── xop_013.in │ │ │ ├── xop_016.in │ │ │ ├── xop_017.in │ │ │ ├── xop_018.in │ │ │ ├── xop_019.in │ │ │ ├── xop_020.in │ │ │ ├── xop_022.in │ │ │ ├── 3dnow_004.in │ │ │ ├── 3dnow_010.in │ │ │ ├── 3dnow_018.in │ │ │ ├── default_001.in │ │ │ ├── default_006.in │ │ │ ├── default_018.in │ │ │ ├── default_019.in │ │ │ ├── default_025.in │ │ │ ├── default_026.in │ │ │ ├── default_029.in │ │ │ ├── default_030.in │ │ │ ├── default_033.in │ │ │ ├── default_034.in │ │ │ ├── default_037.in │ │ │ ├── default_038.in │ │ │ ├── default_039.in │ │ │ ├── default_040.in │ │ │ ├── default_041.in │ │ │ ├── default_042.in │ │ │ ├── default_043.in │ │ │ ├── default_044.in │ │ │ ├── default_045.in │ │ │ ├── default_046.in │ │ │ ├── default_047.in │ │ │ ├── evex_000.in │ │ │ ├── evex_001.in │ │ │ ├── evex_002.in │ │ │ ├── evex_003.in │ │ │ ├── evex_004.in │ │ │ ├── evex_005.in │ │ │ ├── evex_006.in │ │ │ ├── evex_007.in │ │ │ ├── evex_008.in │ │ │ ├── evex_009.in │ │ │ ├── evex_011.in │ │ │ ├── evex_012.in │ │ │ ├── evex_013.in │ │ │ ├── evex_014.in │ │ │ ├── evex_015.in │ │ │ ├── evex_017.in │ │ │ ├── evex_018.in │ │ │ ├── evex_021.in │ │ │ ├── evex_022.in │ │ │ ├── evex_023.in │ │ │ ├── evex_024.in │ │ │ ├── evex_025.in │ │ │ ├── evex_026.in │ │ │ ├── evex_028.in │ │ │ ├── mvex_000.in │ │ │ ├── mvex_001.in │ │ │ ├── mvex_002.in │ │ │ ├── mvex_003.in │ │ │ ├── mvex_004.in │ │ │ ├── mvex_006.in │ │ │ ├── mvex_007.in │ │ │ ├── mvex_008.in │ │ │ ├── mvex_009.in │ │ │ ├── mvex_010.in │ │ │ ├── mvex_011.in │ │ │ ├── mvex_012.in │ │ │ ├── mvex_014.in │ │ │ ├── mvex_015.in │ │ │ ├── mvex_017.in │ │ │ ├── mvex_019.in │ │ │ ├── mvex_022.in │ │ │ ├── mvex_024.in │ │ │ ├── mvex_025.in │ │ │ ├── mvex_026.in │ │ │ ├── vexc4_000.in │ │ │ ├── vexc4_001.in │ │ │ ├── vexc4_002.in │ │ │ ├── vexc4_003.in │ │ │ ├── vexc4_004.in │ │ │ ├── vexc4_005.in │ │ │ ├── vexc4_009.in │ │ │ ├── vexc4_010.in │ │ │ ├── vexc4_011.in │ │ │ ├── vexc4_012.in │ │ │ ├── vexc4_013.in │ │ │ ├── vexc4_014.in │ │ │ ├── vexc4_017.in │ │ │ ├── vexc4_018.in │ │ │ ├── vexc4_019.in │ │ │ ├── vexc4_025.in │ │ │ ├── vexc4_026.in │ │ │ ├── vexc4_027.in │ │ │ ├── vexc5_007.in │ │ │ ├── xop_000.in │ │ │ ├── xop_004.in │ │ │ ├── xop_024.in │ │ │ ├── 3dnow_001.in │ │ │ ├── 3dnow_008.in │ │ │ ├── 3dnow_011.in │ │ │ ├── 3dnow_012.in │ │ │ ├── 3dnow_015.in │ │ │ ├── 3dnow_019.in │ │ │ ├── 3dnow_020.in │ │ │ ├── 3dnow_021.in │ │ │ ├── 3dnow_023.in │ │ │ ├── 3dnow_024.in │ │ │ ├── default_021.in │ │ │ ├── default_027.in │ │ │ ├── default_028.in │ │ │ ├── default_031.in │ │ │ ├── default_032.in │ │ │ ├── default_035.in │ │ │ ├── evex_010.in │ │ │ ├── evex_016.in │ │ │ ├── evex_019.in │ │ │ ├── evex_020.in │ │ │ ├── evex_027.in │ │ │ ├── jmp_far_16.in │ │ │ ├── jmp_far_32.in │ │ │ ├── mvex_013.in │ │ │ ├── mvex_018.in │ │ │ ├── mvex_020.in │ │ │ ├── mvex_021.in │ │ │ ├── mvex_023.in │ │ │ ├── vexc4_006.in │ │ │ ├── vexc4_007.in │ │ │ ├── vexc4_015.in │ │ │ ├── vexc5_004.in │ │ │ ├── vexc5_005.in │ │ │ ├── vexc5_006.in │ │ │ ├── vexc5_008.in │ │ │ ├── vexc5_010.in │ │ │ ├── vexc5_011.in │ │ │ ├── vexc5_012.in │ │ │ ├── vexc5_014.in │ │ │ ├── vexc5_017.in │ │ │ ├── vexc5_024.in │ │ │ ├── xop_006.in │ │ │ ├── xop_011.in │ │ │ ├── xop_012.in │ │ │ ├── xop_014.in │ │ │ ├── xop_015.in │ │ │ ├── xop_021.in │ │ │ ├── xop_023.in │ │ │ ├── mvex_005.in │ │ │ └── mvex_016.in │ ├── .github │ │ └── FUNDING.yml │ ├── dependencies │ │ └── zycore │ │ │ └── .github │ │ │ └── FUNDING.yml │ ├── .gitmodules │ ├── SECURITY.md │ ├── assets │ │ ├── screenshots │ │ │ ├── ZydisDisasm.png │ │ │ └── ZydisInfo.png │ │ └── version-bump-checklist.txt │ ├── .gitattributes │ ├── .gitignore │ ├── files.dox │ └── cmake │ │ └── zydis-config.cmake.in ├── fmt │ ├── support │ │ ├── bazel │ │ │ ├── .bazelversion │ │ │ ├── WORKSPACE.bazel │ │ │ └── MODULE.bazel │ │ ├── AndroidManifest.xml │ │ ├── README │ │ ├── python │ │ │ └── mkdocstrings_handlers │ │ │ │ └── cxx │ │ │ │ └── templates │ │ │ │ └── README │ │ ├── cmake │ │ │ ├── fmt-config.cmake.in │ │ │ ├── fmt.pc.in │ │ │ └── FindSetEnv.cmake │ │ └── Android.mk │ ├── test │ │ ├── fuzzing │ │ │ └── .gitignore │ │ ├── gtest │ │ │ └── .clang-format │ │ ├── static-export-test │ │ │ ├── main.cc │ │ │ └── library.cc │ │ ├── find-package-test │ │ │ └── main.cc │ │ ├── add-subdirectory-test │ │ │ └── main.cc │ │ └── header-only-test.cc │ ├── doc │ │ └── fmt.js │ ├── include │ │ └── fmt │ │ │ └── core.h │ ├── .github │ │ ├── issue_template.md │ │ ├── dependabot.yml │ │ └── pull_request_template.md │ ├── .gitignore │ └── .clang-format ├── FEX │ ├── ASM │ │ ├── Disabled_Tests_x64 │ │ ├── Known_Failures │ │ ├── Disabled_Tests_ARMv8.0 │ │ ├── Disabled_Tests_ARMv8.2 │ │ ├── Disabled_Tests_ARMv8.4 │ │ ├── Known_Failures_host │ │ ├── Known_Failures_int │ │ ├── X87 │ │ │ ├── D9_D0.asm │ │ │ ├── D9_EE.asm │ │ │ ├── D9_05.asm │ │ │ ├── D9_E8.asm │ │ │ ├── D9_E9.asm │ │ │ ├── D9_EA.asm │ │ │ ├── D9_EB.asm │ │ │ ├── D9_EC.asm │ │ │ ├── D9_ED.asm │ │ │ ├── DD_C0.asm │ │ │ ├── D9_07.asm │ │ │ ├── D8_D9.asm │ │ │ ├── DD_E9.asm │ │ │ ├── DA_D9.asm │ │ │ ├── DA_E9.asm │ │ │ ├── DB_05.asm │ │ │ ├── DB_00.asm │ │ │ ├── DF_05.asm │ │ │ ├── D9_00.asm │ │ │ ├── D9_F0.asm │ │ │ ├── D9_FE.asm │ │ │ ├── D9_FF.asm │ │ │ ├── DD_00.asm │ │ │ ├── D9_FA.asm │ │ │ ├── D8_C8.asm │ │ │ ├── D8_F0.asm │ │ │ ├── D9_FC.asm │ │ │ ├── DF_00.asm │ │ │ ├── D9_F2.asm │ │ │ ├── D9_F4.asm │ │ │ ├── D9_FB.asm │ │ │ ├── Memcopy.asm │ │ │ ├── DC_00.asm │ │ │ ├── DC_01.asm │ │ │ ├── DC_04.asm │ │ │ ├── DC_05.asm │ │ │ ├── DC_06.asm │ │ │ ├── DC_07.asm │ │ │ ├── D8_00.asm │ │ │ ├── D8_01.asm │ │ │ ├── D8_04.asm │ │ │ ├── D8_05.asm │ │ │ ├── D8_06.asm │ │ │ └── D8_07.asm │ │ ├── Known_Failures_jit │ │ ├── Secondary │ │ │ ├── 15_XX_5.asm │ │ │ ├── 15_XX_6.asm │ │ │ ├── 15_XX_7.asm │ │ │ ├── 15_XX_7_2.asm │ │ │ ├── CLFLUSHOPT.asm │ │ │ ├── CLWB.asm │ │ │ ├── 09_F3_07.asm │ │ │ ├── 07_XX_00.asm │ │ │ ├── 15_F3_02_2.asm │ │ │ ├── 15_F3_03_2.asm │ │ │ ├── 15_F3_02.asm │ │ │ ├── 15_F3_03.asm │ │ │ ├── 15_F3_00.asm │ │ │ └── 15_F3_01.asm │ │ ├── Primary │ │ │ ├── Primary_9B.asm │ │ │ ├── Pause.asm │ │ │ ├── Primary_98.asm │ │ │ ├── Primary_F8.asm │ │ │ ├── Primary_F9.asm │ │ │ ├── Primary_A8.asm │ │ │ ├── Primary_84.asm │ │ │ ├── Primary_F5.asm │ │ │ ├── Primary_C8.asm │ │ │ ├── Primary_E2.asm │ │ │ ├── Primary_6A.asm │ │ │ ├── Primary_63.asm │ │ │ ├── Primary_C3.asm │ │ │ ├── Primary_C2.asm │ │ │ ├── Primary_84_2.asm │ │ │ ├── Primary_6A_2.asm │ │ │ ├── Primary_99.asm │ │ │ ├── Primary_FC.asm │ │ │ └── Primary_FD.asm │ │ ├── X87_F64 │ │ │ ├── D9_D0_F64.asm │ │ │ ├── D9_05_F64.asm │ │ │ ├── D9_07_F64.asm │ │ │ ├── D9_EE_F64.asm │ │ │ ├── DD_C0_F64.asm │ │ │ ├── D9_E8_F64.asm │ │ │ ├── FCOM_F64.asm │ │ │ ├── D9_E9_F64.asm │ │ │ ├── D9_EA_F64.asm │ │ │ ├── D9_EB_F64.asm │ │ │ ├── D9_EC_F64.asm │ │ │ ├── D9_ED_F64.asm │ │ │ ├── DB_00_F64.asm │ │ │ ├── D9_00_F64.asm │ │ │ ├── DF_05_F64.asm │ │ │ ├── DD_00_F64.asm │ │ │ ├── D9_F0_F64.asm │ │ │ ├── DB_05_F64.asm │ │ │ ├── D9_FC_F64.asm │ │ │ ├── D8_F0_F64.asm │ │ │ ├── D9_F2_F64.asm │ │ │ ├── D9_FA_F64.asm │ │ │ ├── D9_FE_F64.asm │ │ │ ├── D9_FF_F64.asm │ │ │ ├── D8_C8_F64.asm │ │ │ ├── DF_00_F64.asm │ │ │ ├── D9_02_F64.asm │ │ │ ├── DD_E9_F64.asm │ │ │ ├── DA_E9_F64.asm │ │ │ ├── D8_D9_F64.asm │ │ │ ├── DA_D9_F64.asm │ │ │ ├── DF_02_F64.asm │ │ │ └── DF_E0_F64.asm │ │ ├── TwoByte │ │ │ ├── 0F_77.asm │ │ │ ├── 0F_0E.asm │ │ │ ├── 0F_6E_2.asm │ │ │ ├── 0F_A2.asm │ │ │ ├── 0F_C0_2.asm │ │ │ ├── 0F_B0_2.asm │ │ │ ├── 0F_02.asm │ │ │ ├── 0F_31.asm │ │ │ ├── 0F_91.asm │ │ │ ├── 0F_92.asm │ │ │ ├── 0F_93.asm │ │ │ ├── 0F_94.asm │ │ │ ├── 0F_95.asm │ │ │ ├── 0F_98.asm │ │ │ ├── 0F_99.asm │ │ │ ├── 0F_9A.asm │ │ │ ├── 0F_9B.asm │ │ │ ├── 0F_9C.asm │ │ │ ├── 0F_9D.asm │ │ │ ├── 0F_90.asm │ │ │ ├── 0F_96.asm │ │ │ ├── 0F_97.asm │ │ │ ├── 0F_9E.asm │ │ │ ├── 0F_9F.asm │ │ │ ├── 0F_F6_2.asm │ │ │ └── 0F_10.asm │ │ ├── SecondaryModRM │ │ │ ├── Reg_7_1.asm │ │ │ └── Reg_2_0.asm │ │ ├── OpSize │ │ │ ├── 15_BYTE.asm │ │ │ ├── 66_16.asm │ │ │ └── 66_10.asm │ │ ├── lea.asm │ │ ├── PrimaryGroup │ │ │ ├── 3_F7_06_2.asm │ │ │ ├── 3_F7_07_2.asm │ │ │ ├── 4_FE_00.asm │ │ │ ├── 4_FE_01.asm │ │ │ ├── 6_C6_00.asm │ │ │ ├── 3_F6_07_2.asm │ │ │ ├── 1_80_05.asm │ │ │ ├── 1_80_06.asm │ │ │ ├── 2_D0_00.asm │ │ │ ├── 2_D0_01.asm │ │ │ ├── 2_D0_04.asm │ │ │ ├── 2_D0_05.asm │ │ │ ├── 2_D0_07.asm │ │ │ ├── 3_F6_02.asm │ │ │ ├── 3_F6_03.asm │ │ │ ├── 1_80_00.asm │ │ │ ├── 1_80_01.asm │ │ │ ├── 1_80_04.asm │ │ │ ├── 2_C0_00.asm │ │ │ ├── 2_C0_01.asm │ │ │ ├── 2_C0_04.asm │ │ │ ├── 2_C0_05.asm │ │ │ └── 3_F6_02_2.asm │ │ ├── Multiblock │ │ │ └── ReachableInvalidCode.asm │ │ ├── MemoryData.asm │ │ ├── FEX_bugs │ │ │ ├── BEXTR_flags.asm │ │ │ └── xor_flags.asm │ │ ├── fadd.asm │ │ ├── SelfModifyingCode │ │ │ └── DifferentBlock.asm │ │ ├── VEX │ │ │ └── andn.asm │ │ ├── x87_stack.asm │ │ ├── H0F38 │ │ │ └── 66_2A.asm │ │ ├── jump.asm │ │ └── 3DNow │ │ │ └── 0E.asm │ └── 32Bit_ASM │ │ ├── Known_Failures │ │ ├── Disabled_Tests_Simulator │ │ ├── X87 │ │ ├── D9_D0.asm │ │ ├── D9_EE.asm │ │ ├── D9_05.asm │ │ ├── D9_E8.asm │ │ ├── D9_E9.asm │ │ ├── D9_EA.asm │ │ ├── D9_EB.asm │ │ ├── D9_EC.asm │ │ ├── D9_ED.asm │ │ ├── D9_07.asm │ │ ├── DD_C0.asm │ │ ├── D9_00.asm │ │ ├── DB_00.asm │ │ ├── DF_05.asm │ │ ├── DF_00.asm │ │ ├── DD_00.asm │ │ ├── DB_05.asm │ │ ├── D8_C8.asm │ │ ├── D8_F0.asm │ │ ├── D9_F0.asm │ │ ├── D9_FE.asm │ │ ├── D9_FF.asm │ │ ├── D9_FA.asm │ │ ├── DB_E3.asm │ │ ├── D8_00.asm │ │ ├── D8_01.asm │ │ ├── D8_04.asm │ │ ├── D8_05.asm │ │ ├── D8_06.asm │ │ ├── D8_07.asm │ │ ├── D9_FC.asm │ │ ├── D9_F2.asm │ │ ├── D9_F4.asm │ │ ├── D9_FB.asm │ │ ├── DC_00.asm │ │ ├── DC_01.asm │ │ ├── DC_04.asm │ │ ├── DC_05.asm │ │ ├── DC_06.asm │ │ ├── DC_07.asm │ │ ├── D9_02.asm │ │ ├── DF_E0.asm │ │ ├── D9_C8.asm │ │ ├── DB_03.asm │ │ ├── DB_01.asm │ │ ├── D8_E0.asm │ │ ├── D8_E8.asm │ │ ├── D8_F8.asm │ │ ├── DB_07.asm │ │ ├── DF_03.asm │ │ ├── DA_C0.asm │ │ ├── DA_C8.asm │ │ ├── DA_D0.asm │ │ ├── DA_D8.asm │ │ ├── DB_C0.asm │ │ ├── DB_C8.asm │ │ ├── D9_03.asm │ │ ├── DB_D0.asm │ │ └── DB_D8.asm │ │ ├── Disabled_Tests │ │ ├── SecondaryModRM │ │ └── Reg_7_1.asm │ │ ├── Primary │ │ ├── Primary_27.asm │ │ ├── Primary_2F.asm │ │ ├── Primary_37.asm │ │ ├── Primary_3F.asm │ │ ├── Primary_D4.asm │ │ ├── Primary_D5.asm │ │ ├── Primary_CE.asm │ │ ├── Loops.asm │ │ ├── Primary_00_3.asm │ │ ├── Primary_E3.asm │ │ └── Primary_C9.asm │ │ ├── Secondary │ │ └── 07_XX_00.asm │ │ └── FEX_bugs │ │ ├── SubAddrBug.asm │ │ └── InlineSyscall.asm ├── biscuit │ ├── .gitignore │ ├── tests │ │ └── src │ │ │ └── main.cpp │ ├── examples │ │ ├── CMakeLists.txt │ │ ├── cpuinfo │ │ │ └── CMakeLists.txt │ │ └── literal │ │ │ └── CMakeLists.txt │ ├── cmake │ │ └── biscuit-config.cmake.in │ └── CMakeLists.txt ├── Catch2 │ ├── .github │ │ ├── FUNDING.yml │ │ └── ISSUE_TEMPLATE │ │ │ └── feature_request.md │ ├── tests │ │ ├── SelfTest │ │ │ ├── Misc │ │ │ │ ├── invalid-test-names.input │ │ │ │ ├── plain-old-tests.input │ │ │ │ └── special-characters-in-file.input │ │ │ └── Baselines │ │ │ │ └── default.sw.multi.approved.txt │ │ └── ExtraTests │ │ │ └── X92-NoTests.cpp │ ├── MODULE.bazel │ ├── meson_options.txt │ ├── data │ │ └── artwork │ │ │ ├── catch2-c-logo.png │ │ │ ├── catch2-hand-logo.png │ │ │ ├── catch2-logo-small.png │ │ │ └── catch2-logo-small-with-background.png │ ├── tools │ │ ├── scripts │ │ │ ├── scriptCommon.py │ │ │ ├── developBuild.py │ │ │ ├── majorRelease.py │ │ │ ├── minorRelease.py │ │ │ ├── patchRelease.py │ │ │ └── checkDuplicateFilenames.py │ │ └── misc │ │ │ └── appveyorMergeCoverageScript.py │ ├── mdsnippets.json │ ├── .conan │ │ └── test_package │ │ │ ├── CMakeLists.txt │ │ │ └── test_package.cpp │ ├── CMake │ │ ├── Catch2Config.cmake.in │ │ ├── catch2.pc.in │ │ └── catch2-with-main.pc.in │ ├── .bazelrc │ ├── codecov.yml │ └── src │ │ └── catch2 │ │ └── interfaces │ │ └── catch_interfaces_config.cpp └── box64 │ └── rv64_printer.h ├── docs ├── example.png └── internal │ └── new-release-guide.md ├── src └── felix86 │ ├── common │ ├── git_version.cpp.in │ ├── info.hpp │ ├── sudo.hpp │ ├── overlay.hpp │ ├── pe.hpp │ ├── types.hpp │ ├── start_params.hpp │ ├── strace.hpp │ ├── print.hpp │ ├── process_lock.cpp │ ├── exit.hpp │ └── info.cpp │ ├── hle │ ├── guest_libs │ │ ├── libEGL.so.1 │ │ ├── libGL.so.1 │ │ ├── libGLX.so.0 │ │ ├── libvulkan.so.1 │ │ ├── libluajit-5.1.so │ │ ├── x64-linux-vdso.so.1 │ │ └── libwayland-client.so │ ├── ioctl │ │ ├── fs.hpp │ │ ├── fat.hpp │ │ ├── tty.hpp │ │ └── amdgpu.hpp │ ├── ipc32.hpp │ ├── vdso.hpp │ ├── vdso.cpp │ ├── brk.hpp │ ├── cpuid.hpp │ └── ioctl32.hpp │ └── tools │ └── main.c ├── .gitignore └── tests ├── Binaries ├── SMC │ └── inline.out ├── Signals │ ├── mask.out │ ├── alarm.out │ ├── frame.out │ ├── mask_32.out │ ├── sigchld.out │ ├── alarm_32.out │ ├── frame_32.out │ ├── recursive.out │ ├── recursive2.out │ └── sigsuspend.out ├── Simple │ ├── cpuinfo.out │ ├── cmpxchg_16.out │ ├── cmpxchg_32.out │ ├── cmpxchg_64.out │ ├── cmpxchg_8.out │ ├── hello_world.out │ ├── unaligned_atomic.out │ └── hello_world.c ├── Clone │ ├── posix_spawn.out │ ├── clone_atomic.out │ └── clone_simple.out ├── Filesystem │ ├── chroot.out │ ├── utime.out │ ├── mkdirat.out │ ├── symlinks.out │ ├── magic_links.out │ ├── chroot_fdinfo.out │ ├── chroot_propagate.out │ └── chroot_symlinks.out ├── common.h └── build.sh └── ASM └── felix86_bugs ├── crc_simple.asm ├── bswap_word.asm ├── bt_jc.asm ├── cfmerge.asm ├── ror_clearof.asm ├── test_high.asm ├── adc.asm ├── ssa_phi_bug.asm └── pmovmskb.asm /external/zydis/tests/cases/mvex_025.out: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc4_026.out: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc4_027.out: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_007.in: -------------------------------------------------------------------------------- 1 | -64 af -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_009.in: -------------------------------------------------------------------------------- 1 | -64 5c -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_016.in: -------------------------------------------------------------------------------- 1 | -64 d7 -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_017.in: -------------------------------------------------------------------------------- 1 | -64 50 -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_020.in: -------------------------------------------------------------------------------- 1 | -64 5f -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_023.in: -------------------------------------------------------------------------------- 1 | -64 9b -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_024.in: -------------------------------------------------------------------------------- 1 | -64 51 -------------------------------------------------------------------------------- /external/fmt/support/bazel/.bazelversion: -------------------------------------------------------------------------------- 1 | 7.1.2 2 | -------------------------------------------------------------------------------- /external/zydis/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: flobernd -------------------------------------------------------------------------------- /external/zydis/tests/cases/3dnow_000.in: -------------------------------------------------------------------------------- 1 | -64 0f0f3797 -------------------------------------------------------------------------------- /external/zydis/tests/cases/3dnow_002.in: -------------------------------------------------------------------------------- 1 | -64 0f0f12a0 -------------------------------------------------------------------------------- /external/zydis/tests/cases/3dnow_003.in: -------------------------------------------------------------------------------- 1 | -64 0f0fe2a4 -------------------------------------------------------------------------------- /external/zydis/tests/cases/3dnow_005.in: -------------------------------------------------------------------------------- 1 | -64 0f0fcdb7 -------------------------------------------------------------------------------- /external/zydis/tests/cases/3dnow_006.in: -------------------------------------------------------------------------------- 1 | -64 0f0ff590 -------------------------------------------------------------------------------- /external/zydis/tests/cases/3dnow_007.in: -------------------------------------------------------------------------------- 1 | -64 0f0fe996 -------------------------------------------------------------------------------- /external/zydis/tests/cases/3dnow_009.in: -------------------------------------------------------------------------------- 1 | -64 0f0fe1b4 -------------------------------------------------------------------------------- /external/zydis/tests/cases/3dnow_013.in: -------------------------------------------------------------------------------- 1 | -64 0f0f028e -------------------------------------------------------------------------------- /external/zydis/tests/cases/3dnow_014.in: -------------------------------------------------------------------------------- 1 | -64 0f0f7866b0 -------------------------------------------------------------------------------- /external/zydis/tests/cases/3dnow_016.in: -------------------------------------------------------------------------------- 1 | -64 0f0f03bf -------------------------------------------------------------------------------- /external/zydis/tests/cases/3dnow_017.in: -------------------------------------------------------------------------------- 1 | -64 0f0f1390 -------------------------------------------------------------------------------- /external/zydis/tests/cases/3dnow_022.in: -------------------------------------------------------------------------------- 1 | -64 0f0feca0 -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_000.in: -------------------------------------------------------------------------------- 1 | -64 26c9 -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_002.in: -------------------------------------------------------------------------------- 1 | -64 3139 -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_003.in: -------------------------------------------------------------------------------- 1 | -64 b7a7 -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_004.in: -------------------------------------------------------------------------------- 1 | -64 753e -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_005.in: -------------------------------------------------------------------------------- 1 | -64 e396 -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_008.in: -------------------------------------------------------------------------------- 1 | -64 e16c -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_010.in: -------------------------------------------------------------------------------- 1 | -64 4f92 -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_011.in: -------------------------------------------------------------------------------- 1 | -64 7414 -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_012.in: -------------------------------------------------------------------------------- 1 | -64 c2e95d -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_013.in: -------------------------------------------------------------------------------- 1 | -64 7463 -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_014.in: -------------------------------------------------------------------------------- 1 | -64 0219 -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_015.in: -------------------------------------------------------------------------------- 1 | -64 26df17 -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_022.in: -------------------------------------------------------------------------------- 1 | -64 74b8 -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_036.in: -------------------------------------------------------------------------------- 1 | -32 6674FC -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_048.in: -------------------------------------------------------------------------------- 1 | -64 3E7D00 -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc4_008.in: -------------------------------------------------------------------------------- 1 | -64 c4e2c9aa38 -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc4_016.in: -------------------------------------------------------------------------------- 1 | -64 c4c171ebd3 -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc4_020.in: -------------------------------------------------------------------------------- 1 | -64 c4a2f3f6f8 -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc4_021.in: -------------------------------------------------------------------------------- 1 | -64 c42109fe07 -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc4_022.in: -------------------------------------------------------------------------------- 1 | -64 c482a2f7cc -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc4_023.in: -------------------------------------------------------------------------------- 1 | -64 c461ed5dc3 -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc4_024.in: -------------------------------------------------------------------------------- 1 | -64 c4a121e4c1 -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc5_000.in: -------------------------------------------------------------------------------- 1 | -64 c535f4c0 -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc5_001.in: -------------------------------------------------------------------------------- 1 | -64 c539e5f7 -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc5_002.in: -------------------------------------------------------------------------------- 1 | -64 c57e2ce0 -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc5_003.in: -------------------------------------------------------------------------------- 1 | -64 c5fe53759e -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc5_009.in: -------------------------------------------------------------------------------- 1 | -64 c595f26b43 -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc5_013.in: -------------------------------------------------------------------------------- 1 | -64 c5457436 -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc5_015.in: -------------------------------------------------------------------------------- 1 | -64 c5e45f18 -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc5_016.in: -------------------------------------------------------------------------------- 1 | -64 c5a9dd3a -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc5_018.in: -------------------------------------------------------------------------------- 1 | -64 c50dd5e6 -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc5_019.in: -------------------------------------------------------------------------------- 1 | -64 c5c5db6d07 -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc5_020.in: -------------------------------------------------------------------------------- 1 | -64 c531eb1a -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc5_021.in: -------------------------------------------------------------------------------- 1 | -64 c54962760c -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc5_022.in: -------------------------------------------------------------------------------- 1 | -64 c549fdd8 -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc5_023.in: -------------------------------------------------------------------------------- 1 | -64 c5eb590411 -------------------------------------------------------------------------------- /external/zydis/tests/cases/xop_001.in: -------------------------------------------------------------------------------- 1 | -64 8f49889500 -------------------------------------------------------------------------------- /external/zydis/tests/cases/xop_002.in: -------------------------------------------------------------------------------- 1 | -64 8f69d89919 -------------------------------------------------------------------------------- /external/zydis/tests/cases/xop_003.in: -------------------------------------------------------------------------------- 1 | -64 8f0868a6c023 -------------------------------------------------------------------------------- /external/zydis/tests/cases/xop_005.in: -------------------------------------------------------------------------------- 1 | -64 8f8828a2125a -------------------------------------------------------------------------------- /external/zydis/tests/cases/xop_007.in: -------------------------------------------------------------------------------- 1 | -64 8f88008ef1d3 -------------------------------------------------------------------------------- /external/zydis/tests/cases/xop_008.in: -------------------------------------------------------------------------------- 1 | -64 8f69d8952c30 -------------------------------------------------------------------------------- /external/zydis/tests/cases/xop_009.in: -------------------------------------------------------------------------------- 1 | -64 8f49089b5dd5 -------------------------------------------------------------------------------- /external/zydis/tests/cases/xop_010.in: -------------------------------------------------------------------------------- 1 | -64 8fa9f89bf3 -------------------------------------------------------------------------------- /external/zydis/tests/cases/xop_013.in: -------------------------------------------------------------------------------- 1 | -64 8fa9789a764c -------------------------------------------------------------------------------- /external/zydis/tests/cases/xop_016.in: -------------------------------------------------------------------------------- 1 | -64 8fa9f89126 -------------------------------------------------------------------------------- /external/zydis/tests/cases/xop_017.in: -------------------------------------------------------------------------------- 1 | -64 8fc840ce3113 -------------------------------------------------------------------------------- /external/zydis/tests/cases/xop_018.in: -------------------------------------------------------------------------------- 1 | -64 8f0830ed09ec -------------------------------------------------------------------------------- /external/zydis/tests/cases/xop_019.in: -------------------------------------------------------------------------------- 1 | -64 8f293892e1 -------------------------------------------------------------------------------- /external/zydis/tests/cases/xop_020.in: -------------------------------------------------------------------------------- 1 | -64 8fe8308f26ed -------------------------------------------------------------------------------- /external/zydis/tests/cases/xop_022.in: -------------------------------------------------------------------------------- 1 | -64 8f498899e7 -------------------------------------------------------------------------------- /external/FEX/ASM/Disabled_Tests_x64: -------------------------------------------------------------------------------- 1 | # Nothing here yet 2 | -------------------------------------------------------------------------------- /external/FEX/ASM/Known_Failures: -------------------------------------------------------------------------------- 1 | Test_X87/D9_F8.asm 2 | -------------------------------------------------------------------------------- /external/zydis/tests/cases/3dnow_004.in: -------------------------------------------------------------------------------- 1 | -64 4f0f0f6f7ab7 -------------------------------------------------------------------------------- /external/zydis/tests/cases/3dnow_010.in: -------------------------------------------------------------------------------- 1 | -64 4df20f0f66c5b6 -------------------------------------------------------------------------------- /external/zydis/tests/cases/3dnow_018.in: -------------------------------------------------------------------------------- 1 | -64 f3410f0f17b6 -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_001.in: -------------------------------------------------------------------------------- 1 | -64 a9a1ef165e -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_006.in: -------------------------------------------------------------------------------- 1 | -64 ba811a2f42 -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_018.in: -------------------------------------------------------------------------------- 1 | -64 09a76fe3101b -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_019.in: -------------------------------------------------------------------------------- 1 | -64 bb0110f111 -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_025.in: -------------------------------------------------------------------------------- 1 | -32 A077777777 -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_026.in: -------------------------------------------------------------------------------- 1 | -32 A088888888 -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_029.in: -------------------------------------------------------------------------------- 1 | -32 8B0D77777777 -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_030.in: -------------------------------------------------------------------------------- 1 | -32 8B0D88888888 -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_033.in: -------------------------------------------------------------------------------- 1 | -32 8B8877777777 -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_034.in: -------------------------------------------------------------------------------- 1 | -32 8B8888888888 -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_037.in: -------------------------------------------------------------------------------- 1 | -32 66C7F8FAFF -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_038.in: -------------------------------------------------------------------------------- 1 | -64 3eff10 2 | -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_039.in: -------------------------------------------------------------------------------- 1 | -64 3e2eff10 2 | -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_040.in: -------------------------------------------------------------------------------- 1 | -64 2e3eff10 2 | -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_041.in: -------------------------------------------------------------------------------- 1 | -32 3eff10 2 | -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_042.in: -------------------------------------------------------------------------------- 1 | -32 3e2eff10 2 | -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_043.in: -------------------------------------------------------------------------------- 1 | -32 2e3eff10 2 | -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_044.in: -------------------------------------------------------------------------------- 1 | -32 64263EFF10 -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_045.in: -------------------------------------------------------------------------------- 1 | -32 3E6426FF10 -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_046.in: -------------------------------------------------------------------------------- 1 | -64 64263EFF10 -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_047.in: -------------------------------------------------------------------------------- 1 | -64 3E6426FF10 -------------------------------------------------------------------------------- /external/zydis/tests/cases/evex_000.in: -------------------------------------------------------------------------------- 1 | -64 62d2cd2b147b4f -------------------------------------------------------------------------------- /external/zydis/tests/cases/evex_001.in: -------------------------------------------------------------------------------- 1 | -64 6223cd4f3a55e34f -------------------------------------------------------------------------------- /external/zydis/tests/cases/evex_002.in: -------------------------------------------------------------------------------- 1 | -64 6211e55ffb3cb0 -------------------------------------------------------------------------------- /external/zydis/tests/cases/evex_003.in: -------------------------------------------------------------------------------- 1 | -64 6202dd140d7c8fe4 -------------------------------------------------------------------------------- /external/zydis/tests/cases/evex_004.in: -------------------------------------------------------------------------------- 1 | -64 62d29d432c16 -------------------------------------------------------------------------------- /external/zydis/tests/cases/evex_005.in: -------------------------------------------------------------------------------- 1 | -64 6292fd48aed6 -------------------------------------------------------------------------------- /external/zydis/tests/cases/evex_006.in: -------------------------------------------------------------------------------- 1 | -64 62b12541747806 -------------------------------------------------------------------------------- /external/zydis/tests/cases/evex_007.in: -------------------------------------------------------------------------------- 1 | -64 62b1b5dbc62227 -------------------------------------------------------------------------------- /external/zydis/tests/cases/evex_008.in: -------------------------------------------------------------------------------- 1 | -64 6201758ed57993 -------------------------------------------------------------------------------- /external/zydis/tests/cases/evex_009.in: -------------------------------------------------------------------------------- 1 | -64 62a2c50343c7 -------------------------------------------------------------------------------- /external/zydis/tests/cases/evex_011.in: -------------------------------------------------------------------------------- 1 | -64 62526513452b -------------------------------------------------------------------------------- /external/zydis/tests/cases/evex_012.in: -------------------------------------------------------------------------------- 1 | -64 62416d82687291 -------------------------------------------------------------------------------- /external/zydis/tests/cases/evex_013.in: -------------------------------------------------------------------------------- 1 | -64 62016dc2e15cd55e -------------------------------------------------------------------------------- /external/zydis/tests/cases/evex_014.in: -------------------------------------------------------------------------------- 1 | -64 62821d1c9bd3 -------------------------------------------------------------------------------- /external/zydis/tests/cases/evex_015.in: -------------------------------------------------------------------------------- 1 | -64 62e20545764136 -------------------------------------------------------------------------------- /external/zydis/tests/cases/evex_017.in: -------------------------------------------------------------------------------- 1 | -64 6251b54167c7 -------------------------------------------------------------------------------- /external/zydis/tests/cases/evex_018.in: -------------------------------------------------------------------------------- 1 | -64 62627ecc11e9 -------------------------------------------------------------------------------- /external/zydis/tests/cases/evex_021.in: -------------------------------------------------------------------------------- 1 | -64 6253cda150f078 -------------------------------------------------------------------------------- /external/zydis/tests/cases/evex_022.in: -------------------------------------------------------------------------------- 1 | -64 62420dba7722 -------------------------------------------------------------------------------- /external/zydis/tests/cases/evex_023.in: -------------------------------------------------------------------------------- 1 | -64 62b1cf4758eb -------------------------------------------------------------------------------- /external/zydis/tests/cases/evex_024.in: -------------------------------------------------------------------------------- 1 | -64 6233558a0a614788 -------------------------------------------------------------------------------- /external/zydis/tests/cases/evex_025.in: -------------------------------------------------------------------------------- 1 | -64 62F17C182FC1 -------------------------------------------------------------------------------- /external/zydis/tests/cases/evex_026.in: -------------------------------------------------------------------------------- 1 | -64 62E30D1B0AD3A5 -------------------------------------------------------------------------------- /external/zydis/tests/cases/evex_028.in: -------------------------------------------------------------------------------- 1 | -64 62257D3E5B7373 -------------------------------------------------------------------------------- /external/zydis/tests/cases/mvex_000.in: -------------------------------------------------------------------------------- 1 | -64 627271ac45cf -------------------------------------------------------------------------------- /external/zydis/tests/cases/mvex_001.in: -------------------------------------------------------------------------------- 1 | -64 62c2e9159a19 -------------------------------------------------------------------------------- /external/zydis/tests/cases/mvex_002.in: -------------------------------------------------------------------------------- 1 | -64 6262191eb530 -------------------------------------------------------------------------------- /external/zydis/tests/cases/mvex_003.in: -------------------------------------------------------------------------------- 1 | -64 6251680c59f4 -------------------------------------------------------------------------------- /external/zydis/tests/cases/mvex_004.in: -------------------------------------------------------------------------------- 1 | -64 6202719d9a528f -------------------------------------------------------------------------------- /external/zydis/tests/cases/mvex_006.in: -------------------------------------------------------------------------------- 1 | -64 6272891fbcf5 -------------------------------------------------------------------------------- /external/zydis/tests/cases/mvex_007.in: -------------------------------------------------------------------------------- 1 | -64 620241c46530 -------------------------------------------------------------------------------- /external/zydis/tests/cases/mvex_008.in: -------------------------------------------------------------------------------- 1 | -64 6222794b3f56a7 -------------------------------------------------------------------------------- /external/zydis/tests/cases/mvex_009.in: -------------------------------------------------------------------------------- 1 | -64 6272593eae37 -------------------------------------------------------------------------------- /external/zydis/tests/cases/mvex_010.in: -------------------------------------------------------------------------------- 1 | -64 62e16126fa457b -------------------------------------------------------------------------------- /external/zydis/tests/cases/mvex_011.in: -------------------------------------------------------------------------------- 1 | -64 6202b120526c83be -------------------------------------------------------------------------------- /external/zydis/tests/cases/mvex_012.in: -------------------------------------------------------------------------------- 1 | -64 6202013ecc7ec5 -------------------------------------------------------------------------------- /external/zydis/tests/cases/mvex_014.in: -------------------------------------------------------------------------------- 1 | -64 62d261b2b5fe -------------------------------------------------------------------------------- /external/zydis/tests/cases/mvex_015.in: -------------------------------------------------------------------------------- 1 | -64 625201719ae0 -------------------------------------------------------------------------------- /external/zydis/tests/cases/mvex_017.in: -------------------------------------------------------------------------------- 1 | -64 62f2f12dbe6f9e -------------------------------------------------------------------------------- /external/zydis/tests/cases/mvex_019.in: -------------------------------------------------------------------------------- 1 | -64 62d261b2b4f8 -------------------------------------------------------------------------------- /external/zydis/tests/cases/mvex_022.in: -------------------------------------------------------------------------------- 1 | -64 62e23915cdf2 -------------------------------------------------------------------------------- /external/zydis/tests/cases/mvex_024.in: -------------------------------------------------------------------------------- 1 | -64 62e1612bdbd3 -------------------------------------------------------------------------------- /external/zydis/tests/cases/mvex_025.in: -------------------------------------------------------------------------------- 1 | -64 62F279585000 -------------------------------------------------------------------------------- /external/zydis/tests/cases/mvex_026.in: -------------------------------------------------------------------------------- 1 | -64 62F271E950C2 -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc4_000.in: -------------------------------------------------------------------------------- 1 | -64 c46259cf4f5d -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc4_001.in: -------------------------------------------------------------------------------- 1 | -64 c4c1057466fd -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc4_002.in: -------------------------------------------------------------------------------- 1 | -64 c4a3057c33e5 -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc4_003.in: -------------------------------------------------------------------------------- 1 | -64 c483b57b08f7 -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc4_004.in: -------------------------------------------------------------------------------- 1 | -64 c44189dc4ee8 -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc4_005.in: -------------------------------------------------------------------------------- 1 | -64 c4022d3b556a -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc4_009.in: -------------------------------------------------------------------------------- 1 | -64 c4214d624562 -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc4_010.in: -------------------------------------------------------------------------------- 1 | -64 c443fd09263e -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc4_011.in: -------------------------------------------------------------------------------- 1 | -64 c482192e54e0b7 -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc4_012.in: -------------------------------------------------------------------------------- 1 | -64 c44175572490 -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc4_013.in: -------------------------------------------------------------------------------- 1 | -64 c481a0124058 -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc4_014.in: -------------------------------------------------------------------------------- 1 | -64 c4825d977a50 -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc4_017.in: -------------------------------------------------------------------------------- 1 | -64 c4a161667910 -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc4_018.in: -------------------------------------------------------------------------------- 1 | -64 c423590be6ae -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc4_019.in: -------------------------------------------------------------------------------- 1 | -64 c4c18a527ea2 -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc4_025.in: -------------------------------------------------------------------------------- 1 | -64 C4E25A5EDE 2 | -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc4_026.in: -------------------------------------------------------------------------------- 1 | -64 C4E24A5EDE 2 | -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc4_027.in: -------------------------------------------------------------------------------- 1 | -64 C4E25A5EF6 2 | -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc5_007.in: -------------------------------------------------------------------------------- 1 | -64 c541c475aa5d -------------------------------------------------------------------------------- /external/zydis/tests/cases/xop_000.in: -------------------------------------------------------------------------------- 1 | -64 8fe860ef4e3dc0 -------------------------------------------------------------------------------- /external/zydis/tests/cases/xop_004.in: -------------------------------------------------------------------------------- 1 | -64 8f68589f761c1a -------------------------------------------------------------------------------- /external/zydis/tests/cases/xop_024.in: -------------------------------------------------------------------------------- 1 | -64 8f68308f3c0998 -------------------------------------------------------------------------------- /external/FEX/ASM/Disabled_Tests_ARMv8.0: -------------------------------------------------------------------------------- 1 | # Nothing here yet 2 | -------------------------------------------------------------------------------- /external/FEX/ASM/Disabled_Tests_ARMv8.2: -------------------------------------------------------------------------------- 1 | # Nothing here yet 2 | -------------------------------------------------------------------------------- /external/FEX/ASM/Disabled_Tests_ARMv8.4: -------------------------------------------------------------------------------- 1 | # Nothing here yet 2 | -------------------------------------------------------------------------------- /external/zydis/tests/cases/3dnow_001.in: -------------------------------------------------------------------------------- 1 | -64 0f0f93b3ee99f190 -------------------------------------------------------------------------------- /external/zydis/tests/cases/3dnow_008.in: -------------------------------------------------------------------------------- 1 | -64 650f0fa84cc3abbf0d -------------------------------------------------------------------------------- /external/zydis/tests/cases/3dnow_011.in: -------------------------------------------------------------------------------- 1 | -64 0f0faa0dfb21518a -------------------------------------------------------------------------------- /external/zydis/tests/cases/3dnow_012.in: -------------------------------------------------------------------------------- 1 | -64 0f0fb79a3e9b15a4 -------------------------------------------------------------------------------- /external/zydis/tests/cases/3dnow_015.in: -------------------------------------------------------------------------------- 1 | -64 0f0f843181bcf6369a -------------------------------------------------------------------------------- /external/zydis/tests/cases/3dnow_019.in: -------------------------------------------------------------------------------- 1 | -64 0f0fbbdf7cb74394 -------------------------------------------------------------------------------- /external/zydis/tests/cases/3dnow_020.in: -------------------------------------------------------------------------------- 1 | -64 0f0f8fc1bb4c8f96 -------------------------------------------------------------------------------- /external/zydis/tests/cases/3dnow_021.in: -------------------------------------------------------------------------------- 1 | -64 0f0f97d4fd148aa6 -------------------------------------------------------------------------------- /external/zydis/tests/cases/3dnow_023.in: -------------------------------------------------------------------------------- 1 | -64 0f0f92bac8415e1c -------------------------------------------------------------------------------- /external/zydis/tests/cases/3dnow_024.in: -------------------------------------------------------------------------------- 1 | -64 0f0fac4a7fe31afeaa -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_021.in: -------------------------------------------------------------------------------- 1 | -64 a37b10a8c6e97a880f -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_027.in: -------------------------------------------------------------------------------- 1 | -64 A07777777777777777 -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_028.in: -------------------------------------------------------------------------------- 1 | -64 A08888888888888888 -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_031.in: -------------------------------------------------------------------------------- 1 | -64 488B0D88888888 -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_032.in: -------------------------------------------------------------------------------- 1 | -64 488B0D88888888 -------------------------------------------------------------------------------- /external/zydis/tests/cases/default_035.in: -------------------------------------------------------------------------------- 1 | -64 0F1A844337133713 -------------------------------------------------------------------------------- /external/zydis/tests/cases/evex_010.in: -------------------------------------------------------------------------------- 1 | -64 62b28dc99eaf3d073e05 -------------------------------------------------------------------------------- /external/zydis/tests/cases/evex_016.in: -------------------------------------------------------------------------------- 1 | -64 62f1751e76a5df8f5c88 -------------------------------------------------------------------------------- /external/zydis/tests/cases/evex_019.in: -------------------------------------------------------------------------------- 1 | -64 62413da1608e355e7a8e -------------------------------------------------------------------------------- /external/zydis/tests/cases/evex_020.in: -------------------------------------------------------------------------------- 1 | -64 621155bddbb112f8157b -------------------------------------------------------------------------------- /external/zydis/tests/cases/evex_027.in: -------------------------------------------------------------------------------- 1 | -64 6256565656BF9C010000 -------------------------------------------------------------------------------- /external/zydis/tests/cases/jmp_far_16.in: -------------------------------------------------------------------------------- 1 | -32 669AADE44E6D 2 | -------------------------------------------------------------------------------- /external/zydis/tests/cases/jmp_far_32.in: -------------------------------------------------------------------------------- 1 | -32 9AADEADDE44E6D 2 | -------------------------------------------------------------------------------- /external/zydis/tests/cases/mvex_013.in: -------------------------------------------------------------------------------- 1 | -64 62c2392d3b83c176fcab -------------------------------------------------------------------------------- /external/zydis/tests/cases/mvex_018.in: -------------------------------------------------------------------------------- 1 | -64 43656212414dcc14e0 -------------------------------------------------------------------------------- /external/zydis/tests/cases/mvex_020.in: -------------------------------------------------------------------------------- 1 | -64 6262c1a1b880716ff709 -------------------------------------------------------------------------------- /external/zydis/tests/cases/mvex_021.in: -------------------------------------------------------------------------------- 1 | -64 62c2690f3d81bbade34d -------------------------------------------------------------------------------- /external/zydis/tests/cases/mvex_023.in: -------------------------------------------------------------------------------- 1 | -64 628279f065a7701808b4 -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc4_006.in: -------------------------------------------------------------------------------- 1 | -64 c4423d9b80c446bea0 -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc4_007.in: -------------------------------------------------------------------------------- 1 | -64 c421f56d1cfdfdc6fcd7 -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc4_015.in: -------------------------------------------------------------------------------- 1 | -64 c441b1e995c8ff9af7 -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc5_004.in: -------------------------------------------------------------------------------- 1 | -64 c561debc1366d60000 -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc5_005.in: -------------------------------------------------------------------------------- 1 | -64 c5b012b8511784b0 -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc5_006.in: -------------------------------------------------------------------------------- 1 | -64 c57e10878f5dad3f -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc5_008.in: -------------------------------------------------------------------------------- 1 | -64 c559dc0d3aa20f89 -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc5_010.in: -------------------------------------------------------------------------------- 1 | -64 c5162a983cb6831e -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc5_011.in: -------------------------------------------------------------------------------- 1 | -64 65c5e884e37cfe42 -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc5_012.in: -------------------------------------------------------------------------------- 1 | -64 c565d9b17c549235 -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc5_014.in: -------------------------------------------------------------------------------- 1 | -64 c5ec14913042ae34 -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc5_017.in: -------------------------------------------------------------------------------- 1 | -64 c513589b8db5b5fd -------------------------------------------------------------------------------- /external/zydis/tests/cases/vexc5_024.in: -------------------------------------------------------------------------------- 1 | -64 c5d45eaeebda88be -------------------------------------------------------------------------------- /external/zydis/tests/cases/xop_006.in: -------------------------------------------------------------------------------- 1 | -64 8f08408eb34ece0a0d0d -------------------------------------------------------------------------------- /external/zydis/tests/cases/xop_011.in: -------------------------------------------------------------------------------- 1 | -64 8f8878c2868031ee390a -------------------------------------------------------------------------------- /external/zydis/tests/cases/xop_012.in: -------------------------------------------------------------------------------- 1 | -64 8fa870ce822f3a96fb93 -------------------------------------------------------------------------------- /external/zydis/tests/cases/xop_014.in: -------------------------------------------------------------------------------- 1 | -64 8f6850cfa16cb87f15c1 -------------------------------------------------------------------------------- /external/zydis/tests/cases/xop_015.in: -------------------------------------------------------------------------------- 1 | -64 8f096895255f5c16c9 -------------------------------------------------------------------------------- /external/zydis/tests/cases/xop_021.in: -------------------------------------------------------------------------------- 1 | -64 8f2800eeb2f0060149fa -------------------------------------------------------------------------------- /external/zydis/tests/cases/xop_023.in: -------------------------------------------------------------------------------- 1 | -64 8f8870eebea16e55a6d3 -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/Known_Failures: -------------------------------------------------------------------------------- 1 | Test_32Bit_X87/D9_F8.asm 2 | -------------------------------------------------------------------------------- /external/FEX/ASM/Known_Failures_host: -------------------------------------------------------------------------------- 1 | Test_X87/FXAM_Simple.asm 2 | -------------------------------------------------------------------------------- /external/zydis/tests/cases/mvex_005.in: -------------------------------------------------------------------------------- 1 | -64 62a149fadb8ce932280891 -------------------------------------------------------------------------------- /external/zydis/tests/cases/mvex_016.in: -------------------------------------------------------------------------------- 1 | -64 629168cfc2a34446843069 -------------------------------------------------------------------------------- /external/biscuit/.gitignore: -------------------------------------------------------------------------------- 1 | # Built files 2 | build/ 3 | build-*/ 4 | -------------------------------------------------------------------------------- /external/zydis/dependencies/zycore/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: flobernd -------------------------------------------------------------------------------- /external/fmt/support/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OFFTKP/felix86/HEAD/docs/example.png -------------------------------------------------------------------------------- /src/felix86/common/git_version.cpp.in: -------------------------------------------------------------------------------- 1 | const char* g_git_hash = "@GIT_HASH@"; 2 | -------------------------------------------------------------------------------- /src/felix86/common/info.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | const char* get_version_full(); 4 | -------------------------------------------------------------------------------- /external/fmt/support/bazel/WORKSPACE.bazel: -------------------------------------------------------------------------------- 1 | # WORKSPACE marker file needed by Bazel 2 | 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | build/ 2 | x86build/ 3 | .clangd 4 | .cache 5 | *.txt 6 | !CMakeLists.txt 7 | .vscode -------------------------------------------------------------------------------- /external/biscuit/tests/src/main.cpp: -------------------------------------------------------------------------------- 1 | #define CATCH_CONFIG_MAIN 2 | #include 3 | -------------------------------------------------------------------------------- /external/Catch2/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: "horenmar" 2 | custom: "https://www.paypal.me/horenmar" 3 | -------------------------------------------------------------------------------- /external/biscuit/examples/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory(cpuinfo) 2 | add_subdirectory(literal) 3 | -------------------------------------------------------------------------------- /external/fmt/test/fuzzing/.gitignore: -------------------------------------------------------------------------------- 1 | # ignore artifacts from the build.sh script 2 | build-*/ 3 | 4 | -------------------------------------------------------------------------------- /external/Catch2/tests/SelfTest/Misc/invalid-test-names.input: -------------------------------------------------------------------------------- 1 | Test with special, characters in \" name 2 | -------------------------------------------------------------------------------- /external/Catch2/tests/SelfTest/Misc/plain-old-tests.input: -------------------------------------------------------------------------------- 1 | random SECTION tests 2 | nested SECTION tests 3 | -------------------------------------------------------------------------------- /tests/Binaries/SMC/inline.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OFFTKP/felix86/HEAD/tests/Binaries/SMC/inline.out -------------------------------------------------------------------------------- /external/Catch2/tests/SelfTest/Misc/special-characters-in-file.input: -------------------------------------------------------------------------------- 1 | Test with special\, characters \"in name 2 | -------------------------------------------------------------------------------- /external/FEX/ASM/Known_Failures_int: -------------------------------------------------------------------------------- 1 | # FPREM is incorrect 2 | Test_X87/D9_F5_2.asm 3 | Test_X87/D9_F5_3.asm 4 | -------------------------------------------------------------------------------- /tests/Binaries/Signals/mask.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OFFTKP/felix86/HEAD/tests/Binaries/Signals/mask.out -------------------------------------------------------------------------------- /external/Catch2/MODULE.bazel: -------------------------------------------------------------------------------- 1 | module(name = "catch2") 2 | 3 | bazel_dep(name = "bazel_skylib", version = "1.5.0") 4 | -------------------------------------------------------------------------------- /external/fmt/doc/fmt.js: -------------------------------------------------------------------------------- 1 | document$.subscribe(() => { 2 | hljs.highlightAll(), 3 | { language: 'c++' } 4 | }) 5 | -------------------------------------------------------------------------------- /external/fmt/test/gtest/.clang-format: -------------------------------------------------------------------------------- 1 | # Disable clang-format here 2 | DisableFormat: true 3 | SortIncludes: Never 4 | -------------------------------------------------------------------------------- /tests/Binaries/Signals/alarm.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OFFTKP/felix86/HEAD/tests/Binaries/Signals/alarm.out -------------------------------------------------------------------------------- /tests/Binaries/Signals/frame.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OFFTKP/felix86/HEAD/tests/Binaries/Signals/frame.out -------------------------------------------------------------------------------- /tests/Binaries/Signals/mask_32.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OFFTKP/felix86/HEAD/tests/Binaries/Signals/mask_32.out -------------------------------------------------------------------------------- /tests/Binaries/Signals/sigchld.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OFFTKP/felix86/HEAD/tests/Binaries/Signals/sigchld.out -------------------------------------------------------------------------------- /tests/Binaries/Simple/cpuinfo.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OFFTKP/felix86/HEAD/tests/Binaries/Simple/cpuinfo.out -------------------------------------------------------------------------------- /external/Catch2/meson_options.txt: -------------------------------------------------------------------------------- 1 | option('tests', type: 'boolean', value: true, description: 'Build the unit tests') 2 | -------------------------------------------------------------------------------- /tests/Binaries/Clone/posix_spawn.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OFFTKP/felix86/HEAD/tests/Binaries/Clone/posix_spawn.out -------------------------------------------------------------------------------- /tests/Binaries/Filesystem/chroot.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OFFTKP/felix86/HEAD/tests/Binaries/Filesystem/chroot.out -------------------------------------------------------------------------------- /tests/Binaries/Filesystem/utime.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OFFTKP/felix86/HEAD/tests/Binaries/Filesystem/utime.out -------------------------------------------------------------------------------- /tests/Binaries/Signals/alarm_32.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OFFTKP/felix86/HEAD/tests/Binaries/Signals/alarm_32.out -------------------------------------------------------------------------------- /tests/Binaries/Signals/frame_32.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OFFTKP/felix86/HEAD/tests/Binaries/Signals/frame_32.out -------------------------------------------------------------------------------- /tests/Binaries/Signals/recursive.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OFFTKP/felix86/HEAD/tests/Binaries/Signals/recursive.out -------------------------------------------------------------------------------- /tests/Binaries/Simple/cmpxchg_16.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OFFTKP/felix86/HEAD/tests/Binaries/Simple/cmpxchg_16.out -------------------------------------------------------------------------------- /tests/Binaries/Simple/cmpxchg_32.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OFFTKP/felix86/HEAD/tests/Binaries/Simple/cmpxchg_32.out -------------------------------------------------------------------------------- /tests/Binaries/Simple/cmpxchg_64.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OFFTKP/felix86/HEAD/tests/Binaries/Simple/cmpxchg_64.out -------------------------------------------------------------------------------- /tests/Binaries/Simple/cmpxchg_8.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OFFTKP/felix86/HEAD/tests/Binaries/Simple/cmpxchg_8.out -------------------------------------------------------------------------------- /external/fmt/support/README: -------------------------------------------------------------------------------- 1 | This directory contains build support files such as 2 | 3 | * CMake modules 4 | * Build scripts 5 | -------------------------------------------------------------------------------- /src/felix86/hle/guest_libs/libEGL.so.1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OFFTKP/felix86/HEAD/src/felix86/hle/guest_libs/libEGL.so.1 -------------------------------------------------------------------------------- /src/felix86/hle/guest_libs/libGL.so.1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OFFTKP/felix86/HEAD/src/felix86/hle/guest_libs/libGL.so.1 -------------------------------------------------------------------------------- /src/felix86/hle/guest_libs/libGLX.so.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OFFTKP/felix86/HEAD/src/felix86/hle/guest_libs/libGLX.so.0 -------------------------------------------------------------------------------- /tests/Binaries/Clone/clone_atomic.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OFFTKP/felix86/HEAD/tests/Binaries/Clone/clone_atomic.out -------------------------------------------------------------------------------- /tests/Binaries/Clone/clone_simple.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OFFTKP/felix86/HEAD/tests/Binaries/Clone/clone_simple.out -------------------------------------------------------------------------------- /tests/Binaries/Filesystem/mkdirat.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OFFTKP/felix86/HEAD/tests/Binaries/Filesystem/mkdirat.out -------------------------------------------------------------------------------- /tests/Binaries/Filesystem/symlinks.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OFFTKP/felix86/HEAD/tests/Binaries/Filesystem/symlinks.out -------------------------------------------------------------------------------- /tests/Binaries/Signals/recursive2.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OFFTKP/felix86/HEAD/tests/Binaries/Signals/recursive2.out -------------------------------------------------------------------------------- /tests/Binaries/Signals/sigsuspend.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OFFTKP/felix86/HEAD/tests/Binaries/Signals/sigsuspend.out -------------------------------------------------------------------------------- /tests/Binaries/Simple/hello_world.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OFFTKP/felix86/HEAD/tests/Binaries/Simple/hello_world.out -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/Disabled_Tests_Simulator: -------------------------------------------------------------------------------- 1 | # Simulator can't handle `mrs x0, nzcv` 2 | Test_32Bit_SecondaryModRM/Reg_7_1.asm 3 | -------------------------------------------------------------------------------- /src/felix86/hle/guest_libs/libvulkan.so.1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OFFTKP/felix86/HEAD/src/felix86/hle/guest_libs/libvulkan.so.1 -------------------------------------------------------------------------------- /tests/Binaries/Filesystem/magic_links.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OFFTKP/felix86/HEAD/tests/Binaries/Filesystem/magic_links.out -------------------------------------------------------------------------------- /tests/Binaries/common.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // Magic number that indicates the test passed 4 | #define FELIX86_BTEST_SUCCESS (0x42) -------------------------------------------------------------------------------- /external/fmt/support/python/mkdocstrings_handlers/cxx/templates/README: -------------------------------------------------------------------------------- 1 | mkdocsstrings requires a handler to have a templates directory. 2 | -------------------------------------------------------------------------------- /src/felix86/hle/guest_libs/libluajit-5.1.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OFFTKP/felix86/HEAD/src/felix86/hle/guest_libs/libluajit-5.1.so -------------------------------------------------------------------------------- /tests/Binaries/Filesystem/chroot_fdinfo.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OFFTKP/felix86/HEAD/tests/Binaries/Filesystem/chroot_fdinfo.out -------------------------------------------------------------------------------- /tests/Binaries/Simple/unaligned_atomic.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OFFTKP/felix86/HEAD/tests/Binaries/Simple/unaligned_atomic.out -------------------------------------------------------------------------------- /external/Catch2/data/artwork/catch2-c-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OFFTKP/felix86/HEAD/external/Catch2/data/artwork/catch2-c-logo.png -------------------------------------------------------------------------------- /src/felix86/hle/guest_libs/x64-linux-vdso.so.1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OFFTKP/felix86/HEAD/src/felix86/hle/guest_libs/x64-linux-vdso.so.1 -------------------------------------------------------------------------------- /src/felix86/hle/ioctl/fs.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "felix86/common/types.hpp" 4 | 5 | int ioctl32_fs(int fd, u32 cmd, u32 args); 6 | -------------------------------------------------------------------------------- /tests/Binaries/Filesystem/chroot_propagate.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OFFTKP/felix86/HEAD/tests/Binaries/Filesystem/chroot_propagate.out -------------------------------------------------------------------------------- /tests/Binaries/Filesystem/chroot_symlinks.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OFFTKP/felix86/HEAD/tests/Binaries/Filesystem/chroot_symlinks.out -------------------------------------------------------------------------------- /external/Catch2/data/artwork/catch2-hand-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OFFTKP/felix86/HEAD/external/Catch2/data/artwork/catch2-hand-logo.png -------------------------------------------------------------------------------- /external/FEX/ASM/X87/D9_D0.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | } 4 | %endif 5 | bits 64 6 | 7 | ; Just to ensure execution 8 | fnop 9 | hlt 10 | -------------------------------------------------------------------------------- /external/zydis/.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "dependencies/zycore"] 2 | path = dependencies/zycore 3 | url = https://github.com/zyantific/zycore-c 4 | -------------------------------------------------------------------------------- /external/zydis/SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | ## Reporting a Vulnerability 4 | 5 | Please report security issues to `joel@zyantific.com` -------------------------------------------------------------------------------- /external/zydis/assets/screenshots/ZydisDisasm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OFFTKP/felix86/HEAD/external/zydis/assets/screenshots/ZydisDisasm.png -------------------------------------------------------------------------------- /external/zydis/assets/screenshots/ZydisInfo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OFFTKP/felix86/HEAD/external/zydis/assets/screenshots/ZydisInfo.png -------------------------------------------------------------------------------- /src/felix86/hle/guest_libs/libwayland-client.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OFFTKP/felix86/HEAD/src/felix86/hle/guest_libs/libwayland-client.so -------------------------------------------------------------------------------- /src/felix86/hle/ioctl/fat.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "felix86/common/types.hpp" 4 | 5 | int ioctl32_fat(int fd, u32 cmd, u32 args); 6 | -------------------------------------------------------------------------------- /external/Catch2/data/artwork/catch2-logo-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OFFTKP/felix86/HEAD/external/Catch2/data/artwork/catch2-logo-small.png -------------------------------------------------------------------------------- /external/FEX/ASM/Known_Failures_jit: -------------------------------------------------------------------------------- 1 | # FPREM is incorrect 2 | Test_X87/D9_F5_2.asm 3 | Test_X87/D9_F5_3.asm 4 | 5 | Test_FEX_bugs/32bit_syscall.asm 6 | -------------------------------------------------------------------------------- /src/felix86/hle/ioctl/tty.hpp: -------------------------------------------------------------------------------- 1 | 2 | #pragma once 3 | 4 | #include "felix86/common/types.hpp" 5 | 6 | int ioctl32_tty(int fd, u32 cmd, u32 args); 7 | -------------------------------------------------------------------------------- /external/FEX/ASM/Secondary/15_XX_5.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | } 4 | %endif 5 | bits 64 6 | 7 | ; Just to ensure execution 8 | lfence 9 | hlt 10 | -------------------------------------------------------------------------------- /external/FEX/ASM/Secondary/15_XX_6.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | } 4 | %endif 5 | bits 64 6 | 7 | ; Just to ensure execution 8 | mfence 9 | hlt 10 | -------------------------------------------------------------------------------- /external/FEX/ASM/Secondary/15_XX_7.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | } 4 | %endif 5 | bits 64 6 | 7 | ; Just to ensure execution 8 | sfence 9 | hlt 10 | -------------------------------------------------------------------------------- /external/FEX/ASM/Secondary/15_XX_7_2.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | } 4 | %endif 5 | bits 64 6 | 7 | mov rdx, 0xe0000000 8 | clflush [rdx] 9 | hlt 10 | -------------------------------------------------------------------------------- /external/FEX/ASM/Primary/Primary_9B.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | } 4 | %endif 5 | bits 64 6 | 7 | ; Just to ensure this executes 8 | fwait 9 | 10 | hlt 11 | -------------------------------------------------------------------------------- /external/fmt/support/bazel/MODULE.bazel: -------------------------------------------------------------------------------- 1 | module( 2 | name = "fmt", 3 | compatibility_level = 10, 4 | ) 5 | 6 | bazel_dep(name = "platforms", version = "0.0.10") 7 | -------------------------------------------------------------------------------- /src/felix86/hle/ipc32.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "felix86/common/types.hpp" 4 | 5 | int ipc32(u32 call, u32 first, u64 second, u64 third, void* ptr, u64 fifth); 6 | -------------------------------------------------------------------------------- /external/Catch2/tools/scripts/scriptCommon.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | 4 | catchPath = os.path.dirname(os.path.dirname(os.path.realpath( os.path.dirname(sys.argv[0])))) 5 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87/D9_EE.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0", "0"] 5 | } 6 | } 7 | %endif 8 | bits 64 9 | 10 | fldz 11 | 12 | hlt 13 | -------------------------------------------------------------------------------- /tests/Binaries/Simple/hello_world.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "common.h" 3 | 4 | int main() { 5 | printf("Hello, World!\n"); 6 | return FELIX86_BTEST_SUCCESS; 7 | } -------------------------------------------------------------------------------- /external/Catch2/data/artwork/catch2-logo-small-with-background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OFFTKP/felix86/HEAD/external/Catch2/data/artwork/catch2-logo-small-with-background.png -------------------------------------------------------------------------------- /external/fmt/test/static-export-test/main.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | extern std::string foo(); 5 | 6 | int main() { std::cout << foo() << std::endl; } 7 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87/D9_05.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | } 4 | %endif 5 | bits 64 6 | 7 | mov rdx, 0xe0000000 8 | ; Just to ensure execution 9 | fldcw [rdx] 10 | 11 | hlt 12 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/D9_D0.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "Mode": "32BIT" 4 | } 5 | %endif 6 | org 10000h 7 | bits 32 8 | 9 | ; Just to ensure execution 10 | fnop 11 | hlt 12 | -------------------------------------------------------------------------------- /external/biscuit/cmake/biscuit-config.cmake.in: -------------------------------------------------------------------------------- 1 | @PACKAGE_INIT@ 2 | 3 | include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@-targets.cmake") 4 | 5 | check_required_components(@PROJECT_NAME@) 6 | -------------------------------------------------------------------------------- /external/biscuit/examples/cpuinfo/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(cpuinfo cpuinfo.cpp) 2 | target_link_libraries(cpuinfo biscuit) 3 | set_property(TARGET cpuinfo PROPERTY CXX_STANDARD 20) 4 | -------------------------------------------------------------------------------- /external/biscuit/examples/literal/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(literal literal.cpp) 2 | target_link_libraries(literal biscuit) 3 | set_property(TARGET literal PROPERTY CXX_STANDARD 20) 4 | -------------------------------------------------------------------------------- /external/fmt/test/find-package-test/main.cc: -------------------------------------------------------------------------------- 1 | #include "fmt/format.h" 2 | 3 | int main(int argc, char** argv) { 4 | for (int i = 0; i < argc; ++i) fmt::print("{}: {}\n", i, argv[i]); 5 | } 6 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87/D9_E8.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x8000000000000000", "0x3FFF"] 5 | } 6 | } 7 | %endif 8 | bits 64 9 | 10 | fld1 11 | 12 | hlt 13 | -------------------------------------------------------------------------------- /external/fmt/test/add-subdirectory-test/main.cc: -------------------------------------------------------------------------------- 1 | #include "fmt/base.h" 2 | 3 | int main(int argc, char** argv) { 4 | for (int i = 0; i < argc; ++i) fmt::print("{}: {}\n", i, argv[i]); 5 | } 6 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87/D9_E9.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0xD49A784BCD1B8AFE", "0x4000"] 5 | } 6 | } 7 | %endif 8 | bits 64 9 | 10 | fldl2t 11 | 12 | hlt 13 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87/D9_EA.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0xB8AA3B295C17F0BC", "0x3FFF"] 5 | } 6 | } 7 | %endif 8 | bits 64 9 | 10 | fldl2e 11 | 12 | hlt 13 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87/D9_EB.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0xC90FDAA22168C235", "0x4000"] 5 | } 6 | } 7 | %endif 8 | bits 64 9 | 10 | fldpi 11 | 12 | hlt 13 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87/D9_EC.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x9A209A84FBCFF799", "0x3FFD"] 5 | } 6 | } 7 | %endif 8 | bits 64 9 | 10 | fldlg2 11 | 12 | hlt 13 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87/D9_ED.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0xB17217F7D1CF79AC", "0x3FFE"] 5 | } 6 | } 7 | %endif 8 | bits 64 9 | 10 | fldln2 11 | 12 | hlt 13 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/Disabled_Tests: -------------------------------------------------------------------------------- 1 | # Relies on undefined behaviour 2 | Test_32Bit_X87/D9_F9.asm 3 | 4 | Test_32Bit_X87/D9_F2.asm 5 | 6 | # Relies on rounding correctness 7 | Test_32Bit_X87/D9_F8.asm 8 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87_F64/D9_D0_F64.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "Env": { "FEX_X87REDUCEDPRECISION" : "1" } 4 | } 5 | %endif 6 | bits 64 7 | 8 | ; Just to ensure execution 9 | fnop 10 | hlt 11 | -------------------------------------------------------------------------------- /tests/ASM/felix86_bugs/crc_simple.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RBX": "0" 5 | } 6 | } 7 | %endif 8 | bits 64 9 | 10 | mov rax, 0x1234567890ABCDEF 11 | crc32 rbx, rax 12 | hlt -------------------------------------------------------------------------------- /tests/Binaries/build.sh: -------------------------------------------------------------------------------- 1 | DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 2 | (cd $DIR 3 | for file in **/*.c; do 4 | gcc -O3 -I./ -o ${file%.c}.out $file 5 | strip ${file%.c}.out 6 | done 7 | ) -------------------------------------------------------------------------------- /external/fmt/test/static-export-test/library.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | __attribute__((visibility("default"))) std::string foo() { 4 | return fmt::format(FMT_COMPILE("foo bar {}"), 4242); 5 | } 6 | -------------------------------------------------------------------------------- /external/Catch2/mdsnippets.json: -------------------------------------------------------------------------------- 1 | { 2 | "ReadOnly": false, 3 | "TocLevel": 5, 4 | "Exclude": [ 5 | "cmake-build" 6 | ], 7 | "WriteHeader": false, 8 | "Convention": "InPlaceOverwrite" 9 | } 10 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/D9_EE.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0", "0"] 5 | }, 6 | "Mode": "32BIT" 7 | } 8 | %endif 9 | org 10000h 10 | bits 32 11 | 12 | fldz 13 | 14 | hlt 15 | -------------------------------------------------------------------------------- /external/fmt/support/cmake/fmt-config.cmake.in: -------------------------------------------------------------------------------- 1 | @PACKAGE_INIT@ 2 | 3 | if (NOT TARGET fmt::fmt) 4 | include(${CMAKE_CURRENT_LIST_DIR}/@targets_export_name@.cmake) 5 | endif () 6 | 7 | check_required_components(fmt) 8 | -------------------------------------------------------------------------------- /external/zydis/.gitattributes: -------------------------------------------------------------------------------- 1 | *.inc eol=lf encoding=utf-8 linguist-language=C 2 | *.h eof=lf encoding=utf-8 3 | *.c eof=lf encoding=utf-8 4 | *.py eof=lf encoding=utf-8 5 | *.md eof=lf encoding=utf-8 6 | 7 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/D9_05.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "Mode": "32BIT" 4 | } 5 | %endif 6 | org 10000h 7 | bits 32 8 | 9 | mov edx, 0xe0000000 10 | ; Just to ensure execution 11 | fldcw [edx] 12 | 13 | hlt 14 | -------------------------------------------------------------------------------- /src/felix86/common/sudo.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | struct Sudo { 4 | static bool hasPermissions(); 5 | 6 | static bool dropPermissions(); 7 | 8 | [[noreturn]] static void requestPermissions(int argc, char** argv); 9 | }; -------------------------------------------------------------------------------- /src/felix86/hle/ioctl/amdgpu.hpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include "felix86/common/types.hpp" 3 | 4 | #define __user 5 | #include "headers/amdgpu_drm.h" 6 | #undef __user 7 | 8 | int ioctl32_amdgpu(int fd, u32 cmd, u32 args); 9 | -------------------------------------------------------------------------------- /src/felix86/hle/vdso.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "felix86/common/types.hpp" 5 | 6 | struct VDSO { 7 | static std::span getObject64(); 8 | 9 | private: 10 | VDSO() = delete; 11 | }; -------------------------------------------------------------------------------- /external/fmt/include/fmt/core.h: -------------------------------------------------------------------------------- 1 | // This file is only provided for compatibility and may be removed in future 2 | // versions. Use fmt/base.h if you don't need fmt::format and fmt/format.h 3 | // otherwise. 4 | 5 | #include "format.h" 6 | -------------------------------------------------------------------------------- /tests/ASM/felix86_bugs/bswap_word.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x1234567890abefcd" 5 | } 6 | } 7 | %endif 8 | bits 64 9 | 10 | mov rax, 0x1234567890abcdef 11 | db 0x66, 0x0f, 0xc8 12 | 13 | hlt -------------------------------------------------------------------------------- /external/FEX/ASM/TwoByte/0F_77.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | }, 5 | "MemoryRegions": { 6 | "0x100000000": "4096" 7 | } 8 | } 9 | %endif 10 | bits 64 11 | 12 | emms ; Just ensure it runs 13 | 14 | hlt 15 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87_F64/D9_05_F64.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "Env": { "FEX_X87REDUCEDPRECISION" : "1" } 4 | } 5 | %endif 6 | bits 64 7 | 8 | mov rdx, 0xe0000000 9 | ; Just to ensure execution 10 | fldcw [rdx] 11 | 12 | hlt 13 | -------------------------------------------------------------------------------- /src/felix86/hle/vdso.cpp: -------------------------------------------------------------------------------- 1 | #include "felix86/hle/guest_libs/x64-linux-vdso.h" 2 | #include "felix86/hle/vdso.hpp" 3 | 4 | std::span VDSO::getObject64() { 5 | return std::span{(u8*)x64_linux_vdso_so_1, x64_linux_vdso_so_1_size}; 6 | } -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/D9_E8.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x8000000000000000", "0x3FFF"] 5 | }, 6 | "Mode": "32BIT" 7 | } 8 | %endif 9 | org 10000h 10 | bits 32 11 | 12 | fld1 13 | 14 | hlt 15 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/D9_E9.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0xD49A784BCD1B8AFE", "0x4000"] 5 | }, 6 | "Mode": "32BIT" 7 | } 8 | %endif 9 | org 10000h 10 | bits 32 11 | 12 | fldl2t 13 | 14 | hlt 15 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/D9_EA.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0xB8AA3B295C17F0BC", "0x3FFF"] 5 | }, 6 | "Mode": "32BIT" 7 | } 8 | %endif 9 | org 10000h 10 | bits 32 11 | 12 | fldl2e 13 | 14 | hlt 15 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/D9_EB.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0xC90FDAA22168C235", "0x4000"] 5 | }, 6 | "Mode": "32BIT" 7 | } 8 | %endif 9 | org 10000h 10 | bits 32 11 | 12 | fldpi 13 | 14 | hlt 15 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/D9_EC.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x9A209A84FBCFF799", "0x3FFD"] 5 | }, 6 | "Mode": "32BIT" 7 | } 8 | %endif 9 | org 10000h 10 | bits 32 11 | 12 | fldlg2 13 | 14 | hlt 15 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/D9_ED.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0xB17217F7D1CF79AC", "0x3FFE"] 5 | }, 6 | "Mode": "32BIT" 7 | } 8 | %endif 9 | org 10000h 10 | bits 32 11 | 12 | fldln2 13 | 14 | hlt 15 | -------------------------------------------------------------------------------- /external/FEX/ASM/SecondaryModRM/Reg_7_1.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "HostFeatures": ["Linux"] 4 | } 5 | %endif 6 | bits 64 7 | 8 | ; We can't really check the results of this 9 | ; Just ensure we execute it 10 | rdtscp 11 | 12 | hlt 13 | -------------------------------------------------------------------------------- /tests/ASM/felix86_bugs/bt_jc.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RBX": "0x0000000000000001" 5 | } 6 | } 7 | %endif 8 | bits 64 9 | 10 | xor rcx, rcx 11 | bts rcx, 0 12 | jc .label1 13 | mov rbx, 1 14 | 15 | .label1: 16 | hlt -------------------------------------------------------------------------------- /external/FEX/ASM/X87/DD_C0.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | } 4 | %endif 5 | bits 64 6 | 7 | ; Just to ensure execution 8 | ffree st0 9 | ffree st1 10 | ffree st2 11 | ffree st3 12 | ffree st4 13 | ffree st5 14 | ffree st6 15 | ffree st7 16 | hlt 17 | -------------------------------------------------------------------------------- /external/fmt/.github/issue_template.md: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/SecondaryModRM/Reg_7_1.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "Mode": "32BIT", 4 | "HostFeatures": ["Linux"] 5 | } 6 | %endif 7 | org 10000h 8 | bits 32 9 | 10 | ; We can't really check the results of this 11 | rdtscp 12 | 13 | hlt 14 | -------------------------------------------------------------------------------- /external/zydis/assets/version-bump-checklist.txt: -------------------------------------------------------------------------------- 1 | - CMakeLists (VERSION) 2 | - Doxyfile 3 | - resources/VersionInfo.rc (4 locations) 4 | - include/Zydis/Zydis.h (ZYDIS_VERSION macro) 5 | - create a tagged release of zycore 6 | - create a tagged release of zydis 7 | -------------------------------------------------------------------------------- /external/zydis/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .vscode 3 | .idea 4 | .vs 5 | __pycache__ 6 | 7 | /build* 8 | /msvc/**/*.user 9 | /msvc/**/obj/ 10 | /msvc/**/bin/ 11 | /doc 12 | /cmake-build-debug 13 | /amalgamated-dist 14 | 15 | .cache 16 | compile_commands.json 17 | -------------------------------------------------------------------------------- /src/felix86/common/overlay.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | struct Overlays { 6 | static void addOverlay(const char* lib_name, const std::filesystem::path& dest); 7 | 8 | static const char* isOverlay(int fd, const char* pathname); 9 | }; -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/Primary/Primary_27.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x12345637" 5 | }, 6 | "Mode": "32BIT" 7 | } 8 | %endif 9 | org 10000h 10 | bits 32 11 | 12 | mov eax, 0x1234561f 13 | daa 14 | daa 15 | daa 16 | daa 17 | hlt 18 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/Primary/Primary_2F.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x12345607" 5 | }, 6 | "Mode": "32BIT" 7 | } 8 | %endif 9 | org 10000h 10 | bits 32 11 | 12 | mov eax, 0x1234561f 13 | das 14 | das 15 | das 16 | das 17 | hlt 18 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/Primary/Primary_37.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x12345a07" 5 | }, 6 | "Mode": "32BIT" 7 | } 8 | %endif 9 | org 10000h 10 | bits 32 11 | 12 | mov eax, 0x1234561f 13 | aaa 14 | aaa 15 | aaa 16 | aaa 17 | hlt 18 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/Primary/Primary_3F.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x12345107" 5 | }, 6 | "Mode": "32BIT" 7 | } 8 | %endif 9 | org 10000h 10 | bits 32 11 | 12 | mov eax, 0x1234561f 13 | aas 14 | aas 15 | aas 16 | aas 17 | hlt 18 | -------------------------------------------------------------------------------- /external/FEX/ASM/Primary/Pause.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | } 4 | %endif 5 | bits 64 6 | 7 | ; Set rcx to an absurd number just incase something terrible occurs since pause = `rep nop` 8 | mov rcx, -1 9 | 10 | ; Just ensure execution. 11 | pause 12 | 13 | hlt 14 | -------------------------------------------------------------------------------- /external/FEX/ASM/Secondary/CLFLUSHOPT.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "1" 5 | } 6 | } 7 | %endif 8 | bits 64 9 | 10 | mov rdx, 0xe0000000 11 | ; Just ensures the code is executed. 12 | clflushopt [rdx] 13 | 14 | mov rax, 1 15 | hlt 16 | -------------------------------------------------------------------------------- /external/FEX/ASM/TwoByte/0F_0E.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | }, 5 | "MemoryRegions": { 6 | "0x100000000": "4096" 7 | }, 8 | "HostFeatures": ["3DNOW"] 9 | } 10 | %endif 11 | bits 64 12 | 13 | femms ; Just ensure it runs 14 | 15 | hlt 16 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/Primary/Primary_D4.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x2" 5 | }, 6 | "Mode": "32BIT" 7 | } 8 | %endif 9 | org 10000h 10 | bits 32 11 | 12 | mov eax, 0x1234 13 | aam 14 | aam 0xc 15 | aam 0x1f 16 | aam 0xff 17 | hlt 18 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/Primary/Primary_D5.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0xe8" 5 | }, 6 | "Mode": "32BIT" 7 | } 8 | %endif 9 | org 10000h 10 | bits 32 11 | 12 | mov eax, 0x1234 13 | aad 14 | aad 0x3 15 | aad 0x1f 16 | aad 0xae 17 | hlt 18 | -------------------------------------------------------------------------------- /external/Catch2/tools/scripts/developBuild.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | import releaseCommon 4 | 5 | v = releaseCommon.Version() 6 | v.incrementBuildNumber() 7 | releaseCommon.performUpdates(v) 8 | 9 | print( "Updated files to v{0}".format( v.getVersionString() ) ) 10 | -------------------------------------------------------------------------------- /external/Catch2/tools/scripts/majorRelease.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | import releaseCommon 4 | 5 | v = releaseCommon.Version() 6 | v.incrementMajorVersion() 7 | releaseCommon.performUpdates(v) 8 | 9 | print( "Updated files to v{0}".format( v.getVersionString() ) ) 10 | -------------------------------------------------------------------------------- /external/Catch2/tools/scripts/minorRelease.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | import releaseCommon 4 | 5 | v = releaseCommon.Version() 6 | v.incrementMinorVersion() 7 | releaseCommon.performUpdates(v) 8 | 9 | print( "Updated files to v{0}".format( v.getVersionString() ) ) 10 | -------------------------------------------------------------------------------- /external/Catch2/tools/scripts/patchRelease.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | import releaseCommon 4 | 5 | v = releaseCommon.Version() 6 | v.incrementPatchNumber() 7 | releaseCommon.performUpdates(v) 8 | 9 | print( "Updated files to v{0}".format( v.getVersionString() ) ) 10 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/D9_07.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x37F" 5 | }, 6 | "Mode": "32BIT" 7 | } 8 | %endif 9 | org 10000h 10 | bits 32 11 | 12 | mov edx, 0xe0000000 13 | fnstcw [edx] 14 | mov eax, 0 15 | mov ax, [edx] 16 | 17 | hlt 18 | -------------------------------------------------------------------------------- /src/felix86/common/pe.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | struct PE { 6 | enum class PeekResult { 7 | NotPE, 8 | PE_i386, 9 | PE_x64, 10 | }; 11 | 12 | static PeekResult Peek(const std::filesystem::path& path); 13 | }; -------------------------------------------------------------------------------- /src/felix86/common/types.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | using u64 = uint64_t; 6 | using u32 = uint32_t; 7 | using u16 = uint16_t; 8 | using u8 = uint8_t; 9 | 10 | using i64 = int64_t; 11 | using i32 = int32_t; 12 | using i16 = int16_t; 13 | using i8 = int8_t; -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/Primary/Primary_CE.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | }, 5 | "Mode": "32BIT" 6 | } 7 | %endif 8 | org 10000h 9 | bits 32 10 | 11 | ; Clear OF just incase 12 | test eax, eax 13 | 14 | ; Just ensure it executes safely 15 | into 16 | 17 | hlt 18 | -------------------------------------------------------------------------------- /external/FEX/ASM/Secondary/CLWB.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "1" 5 | }, 6 | "HostFeatures": ["CLWB"] 7 | } 8 | %endif 9 | bits 64 10 | 11 | mov rdx, 0xe0000000 12 | ; Just ensures the code is executed. 13 | clwb [rdx] 14 | 15 | mov rax, 1 16 | hlt 17 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/DD_C0.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "Mode": "32BIT" 4 | } 5 | %endif 6 | org 10000h 7 | bits 32 8 | 9 | ; Just to ensure execution 10 | ffree st0 11 | ffree st1 12 | ffree st2 13 | ffree st3 14 | ffree st4 15 | ffree st5 16 | ffree st6 17 | ffree st7 18 | hlt 19 | -------------------------------------------------------------------------------- /external/FEX/ASM/Primary/Primary_98.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0xFFFFFFFFFFFFFFF0" 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov al, 0xF0 14 | cbw 15 | cwde 16 | cdqe 17 | 18 | hlt 19 | -------------------------------------------------------------------------------- /external/FEX/ASM/Primary/Primary_F8.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x0" 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | clc 14 | 15 | ; Get CF 16 | sbb rax, rax 17 | and rax, 1 18 | 19 | hlt 20 | -------------------------------------------------------------------------------- /external/FEX/ASM/Primary/Primary_F9.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x1" 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | stc 14 | 15 | ; Get CF 16 | sbb rax, rax 17 | and rax, 1 18 | 19 | hlt 20 | -------------------------------------------------------------------------------- /external/FEX/ASM/Secondary/09_F3_07.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "1" 5 | } 6 | } 7 | %endif 8 | bits 64 9 | 10 | mov rax, 0 11 | mov rbx, 0x4142434445464748 12 | mov rcx, 0x4142434445464748 13 | rdpid ebx 14 | 15 | cmp rbx, rcx 16 | setne al 17 | 18 | hlt 19 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87_F64/D9_07_F64.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x37F" 5 | }, 6 | "Env": { "FEX_X87REDUCEDPRECISION" : "1" } 7 | } 8 | %endif 9 | bits 64 10 | 11 | mov rdx, 0xe0000000 12 | fnstcw [rdx] 13 | mov eax, 0 14 | mov ax, [rdx] 15 | 16 | hlt 17 | -------------------------------------------------------------------------------- /external/FEX/ASM/OpSize/15_BYTE.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | }, 5 | "MemoryRegions": { 6 | "0x100000000": "4096" 7 | } 8 | } 9 | %endif 10 | bits 64 11 | 12 | db 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x2e, 0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00 13 | 14 | hlt 15 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87/D9_07.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x37F" 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rdx, 0xe0000000 14 | fnstcw [rdx] 15 | mov eax, 0 16 | mov ax, [rdx] 17 | 18 | hlt 19 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87_F64/D9_EE_F64.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0" 5 | }, 6 | "Env": { "FEX_X87REDUCEDPRECISION" : "1" } 7 | } 8 | %endif 9 | bits 64 10 | 11 | mov rcx, 0xe0000000 12 | 13 | fldz 14 | 15 | fst qword [rcx] 16 | mov rax, [rcx] 17 | 18 | hlt 19 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87/D8_D9.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM6": ["0x8000000000000000", "0x3FFF"], 5 | "MM7": ["0x8000000000000000", "0x3FFF"] 6 | } 7 | } 8 | %endif 9 | bits 64 10 | 11 | ; Only tests pop behaviour 12 | fld1 13 | fldz 14 | fcomp 15 | fld1 16 | 17 | hlt 18 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87/DD_E9.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM6": ["0x8000000000000000", "0x3FFF"], 5 | "MM7": ["0x8000000000000000", "0x3FFF"] 6 | } 7 | } 8 | %endif 9 | bits 64 10 | 11 | ; Only tests pop behaviour 12 | fld1 13 | fldz 14 | fucomp 15 | fld1 16 | 17 | hlt 18 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87_F64/DD_C0_F64.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "Env": { "FEX_X87REDUCEDPRECISION" : "1" } 4 | } 5 | %endif 6 | bits 64 7 | 8 | ; Just to ensure execution 9 | ffree st0 10 | ffree st1 11 | ffree st2 12 | ffree st3 13 | ffree st4 14 | ffree st5 15 | ffree st6 16 | ffree st7 17 | hlt 18 | -------------------------------------------------------------------------------- /external/FEX/ASM/lea.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "Match": "All", 4 | "RegData": { 5 | "RAX": "0x1BD5B7DDE", 6 | "RBX": "0x0DEADBF18" 7 | } 8 | } 9 | %endif 10 | bits 64 11 | 12 | mov r15, 0xDEADBEEF 13 | mov r14, 0x5 14 | 15 | lea rax, [r15*2] 16 | lea rbx, [r15+r14*8 + 1] 17 | 18 | hlt 19 | -------------------------------------------------------------------------------- /external/zydis/files.dox: -------------------------------------------------------------------------------- 1 | /** @dir include 2 | * @brief Top-level include dir 3 | */ 4 | /** @dir include/Zydis 5 | * @brief Zydis include dir 6 | */ 7 | /** @dir include/Zydis/Generated 8 | * @brief Generated files 9 | */ 10 | /** @dir include/Zydis/Internal 11 | * @brief Internal APIs 12 | */ 13 | -------------------------------------------------------------------------------- /tests/ASM/felix86_bugs/cfmerge.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "R8": "0x1", 5 | "R9": "0x0" 6 | } 7 | } 8 | %endif 9 | bits 64 10 | 11 | stc 12 | sbb r14, r14 13 | and r14, 1 14 | 15 | mov r8, r14 16 | 17 | clc 18 | sbb r14, r14 19 | and r14, 1 20 | 21 | mov r9, r14 22 | 23 | hlt -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/D9_00.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x8000000000000000", "0x3fff"] 5 | }, 6 | "Mode": "32BIT" 7 | } 8 | %endif 9 | org 10000h 10 | bits 32 11 | 12 | lea edx, [.data] 13 | 14 | fld dword [edx + 8 * 0] 15 | hlt 16 | 17 | .data: 18 | dq 0x3f800000 19 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/DB_00.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x8000000000000000", "0x4009"] 5 | }, 6 | "Mode": "32BIT" 7 | } 8 | %endif 9 | org 10000h 10 | bits 32 11 | 12 | lea edx, [.data] 13 | 14 | fild dword [edx + 8 * 0] 15 | 16 | hlt 17 | 18 | .data: 19 | dq 1024 20 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/DF_05.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x8000000000000000", "0x4009"] 5 | }, 6 | "Mode": "32BIT" 7 | } 8 | %endif 9 | org 10000h 10 | bits 32 11 | 12 | lea edx, [.data] 13 | 14 | fild qword [edx + 8 * 0] 15 | 16 | hlt 17 | .data: 18 | dq 1024 19 | 20 | -------------------------------------------------------------------------------- /tests/ASM/felix86_bugs/ror_clearof.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "R14": "0x0000000000000000" 5 | } 6 | } 7 | %endif 8 | bits 64 9 | 10 | pushfq 11 | or qword [rsp], 0x800 12 | popfq 13 | mov r14, -1 14 | mov r12, 0 15 | ror r12, 1 16 | mov r14, 0 17 | mov r13, 1 18 | cmovo r14, r13 19 | hlt -------------------------------------------------------------------------------- /external/FEX/ASM/Primary/Primary_A8.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x0600" 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rax, 0x4142434445464847 14 | test al, 0x61 15 | 16 | mov rax, 0 17 | lahf 18 | 19 | hlt 20 | -------------------------------------------------------------------------------- /external/FEX/ASM/TwoByte/0F_6E_2.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM0": "0x0000000045464748", 5 | "MM1": "0x5152535455565758" 6 | } 7 | } 8 | %endif 9 | bits 64 10 | 11 | mov rax, 0x4142434445464748 12 | mov rbx, 0x5152535455565758 13 | 14 | movd mm0, eax 15 | movq mm1, rbx 16 | hlt 17 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87/DA_D9.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM6": ["0x8000000000000000", "0x3FFF"], 5 | "MM7": ["0x8000000000000000", "0x3FFF"] 6 | } 7 | } 8 | %endif 9 | bits 64 10 | 11 | ; Only tests pop behaviour 12 | fld1 13 | fldz 14 | fldz 15 | fcompp 16 | fld1 17 | 18 | hlt 19 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87/DA_E9.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM6": ["0x8000000000000000", "0x3FFF"], 5 | "MM7": ["0x8000000000000000", "0x3FFF"] 6 | } 7 | } 8 | %endif 9 | bits 64 10 | 11 | ; Only tests pop behaviour 12 | fld1 13 | fldz 14 | fldz 15 | fucompp 16 | fld1 17 | 18 | hlt 19 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87_F64/D9_E8_F64.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x3ff0000000000000" 5 | }, 6 | "Env": { "FEX_X87REDUCEDPRECISION" : "1" } 7 | } 8 | %endif 9 | bits 64 10 | 11 | mov rcx, 0xe0000000 12 | 13 | fld1 14 | 15 | fst qword [rcx] 16 | mov rax, [rcx] 17 | 18 | hlt 19 | -------------------------------------------------------------------------------- /external/fmt/.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: "github-actions" # Necessary to update action hashes. 4 | directory: "/" 5 | schedule: 6 | interval: "monthly" 7 | # Allow up to 3 opened pull requests for github-actions versions. 8 | open-pull-requests-limit: 3 9 | -------------------------------------------------------------------------------- /src/felix86/common/start_params.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | struct StartParameters { 9 | std::filesystem::path executable_path; 10 | std::deque argv; 11 | std::vector envp; 12 | }; 13 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/DF_00.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x8000000000000000", "0x4009"] 5 | }, 6 | "Mode": "32BIT" 7 | } 8 | %endif 9 | org 10000h 10 | bits 32 11 | 12 | lea edx, [.data] 13 | 14 | fild word [edx + 8 * 0] 15 | 16 | hlt 17 | 18 | .data: 19 | dq 1024 20 | dq -1 21 | -------------------------------------------------------------------------------- /src/felix86/hle/brk.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "felix86/common/types.hpp" 4 | 5 | struct BRK { 6 | static void allocate(); 7 | 8 | static u64 set(u64 new_brk); 9 | 10 | private: 11 | constexpr static u64 size32 = 32 * 1024 * 1024; 12 | 13 | constexpr static u64 size64 = 128 * 1024 * 1024; 14 | }; -------------------------------------------------------------------------------- /tests/ASM/felix86_bugs/test_high.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RBX": "0x0000000000000001", 5 | "RCX": "0x1234" 6 | } 7 | } 8 | %endif 9 | bits 64 10 | 11 | xor ebx, ebx 12 | mov rax, 0x8000 13 | test ah, 0x80 14 | setne bl 15 | 16 | mov rax, 0x12 17 | mov rcx, 0x34 18 | or ch, al 19 | 20 | hlt -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/DD_00.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x8000000000000000", "0x4000"] 5 | }, 6 | "Mode": "32BIT" 7 | } 8 | %endif 9 | org 10000h 10 | bits 32 11 | 12 | lea edx, [.data] 13 | 14 | fld qword [edx + 8 * 0] 15 | hlt 16 | 17 | .data: 18 | dq 0x4000000000000000 ; 2.0 19 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/DB_05.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x8000000000000000", "0x4000"] 5 | }, 6 | "Mode": "32BIT" 7 | } 8 | %endif 9 | org 10000h 10 | bits 32 11 | 12 | lea edx, [data] 13 | 14 | fld tword [edx + 8 * 0] 15 | hlt 16 | 17 | align 8 18 | data: 19 | dt 2.0 20 | dq 0 21 | -------------------------------------------------------------------------------- /external/FEX/ASM/Primary/Primary_84.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x0600" 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rax, 0x4142434445464847 14 | mov rbx, 0x61 15 | test al, bl 16 | 17 | mov rax, 0 18 | lahf 19 | 20 | hlt 21 | -------------------------------------------------------------------------------- /external/Catch2/.conan/test_package/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.15) 2 | project(PackageTest CXX) 3 | 4 | find_package(Catch2 CONFIG REQUIRED) 5 | 6 | add_executable(test_package test_package.cpp) 7 | target_link_libraries(test_package Catch2::Catch2WithMain) 8 | target_compile_features(test_package PRIVATE cxx_std_14) 9 | -------------------------------------------------------------------------------- /external/Catch2/CMake/Catch2Config.cmake.in: -------------------------------------------------------------------------------- 1 | @PACKAGE_INIT@ 2 | 3 | 4 | # Avoid repeatedly including the targets 5 | if(NOT TARGET Catch2::Catch2) 6 | # Provide path for scripts 7 | list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}") 8 | 9 | include(${CMAKE_CURRENT_LIST_DIR}/Catch2Targets.cmake) 10 | endif() 11 | -------------------------------------------------------------------------------- /external/FEX/ASM/Primary/Primary_F5.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x1" 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | ; Set CF to known value 14 | clc 15 | 16 | cmc 17 | 18 | ; Get CF 19 | sbb rax, rax 20 | and rax, 1 21 | 22 | hlt 23 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87_F64/FCOM_F64.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x0" 5 | }, 6 | "Env": { "FEX_X87REDUCEDPRECISION" : "1" } 7 | } 8 | %endif 9 | bits 64 10 | 11 | fld1 12 | fldz 13 | fcomp 14 | fnstsw ax 15 | test ah, 041h 16 | jp good 17 | mov rax, 0 18 | hlt 19 | good: 20 | mov rax, 1 21 | hlt 22 | -------------------------------------------------------------------------------- /external/fmt/test/header-only-test.cc: -------------------------------------------------------------------------------- 1 | // Header-only configuration test 2 | 3 | #include "fmt/base.h" 4 | #include "fmt/ostream.h" 5 | #include "gtest/gtest.h" 6 | 7 | #ifndef FMT_HEADER_ONLY 8 | # error "Not in the header-only mode." 9 | #endif 10 | 11 | TEST(header_only_test, format) { EXPECT_EQ(fmt::format("foo"), "foo"); } 12 | -------------------------------------------------------------------------------- /src/felix86/common/strace.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "felix86/common/types.hpp" 5 | 6 | [[nodiscard]] std::string trace32(int syscall_no, u64 arg1, u64 arg2, u64 arg3, u64 arg4, u64 arg5, u64 arg6); 7 | [[nodiscard]] std::string trace64(int syscall_no, u64 arg1, u64 arg2, u64 arg3, u64 arg4, u64 arg5, u64 arg6); 8 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/D8_C8.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x8000000000000000", "0x4001"] 5 | }, 6 | "Mode": "32BIT" 7 | } 8 | %endif 9 | org 10000h 10 | bits 32 11 | 12 | lea edx, [.data] 13 | 14 | fld qword [edx + 8 * 0] 15 | fmul st0, st0 16 | hlt 17 | 18 | .data: 19 | dq 0x4000000000000000 20 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/D8_F0.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x8000000000000000", "0x3FFF"] 5 | }, 6 | "Mode": "32BIT" 7 | } 8 | %endif 9 | org 10000h 10 | bits 32 11 | 12 | lea edx, [.data] 13 | 14 | fld qword [edx + 8 * 0] 15 | fdiv st0, st0 16 | hlt 17 | 18 | .data: 19 | dq 0x4000000000000000 20 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/D9_F0.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x0000000000000000", "0x0000"] 5 | }, 6 | "Mode": "32BIT" 7 | } 8 | %endif 9 | org 10000h 10 | bits 32 11 | 12 | lea edx, [data] 13 | fld tword [edx + 8 * 0] 14 | f2xm1 15 | 16 | hlt 17 | 18 | align 8 19 | data: 20 | dt 0.0 21 | dq 0 22 | -------------------------------------------------------------------------------- /external/FEX/ASM/Primary/Primary_C8.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RSP": "0xE0000FE8", 5 | "RBP": "0xE0000FF8" 6 | }, 7 | "MemoryRegions": { 8 | "0x100000000": "4096" 9 | } 10 | } 11 | %endif 12 | bits 64 13 | 14 | mov rsp, 0xe0001000 15 | mov rbp, 0xe0001000 16 | 17 | enter 0x10, 0 18 | hlt 19 | 20 | -------------------------------------------------------------------------------- /external/box64/rv64_printer.h: -------------------------------------------------------------------------------- 1 | #ifndef _RV64_PRINTER_H_ 2 | #define _RV64_PRINTER_H_ 3 | #include 4 | #include 5 | 6 | #ifdef __cplusplus 7 | extern "C" { 8 | #endif 9 | 10 | const char* rv64_print(uint32_t data, uint64_t addr); 11 | 12 | #ifdef __cplusplus 13 | } 14 | #endif 15 | 16 | #endif //_RV64_PRINTER_H_ 17 | -------------------------------------------------------------------------------- /external/fmt/.gitignore: -------------------------------------------------------------------------------- 1 | *.a 2 | *.so* 3 | *.xcodeproj 4 | *~ 5 | .vscode/ 6 | /CMakeScripts 7 | /Testing 8 | /_CPack_Packages 9 | /install_manifest.txt 10 | CMakeCache.txt 11 | CMakeFiles 12 | CPack*.cmake 13 | CTestTestfile.cmake 14 | FMT.build 15 | Makefile 16 | bin/ 17 | build/ 18 | cmake_install.cmake 19 | fmt-*.cmake 20 | fmt.pc 21 | -------------------------------------------------------------------------------- /src/felix86/common/print.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "felix86/common/state.hpp" 5 | 6 | const char* print_guest_register(x86_ref_e guest); 7 | extern "C" __attribute__((visibility("default"))) void print_state(ThreadState* state); 8 | extern "C" __attribute__((visibility("default"))) void print_gprs(ThreadState* state); -------------------------------------------------------------------------------- /external/Catch2/tests/SelfTest/Baselines/default.sw.multi.approved.txt: -------------------------------------------------------------------------------- 1 | This would not be caught previously 2 | Nor would this 3 | A string sent directly to stdout 4 | A string sent directly to stderr 5 | A string sent to stderr via clog 6 | Message from section one 7 | Message from section two 8 | loose text artifact 9 | a! 10 | b1! 11 | ! 12 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/Primary/Loops.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "Mode": "32BIT" 4 | } 5 | %endif 6 | org 10000h 7 | bits 32 8 | 9 | mov ecx, 0x10 10 | .loop: 11 | dec ecx 12 | test ecx, ecx 13 | jnz .loop 14 | .end: 15 | 16 | mov ecx, 0x10 17 | .loop2: 18 | dec ecx 19 | test ecx, ecx 20 | jz .end2 21 | jmp .loop2 22 | 23 | .end2: 24 | hlt -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/D9_FE.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0xD76AA47848677021", "0x3FFE"] 5 | }, 6 | "Mode": "32BIT" 7 | } 8 | %endif 9 | org 10000h 10 | bits 32 11 | 12 | lea edx, [data] 13 | fld tword [edx + 8 * 0] 14 | 15 | fsin 16 | 17 | hlt 18 | 19 | align 8 20 | data: 21 | dt 1.0 22 | dq 0 23 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/D9_FF.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0xD51132BA9B902522", "0xBFFD"] 5 | }, 6 | "Mode": "32BIT" 7 | } 8 | %endif 9 | org 10000h 10 | bits 32 11 | 12 | lea edx, [data] 13 | fld tword [edx + 8 * 0] 14 | 15 | fcos 16 | 17 | hlt 18 | 19 | align 8 20 | data: 21 | dt 2.0 22 | dq 0 23 | -------------------------------------------------------------------------------- /external/FEX/ASM/Secondary/07_XX_00.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0", 5 | "RBX": "0xFFFFFFFFFFFE0000" 6 | } 7 | } 8 | %endif 9 | bits 64 10 | 11 | sgdt [rel data] 12 | 13 | movzx rax, word [rel data] 14 | mov rbx, qword [rel data + 2] 15 | hlt 16 | 17 | data: 18 | ; Limit 19 | dw 0 20 | ; Base 21 | dq 0 22 | -------------------------------------------------------------------------------- /external/fmt/support/cmake/fmt.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@CMAKE_INSTALL_PREFIX@ 2 | exec_prefix=@CMAKE_INSTALL_PREFIX@ 3 | libdir=@libdir_for_pc_file@ 4 | includedir=@includedir_for_pc_file@ 5 | 6 | Name: fmt 7 | Description: A modern formatting library 8 | Version: @FMT_VERSION@ 9 | Libs: -L${libdir} -l@FMT_LIB_NAME@ 10 | Cflags: -I${includedir} 11 | 12 | -------------------------------------------------------------------------------- /tests/ASM/felix86_bugs/adc.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x0000000000000080", 5 | "RDI": "0x0000000000000000" 6 | } 7 | } 8 | %endif 9 | bits 64 10 | 11 | mov rax, -75 12 | mov rbx, -54 13 | movzx eax, al 14 | movzx ebx, bl 15 | stc 16 | adc al, bl 17 | 18 | pushfq 19 | pop rdi 20 | and rdi, 0x800 21 | 22 | hlt -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/D9_FA.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x8000000000000000", "0x4001"] 5 | }, 6 | "Mode": "32BIT" 7 | } 8 | %endif 9 | org 10000h 10 | bits 32 11 | 12 | lea edx, [data] 13 | fld tword [edx + 8 * 0] 14 | 15 | fsqrt 16 | 17 | hlt 18 | 19 | align 8 20 | data: 21 | dt 16.0 22 | dq 0 23 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87_F64/D9_E9_F64.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x40549a78" 5 | }, 6 | "Env": { "FEX_X87REDUCEDPRECISION" : "1" } 7 | } 8 | %endif 9 | bits 64 10 | 11 | mov rcx, 0xe0000000 12 | 13 | fldl2t 14 | 15 | fst dword [rcx] ; Can't compare 64-bit precision with host 16 | mov eax, [rcx] 17 | 18 | hlt 19 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87_F64/D9_EA_F64.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x3fb8aa3b" 5 | }, 6 | "Env": { "FEX_X87REDUCEDPRECISION" : "1" } 7 | } 8 | %endif 9 | bits 64 10 | 11 | mov rcx, 0xe0000000 12 | 13 | fldl2e 14 | 15 | fst dword [rcx] ; Can't compare 64-bit precision with host 16 | mov eax, [rcx] 17 | 18 | hlt 19 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87_F64/D9_EB_F64.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x40490fdb" 5 | }, 6 | "Env": { "FEX_X87REDUCEDPRECISION" : "1" } 7 | } 8 | %endif 9 | bits 64 10 | 11 | mov rcx, 0xe0000000 12 | 13 | fldpi 14 | 15 | fst dword [rcx] ; Can't compare 64-bit precision with host 16 | mov eax, [rcx] 17 | 18 | hlt 19 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87_F64/D9_EC_F64.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x3e9a209b" 5 | }, 6 | "Env": { "FEX_X87REDUCEDPRECISION" : "1" } 7 | } 8 | %endif 9 | bits 64 10 | 11 | mov rcx, 0xe0000000 12 | 13 | fldlg2 14 | 15 | fst dword [rcx] ; Can't compare 64-bit precision with host 16 | mov eax, [rcx] 17 | 18 | hlt 19 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87_F64/D9_ED_F64.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x3f317218" 5 | }, 6 | "Env": { "FEX_X87REDUCEDPRECISION" : "1" } 7 | } 8 | %endif 9 | bits 64 10 | 11 | mov rcx, 0xe0000000 12 | 13 | fldln2 14 | 15 | fst dword [rcx] ; Can't compare 64-bit precision with host 16 | mov eax, [rcx] 17 | 18 | hlt 19 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87/DB_05.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x8000000000000000", "0x4000"] 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | lea rdx, [rel data] 14 | 15 | fld tword [rdx + 8 * 0] 16 | hlt 17 | 18 | align 8 19 | data: 20 | dt 2.0 21 | dq 0 22 | -------------------------------------------------------------------------------- /external/FEX/ASM/Primary/Primary_E2.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x10" 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rax, 0 14 | mov rcx, 0x11 15 | 16 | jmp .head 17 | 18 | .top: 19 | 20 | add rax, 1 21 | 22 | .head: 23 | 24 | loop .top 25 | 26 | hlt 27 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87/DB_00.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x8000000000000000", "0x4009"] 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rdx, 0xe0000000 14 | 15 | mov eax, 1024 16 | mov [rdx + 8 * 0], eax 17 | 18 | fild dword [rdx + 8 * 0] 19 | 20 | hlt 21 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87/DF_05.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x8000000000000000", "0x4009"] 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rdx, 0xe0000000 14 | 15 | mov rax, 1024 16 | mov [rdx + 8 * 0], rax 17 | 18 | fild qword [rdx + 8 * 0] 19 | 20 | hlt 21 | -------------------------------------------------------------------------------- /external/fmt/support/cmake/FindSetEnv.cmake: -------------------------------------------------------------------------------- 1 | # A CMake script to find SetEnv.cmd. 2 | 3 | find_program(WINSDK_SETENV NAMES SetEnv.cmd 4 | PATHS "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows;CurrentInstallFolder]/bin") 5 | if (WINSDK_SETENV AND PRINT_PATH) 6 | execute_process(COMMAND ${CMAKE_COMMAND} -E echo "${WINSDK_SETENV}") 7 | endif () 8 | -------------------------------------------------------------------------------- /external/Catch2/.bazelrc: -------------------------------------------------------------------------------- 1 | build --enable_platform_specific_config 2 | 3 | build:gcc9 --cxxopt=-std=c++2a 4 | build:gcc11 --cxxopt=-std=c++2a 5 | build:clang13 --cxxopt=-std=c++17 6 | build:vs2019 --cxxopt=/std:c++17 7 | build:vs2022 --cxxopt=/std:c++17 8 | 9 | build:windows --config=vs2022 10 | build:linux --config=gcc11 11 | build:macos --cxxopt=-std=c++2b 12 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/DB_E3.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x037F" 5 | }, 6 | "Mode": "32BIT" 7 | } 8 | %endif 9 | org 10000h 10 | bits 32 11 | 12 | mov eax, 0 13 | mov esp, 0xe0000008 14 | fninit 15 | 16 | ; Ensures that fnstcw after fninit sets the correct value 17 | fnstcw [esp] 18 | mov ax, word [esp] 19 | 20 | hlt 21 | -------------------------------------------------------------------------------- /external/FEX/ASM/Primary/Primary_6A.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0xFFFFFFFFFFFFFF81", 5 | "RSP": "0xE0000018" 6 | }, 7 | "MemoryRegions": { 8 | "0x100000000": "4096" 9 | } 10 | } 11 | %endif 12 | bits 64 13 | 14 | mov rsp, 0xe0000020 15 | 16 | push -127 17 | mov rdx, 0xe0000020 18 | mov rax, [rdx - 8] 19 | 20 | hlt 21 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87/D9_00.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x8000000000000000", "0x3fff"] 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rdx, 0xe0000000 14 | 15 | mov eax, 0x3f800000 ; 1.0 16 | mov [rdx + 8 * 0], eax 17 | 18 | fld dword [rdx + 8 * 0] 19 | hlt 20 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87/D9_F0.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x0000000000000000", "0x0000"] 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | lea rdx, [rel data] 14 | fld tword [rdx + 8 * 0] 15 | f2xm1 16 | 17 | hlt 18 | 19 | align 8 20 | data: 21 | dt 0.0 22 | dq 0 23 | -------------------------------------------------------------------------------- /external/fmt/.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /src/felix86/common/process_lock.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "felix86/common/log.hpp" 4 | #include "felix86/common/process_lock.hpp" 5 | 6 | Semaphore::Semaphore() { 7 | int result = sem_init(&inner, 0, 1); 8 | if (result != 0) { 9 | ERROR("Failed to initialize semaphore. Error: %s", strerror(errno)); 10 | } 11 | } -------------------------------------------------------------------------------- /src/felix86/hle/cpuid.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "felix86/common/state.hpp" 4 | 5 | struct Cpuid { 6 | u32 leaf = 0; 7 | u32 subleaf = 0; 8 | u32 eax = 0; 9 | u32 ebx = 0; 10 | u32 ecx = 0; 11 | u32 edx = 0; 12 | }; 13 | 14 | Cpuid felix86_cpuid_impl(u32 leaf, u32 subleaf); 15 | void felix86_cpuid(ThreadState* thread_state); 16 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/D8_00.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0xc000000000000000", "0x4000"] 5 | }, 6 | "Mode": "32BIT" 7 | } 8 | %endif 9 | org 10000h 10 | bits 32 11 | 12 | lea edx, [.data] 13 | 14 | fld qword [edx + 8 * 0] 15 | fadd dword [edx + 8 * 1] 16 | hlt 17 | 18 | .data: 19 | dq 0x3ff0000000000000 20 | dq 0x40000000 21 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/D8_01.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x8000000000000000", "0x4000"] 5 | }, 6 | "Mode": "32BIT" 7 | } 8 | %endif 9 | org 10000h 10 | bits 32 11 | 12 | lea edx, [.data] 13 | 14 | fld qword [edx + 8 * 0] 15 | fmul dword [edx + 8 * 1] 16 | hlt 17 | 18 | .data: 19 | dq 0x3ff0000000000000 20 | dq 0x40000000 21 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/D8_04.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x8000000000000000", "0xBFFF"] 5 | }, 6 | "Mode": "32BIT" 7 | } 8 | %endif 9 | org 10000h 10 | bits 32 11 | 12 | lea edx, [.data] 13 | 14 | fld qword [edx + 8 * 0] 15 | fsub dword [edx + 8 * 1] 16 | hlt 17 | 18 | .data: 19 | dq 0x3ff0000000000000 20 | dq 0x40000000 21 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/D8_05.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x8000000000000000", "0x3FFF"] 5 | }, 6 | "Mode": "32BIT" 7 | } 8 | %endif 9 | org 10000h 10 | bits 32 11 | 12 | lea edx, [.data] 13 | 14 | fld qword [edx + 8 * 0] 15 | fsubr dword [edx + 8 * 1] 16 | hlt 17 | 18 | .data: 19 | dq 0x3ff0000000000000 20 | dq 0x40000000 21 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/D8_06.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x8000000000000000", "0x3FFE"] 5 | }, 6 | "Mode": "32BIT" 7 | } 8 | %endif 9 | org 10000h 10 | bits 32 11 | 12 | lea edx, [.data] 13 | 14 | fld qword [edx + 8 * 0] 15 | fdiv dword [edx + 8 * 1] 16 | hlt 17 | 18 | .data: 19 | dq 0x3ff0000000000000 20 | dq 0x40000000 21 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/D8_07.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x8000000000000000", "0x4000"] 5 | }, 6 | "Mode": "32BIT" 7 | } 8 | %endif 9 | org 10000h 10 | bits 32 11 | 12 | lea edx, [.data] 13 | 14 | fld qword [edx + 8 * 0] 15 | fdivr dword [edx + 8 * 1] 16 | hlt 17 | 18 | .data: 19 | dq 0x3ff0000000000000 20 | dq 0x40000000 21 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/D9_FC.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x8000000000000000", "0x3fff"] 5 | }, 6 | "Mode": "32BIT" 7 | } 8 | %endif 9 | org 10000h 10 | bits 32 11 | 12 | mov edx, 0xe0000000 13 | 14 | mov eax, 0x3f834241 ; 1.02546 15 | mov [edx + 8 * 0], eax 16 | 17 | fld dword [edx + 8 * 0] 18 | 19 | frndint 20 | 21 | hlt 22 | -------------------------------------------------------------------------------- /external/FEX/ASM/Primary/Primary_63.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0xFFFFFFFF81828384", 5 | "RBX": "0x0000000071727374" 6 | }, 7 | "MemoryRegions": { 8 | "0x100000000": "4096" 9 | } 10 | } 11 | %endif 12 | bits 64 13 | 14 | mov rax, 0x81828384 15 | mov rbx, 0x71727374 16 | movsxd rax, eax 17 | movsxd rbx, ebx 18 | 19 | hlt 20 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87/D9_FE.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0xD76AA47848677021", "0x3FFE"] 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | lea rdx, [rel data] 14 | fld tword [rdx + 8 * 0] 15 | 16 | fsin 17 | 18 | hlt 19 | 20 | align 8 21 | data: 22 | dt 1.0 23 | dq 0 24 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87/D9_FF.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0xD51132BA9B902522", "0xBFFD"] 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | lea rdx, [rel data] 14 | fld tword [rdx + 8 * 0] 15 | 16 | fcos 17 | 18 | hlt 19 | 20 | align 8 21 | data: 22 | dt 2.0 23 | dq 0 24 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87/DD_00.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x8000000000000000", "0x4000"] 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rdx, 0xe0000000 14 | 15 | mov rax, 0x4000000000000000 ; 2.0 16 | mov [rdx + 8 * 0], rax 17 | 18 | fld qword [rdx + 8 * 0] 19 | hlt 20 | -------------------------------------------------------------------------------- /external/FEX/ASM/PrimaryGroup/3_F7_06_2.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x80000000", 5 | "RDX": "0" 6 | } 7 | } 8 | %endif 9 | bits 64 10 | 11 | mov r15, 0xe0000000 12 | 13 | mov eax, 0x2 14 | mov [r15 + 8 * 0], eax 15 | 16 | mov rax, 0xFFFFFFFF00000000 17 | mov rdx, 0xFFFFFFFF00000001 18 | 19 | div dword [r15 + 8 * 0] 20 | 21 | hlt 22 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87/D9_FA.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x8000000000000000", "0x4001"] 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | lea rdx, [rel data] 14 | fld tword [rdx + 8 * 0] 15 | 16 | fsqrt 17 | 18 | hlt 19 | 20 | align 8 21 | data: 22 | dt 16.0 23 | dq 0 24 | -------------------------------------------------------------------------------- /external/FEX/ASM/Primary/Primary_C3.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x1", 5 | "RSP": "0xE0000020" 6 | }, 7 | "MemoryRegions": { 8 | "0x100000000": "4096" 9 | } 10 | } 11 | %endif 12 | bits 64 13 | 14 | mov rsp, 0xe0000020 15 | lea rax, [rel .end] 16 | push rax 17 | 18 | mov rax, 1 19 | ret 20 | mov rax, 0 21 | 22 | .end: 23 | hlt 24 | -------------------------------------------------------------------------------- /src/felix86/common/exit.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | enum ExitReason : uint8_t { 6 | EXIT_REASON_UNKNOWN = 0, 7 | EXIT_REASON_HLT = 1, 8 | EXIT_REASON_EXIT_SYSCALL = 2, 9 | EXIT_REASON_EXIT_GROUP_SYSCALL = 3, 10 | EXIT_REASON_GUEST_CODE_FINISHED = 4, 11 | EXIT_REASON_SIGRETURN = 5, 12 | }; 13 | 14 | void felix86_exit(int code); 15 | -------------------------------------------------------------------------------- /external/FEX/ASM/Multiblock/ReachableInvalidCode.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "Match": "All", 4 | "RegData": { 5 | "RAX": "0x20" 6 | } 7 | } 8 | %endif 9 | bits 64 10 | 11 | mov rax, 0 12 | cmp rax, 0 13 | 14 | jz finish 15 | 16 | ; multiblock should gracefully handle these invalid ops 17 | db 0xf, 0x3B ; invalid opcode here 18 | 19 | finish: 20 | mov rax, 32 21 | 22 | hlt -------------------------------------------------------------------------------- /external/FEX/ASM/Primary/Primary_C2.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x1", 5 | "RSP": "0xE000FF20" 6 | }, 7 | "MemoryRegions": { 8 | "0x100000000": "4096" 9 | } 10 | } 11 | %endif 12 | bits 64 13 | 14 | mov rsp, 0xe0000020 15 | lea rax, [rel .end] 16 | push rax 17 | 18 | mov rax, 1 19 | ret 0xFF00 20 | mov rax, 0 21 | 22 | .end: 23 | hlt 24 | -------------------------------------------------------------------------------- /external/FEX/ASM/Secondary/15_F3_02_2.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x0000434445464748", 5 | "RBX": "0x00000000FFFFFFFF" 6 | } 7 | } 8 | %endif 9 | bits 64 10 | 11 | mov rax, 0x0000434445464748 12 | mov rbx, -1 13 | 14 | ; Ensure that wrfsbase of 32-bit will zero extend 15 | wrfsbase rax 16 | wrfsbase ebx 17 | rdfsbase rbx ; 64bit 18 | 19 | hlt 20 | -------------------------------------------------------------------------------- /external/FEX/ASM/Secondary/15_F3_03_2.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x0000434445464748", 5 | "RBX": "0x00000000FFFFFFFF" 6 | } 7 | } 8 | %endif 9 | bits 64 10 | 11 | mov rax, 0x0000434445464748 12 | mov rbx, -1 13 | 14 | ; Ensure that wrfsbase of 32-bit will zero extend 15 | wrgsbase rax 16 | wrgsbase ebx 17 | rdgsbase rbx ; 64bit 18 | 19 | hlt 20 | -------------------------------------------------------------------------------- /external/FEX/ASM/TwoByte/0F_A2.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x1" 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | ; CPUID function zero 14 | mov rax, 0 15 | 16 | cpuid 17 | 18 | ; CPUID function zero always returns >0 in EAX 19 | cmp eax, 0 20 | mov rax, 0 21 | setnz al 22 | 23 | hlt 24 | -------------------------------------------------------------------------------- /external/FEX/ASM/TwoByte/0F_C0_2.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x02", 5 | "RBX": "0x02", 6 | "RCX": "0x02", 7 | "RDX": "0x02" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rax, 0x01 14 | mov rbx, 0x01 15 | mov rcx, 0x01 16 | mov rdx, 0x01 17 | 18 | xadd al, al 19 | xadd bx, bx 20 | xadd ecx, ecx 21 | xadd rdx, rdx 22 | 23 | hlt 24 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87_F64/DB_00_F64.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x4090000000000000" 5 | }, 6 | "Env": { "FEX_X87REDUCEDPRECISION" : "1" } 7 | } 8 | %endif 9 | bits 64 10 | 11 | mov rdx, 0xe0000000 12 | 13 | mov eax, 1024 14 | mov [rdx + 8 * 0], eax 15 | 16 | fild dword [rdx + 8 * 0] 17 | 18 | fstp qword [rdx] 19 | mov rax, [rdx] 20 | 21 | hlt 22 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/Secondary/07_XX_00.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0", 5 | "RBX": "0x00000000FFFE0000" 6 | }, 7 | "Mode": "32BIT" 8 | } 9 | %endif 10 | org 10000h 11 | bits 32 12 | 13 | sgdt [rel data] 14 | 15 | movzx eax, word [rel data] 16 | mov ebx, dword [rel data + 2] 17 | hlt 18 | 19 | data: 20 | ; Limit 21 | dw 0 22 | ; Base 23 | dd 0 24 | -------------------------------------------------------------------------------- /external/FEX/ASM/MemoryData.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0xddccbbaa" 5 | }, 6 | "MemoryRegions": { 7 | "0x10000000": "4096" 8 | }, 9 | "MemoryData": { 10 | "0x10000000": "AA BB CC DD" 11 | } 12 | } 13 | %endif 14 | bits 64 15 | 16 | ; Simple test to prove that config loader's MemoryData is working 17 | 18 | mov rax, [0x10000000] 19 | hlt 20 | -------------------------------------------------------------------------------- /external/FEX/ASM/PrimaryGroup/3_F7_07_2.asm: -------------------------------------------------------------------------------- 1 | 2 | %ifdef CONFIG 3 | { 4 | "RegData": { 5 | "RAX": "0x40000000", 6 | "RDX": "0" 7 | } 8 | } 9 | %endif 10 | bits 64 11 | 12 | mov r15, 0xe0000000 13 | 14 | mov eax, 0x4 15 | mov [r15 + 8 * 0], eax 16 | 17 | mov rax, 0xFFFFFFFF00000000 18 | mov rdx, 0xFFFFFFFF00000001 19 | 20 | idiv dword [r15 + 8 * 0] 21 | 22 | hlt 23 | 24 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87/D8_C8.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x8000000000000000", "0x4001"] 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rdx, 0xe0000000 14 | 15 | mov rax, 0x4000000000000000 ; 2.0 16 | mov [rdx + 8 * 0], rax 17 | 18 | fld qword [rdx + 8 * 0] 19 | fmul st0, st0 20 | hlt 21 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87/D8_F0.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x8000000000000000", "0x3FFF"] 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rdx, 0xe0000000 14 | 15 | mov rax, 0x4000000000000000 ; 2.0 16 | mov [rdx + 8 * 0], rax 17 | 18 | fld qword [rdx + 8 * 0] 19 | fdiv st0, st0 20 | hlt 21 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87/D9_FC.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x8000000000000000", "0x3fff"] 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rdx, 0xe0000000 14 | 15 | mov eax, 0x3f834241 ; 1.02546 16 | mov [rdx + 8 * 0], eax 17 | 18 | fld dword [rdx + 8 * 0] 19 | 20 | frndint 21 | 22 | hlt 23 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87_F64/D9_00_F64.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x3f800000" 5 | }, 6 | "X86ReducedPrecision": "1" 7 | } 8 | %endif 9 | bits 64 10 | 11 | mov rdx, 0xe0000000 12 | 13 | mov eax, 0x3f800000 ; 1.0 14 | mov [rdx + 8 * 0], eax 15 | 16 | fld dword [rdx + 8 * 0] 17 | fst dword [rdx] 18 | 19 | xor eax, eax 20 | mov eax, [rdx] 21 | 22 | hlt 23 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/Primary/Primary_00_3.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x81", 5 | "RBX": "0x8081", 6 | "RCX": "0x80808081" 7 | }, 8 | "Mode": "32BIT" 9 | } 10 | %endif 11 | org 10000h 12 | bits 32 13 | 14 | mov eax, 0x01 15 | add al, 0x80 16 | 17 | mov ebx, 0x01 18 | add bx, 0x8080 19 | 20 | mov ecx, 0x01 21 | add ecx, 0x80808080 22 | 23 | hlt 24 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87_F64/DF_05_F64.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x4090000000000000" 5 | }, 6 | "Env": { "FEX_X87REDUCEDPRECISION" : "1" } 7 | } 8 | %endif 9 | bits 64 10 | 11 | mov rdx, 0xe0000000 12 | 13 | mov rax, 1024 14 | mov [rdx + 8 * 0], rax 15 | 16 | fild qword [rdx + 8 * 0] 17 | fst qword [rdx + 8 * 0] 18 | mov rax, [rdx + 8 * 0] 19 | 20 | hlt 21 | -------------------------------------------------------------------------------- /external/fmt/support/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH := $(call my-dir) 2 | include $(CLEAR_VARS) 3 | 4 | LOCAL_MODULE := fmt_static 5 | LOCAL_MODULE_FILENAME := libfmt 6 | 7 | LOCAL_SRC_FILES := ../src/format.cc 8 | 9 | LOCAL_C_INCLUDES := $(LOCAL_PATH) 10 | LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH) 11 | 12 | LOCAL_CFLAGS += -std=c++11 -fexceptions 13 | 14 | include $(BUILD_STATIC_LIBRARY) 15 | 16 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/D9_F2.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM6": ["0x8000000000000000", "0x3FFF"], 5 | "MM7": ["0xC75922E5F71D2DC6", "0x3FFF"] 6 | }, 7 | "Mode": "32BIT" 8 | } 9 | %endif 10 | org 10000h 11 | bits 32 12 | 13 | lea edx, [data] 14 | fld tword [edx + 8 * 0] 15 | 16 | fptan 17 | 18 | hlt 19 | 20 | align 8 21 | data: 22 | dt 1.0 23 | dq 0 24 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/D9_F4.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM6": ["0xF000000000000000", "0xBFFF"], 5 | "MM7": ["0xC000000000000000", "0x4000"] 6 | }, 7 | "Mode": "32BIT" 8 | } 9 | %endif 10 | org 10000h 11 | bits 32 12 | 13 | lea edx, [data] 14 | fld tword [edx + 8 * 0] 15 | 16 | fxtract 17 | 18 | hlt 19 | 20 | align 8 21 | data: 22 | dt -15.0 23 | dq 0 24 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/D9_FB.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM6": ["0x8A51407DA8345C92", "0x3FFE"], 5 | "MM7": ["0xD76AA47848677021", "0x3FFE"] 6 | }, 7 | "Mode": "32BIT" 8 | } 9 | %endif 10 | org 10000h 11 | bits 32 12 | 13 | lea edx, [data] 14 | fld tword [edx + 8 * 0] 15 | 16 | fsincos 17 | 18 | hlt 19 | 20 | align 8 21 | data: 22 | dt 1.0 23 | dq 0 24 | -------------------------------------------------------------------------------- /external/FEX/ASM/FEX_bugs/BEXTR_flags.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0", 5 | "RCX": "0x5a" 6 | }, 7 | "HostFeatures": ["BMI1"] 8 | } 9 | %endif 10 | bits 64 11 | 12 | mov rcx, 0x8f635a775ad3b9b4 13 | mov esi, 0x3018 14 | bextr ecx, ecx, esi 15 | cmp rcx, 0x5a 16 | jne .bad 17 | 18 | .good: 19 | mov rax, 0 20 | hlt 21 | 22 | .bad: 23 | mov rax, 1 24 | hlt 25 | -------------------------------------------------------------------------------- /external/FEX/ASM/PrimaryGroup/4_FE_00.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x4142434445464749" 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rdx, 0xe0000000 14 | 15 | mov rax, 0x4142434445464748 16 | mov [rdx + 8 * 0], rax 17 | 18 | inc byte [rdx + 8 * 0 + 0] 19 | mov rax, [rdx + 8 * 0] 20 | 21 | hlt 22 | -------------------------------------------------------------------------------- /external/FEX/ASM/PrimaryGroup/4_FE_01.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x4142434445464747" 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rdx, 0xe0000000 14 | 15 | mov rax, 0x4142434445464748 16 | mov [rdx + 8 * 0], rax 17 | 18 | dec byte [rdx + 8 * 0 + 0] 19 | mov rax, [rdx + 8 * 0] 20 | 21 | hlt 22 | -------------------------------------------------------------------------------- /external/FEX/ASM/Secondary/15_F3_02.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x4142434445464748" 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rdx, 0xe0000000 14 | wrfsbase rdx 15 | 16 | mov rax, 0x4142434445464748 17 | mov [rdx + 8 * 0], rax 18 | 19 | mov rax, -1 20 | mov rax, qword [fs:0] 21 | 22 | hlt 23 | -------------------------------------------------------------------------------- /external/FEX/ASM/Secondary/15_F3_03.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x4142434445464748" 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rdx, 0xe0000000 14 | wrgsbase rdx 15 | 16 | mov rax, 0x4142434445464748 17 | mov [rdx + 8 * 0], rax 18 | 19 | mov rax, -1 20 | mov rax, qword [gs:0] 21 | 22 | hlt 23 | -------------------------------------------------------------------------------- /external/FEX/ASM/TwoByte/0F_B0_2.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x0000000055565758", 5 | "RBX": "0x5152535455565758", 6 | "RCX": "0x6162636465666768" 7 | } 8 | } 9 | %endif 10 | bits 64 11 | 12 | mov r10, 0xe0000000 13 | 14 | mov rax, 0x4142434445464748 15 | mov rbx, 0x5152535455565758 16 | mov rcx, 0x6162636465666768 17 | cmpxchg ebx, ecx 18 | 19 | hlt 20 | -------------------------------------------------------------------------------- /external/FEX/ASM/fadd.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "Match": "All", 4 | "RegData": { 5 | "MM7": ["0xc90fdb0000000000", "0x4001"] 6 | } 7 | } 8 | %endif 9 | bits 64 10 | 11 | ; calcuate pi + pi 12 | fld dword [rel pi] 13 | fld dword [rel pi] 14 | faddp 15 | 16 | hlt 17 | 18 | align 8 19 | pi: dd 0x40490fdb ; 3.14... 20 | one: dd 0x3f800000 ; 1.0 21 | ptone: dd 0x3dcccccd ; 0.1 22 | -------------------------------------------------------------------------------- /tests/ASM/felix86_bugs/ssa_phi_bug.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RCX": "0x0000000000000000" 5 | } 6 | } 7 | %endif 8 | bits 64 9 | 10 | mov rcx, 10 11 | 12 | loop: 13 | cmp rcx, 5 14 | jz past 15 | past: ; stupid conditional jump that points to the same location for both branches, would cause ssa problems 16 | dec rcx 17 | cmp rcx, 0 18 | jne loop 19 | 20 | hlt 21 | -------------------------------------------------------------------------------- /external/Catch2/tools/scripts/checkDuplicateFilenames.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | import os 4 | import sys 5 | 6 | files_set = set() 7 | 8 | for root, dir, files in os.walk("src/catch2"): 9 | for file in files: 10 | if file not in files_set: 11 | files_set.add(file) 12 | else: 13 | print("File %s is duplicate" % file) 14 | sys.exit(1) 15 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/FEX_bugs/SubAddrBug.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0xdeadbeef" 5 | }, 6 | "MemoryRegions": { 7 | "0x10000000": "4096" 8 | }, 9 | "MemoryData": { 10 | "0x10000000": "0xdeadbeef" 11 | }, 12 | "Mode": "32BIT" 13 | } 14 | %endif 15 | bits 32 16 | 17 | section .text 18 | 19 | lea eax, [0x10000040] 20 | mov eax, [eax-0x40] 21 | hlt 22 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/Primary/Primary_E3.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RCX": "0x10000" 5 | }, 6 | "Mode": "32BIT" 7 | } 8 | %endif 9 | org 10000h 10 | bits 32 11 | 12 | mov ecx, 0x10 13 | 14 | .loop: 15 | dec ecx 16 | jecxz .end 17 | jmp .loop 18 | .end: 19 | 20 | mov ecx, 0x1FFFF 21 | 22 | .loop2: 23 | dec cx 24 | jcxz .end2 25 | jmp .loop2 26 | .end2: 27 | 28 | hlt 29 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87/DF_00.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x8000000000000000", "0x4009"] 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rdx, 0xe0000000 14 | 15 | mov eax, 1024 16 | mov [rdx + 8 * 0], eax 17 | mov eax, -1 18 | mov [rdx + 8 * 0 + 2], eax 19 | 20 | fild word [rdx + 8 * 0] 21 | 22 | hlt 23 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87_F64/DD_00_F64.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x4000000000000000" 5 | }, 6 | "Env": { "FEX_X87REDUCEDPRECISION" : "1" } 7 | } 8 | %endif 9 | bits 64 10 | 11 | mov rdx, 0xe0000000 12 | 13 | mov rax, 0x4000000000000000 ; 2.0 14 | mov [rdx + 8 * 0], rax 15 | 16 | fld qword [rdx + 8 * 0] 17 | 18 | fstp qword [rdx] 19 | mov rax, [rdx] 20 | 21 | hlt 22 | -------------------------------------------------------------------------------- /src/felix86/common/info.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include "felix86/common/info.hpp" 3 | 4 | extern const char* g_git_hash; 5 | 6 | #define YEAR "26" 7 | #define MONTH "01" 8 | 9 | const char* get_version_full() { 10 | static std::string version = "felix86 " YEAR "." MONTH + (std::string(g_git_hash) == "?" ? "" : " (" + std::string(g_git_hash) + ")"); 11 | return version.c_str(); 12 | } 13 | -------------------------------------------------------------------------------- /external/Catch2/CMake/catch2.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@CMAKE_INSTALL_PREFIX@ 2 | exec_prefix=${prefix} 3 | includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ 4 | libdir=@CMAKE_INSTALL_FULL_LIBDIR@ 5 | 6 | Name: Catch2 7 | Description: A modern, C++-native, test framework for C++14 and above 8 | URL: https://github.com/catchorg/Catch2 9 | Version: @Catch2_VERSION@ 10 | Cflags: -I${includedir} 11 | Libs: -L${libdir} -lCatch2 12 | -------------------------------------------------------------------------------- /external/Catch2/tools/misc/appveyorMergeCoverageScript.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | import glob 4 | import subprocess 5 | 6 | if __name__ == '__main__': 7 | cov_files = list(glob.glob('tests/cov-report*.bin')) 8 | base_cmd = ['OpenCppCoverage', '--quiet', '--export_type=cobertura:cobertura.xml'] + ['--input_coverage={}'.format(f) for f in cov_files] 9 | subprocess.check_call(base_cmd) 10 | -------------------------------------------------------------------------------- /external/FEX/ASM/SelfModifyingCode/DifferentBlock.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "Match": "All", 4 | "RegData": { 5 | "RAX": "0x20" 6 | } 7 | } 8 | %endif 9 | bits 64 10 | 11 | jmp main 12 | 13 | patched_op: 14 | mov rax,-1 15 | ret 16 | 17 | main: 18 | 19 | ; warm up the cache 20 | call patched_op 21 | 22 | mov byte [rel patched_op], 0xC3 23 | 24 | mov rax, 32 25 | call patched_op 26 | 27 | hlt -------------------------------------------------------------------------------- /external/FEX/ASM/TwoByte/0F_02.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x1" 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rdx, 0xe0000000 14 | 15 | mov rax, 0x0 16 | mov [rdx + 8 * 0], rax 17 | 18 | mov rax, 201 ; Time 19 | syscall 20 | cmp rax, 0 21 | setne [rdx + 8 * 0] 22 | mov rax, [rdx + 8 * 0] 23 | 24 | hlt 25 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87_F64/D9_F0_F64.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x0" 5 | }, 6 | "Env": { "FEX_X87REDUCEDPRECISION" : "1" } 7 | } 8 | %endif 9 | bits 64 10 | 11 | mov rbx, 0xe0000000 12 | 13 | lea rdx, [rel data] 14 | fld tword [rdx + 8 * 0] 15 | f2xm1 16 | 17 | fst qword [rbx] 18 | mov rax, [rbx] 19 | 20 | hlt 21 | 22 | align 8 23 | data: 24 | dt 0.0 25 | dq 0 26 | -------------------------------------------------------------------------------- /external/Catch2/tests/ExtraTests/X92-NoTests.cpp: -------------------------------------------------------------------------------- 1 | 2 | // Copyright Catch2 Authors 3 | // Distributed under the Boost Software License, Version 1.0. 4 | // (See accompanying file LICENSE.txt or copy at 5 | // https://www.boost.org/LICENSE_1_0.txt) 6 | 7 | // SPDX-License-Identifier: BSL-1.0 8 | 9 | /**\file 10 | * Links into executable with no tests which should fail when run 11 | */ 12 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/DC_00.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0xC000000000000000", "0x4000"] 5 | }, 6 | "Mode": "32BIT" 7 | } 8 | %endif 9 | org 10000h 10 | bits 32 11 | 12 | lea edx, [data] 13 | fld tword [edx + 8 * 0] 14 | 15 | lea edx, [data2] 16 | fadd qword [edx + 8 * 0] 17 | 18 | hlt 19 | 20 | align 8 21 | data: 22 | dt 1.0 23 | dq 0 24 | data2: 25 | dq 2.0 26 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/DC_01.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x8000000000000000", "0x4000"] 5 | }, 6 | "Mode": "32BIT" 7 | } 8 | %endif 9 | org 10000h 10 | bits 32 11 | 12 | lea edx, [data] 13 | fld tword [edx + 8 * 0] 14 | 15 | lea edx, [data2] 16 | fmul qword [edx + 8 * 0] 17 | 18 | hlt 19 | 20 | align 8 21 | data: 22 | dt 1.0 23 | dq 0 24 | data2: 25 | dq 2.0 26 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/DC_04.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x8000000000000000", "0xBFFF"] 5 | }, 6 | "Mode": "32BIT" 7 | } 8 | %endif 9 | org 10000h 10 | bits 32 11 | 12 | lea edx, [data] 13 | fld tword [edx + 8 * 0] 14 | 15 | lea edx, [data2] 16 | fsub qword [edx + 8 * 0] 17 | 18 | hlt 19 | 20 | align 8 21 | data: 22 | dt 1.0 23 | dq 0 24 | data2: 25 | dq 2.0 26 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/DC_05.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x8000000000000000", "0x3FFF"] 5 | }, 6 | "Mode": "32BIT" 7 | } 8 | %endif 9 | org 10000h 10 | bits 32 11 | 12 | lea edx, [data] 13 | fld tword [edx + 8 * 0] 14 | 15 | lea edx, [data2] 16 | fsubr qword [edx + 8 * 0] 17 | 18 | hlt 19 | 20 | align 8 21 | data: 22 | dt 1.0 23 | dq 0 24 | data2: 25 | dq 2.0 26 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/DC_06.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x8000000000000000", "0x3FFE"] 5 | }, 6 | "Mode": "32BIT" 7 | } 8 | %endif 9 | org 10000h 10 | bits 32 11 | 12 | lea edx, [data] 13 | fld tword [edx + 8 * 0] 14 | 15 | lea edx, [data2] 16 | fdiv qword [edx + 8 * 0] 17 | 18 | hlt 19 | 20 | align 8 21 | data: 22 | dt 1.0 23 | dq 0 24 | data2: 25 | dq 2.0 26 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/DC_07.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x8000000000000000", "0x4001"] 5 | }, 6 | "Mode": "32BIT" 7 | } 8 | %endif 9 | org 10000h 10 | bits 32 11 | 12 | lea edx, [data] 13 | fld tword [edx + 8 * 0] 14 | 15 | lea edx, [data2] 16 | fdivr qword [edx + 8 * 0] 17 | 18 | hlt 19 | 20 | align 8 21 | data: 22 | dt 2.0 23 | dq 0 24 | data2: 25 | dq 8.0 26 | -------------------------------------------------------------------------------- /external/FEX/ASM/PrimaryGroup/6_C6_00.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x4142434445464761" 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rdx, 0xe0000000 14 | 15 | mov rax, 0x4142434445464748 16 | mov [rdx + 8 * 0], rax 17 | 18 | mov byte [rdx + 8 * 0 + 0], 0x61 19 | 20 | mov rax, [rdx + 8 * 0] 21 | 22 | hlt 23 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87_F64/DB_05_F64.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x4000000000000000" 5 | }, 6 | "Env": { "FEX_X87REDUCEDPRECISION" : "1" } 7 | } 8 | %endif 9 | bits 64 10 | 11 | lea rdx, [rel data] 12 | 13 | fld tword [rdx + 8 * 0] 14 | 15 | mov rdx, 0xe0000000 16 | fstp qword [rdx] 17 | mov rax, [rdx] 18 | 19 | hlt 20 | 21 | align 8 22 | data: 23 | dt 2.0 24 | dq 0 25 | -------------------------------------------------------------------------------- /external/Catch2/CMake/catch2-with-main.pc.in: -------------------------------------------------------------------------------- 1 | includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ 2 | libdir=@CMAKE_INSTALL_FULL_LIBDIR@ 3 | pkg_version=@Catch2_VERSION@ 4 | 5 | Name: Catch2-With-Main 6 | Description: A modern, C++-native test framework for C++14 and above (links in default main) 7 | Version: ${pkg_version} 8 | Requires: catch2 = ${pkg_version} 9 | Cflags: -I${includedir} 10 | Libs: -L${libdir} -lCatch2Main 11 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/FEX_bugs/InlineSyscall.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | }, 5 | "Mode": "32BIT" 6 | } 7 | %endif 8 | bits 32 9 | 10 | ; FEX 32-bit inline syscalls hit an assert in uxtw 11 | ; Just use an inline syscall and throw it zero data to catch the assert 12 | mov eax, 355 ; getrandom, is an inline syscall 13 | mov ebx, 0 14 | mov ecx, 0 15 | mov edx, 0 16 | int 0x80 17 | 18 | hlt 19 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/D9_02.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x3F800000", 5 | "MM7": ["0x8000000000000000", "0x3fff"] 6 | }, 7 | "Mode": "32BIT" 8 | } 9 | %endif 10 | org 10000h 11 | bits 32 12 | 13 | lea edx, [.data] 14 | 15 | fld dword [edx + 8 * 0] 16 | fst dword [edx + 8 * 1] 17 | 18 | mov eax, [edx + 8 * 1] 19 | 20 | hlt 21 | 22 | .data: 23 | dq 0x3f800000 24 | dq 0 25 | -------------------------------------------------------------------------------- /external/FEX/ASM/PrimaryGroup/3_F6_07_2.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x0021" 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rdx, 0xe0000000 14 | 15 | mov rax, 0x8 16 | mov [rdx + 8 * 0], rax 17 | 18 | ; Test that 8bit divide divides a 16bit dividend 19 | mov ax, 0x0108 20 | idiv byte [rdx + 8 * 0] 21 | 22 | hlt 23 | -------------------------------------------------------------------------------- /external/FEX/ASM/TwoByte/0F_31.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x1" 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov r15, 0xe0000000 14 | 15 | mov rax, 0x0 16 | mov [r15 + 8 * 0], rax 17 | 18 | rdtsc 19 | shl rdx, 32 20 | or rax, rdx 21 | cmp rax, 0 22 | setne [r15 + 8 * 0] 23 | mov rax, [r15 + 8 * 0] 24 | 25 | hlt 26 | -------------------------------------------------------------------------------- /external/FEX/ASM/TwoByte/0F_91.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x1", 5 | "RBX": "0x0" 6 | }, 7 | "MemoryRegions": { 8 | "0x100000000": "4096" 9 | } 10 | } 11 | %endif 12 | bits 64 13 | 14 | mov r15, 0xe0000000 15 | 16 | mov r10, 0x1 17 | mov r11, 0x0 18 | mov r12, 0x2 19 | 20 | cmp r10d, r12d 21 | 22 | mov rax, 0 23 | mov rbx, 0 24 | setno al 25 | seto bl 26 | 27 | hlt 28 | -------------------------------------------------------------------------------- /external/FEX/ASM/TwoByte/0F_92.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x1", 5 | "RBX": "0x0" 6 | }, 7 | "MemoryRegions": { 8 | "0x100000000": "4096" 9 | } 10 | } 11 | %endif 12 | bits 64 13 | 14 | mov r15, 0xe0000000 15 | 16 | mov r10, 0x1 17 | mov r11, 0x0 18 | mov r12, 0x2 19 | 20 | cmp r10d, r12d 21 | 22 | mov rax, 0 23 | mov rbx, 0 24 | setc al 25 | setnc bl 26 | 27 | hlt 28 | -------------------------------------------------------------------------------- /external/FEX/ASM/TwoByte/0F_93.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x1", 5 | "RBX": "0x0" 6 | }, 7 | "MemoryRegions": { 8 | "0x100000000": "4096" 9 | } 10 | } 11 | %endif 12 | bits 64 13 | 14 | mov r15, 0xe0000000 15 | 16 | mov r10, 0x2 17 | mov r11, 0x0 18 | mov r12, 0x1 19 | 20 | cmp r10d, r12d 21 | 22 | mov rax, 0 23 | mov rbx, 0 24 | setnc al 25 | setc bl 26 | 27 | hlt 28 | -------------------------------------------------------------------------------- /external/FEX/ASM/TwoByte/0F_94.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x1", 5 | "RBX": "0x0" 6 | }, 7 | "MemoryRegions": { 8 | "0x100000000": "4096" 9 | } 10 | } 11 | %endif 12 | bits 64 13 | 14 | mov r15, 0xe0000000 15 | 16 | mov r10, 0x1 17 | mov r11, 0x0 18 | mov r12, 0x1 19 | 20 | cmp r10d, r12d 21 | 22 | mov rax, 0 23 | mov rbx, 0 24 | setz al 25 | setnz bl 26 | 27 | hlt 28 | -------------------------------------------------------------------------------- /external/FEX/ASM/TwoByte/0F_95.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x1", 5 | "RBX": "0x0" 6 | }, 7 | "MemoryRegions": { 8 | "0x100000000": "4096" 9 | } 10 | } 11 | %endif 12 | bits 64 13 | 14 | mov r15, 0xe0000000 15 | 16 | mov r10, 0x2 17 | mov r11, 0x0 18 | mov r12, 0x1 19 | 20 | cmp r10d, r12d 21 | 22 | mov rax, 0 23 | mov rbx, 0 24 | setnz al 25 | setz bl 26 | 27 | hlt 28 | -------------------------------------------------------------------------------- /external/FEX/ASM/TwoByte/0F_98.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x1", 5 | "RBX": "0x0" 6 | }, 7 | "MemoryRegions": { 8 | "0x100000000": "4096" 9 | } 10 | } 11 | %endif 12 | bits 64 13 | 14 | mov r15, 0xe0000000 15 | 16 | mov r10, 0x1 17 | mov r11, 0x0 18 | mov r12, 0x2 19 | 20 | cmp r10d, r12d 21 | 22 | mov rax, 0 23 | mov rbx, 0 24 | sets al 25 | setns bl 26 | 27 | hlt 28 | -------------------------------------------------------------------------------- /external/FEX/ASM/TwoByte/0F_99.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x1", 5 | "RBX": "0x0" 6 | }, 7 | "MemoryRegions": { 8 | "0x100000000": "4096" 9 | } 10 | } 11 | %endif 12 | bits 64 13 | 14 | mov r15, 0xe0000000 15 | 16 | mov r10, 0x1 17 | mov r11, 0x0 18 | mov r12, 0x1 19 | 20 | cmp r10d, r12d 21 | 22 | mov rax, 0 23 | mov rbx, 0 24 | setns al 25 | sets bl 26 | 27 | hlt 28 | -------------------------------------------------------------------------------- /external/FEX/ASM/TwoByte/0F_9A.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x1", 5 | "RBX": "0x0" 6 | }, 7 | "MemoryRegions": { 8 | "0x100000000": "4096" 9 | } 10 | } 11 | %endif 12 | bits 64 13 | 14 | mov r15, 0xe0000000 15 | 16 | mov r10, 0x4 17 | mov r11, 0x0 18 | mov r12, 0x1 19 | 20 | cmp r10d, r12d 21 | 22 | mov rax, 0 23 | mov rbx, 0 24 | setp al 25 | setnp bl 26 | 27 | hlt 28 | -------------------------------------------------------------------------------- /external/FEX/ASM/TwoByte/0F_9B.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x1", 5 | "RBX": "0x0" 6 | }, 7 | "MemoryRegions": { 8 | "0x100000000": "4096" 9 | } 10 | } 11 | %endif 12 | bits 64 13 | 14 | mov r15, 0xe0000000 15 | 16 | mov r10, 0x3 17 | mov r11, 0x0 18 | mov r12, 0x1 19 | 20 | cmp r10d, r12d 21 | 22 | mov rax, 0 23 | mov rbx, 0 24 | setnp al 25 | setp bl 26 | 27 | hlt 28 | -------------------------------------------------------------------------------- /external/FEX/ASM/TwoByte/0F_9C.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x1", 5 | "RBX": "0x0" 6 | }, 7 | "MemoryRegions": { 8 | "0x100000000": "4096" 9 | } 10 | } 11 | %endif 12 | bits 64 13 | 14 | mov r15, 0xe0000000 15 | 16 | mov r10, 0x1 17 | mov r11, 0x0 18 | mov r12, 0x2 19 | 20 | cmp r10d, r12d 21 | 22 | mov rax, 0 23 | mov rbx, 0 24 | setl al 25 | setnl bl 26 | 27 | hlt 28 | -------------------------------------------------------------------------------- /external/FEX/ASM/TwoByte/0F_9D.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x1", 5 | "RBX": "0x0" 6 | }, 7 | "MemoryRegions": { 8 | "0x100000000": "4096" 9 | } 10 | } 11 | %endif 12 | bits 64 13 | 14 | mov r15, 0xe0000000 15 | 16 | mov r10, 0x2 17 | mov r11, 0x0 18 | mov r12, 0x2 19 | 20 | cmp r10d, r12d 21 | 22 | mov rax, 0 23 | mov rbx, 0 24 | setnl al 25 | setl bl 26 | 27 | hlt 28 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87_F64/D9_FC_F64.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x3ff0000000000000" 5 | }, 6 | "Env": { "FEX_X87REDUCEDPRECISION" : "1" } 7 | } 8 | %endif 9 | bits 64 10 | 11 | mov rdx, 0xe0000000 12 | 13 | mov eax, 0x3f834241 ; 1.02546 14 | mov [rdx + 8 * 0], eax 15 | 16 | fld dword [rdx + 8 * 0] 17 | 18 | frndint 19 | 20 | fst qword [rdx] 21 | mov rax, [rdx] 22 | 23 | hlt 24 | -------------------------------------------------------------------------------- /external/Catch2/.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Create an issue that requests a feature or other improvement 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Description** 11 | Describe the feature/change you request and why do you want it. 12 | 13 | **Additional context** 14 | Add any other context or screenshots about the feature request here. 15 | -------------------------------------------------------------------------------- /external/Catch2/codecov.yml: -------------------------------------------------------------------------------- 1 | coverage: 2 | precision: 2 3 | round: nearest 4 | range: "60...90" 5 | status: 6 | project: 7 | default: 8 | threshold: 2% 9 | patch: 10 | default: 11 | target: 80% 12 | ignore: 13 | - "**/external/clara.hpp" 14 | - "tests" 15 | 16 | 17 | codecov: 18 | branch: devel 19 | max_report_age: off 20 | 21 | comment: 22 | layout: "diff" 23 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/DF_E0.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0xFFFF3800", 5 | "RBX": "0xFFFF0000" 6 | }, 7 | "Mode": "32BIT" 8 | } 9 | %endif 10 | org 10000h 11 | bits 32 12 | 13 | lea edx, [.data] 14 | 15 | mov eax, -1 16 | mov ebx, -1 17 | fnstsw ax 18 | mov bx, ax 19 | 20 | fld dword [edx + 8 * 0] 21 | fnstsw ax 22 | 23 | hlt 24 | 25 | .data: 26 | dq 0x3f800000 ; 1.0 27 | 28 | -------------------------------------------------------------------------------- /external/FEX/ASM/OpSize/66_16.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "XMM0": ["0x4142434445464748", "0x6162636465666768"] 5 | } 6 | } 7 | %endif 8 | bits 64 9 | 10 | lea rdx, [rel .data] 11 | 12 | movapd xmm0, [rdx] 13 | movhpd xmm0, [rdx + 16] 14 | 15 | hlt 16 | 17 | align 16 18 | .data: 19 | dq 0x4142434445464748 20 | dq 0x5152535455565758 21 | 22 | dq 0x6162636465666768 23 | dq 0x7172737475767778 24 | -------------------------------------------------------------------------------- /external/FEX/ASM/Primary/Primary_84_2.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x0" 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rdx, 0xe0000000 14 | mov dword [rdx], 0xFFFFFF00 15 | 16 | mov r11d, dword[rdx] 17 | test r11b, r11b 18 | jnz notzero 19 | 20 | mov rax, 0x0 21 | hlt 22 | 23 | notzero: 24 | mov rax, 0x1 25 | hlt -------------------------------------------------------------------------------- /external/FEX/ASM/SecondaryModRM/Reg_2_0.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x3", 5 | "RDX": "0x0" 6 | } 7 | } 8 | %endif 9 | bits 64 10 | 11 | mov ecx, 0 12 | xgetbv 13 | 14 | ; Mask only the lower two bits to get host and FEX runners to match. 15 | ; This way we can test that we're getting data back. 16 | ; Bit 0 and 1 refer to X87 and SSE respectively. 17 | and eax, 0x3 18 | 19 | hlt 20 | -------------------------------------------------------------------------------- /external/FEX/ASM/TwoByte/0F_90.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x1", 5 | "RBX": "0x0" 6 | }, 7 | "MemoryRegions": { 8 | "0x100000000": "4096" 9 | } 10 | } 11 | %endif 12 | bits 64 13 | 14 | mov r15, 0xe0000000 15 | 16 | mov r10, 0x80000000 17 | mov r11, 0x1 18 | mov r12, 0x2 19 | 20 | cmp r10d, r12d 21 | 22 | mov rax, 0 23 | mov rbx, 0 24 | seto al 25 | setno bl 26 | 27 | hlt 28 | -------------------------------------------------------------------------------- /external/FEX/ASM/TwoByte/0F_96.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x1", 5 | "RBX": "0x0" 6 | }, 7 | "MemoryRegions": { 8 | "0x100000000": "4096" 9 | } 10 | } 11 | %endif 12 | bits 64 13 | 14 | mov r15, 0xe0000000 15 | 16 | mov r10, 0x2 17 | mov r11, 0x0 18 | mov r12, 0x2 19 | 20 | cmp r10d, r12d 21 | 22 | mov rax, 0 23 | mov rbx, 0 24 | setbe al 25 | setnbe bl 26 | 27 | hlt 28 | -------------------------------------------------------------------------------- /external/FEX/ASM/TwoByte/0F_97.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x1", 5 | "RBX": "0x0" 6 | }, 7 | "MemoryRegions": { 8 | "0x100000000": "4096" 9 | } 10 | } 11 | %endif 12 | bits 64 13 | 14 | mov r15, 0xe0000000 15 | 16 | mov r10, 0x2 17 | mov r11, 0x0 18 | mov r12, 0x1 19 | 20 | cmp r10d, r12d 21 | 22 | mov rax, 0 23 | mov rbx, 0 24 | setnbe al 25 | setbe bl 26 | 27 | hlt 28 | -------------------------------------------------------------------------------- /external/FEX/ASM/TwoByte/0F_9E.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x1", 5 | "RBX": "0x0" 6 | }, 7 | "MemoryRegions": { 8 | "0x100000000": "4096" 9 | } 10 | } 11 | %endif 12 | bits 64 13 | 14 | mov r15, 0xe0000000 15 | 16 | mov r10, 0x1 17 | mov r11, 0x0 18 | mov r12, 0x2 19 | 20 | cmp r10d, r12d 21 | 22 | mov rax, 0 23 | mov rbx, 0 24 | setle al 25 | setnle bl 26 | 27 | hlt 28 | -------------------------------------------------------------------------------- /external/FEX/ASM/TwoByte/0F_9F.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x1", 5 | "RBX": "0x0" 6 | }, 7 | "MemoryRegions": { 8 | "0x100000000": "4096" 9 | } 10 | } 11 | %endif 12 | bits 64 13 | 14 | mov r15, 0xe0000000 15 | 16 | mov r10, 0x2 17 | mov r11, 0x0 18 | mov r12, 0x1 19 | 20 | cmp r10d, r12d 21 | 22 | mov rax, 0 23 | mov rbx, 0 24 | setnle al 25 | setle bl 26 | 27 | hlt 28 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87/D9_F2.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM6": ["0x8000000000000000", "0x3FFF"], 5 | "MM7": ["0xC75922E5F71D2DC6", "0x3FFF"] 6 | }, 7 | "MemoryRegions": { 8 | "0x100000000": "4096" 9 | } 10 | } 11 | %endif 12 | bits 64 13 | 14 | lea rdx, [rel data] 15 | fld tword [rdx + 8 * 0] 16 | 17 | fptan 18 | 19 | hlt 20 | 21 | align 8 22 | data: 23 | dt 1.0 24 | dq 0 25 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87/D9_F4.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM6": ["0xF000000000000000", "0xBFFF"], 5 | "MM7": ["0xC000000000000000", "0x4000"] 6 | }, 7 | "MemoryRegions": { 8 | "0x100000000": "4096" 9 | } 10 | } 11 | %endif 12 | bits 64 13 | 14 | lea rdx, [rel data] 15 | fld tword [rdx + 8 * 0] 16 | 17 | fxtract 18 | 19 | hlt 20 | 21 | align 8 22 | data: 23 | dt -15.0 24 | dq 0 25 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87/D9_FB.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM6": ["0x8A51407DA8345C92", "0x3FFE"], 5 | "MM7": ["0xD76AA47848677021", "0x3FFE"] 6 | }, 7 | "MemoryRegions": { 8 | "0x100000000": "4096" 9 | } 10 | } 11 | %endif 12 | bits 64 13 | 14 | lea rdx, [rel data] 15 | fld tword [rdx + 8 * 0] 16 | 17 | fsincos 18 | 19 | hlt 20 | 21 | align 8 22 | data: 23 | dt 1.0 24 | dq 0 25 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87_F64/D8_F0_F64.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x3ff0000000000000" 5 | }, 6 | "Env": { "FEX_X87REDUCEDPRECISION" : "1" } 7 | } 8 | %endif 9 | bits 64 10 | 11 | mov rdx, 0xe0000000 12 | 13 | mov rax, 0x4000000000000000 ; 2.0 14 | mov [rdx + 8 * 0], rax 15 | 16 | fld qword [rdx + 8 * 0] 17 | fdiv st0, st0 18 | 19 | fst qword [rdx] 20 | mov rax, [rdx] 21 | 22 | hlt 23 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/D9_C8.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM6": ["0x8000000000000000", "0x3FFF"], 5 | "MM7": ["0x8000000000000000", "0x4000"] 6 | }, 7 | "Mode": "32BIT" 8 | } 9 | %endif 10 | org 10000h 11 | bits 32 12 | 13 | lea edx, [.data] 14 | 15 | fld dword [edx + 8 * 0] 16 | fld dword [edx + 8 * 1] 17 | 18 | fxch 19 | 20 | hlt 21 | 22 | .data: 23 | dq 0x3f800000 24 | dq 0x40000000 25 | -------------------------------------------------------------------------------- /external/FEX/ASM/Primary/Primary_6A_2.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x000000000000FF81", 5 | "RSP": "0xE0000018" 6 | }, 7 | "MemoryRegions": { 8 | "0x100000000": "4096" 9 | } 10 | } 11 | %endif 12 | bits 64 13 | 14 | mov rsp, 0xe0000020 15 | 16 | push word 0 17 | push word 0 18 | push word 0 19 | push word -127 20 | 21 | mov rdx, 0xe0000020 22 | mov rax, [rdx - 8] 23 | 24 | hlt 25 | -------------------------------------------------------------------------------- /external/FEX/ASM/TwoByte/0F_F6_2.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM0": "0x00000000000007F8" 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rdx, 0xe0000000 14 | 15 | mov rax, 0x0 16 | mov [rdx + 8 * 0], rax 17 | mov rax, -1 18 | mov [rdx + 8 * 1], rax 19 | 20 | movq mm0, [rdx + 8 * 0] 21 | 22 | psadbw mm0, [rdx + 8 * 1] 23 | 24 | hlt 25 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87_F64/D9_F2_F64.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x3ff0000000000000" 5 | }, 6 | "Env": { "FEX_X87REDUCEDPRECISION" : "1" } 7 | } 8 | %endif 9 | bits 64 10 | 11 | mov rbx, 0xe0000000 12 | 13 | lea rdx, [rel data] 14 | fld tword [rdx + 8 * 0] 15 | 16 | fptan 17 | 18 | fst qword [rbx] 19 | mov rax, [rbx] 20 | 21 | hlt 22 | 23 | align 8 24 | data: 25 | dt 1.0 26 | dq 0 27 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87_F64/D9_FA_F64.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x4010000000000000" 5 | }, 6 | "Env": { "FEX_X87REDUCEDPRECISION" : "1" } 7 | } 8 | %endif 9 | bits 64 10 | 11 | mov rbx, 0xe0000000 12 | 13 | lea rdx, [rel data] 14 | fld tword [rdx + 8 * 0] 15 | 16 | fsqrt 17 | 18 | fst qword [rbx] 19 | mov rax, [rbx] 20 | 21 | hlt 22 | 23 | align 8 24 | data: 25 | dt 16.0 26 | dq 0 27 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87_F64/D9_FE_F64.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x3feaed548f090cee" 5 | }, 6 | "Env": { "FEX_X87REDUCEDPRECISION" : "1" } 7 | } 8 | %endif 9 | bits 64 10 | 11 | mov rbx, 0xe0000000 12 | 13 | lea rdx, [rel data] 14 | fld tword [rdx + 8 * 0] 15 | 16 | fsin 17 | 18 | fst qword [rbx] 19 | mov rax, [rbx] 20 | 21 | hlt 22 | 23 | align 8 24 | data: 25 | dt 1.0 26 | dq 0 27 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87_F64/D9_FF_F64.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0xbfdaa22657537205" 5 | }, 6 | "Env": { "FEX_X87REDUCEDPRECISION" : "1" } 7 | } 8 | %endif 9 | bits 64 10 | 11 | mov rbx, 0xe0000000 12 | 13 | lea rdx, [rel data] 14 | fld tword [rdx + 8 * 0] 15 | 16 | fcos 17 | 18 | fst qword [rbx] 19 | mov rax, [rbx] 20 | 21 | hlt 22 | 23 | align 8 24 | data: 25 | dt 2.0 26 | dq 0 27 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/DB_03.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x400", 5 | "MM7": ["0x8000000000000000", "0x3FFF"] 6 | }, 7 | "Mode": "32BIT" 8 | } 9 | %endif 10 | org 10000h 11 | bits 32 12 | 13 | lea edx, [.data] 14 | fld dword [edx + 8 * 0] 15 | 16 | fistp dword [edx + 8 * 1] 17 | 18 | fld1 19 | 20 | mov eax, [edx + 8 * 1] 21 | 22 | hlt 23 | 24 | .data: 25 | dq 0x44800000 26 | dq 0 27 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87/Memcopy.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x3ff8000000000000", 5 | "RBX": "0x3ff8000000000000" 6 | }, 7 | "MemoryRegions": { 8 | "0x100000000": "4096" 9 | } 10 | } 11 | %endif 12 | bits 64 13 | 14 | mov rdx, 0x100000000 15 | mov rax, 0x3ff8000000000000 ; 1.5 16 | mov [rdx], rax 17 | 18 | fld qword [rdx] 19 | fstp qword [rdx + 8] 20 | 21 | mov rbx, [rdx + 8] 22 | hlt 23 | -------------------------------------------------------------------------------- /src/felix86/hle/ioctl32.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "felix86/common/types.hpp" 5 | 6 | using ioctl_handler_type = int (*)(int, u32, u32); 7 | 8 | struct Ioctl32 { 9 | static void registerFd(int fd, const std::string& name); 10 | 11 | static void duplicateFd(int fd, int new_fd); 12 | 13 | static ioctl_handler_type getHandler(int fd); 14 | }; 15 | 16 | int ioctl32(int fd, u32 cmd, u32 args); -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/DB_01.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x400", 5 | "MM7": ["0x8000000000000000", "0x3FFF"] 6 | }, 7 | "Mode": "32BIT" 8 | } 9 | %endif 10 | org 10000h 11 | bits 32 12 | 13 | lea edx, [.data] 14 | 15 | fld dword [edx + 8 * 0] 16 | 17 | fisttp dword [edx + 8 * 1] 18 | 19 | fld1 20 | 21 | mov eax, [edx + 8 * 1] 22 | 23 | hlt 24 | 25 | .data: 26 | dq 0x44800000 27 | dq 0 28 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87_F64/D8_C8_F64.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x4010000000000000" 5 | }, 6 | "Env": { "FEX_X87REDUCEDPRECISION" : "1" } 7 | } 8 | %endif 9 | bits 64 10 | 11 | mov rdx, 0xe0000000 12 | 13 | mov rax, 0x4000000000000000 ; 2.0 14 | mov [rdx + 8 * 0], rax 15 | 16 | fld qword [rdx + 8 * 0] 17 | fmul st0, st0 18 | 19 | fst qword [rdx + 8 * 2] 20 | mov rax, [rdx + 8 * 2] 21 | 22 | hlt 23 | -------------------------------------------------------------------------------- /external/biscuit/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.15) 2 | project(biscuit VERSION 0.19.0) 3 | 4 | include(CTest) 5 | 6 | option(BISCUIT_CODE_BUFFER_MMAP "Use mmap for handling code buffers instead of new" OFF) 7 | 8 | # Source directories 9 | add_subdirectory(src) 10 | 11 | if (BUILD_TESTING) 12 | add_subdirectory(tests) 13 | endif() 14 | 15 | if (BUILD_EXAMPLES) 16 | add_subdirectory(examples) 17 | endif() 18 | -------------------------------------------------------------------------------- /docs/internal/new-release-guide.md: -------------------------------------------------------------------------------- 1 | # How to make a new release because you forgot 2 | 0. Make sure you're in the commit you want the release to be in. It must be a commit in master 3 | 1. Make a new tag: `git tag 25.07` 4 | 2. Push tags: `git push origin --tags` 5 | 3. Download the release artifact (linux_artifact) and name it as `felix86.year.month.zip` 6 | 4. Add the release in `felix86.com/releases.txt` with artifact url (up to 5 lines, newest at top) -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/D8_E0.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM6": ["0x8000000000000000", "0xBFFF"], 5 | "MM7": ["0x8000000000000000", "0x4000"] 6 | }, 7 | "Mode": "32BIT" 8 | } 9 | %endif 10 | org 10000h 11 | bits 32 12 | 13 | lea edx, [.data] 14 | 15 | fld qword [edx + 8 * 0] 16 | fld qword [edx + 8 * 1] 17 | fsub st0, st1 18 | hlt 19 | 20 | .data: 21 | dq 0x4000000000000000 22 | dq 0x3ff0000000000000 23 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/D8_E8.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM6": ["0x8000000000000000", "0x3FFF"], 5 | "MM7": ["0x8000000000000000", "0x4000"] 6 | }, 7 | "Mode": "32BIT" 8 | } 9 | %endif 10 | org 10000h 11 | bits 32 12 | 13 | lea edx, [.data] 14 | 15 | fld qword [edx + 8 * 0] 16 | fld qword [edx + 8 * 1] 17 | fsubr st0, st1 18 | hlt 19 | 20 | .data: 21 | dq 0x4000000000000000 22 | dq 0x3ff0000000000000 23 | -------------------------------------------------------------------------------- /external/FEX/ASM/OpSize/66_10.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "XMM0": ["0x4142434445464748", "0x5152535455565758"] 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rdx, 0xe0000000 14 | 15 | mov rax, 0x4142434445464748 16 | mov [rdx + 8 * 0], rax 17 | mov rax, 0x5152535455565758 18 | mov [rdx + 8 * 1], rax 19 | 20 | movupd xmm0, [rdx] 21 | 22 | hlt 23 | -------------------------------------------------------------------------------- /external/FEX/ASM/Primary/Primary_99.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0xFFFFFFFFFFFFFFF0", 5 | "RDX": "0xFFFFFFFFFFFFFFFF" 6 | }, 7 | "MemoryRegions": { 8 | "0x100000000": "4096" 9 | } 10 | } 11 | %endif 12 | bits 64 13 | 14 | mov rax, 0 15 | mov rdx, 0 16 | 17 | mov ax, 0xFFF0 18 | cwd 19 | 20 | shl edx, 16 21 | or eax, edx 22 | cdq 23 | 24 | shl rdx, 32 25 | or rax, rdx 26 | cqo 27 | 28 | hlt 29 | -------------------------------------------------------------------------------- /external/FEX/ASM/VEX/andn.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0xFFFFFFFFFFFFFFFF", 5 | "RBX": "0", 6 | "RCX": "0xFFFFFFFF", 7 | "RDX": "0" 8 | }, 9 | "HostFeatures": ["BMI1"] 10 | } 11 | %endif 12 | bits 64 13 | 14 | mov rax, 0 15 | mov rbx, -1 16 | andn rax, rax, rbx 17 | andn rbx, rbx, rax 18 | 19 | mov rcx, 0 20 | mov rdx, -1 21 | andn ecx, ecx, edx 22 | andn edx, edx, ecx 23 | 24 | hlt 25 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87/DC_00.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0xC000000000000000", "0x4000"] 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | lea rdx, [rel data] 14 | fld tword [rdx + 8 * 0] 15 | 16 | lea rdx, [rel data2] 17 | fadd qword [rdx + 8 * 0] 18 | 19 | hlt 20 | 21 | align 8 22 | data: 23 | dt 1.0 24 | dq 0 25 | data2: 26 | dq 2.0 27 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87/DC_01.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x8000000000000000", "0x4000"] 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | lea rdx, [rel data] 14 | fld tword [rdx + 8 * 0] 15 | 16 | lea rdx, [rel data2] 17 | fmul qword [rdx + 8 * 0] 18 | 19 | hlt 20 | 21 | align 8 22 | data: 23 | dt 1.0 24 | dq 0 25 | data2: 26 | dq 2.0 27 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87/DC_04.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x8000000000000000", "0xBFFF"] 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | lea rdx, [rel data] 14 | fld tword [rdx + 8 * 0] 15 | 16 | lea rdx, [rel data2] 17 | fsub qword [rdx + 8 * 0] 18 | 19 | hlt 20 | 21 | align 8 22 | data: 23 | dt 1.0 24 | dq 0 25 | data2: 26 | dq 2.0 27 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87/DC_05.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x8000000000000000", "0x3FFF"] 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | lea rdx, [rel data] 14 | fld tword [rdx + 8 * 0] 15 | 16 | lea rdx, [rel data2] 17 | fsubr qword [rdx + 8 * 0] 18 | 19 | hlt 20 | 21 | align 8 22 | data: 23 | dt 1.0 24 | dq 0 25 | data2: 26 | dq 2.0 27 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87/DC_06.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x8000000000000000", "0x3FFE"] 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | lea rdx, [rel data] 14 | fld tword [rdx + 8 * 0] 15 | 16 | lea rdx, [rel data2] 17 | fdiv qword [rdx + 8 * 0] 18 | 19 | hlt 20 | 21 | align 8 22 | data: 23 | dt 1.0 24 | dq 0 25 | data2: 26 | dq 2.0 27 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87/DC_07.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x8000000000000000", "0x4001"] 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | lea rdx, [rel data] 14 | fld tword [rdx + 8 * 0] 15 | 16 | lea rdx, [rel data2] 17 | fdivr qword [rdx + 8 * 0] 18 | 19 | hlt 20 | 21 | align 8 22 | data: 23 | dt 2.0 24 | dq 0 25 | data2: 26 | dq 8.0 27 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87_F64/DF_00_F64.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x4090000000000000" 5 | }, 6 | "Env": { "FEX_X87REDUCEDPRECISION" : "1" } 7 | } 8 | %endif 9 | bits 64 10 | 11 | mov rdx, 0xe0000000 12 | 13 | mov eax, 1024 14 | mov [rdx + 8 * 0], eax 15 | mov eax, -1 16 | mov [rdx + 8 * 0 + 2], eax 17 | 18 | fild word [rdx + 8 * 0] 19 | fst qword [rdx + 8 * 0] 20 | mov rax, [rdx + 8 * 0] 21 | 22 | hlt 23 | -------------------------------------------------------------------------------- /external/FEX/ASM/FEX_bugs/xor_flags.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x0000000000004600" 5 | } 6 | } 7 | %endif 8 | bits 64 9 | 10 | ; FEX had a bug where an optimization for canonical zeroing of a register would fail to set flags correctly. 11 | ; This broke `Metal Gear Rising: Revengeance`. The title screen geometry was broken. 12 | 13 | mov rax, 0 14 | mov rbx, 0 15 | sahf 16 | xor rbx, rbx 17 | lahf 18 | hlt 19 | -------------------------------------------------------------------------------- /external/FEX/ASM/TwoByte/0F_10.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "XMM0": ["0x4142434445464748", "0x5152535455565758"] 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rdx, 0xe0000000 14 | 15 | mov rax, 0x4142434445464748 16 | mov [rdx + 8 * 0], rax 17 | mov rax, 0x5152535455565758 18 | mov [rdx + 8 * 1], rax 19 | 20 | movups xmm0, [rdx + 8 * 0] 21 | 22 | hlt 23 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87_F64/D9_02_F64.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x3F800000" 5 | }, 6 | "Env": { "FEX_X87REDUCEDPRECISION" : "1" } 7 | } 8 | %endif 9 | bits 64 10 | 11 | mov rdx, 0xe0000000 12 | 13 | mov eax, 0x3f800000 ; 1.0 14 | mov [rdx + 8 * 0], eax 15 | mov eax, 0x0 16 | mov [rdx + 8 * 1], eax 17 | 18 | fld dword [rdx + 8 * 0] 19 | fst dword [rdx + 8 * 1] 20 | 21 | mov eax, [rdx + 8 * 1] 22 | 23 | hlt 24 | -------------------------------------------------------------------------------- /external/FEX/ASM/x87_stack.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x4142434445464748", 5 | "RBX": "0" 6 | } 7 | } 8 | %endif 9 | bits 64 10 | 11 | lea rax, [rel .data] 12 | lea rbx, [rel .data_mov] 13 | 14 | fld qword [rax] 15 | fstp qword [rbx] 16 | 17 | mov rax, [rbx] 18 | mov rbx, [rbx + 8] 19 | hlt 20 | 21 | .data: 22 | dq 0x4142434445464748 23 | dq 0x5152535455565758 24 | 25 | .data_mov: 26 | dq 0 27 | dq 0 28 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/D8_F8.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM6": ["0x8000000000000000", "0x3FFE"], 5 | "MM7": ["0x8000000000000000", "0x4000"] 6 | }, 7 | "Mode": "32BIT" 8 | } 9 | %endif 10 | org 10000h 11 | bits 32 12 | 13 | lea edx, [.data] 14 | 15 | fld qword [edx + 8 * 0] 16 | fld qword [edx + 8 * 1] 17 | 18 | fdivr st0, st1 19 | hlt 20 | 21 | .data: 22 | dq 0x4000000000000000 23 | dq 0x4010000000000000 24 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/DB_07.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x8000000000000000", "0x4000"] 5 | }, 6 | "Mode": "32BIT" 7 | } 8 | %endif 9 | org 10000h 10 | bits 32 11 | 12 | lea edx, [data] 13 | fld tword [edx + 8 * 0] 14 | 15 | lea edx, [data2] 16 | fstp tword [edx + 8 * 0] 17 | fld tword [edx + 8 * 0] 18 | 19 | hlt 20 | 21 | align 8 22 | data: 23 | dt 2.0 24 | dq 0 25 | data2: 26 | dt 0.0 27 | dq 0 28 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87_F64/DD_E9_F64.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x3ff0000000000000", 5 | "RBX": "0x3ff0000000000000" 6 | }, 7 | "Env": { "FEX_X87REDUCEDPRECISION" : "1" } 8 | } 9 | %endif 10 | bits 64 11 | 12 | ; Only tests pop behaviour 13 | fld1 14 | fldz 15 | fucomp 16 | fld1 17 | 18 | mov rdx, 0xe0000000 19 | fstp qword [rdx] 20 | mov rax, [rdx] 21 | fstp qword [rdx] 22 | mov rbx, [rdx] 23 | 24 | 25 | hlt 26 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/DF_03.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x400", 5 | "MM7": ["0x8000000000000000", "0x3FFF"] 6 | }, 7 | "Mode": "32BIT" 8 | } 9 | %endif 10 | org 10000h 11 | bits 32 12 | 13 | lea edx, [.data] 14 | 15 | fld dword [edx + 8 * 0] 16 | 17 | fistp word [edx + 8 * 1] 18 | 19 | fld1 20 | 21 | mov eax, 0 22 | mov ax, word [edx + 8 * 1] 23 | 24 | hlt 25 | 26 | .data: 27 | dq 0x44800000 28 | dq -1 29 | -------------------------------------------------------------------------------- /external/FEX/ASM/Secondary/15_F3_00.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x0000434445464748", 5 | "RBX": "0x0000000045464748", 6 | "RCX": "0x0000434445464748" 7 | }, 8 | "MemoryRegions": { 9 | "0x100000000": "4096" 10 | } 11 | } 12 | %endif 13 | bits 64 14 | 15 | mov rax, 0x0000434445464748 16 | mov rbx, -1 17 | mov rcx, -1 18 | 19 | wrfsbase rax 20 | rdfsbase ebx ; 32bit 21 | rdfsbase rcx ; 64bit 22 | 23 | hlt 24 | -------------------------------------------------------------------------------- /external/FEX/ASM/Secondary/15_F3_01.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x0000434445464748", 5 | "RBX": "0x0000000045464748", 6 | "RCX": "0x0000434445464748" 7 | }, 8 | "MemoryRegions": { 9 | "0x100000000": "4096" 10 | } 11 | } 12 | %endif 13 | bits 64 14 | 15 | mov rax, 0x0000434445464748 16 | mov rbx, -1 17 | mov rcx, -1 18 | 19 | wrgsbase rax 20 | rdgsbase ebx ; 32bit 21 | rdgsbase rcx ; 64bit 22 | 23 | hlt 24 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87/D8_00.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0xc000000000000000", "0x4000"] 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rdx, 0xe0000000 14 | 15 | mov rax, 0x3ff0000000000000 ; 1.0 16 | mov [rdx + 8 * 0], rax 17 | mov rax, 0x40000000 ; 2.0 18 | mov [rdx + 8 * 1], rax 19 | 20 | fld qword [rdx + 8 * 0] 21 | fadd dword [rdx + 8 * 1] 22 | hlt 23 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87/D8_01.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x8000000000000000", "0x4000"] 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rdx, 0xe0000000 14 | 15 | mov rax, 0x3ff0000000000000 ; 1.0 16 | mov [rdx + 8 * 0], rax 17 | mov rax, 0x40000000 ; 2.0 18 | mov [rdx + 8 * 1], rax 19 | 20 | fld qword [rdx + 8 * 0] 21 | fmul dword [rdx + 8 * 1] 22 | hlt 23 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87/D8_04.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x8000000000000000", "0xBFFF"] 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rdx, 0xe0000000 14 | 15 | mov rax, 0x3ff0000000000000 ; 1.0 16 | mov [rdx + 8 * 0], rax 17 | mov rax, 0x40000000 ; 2.0 18 | mov [rdx + 8 * 1], rax 19 | 20 | fld qword [rdx + 8 * 0] 21 | fsub dword [rdx + 8 * 1] 22 | hlt 23 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87/D8_05.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x8000000000000000", "0x3FFF"] 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rdx, 0xe0000000 14 | 15 | mov rax, 0x3ff0000000000000 ; 1.0 16 | mov [rdx + 8 * 0], rax 17 | mov rax, 0x40000000 ; 2.0 18 | mov [rdx + 8 * 1], rax 19 | 20 | fld qword [rdx + 8 * 0] 21 | fsubr dword [rdx + 8 * 1] 22 | hlt 23 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87/D8_06.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x8000000000000000", "0x3FFE"] 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rdx, 0xe0000000 14 | 15 | mov rax, 0x3ff0000000000000 ; 1.0 16 | mov [rdx + 8 * 0], rax 17 | mov rax, 0x40000000 ; 2.0 18 | mov [rdx + 8 * 1], rax 19 | 20 | fld qword [rdx + 8 * 0] 21 | fdiv dword [rdx + 8 * 1] 22 | hlt 23 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87/D8_07.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM7": ["0x8000000000000000", "0x4000"] 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rdx, 0xe0000000 14 | 15 | mov rax, 0x3ff0000000000000 ; 1.0 16 | mov [rdx + 8 * 0], rax 17 | mov rax, 0x40000000 ; 2.0 18 | mov [rdx + 8 * 1], rax 19 | 20 | fld qword [rdx + 8 * 0] 21 | fdivr dword [rdx + 8 * 1] 22 | hlt 23 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87_F64/DA_E9_F64.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x3ff0000000000000", 5 | "RBX": "0x3ff0000000000000" 6 | }, 7 | "Env": { "FEX_X87REDUCEDPRECISION" : "1" } 8 | } 9 | %endif 10 | bits 64 11 | 12 | ; Only tests pop behaviour 13 | fld1 14 | fldz 15 | fldz 16 | fucompp 17 | fld1 18 | 19 | mov rdx, 0xe0000000 20 | fstp qword [rdx] 21 | mov rax, [rdx] 22 | fstp qword [rdx] 23 | mov rbx, [rdx] 24 | 25 | hlt 26 | -------------------------------------------------------------------------------- /external/zydis/cmake/zydis-config.cmake.in: -------------------------------------------------------------------------------- 1 | set(zydis_VERSION @PROJECT_VERSION@) 2 | 3 | @PACKAGE_INIT@ 4 | 5 | include(CMakeFindDependencyMacro) 6 | find_dependency(Zycore) 7 | 8 | include("${CMAKE_CURRENT_LIST_DIR}/zydis-targets.cmake") 9 | 10 | set_and_check(zydis_INCLUDE_DIR "${PACKAGE_PREFIX_DIR}/@CMAKE_INSTALL_INCLUDEDIR@") 11 | set_and_check(zydis_LIB_DIR "${PACKAGE_PREFIX_DIR}/@CMAKE_INSTALL_LIBDIR@") 12 | 13 | check_required_components(zydis) 14 | -------------------------------------------------------------------------------- /src/felix86/tools/main.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | void test(void*); 4 | 5 | int main() { 6 | long xmms[32]; 7 | test(xmms); 8 | for (int i = 0; i < 32; i++) { 9 | printf("%016lx\n", xmms[i]); 10 | } 11 | long sum1 = 0; 12 | long sum2 = 0; 13 | for (int i = 0; i < 8; i++) { 14 | sum1 += xmms[i]; 15 | sum2 += xmms[i + 8]; 16 | } 17 | printf("checksums: %lx %lx", sum1, sum2); 18 | return 0; 19 | } -------------------------------------------------------------------------------- /external/Catch2/.conan/test_package/test_package.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int Factorial( int number ) { 4 | return number <= 1 ? 1 : Factorial( number - 1 ) * number; 5 | } 6 | 7 | TEST_CASE( "Factorial Tests", "[single-file]" ) { 8 | REQUIRE( Factorial(0) == 1 ); 9 | REQUIRE( Factorial(1) == 1 ); 10 | REQUIRE( Factorial(2) == 2 ); 11 | REQUIRE( Factorial(3) == 6 ); 12 | REQUIRE( Factorial(10) == 3628800 ); 13 | } -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/Primary/Primary_C9.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x1", 5 | "RBP": "0x41424344" 6 | }, 7 | "Mode": "32BIT" 8 | } 9 | %endif 10 | org 10000h 11 | bits 32 12 | 13 | mov esp, 0xe0000020 14 | mov ebp, 0x41424344 15 | 16 | ; Act like an ENTER frame without using ENTER 17 | push ebp 18 | mov ebp, esp 19 | call .target 20 | jmp .end 21 | 22 | .target: 23 | mov eax, 1 24 | leave 25 | 26 | .end: 27 | hlt 28 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/DA_C0.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM5": ["0x8000000000000000", "0x3FFF"], 5 | "MM6": ["0x0000000000000000", "0x0000"], 6 | "MM7": ["0x8000000000000000", "0x3FFF"] 7 | }, 8 | "Mode": "32BIT" 9 | } 10 | %endif 11 | org 10000h 12 | bits 32 13 | 14 | fld1 15 | fldz 16 | 17 | mov eax, 2 18 | cmp eax, 1 19 | 20 | fcmovb st0, st1 21 | 22 | fldz 23 | cmp eax, 3 24 | fcmovb st0, st2 25 | 26 | hlt 27 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/DA_C8.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM5": ["0x0000000000000000", "0x0000"], 5 | "MM6": ["0x8000000000000000", "0x3FFF"], 6 | "MM7": ["0x8000000000000000", "0x3FFF"] 7 | }, 8 | "Mode": "32BIT" 9 | } 10 | %endif 11 | org 10000h 12 | bits 32 13 | 14 | fld1 15 | fldz 16 | 17 | mov eax, 1 18 | cmp eax, 1 19 | 20 | fcmove st0, st1 21 | 22 | fldz 23 | cmp eax, 0 24 | fcmove st0, st2 25 | 26 | hlt 27 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/DA_D0.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM5": ["0x0000000000000000", "0x0000"], 5 | "MM6": ["0x8000000000000000", "0x3FFF"], 6 | "MM7": ["0x8000000000000000", "0x3FFF"] 7 | }, 8 | "Mode": "32BIT" 9 | } 10 | %endif 11 | org 10000h 12 | bits 32 13 | 14 | fld1 15 | fldz 16 | 17 | mov eax, 2 18 | cmp eax, 2 19 | 20 | fcmovbe st0, st1 21 | 22 | fldz 23 | cmp eax, 0 24 | fcmovbe st0, st2 25 | 26 | hlt 27 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/DA_D8.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM5": ["0x8000000000000000", "0x3FFF"], 5 | "MM6": ["0x0000000000000000", "0x0000"], 6 | "MM7": ["0x8000000000000000", "0x3FFF"] 7 | }, 8 | "Mode": "32BIT" 9 | } 10 | %endif 11 | org 10000h 12 | bits 32 13 | 14 | fld1 15 | fldz 16 | 17 | mov eax, 0x0 18 | cmp eax, -1 19 | 20 | fcmovu st0, st1 21 | 22 | fldz 23 | cmp eax, 1 24 | fcmovu st0, st2 25 | 26 | hlt 27 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/DB_C0.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM5": ["0x0000000000000000", "0x0000"], 5 | "MM6": ["0x8000000000000000", "0x3FFF"], 6 | "MM7": ["0x8000000000000000", "0x3FFF"] 7 | }, 8 | "Mode": "32BIT" 9 | } 10 | %endif 11 | org 10000h 12 | bits 32 13 | 14 | fld1 15 | fldz 16 | 17 | mov eax, 2 18 | cmp eax, 1 19 | 20 | fcmovnb st0, st1 21 | 22 | fldz 23 | cmp eax, 3 24 | fcmovnb st0, st2 25 | 26 | hlt 27 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/DB_C8.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM5": ["0x8000000000000000", "0x3FFF"], 5 | "MM6": ["0x0000000000000000", "0x0000"], 6 | "MM7": ["0x8000000000000000", "0x3FFF"] 7 | }, 8 | "Mode": "32BIT" 9 | } 10 | %endif 11 | org 10000h 12 | bits 32 13 | 14 | fld1 15 | fldz 16 | 17 | mov eax, 1 18 | cmp eax, 1 19 | 20 | fcmovne st0, st1 21 | 22 | fldz 23 | cmp eax, 0 24 | fcmovne st0, st2 25 | 26 | hlt 27 | -------------------------------------------------------------------------------- /external/FEX/ASM/H0F38/66_2A.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "XMM0": ["0x4142434445464748", "0x5152535455565758"] 5 | } 6 | } 7 | %endif 8 | bits 64 9 | 10 | mov rdx, 0xe0000000 11 | 12 | mov rax, 0x4142434445464748 13 | mov [rdx + 8 * 0], rax 14 | mov rax, 0x5152535455565758 15 | mov [rdx + 8 * 1], rax 16 | 17 | mov rax, 0x0 18 | mov [rdx + 8 * 2], rax 19 | mov [rdx + 8 * 3], rax 20 | 21 | movntdqa xmm0, [rdx + 8 * 0] 22 | 23 | hlt 24 | -------------------------------------------------------------------------------- /external/FEX/ASM/Primary/Primary_FC.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RDI": "0xE0000001" 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rdx, 0xe0000000 14 | 15 | mov rax, 0x4142434445464748 16 | mov [rdx + 8 * 0], rax 17 | mov rax, 0x5152535455565758 18 | mov [rdx + 8 * 1], rax 19 | 20 | lea rdi, [rdx + 8 * 0] 21 | 22 | mov al, 0x0 23 | cld 24 | scasb 25 | 26 | hlt 27 | -------------------------------------------------------------------------------- /external/FEX/ASM/Primary/Primary_FD.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RDI": "0xE0000007" 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rdx, 0xe0000000 14 | 15 | mov rax, 0x4142434445464748 16 | mov [rdx + 8 * 0], rax 17 | mov rax, 0x5152535455565758 18 | mov [rdx + 8 * 1], rax 19 | 20 | lea rdi, [rdx + 8 * 1] 21 | 22 | mov al, 0x0 23 | std 24 | scasb 25 | 26 | hlt 27 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87_F64/D8_D9_F64.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x3ff0000000000000", 5 | "RBX": "0x3ff0000000000000" 6 | }, 7 | "Env": { "FEX_X87REDUCEDPRECISION" : "1" } 8 | } 9 | %endif 10 | bits 64 11 | 12 | 13 | mov rdx, 0xe0000000 14 | 15 | ; Only tests pop behaviour 16 | fld1 17 | fldz 18 | fcomp 19 | fld1 20 | 21 | fstp qword [rdx] 22 | mov rax, [rdx] 23 | fstp qword [rdx] 24 | mov rbx, [rdx] 25 | 26 | hlt 27 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/D9_03.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x3F800000", 5 | "MM7": ["0x8000000000000000", "0x4000"] 6 | }, 7 | "Mode": "32BIT" 8 | } 9 | %endif 10 | org 10000h 11 | bits 32 12 | 13 | lea edx, [.data] 14 | 15 | fld dword [edx + 8 * 0] 16 | fstp dword [edx + 8 * 2] 17 | fld dword [edx + 8 * 1] 18 | 19 | mov eax, [edx + 8 * 2] 20 | 21 | hlt 22 | 23 | .data: 24 | dq 0x3f800000 25 | dq 0x40000000 26 | dq 0 27 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/DB_D0.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM5": ["0x8000000000000000", "0x3FFF"], 5 | "MM6": ["0x0000000000000000", "0x0000"], 6 | "MM7": ["0x8000000000000000", "0x3FFF"] 7 | }, 8 | "Mode": "32BIT" 9 | } 10 | %endif 11 | org 10000h 12 | bits 32 13 | 14 | fld1 15 | fldz 16 | 17 | mov eax, 2 18 | cmp eax, 2 19 | 20 | fcmovnbe st0, st1 21 | 22 | fldz 23 | cmp eax, 0 24 | fcmovnbe st0, st2 25 | 26 | hlt 27 | -------------------------------------------------------------------------------- /external/FEX/32Bit_ASM/X87/DB_D8.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "MM5": ["0x0000000000000000", "0x0000"], 5 | "MM6": ["0x8000000000000000", "0x3FFF"], 6 | "MM7": ["0x8000000000000000", "0x3FFF"] 7 | }, 8 | "Mode": "32BIT" 9 | } 10 | %endif 11 | org 10000h 12 | bits 32 13 | 14 | fld1 15 | fldz 16 | 17 | mov eax, 0x0 18 | cmp eax, -1 19 | 20 | fcmovnu st0, st1 21 | 22 | fldz 23 | cmp eax, 1 24 | fcmovnu st0, st2 25 | 26 | hlt 27 | -------------------------------------------------------------------------------- /external/FEX/ASM/PrimaryGroup/1_80_05.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x414243444546E648" 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rdx, 0xe0000000 14 | 15 | mov rax, 0x4142434445464748 16 | mov [rdx + 8 * 0], rax 17 | mov rax, 0x5152535455565758 18 | mov [rdx + 8 * 1], rax 19 | 20 | sub byte [rdx + 8 * 0 + 1], 0x61 21 | mov rax, [rdx + 8 * 0] 22 | 23 | hlt 24 | -------------------------------------------------------------------------------- /external/FEX/ASM/PrimaryGroup/1_80_06.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x4142434445462648" 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rdx, 0xe0000000 14 | 15 | mov rax, 0x4142434445464748 16 | mov [rdx + 8 * 0], rax 17 | mov rax, 0x5152535455565758 18 | mov [rdx + 8 * 1], rax 19 | 20 | xor byte [rdx + 8 * 0 + 1], 0x61 21 | mov rax, [rdx + 8 * 0] 22 | 23 | hlt 24 | -------------------------------------------------------------------------------- /external/FEX/ASM/PrimaryGroup/2_D0_00.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x4142434445468E48" 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rdx, 0xe0000000 14 | 15 | mov rax, 0x4142434445464748 16 | mov [rdx + 8 * 0], rax 17 | mov rax, 0x5152535455565758 18 | mov [rdx + 8 * 1], rax 19 | 20 | rol byte [rdx + 8 * 0 + 1], 1 21 | 22 | mov rax, [rdx + 8 * 0] 23 | 24 | hlt 25 | -------------------------------------------------------------------------------- /external/FEX/ASM/PrimaryGroup/2_D0_01.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x414243444546A348" 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rdx, 0xe0000000 14 | 15 | mov rax, 0x4142434445464748 16 | mov [rdx + 8 * 0], rax 17 | mov rax, 0x5152535455565758 18 | mov [rdx + 8 * 1], rax 19 | 20 | ror byte [rdx + 8 * 0 + 1], 1 21 | 22 | mov rax, [rdx + 8 * 0] 23 | 24 | hlt 25 | -------------------------------------------------------------------------------- /external/FEX/ASM/PrimaryGroup/2_D0_04.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x4142434445468E48" 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rdx, 0xe0000000 14 | 15 | mov rax, 0x4142434445464748 16 | mov [rdx + 8 * 0], rax 17 | mov rax, 0x5152535455565758 18 | mov [rdx + 8 * 1], rax 19 | 20 | shl byte [rdx + 8 * 0 + 1], 1 21 | 22 | mov rax, [rdx + 8 * 0] 23 | 24 | hlt 25 | -------------------------------------------------------------------------------- /external/FEX/ASM/PrimaryGroup/2_D0_05.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x4142434445462348" 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rdx, 0xe0000000 14 | 15 | mov rax, 0x4142434445464748 16 | mov [rdx + 8 * 0], rax 17 | mov rax, 0x5152535455565758 18 | mov [rdx + 8 * 1], rax 19 | 20 | shr byte [rdx + 8 * 0 + 1], 1 21 | 22 | mov rax, [rdx + 8 * 0] 23 | 24 | hlt 25 | -------------------------------------------------------------------------------- /external/FEX/ASM/PrimaryGroup/2_D0_07.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x4142434445462348" 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rdx, 0xe0000000 14 | 15 | mov rax, 0x4142434445464748 16 | mov [rdx + 8 * 0], rax 17 | mov rax, 0x5152535455565758 18 | mov [rdx + 8 * 1], rax 19 | 20 | sar byte [rdx + 8 * 0 + 1], 1 21 | 22 | mov rax, [rdx + 8 * 0] 23 | 24 | hlt 25 | -------------------------------------------------------------------------------- /external/FEX/ASM/PrimaryGroup/3_F6_02.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x414243444546B848" 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rdx, 0xe0000000 14 | 15 | mov rax, 0x4142434445464748 16 | mov [rdx + 8 * 0], rax 17 | mov rax, 0x5152535455565758 18 | mov [rdx + 8 * 1], rax 19 | 20 | not byte [rdx + 8 * 0 + 1] 21 | 22 | mov rax, [rdx + 8 * 0] 23 | 24 | hlt 25 | -------------------------------------------------------------------------------- /external/FEX/ASM/PrimaryGroup/3_F6_03.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x414243444546B948" 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rdx, 0xe0000000 14 | 15 | mov rax, 0x4142434445464748 16 | mov [rdx + 8 * 0], rax 17 | mov rax, 0x5152535455565758 18 | mov [rdx + 8 * 1], rax 19 | 20 | neg byte [rdx + 8 * 0 + 1] 21 | 22 | mov rax, [rdx + 8 * 0] 23 | 24 | hlt 25 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87_F64/DA_D9_F64.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x3ff0000000000000", 5 | "RBX": "0x3ff0000000000000" 6 | }, 7 | "Env": { "FEX_X87REDUCEDPRECISION" : "1" } 8 | } 9 | %endif 10 | bits 64 11 | 12 | mov rdx, 0xe0000000 13 | 14 | ; Only tests pop behaviour 15 | fld1 16 | fldz 17 | fldz 18 | fcompp 19 | fld1 20 | 21 | fstp qword [rdx] 22 | mov rax, [rdx] 23 | fstp qword [rdx] 24 | mov rbx, [rdx] 25 | 26 | hlt 27 | -------------------------------------------------------------------------------- /external/FEX/ASM/jump.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "Match": "All", 4 | "RegData": { 5 | "RAX": "0x1" 6 | } 7 | } 8 | %endif 9 | bits 64 10 | 11 | mov esi, 50 12 | 13 | .jump_start: 14 | mov edi, 1 15 | test edi, edi 16 | nop 17 | nop 18 | nop 19 | nop 20 | nop 21 | nop 22 | nop 23 | nop 24 | 25 | jz .local 26 | mov eax, 1 27 | jmp .end 28 | 29 | .local: 30 | mov eax, 0 31 | 32 | .end: 33 | sub esi, 1 34 | test esi, esi 35 | jz .jump_start 36 | hlt 37 | -------------------------------------------------------------------------------- /external/Catch2/src/catch2/interfaces/catch_interfaces_config.cpp: -------------------------------------------------------------------------------- 1 | 2 | // Copyright Catch2 Authors 3 | // Distributed under the Boost Software License, Version 1.0. 4 | // (See accompanying file LICENSE.txt or copy at 5 | // https://www.boost.org/LICENSE_1_0.txt) 6 | 7 | // SPDX-License-Identifier: BSL-1.0 8 | 9 | #include 10 | 11 | namespace Catch { 12 | IConfig::~IConfig() = default; 13 | } 14 | -------------------------------------------------------------------------------- /external/FEX/ASM/PrimaryGroup/1_80_00.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x414243444546A848" 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rdx, 0xe0000000 14 | 15 | mov rax, 0x4142434445464748 16 | mov [rdx + 8 * 0], rax 17 | mov rax, 0x5152535455565758 18 | mov [rdx + 8 * 1], rax 19 | 20 | add byte [rdx + 8 * 0 + 1], 0x61 21 | 22 | mov rax, [rdx + 8 * 0] 23 | 24 | hlt 25 | -------------------------------------------------------------------------------- /external/FEX/ASM/PrimaryGroup/1_80_01.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x4142434445466748" 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rdx, 0xe0000000 14 | 15 | mov rax, 0x4142434445464748 16 | mov [rdx + 8 * 0], rax 17 | mov rax, 0x5152535455565758 18 | mov [rdx + 8 * 1], rax 19 | 20 | or byte [rdx + 8 * 0 + 1], 0x61 21 | 22 | mov rax, [rdx + 8 * 0] 23 | 24 | hlt 25 | -------------------------------------------------------------------------------- /external/FEX/ASM/PrimaryGroup/1_80_04.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x4142434445464148" 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rdx, 0xe0000000 14 | 15 | mov rax, 0x4142434445464748 16 | mov [rdx + 8 * 0], rax 17 | mov rax, 0x5152535455565758 18 | mov [rdx + 8 * 1], rax 19 | 20 | and byte [rdx + 8 * 0 + 1], 0x61 21 | 22 | mov rax, [rdx + 8 * 0] 23 | 24 | hlt 25 | -------------------------------------------------------------------------------- /external/FEX/ASM/PrimaryGroup/2_C0_00.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x4142434445468E48" 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rdx, 0xe0000000 14 | 15 | mov rax, 0x4142434445464748 16 | mov [rdx + 8 * 0], rax 17 | mov rax, 0x5152535455565758 18 | mov [rdx + 8 * 1], rax 19 | 20 | rol byte [rdx + 8 * 0 + 1], 0x61 21 | 22 | mov rax, [rdx + 8 * 0] 23 | 24 | hlt 25 | -------------------------------------------------------------------------------- /external/FEX/ASM/PrimaryGroup/2_C0_01.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x414243444546A348" 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rdx, 0xe0000000 14 | 15 | mov rax, 0x4142434445464748 16 | mov [rdx + 8 * 0], rax 17 | mov rax, 0x5152535455565758 18 | mov [rdx + 8 * 1], rax 19 | 20 | ror byte [rdx + 8 * 0 + 1], 0x61 21 | 22 | mov rax, [rdx + 8 * 0] 23 | 24 | hlt 25 | -------------------------------------------------------------------------------- /external/FEX/ASM/PrimaryGroup/2_C0_04.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x4142434445468E48" 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rdx, 0xe0000000 14 | 15 | mov rax, 0x4142434445464748 16 | mov [rdx + 8 * 0], rax 17 | mov rax, 0x5152535455565758 18 | mov [rdx + 8 * 1], rax 19 | 20 | shl byte [rdx + 8 * 0 + 1], 0x61 21 | 22 | mov rax, [rdx + 8 * 0] 23 | 24 | hlt 25 | -------------------------------------------------------------------------------- /external/FEX/ASM/PrimaryGroup/2_C0_05.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x4142434445462348" 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rdx, 0xe0000000 14 | 15 | mov rax, 0x4142434445464748 16 | mov [rdx + 8 * 0], rax 17 | mov rax, 0x5152535455565758 18 | mov [rdx + 8 * 1], rax 19 | 20 | shr byte [rdx + 8 * 0 + 1], 0x61 21 | 22 | mov rax, [rdx + 8 * 0] 23 | 24 | hlt 25 | -------------------------------------------------------------------------------- /external/FEX/ASM/PrimaryGroup/3_F6_02_2.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x414243444546B848" 5 | }, 6 | "MemoryRegions": { 7 | "0x100000000": "4096" 8 | } 9 | } 10 | %endif 11 | bits 64 12 | 13 | mov rdx, 0xe0000000 14 | 15 | mov rax, 0x4142434445464748 16 | mov [rdx + 8 * 0], rax 17 | mov rax, 0x5152535455565758 18 | mov [rdx + 8 * 1], rax 19 | 20 | lock not byte [rdx + 8 * 0 + 1] 21 | 22 | mov rax, [rdx + 8 * 0] 23 | 24 | hlt 25 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87_F64/DF_02_F64.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0x400" 5 | }, 6 | "X87ReducedPrecision" : "1" 7 | } 8 | %endif 9 | bits 64 10 | 11 | mov rdx, 0xe0000000 12 | 13 | mov eax, 0x44800000 ; 1024.0 14 | mov [rdx + 8 * 0], eax 15 | mov eax, -1 16 | mov [rdx + 8 * 1], eax 17 | 18 | fld dword [rdx + 8 * 0] 19 | 20 | fist word [rdx + 8 * 1] 21 | 22 | fld1 23 | 24 | mov eax, 0 25 | mov ax, word [rdx + 8 * 1] 26 | 27 | hlt 28 | -------------------------------------------------------------------------------- /external/FEX/ASM/X87_F64/DF_E0_F64.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0xFFFFFFFFFFFF3800", 5 | "RBX": "0xFFFFFFFFFFFF0000" 6 | }, 7 | "Env": { "FEX_X87REDUCEDPRECISION" : "1" } 8 | } 9 | %endif 10 | bits 64 11 | 12 | mov rdx, 0xe0000000 13 | 14 | mov eax, 0x3f800000 ; 1.0 15 | mov [rdx + 8 * 0], eax 16 | 17 | mov rax, -1 18 | mov rbx, -1 19 | fnstsw ax 20 | mov bx, ax 21 | 22 | fld dword [rdx + 8 * 0] 23 | fnstsw ax 24 | 25 | hlt 26 | -------------------------------------------------------------------------------- /external/fmt/.clang-format: -------------------------------------------------------------------------------- 1 | # Run manually to reformat a file: 2 | # clang-format -i --style=file 3 | Language: Cpp 4 | BasedOnStyle: Google 5 | IndentPPDirectives: AfterHash 6 | IndentCaseLabels: false 7 | AlwaysBreakTemplateDeclarations: false 8 | DerivePointerAlignment: false 9 | AllowShortCaseLabelsOnASingleLine: true 10 | AlignConsecutiveShortCaseStatements: 11 | Enabled: true 12 | AcrossEmptyLines: true 13 | AcrossComments: true 14 | AlignCaseColons: false -------------------------------------------------------------------------------- /tests/ASM/felix86_bugs/pmovmskb.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "XMM0": ["0xFFFFFFFFFFFFFFFF", "0"], 5 | "RAX": "0x00FF" 6 | }, 7 | "MemoryRegions": { 8 | "0x100000000": "4096" 9 | } 10 | } 11 | %endif 12 | bits 64 13 | 14 | mov rdx, 0xe0000000 15 | 16 | mov rax, 0xFFFFFFFFFFFFFFFF 17 | mov [rdx + 8 * 0], rax 18 | mov rax, 0 19 | mov [rdx + 8 * 1], rax 20 | 21 | movapd xmm0, [rdx + 8 * 0] 22 | 23 | pmovmskb eax, xmm0 24 | 25 | hlt 26 | -------------------------------------------------------------------------------- /external/FEX/ASM/3DNow/0E.asm: -------------------------------------------------------------------------------- 1 | %ifdef CONFIG 2 | { 3 | "RegData": { 4 | "RAX": "0xFFFF" 5 | }, 6 | "HostFeatures": ["3DNOW"] 7 | } 8 | %endif 9 | bits 64 10 | 11 | ; Load all x87 registers 12 | finit 13 | fldz 14 | fldz 15 | fldz 16 | fldz 17 | fldz 18 | fldz 19 | fldz 20 | 21 | ; femms sets all the tag bits to 0b11 22 | femms 23 | 24 | mov rdx, 0xe0000000 25 | o32 fstenv [rdx] 26 | 27 | mov eax, dword [rdx + 8] ; Offset 8 in the structure has FTW 28 | 29 | hlt 30 | --------------------------------------------------------------------------------