Commit Graph

1134 Commits

Author SHA1 Message Date
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
Ben Vanik 0cca23cdd7 Source map in DebugInfo. IVM needs to port its stuff over eventually. 2014-01-25 21:20:28 -08:00
Ben Vanik 4609339c5a JIT hackery. Not quite working. 2014-01-25 20:30:41 -08:00
gibbed 93d61d02d7 Note about DXGI_FORMAT_B4G4R4A4_UNORM being Windows 8 only. 2014-01-25 06:15:02 -08:00
gibbed 2f8f893977 Don't need to create the mastering voice with with an explicit number of channels or sample rate. 2014-01-25 04:50:47 -08:00
gibbed 47c71d702a Audio system overhaul for support of multiple audio drivers. 2014-01-25 03:18:22 -08:00
Ben Vanik bbe50cfe26 Disabling x64 backend. 2014-01-24 23:34:18 -08:00
gibbed b6c831c7ec Wait for graphics driver to complete initialization before continuing. 2014-01-24 23:00:05 -08:00
Ben Vanik 8ae6053d0f Deleting LIR and such, wiring up for HIR->x64. 2014-01-24 22:26:15 -08:00
gibbed 764d0b89f5 Fixed fetching of non-tiled textures that don't have a pitch that is a multiple of 256 bytes. 2014-01-24 11:09:38 -08:00
gibbed 7dc8a5931f Quick hack fix for vsldoi128. 2014-01-24 10:01:45 -08:00
gibbed c6642331fa Small cleanup. 2014-01-24 03:42:07 -08:00
gibbed 1ac84cf255 VECB16, VECS8, VECI4, VECF4 macros. 2014-01-24 03:39:10 -08:00
gibbed 3a7aaadbd8 TextureSwap now swaps XE_GPU_ENDIAN_8IN32. 2014-01-24 00:06:10 -08:00
gibbed 855173b2bd Probably broke everything. 2014-01-24 00:00:20 -08:00
Ben Vanik dfbbefa97f Asserting byte swapped vbs. 2014-01-23 23:58:23 -08:00
Ben Vanik 53b9ed5214 Simplifying disassembler. Much faster than before. 2014-01-23 20:31:27 -08:00
Ben Vanik f36e6cd820 Removing JSON dumps. 2014-01-23 20:31:26 -08:00
Ben Vanik f93a21884c Moving descriptions to instr table, part of issue #51. 2014-01-23 20:31:26 -08:00
gibbed 44847e9042 Moved QueryVolume and QueryFileSystemAttributes to Device from Entry. 2014-01-23 11:23:26 -08:00
gibbed bcf75a1b98 NtQueryVolumeInformationFile. 2014-01-22 17:55:23 -08:00
gibbed 6671908375 QueryVolume, QueryFileSystemAttributes stubs with accompanying XVolumeInfo and XFileSystemAttributeInfo. Needs further improvement. 2014-01-22 17:54:10 -08:00
gibbed 61093245a5 Gah. 2014-01-22 09:47:43 -08:00
gibbed 4aeb978d89 FMT_1_5_5_5. 2014-01-22 09:45:57 -08:00
gibbed 4b70b578fd Removed hack from XE_GPU_ENDIAN_8IN16. 2014-01-22 09:45:33 -08:00
Ben Vanik 489154e548 Ignore requests for kernel32.dll 2014-01-21 21:03:27 -08:00
Ben Vanik b6d7ccfb03 Adding an ExConfig setting. 2014-01-21 20:09:39 -08:00
gibbed 302111afbf Fixed writing of too much data. 2014-01-21 19:09:07 -08:00
gibbed 1091c171b2 Maybe this will work? 2014-01-21 18:53:35 -08:00
gibbed d1005e1a34 XamShowDeviceSelectorUI. Pretends success. Probably bad, but it'll do for now. 2014-01-21 18:19:50 -08:00
gibbed a9dfe13799 Further improvements to FetchTexture2D. 2014-01-21 18:19:50 -08:00
Ben Vanik 58db76c42c Pay no attention to the man behind the curtains. 2014-01-21 18:14:36 -08:00
Ben Vanik 1316e79a2f Fixing missing field. 2014-01-21 18:12:18 -08:00
Ben Vanik 7d8aaaaea7 Texture wrapping modes. 2014-01-21 08:31:25 -08:00
gibbed 3a2c2beca4 Not sure if this is correct, seems to work. 2014-01-21 02:36:24 -08:00
gibbed 801758fc2f Oops. 2014-01-21 01:54:54 -08:00
gibbed 01b00118d4 Further improvements to FetchTexture2D. 2014-01-21 01:54:34 -08:00
gibbed efa7199974 XE_GPU_SWIZZLE_000R. 2014-01-21 01:51:56 -08:00
gibbed 9507960829 Oops. Don't need that. 2014-01-21 00:51:56 -08:00
gibbed d75f4989a8 - Tiled texture support (largely untested).
- Maybe fixed FMT_8.
- Improved swapping of source texture data.
2014-01-21 00:50:18 -08:00
Ben Vanik 44c15342f5 Swizzling some textures. 2014-01-21 00:31:24 -08:00
Ben Vanik 175e21bea1 Texture filtering (mostly). 2014-01-20 23:45:45 -08:00
Ben Vanik c660b5e4d1 Making the invalid texture bright green. 2014-01-20 22:38:07 -08:00
gibbed e02c5157ef Then I broke DXT3. Fixed DXT3 and DXT5. For real this time. 2014-01-20 20:29:45 -08:00
gibbed 2bda51f5ec Fixed DXT5. 2014-01-20 20:28:42 -08:00
gibbed e66390ae93 - Proper copying of texture data.
- Support for DXT3, DXT5, 32 float, 16 16 16 16 float.
- Only pad textures for formats that require it.
2014-01-20 20:14:47 -08:00
Ben Vanik 74aac97b3e FMT_8 2014-01-20 17:54:19 -08:00
gibbed ccfb82d883 Better texture copying. And possible support for DXT1. 2014-01-20 17:49:26 -08:00
Ben Vanik 26a2ed4d75 Fixing shaders. 2014-01-20 17:45:26 -08:00
Ben Vanik 094e165415 Fixing copy. 2014-01-20 17:00:17 -08:00
Ben Vanik 3c98e65997 Fixing texture size. 2014-01-20 16:41:21 -08:00
Ben Vanik 67cc57e918 Whoops. Re-enabling blending. 2014-01-20 16:11:55 -08:00
Ben Vanik 37ed238186 Fixing texture sizing (maybe). Need to do a custom slicing bit, probably. 2014-01-20 16:10:56 -08:00
Ben Vanik cd72bc33a3 Texture sampling in shaders. 2014-01-20 16:05:34 -08:00
Ben Vanik 4de33a6e2d Making texture fetching split from samplers. 2014-01-20 15:36:33 -08:00
Ben Vanik af223b2067 Textures part 1: uploading. 2014-01-20 13:57:22 -08:00
Ben Vanik e469d87678 Detect write to psize and include conditionally. 2014-01-20 11:07:14 -08:00
Ben Vanik 0efd7b4a62 Moving viewport transform to vertex shaders. 2014-01-20 10:46:43 -08:00
gibbed 7b9a804fc0 vsprintf. 2014-01-20 10:15:53 -08:00
gibbed 16918eea07 Disabled source offset tracking by default. 2014-01-20 08:18:49 -08:00
gibbed 5a5a93d62d This seems to work. Perhaps cache in the future? 2014-01-20 07:41:11 -08:00
gibbed 8e5da8d853 Oops. 2014-01-20 07:30:18 -08:00
gibbed 592b1974f2 Corrected stack access in XamUserReadProfileSettings. 2014-01-20 06:08:49 -08:00
gibbed 6d7b25a338 Minor corrections to NtCreateFile, NtQueryDirectory. 2014-01-20 06:08:24 -08:00
gibbed c673d55c1e Corrected XFileXctdCompressionInformation handling. Needs to be further corrected in the future. 2014-01-20 06:05:36 -08:00
gibbed e5e6a2cea6 Corrected X_FILE_INFORMATION_CLASS definition. 2014-01-20 06:01:36 -08:00
Ben Vanik f5eefb138c Geometry shaders now support disabled viewports. 2014-01-20 03:42:05 -08:00
Ben Vanik e5d4cdd66d Fixing XamInputSetState. 2014-01-20 02:36:23 -08:00
Ben Vanik 58504d8c0b Initial pass at pointsprites. Needs a lot more work. 2014-01-20 01:13:37 -08:00
Ben Vanik ea5a6e19dd Disabling culling for rect lists. 2014-01-20 00:45:16 -08:00
Ben Vanik 1cd518b19c Geometry shader work for rect lists and quad lists. 2014-01-20 00:18:14 -08:00
Ben Vanik bcea3e00f1 Point size output from VS. 2014-01-19 16:41:52 -08:00
Ben Vanik 55fe3aca05 RECIP_IEEE. 2014-01-19 11:07:12 -08:00
Ben Vanik cb3f2308af Fixing shaders that fetch constants. 2014-01-19 10:29:34 -08:00
gibbed 8f4950bb6c Corrected overlapped_ptr stack location in XamUserReadProfileSettings. 2014-01-19 10:16:12 -08:00
gibbed e0c652b075 Pretend XMACreateContext succeeded. 2014-01-19 09:47:07 -08:00
gibbed 7e22d3be92 - Renamed SHIM_SET_RETURN macro to SHIM_SET_RETURN_64.
- Added SHIM_SET_RETURN_32 macro, which sign-extends to 64-bit.
- Updated all uses of SHIM_SET_RETURN to the appropriate macro (either SHIM_SET_RETURN_32 or SHIM_SET_RETURN_64).
2014-01-19 07:24:16 -08:00
gibbed 870a59f225 Turns out NtQueryDirectoryFile only returns a single entry at a time. 2014-01-19 06:57:43 -08:00
gibbed c7276454d7 Added file_name argument to QueryDirectory. 2014-01-19 02:05:51 -08:00
Ben Vanik 71de4e77dc Fixing memory leak and zeroing on alloc. 2014-01-19 01:51:57 -08:00
Ben Vanik 268bbf105d QueryDirectory for STFS. 2014-01-19 01:47:06 -08:00