Commit Graph

585 Commits

Author SHA1 Message Date
Ben Vanik ad72c193a6 Fixing stack traces, making lr BC... to diff from stack scribble BE... 2015-05-20 23:28:34 -07:00
Ben Vanik 5e5eb47789 Rewriting code cache to put everything at fixed addresses. 2015-05-20 19:23:46 -07:00
Ben Vanik 2328b34308 Cleaning up some old flags. 2015-05-19 22:28:01 -07:00
Ben Vanik 7a82ad839a Merge branch 'memory' 2015-05-19 20:29:00 -07:00
Ben Vanik 8bfc43bb0d Trying to do MMIO protects on allocation granularity. 2015-05-18 20:47:41 -07:00
Ben Vanik 92f5fe3b88 Changing page_size to allocation granularity. 2015-05-18 20:47:40 -07:00
Ben Vanik 7796f5cb60 Fixing page guards to work at system page granularity. 2015-05-18 20:25:15 -07:00
Ben Vanik bb5466d7b2 Fixing undefined exports to error out right. 2015-05-18 19:58:51 -07:00
Ben Vanik 1c96941236 Handling imports when modules aren't found. 2015-05-18 19:34:06 -07:00
Dr. Chat 589e672d20 XexModule: Resolve user library imports 2015-05-18 01:31:59 -05:00
Ben Vanik c1a0f46ea8 Implementing dcbz. 2015-05-17 16:40:38 -07:00
Ben Vanik 50b84203c5 Fixing test. 2015-05-17 13:47:20 -07:00
Ben Vanik 3f7da258fc Adjusting stack padding on executes. 2015-05-17 13:35:12 -07:00
Ben Vanik b44a7a7730 Allocating stacks in the right place. 2015-05-17 13:10:02 -07:00
Ben Vanik 37804d692c Fixing stack allocation alignment. 2015-05-17 10:17:32 -07:00
Ben Vanik da630cc159 Starting to clean up thread state. 2015-05-16 16:34:14 -07:00
Ben Vanik 147a70b9c1 Rewriting memory manager. 2015-05-17 00:16:56 +01:00
gibbed 59d4847542 More tests for cntlzw. 2015-05-16 16:44:27 -05:00
Ben Vanik 3a7d1f21e8 Merge pull request #209 from DrChat/muladdsub_cleanup
Rewrite FMA mul sub/add to avoid register shuffling
2015-05-16 13:25:28 -07:00
Ben Vanik 504b855c20 Adding frsqrte and fixing fsqrt o_o 2015-05-16 13:22:49 -07:00
Dr. Chat 5dbec09818 Change SSE opcodes back to AVX (mixing is bad) 2015-05-16 14:10:28 -05:00
Dr. Chat 65ff862495 Whoops (typo) 2015-05-16 13:41:33 -05:00
Dr. Chat 8e35ec0620 Rewrite FMA mul sub/add to avoid register shuffling
Also downgrade some AVX opcodes to SSE
2015-05-16 13:31:42 -05:00
Ben Vanik 8d4f54e240 Thread state updates. 2015-05-16 01:45:56 -07:00
Rick Gibbed 11ea5c5b10 Merge pull request #208 from DrChat/stack_size_fix
Increase audio worker thread and cpu interrupt thread stack size
2015-05-15 18:23:34 -05:00
Dr. Chat 420d4e43b6 Increase audio worker thread and cpu interrupt thread stack size 2015-05-15 18:12:44 -05:00
Rick Gibbed 7546cca936 Merge pull request #207 from DrChat/mul_8_fix
Fix 8bit multiply instructions
2015-05-15 10:22:30 -05:00
Dr. Chat dbdf3271fb Fix 8bit multiply instructions 2015-05-15 10:21:07 -05:00
Dr. Chat a46b63558e Clean up mul sub/mul add code and fix a minor bug in mulsub f64 2015-05-15 10:09:19 -05:00
Ben Vanik a1fb99f1d3 Adding new test binaries. 2015-05-14 16:21:27 -07:00
Dr. Chat 88e3ef9884 fmadd test 2015-05-14 18:07:30 -05:00
Dr. Chat 5c10d1cdaa Tests: fadd/fmul 2015-05-14 18:07:24 -05:00
Ben Vanik df600a105a Fixing constant compare. 2015-05-14 14:42:54 -07:00
gibbed ac4337cabf CR1 tests for fabs (disabled). 2015-05-14 16:02:44 -05:00
gibbed cfaa72cae6 Tests for extsb, extsh, extsw. 2015-05-14 15:56:25 -05:00
gibbed a5483ced29 Tests for cmpl, cmpli. 2015-05-14 15:36:39 -05:00
gibbed 95b6f0ac46 Tests for cmpi. 2015-05-14 15:30:35 -05:00
gibbed 4122bce07c Tests for cmp. 2015-05-14 15:24:03 -05:00
gibbed 6edc3b1c55 Tests for andis. 2015-05-14 14:57:43 -05:00
gibbed fa5e34ce19 Tests for andi. 2015-05-14 14:55:02 -05:00
gibbed a3621fd11b Experimental stack allocation. 2015-05-14 10:12:33 -05:00
gibbed 5660d348ea Tests for andc. 2015-05-14 02:06:58 -05:00
gibbed 5ec6b7973b Tests for and. 2015-05-14 02:06:41 -05:00
gibbed 30f4556baf CR0 tests for addze. 2015-05-14 01:43:18 -05:00
gibbed e4f8818d07 CR0 tests for addme. 2015-05-14 01:27:33 -05:00
gibbed ad9b2c792e Tests for addis. 2015-05-14 01:27:32 -05:00
gibbed eb5fcd5228 CR0 tests for adde. 2015-05-14 01:27:32 -05:00
gibbed 59fb08adaa CR0 tests for addc, addic. 2015-05-14 01:27:31 -05:00
gibbed 081fc63fbd Enabled the constant tests for addc and addic. 2015-05-14 00:34:24 -05:00
Ben Vanik 00b79d66ff Fixing sub carry flag. 2015-05-13 18:04:33 -07:00
gibbed b819c992ed CR0 tests for add. 2015-05-13 17:07:29 -05:00
gibbed bb947c6819 Value::MulHi and constant propagation for OPCODE_MUL_HI. Could maybe be reworked? 2015-05-13 16:13:06 -05:00
gibbed 9714018fbb Constant tests for srw, stvew, stvl, stvr, subf, subfc, subfe, subfic, subfme, subfze. 2015-05-13 06:38:31 -05:00
gibbed 0cf3e8c3f5 Simplify some register setup in the cntlzd and cntlzw tests. 2015-05-13 06:36:00 -05:00
gibbed 96e549d301 Constant tests for rldicr, rlwimi, rlwinm, rlwnm, sld, slw, srad, sradi, sraw, srawi, srd. 2015-05-13 03:14:06 -05:00
gibbed 5ebd4984ba Constant tests for mulhdu, mulhw, mulhwu, mulld, mulli, mullw, neg, nor, ori, rldicl. 2015-05-13 02:39:09 -05:00
Ben Vanik 0d3e79ad2c Supporting const src1 mul_hi. 2015-05-13 00:19:07 -07:00
Ben Vanik 6fd7e35deb Fixing subfme. 2015-05-13 00:15:42 -07:00
gibbed 3ba6598caf Constant tests for eqv, lvexx, lvl, lvr, lssl, lvsr, mulhd. 2015-05-13 01:53:07 -05:00
Ben Vanik 4248268b4f Fixing divd constant. 2015-05-12 23:38:02 -07:00
gibbed 4327724f77 Constant tests for divw, divwu. 2015-05-13 01:27:27 -05:00
Ben Vanik 398b37dc5f Fixing addze. 2015-05-12 23:26:21 -07:00
Ben Vanik 56bd2eee2e Fixing divdu by constant -1. 2015-05-12 23:09:32 -07:00
gibbed e7b03042ba Constant tests for addic, addme, addze, divd, divdu. 2015-05-13 01:01:12 -05:00
Ben Vanik 91c6ad8715 Fixing adde_constant. 2015-05-12 22:53:20 -07:00
gibbed dda6f3b6bd sldi is not srdi. 2015-05-13 00:35:35 -05:00
gibbed dc1b1ca638 Constant tests for add, addc, adde. 2015-05-13 00:21:57 -05:00
Ben Vanik a72dc93b92 'xb gentest' to generate test binaries on Windows. 2015-05-12 21:41:44 -07:00
Ben Vanik cbdfd09e0f Fixing SHR constant prop and new cntlz tests. 2015-05-12 18:59:45 -07:00
Ben Vanik 48ae4b65fb Fixing CountLeadingZeros constant prop. 2015-05-12 18:51:01 -07:00
Ben Vanik acfb5b5722 fnabsx 2015-05-12 18:43:16 -07:00
Dr. Chat 82eecb752b Fix 8bit and 16bit mul instructions and clean up some code 2015-05-12 13:35:13 -05:00
gibbed ff2c00e220 Just in case. 2015-05-12 06:51:31 -05:00
gibbed 19e733cff7 Added constant tests for cntlzd and cntlzw. 2015-05-12 01:20:26 -05:00
gibbed 24b13b03f5 Fixing more cpu feature guards. 2015-05-12 00:26:45 -05:00
Ben Vanik 497e5a9f69 Fixing cpu feature guards. 2015-05-11 22:13:55 -07:00
Ben Vanik ad7efa964f Adding --enable_haswell_instructions=false to disable modern instructions. 2015-05-11 21:42:10 -07:00
Ben Vanik fc02a0c404 Switching up std::vector use in register allocator. 2015-05-11 21:01:48 -07:00
Ben Vanik 7a00b76a6e Debugger stuff, and changing to vcproj's/sln. 2015-05-09 17:48:12 -07:00
Ben Vanik 4411a4499d XEX-style exports, dumping exports, and prepping kernel export lookup. 2015-05-09 00:59:03 -07:00
Ben Vanik 23eb343484 Calling DllMain, fixing ref count, and fixing module search. 2015-05-09 00:56:42 -07:00
Ben Vanik 0c646f4bc2 Prevent some stack overflows in MMIO handler. 2015-05-09 00:53:28 -07:00
Ben Vanik 94c62b91d0 --trace_functions and --trace_function_coverage 2015-05-05 22:44:36 -07:00
Ben Vanik ade5388728 bool-ifying xe::cpu 2015-05-05 18:52:54 -07:00
Ben Vanik 499bed21c0 Moving debugger. 2015-05-05 18:52:53 -07:00
Dr. Chat 2e9aec194f Ctrl+C Ctrl+V 2015-05-05 16:00:41 -05:00
Dr. Chat 26d8858684 Emulated vector shr 2015-05-05 15:58:51 -05:00
Dr. Chat cb127ae9ba Emulate some vector arithmetic opcodes (until we get a native implementation) 2015-05-05 15:39:37 -05:00
Dr. Chat cff09a4509 OPCODE_VECTOR_SHA and SPLAT_I16 for non-AVX2 CPUs 2015-05-05 14:35:37 -05:00
gibbed 3249f84700 It's vpblendw. 2015-05-05 13:58:21 -05:00
gibbed 6694461698 Fixed ecx restore in EmitShlXX/EmitShrXX/EmitShaXX. 2015-05-05 13:58:03 -05:00
Ben Vanik 743e01209b Update x64_sequences.cc 2015-05-05 10:23:04 -07:00
Dr. Chat c3f1e74814 And actually use vpblendw 2015-05-05 12:16:38 -05:00
Dr. Chat c1f9952cbd PERMUTE_I32 Alternative instructions 2015-05-05 12:16:31 -05:00
Dr. Chat 0e836f2eec Fix CNTLZ (I think)
SAR alt. instruction
2015-05-05 08:53:41 -05:00
Ben Vanik 442e5f2840 clang-format 2015-05-04 20:24:02 -07:00
Ben Vanik 0f14575592 Shrinking debug info. 2015-05-04 20:24:02 -07:00
Dr. Chat bb398f32ca Guard test code with __try __except 2015-05-04 20:12:02 -05:00
Ben Vanik 78921c1a7e Merging Runtime into Processor. 2015-05-03 22:28:25 -07:00
Ben Vanik 4c8f3501ad Removing xdb and old tracing code before rewrite. 2015-05-03 22:01:31 -07:00
Ben Vanik d1ee1512b9 Fixing most clang-format errors. 2015-05-03 10:27:50 -07:00
Dr. Chat b87b7472e0 Fix splat w/ F32 2015-05-02 09:32:21 -05:00
Dr. Chat 850e80396f Whoops (again) 2015-05-02 09:32:13 -05:00
Dr. Chat 7844dfa034 Corrected vec splat alt. instructions 2015-05-02 09:32:03 -05:00
Dr. Chat b4025c889a whoops 2015-05-02 09:31:52 -05:00
Dr. Chat c464584e89 CNTLZ alternative instructions 2015-05-02 09:31:43 -05:00
Dr. Chat 414e5b2d30 Replaced some AVX2 instructions with non-AVX2 instructions if unsupported by CPU 2015-05-02 09:31:31 -05:00
Dr. Chat cad6ca6148 Include host CPU information in x64 emitter
Conflicts:
	src/xenia/cpu/backend/x64/x64_emitter.cc
