Commit Graph
9533 Commits
Author SHA1 Message Date
Ryan Houdek bb7e58b3f1 Adds more IR documentation 2020-05-08 18:40:21 -07:00
Ryan Houdek 449269f261 Merge pull request #181 from Sonicadvance1/IR_documentation
Adds IR documentation generator and unit test runner
2020-05-07 21:29:34 -07:00
Ryan Houdek 9fd3cd8884 Implements IR loader frontend application
This application loads an IR from an IR file.
It then proceeds to lex the file and translate it to binary IR.
Once the file is loaded it then the IR is passed off to the backend and
it attempts to run the IR.

This will be used when debugging RA and writing unit tests directly in
IR.
This is a necessary evil for ensuring correctness
2020-05-07 17:47:37 -07:00
Ryan Houdek 4269cef98f Adds the ability for the IR printer to dump TypeDefinition
No IR uses this currently directly but it could definitely happen.
2020-05-07 17:40:29 -07:00
Ryan Houdek 54ee9cbe86 Adds predefined TypeDefinition types for common sizes 2020-05-07 17:40:29 -07:00
Ryan Houdek 6e4b29d760 Implements a TypeDefition type for IR handling
Will be useful when parsing later
2020-05-07 17:40:29 -07:00
Ryan Houdek c25f2845d3 Adds the ability for the frontend codeloader to load IR
This will be used by the IR unit test loader.
Will give the backend IR so it doesn't even parse any x86 code
2020-05-07 17:40:29 -07:00
Ryan Houdek bf2d02c244 Adds python script for generating a markdown file for IR documentation
Pretty light markdown that ends up generating when the build runs
2020-05-07 17:27:54 -07:00
Ryan Houdek f4964927e0 Updates IR generator to support printing out IR lexing code 2020-05-07 17:27:01 -07:00
Ryan Houdek 00028d41db Updates IR dumping to be easier to parse
This will allow us to lex the text
2020-05-07 17:25:44 -07:00
Ryan Houdek 0e4bd4e7b7 Significantly improves IR documentation in the JSON file
Doesn't cover 100% of the IR ops but it hits about half
2020-05-07 17:24:44 -07:00
Ryan Houdek 4723b0a84e Merge pull request #180 from woachk/x86_build_fix_1
x86_64 build fix, by reordering KVM initialisation values
2020-05-04 11:45:44 -07:00
woachk 595df184f7 x86_64 build fix, by reordering KVM initialisation values 2020-05-04 16:58:45 +02:00
Ryan Houdek 66dc5ebc54 Merge pull request #179 from FEX-Emu/skmp/fix-exit-code
Propagate guest exit code
2020-05-01 16:58:07 -07:00
Ryan Houdek 1eae0dd126 Merge pull request #177 from FEX-Emu/skmp/silent-log
Add silent log
2020-05-01 16:35:11 -07:00
Stefanos Kornilios Mitsis Poiitidis d58961ef1e Propagate guest exit code 2020-05-02 02:34:50 +03:00
Ryan Houdek f83874c6b1 Ensure local pushes to a branch don't run through CI
If someone is pushing to a local branch on the repo, then don't run CI.
Only run once someone pushes a PR if local.
This makes it so we don't run CI for a branch twice over.
2020-05-01 16:07:09 -07:00
Stefanos Kornilios Mitsis Poiitidis 3c9be4625c Add silent log 2020-05-02 01:45:22 +03:00
Ryan Houdek 0d89de2799 Merge pull request #175 from Sonicadvance1/xmm_to_mmx
Implements three XMM <-> MMX conversion instructions
2020-05-01 00:52:46 -07:00
Ryan Houdek 6e53d0d98b Merge pull request #176 from FEX-Emu/phire-patch-1
Remove stray debug code
2020-05-01 00:52:32 -07:00
Scott Mansell 22a557b2db Remove stray debug code 2020-05-01 19:12:00 +12:00
Ryan Houdek ee931def98 Implements three unit tests for the new conversion ops 2020-04-29 19:03:48 -07:00
Ryan Houdek deb5bd8fe8 Implements three XMM <-> MMX conversion instructions
CVTPI2PS does MMX->XMM integer to float conversion with lower 64bit
insert

