Commit Graph

1088 Commits

Author SHA1 Message Date
Dr. Chat 4c55039c22 Remove xenia-cpu dependency on xenia-kernel 2017-02-06 21:57:18 -06:00
Dr. Chat b66f10f2b8 Testing travis xenia powerpc testing 2017-02-06 00:40:06 -06:00
Dr. Chat 8947a7626e Linting fixes :) 2017-02-05 22:53:30 -06:00
Dr. Chat 803f0be049 Linux header fixes 2017-02-05 22:45:01 -06:00
gibbed d730784efb Added XBDM stubs. 2017-01-09 04:51:55 -06:00
Dr. Chat 691c3d1021 EXTRACT_I32: Support constant src1 2016-11-11 16:50:42 -06:00
Dr. Chat a148b965f1 KernelState should handle module launching 2016-10-24 11:01:10 -05:00
Dr. Chat 52c75c8dbc x64 backend: Pass guest return address as first argument to guest functions. 2016-08-26 13:46:21 -05:00
Dr. Chat 7683069f6c Set context/membase registers to rsi/rdi respectively.
Use offsetof for the backend thunks.
2016-08-26 11:00:42 -05:00
Dr. Chat 5f4416ee2f x64 backend: Save nonvolatile XMM registers on host -> guest transitions
Define the context and membase registers in the x64 emitter.
2016-08-22 14:55:16 -05:00
Dr. Chat e3fdb08ad7 x64 JIT: Allocate constant data outside of the guest heap. 2016-08-18 18:26:55 -05:00
Dr. Chat 22794902f3 CNTLZ: Invert the result using xor rather than subtraction 2016-08-01 13:25:44 -05:00
Dr. Chat a72f1d949f Constant propagation for vector SGT/UGE/UGT
Constant rounding (and fixed vec128 rounding only doing x)
2016-07-25 11:57:14 -05:00
Dr. Chat 8427acfada Use vpminud to saturate rather than bitwise ops (shaves 6 instructions per 16 in 32 saturated pack) 2016-07-23 19:19:40 -05:00
Dr. Chat 2d55b12cc9 Fix a race condition in x64 code cache involving RtlGrowFunctionTable 2016-07-19 13:59:40 -05:00
Dr. Chat 18ff97e6b6 OPCODE_IS_NAN 2016-07-11 20:44:12 -05:00
Dr. Chat 3d1d4dea47 OPCODE_DOT_PRODUCT_4 constant propagation 2016-06-28 19:39:22 -05:00
Dr. Chat f2ad6b8cb8 OPCODE_RECIP 2016-06-26 13:03:42 -05:00
gibbed 8965fda402 RSqrt for VEC128_TYPE. 2016-06-20 13:31:11 -05:00
gibbed 53e37c3167 Constant propogation for DOT_PRODUCT_3. 2016-06-20 13:30:19 -05:00
gibbed 450ca87120 Added comparison operator for --break_on_instruction. 2016-06-19 21:01:18 -05:00
gibbed b5bef8c54d Undoing the previous commit in favor of finding a better solution (xmm1/xmm2 can't safely be used here). 2016-06-19 02:33:52 -05:00
gibbed d04a6cc983 Added support for when both src1 and src2 are constants in EmitCommutativeBinaryXmmOp and EmitAssociativeBinaryXmmOp. 2016-06-19 02:10:40 -05:00
Dr. Chat d5865740e2 Add a few more vector tests 2016-06-12 21:45:51 -05:00
Dr. Chat 0ef16b10e2 Constant Propagation for OPCODE_VECTOR_ADD 2016-06-12 21:41:02 -05:00
Dr. Chat 841f6fe239 Merge branch 'vulkan' 2016-06-11 19:23:23 -05:00
Dr. Chat 32011a841e Formatting. 2016-06-05 17:48:06 -05:00
Haydn Trigg ff5529714c clang-format to Google Standards
Added formatting to code
2016-05-29 13:22:14 +09:30
Haydn Trigg f2ca689ea0 Expanded vec128 and VectorSub
Added double precision (f64) values to the vec128 structure
Added cases for all formats of data for vector subtraction in the
Value::VectorSub function

NOTE: Unsure what the saturate function is for however maintained
original functionality
2016-05-17 05:34:09 +09:30
Dr. Chat 0e3c113375 Physical write watches -> access watches (read and/or write watching) 2016-03-17 21:55:16 -05:00
Ben Vanik 06ba273492 Warn and be ok with symbol services failing. 2016-02-21 14:26:16 -08:00
Ben Vanik 05107d2d3e Skeleton xenia::gpu::vulkan implementation, enough to start trace viewer. 2016-02-18 16:43:41 -08:00
sephiroth99 5d9a4b6830 Handle all other cases in switch statements 2016-01-20 11:00:37 -05:00
sephiroth99 4c0f9e6342 Add missing includes 2016-01-20 10:36:01 -05:00
Ben Vanik 6777ce6668 Reconcile debugger and save state stuff into a single implementation.
Fixes #497 and fixes #496.
Still rough edges, but at least less duplication.
2016-01-18 11:48:21 -08:00
Ben Vanik 9473f20c7f Fixing travis lint diff. 2016-01-13 22:55:28 -08:00
Ben Vanik 2e826f9321 Supporting constants in Haswell codepaths for mul_add/sub. 2016-01-13 22:29:39 -08:00
Dr. Chat 0771eea0b3 Change comments to comply with local regulations. 2016-01-13 19:41:15 -06:00
Dr. Chat bd6bf16bd1 New flag: disable_global_lock - Disables global lock usage in guest code. 2016-01-13 19:40:00 -06:00
Dr. Chat 14c5e48120 Enable speculative PACK_TYPE_FLOAT16_3 2016-01-13 01:48:18 -06:00
Dr. Chat 36372d1eae Enforce xex memory protections 2016-01-13 01:47:06 -06:00
Dr. Chat f0802d75fa Use atomic compare exchange in stdcx/stwcx (still under the global lock) 2016-01-13 01:45:31 -06:00
Dr. Chat 51dde62f09 x64 backend vector optimizations 2016-01-13 01:43:23 -06:00
Dr. Chat 7b6f1388d6 OPCODE_ATOMIC_COMPARE_EXCHANGE 2016-01-13 01:41:58 -06:00
Dr. Chat 3ccb2a978d Propagate vector constants. 2016-01-13 01:40:44 -06:00
Dr. Chat 6d2f083b09 Up the maximum function count to 50,000 2016-01-13 01:30:15 -06:00
Ben Vanik 86b706d87c Merge pull request #509 from x1nixmzeng/xex-resources
Rebrand the Xenia window with module metadata
2016-01-10 08:55:47 -08:00
x1nixmzeng 3eb602c93a Assert library name index is in range of the string table
As suggested by @DrChat
2016-01-09 17:55:57 +00:00
x1nixmzeng 6530b9dc49 Added callback when new module is launched
This avoids having to guess the display window title format
Also manually fixed the linting errors picked out by travis which do not
get picked up using xb format locally
2016-01-09 17:36:46 +00:00
x1nixmzeng 06f259c87d Mask the name index instead
The maximum number of import libraries (32) is already asserted
2016-01-09 02:43:29 +00:00
x1nixmzeng 7e4fdf7669 Fixed rare crash when accessing library import by name
The library name index may only be 8-bits.

This bug was not present in the previous implementation due to a bitmask
(0xFF) - see
ea99ba8e3b/src/xenia/kernel/util/xex2.cc (L272)
2016-01-09 01:19:05 +00:00
Ben Vanik a95be25e2f Merge branch 'linuxfix' of https://github.com/sephiroth99/xenia into sephiroth99-linuxfix 2015-12-31 14:39:23 -08:00
Ben Vanik 952d35911c Folding build_tools back into the main repo for simplicity. 2015-12-30 16:53:14 -08:00
Ben Vanik 214532a3e8 Fiddling with FPSCR and such. Still not implemented, but wiring done. 2015-12-30 16:53:14 -08:00
Ben Vanik c296d581cf Readback CA in XER. 2015-12-30 16:53:12 -08:00
sephiroth99 9451c0b1cf Fix different types in std::min arguments 2015-12-30 17:42:18 -05:00
sephiroth99 3f49aa3cef Add default case for unhandled target_type values 2015-12-30 17:42:18 -05:00
sephiroth99 da71bc26a2 Use correct value in unhandled case assert 2015-12-30 17:42:18 -05:00
Ben Vanik cbc74c92f4 Fixing CR update for divwu/divdu/mulhwu. 2015-12-30 10:04:57 -08:00
Ben Vanik 69c7bac8db Fixing branch address calculation. 2015-12-30 09:47:24 -08:00
Ben Vanik 3c332ef1f5 Adding/removing saturate checks where required. 2015-12-30 09:31:03 -08:00
Ben Vanik 74d71f7a4a Fixing the rlw* instructions. 2015-12-30 09:02:29 -08:00
Ben Vanik b09e32ec15 Adding tests for broken rlwnm and rliwnm. Not yet fixed. 2015-12-29 20:58:38 -08:00
Ben Vanik 321e2663ef Fixing mullw. 2015-12-29 20:42:20 -08:00
Ben Vanik d7eff7c9e3 Marking some memory instructions as kM. 2015-12-29 17:53:49 -08:00
Ben Vanik cc37fb1358 Updating to the latest capstone. Fixes #440. 2015-12-29 15:19:08 -08:00
Ben Vanik 9c694f07b3 Better trap message. 2015-12-29 13:40:53 -08:00
Ben Vanik 948aa2400d Formatting all code. Too gnarly to rebase properly. 2015-12-29 13:13:34 -08:00
Dr. Chat b9159ddee8 X64CodeCache: Add a couple of overflow debug asserts 2015-12-29 13:09:52 -08:00
Ben Vanik 383a173a18 REBASE: fixing xthread instruction decoding. 2015-12-29 13:09:50 -08:00
Dr. Chat 1442f50058 X64Backend: Take a reference of the pair rather than a copy (and formatting) 2015-12-29 13:09:40 -08:00
Dr. Chat 0f82e0d090 Make the processor automatically generate any ungenerated functions when installing a breakpoint. 2015-12-29 13:09:37 -08:00
Dr. Chat ce2d6da2a1 Processor breakpoints: Change iterators to C++11 syntax where necessary 2015-12-29 13:09:35 -08:00
Dr. Chat 1ce6a7580b Fix CaptureStackTrace with null out_stack_hash 2015-12-29 12:35:59 -08:00
Dr. Chat d99008bfac RawModule::SetAddressRange - Notify the backend about this range. 2015-12-29 12:35:58 -08:00
Dr. Chat 38a09cbcc2 ExecuteRaw: Pass in 0xBC... magic so Xenia will return to the guest caller. 2015-12-29 12:35:57 -08:00
Dr. Chat 6d98628962 Remove Function::Call extern handler shortcut (as we need old behavior for savestates) 2015-12-29 12:35:56 -08:00
Dr. Chat 67a45203e3 Uninstall the X64 backend exception callback on exit. 2015-12-29 12:35:56 -08:00
Dr. Chat e206d13af7 Flag mfmsr/mtmsr/mtmsrd as context-synchronizing instructions 2015-12-29 12:35:04 -08:00
Dr. Chat 87cdce1440 Export kBlocking tag 2015-12-29 12:32:48 -08:00
Dr. Chat db8eb83057 Track export data on Guest Functions 2015-12-29 12:32:47 -08:00
Dr. Chat 42c657c40a Remove processor dependency on XThread for breakpoints 2015-12-29 12:32:47 -08:00
Dr. Chat 666f5543a8 Cleanup ThreadState and XThread 2015-12-29 12:32:46 -08:00
Dr. Chat 41d5b41523 Automatically install any CPU breakpoints in any newly-defined functions if necessary. 2015-12-29 12:32:01 -08:00
Dr. Chat d09e3b7953 Fix incorrect backend breakpoints implementation 2015-12-29 12:32:00 -08:00
Dr. Chat 28468f8a18 cpu::Processor now tracks a pointer to the emulator. 2015-12-29 12:32:00 -08:00
Dr. Chat 7d59258839 Processor::ExecuteRaw
Changed the breakpoint lock to a recursive mutex.
2015-12-29 12:28:57 -08:00
Dr. Chat ac706f6923 Allow breakpoint addresses to be changed after creation 2015-12-29 12:28:56 -08:00
Dr. Chat e383e2f101 Processor breakpoint support 2015-12-29 12:28:56 -08:00
Ben Vanik 214957da3a Adding finer-grained instruction classification. 2015-12-29 11:02:00 -08:00
Ben Vanik cc72de0f64 Moving disasm to new tables.
Also adding useful CPU docs.
2015-12-28 20:49:22 -08:00
Ben Vanik cd938be678 Removing all uses of the old PPC tables besides disasm. 2015-12-28 10:08:38 -08:00
Ben Vanik 990d973c74 New ppc opcode decoder.
Seems to work and match up with the old decoder (which may be bad).
Old decoder remains until all functionality is replaced.
2015-12-27 22:53:05 -08:00
Ben Vanik ca8d658ffe Speeding up PPC tests significantly. 2015-12-27 12:03:30 -08:00
Ben Vanik 0e58208add Dropping elemental-forms and swapping out with imgui.
Too much code for such little use. This should simplify porting.
2015-12-26 20:25:24 -08:00
Ben Vanik 15816327b4 Renaming xe::cpu::frontend to xe::cpu::ppc. 2015-12-14 21:17:55 -08:00
Ben Vanik 9273359cdd Removing vestigial ContextInfo. 2015-12-14 20:57:14 -08:00
Ben Vanik 5e6c1f5a50 Removing some dead code. 2015-12-14 20:49:50 -08:00
Dr. Chat 3ebd53ba11 Fix crandc/crnand/crnor/crorc not properly taking the complement of the CR fields. 2015-12-13 18:32:57 -06:00
Ben Vanik 81d0376106 Fixing use before check for null. 2015-12-05 23:24:40 -08:00
Dr. Chat bc1e7684ca Pass rounding mode from i->flags for OPCODE_CONVERT 2015-12-02 14:03:15 -06:00
Dr. Chat 17d18f7154 Implement a few cases for Value::Cast/Convert 2015-12-02 14:01:28 -06:00
Dr. Chat 57a823ae39 Add (commented out) code to setup page protections for xex modules. 2015-12-01 19:53:17 -06:00
Dr. Chat 525d62d437 constant OPCODE_CONVERT and more cases for OPCODE_LOAD 2015-12-01 19:51:28 -06:00
Dr. Chat 873016f06f Fix double-swap in constant load 2015-12-01 19:03:51 -06:00
Ben Vanik 82fe65475e Fixing sqrt/rsqrt mixup.
Queue the 'how did this ever work?!'
2015-11-30 17:22:08 -08:00
Ben Vanik 51c3df1e2e Making mtmsr & co synchronize the context. 2015-11-25 17:37:20 -08:00
Ben Vanik dfd92757a9 Adding CONTEXT_BARRIER to force the PPC context to synchronize.
This is just an annotation right now, as it's not actually needed.
2015-11-25 14:48:36 -08:00
Ben Vanik 1956b8708e Fixing include orders and whitelisting others.
Will be broken until clang SVN 253772 is available on travis/snapshots.
2015-11-21 11:34:46 -08:00
Dr. Chat 529227e4e6 MMIOHandler::InvalidateRange 2015-11-08 18:18:28 -06:00
Ben Vanik 4af6c41740 Moving profiling.h to base - UI could be separated for cleanliness. 2015-11-07 12:31:07 -08:00
Dr. Chat aeb635e31d vcmpbfp tests 2015-11-07 14:27:24 -06:00
Dr. Chat abf37ed9be Fix vcmpbfp returning that the value is out of bounds for values equal to the bounds. 2015-11-06 19:04:59 -06:00
Ben Vanik 35a9697af7 Merge pull request #446 from AlexAltea/master
Fixed mtcrf which was wrongly implemented as mtcr
2015-11-06 15:11:10 -08:00
Dr. Chat 9985187b23 Implement vpkuwum/vpkuhum
Fixed vpkuwus with signed numbers
Implement some constant sources for vec average/unpack
2015-11-06 15:18:48 -06:00
Dr. Chat 64b0cc9d5e Enabled tests for vpkuhum/vpkuwum and added test with negative numbers for vpkuwus 2015-11-06 14:57:42 -06:00
Ben Vanik 5087ccd565 Tracking capstone next. 2015-11-05 18:43:15 -08:00
Ben Vanik 5525f6c0a2 Tracking master xbyak. 2015-11-05 17:17:52 -08:00
Dr. Chat 430d4c7182 Fix rare deadlock in the MMIO handler. 2015-11-05 18:13:15 -06:00
Dr. Chat f3fe260a17 Fallback case if indirection table could not be allocated. 2015-11-04 06:46:52 -06:00
Ben Vanik e0b3d24a50 Merge pull request #445 from DrChat/kernel_trampolines
Generate trampoline functions for GetProcAddress on kernel modules
2015-10-24 17:16:33 -07:00
Alexandro Sánchez Bach c6751c1e5f Fixed mtcrf which was wrongly implemented as mtcr 2015-10-25 00:44:33 +01:00
Dr. Chat 729f762c5d RawModule SetAddressRange/set_name 2015-10-24 14:02:08 -05:00
Dr. Chat 55e811450d Lint 2015-10-22 20:22:34 -05:00
Dr. Chat 407d79cf3e Fix MMIO handler race condition by rechecking page access protections under the global lock. 2015-10-22 20:18:08 -05:00
Ben Vanik 91dfb6a8a0 Merge pull request #436 from DrChat/misc_changes
Misc changes
2015-10-17 01:15:20 -07:00
sephiroth99 9dfabba583 Fix compile error uncovered by Clang 3.8. 2015-09-25 23:50:05 -04:00
Dr. Chat c33e95981b Formatting. 2015-09-25 18:46:50 -05:00
Dr. Chat bf39e33dc0 Raw modules need to commit an executable range too! 2015-09-25 18:35:33 -05:00
Dr. Chat a9b557e8b9 Allow passing of >7 arguments through Processor::Execute
Set entry status to failed if LookupFunction failed
2015-09-25 18:24:12 -05:00
Ben Vanik ee92f75a84 Updating to the latest clang-format. Make sure to update yourselves! 2015-09-22 08:26:19 -07:00
sephiroth99 08ae855e07 It seems 'export' is a reserved keyword for clang. 2015-09-22 07:45:52 -07:00
sephiroth99 542f5ba8e5 Move GetTempReg higher in the source file, before its first usage. 2015-09-22 07:39:26 -07:00
Ben Vanik 4c8634bc31 Fixing breakpoints. 2015-09-21 21:10:57 -07:00
Ben Vanik 5d033f9cb3 A new debugger.
Lots of bugs/rough edges/etc - issues will be filed.
Old-style debugging still works (just use --emit_source_annotations to get
the helpful movs back and --break_on_instruction will still fire).
2015-09-20 21:31:05 -07:00
Dr. Chat a2bc0443f2 Quick-kill the MMIO handler if the fault address is above the mapping range. 2015-09-07 21:26:33 -05:00
Ben Vanik e5fbf840d2 Shuffling kernel/. 2015-09-06 18:07:52 -07:00
Ben Vanik 790ce8aee1 Switch back to std:: muteces. mutices. mutexen. 2015-09-06 13:34:08 -07:00
Ben Vanik 9ae807e56e Initialize builtins to 0. 2015-09-06 10:07:27 -07:00
Ben Vanik 3c96b6fa0a DANGER DANGER. Switching to global critical region.
This changes almost all locks held by guest threads to use a single global
critical region. This emulates the behavior on the PPC of disabling
interrupts (by calls like KeRaiseIrqlToDpcLevel or masking interrupts),
and prevents deadlocks from occuring when threads are suspended or
otherwise blocked.
This has performance implications and a pass is needed to ensure the
locking is as granular as possible. It could also break everything
because it's fundamentally unsound. We'll see.
2015-09-06 09:30:54 -07:00
Ben Vanik 33270cd2a0 Making tracing use the fast logger path. 2015-09-05 21:12:10 -07:00
Ben Vanik f5e374f9b5 Changing the way the global lock works. Some things are better, I think.
Regressions are likely.
2015-09-01 09:45:32 -07:00
Ben Vanik 5355183590 Don't double-break on debugbreak. 2015-09-01 09:45:32 -07:00
Dr. Chat 51e70be054 Don't assert on VRSAVE mfspr/mtspr (used by gcc) 2015-08-31 10:51:51 -05:00
Ben Vanik a4ed79695d WSACreateEvent/CloseEvent/SetEvent. 2015-08-30 21:31:52 -07:00
Ben Vanik 7233df2778 Switch default --ignore_undefined_externs to true. 2015-08-30 20:48:41 -07:00
Ben Vanik 2f9b37c142 Logging unimplemented instructions. 2015-08-30 20:46:06 -07:00
Ben Vanik 82a72e1974 Adding MemoryBarrier opcode. 2015-08-30 17:25:02 -07:00
Ben Vanik 65812438c4 Short-circuiting lvrx/stvrx. Should help bad accesses in many games.
Fixes #411.
2015-08-30 16:38:01 -07:00
Ben Vanik dfa5b90c36 Fixing test output. 2015-08-30 16:26:36 -07:00
Ben Vanik b80a028589 Much better errors on undefined externs. 2015-08-30 15:27:12 -07:00
Ben Vanik 87094b8257 Adding XamUserContentRestriction* functions. 2015-08-30 15:00:04 -07:00
Dr. Chat 60538e7dda vcmpbfp with Rc bit support 2015-08-30 00:14:58 -05:00
Ben Vanik 764b11fa04 Formatting premake files. 2015-08-29 20:57:31 -07:00
Ben Vanik a86b3821f2 Adding thread handle to logging. 2015-08-29 20:49:26 -07:00
Dr. Chat 3d684ac304 Fixup the premake files 2015-08-29 22:04:12 -05:00
Dr. Chat f2b2a22687 Add gflags to projects that need it only 2015-08-29 21:16:57 -05:00
Ben Vanik b7203c2989 Logging to with a ringbuffer. Much faster. 2015-08-29 18:06:30 -07:00
Ben Vanik 3c50b6739a Capturing guest/host context and showing registers in debugger. 2015-08-29 08:08:54 -07:00
Ben Vanik ab04175aad Abstracting aligned alloc/free. 2015-08-28 14:27:44 -07:00
Ben Vanik a668556d7f Fixing Windows build. 2015-08-18 14:45:49 -07:00
Ben Vanik 8b0d4fb51c Linux tweaks. 2015-08-18 14:18:00 -07:00
Ben Vanik 2820ff85e5 Moving test memory to a more reasonable place. 2015-08-18 09:01:22 -07:00
Ben Vanik c6b941a709 Normalizing tests. 2015-08-18 00:27:27 -07:00
Ben Vanik c67e47a076 Test cleanup. 2015-08-18 00:16:38 -07:00
Ben Vanik 59b9e9ceb0 Fixing buffer overrun in disasm. 2015-08-17 20:38:37 -07:00
Dr. Chat 0caffd3921 Tests: vand/vand128/vandc/vandc128/vcmpxxfp128/vmaxfp/vmaxfp128/vmaxsh/vmaxuh/vminfp/vminfp128 2015-08-17 20:37:03 -05:00
Dr. Chat dde3f3dfb0 Tests: vor/vor128/vxor/vxor128 2015-08-17 12:23:01 -05:00
Dr. Chat 52c2d03c3e Tests: vpkshss128/vpkshus128/vpkswss128/vpkswus128/vpkuhum128/vpkuhus128/vpkuwum128/vpkuwus128/vupkhsb128/vupklsb128 2015-08-17 12:08:56 -05:00
Ben Vanik 55068f230e Fixing vslo and vsro. 2015-08-17 08:15:43 -07:00
Ben Vanik 359e5b578a Fixing vsl and vsr for out of range values. 2015-08-17 07:57:30 -07:00
gibbed 5d61d0baa5 Fixing vnmsubfp128. 2015-08-17 04:57:33 -05:00
Dr. Chat a191fbcf34 Tests: vaddfp/vaddfp128/vmsum3fp128/vsubfp/vsubfp128 2015-08-16 19:56:03 -05:00
gibbed f9076d08ea Test for vsrh. 2015-08-16 16:37:28 -05:00
gibbed 9901d98c14 Test for vsrah. 2015-08-16 16:37:27 -05:00
gibbed ac4c5f4508 Test for vrlh. 2015-08-16 16:37:26 -05:00
gibbed 5621f63001 Tests for vminsh, vminuh. 2015-08-16 16:37:25 -05:00
gibbed 9fa7ec5c1f Tests for vavgsh, vavguh. 2015-08-16 16:37:25 -05:00
Ben Vanik ae183f918f Merge pull request #388 from DrChat/elf_modules
(Experimental) ELF module support
2015-08-16 07:55:28 -07:00
Dr. Chat 6cd08384e7 (Experimental) ELF module support 2015-08-16 09:47:39 -05:00
gibbed defca39a21 Test for vexptefp. 2015-08-16 07:09:20 -05:00
gibbed bbde510c17 More tests for vmrghb, vmrghh, vmrghw, vmrglb, vmrglh, vmrglw. 2015-08-16 07:09:07 -05:00
gibbed 4ca24c8d3b Cleaning up test names. 2015-08-16 06:26:43 -05:00
gibbed ba9d2f0d7c More tests for vupkhsb, vupkhsh, vupklsb, vupklsh. 2015-08-16 06:09:52 -05:00
gibbed 90b33fd49f Test for vpkpx. 2015-08-16 05:55:30 -05:00
gibbed 8c07a3efdd Tests for vpkuwum. 2015-08-16 05:55:15 -05:00
gibbed 5f9ef37e94 Cleaning up tests for vpkuhus. 2015-08-16 05:54:48 -05:00
gibbed 50a5f5e8c5 Cleaning up tests for vpkuhum. 2015-08-16 05:54:22 -05:00
gibbed 67525ced44 Test for vpkshus. 2015-08-16 05:19:58 -05:00
gibbed d7c0837f40 Tests for vpkswus, vpkuwus. 2015-08-16 05:15:35 -05:00
gibbed 95d9344985 Another test for vpkswss. 2015-08-16 05:14:40 -05:00
gibbed b9d9486c62 Another test for vpkshss. 2015-08-16 05:03:19 -05:00
gibbed 3b878ed533 Test for vpkuhus. 2015-08-16 04:52:32 -05:00
gibbed 60b1a67af3 Fixing vpkuhus. 2015-08-16 04:52:19 -05:00
gibbed 9129b9caa9 Tests for vpkuhum/vpkuhus. 2015-08-16 04:07:17 -05:00
gibbed 003608fa76 More tests for vupkhsh/vupklsh. 2015-08-16 03:26:14 -05:00
gibbed 7256fe6a2b Tests for vupkhsb/vupklsb. 2015-08-16 03:16:25 -05:00
gibbed 6a675659e4 Really fix vupkhsb/vupklsb. 2015-08-16 03:15:37 -05:00
gibbed f06ddd3869 Maybe fixing vupkhsb/vupklsb. 2015-08-16 02:31:25 -05:00
Dr. Chat d2f672b2c5 Shift export ordinal back by the base to avoid false positive error 2015-08-14 20:02:39 -05:00
Ben Vanik a92566dfc5 More style. 2015-08-07 21:29:03 -07:00
Ben Vanik 14beb27ebc xb style. 2015-08-07 07:56:57 -07:00
Ben Vanik 5e08889d93 More style cleanup. 2015-08-06 20:17:01 -07:00
Ben Vanik e6461f326c Some xb style cleanup. 2015-08-05 22:06:20 -07:00
Ben Vanik eaa1a8ee3a Refactoring SymbolInfo/FunctionInfo/Function into Symbol/Function. 2015-08-05 21:50:02 -07:00
Ben Vanik 48d6e6becf Cleaning up debugger threading and adding hacky callstacks to UI. 2015-08-05 07:50:37 -07:00
Ben Vanik ec326119cf Replacing beaengine in mmio handler with custom decoder.
Fixes #358.
2015-08-04 08:25:42 -07:00
Ben Vanik 90c248146e --inline_mmio_access to allow turning it off. 2015-08-03 19:07:34 -07:00
Ben Vanik b0425f7ee2 Moving source map to Function. 2015-08-01 14:07:13 -07:00
Ben Vanik b67488e70a Removing beaengine disassembler use. 2015-08-01 13:30:43 -07:00
Ben Vanik cb701fcb7c Latest linter. 2015-08-01 04:08:59 -07:00
Ben Vanik b56b262116 Switching to python build script. 2015-07-31 23:48:24 -07:00
Ben Vanik e523ffcd51 Tweaking some thread names. 2015-07-29 23:28:45 -07:00
Ben Vanik a9b89a790b Some more constant support for MUL_SUB. 2015-07-29 21:45:24 -07:00
Ben Vanik c0dcf83de8 Cleanup heap use. 2015-07-29 20:33:59 -07:00
Ben Vanik c67173fe36 Switching to real page sizes, not allocation granularity. 2015-07-29 20:28:06 -07:00
Ben Vanik 19901c4759 Replacing a use of strings for xbyak labels. 2015-07-29 18:58:45 -07:00
Ben Vanik e657276996 Mostly working stack walking (besides issue #372). 2015-07-29 00:15:52 -07:00
Ben Vanik ad9472e60b Better sign extend, thanks to @inolen. 2015-07-27 20:25:20 -07:00
Ben Vanik 7ecc6362de Debugger stuff. Lots of wasted work :/ 2015-07-26 22:47:16 -07:00
gibbed 42ef3f224a Oops. Fixing bad asserts. 2015-07-26 11:12:54 -05:00
gibbed b713f99e42 Constant support for VECTOR_CONVERT_I2F. 2015-07-26 10:55:41 -05:00
gibbed 20d79911f0 Constant support for Emit16_IN_32. 2015-07-26 10:54:47 -05:00
gibbed 599686f68d Unsigned Emit16_IN_32. 2015-07-26 09:57:52 -05:00
Ben Vanik a42ab648ed Shuffling --debug around and making it work. 2015-07-22 17:26:10 -07:00
Ben Vanik d01abd4694 Starting debugger rework, adding base async socket, removing flatbuffers. 2015-07-22 00:01:36 -07:00
Ben Vanik 12a29371e3 Clang fixes. 2015-07-19 18:32:48 -07:00
Ben Vanik 5c7f42e9d1 Fix for unknown kernel modules. 2015-07-19 10:55:12 -07:00
Ben Vanik 352bae30cb Removing win32 code from X64CodeCache.
Fixes #349.
2015-07-19 10:33:00 -07:00
Ben Vanik 91d7acf59e Fixing some particularly bad /W4. 2015-07-18 23:04:21 -07:00
Ben Vanik e0eb85bbbc Switching to premake. Probably with disasterous consequences. 2015-07-18 16:00:01 -07:00
Ben Vanik ecd4af10c9 Fixing some clang warnings/errors. 2015-07-15 23:26:58 -07:00
Ben Vanik f520d3a2a4 Run with latest clang-format. 2015-07-15 22:44:30 -07:00
Ben Vanik 8154d1dad6 Moving xe::Memory and code cache to abstracted APIs. 2015-07-15 22:10:05 -07:00
Ben Vanik fefaa31cd8 Switching a few types to their platform-agnostic versions. 2015-07-15 22:09:19 -07:00
Ben Vanik 6cf29b969d Abstraction for VirtualAlloc/VirtualFree. 2015-07-15 19:05:08 -07:00
Ben Vanik 58c3a1ba79 VirtualProtect platform abstraction. 2015-07-15 18:20:05 -07:00
Ben Vanik 40621a90bd Switching to standard mutex for now (but keeping xe::mutex). 2015-07-13 21:49:32 -07:00
Ben Vanik 72ad899e9e Starting to remove windows.h includes from things. 2015-07-13 20:49:29 -07:00
Ben Vanik 31dab70a3a Adding some docs on CPU optimizations/potential work. 2015-07-13 18:20:38 -07:00
Dr. Chat f9977a25af Use std::vector to hold the xex header instead of new/delete 2015-07-06 19:45:10 -05:00
Dr. Chat 0388d17a72 Formatting 2015-07-06 10:57:32 -05:00
Dr. Chat 93f24d2047 XexModule keep track of whether it's loaded into memory or not 2015-07-06 10:40:35 -05:00
Dr. Chat 4e6b036b3c Formatting. 2015-07-05 16:28:11 -05:00
Dr. Chat 567bb525f8 Fix incorrectly getting the exe address 2015-07-05 15:41:47 -05:00
Dr. Chat 7f53b1d630 Allow unloading of user modules 2015-07-05 14:03:00 -05:00
raven02 f90cc63d4b alu: use XEEXTZ16 for uimm16 2015-07-05 04:52:53 +08:00
Ben Vanik 4097fe420e Merge pull request #322 from DrChat/xex2_patch
XEX2 Code Refactoring
2015-07-03 19:38:36 -07:00
Dr. Chat 1788ee1589 Linting. 2015-07-03 20:11:08 -05:00
Dr. Chat 03ffb20a43 Warn when importing an unimplemented kernel function 2015-07-03 19:44:11 -05:00
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