2015-05-02 09:31:01 -05:00
Ben Vanik e3220f7ae6 Code cleanup: moving poly/ into xenia/base/ 2015-05-02 03:42:51 -07:00
Ben Vanik 99816056be Code cleanup: removing poly.h 2015-05-02 02:29:26 -07:00
Ben Vanik 642259e16f Code cleanup: moving ExportResolver to xe::cpu 2015-05-02 02:11:11 -07:00
Ben Vanik d76998915a Code cleanup: moving poly logging to xenia 2015-05-02 01:59:50 -07:00
Ben Vanik 4d15b2296e Code cleanup: removing config.h and cleaning up platform.h 2015-05-02 01:41:39 -07:00
Ben Vanik 30f7effa73 Code cleanup: removing common.h 2015-05-02 01:25:59 -07:00
Ben Vanik 727ffaa122 Various fixes and utilties. 2015-05-02 00:26:03 -07:00
Ben Vanik ec84a688e9 Starting to properly attribute virtual vs. physical memory accesses. 2015-03-29 11:11:35 -07:00
Ben Vanik 3a197705bb Special memory functions for system allocs. 2015-03-28 15:54:44 -07:00
Ben Vanik 71eabf7f2b Fixing some misc bugs. 2015-03-28 15:45:39 -07:00
Ben Vanik 6bf84d832f fresx and some vec128 constant prop. 2015-03-25 19:17:16 -07:00
Ben Vanik 40591a5376 Fixing builtins. 2015-03-24 20:00:51 -07:00
Ben Vanik 281abea955 Converting addresses in xe::cpu to 32bit. 2015-03-24 19:41:29 -07:00
Ben Vanik 3279776a80 Moving cpu/frontend/ppc/ to cpu/frontend/. 2015-03-24 08:37:00 -07:00
Ben Vanik 9281d62106 Moving cpu/runtime/ to cpu/. 2015-03-24 08:25:58 -07:00
Ben Vanik 29912f44c0 Moving alloy/ into xenia/cpu/ to start simplifying things. 2015-03-24 07:46:18 -07:00
Ben Vanik f9a3f0c48e Fix broken VirtualProtect reset on ClearWriteWatch. 2015-02-02 23:07:17 -08:00
Ben Vanik 00e4a4fe1b Fix #include format. 2015-01-31 22:49:47 -08:00
Ben Vanik b8bb338564 Removing IVM. 2015-01-19 12:35:43 -08:00
Ben Vanik 0529fdb84d Basic hacky write watching for texture invalidation. Doesn't scale. 2015-01-04 16:28:42 -08:00
Ben Vanik a0eebf8898 Removing old run loop/ref/core/etc. 2014-12-31 19:26:51 -08:00
Ben Vanik 262712d4e9 Fixing livelock caused by lf stuff (or at least making it harder to hit). 2014-10-26 19:05:30 -07:00
Ben Vanik 447b5bf316 Fixing xex loading into 4k pages. 2014-09-13 19:32:37 -07:00
Ben Vanik a337ce33ed Getting ppc tests building again (big surprise: they are failing). 2014-09-09 20:25:38 -07:00
Ben Vanik 6f802c2432 Fixing many clang warnings. 2014-08-21 23:10:08 -07:00
Ben Vanik 244e8a8745 Removing the last of XEDECLARECLASS. 2014-08-20 22:50:10 -07:00
Ben Vanik cecf83b7b7 Removing xenia/malloc.*
Using standard memory functions now.
2014-08-20 22:22:47 -07:00
Ben Vanik 48a0e5c601 Shrinking alloy memory interface so that alloy-sandbox doesn't need xe. 2014-08-19 21:02:15 -07:00
Ben Vanik 41f3c92c25 Fixing build. 2014-08-19 19:41:29 -07:00
Ben Vanik b870914795 Removing use of MEMORY_BASIC_INFORMATION. 2014-08-18 22:12:21 -07:00
Ben Vanik 24fe169f36 Last bit of string cleanup. string.h finally gone. 2014-08-17 11:48:29 -07:00
Ben Vanik f2a9fa3bf9 XECOUNT to countof. 2014-08-16 17:58:33 -07:00
Ben Vanik 5b83cf5fd1 Moving around some math macros. 2014-08-16 17:18:20 -07:00
Ben Vanik 54ce9db743 Starting to remove some macros. 2014-08-16 16:57:00 -07:00
Ben Vanik bca49bed4b Removing xe_mutex_t. 2014-08-16 00:56:50 -07:00
Ben Vanik 48fbefa75e Fixing warnings/bug in NtQueryVirtualMemory. 2014-08-15 22:27:07 -07:00
Ben Vanik c275562594 Mostly complete tracing. Probably a lot of bugs. 2014-08-15 22:02:08 -07:00
wszechpolak 50684f8f0d Implemented NtQueryVirtualMemory 2014-08-15 08:14:57 +02:00
Ben Vanik 1d7b08b85b dlmalloc does not fail when it runs out of memory... 2014-08-05 12:05:27 -07:00
Ben Vanik 296bb5c87a Dummy IRQL stuff to silence warnings. 2014-08-04 15:39:42 -07:00
Ben Vanik 3f2baafb4b mmap, but ehh virtualquery... 2014-08-01 21:43:52 -07:00
Ben Vanik 4ad7662ef7 Fixing MMIO build on Windows. 2014-08-01 20:29:57 -07:00
Ben Vanik 0129a96225 Cross-platformizing MMIO stuff.
MSVC build likely needs some fixes.
2014-07-29 22:12:39 -07:00
Ben Vanik ec4f41fec4 Moving byte order/memory access to poly. 2014-07-17 19:20:17 -07:00
Ben Vanik 29e4c35c38 Removing alloy::tracing, as it's unused. 2014-07-13 21:25:58 -07:00
Ben Vanik 9437d0b564 Sprucing up some of alloy. 2014-07-13 21:15:37 -07:00
Ben Vanik 48425da8ff Sandbox getting close to running. 2014-07-12 22:59:16 -07:00
Ben Vanik 9b78dd977b Migrating atomic ops to std::atomic where possible and poly. 2014-07-12 17:48:54 -07:00
Ben Vanik bf882714d0 Cleaning up asserts and file/line macros. 2014-07-12 16:51:52 -07:00
Ben Vanik c5f114018e Replacing alloy::Mutex with std::mutex. 2014-07-09 22:28:51 -07:00
Ben Vanik 6b197c4c92 Removing the debugger and dependencies. Needs rethinking. 2014-07-09 21:21:40 -07:00
Ben Vanik d5f27dbf34 Better arg passing for Execute and experimenting with APCs. 2014-07-02 15:39:49 -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 43a3b4f3c0 Support constant value movs to mmio memory. 2014-06-08 22:21:23 -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 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 ef5f59ed0b I seem to relearn blr != return once every month or so. 2014-02-02 14:35:16 -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 7fe0a10d43 Adding back --break_on_instruction. 2014-01-26 11:16:55 -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 8ae6053d0f Deleting LIR and such, wiring up for HIR->x64. 2014-01-24 22:26:15 -08:00
Ben Vanik f36e6cd820 Removing JSON dumps. 2014-01-23 20:31:26 -08:00
Ben Vanik 0bc49621d4 Properly parsing resource infos and implementing XexGetModuleSection. 2014-01-19 00:53:22 -08:00
Ben Vanik faa75c9407 Making debug info toggles a flag to allow finer control. 2014-01-13 21:12:10 -08:00
Ben Vanik d224dd94c1 Fixing log_heap printing a bit, though damn this stuff is nasty. 2014-01-12 15:43:54 -08:00
Ben Vanik eb5d7e0f31 Comments. 2014-01-12 14:43:59 -08:00
Ben Vanik 6129e1eb7a Simplifying macros to fix VS' broken preprocessor. 2014-01-12 14:06:00 -08:00
Ben Vanik c7c83ea900 Fixing --log_heap 2014-01-12 11:09:52 -08:00
Ben Vanik 127595b48a Issuing audio driver callbacks from their own thread. 2014-01-12 02:07:17 -08:00
Ben Vanik de113a4a05 Adding thread stack padding. 2014-01-05 16:22:49 -08:00
Ben Vanik e8ca05ca0a MmQueryAllocationSize. 2014-01-05 11:19:02 -08:00
Ben Vanik 4d92720109 Moving all kernel files around just to fuck with whoever's keeping track ;) 2014-01-04 17:12:46 -08:00
Ben Vanik 615229bd87 Minor fixes and debug helpers to track externs. 2014-01-04 13:20:19 -08:00
Ben Vanik 93ea56179a Moving LoadAcquire/StoreRelease behavior up into HIR. 2014-01-04 00:50:48 -08:00
Ben Vanik 85dec3bf44 Fixing unused member and duplicate member. 2013-12-25 20:43:23 -08:00
Ben Vanik 5fef117aa0 Register display. 2013-12-25 20:14:41 -08:00
Ben Vanik a1da55a006 Threads displayed. 2013-12-25 17:31:53 -08:00
Ben Vanik d368e0cb74 Caching function list and only sending deltas. 2013-12-25 07:00:42 -08:00
Ben Vanik 44cbe1bbcf Finishing off module info for now. 2013-12-24 22:08:44 -08:00
Ben Vanik dcd9f8b6ff Module info in json. 2013-12-24 17:25:29 -08:00
Ben Vanik 8a8ee5dadc Starting modal for module info. 2013-12-24 14:09:19 -08:00
Ben Vanik 98efc7ddfa Suspend/resume working. 2013-12-23 19:46:35 -08:00
Ben Vanik 475ddc1fcf Breakpoint hits reaching all the way to UI.
Nasty json only hackery right now, but fixable to support other protocols.
2013-12-23 14:01:13 -08:00
Ben Vanik 5e9a2c6d27 Client-specific debug state. 2013-12-22 19:58:00 -08:00
Ben Vanik 7098ed3b02 Plumbing breakpoints down into alloy Debugger interface. 2013-12-22 17:50:14 -08:00
Ben Vanik e45a7afabc MakeReady behavior. 2013-12-22 16:48:50 -08:00
Ben Vanik 9208132ad9 Load map files and set function names. 2013-12-22 14:04:41 -08:00
Ben Vanik d861ef8aab Prettier ppc disasm. 2013-12-22 13:06:15 -08:00
Ben Vanik de6dc92663 Only generate debug info when in --debug mode (or asked). 2013-12-22 09:50:31 -08:00