CVTPS2PI/CVTTPS2PI does an XMM->XMM float to integer conversion
2020-04-29 19:03:48 -07:00
Ryan Houdek 094f6c623b Merge pull request #163 from Sonicadvance1/fs_gs_and_xlat
Fixes GS, implements segment reading and writing instructions, and implements XLAT
2020-04-29 18:32:20 -07:00
Ryan Houdek f8eabf8648 Implements a unit test for XLAT 2020-04-29 18:26:03 -07:00
Ryan Houdek 9848f7eac8 Implements the XLAT instruction
This is a fairly straightforward instruction, it's just <segment>:[rBX + AL]
Needs the previous changes since we weren't handling GS correctly
2020-04-29 18:26:03 -07:00
Ryan Houdek 92d99b0261 Implements unit tests for the segment reading and writing instructions 2020-04-29 18:25:46 -07:00
Ryan Houdek 6a98e93666 Implements the segment reading and writing instructions 2020-04-29 18:25:46 -07:00
Ryan Houdek a0f412d85a Update the new register segment reading and writing table flags
These are instructions that can executed at any CPL level
2020-04-29 18:25:46 -07:00
Ryan Houdek 53798f194e Fix the Frontend's handling of the GS prefix
We were accidently treating it as FS each time it was encountered
2020-04-29 18:25:46 -07:00
Ryan Houdek a6c543eb52 Merge pull request #162 from Sonicadvance1/loop_inst
Implements support for the three loop instructions
2020-04-29 18:22:57 -07:00
Ryan Houdek 1223df2e84 Implements unit tests for the three new loop instructions 2020-04-29 17:20:09 -07:00
Ryan Houdek e49a66f740 Implements support for the three loop instructions
loop, loope, loopne
2020-04-29 17:20:09 -07:00
Ryan Houdek 0d83454366 Merge pull request #170 from dmiller423/procfs_auxv
Added dup3 syscall, EmulatedFiles : /proc/{self,$PID}/auxv, modified …
2020-04-29 16:06:30 -07:00
Ryan Houdek 8f2f046fc8 Merge pull request #157 from Sonicadvance1/rcp
Implements support for rcpps/rcpss
2020-04-29 16:03:38 -07:00
David Miller 09f119a3ce removed front end header / class from EmulatedFiles.cpp 2020-04-29 16:39:40 -04:00
David Miller f916294772 Include unistd.h in EmulatedFiles.cpp as CI doesn't build 2020-04-29 16:04:39 -04:00
David Miller 306cca33d7 Added dup3 syscall, EmulatedFiles : /proc/{self,$PID}/auxv, modified OpenAt() to normalize path to canonical if possible or lexically_normal. Note: canonical will change symlinks, ensure the map keys take this into account. 2020-04-29 16:00:59 -04:00
Ryan Houdek 056d017ac8 Merge pull request #160 from Sonicadvance1/horizontal_arith
Implements four new vector horizontal ALU ops
2020-04-29 12:56:26 -07:00
Ryan Houdek 8e13e404b1 Adds unit test for the four new horizontal vector ops 2020-04-29 12:47:27 -07:00
Ryan Houdek f99482ed84 Implements four new vector horizontal ALU ops
haddps, hsubps, haddpd, hsubpd
2020-04-29 12:47:27 -07:00
Ryan Houdek f0229fba38 Implements the two new ops in the LLVM JIT 2020-04-29 12:47:27 -07:00
Ryan Houdek f6814de357 Implements the two new ops in the x86-64 JIT 2020-04-29 12:47:27 -07:00
Ryan Houdek 1645e65ff3 Implements the two new ops in the AArch64 JIT 2020-04-29 12:47:27 -07:00
Ryan Houdek 1c572e71c7 Implements the two new ops in the interpreter 2020-04-29 12:47:27 -07:00
Ryan Houdek fee4aeaf88 Merge pull request #167 from Sonicadvance1/fix_exec
Fixes loading EXEC applications in to memory.
2020-04-29 12:31:33 -07:00
Ryan Houdek 772e47bf22 Merge pull request #165 from Sonicadvance1/pushf_unittest
Pushf and Popf unit tests
2020-04-29 12:31:11 -07:00
Ryan Houdek 2005a2ea3d Merge pull request #164 from Sonicadvance1/fwait
Implements fwait as a nop
2020-04-29 12:30:45 -07:00
Ryan Houdek f1403e5f54 Merge pull request #161 from Sonicadvance1/jrcxz
Implements JRCXZ in the OpcodeDispatcher
2020-04-29 12:30:25 -07:00
Ryan Houdek 3d782f0930 Merge pull request #156 from Sonicadvance1/movsldup
Implements support for movsldup
2020-04-29 12:27:37 -07:00