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