Commit Graph

1088 Commits

Author SHA1 Message Date
Dr. Chat b852ce75df Write a dummy value into unresolved import variables. 2015-07-03 19:00:07 -05:00
Dr. Chat e58bb5ad9f ReImplement XexModule::GetProcAddress 2015-07-03 18:29:14 -05:00
Dr. Chat d616231c8b Trigger a PPC debug trap if an unresolved import is called. 2015-07-03 18:03:33 -05:00
Dr. Chat 0211135fd6 Fix potential corruption for GetOptHeader 2015-07-03 10:41:43 -05:00
Dr. Chat 362a521c79 Rewrite XexModule to drop dependency on old xex2 headers for imports 2015-07-03 08:17:23 -05:00
Dr. Chat 029babaf5d Drop dependency on old-style xex2 headers 2015-07-03 08:15:53 -05:00
Dr. Chat fe87c08424 Shuffle some code around. 2015-07-03 08:15:53 -05:00
Ben Vanik dec0d12cc9 Replacing includes of windows headers with base/platform.h. 2015-07-01 09:02:04 -07:00
Ben Vanik 1106029afc _wfopen -> xe::filesystem::OpenFile.
Progress on #305.
2015-06-28 17:33:46 -07:00
Ben Vanik e05cc3ba37 x64_sequences can now be run through clang-format.
Progress on #291.
2015-06-28 15:04:24 -07:00
Ben Vanik 5ca8caa9a7 Allowing thread stacks from the entire 0x4-0x7 range. 2015-06-28 14:34:11 -07:00
Ben Vanik 0359184bc0 Simplifying the sequences code to start refactoring.
Progress on #291.
2015-06-28 12:01:47 -07:00
Ben Vanik 0630b524fa Removing unused HIR opcodes.
Progress on #291.
2015-06-28 12:01:46 -07:00
Ben Vanik 3745746fcc Shuffling around thunk emitter.
Progress on #291.
2015-06-28 12:01:45 -07:00
Ben Vanik 5e950cb066 Fixing VS intellisense for xbyak.
Progress on #291.
2015-06-28 12:01:45 -07:00
Ben Vanik 8c69a4df09 Cleaning up apu/ and renaming -private files to _flags.
Part of #296.
2015-06-27 11:25:56 -07:00
Ben Vanik 3439641101 Removing cpu.h.
Part of #296.
2015-06-27 08:58:45 -07:00
Ben Vanik 12120262b8 Adding non-win8 API for unwind info, but it doesn't work :/
Working on #295.
2015-06-26 21:50:32 -07:00
Lioncash 23352f3419 xex_module: Fix formatting arguments
These take a const char* not a std::string.
2015-06-25 12:48:41 -04:00
Ben Vanik d335555277 Manually page align address range for write watch. 2015-06-23 17:37:09 -07:00
Ben Vanik fb1f4906d9 xb format --all (we are now format clean). Buildbot will yell at you. 2015-06-22 22:26:51 -07:00
Ben Vanik fb591cbadb Disabling use of FMA until I can figure out the rounding issues. 2015-06-20 11:21:32 -07:00
Ben Vanik 03f2d26afd Fixing tests with no debugger attached. 2015-06-19 21:53:49 -07:00
Drew DeVault a064ba053e Add missing includes for cstring 2015-06-16 23:16:18 -06:00
Ben Vanik aae45515ae Preserving HIR disasm when the debugger is attached. 2015-06-16 21:04:18 -07:00
Ben Vanik 165d49ad3a Moving PPC disasm to on-demand in debugger. 2015-06-16 20:18:48 -07:00
Ben Vanik 5f33087a12 Adding mmap for code cache and exposing cache properties. 2015-06-16 20:13:39 -07:00
Ben Vanik c34db170f5 Adding fallback for pre-MOVBE-supporting processors. 2015-06-16 20:06:50 -07:00
gibbed 54a7b8c591 Assert symbol_info is not null in X64Emitter::Call. 2015-06-16 20:41:25 -05:00
Ben Vanik b9c341ebef Yell at the user when they have an unsupported CPU. 2015-06-16 17:46:41 -07:00
Ben Vanik 51eeb4f039 Using upstream xbyak movbe. 2015-06-15 20:44:13 -07:00
Ben Vanik 2a6ada2a3c Optimization to merge LOAD+SWAP and SWAP+STORE into flagged opcodes. 2015-06-15 18:59:29 -07:00
Ben Vanik ddaf08ca8d Adding flag to make LOAD/STORE also perform a byte swap. 2015-06-15 18:59:28 -07:00
Ben Vanik 0ffd8bbedd Place all XMM constants in memory so we can avoid clobbering rax. 2015-06-15 18:59:27 -07:00
Ben Vanik edaebbf00f Adding call address assert. 2015-06-14 00:09:58 -07:00
gibbed c949c1d303 Support src1 and src2 being a constant in OPCODE_EXTRACT. 2015-06-14 02:08:41 -05:00
Ben Vanik 3870dabcee Replacing LoadZero and LoadConstant with explicit types. 2015-06-13 23:42:38 -07:00
Ben Vanik 6d4d1db310 Example of Capstone for both libxenia and the UI. Going to shuffle around. 2015-06-10 23:31:33 -07:00
Ben Vanik 9c58426231 Speeding up source map lookup for x64 disasm. 2015-06-10 00:29:07 -07:00
Ben Vanik 14e1438ec0 Dramatically speeding up HIR comments. 2015-06-10 00:28:02 -07:00
Ben Vanik 070d34cd02 Fiddling with function data. 2015-06-09 22:01:01 -07:00
Ben Vanik d482885378 Debugger can pause/resume threads. 2015-06-09 20:14:35 -07:00
Ben Vanik 8dc20eb5cd Scaling audio playback frequency with clock time scaling. 2015-06-09 20:14:33 -07:00
gibbed 38c85084ff Tests for vsl. 2015-06-09 19:56:26 -05:00
gibbed e5c4590ecf Few more tests for vsr. 2015-06-09 19:56:12 -05:00
gibbed 6d933c18f7 SHL_V128. 2015-06-09 19:55:54 -05:00
Ben Vanik f0c47e036b Fixing SHR_V128. 2015-06-09 17:42:09 -07:00
gibbed 114409ea2f Test for vsr. 2015-06-09 19:31:44 -05:00
Ben Vanik dbcdc5b543 Function lookup is slow - replacing with a faster test. 2015-06-08 23:44:38 -07:00
Ben Vanik 1a2b4a38e0 Fixing spurious function declarations. 2015-06-08 23:37:51 -07:00
Ben Vanik 573f190a43 Adding modules/functions to the debugger. 2015-06-08 23:22:25 -07:00
Ben Vanik 52b8f4b54b Removing memory reservation value check for load/store. 2015-06-07 21:57:44 -07:00
Ben Vanik cd62d4e461 PACK to 2101010. 2015-06-07 19:44:19 -07:00
gibbed 4a796627f2 Added --break_condition_gpr, --break_condition_value, --break_condition_truncate for use with --break_on_instruction. 2015-06-07 17:50:43 -05:00
Ben Vanik 889f29c18a Fixing CFG to remove unreachable blocks and properly maintain dominators. 2015-06-07 15:14:14 -07:00
Ben Vanik 10e8d0bd9b Fixing constant comparison. 2015-06-07 11:42:20 -07:00
Ben Vanik 338456f7e4 Adding missing test files. 2015-06-07 11:22:42 -07:00
gibbed 0772eec4b1 Fixing branches to the test function in the jumptable constants test. 2015-06-07 13:15:36 -05:00
gibbed 32ca1d1953 @ha @h. 2015-06-07 12:52:16 -05:00
gibbed be7900614b Basic tests for td, tdi, tw, twi. 2015-06-07 12:51:36 -05:00
gibbed 43b0cd6eae Added test reproducing an issue with constants, jumptables and traps. 2015-06-07 06:48:23 -05:00
Ben Vanik 6edf4f898f Gracefully skipping noaccess constant loads. 2015-06-06 22:56:53 -07:00
Ben Vanik 429698c2ec Replacing DidCarry with manual calculation and fixing compares. 2015-06-06 15:24:46 -07:00
Ben Vanik 6b52f6715a Adding tests for branch/carry and logging disasm on test failure. 2015-06-06 10:59:43 -07:00
Dr. Chat 4c3297441c Log debugprint traps to the debugger, if attached 2015-06-06 00:50:51 -05:00
gibbed 54e8868160 Some (hopefully correct) constant fixes for MUL_ADD_V128, MUL_SUB_V128, and SWIZZLE V128. Needs extra work on AVX2 side. 2015-06-05 23:29:31 -05:00
Ben Vanik a9e2ba16fb Optimizing page allocation (still shit) and adding MmSetAddressProtect. 2015-06-03 21:24:09 -07:00
Dr. Chat 809c327041 Emulate PACK/UNPACK for non-F16C CPUs 2015-06-03 22:33:45 -05:00
Ben Vanik 40a6a12800 Attempting to inline a lot of MMIO operations. Works for GPU stuff mainly. 2015-06-02 20:15:43 -07:00
Ben Vanik c516447ae1 Misc stubs. 2015-06-02 00:14:24 -07:00
Ben Vanik 19cb13692b Fixing undefined export names. 2015-06-01 22:12:11 -07:00
Ben Vanik 5c34b0a73e Fixing printfs and fixing exports. link.exe is too good. 2015-06-01 21:40:53 -07:00
Ben Vanik 23826fa957 Initial experiment with new kernel export format. 2015-06-01 18:19:42 -07:00
Ben Vanik ce3359389b Allow new-style export registration. 2015-05-31 17:54:44 -07:00
Ben Vanik 08770a4ec0 Mass renaming. I love clang-format. 2015-05-31 16:58:12 -07:00
Ben Vanik 9c3d2b54fb Cleanup before kernel export refactor. 2015-05-31 16:31:19 -07:00
Ben Vanik fccab79a7a Adding kernel state pointer to PPCContext. Still needs larger cleanup. 2015-05-31 14:35:56 -07:00
Ben Vanik d816d80190 StringBuffer cleanup. 2015-05-31 14:35:30 -07:00
Ben Vanik c97b462d8d Fix assert. 2015-05-30 18:04:31 -07:00
Ben Vanik d97a6d1929 NtReadFile APC, somewhat. 2015-05-29 21:24:23 -07:00
gibbed d1dbee2052 Consistency in memset calls. 2015-05-28 05:28:59 -05:00
Ben Vanik a93325434a Minor audio tweeks + profiling. 2015-05-28 00:19:17 -07:00
Ben Vanik 8244409501 Refactoring to enable future time scaling, coordinated clocks, etc. 2015-05-26 22:20:58 -07:00
Shawn Hoffman b6d51d86ee vs2015 supports constexpr 2015-05-26 14:25:45 -07:00
Ben Vanik dcb78cc640 Pretty sure I have mtmsrd wrong. This likely isn't correct. 2015-05-25 21:20:38 -07:00
Ben Vanik 41cee3d337 Switching vsync to custom thread. 2015-05-25 21:12:27 -07:00
gibbed f2685dbb1d Fixed SPLAT_F32 for non-AVX2 branch. 2015-05-25 14:32:38 -05:00
Ben Vanik 148c40554b Adding vmsum4fp128 test. 2015-05-25 12:28:32 -07:00
Ben Vanik c616104574 Tracing help. 2015-05-25 11:09:00 -07:00
Ben Vanik f5a2b85d42 Switching to xe::mutex. 2015-05-25 00:52:21 -07:00
Ben Vanik 1104f8e687 Header cleanups and prep. 2015-05-25 00:51:25 -07:00
Ben Vanik e55be7d2c9 Fleshing out debugger types. 2015-05-25 00:51:23 -07:00
Ben Vanik 576d6492dc Basic debugger networking. 2015-05-25 00:51:22 -07:00
gibbed 05081fa030 Fixed some constant loads. 2015-05-24 16:18:06 -05:00
gibbed 33d40bee95 More tests for rlwinm. 2015-05-24 12:32:23 -05:00
Riley Labrecque 23c91b2eff Remove test binaries now that they can be created on Windows 2015-05-24 01:23:14 -06:00
Dr. Chat a4b950f1e9 Fix vmaddfp test 2015-05-23 18:14:07 -05:00
Dr. Chat f7a8dc3748 Change OPCODE_SPLAT instructions from SSE->AVX 2015-05-23 17:27:26 -05:00
gibbed 8b7f6c8e0c Tests for vmaddfp. 2015-05-22 01:32:22 -05:00
gibbed c3082381c5 Tests for fmadds. 2015-05-22 01:31:50 -05:00
gibbed 45cd0e4f8f Adjustments to fmadd tests. 2015-05-22 01:30:44 -05:00
Ben Vanik bac3f8c3bd Fixing tests. 2015-05-21 07:51:56 -07:00
Ben Vanik fc4727c339 Changing calls/jmps to use the indirection table. Most games seem faster. 2015-05-21 00:12:28 -07:00
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
Ben Vanik c92142ca02 Displaying (unformatted) function code. 2013-12-22 09:25:44 -08:00
Ben Vanik 4ecdfed46f Function listing and selection. 2013-12-22 02:59:42 -08:00
Ben Vanik a631ada0f7 Routing messages to debug targets. 2013-12-22 00:51:50 -08:00
Ben Vanik f9cd87811d Some games seem to write to 0x0... damn. 2013-12-15 15:31:32 -08:00
Ben Vanik 9fdacebf2d Better handling of undefined imports. 2013-12-15 15:26:12 -08:00
Ben Vanik 2549292a57 Return address handling. Not happy with the design, but it (sorta) works. 2013-12-08 13:58:57 -08:00
Ben Vanik e2e2a392ee Scanner now picks up restgprlr calls. 2013-12-08 11:26:43 -08:00
Ben Vanik fdb6a5cfa3 Initial Alloy implementation.
This is a regression in functionality and performance, but a much better
foundation for the future of the project (I think). It can run basic
apps under an SSA interpreter but doesn't support some of the features
required to do real 360 apps yet.
2013-12-06 22:57:16 -08:00
Ben Vanik 1e86736853 vaddfp and vrfin 2013-11-16 06:58:50 -08:00
Ben Vanik 96c27b3b51 Fixing stack alignment in release mode. 2013-11-16 02:52:33 -08:00
gibbed f7b7b0708b Argh. 2013-10-27 18:45:19 -07:00
gibbed 8306be77b0 Fixed constant tracking through mr. 2013-10-27 18:44:20 -07:00
Ben Vanik 692e14665c Tie FPR/VR tracing to --trace_registers 2013-10-25 23:32:11 -07:00
Ben Vanik 6e60aef72f Special register check for lwbrx. Need a scalable way to do this. 2013-10-23 21:10:26 -07:00
Ben Vanik b7ffd46319 Massive refactoring of all code + audio skeleton.
This should make it easier to find files and (in the future) split things
up into separate libraries.
It also changes around emulator initialization to make it a little more
difficult to do things out of order and a little more sensible as to when
real init work happens.
Also adding a skeleton audio system/driver and reworking CPU register
access to be more extensible.
2013-10-23 20:42:24 -07:00
Ben Vanik d9a55a5557 Zero memory on alloc. 2013-10-22 21:50:10 -07:00
Ben Vanik ca208fa60a Rewrote memory manager to use a bunch of mapped views. 2013-10-20 23:19:57 -07:00
Ben Vanik 42a8fc0b59 --break_on_instruction=0x... and --break_on_memory=0x... 2013-10-20 16:54:59 -07:00
Ben Vanik 737a567de6 Fixing code_addr_low_. 2013-10-19 22:31:08 -07:00
Ben Vanik bdf5bf20a4 vminfp/vmaxfp 2013-10-19 21:26:40 -07:00
Ben Vanik 2cce46c232 vsel/vsel128 2013-10-19 21:20:27 -07:00
Ben Vanik d62e8aaf78 lhbrx/lwbrx/ldbrx/sthbrx/stwbrx/stdbrx 2013-10-19 21:05:06 -07:00
Ben Vanik d60cf676c3 addmex 2013-10-19 20:57:24 -07:00
Ben Vanik 5b91ba89e9 Fixing stdux/stdx o_o 2013-10-19 20:57:19 -07:00
Ben Vanik 7ae2d410e5 addex. All of these are wrong - let's hope we don't overflow. 2013-10-19 20:29:19 -07:00
Ben Vanik 4e6799197f fsqrtx/fsqrtsx 2013-10-19 20:25:03 -07:00
Ben Vanik e842a6614a Fixing LR argument for indirect branches. 2013-10-19 19:59:09 -07:00
Ben Vanik 10c69cfaf2 rlwnmx 2013-10-19 19:07:26 -07:00
Ben Vanik 807b949fea Seeing code returning to the execution thunk, something must have broken. 2013-10-19 19:03:47 -07:00
Ben Vanik 4a72010e5f addcx 2013-10-19 19:03:30 -07:00
Ben Vanik fc1be2bfd8 rldimix 2013-10-19 18:54:36 -07:00
Ben Vanik 14b1c860b9 subfmex/subfzex. 2013-10-19 18:33:32 -07:00
gibbed 49ee9d05b9 Fixed LR branching. 2013-10-19 17:09:48 -07:00
Ben Vanik 7b0ca71bfb Fixing broken test. 2013-10-19 17:08:34 -07:00
gibbed f15b5dae9d I think this is right. 2013-10-19 15:07:59 -07:00
Ben Vanik f7ad9c89dd Messing with stvlx. 2013-10-19 14:36:32 -07:00
Ben Vanik 91e6c4ed9a Adding address mask to stvlx. 2013-10-19 14:29:14 -07:00
Ben Vanik 31161e0245 SHUFPS_SWAP_DWORDS to make it easier to tell what it's doing. 2013-10-19 14:21:56 -07:00
Ben Vanik 5df538cd44 Adding stack alignment check. We aren't 16b aligned right now. Fuck. 2013-10-19 14:16:34 -07:00
Ben Vanik 007f7e371d Workaround for yet another AsmJit bug. Sigh. 2013-10-19 12:50:42 -07:00
Ben Vanik 90bc6ad1a8 Interrupts fire on the right 'thread', ringbuffer work, 2013-10-19 11:50:01 -07:00
gibbed 32a0045001 This is probably better. 2013-10-19 01:18:18 -07:00
Ben Vanik 0746e6feb2 ldarx/lwarx/stdcx/stwcx. Probably. 2013-10-18 21:17:20 -07:00
Ben Vanik 28e7102a02 Always dump CPU info and assert our dummy thread value is legit. 2013-10-18 18:56:59 -07:00
Ben Vanik c53db98517 Locking around some JIT stuff.
Excessive for now, but safer.
2013-10-16 21:32:20 -07:00
gibbed 309d1621e5 Attempt at a fix for crashes occuring when not using instruction/branch tracing. 2013-10-16 18:55:21 -07:00
Ben Vanik 6cda645911 Adding instruction address identifier when not tracing.
This can be removed later.
2013-10-14 21:53:34 -07:00
Ben Vanik 80e3e6fa14 Ignoring unimplemented disasm functions by default. 2013-10-14 21:34:13 -07:00
Ben Vanik 963667f65c Forcing bl to function calls. 2013-10-14 21:33:54 -07:00
Ben Vanik 929ea13548 Emulated vslb. 2013-10-14 18:33:17 -07:00
Ben Vanik 1eba1fb5c2 vspltb 2013-10-14 18:21:26 -07:00
Ben Vanik 5bed1069f8 mulhwx/mulhwux 2013-10-14 17:49:21 -07:00
Ben Vanik 1e66e39efc divdux/mulldx 2013-10-14 17:30:25 -07:00
Ben Vanik 16020df6a2 mfcr disasm. 2013-10-14 00:48:23 -07:00
Ben Vanik 76ca76bb67 Disabling hole filling in the SDB.
This was required when the AOT CPU was built, but isn't needed now.
2013-10-14 00:39:13 -07:00
Ben Vanik 602ed5393e vspltisb/ldarx/stdcx.
ldarx/stdcx are just as faked as the w equivalents.
2013-10-14 00:13:40 -07:00
Ben Vanik 72b54cfe2a Fixing recursion branches. 2013-10-13 22:59:19 -07:00
Ben Vanik b28c51271d A bunch of disasm instructions used by some games. 2013-10-13 22:53:33 -07:00
Ben Vanik 83d7523da1 Fixing lvrx. 2013-10-12 15:06:16 -07:00
Ben Vanik 99bde2d67e Fixing terrible vsldoi implementation. Still terrible. 2013-10-06 17:45:59 -07:00
Ben Vanik 87481f5f4c Fixing vperm. 2013-10-06 16:25:41 -07:00
Ben Vanik b77403e754 Fixing lvsl/lvsr. 2013-10-06 16:25:23 -07:00
Ben Vanik 74692232c9 Add trace thread mask.
Makes seeing only thread 1 easier.
2013-10-06 14:35:03 -07:00
Ben Vanik 1fecb95512 Switching altivec disasm to die on failure. 2013-10-06 12:35:24 -07:00
Ben Vanik debf21437e Untested emulated stvlx/stvrx. 2013-10-06 11:22:35 -07:00
Ben Vanik e5ca996a08 Xmm read/write cleanup. 2013-10-06 11:21:50 -07:00
Ben Vanik 9ebbc3535f vsldoi. 2013-10-06 11:21:38 -07:00
Ben Vanik cdb13775e2 Alignment option in xmm read/write. 2013-10-06 10:25:41 -07:00
Ben Vanik 26e22e2b16 Untested and nasty emulated vperm. 2013-10-06 10:25:30 -07:00
Ben Vanik 2b798df631 lvsl/lvsr/lvlx/lvrx 2013-10-06 09:48:42 -07:00
Ben Vanik e8429b75e0 Significantly faster byte swapping on xmm read/write. 2013-10-04 22:29:19 -07:00
Ben Vanik d3bf7813ea Improve perf of vcmp cr6 update. 2013-10-04 13:32:11 -07:00
Ben Vanik e2842ea4b4 fmaddsx, fmsubx, fmsubsx, fcmpu. 2013-10-04 10:30:57 -07:00
Ben Vanik 091957e72e Untested srawx/sradix (makes things run further, at least). 2013-10-04 09:34:36 -07:00
Ben Vanik 0f5d0d992d vupkd3d d3dcolor (untested). 2013-10-03 21:06:40 -07:00
Ben Vanik 611902a97e Fixing vspltw and vrlimi. 2013-10-03 20:19:11 -07:00
Ben Vanik bdb5b0eae2 Fixing alignment of xmm load/store. 2013-10-03 20:18:56 -07:00
Ben Vanik 6d46b51ed4 A few vcmp*'s, float_16_to_32 bit of vupkd3d128 (untested). 2013-10-02 23:25:05 -07:00
Ben Vanik 21d273e85b Tracing FPRs and random fixes. 2013-09-30 22:43:29 -07:00
Ben Vanik 37caa5cea1 vnmsubfp, fixing vrlimi128. 2013-09-30 21:14:23 -07:00
Ben Vanik f5b99d7448 Fixing some altivec instruction decode issues. 2013-09-30 17:54:49 -07:00
Ben Vanik 26ec76ef35 A lot of progress on altivec instructions.
Some bad results, still, and some instructions are not decoding right.
2013-09-29 21:05:48 -07:00
Ben Vanik 3662118246 vmaddfp/vmaddcfp/vmulfp/vsubfp. 2013-09-29 00:02:25 -07:00
Ben Vanik 5652a150e1 vand/vnor/vor/vxor. 2013-09-28 23:45:16 -07:00
Ben Vanik 526b1a85b7 Simple altivec loads/stores. 2013-09-28 23:14:43 -07:00
Ben Vanik f398ccba56 Skeleton emitter file. 2013-09-28 19:52:33 -07:00
Ben Vanik 51184f73ea Disassembling a few instructions. 2013-09-28 19:37:34 -07:00
Ben Vanik f4f66ff7f1 Beginning Altivec disassembly/emitting. 2013-09-28 09:14:04 -07:00
Ben Vanik 3e0d9af57e Placeholders for memory access breakpoints. 2013-09-25 20:13:43 -07:00
Ben Vanik 03a68d4c49 PerformanceCounter. 2013-09-25 18:36:34 -07:00
Ben Vanik 91f62918f6 Adding vblank interrupt. 2013-09-25 00:46:09 -07:00
Ben Vanik 998467ce05 Fixing cntlzd. 2013-09-25 00:21:41 -07:00
Ben Vanik d5b8a2091a Switching tracing order to prevent skipping traces of branch instructions. 2013-09-06 23:21:08 -07:00
Ben Vanik 39ef8d8263 Properly using XapiThreadStartup routines, if present. 2013-06-30 10:27:06 -07:00
Ben Vanik c9a39a8b62 Dumping module info on startup and logging unimplemented kernel calls. 2013-06-30 07:53:17 -07:00
Ben Vanik 6f602d120a Adding thread ID to trace lines and cleaning up their formatting. 2013-06-30 06:09:08 -07:00
Ben Vanik 052c70efce Fixing broken opcode 63 stuff. 2013-06-02 12:01:43 -07:00
Ben Vanik b3e93a0d1d srad.
Probably right.
2013-06-02 11:33:07 -07:00
Rick Gibbed fbaaebdb41 Oops. Tab! 2013-06-02 09:43:27 -07:00
Rick Gibbed b97b8226b2 Fixed a crash when adding a FunctionSymbol with a NULL address. 2013-06-02 07:57:38 -07:00
Rick Gibbed 105aee506d dcbf disasm. 2013-06-02 07:56:17 -07:00
Ben Vanik e00e665a09 Basic command buffer processing. 2013-06-01 21:49:14 -07:00
Rick Gibbed 3667821be3 ldarx & stdcx disasm. 2013-05-31 22:01:35 -07:00
Ben Vanik ef0032ecff Wiring up register read/write from JIT -> GPU. 2013-05-31 21:23:26 -07:00
Rick Gibbed edf3a9155b The stack address needs to start at the end of the allocated memory for the stack, not the beginning. 2013-05-31 20:55:52 -07:00
Ben Vanik 38efd3837d Adding support for detecting the save/rest fpr and vmx blocks. 2013-05-31 01:53:30 -07:00
Ben Vanik e6195c4086 fmadd, orc, extsh, extsw. 2013-05-31 01:00:00 -07:00
Ben Vanik 9bb36c7404 Fixing decoding of the rld* instructions. 2013-05-31 00:38:26 -07:00
Ben Vanik dc16653164 Fixing decoding of some of the opcode 63 instructions. 2013-05-31 00:09:10 -07:00
Ben Vanik 14c3b8a382 Adding a case for tail calls.
Still missing the forward tail call case, as there is legit code that
does weird branches like that.
2013-05-30 23:41:25 -07:00
Ben Vanik e7665c11eb Adding basic constant checks and updates to memory instructions.
Only those instructions likely to have immediate values have been updated.
It'd be nice to go further than this and a) centralize the ea calculations
b) move this all to the analysis pass c) generate mov's in Read/WriteMemory
using the immediates as bases instead of all the register work.

