Commit Graph
249 Commits
Author SHA1 Message Date
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
Stefanos Kornilios Mitsis Poiitidis d58961ef1e Propagate guest exit code 2020-05-02 02:34:50 +03: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
Scott Mansell 22a557b2db Remove stray debug code 2020-05-01 19:12:00 +12: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 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 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 e49a66f740 Implements support for the three loop instructions
loop, loope, loopne
2020-04-29 17:20:09 -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
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 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 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
Ryan Houdek 169875c34d Merge pull request #155 from Sonicadvance1/non_temporal
Implements two non-temporal XMM move instructions
2020-04-29 12:27:22 -07:00
Ryan Houdek 536eb7ec3e Merge pull request #154 from Sonicadvance1/more_satalu
Implements six more saturating arithmetic instructions
2020-04-29 12:27:10 -07:00
Ryan Houdek 1ee9070e8f Merge pull request #150 from Sonicadvance1/fix_x86_code_overflow
Fixes crash that occurs when the x86-64 JIT code cache gets full
2020-04-29 12:26:11 -07:00
Ryan Houdek a0537ed630 Merge pull request #149 from Sonicadvance1/fix_syscall_memleak
Fixes memory leak on shutdown for syscall handlers
2020-04-29 12:25:55 -07:00
Ryan Houdek 2f56c475e2 Fixes memory leak on shutdown for syscall handlers
Switches it over to a unique_ptr to ensure it doesn't happen again.
2020-04-26 18:15:52 -07:00
Ryan Houdek 3528b30684 Fixes loading EXEC applications in to memory.
If we are loading EXEC then we actually need to start loading in to the
lower 32bits of memory.
This lets the frontend code loader handle the memory base instead of
hiding it behind some core magic instead.

This lets us get EXEC programs working.
So now we support EXEC, DYN, and static applications
2020-04-26 18:11:48 -07:00
Ryan Houdek f3f63251ea Merge pull request #124 from Sonicadvance1/fix_cache_clear_crash
Fixes crashes when code cache is cleared
2020-04-26 18:02:54 -07:00
Ryan Houdek ec87131939 Implements fwait as a nop
Since we don't yet support instruction exceptions this is nothing but a
nop.
2020-04-25 23:53:30 -07:00
Ryan Houdek c726e3ef51 Implements JRCXZ in the OpcodeDispatcher
This only operates on 64bit and 32bit RCX register. the 16bit encoding
isn't possible in 64bit mode.
2020-04-25 22:06:46 -07:00
Ryan Houdek ad467c5b30 Adds new vector float negate and float add horizontal IR ops 2020-04-25 17:55:37 -07:00
Ryan Houdek 4ae33147f5 Implements support for rcpps/rcpss 2020-04-24 23:35:33 -07:00
Ryan Houdek a0c0384340 Ensures reciprocal hits the precision we expect in the x86-64 JIT
Otherwise unit tests can fail
2020-04-24 23:34:47 -07:00
Ryan Houdek 73632556ce Implements support for movsldup 2020-04-24 23:13:51 -07:00
Ryan Houdek 8ffccc0027 Implements two non-temporal XMM move instructions
movntss/movntsd
2020-04-24 23:04:41 -07:00
Ryan Houdek fef466ee6b Implements six more saturating arithmetic instructions
paddusb, paddusw, psubusb, psubusw, psubsb, psubsw
2020-04-24 22:51:17 -07:00
Ryan Houdek 4bdbe65043 Fixes crash that occurs when the x86-64 JIT code cache gets full
Need to clear the other caches in the cases the x86 cache needs to be
wiped.
Not optimal but will improve once we get multiple tiers of code cache
2020-04-24 19:05:55 -07:00
Ryan Houdek b9002bb790 Merge pull request #135 from dmiller423/master
Added include of <llvm/IR/IntrinsicsX86.h> to LLVMCore.cpp
2020-04-24 13:24:09 -07:00
Ryan Houdek f2f2d9fd0d Merge pull request #134 from Sonicadvance1/fix_stack_bug
Fixes accessing a stack variable post destruction bug
2020-04-24 09:10:36 -07:00
Ryan Houdek b2beb6ffb1 Merge pull request #132 from Sonicadvance1/RA_print
Adds RA printing to the IR dumping function
2020-04-24 09:10:22 -07:00
Ryan Houdek 1ac36e2ddd Merge pull request #131 from Sonicadvance1/fix_dumb_wait_for_idle
Removes the dumb timer wait for idle
2020-04-24 09:10:10 -07:00
Ryan Houdek e0ca2e3126 Merge pull request #128 from Sonicadvance1/removes_ssse3
Removes SSSE3 CPUID feature bit
2020-04-24 09:09:51 -07:00
Ryan Houdek 7869a5a40e Merge pull request #127 from Sonicadvance1/fix_x86_regs
Fixes x86 JIT's RA for 16bit and 8bit registers
2020-04-24 09:09:40 -07:00
Ryan Houdek 8cc8472a75 Merge pull request #126 from Sonicadvance1/fix_llvm_logs
Disables LLVM debug messages
2020-04-24 09:09:20 -07:00
Ryan Houdek 2e5db1ddc9 Merge pull request #125 from Sonicadvance1/x87_table
Ensure FLDENV/FNSTENV has correct flags in the x87 table
2020-04-24 09:09:06 -07:00
David Miller 1daec14a48 added guard on IntrinsicsX86.h inclusion 2020-04-23 20:10:35 -04:00
David Miller 5999e7477f Added guard around llvm/IR/IntrinsicsX86.h inclusion, seems to only be needed for version 10?\nMore Investigation needed here.\nChanged Debugger/IMGui.{h,cpp} to IMGui_I so it will build in filesystems that aren't case sensitive.\nAdded CMakeSettings.json that has profiles to build from VisualStudio, using env variables to control system specific options. \n Currently only the WSL is tested (and working). \nRemote should work as well, if correct string for preconfigured remote is in env variable fexremote.\nCross compile (to linux) untested, using sysroot in env variable fexsysroot 2020-04-23 16:12:28 -04:00
David Miller a8d3cd67ad Added include of <llvm/IR/IntrinsicsX86.h> to LLVMCore.cpp 2020-04-23 11:12:45 -04:00
Ryan Houdek b5c170be41 Merge pull request #123 from Sonicadvance1/fix_32bit_x86_cvtsi2ss
Fixes 32bit Float_FromGPR_S IR op in x86 JIT
2020-04-22 08:37:56 -07:00