Commit Graph
9533 Commits
Author SHA1 Message Date
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
Ryan Houdek 914f177a5a Merge pull request #148 from dmiller423/master
EnvironmentLoader, clean merge
2020-04-24 16:54:23 -07:00
David Miller 1589b9a351 Added EnvLoader to frontend binaries, called prior to ArgLoader 2020-04-24 19:53:28 -04:00
David Miller d93c66e5f6 Added EnvLoader to fontend binaries, called prior to ArgLoader 2020-04-24 19:35:59 -04:00
David Miller 75ee8f0604 EnvironmentLoader, clean merge 2020-04-24 19:25:57 -04: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 f6bdcbbdcf Merge pull request #129 from Sonicadvance1/more_syscalls2
Implements two more syscalls
2020-04-24 09:10:01 -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