Commit Graph

1214 Commits

Author SHA1 Message Date
Ben Vanik 9031d5f4a4 Fix clang warnings / move some plat code into poly. 2014-07-10 22:51:27 -07:00
Ben Vanik 7daa85179c Running clang-format on alloy.
All except x64_sequences, which needs work.
2014-07-10 20:20:00 -07:00
Ben Vanik 868803e03a Fixing file header. 2014-07-09 22:31:14 -07:00
Ben Vanik c5f114018e Replacing alloy::Mutex with std::mutex. 2014-07-09 22:28:51 -07:00
Ben Vanik 500647968c Prepping poly. 2014-07-09 22:05:41 -07:00
Ben Vanik 6b197c4c92 Removing the debugger and dependencies. Needs rethinking. 2014-07-09 21:21:40 -07:00
Ben Vanik fd2a1f85a6 Fixing #105 enough to get the games moving along. 2014-07-08 21:47:31 -07:00
Ben Vanik deaf8308fc More UNPACK forms - likely right. 2014-07-08 20:52:12 -07:00
Ben Vanik 0950e9f53c Calm some games down that hammer XMPGetStatus. 2014-07-08 16:02:42 -07:00
Ben Vanik eb7987a634 Setting default output values for pixel shaders. 2014-07-08 16:02:42 -07:00
Ben Vanik 2a68a1b35b Special casing some VC++ traps. 2014-07-08 16:02:41 -07:00
Ben Vanik a5627ee25a Hide lock logging. 2014-07-03 12:59:08 -07:00
Ben Vanik 824d3c246f Prevent null/broken shaders from dying in d3dcompiler. 2014-07-03 12:58:56 -07:00
Ben Vanik 3b853f6201 WSAStartup tweak. 2014-07-03 12:58:27 -07:00
Ben Vanik a0cb341662 Trying really hard to keep games from spinning up networking. 2014-07-02 21:57:21 -07:00
Ben Vanik d5f27dbf34 Better arg passing for Execute and experimenting with APCs. 2014-07-02 15:39:49 -07:00
Fire30 15be1061d3 Fixed arguments for NetDll_send. 2014-07-02 18:17:09 -04:00
tj 13b3fa6f84 Fixed typo in NetDll_setsockopt logging. 2014-06-24 00:38:14 -04:00
Ben Vanik 4009eb1cd8 Fail out of XamContentCreateEnumerator. 2014-06-22 21:19:48 -07:00
Ben Vanik 9905380bd0 Steal one page of physical heap - this helps catch virt underflows. 2014-06-22 21:09:33 -07:00
Ben Vanik 7b98c748fa Fixing double allocation of memory x_x 2014-06-22 21:03:41 -07:00
Ben Vanik 71eb408d67 Various fiddlings. 2014-06-22 19:41:26 -07:00
Ben Vanik a5448b1296 Fixing pack float16. 2014-06-20 20:48:02 -07:00
Ben Vanik da590bd9cc Disable logging for TlsGetValue. 2014-06-20 20:44:53 -07:00
Ben Vanik 7936fa2dbd Fix constants in pixel shaders. 2014-06-20 20:44:39 -07:00
Ben Vanik 45e149d00b Possibly correct variable EXTRACT_I16. 2014-06-10 21:38:33 -07:00
Ben Vanik 02709e0d65 Optimize EXTRACT_I32(0). 2014-06-10 21:38:17 -07:00
Ben Vanik 4089f405af PACK FLOAT16 seems correct. 2014-06-10 21:36:13 -07:00
Ben Vanik 713cfcb429 Possibly correct FLOAT16 unpack. 2014-06-10 21:35:50 -07:00
Ben Vanik 574a04a853 Preventing emulated instructions from stomping the xmm registers. 2014-06-10 21:33:58 -07:00
Ben Vanik 3845437276 Fix assert to allow 16 fetchers. 2014-06-10 21:06:36 -07:00
Ben Vanik 829b4f67bf ReadFile EOF. 2014-06-10 20:40:11 -07:00
Ben Vanik ff8c03046a VECTOR_COMPARE_UGT/UGE (probably). 2014-06-09 21:29:35 -07:00
Ben Vanik 289075d052 Constant D3DCOLOR UNPACK. Could optimize earlier. 2014-06-09 21:29:15 -07:00
Ben Vanik 5343cab851 Support constant CALL_INDIRECT. 2014-06-09 21:15:13 -07:00
Ben Vanik 95508273f6 Misc experimentation. 2014-06-08 23:11:09 -07:00
Ben Vanik 052dca5010 Const src1 permute. 2014-06-08 22:21:38 -07:00
Ben Vanik 43a3b4f3c0 Support constant value movs to mmio memory. 2014-06-08 22:21:23 -07:00
Ben Vanik 264fc7cc91 Fix assert. 2014-06-08 22:21:05 -07:00
Ben Vanik 6e76c169d6 Proper(ish) VdSwap - fixes a bunch of things.
Caching is working a bit better, now.
2014-06-08 21:24:29 -07:00
Ben Vanik 8337820500 Fiddling with interrupt triggering - still not right. 2014-06-08 11:59:57 -07:00
Ben Vanik daa8a24173 Caching states. 2014-06-08 11:51:53 -07:00
Ben Vanik 6514eaa780 Disabling paged resource caching for now, as it's broken. 2014-06-08 11:25:10 -07:00
Ben Vanik 295910c3d8 Initial refactoring of gpu/.
Runs too fast - now there are ringbuffer wrapping issues.
2014-06-08 11:23:55 -07:00
Ben Vanik 4072640a64 Skeleton of new shared GPU files. 2014-06-02 19:24:33 -07:00
Ben Vanik beb5ee40ee Dirty page table. Not yet used. 2014-06-02 07:49:45 -07:00
Ben Vanik ddbebcda6c Cleanup memory. 2014-06-02 07:11:27 -07:00
Ben Vanik 0e3854555d Pure dynamic MMIO access. Prep for more complex GPU memory management. 2014-06-01 23:36:18 -07:00
Ben Vanik 3a8065b7b1 Vertex buffer caching.
Doesn't help, though, as buffers are weird. Need to rethink all of this.
2014-06-01 09:42:07 -07:00
Ben Vanik 2d173ea62b Caching index buffers. 2014-05-31 22:26:39 -07:00
Ben Vanik 19c48c7a90 Partial texture cache - doesn't invalidate yet. 2014-05-31 17:38:32 -07:00
Ben Vanik 529a1478d8 Sampler state caching. 2014-05-31 16:34:05 -07:00
Ben Vanik 6607606b15 Moving texture code into shared/separate files. Leaking a lot. 2014-05-31 15:42:21 -07:00
Ben Vanik e42460039f Untested PACK float16_2/_4. 2014-05-31 11:23:10 -07:00
Ben Vanik 8be043fbd4 Merge pull request #86 from hlide/master
EXTRACT_I8, EXTRACT_I16, EXTRACT_I32, EXTRACT_F32: properly modified the...
2014-05-31 08:19:03 -07:00
hlide 0598df1d9e Removed weird symbols in x64_sequences.cc 2014-05-31 17:14:40 +02:00
Ben Vanik e45fc3dc56 Reducing profiling forced swap frequency. 2014-05-31 08:13:13 -07:00
Ben Vanik 430d827770 Like, really fixing SELECT. Frogger now runs ^_^ 2014-05-31 08:06:04 -07:00
hlide 8525cf739e Update x64_sequences.cc 2014-05-31 16:51:15 +02:00
hlide 334f744fb8 EXTRACT_I8, EXTRACT_I16, EXTRACT_I32, EXTRACT_F32: properly modified the code in comments 2014-05-31 14:23:22 +02:00
Ben Vanik 002aaab77d Fixing VECTOR_COMPARE_SGE. 2014-05-30 22:36:06 -07:00
Ben Vanik df5d86e78c Tweaking load/store. Nasty. 2014-05-30 22:29:08 -07:00
Ben Vanik 7acbf759e2 Fixing UNPACK D3DCOLOR. Probably. 2014-05-30 21:38:33 -07:00
Ben Vanik 0b42c72ec5 Fixing const propagated DID_CARRY. 2014-05-30 20:09:00 -07:00
Ben Vanik d65b5801f8 Adding hlide's comments for EXTRACT - need to implement/test. 2014-05-30 14:02:15 -07:00
Ben Vanik 691a3d4ade Fixing EXTRACT. 2014-05-30 14:01:52 -07:00
Ben Vanik 1729c8ce6d Constant MIN/MAX. 2014-05-30 14:00:28 -07:00
Ben Vanik 8ba95efdce Fixing mulx usage. 2014-05-30 12:41:48 -07:00
Ben Vanik 6c92e6a5c5 Increasing microprofile stack size, as some of these trees are deep. 2014-05-30 11:44:24 -07:00
Ben Vanik 0267efa5cc Always swapping the graphics system so that we see the profiler update. 2014-05-30 06:50:07 -07:00
Ben Vanik 0c55309826 Fixing COMPARE and tweaking ABS/NEG. 2014-05-29 23:11:00 -07:00
Ben Vanik 328ece538a Fixing disabled profiling. 2014-05-28 21:46:43 -07:00
Ben Vanik 997f582d1f Removing useless counters. 2014-05-28 20:32:50 -07:00
Ben Vanik 18b1f9f513 Fixing controller input. 2014-05-28 20:19:28 -07:00
Ben Vanik c06526e5df Backpatch function addresses. 2014-05-28 20:02:40 -07:00
Ben Vanik c1812406f5 Adding a bunch of profiling tracers. 2014-05-28 19:19:39 -07:00
Ben Vanik beb9bd11f0 Microprofile integration. 2014-05-28 13:59:43 -07:00
Ben Vanik 6486e0a48e Profiler skeleton. 2014-05-27 22:54:40 -07:00
Ben Vanik 2ef6545927 Trap sometimes called. 2014-05-27 19:35:52 -07:00
Ben Vanik ca22010502 Adding memory snooping for mmio accesses. Yuck. 2014-05-27 19:33:16 -07:00
Ben Vanik 192941eeb0 PACK D3DCOLOR. 2014-05-27 16:23:46 -07:00
Ben Vanik edf282abdc Disabling logging. 2014-05-27 15:26:16 -07:00
Ben Vanik b0034f3b4d Fix cntlz. 2014-05-27 15:15:52 -07:00
Ben Vanik 2856d38024 Fixing some instructions. 2014-05-27 14:31:19 -07:00
Ben Vanik 5436cde0fc Saturating unsigned VECTOR_ADD. 2014-05-27 14:27:07 -07:00
Ben Vanik 8619a15ee3 Emulated POW2/LOG2. Can probably be faked with polynomials. 2014-05-27 13:25:22 -07:00
Ben Vanik 0612a68f80 Fixing encoding of vpextr*. 2014-05-27 13:02:38 -07:00
Ben Vanik 87f8a4bb25 vector_add. 2014-05-27 13:02:23 -07:00
Ben Vanik e32342e956 Variable vector_shl int8. 2014-05-27 13:02:00 -07:00
Ben Vanik 7635bb71a0 Constant permute. 2014-05-27 12:03:40 -07:00
Ben Vanik 2d765461ff Common constant vector shifts. 2014-05-27 12:03:13 -07:00
Ben Vanik d85665bb06 More efficient 11111... vec loading. 2014-05-27 11:57:20 -07:00
Ben Vanik 16bac6d9c5 Constant support for a lot of vector ops. 2014-05-27 11:56:55 -07:00
Ben Vanik efa0565398 Fixing permute. 2014-05-27 07:53:19 -07:00
Ben Vanik 5a85263e5f Trying out a new style of JIT pattern matching. 2014-05-26 20:28:21 -07:00
Ben Vanik a001714fb0 Adding lock to stdout logging. Disable with --fast_stdout.
Fixes #78.
2014-05-21 11:24:44 -07:00
Ben Vanik 1bb0b08a14 Fixing WIN32 build. 2014-05-21 10:38:41 -07:00
Anthony Pesch 1a4355a36b implemented xerotl to replace win32 specific _rotl usage 2014-05-14 00:39:50 -07:00
Anthony Pesch f01609c5aa replace usage of itoa with snprintf 2014-05-14 00:39:47 -07:00
Anthony Pesch 68e5833647 use getpagesize on non-win32 platforms 2014-05-14 00:36:05 -07:00
Anthony Pesch 0e6c47aac5 use custom __m128 struct on non-win32 platforms to provide element-wise access
explicitly cast param for set_constant to correctly resolve overloaded function
2014-05-14 00:36:05 -07:00
Anthony Pesch c6cdf1f672 nest X64Function in its own block to avoid clang errors related to goto usage 2014-05-14 00:36:05 -07:00
Anthony Pesch 60a7e79e1a assume c++11
clang didn't like static members in anonymous structures, gave them names
WriteEvent template wouldn't resolve for temporary values without const decl in clang
added a few missing headers
added -fno-operator-names for xbyak compilation under gcc/clang
2014-05-14 00:35:21 -07:00
Shawn Hoffman 1e196df4b3 Fix spelling of GetLogicalProcessorInformation in GetProcAddress call - spelling actually matters here. 2014-03-28 21:48:20 -07:00
Ben Vanik 9a2d99d652 Fixing CFA. 2014-03-28 20:39:21 -07:00
Ben Vanik 24fc5acb07 Partially implemented Windows keyboard HID for testing. 2014-02-23 16:36:17 -08:00
Ben Vanik 86f66c4ab7 So few (faked) registers seems to break some things. 2014-02-15 15:49:41 -08:00
Ben Vanik b2f886be98 Fixing more x64 stuff. 2014-02-10 23:48:41 -08:00
Ben Vanik 74c9df6697 Re-enabling x64 backend, fixing many bugs. 2014-02-10 23:24:46 -08:00
Ben Vanik 4a584129d2 A probably-working register allocator. 2014-02-10 21:16:38 -08:00
Ben Vanik 6bd214af0b Adding a shared scratch arena for compiler passes. 2014-02-08 22:01:51 -08:00
Ben Vanik e6f3716d87 Disabling x64 backend for now, as it's rubbish. 2014-02-08 22:01:26 -08:00
Ben Vanik e36e1acc1a TLS access is slow. 2014-02-08 22:00:53 -08:00
Ben Vanik 2403f367b1 MachineInfo 2014-02-08 22:00:21 -08:00
Ben Vanik ee69696485 Hiding some D3D11 log spew. 2014-02-06 22:18:44 -08:00
Ben Vanik 6199e9f7b5 Vector constant support. 2014-02-06 22:18:30 -08:00
Ben Vanik c5b70e615f Fixing div. 2014-02-06 22:18:15 -08:00
Ben Vanik 5309356908 Fixing tail calls in the jit. 2014-02-06 21:53:31 -08:00
Ben Vanik 0d88e83daa Avoiding function lookup for compiled functions. Still need caching. 2014-02-02 14:41:57 -08:00
Ben Vanik ef5f59ed0b I seem to relearn blr != return once every month or so. 2014-02-02 14:35:16 -08:00
Ben Vanik 2d65bea0ea Fix warning. 2014-02-02 13:34:03 -08:00
Ben Vanik 05387b4996 Fixing type mismatches. 2014-02-02 13:10:24 -08:00
Ben Vanik bc54fc1ae8 UNPACK D3DCOLOR and EXTRACT INT32 variable. 2014-02-02 13:04:42 -08:00
Ben Vanik 544d453691 Stack fixes. 2014-02-02 12:28:40 -08:00
Ben Vanik 14d6855b6d PERMUTE by V128 and fixing some ops. 2014-02-02 11:23:03 -08:00
Ben Vanik 44c29a6691 Possibly working LOAD_VECTOR_SHL/SHR. 2014-02-02 02:18:59 -08:00
Ben Vanik ae02dc7eba Fixing rdx clobber from mul/div. 2014-02-02 01:51:38 -08:00
Ben Vanik bca349b302 Oh my. Basic CFA/DFA, local variable support, misc fixes, etc. 2014-02-02 00:33:57 -08:00
Ben Vanik b29276e167 Reserve address cleanup. 2014-02-01 01:13:23 -08:00
Ben Vanik 91a43a0ab6 Fixing broken temp reg. 2014-02-01 01:13:05 -08:00
Ben Vanik b1ab2fb0a7 That was a terrible idea. Let us never speak of it again. 2014-02-01 00:41:36 -08:00
Ben Vanik f524693dbb Unswapping IVM register accesses. 2014-02-01 00:20:45 -08:00
Ben Vanik 68b5a0979e Logging undefined extern calls. 2014-02-01 00:12:36 -08:00
Ben Vanik f4d0eb03bc Fixing 64bit fneg. 2014-02-01 00:08:26 -08:00
Ben Vanik 6eef76374d Fix CNTLZ with 0. 2014-02-01 00:05:53 -08:00
Ben Vanik 50cb12634e Fixed rax clobber on mul/div. 2014-02-01 00:05:38 -08:00
Ben Vanik 10c9537836 Swapping register values. 2014-02-01 00:05:21 -08:00
Ben Vanik 7044b74dc2 Fixing register value overwriting in address calculation. 2014-01-31 23:33:32 -08:00
Ben Vanik e63fbcc2cd Fixing sub w/ SET_CARRY. 2014-01-31 23:16:38 -08:00
Ben Vanik efb2b6f037 Fixing disasm of XO. 2014-01-31 22:54:50 -08:00
Ben Vanik 7141fbad27 Ignoring comment on fall-through for now, as all imports cause it. 2014-01-31 22:51:40 -08:00
Ben Vanik 6ed411a08d Fixing printing of floats. 2014-01-31 22:51:18 -08:00
Ben Vanik 458368c35e Fixing IVM SUB bug. 2014-01-31 22:51:04 -08:00
Ben Vanik 009a6d0745 Hacking together proper stack saving. Can't get >128b frames working. 2014-01-31 22:16:05 -08:00
Ben Vanik f85b83709e Refactoring of function types. Also fixes some library import bugs. 2014-01-30 00:22:55 -08:00
Ben Vanik bdee924494 Various fixes. 2014-01-28 23:51:40 -08:00
Ben Vanik 0ec8e32861 Removing stack padding. Still broken even with it. 2014-01-28 23:22:10 -08:00
Ben Vanik 949b1a2220 Adding dynamic access checks. Eww. 2014-01-28 23:21:55 -08:00
Ben Vanik 53d4cbf2c5 Messing with flags. subficx sometimes still wrong. 2014-01-28 22:49:51 -08:00
Ben Vanik 62ced2742e Handling unimplemented externs. 2014-01-28 22:11:33 -08:00
Ben Vanik 8cddfcbf19 More SSE work. 2014-01-28 22:06:45 -08:00
Ben Vanik b2e9086932 Reserving volatile XMM registers (so long as we are calling tracers). 2014-01-28 20:39:44 -08:00
Ben Vanik e5cf47a0d8 More SSE work. 2014-01-28 20:33:13 -08:00
Ben Vanik ac4360913f Fixing typo in logging. 2014-01-28 13:56:30 -08:00
Ben Vanik 0ff1fe93af Disabling logging. 2014-01-28 10:46:40 -08:00
Ben Vanik 465c3a41dd Hacking. 2014-01-28 00:19:05 -08:00
Ben Vanik 5421108b9e Bad dp checks. 2014-01-27 23:00:26 -08:00
Ben Vanik 0908891bb2 v128 tracing. 2014-01-27 22:56:56 -08:00
Ben Vanik 5b2e44b0e8 Cleaning up some constant handling. 2014-01-27 22:47:37 -08:00
Ben Vanik d67f786af8 Some binary xmm ops. 2014-01-27 22:18:44 -08:00
Ben Vanik da36baba8d Fixing 64-bit mov encoding. *shakes fist at xbyak for silently coercing* 2014-01-27 21:32:58 -08:00
Ben Vanik 8894a0f86e Fixing tracer formats. 2014-01-27 21:32:20 -08:00
Ben Vanik 01c1dd6417 Fixing unpack type. 2014-01-27 21:03:17 -08:00
Ben Vanik 9b45e6f2dc Tracers in x64, almost matching ivm. 2014-01-27 20:50:45 -08:00
Ben Vanik 58c0ea9ac7 Fixing bad vector compare. 2014-01-27 09:25:48 -08:00
Ben Vanik 6c7e392088 Fixing xmm unary ops. 2014-01-26 22:57:39 -08:00
Ben Vanik c828e5416e Starting on some unary xmm opcodes. 2014-01-26 22:47:15 -08:00
Ben Vanik 234aa4f543 Some parts of vector comparison. 2014-01-26 22:25:28 -08:00
Ben Vanik 6c6f10ad48 Moving op templates to op_utils.inl. 2014-01-26 21:40:25 -08:00
Ben Vanik ae6c903173 Reformating lambdas to make vs happier. 2014-01-26 21:34:46 -08:00
Ben Vanik 6e35b6efa3 Renaming op utils. 2014-01-26 21:30:34 -08:00
Ben Vanik ed4efccc30 Fleshing out skeletons for most sequences. 2014-01-26 21:27:45 -08:00
Ben Vanik 1988edfd55 Cleaning up a bit in prep for float/vec. 2014-01-26 21:04:30 -08:00
Ben Vanik 1518523651 Untested code for static register load/stores. 2014-01-26 18:51:56 -08:00
Ben Vanik 638afa686c Skeleton for PACK/UNPACK. 2014-01-26 18:21:12 -08:00
Ben Vanik 672a4fd504 LOAD_CLOCK. 2014-01-26 18:20:59 -08:00
Ben Vanik e785e31a6f Disabling context prop pass until register spilling is implemented. 2014-01-26 17:52:45 -08:00
Ben Vanik d323e6d3ec Indirect calls and fixing v128 const loads. 2014-01-26 17:52:32 -08:00
Ben Vanik 0123b63aa2 Adding (somewhat) ivm compatible ctx load/store tracing. 2014-01-26 17:42:03 -08:00
Ben Vanik 638d9631af Fixing register allocation bug. 2014-01-26 17:38:40 -08:00
Ben Vanik f55fb17e1b MUL/MUL_HI/DIV 2014-01-26 16:09:25 -08:00
Ben Vanik ebaf8aa16d Fixing extends. Xbyak doesn't have good validation, so expecting more :( 2014-01-26 15:46:10 -08:00
Ben Vanik e52a7bc3af Fixing things, breaking others. 2014-01-26 15:10:39 -08:00
Ben Vanik 122761835e Adding new instructions and cleaning things up a bit. 2014-01-26 12:14:29 -08:00
Ben Vanik bbf3b4bdab Fixing tail calls. 2014-01-26 11:45:58 -08:00
Ben Vanik aadf92e4ea 'Fixing' register clobbering by disabling a bunch of nonvolatile regs. 2014-01-26 11:18:12 -08:00
Ben Vanik ac59b61851 Fixing register eviction. 2014-01-26 11:17:53 -08:00
Ben Vanik 5eeeee7093 Fixing jumps. 2014-01-26 11:17:12 -08:00
Ben Vanik 7fe0a10d43 Adding back --break_on_instruction. 2014-01-26 11:16:55 -08:00
Ben Vanik 3e52a99adf Fiddling with stack. Still wrong. 2014-01-26 04:34:29 -08:00
Ben Vanik 495edda8d8 Logging comments like IVM. 2014-01-26 04:01:51 -08:00
Ben Vanik 51ae8299d9 Fixing stack size. 2014-01-26 03:54:50 -08:00
Ben Vanik 20c8eb1561 Making debug disassembly look a bit better. 2014-01-26 03:24:55 -08:00
Ben Vanik cb352c6c86 Fancy templated helpers. 2014-01-26 03:17:03 -08:00
Ben Vanik ecf0988ddb Removing SET_RETURN_ADDRESS - hopefully it'll never be needed again. 2014-01-26 01:18:59 -08:00
Ben Vanik 8789fd4134 Heuristically detecting ret - probably breaks some things. 2014-01-26 01:09:25 -08:00
Ben Vanik c74f35552a (air quotes) "register allocation" without spills. 2014-01-25 23:36:59 -08:00
Ben Vanik c4d6c7a526 Reducing value count. IVM could take advantage of this. 2014-01-25 22:47:21 -08:00
Ben Vanik 05432242ff Removing block continuation branches. 2014-01-25 21:35:59 -08:00
Ben Vanik f438fa980d Fixing source offsets. 2014-01-25 21:32:30 -08:00