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
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
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
523562cc6d
Merge pull request #153 from Sonicadvance1/more_syscalls3
...
Implements 9 new syscalls
2020-04-29 12:26:59 -07:00
Ryan Houdek
fb88100a7e
Merge pull request #152 from Sonicadvance1/implement_open_syscall
...
Implements the open syscall
2020-04-29 12:26:46 -07:00
Ryan Houdek
a7e2198586
Merge pull request #151 from Sonicadvance1/fix_epoll_create
...
Fixes epoll_create syscall
2020-04-29 12:26:32 -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
986263bccc
Fixes ELFLoader's check for dynamic program
...
This wasn't right in a case that a program would load the dynamic
linker.
The dynamic linker can be a dynamic program which was causing some
problems and the dynamic Program will then just be set based on the
header type
2020-04-26 18:04:10 -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
589b6e6368
Implements a popf unit test
2020-04-26 00:14:51 -07:00
Ryan Houdek
bdf0008c61
Implements a pushf unit test
...
Missed this during the implementation.
Checks to make sure we get the default initialization value for rflags
2020-04-26 00:14:43 -07:00
Ryan Houdek
0665599e30
Implements an fwait unit test
...
Just ensures execution works since we don't have exception support
2020-04-25 23:54:09 -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
2dce16190d
Implements JRCXZ unit test
2020-04-25 22:07:24 -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
0c88f12801
Merge pull request #159 from dmiller423/cmake_pkg_find
...
CMake checks for Boost && Nasm in ./Source/Tests/CMakeLists.txt
2020-04-25 11:58:56 -07:00
David Miller
9b8871fee6
added checks for ./Source/Tests/ {Boost,NASM}
2020-04-25 14:55:28 -04:00
Ryan Houdek
4c83b0d201
Merge pull request #158 from dmiller423/default_U
...
Default UnifiedMemory, ensure TestHarnessRunner doesn't enable it.
2020-04-25 11:52:11 -07:00
David Miller
c77a3c0c02
changed default value of FEXCore::Context::Config::UnifiedMemory to proper location
2020-04-25 14:34:34 -04:00
David Miller
e9003acf36
Ensure TestHarnessRunner doesn't enable UnifiedMemory.
2020-04-25 12:56:37 -04:00
David Miller
0c51baf7a8
Added default Config::UnifiedMemory value to true
2020-04-25 12:49:41 -04:00
Ryan Houdek
bf5dbdf143
Adds reciprocal unit tests
2020-04-24 23:36:01 -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
cd0f43a5bc
Implements unit test for movsldup
2020-04-24 23:14:27 -07:00
Ryan Houdek
73632556ce
Implements support for movsldup
2020-04-24 23:13:51 -07:00
Ryan Houdek
cd50ea7c57
Implements unit tests for the two new move temporal instructions
2020-04-24 23:05:12 -07:00
Ryan Houdek
8ffccc0027
Implements two non-temporal XMM move instructions
...
movntss/movntsd
2020-04-24 23:04:41 -07:00
Ryan Houdek
55edd35127
Implements unit tests for the six new instructions
2020-04-24 22:52:48 -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
52396227b7
Implements 9 new syscalls
...
Found these while running games and having upgraded from glibc 2.30 to
2.31
2020-04-24 19:40:10 -07:00
Ryan Houdek
726057c873
Implements the open syscall
...
Was only stubbed before, easy enough to pass it through
2020-04-24 19:11:14 -07:00
Ryan Houdek
3101e92bb4
Fixes epoll_create syscall
...
Accidently made it behave like epoll_create1. This caused some games to
throw asserts in terminal.
2020-04-24 19:08:29 -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