Also fixing a broken stwcx that was causing crashes.
2013-05-30 23:20:05 -07:00
Ben Vanik 78086684c6 Now tracking constant values for most operations.
This will make it easier to enable memory access optimizations and hacks.
Not all operations are updating the constant registers, only those that
are likely to participate in constant value building. Constant values are
cleared on every basic block, though this may be too zealous it prevents
weird fall-through cases.
2013-05-30 22:50:32 -07:00
Ben Vanik f307bc9eb1 Adding --target= and --trace_registers flags.
--target=[xex|iso] makes it possible to specify the thing to run from a
flagfile.
2013-05-29 21:45:54 -07:00
Ben Vanik 1d0ec64d40 Adding srd/srw. Fixing shamts in other shifts. 2013-05-27 05:35:41 -07:00
Ben Vanik 778efdb276 fcfid(z), fctid(z) -- both largely untested. 2013-05-27 05:22:38 -07:00
Ben Vanik 84fb802166 fadd(s), fdiv(s), fmul(s), fsub(s), fsel, frsp, fabs, fmr, fneg, fnmsubs. 2013-05-27 04:09:07 -07:00
Ben Vanik c10d719d53 Floating point loads/stores.
Seem correct. Maybe not.
2013-05-26 17:59:11 -07:00
Ben Vanik a09170b2c6 Fixing bad EA write order. 2013-05-26 17:49:37 -07:00
Ben Vanik a6db12b48f ldx/ldux. 2013-05-26 17:43:37 -07:00
Rick Gibbed 0ca44083e6 Stick the export ordinal in the dummy address for unimplemented export data, to make it obvious what it is when debugging. 2013-05-26 17:37:31 -07:00
Ben Vanik b5e729f89e sld. 2013-05-26 16:30:52 -07:00
Ben Vanik 924b08b264 cntlzd and fixing broken cntlzwx. 2013-05-26 16:30:43 -07:00
Ben Vanik 86396816f5 rldicl, rldicr. 2013-05-26 16:10:25 -07:00
Ben Vanik fd86370ccc Fixing warnings on mtmsr/mtmsrd disasm. 2013-05-26 15:03:36 -07:00
Rick Gibbed 1b3351b1e2 disasm for mfmsr, mtmsr, mtmsrd 2013-05-26 08:39:31 -07:00
Ben Vanik 82159b2b9d Adding lfd. 2013-05-26 07:19:09 -07:00
Ben Vanik 9d63eb7499 Fixing condition updates for unsigned compares. 2013-05-26 04:21:07 -07:00
Ben Vanik 5d83465ce4 Fixing branches via the indirection block.
Also disabling the local indirection optimization until it's implemented.
2013-05-26 03:59:32 -07:00
Ben Vanik 22f186d713 Better asserts/checks around bad function addresses. 2013-05-26 03:26:49 -07:00
Ben Vanik bf9e92c027 Fixing typo in disasm. 2013-05-26 02:48:31 -07:00
Ben Vanik 35ce144a37 Disasm of some memory routines. 2013-05-26 02:45:32 -07:00
Ben Vanik 6b851da9d7 Fixing analysis regression: don't analyze on gets during analysis pass. 2013-05-26 02:11:08 -07:00
Ben Vanik f94256aaaf Adding a simple heuristic to find leaf thunk functions. 2013-05-26 01:43:44 -07:00
Rick Gibbed 1640acaf8a mftb 2013-05-26 00:48:53 -07:00
Ben Vanik 7febbe0f86 Fixing <8b memory accesses. 2013-05-26 00:44:20 -07:00
Rick Gibbed 0855fe7014 addicx 2013-05-26 00:27:36 -07:00
Ben Vanik ab762e0009 Adding disassemblers for the fpu instructions. 2013-05-26 00:13:46 -07:00
Ben Vanik 4073028188 Very basic, super slow, nasty indirection. 2013-05-25 20:32:58 -07:00
Ben Vanik 2986a0be82 Removing debug int3. 2013-05-25 17:20:52 -07:00
Ben Vanik ce27fb333b Fixing rlwimix. 2013-05-25 17:08:31 -07:00
Ben Vanik bd8376e231 Making xenia-test run on Windows. 2013-05-25 05:20:28 -07:00
Ben Vanik edb3aabdd4 Removing llvm backend. 2013-05-25 04:28:21 -07:00
Ben Vanik eb22289dc7 Fixing bad fcmpu disasm. 2013-05-25 04:25:27 -07:00
Ben Vanik a5da226617 cntlzwx. 2013-05-25 03:23:33 -07:00
Ben Vanik de85adea2e divwx/divwux. 2013-05-25 02:49:44 -07:00
Ben Vanik 9f3f5d2c0e mullw. 2013-05-25 01:56:42 -07:00
Ben Vanik e29de199ff srawix. 2013-05-25 01:50:46 -07:00
Ben Vanik 8207bb8088 negx 2013-05-25 01:35:19 -07:00
Ben Vanik 07d0dd98b6 slwx, ignoring twi. 2013-05-25 01:31:38 -07:00
Ben Vanik ed401449b7 Only create the shared return block if required. 2013-05-25 00:45:16 -07:00
Ben Vanik da62ec56f9 Adding the ret required for tail calls. 2013-05-25 00:41:01 -07:00
Ben Vanik fb22aeb5ac Fixing assertion warnings from asmjit. 2013-05-25 00:40:30 -07:00
Ben Vanik eac03765db Adding addx. Whoops. 2013-05-25 00:07:35 -07:00
Ben Vanik 04485b6460 rlwimix/rlwinmx. 2013-05-24 23:34:52 -07:00
Ben Vanik ef3bd6cc53 Fixing disasm of subfic, fixing neg->not, fixing tests to use 8bits. 2013-05-24 23:03:35 -07:00
Ben Vanik 6320ef6b7e Fixing conditionals to use cmp instead of test. 2013-05-24 22:21:05 -07:00
Ben Vanik 7bf69f66fd Logging out the condition register values. 2013-05-24 22:03:57 -07:00
Ben Vanik 2586c10cc5 addzex. 2013-05-24 21:54:04 -07:00
Ben Vanik 9883f32fb7 Fixing logger initialization when codegen logging is disabled. 2013-05-24 21:49:03 -07:00
Rick Gibbed ba718de434 Further corrections on cr checks. 2013-05-24 21:34:03 -07:00
Ben Vanik 1354b9975f Adding basic branch indirection, which doesn't work but is ready to do so. 2013-05-24 21:18:30 -07:00
Ben Vanik c6ed7ff9cf Fixing cr5+ checks. 2013-05-24 20:48:04 -07:00
Ben Vanik 346a27ddf8 Trying again to fix compares. 2013-05-24 20:40:00 -07:00
Ben Vanik e7556a09f8 Fixing bad or during cr0 update - need to be overwriting. 2013-05-24 20:26:06 -07:00
Ben Vanik 68f1eb7f69 Fixing carry and compare flags. 2013-05-24 20:20:18 -07:00
Ben Vanik 97b0e2aa3d Fixing comparison between two gpvars. 2013-05-24 20:09:11 -07:00
Ben Vanik 5e66f7b04b Adding a bunch of nops around trace calls.
5 before, 2 after (so it's easy to see what goes with what).
2013-05-24 19:59:51 -07:00
Ben Vanik 1ad0bb7843 cmp/cmpi/cmpl/cmpli.
May not be right.
2013-05-24 19:52:00 -07:00
Ben Vanik 6cd8495ea2 extsbx. 2013-05-24 19:45:48 -07:00
Ben Vanik 8976f1b046 subfx + subficx. 2013-05-24 19:16:01 -07:00
Ben Vanik 69ebedb43f addic + subfex. 2013-05-24 19:10:54 -07:00
Ben Vanik dc40f28795 addx and switching commenting style on the rest of the unported instrs. 2013-05-24 18:49:14 -07:00
Ben Vanik 1e67547a6b Fixing conditional branch logic. 2013-05-24 18:44:32 -07:00
Ben Vanik 2ab01af0bd Breaking on indirect branches. 2013-05-24 18:34:08 -07:00
Ben Vanik 692f85ed4f Very, very basic branching. Most compares not yet implemented. 2013-05-24 18:28:52 -07:00
Ben Vanik 7e3268621d Optimizing the mr case. 2013-05-24 17:59:01 -07:00
Ben Vanik 748bfe509f Handling null ptr in NtFreeVirtualMemory. 2013-05-24 17:33:57 -07:00
Ben Vanik 21b0d25131 Fixing memory address truncation. 2013-05-24 17:08:12 -07:00
Ben Vanik fcf478ba55 Log all incoming registers on each instruction execute. 2013-05-24 16:53:27 -07:00
Ben Vanik 15cfbd3736 The various _ptr helpers in asmjit are useless. 2013-05-24 16:34:24 -07:00
Ben Vanik e6320dada5 Most of the memory instructions.
Not sure this is correct, as it crashes pretty early on.
2013-05-24 16:16:39 -07:00
Ben Vanik e724fe3e60 Adding some ALU instructions. 2013-05-24 14:21:39 -07:00
Ben Vanik 8965caa833 Adding an option to disable register caching.
Until things work I'm not going to bother with that optimization.
2013-05-24 11:18:50 -07:00
Ben Vanik b8323c3055 Preparing some control instructions for proper emitting. 2013-05-24 03:51:58 -07:00
Ben Vanik bf8f068fa5 Disabling tail calls. 2013-05-24 03:29:21 -07:00
Ben Vanik 2242778fff Fixing trace calls. Disabling logging of redirector. 2013-05-24 02:42:41 -07:00
Ben Vanik eb9b9b0321 Adding bl (unconditional only). 2013-05-24 02:21:12 -07:00
Ben Vanik 2153256109 Fixing line endings. 2013-05-24 01:41:02 -07:00
Ben Vanik 605d66ecf6 Adding the first instructions, mfspr/mtspr. 2013-05-24 01:37:02 -07:00
Ben Vanik 71bd3c799f Local variables setup and spilling/filling. 2013-05-24 00:50:56 -07:00
Ben Vanik 376226c59a Adding basic block labels.
Probably correct.
2013-05-24 00:06:46 -07:00
Ben Vanik a81babac1e Adding comments to the disasm and implementing kernel calls. 2013-05-23 23:39:48 -07:00
Ben Vanik 74ae66aa0a Cleanup and tracing. 2013-05-23 23:22:27 -07:00
Ben Vanik d7d0b94aab x64 emitter now generating redirection blocks and patching them up. 2013-05-23 22:09:04 -07:00
Ben Vanik 12444f6305 Compiles, runs, and hangs in normal wait. 2013-05-23 18:46:09 -07:00
Ben Vanik 1b833b6789 Removing libjit backend. 2013-05-23 18:05:03 -07:00
Ben Vanik bedf86d259 Adding 'x64' backend.
Does not compile.
2013-05-23 18:04:12 -07:00
Ben Vanik 86002b2f44 Removing old llvm cruft. 2013-05-23 17:51:03 -07:00
Ben Vanik 63cee87420 Removing library loader, as it's not used. 2013-05-23 17:50:05 -07:00
Ben Vanik 57b486c4ad Removing libjit, because it is pretty terrible. 2013-05-23 17:48:01 -07:00
Ben Vanik eee856be04 Tweaking things again. Now not getting very far. Sigh. 2013-05-23 15:52:57 -07:00
Ben Vanik f08e80efbc Fixing calling into code. Interpreter can now be used. 2013-05-23 15:44:45 -07:00
Ben Vanik 9487fa027c libjit doesn't encode mov with imm64 offsets, fixing. 2013-05-23 13:55:09 -07:00
Ben Vanik 70a9a1053e The previous truncation was useless. 2013-05-23 13:16:39 -07:00
Ben Vanik 89672e111d Optimizing memory accesses a bit by letting libjit use relative addressing. 2013-05-23 11:46:26 -07:00
Ben Vanik fc8eb3d40a Adding disassembly to traces and bumping libjit. 2013-05-23 11:39:29 -07:00
Ben Vanik 730dba4aea Adding addzex. 2013-05-23 02:13:04 -07:00
Ben Vanik d6f2a0b3f0 Adding --trace_branches.
Simple output right now, can always be enhanced.
2013-05-23 01:31:41 -07:00
Ben Vanik 1a01d365b5 Making code dumps conditional on --log_codegen 2013-05-22 22:01:34 -07:00
Ben Vanik fcb66660c0 (partial) addx and logging compiled addresses. 2013-05-22 21:53:21 -07:00
Ben Vanik 5cb8cf2630 Hacky ALU ops. Need overflow checks. 2013-05-22 21:14:16 -07:00
Ben Vanik 9ed911cdad Fixing comparisons and disabling OutputDebugString logging. 2013-05-22 21:11:27 -07:00
Ben Vanik 2d01dced5a Adding back invalid instruction logs. 2013-05-22 20:58:48 -07:00
Ben Vanik f2c16c24f3 Basic control instructions (no indirection branches yet). 2013-05-22 20:15:04 -07:00
Ben Vanik 1bcb3e8f92 Many more ALU instructions. 2013-05-22 18:51:06 -07:00
Ben Vanik 64b619023d Adding back in quite a few instructions. 2013-05-22 18:03:43 -07:00
Ben Vanik c0dd60bde8 Adding memory access/etc.
Needs byte swapping.
2013-05-22 15:02:26 -07:00
Ben Vanik 7227ba2693 Setting up register fill/spill. 2013-05-22 13:37:44 -07:00
Ben Vanik 16d2b73a73 Main codegen loop now running through instructions. 2013-05-22 13:10:07 -07:00
Ben Vanik dad99769cb Prepping for basic block generation. 2013-05-22 11:53:52 -07:00
Ben Vanik 33e2bc01ee Kernel call thunks and cleanup on exports. 2013-05-22 11:30:53 -07:00
Ben Vanik 37f93d2974 Calling to/from native works! 2013-05-22 11:13:27 -07:00
Ben Vanik a064e68621 Fixing more warnings. 2013-05-21 16:19:11 -07:00
Ben Vanik 1ec06bd7d0 Tweaking compile options and switching back to VS2010. 2013-05-21 16:08:56 -07:00
Ben Vanik 85804f7415 Initial libjit skeleton.
Not currently generating instructions, but most of the flow is right up to
that point. A lot of work required to refactor the emitter, but wanted to
get this checked in.
2013-05-21 15:36:58 -07:00
Ben Vanik 94e3e592dd Making disassembly much faster by moving string processing to only the
dump path.
2013-05-19 19:32:55 -07:00
Ben Vanik 1ce68ca7fe Removing LLVM submodule and build information.
Code is still present until transitioned over to libjit.
2013-05-19 09:29:22 -07:00
Ben Vanik 0aa7d1ec05 Adding libjit.
Removing some old xethunk cruft.
2013-05-19 09:23:50 -07:00
Ben Vanik b018b6fe56 Broken, incomplete, but need to move forward with rewrite. 2013-04-21 12:34:20 -07:00
Ben Vanik 4987147055 Moving disasm functions to ppc/. 2013-03-30 02:01:33 -07:00
Ben Vanik 85bdbd24d1 In-progress work: refactoring PAL not to be instanced.
This removes a lot of useless passing around of the PAL object.
2013-03-29 05:07:32 -07:00
Ben Vanik c46093266e Tracking code low/high addresses per module. 2013-02-24 11:45:16 -08:00
Ben Vanik 3cae7ed714 Converting logging to ASCII and other Windows fixes. 2013-02-09 08:05:39 -08:00
Ben Vanik 338b890ef5 Fixing VC++ warnings and errors. 2013-02-08 22:07:38 -08:00
Ben Vanik 88431eadce Screw convention; moving include files alongside source files.
They now will show up in xcode/etc.
2013-02-06 02:19:50 -08:00