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