Ben Vanik
9031d5f4a4
Fix clang warnings / move some plat code into poly.
2014-07-10 22:51:27 -07:00
Ben Vanik
7daa85179c
Running clang-format on alloy.
...
All except x64_sequences, which needs work.
2014-07-10 20:20:00 -07:00
Ben Vanik
868803e03a
Fixing file header.
2014-07-09 22:31:14 -07:00
Ben Vanik
c5f114018e
Replacing alloy::Mutex with std::mutex.
2014-07-09 22:28:51 -07:00
Ben Vanik
500647968c
Prepping poly.
2014-07-09 22:05:41 -07:00
Ben Vanik
6b197c4c92
Removing the debugger and dependencies. Needs rethinking.
2014-07-09 21:21:40 -07:00
Ben Vanik
fd2a1f85a6
Fixing #105 enough to get the games moving along.
2014-07-08 21:47:31 -07:00
Ben Vanik
deaf8308fc
More UNPACK forms - likely right.
2014-07-08 20:52:12 -07:00
Ben Vanik
0950e9f53c
Calm some games down that hammer XMPGetStatus.
2014-07-08 16:02:42 -07:00
Ben Vanik
eb7987a634
Setting default output values for pixel shaders.
2014-07-08 16:02:42 -07:00
Ben Vanik
2a68a1b35b
Special casing some VC++ traps.
2014-07-08 16:02:41 -07:00
Ben Vanik
a5627ee25a
Hide lock logging.
2014-07-03 12:59:08 -07:00
Ben Vanik
824d3c246f
Prevent null/broken shaders from dying in d3dcompiler.
2014-07-03 12:58:56 -07:00
Ben Vanik
3b853f6201
WSAStartup tweak.
2014-07-03 12:58:27 -07:00
Ben Vanik
a0cb341662
Trying really hard to keep games from spinning up networking.
2014-07-02 21:57:21 -07:00
Ben Vanik
d5f27dbf34
Better arg passing for Execute and experimenting with APCs.
2014-07-02 15:39:49 -07:00
Fire30
15be1061d3
Fixed arguments for NetDll_send.
2014-07-02 18:17:09 -04:00
tj
13b3fa6f84
Fixed typo in NetDll_setsockopt logging.
2014-06-24 00:38:14 -04:00
Ben Vanik
4009eb1cd8
Fail out of XamContentCreateEnumerator.
2014-06-22 21:19:48 -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
7b98c748fa
Fixing double allocation of memory x_x
2014-06-22 21:03:41 -07:00
Ben Vanik
71eb408d67
Various fiddlings.
2014-06-22 19:41:26 -07:00
Ben Vanik
a5448b1296
Fixing pack float16.
2014-06-20 20:48:02 -07:00
Ben Vanik
da590bd9cc
Disable logging for TlsGetValue.
2014-06-20 20:44:53 -07:00
Ben Vanik
7936fa2dbd
Fix constants in pixel shaders.
2014-06-20 20:44:39 -07:00
Ben Vanik
45e149d00b
Possibly correct variable EXTRACT_I16.
2014-06-10 21:38:33 -07:00
Ben Vanik
02709e0d65
Optimize EXTRACT_I32(0).
2014-06-10 21:38:17 -07:00
Ben Vanik
4089f405af
PACK FLOAT16 seems correct.
2014-06-10 21:36:13 -07:00
Ben Vanik
713cfcb429
Possibly correct FLOAT16 unpack.
2014-06-10 21:35:50 -07:00
Ben Vanik
574a04a853
Preventing emulated instructions from stomping the xmm registers.
2014-06-10 21:33:58 -07:00
Ben Vanik
3845437276
Fix assert to allow 16 fetchers.
2014-06-10 21:06:36 -07:00
Ben Vanik
829b4f67bf
ReadFile EOF.
2014-06-10 20:40:11 -07:00
Ben Vanik
ff8c03046a
VECTOR_COMPARE_UGT/UGE (probably).
2014-06-09 21:29:35 -07:00
Ben Vanik
289075d052
Constant D3DCOLOR UNPACK. Could optimize earlier.
2014-06-09 21:29:15 -07:00
Ben Vanik
5343cab851
Support constant CALL_INDIRECT.
2014-06-09 21:15:13 -07:00
Ben Vanik
95508273f6
Misc experimentation.
2014-06-08 23:11:09 -07:00
Ben Vanik
052dca5010
Const src1 permute.
2014-06-08 22:21:38 -07:00
Ben Vanik
43a3b4f3c0
Support constant value movs to mmio memory.
2014-06-08 22:21:23 -07:00
Ben Vanik
264fc7cc91
Fix assert.
2014-06-08 22:21:05 -07:00
Ben Vanik
6e76c169d6
Proper(ish) VdSwap - fixes a bunch of things.
...
Caching is working a bit better, now.
2014-06-08 21:24:29 -07:00
Ben Vanik
8337820500
Fiddling with interrupt triggering - still not right.
2014-06-08 11:59:57 -07:00
Ben Vanik
daa8a24173
Caching states.
2014-06-08 11:51:53 -07:00
Ben Vanik
6514eaa780
Disabling paged resource caching for now, as it's broken.
2014-06-08 11:25:10 -07:00
Ben Vanik
295910c3d8
Initial refactoring of gpu/.
...
Runs too fast - now there are ringbuffer wrapping issues.
2014-06-08 11:23:55 -07:00
Ben Vanik
4072640a64
Skeleton of new shared GPU files.
2014-06-02 19:24:33 -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
3a8065b7b1
Vertex buffer caching.
...
Doesn't help, though, as buffers are weird. Need to rethink all of this.
2014-06-01 09:42:07 -07:00
Ben Vanik
2d173ea62b
Caching index buffers.
2014-05-31 22:26:39 -07:00
Ben Vanik
19c48c7a90
Partial texture cache - doesn't invalidate yet.
2014-05-31 17:38:32 -07:00
Ben Vanik
529a1478d8
Sampler state caching.
2014-05-31 16:34:05 -07:00
Ben Vanik
6607606b15
Moving texture code into shared/separate files. Leaking a lot.
2014-05-31 15:42:21 -07:00
Ben Vanik
e42460039f
Untested PACK float16_2/_4.
2014-05-31 11:23:10 -07:00
Ben Vanik
8be043fbd4
Merge pull request #86 from hlide/master
...
EXTRACT_I8, EXTRACT_I16, EXTRACT_I32, EXTRACT_F32: properly modified the...
2014-05-31 08:19:03 -07:00
hlide
0598df1d9e
Removed weird symbols in x64_sequences.cc
2014-05-31 17:14:40 +02:00
Ben Vanik
e45fc3dc56
Reducing profiling forced swap frequency.
2014-05-31 08:13:13 -07:00
Ben Vanik
430d827770
Like, really fixing SELECT. Frogger now runs ^_^
2014-05-31 08:06:04 -07:00
hlide
8525cf739e
Update x64_sequences.cc
2014-05-31 16:51:15 +02:00
hlide
334f744fb8
EXTRACT_I8, EXTRACT_I16, EXTRACT_I32, EXTRACT_F32: properly modified the code in comments
2014-05-31 14:23:22 +02:00
Ben Vanik
002aaab77d
Fixing VECTOR_COMPARE_SGE.
2014-05-30 22:36:06 -07:00
Ben Vanik
df5d86e78c
Tweaking load/store. Nasty.
2014-05-30 22:29:08 -07:00
Ben Vanik
7acbf759e2
Fixing UNPACK D3DCOLOR. Probably.
2014-05-30 21:38:33 -07:00
Ben Vanik
0b42c72ec5
Fixing const propagated DID_CARRY.
2014-05-30 20:09:00 -07:00
Ben Vanik
d65b5801f8
Adding hlide's comments for EXTRACT - need to implement/test.
2014-05-30 14:02:15 -07:00
Ben Vanik
691a3d4ade
Fixing EXTRACT.
2014-05-30 14:01:52 -07:00
Ben Vanik
1729c8ce6d
Constant MIN/MAX.
2014-05-30 14:00:28 -07:00
Ben Vanik
8ba95efdce
Fixing mulx usage.
2014-05-30 12:41:48 -07:00
Ben Vanik
6c92e6a5c5
Increasing microprofile stack size, as some of these trees are deep.
2014-05-30 11:44:24 -07:00
Ben Vanik
0267efa5cc
Always swapping the graphics system so that we see the profiler update.
2014-05-30 06:50:07 -07:00
Ben Vanik
0c55309826
Fixing COMPARE and tweaking ABS/NEG.
2014-05-29 23:11:00 -07:00
Ben Vanik
328ece538a
Fixing disabled profiling.
2014-05-28 21:46:43 -07:00
Ben Vanik
997f582d1f
Removing useless counters.
2014-05-28 20:32:50 -07:00
Ben Vanik
18b1f9f513
Fixing controller input.
2014-05-28 20:19:28 -07:00
Ben Vanik
c06526e5df
Backpatch function addresses.
2014-05-28 20:02:40 -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
6486e0a48e
Profiler skeleton.
2014-05-27 22:54:40 -07:00
Ben Vanik
2ef6545927
Trap sometimes called.
2014-05-27 19:35:52 -07:00
Ben Vanik
ca22010502
Adding memory snooping for mmio accesses. Yuck.
2014-05-27 19:33:16 -07:00
Ben Vanik
192941eeb0
PACK D3DCOLOR.
2014-05-27 16:23:46 -07:00
Ben Vanik
edf282abdc
Disabling logging.
2014-05-27 15:26:16 -07:00
Ben Vanik
b0034f3b4d
Fix cntlz.
2014-05-27 15:15:52 -07:00
Ben Vanik
2856d38024
Fixing some instructions.
2014-05-27 14:31:19 -07:00
Ben Vanik
5436cde0fc
Saturating unsigned VECTOR_ADD.
2014-05-27 14:27:07 -07:00
Ben Vanik
8619a15ee3
Emulated POW2/LOG2. Can probably be faked with polynomials.
2014-05-27 13:25:22 -07:00
Ben Vanik
0612a68f80
Fixing encoding of vpextr*.
2014-05-27 13:02:38 -07:00
Ben Vanik
87f8a4bb25
vector_add.
2014-05-27 13:02:23 -07:00
Ben Vanik
e32342e956
Variable vector_shl int8.
2014-05-27 13:02:00 -07:00
Ben Vanik
7635bb71a0
Constant permute.
2014-05-27 12:03:40 -07:00
Ben Vanik
2d765461ff
Common constant vector shifts.
2014-05-27 12:03:13 -07:00
Ben Vanik
d85665bb06
More efficient 11111... vec loading.
2014-05-27 11:57:20 -07:00
Ben Vanik
16bac6d9c5
Constant support for a lot of vector ops.
2014-05-27 11:56:55 -07:00
Ben Vanik
efa0565398
Fixing permute.
2014-05-27 07:53:19 -07:00
Ben Vanik
5a85263e5f
Trying out a new style of JIT pattern matching.
2014-05-26 20:28:21 -07:00
Ben Vanik
a001714fb0
Adding lock to stdout logging. Disable with --fast_stdout.
...
Fixes #78 .
2014-05-21 11:24:44 -07:00
Ben Vanik
1bb0b08a14
Fixing WIN32 build.
2014-05-21 10:38:41 -07:00
Anthony Pesch
1a4355a36b
implemented xerotl to replace win32 specific _rotl usage
2014-05-14 00:39:50 -07:00
Anthony Pesch
f01609c5aa
replace usage of itoa with snprintf
2014-05-14 00:39:47 -07:00
Anthony Pesch
68e5833647
use getpagesize on non-win32 platforms
2014-05-14 00:36:05 -07:00
Anthony Pesch
0e6c47aac5
use custom __m128 struct on non-win32 platforms to provide element-wise access
...
explicitly cast param for set_constant to correctly resolve overloaded function
2014-05-14 00:36:05 -07:00
Anthony Pesch
c6cdf1f672
nest X64Function in its own block to avoid clang errors related to goto usage
2014-05-14 00:36:05 -07:00
Anthony Pesch
60a7e79e1a
assume c++11
...
clang didn't like static members in anonymous structures, gave them names
WriteEvent template wouldn't resolve for temporary values without const decl in clang
added a few missing headers
added -fno-operator-names for xbyak compilation under gcc/clang
2014-05-14 00:35:21 -07:00
Shawn Hoffman
1e196df4b3
Fix spelling of GetLogicalProcessorInformation in GetProcAddress call - spelling actually matters here.
2014-03-28 21:48:20 -07:00
Ben Vanik
9a2d99d652
Fixing CFA.
2014-03-28 20:39:21 -07:00
Ben Vanik
24fc5acb07
Partially implemented Windows keyboard HID for testing.
2014-02-23 16:36:17 -08:00
Ben Vanik
86f66c4ab7
So few (faked) registers seems to break some things.
2014-02-15 15:49:41 -08:00
Ben Vanik
b2f886be98
Fixing more x64 stuff.
2014-02-10 23:48:41 -08:00
Ben Vanik
74c9df6697
Re-enabling x64 backend, fixing many bugs.
2014-02-10 23:24:46 -08:00
Ben Vanik
4a584129d2
A probably-working register allocator.
2014-02-10 21:16:38 -08:00
Ben Vanik
6bd214af0b
Adding a shared scratch arena for compiler passes.
2014-02-08 22:01:51 -08:00
Ben Vanik
e6f3716d87
Disabling x64 backend for now, as it's rubbish.
2014-02-08 22:01:26 -08:00
Ben Vanik
e36e1acc1a
TLS access is slow.
2014-02-08 22:00:53 -08:00
Ben Vanik
2403f367b1
MachineInfo
2014-02-08 22:00:21 -08:00
Ben Vanik
ee69696485
Hiding some D3D11 log spew.
2014-02-06 22:18:44 -08:00
Ben Vanik
6199e9f7b5
Vector constant support.
2014-02-06 22:18:30 -08:00
Ben Vanik
c5b70e615f
Fixing div.
2014-02-06 22:18:15 -08:00
Ben Vanik
5309356908
Fixing tail calls in the jit.
2014-02-06 21:53:31 -08:00
Ben Vanik
0d88e83daa
Avoiding function lookup for compiled functions. Still need caching.
2014-02-02 14:41:57 -08: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
2d65bea0ea
Fix warning.
2014-02-02 13:34:03 -08:00
Ben Vanik
05387b4996
Fixing type mismatches.
2014-02-02 13:10:24 -08:00
Ben Vanik
bc54fc1ae8
UNPACK D3DCOLOR and EXTRACT INT32 variable.
2014-02-02 13:04:42 -08:00
Ben Vanik
544d453691
Stack fixes.
2014-02-02 12:28:40 -08:00
Ben Vanik
14d6855b6d
PERMUTE by V128 and fixing some ops.
2014-02-02 11:23:03 -08:00
Ben Vanik
44c29a6691
Possibly working LOAD_VECTOR_SHL/SHR.
2014-02-02 02:18:59 -08:00
Ben Vanik
ae02dc7eba
Fixing rdx clobber from mul/div.
2014-02-02 01:51:38 -08:00
Ben Vanik
bca349b302
Oh my. Basic CFA/DFA, local variable support, misc fixes, etc.
2014-02-02 00:33:57 -08:00
Ben Vanik
b29276e167
Reserve address cleanup.
2014-02-01 01:13:23 -08:00
Ben Vanik
91a43a0ab6
Fixing broken temp reg.
2014-02-01 01:13:05 -08:00
Ben Vanik
b1ab2fb0a7
That was a terrible idea. Let us never speak of it again.
2014-02-01 00:41:36 -08:00
Ben Vanik
f524693dbb
Unswapping IVM register accesses.
2014-02-01 00:20:45 -08:00
Ben Vanik
68b5a0979e
Logging undefined extern calls.
2014-02-01 00:12:36 -08:00
Ben Vanik
f4d0eb03bc
Fixing 64bit fneg.
2014-02-01 00:08:26 -08:00
Ben Vanik
6eef76374d
Fix CNTLZ with 0.
2014-02-01 00:05:53 -08:00
Ben Vanik
50cb12634e
Fixed rax clobber on mul/div.
2014-02-01 00:05:38 -08:00
Ben Vanik
10c9537836
Swapping register values.
2014-02-01 00:05:21 -08:00
Ben Vanik
7044b74dc2
Fixing register value overwriting in address calculation.
2014-01-31 23:33:32 -08:00
Ben Vanik
e63fbcc2cd
Fixing sub w/ SET_CARRY.
2014-01-31 23:16:38 -08:00
Ben Vanik
efb2b6f037
Fixing disasm of XO.
2014-01-31 22:54:50 -08:00
Ben Vanik
7141fbad27
Ignoring comment on fall-through for now, as all imports cause it.
2014-01-31 22:51:40 -08:00
Ben Vanik
6ed411a08d
Fixing printing of floats.
2014-01-31 22:51:18 -08:00
Ben Vanik
458368c35e
Fixing IVM SUB bug.
2014-01-31 22:51:04 -08:00
Ben Vanik
009a6d0745
Hacking together proper stack saving. Can't get >128b frames working.
2014-01-31 22:16:05 -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
bdee924494
Various fixes.
2014-01-28 23:51:40 -08:00
Ben Vanik
0ec8e32861
Removing stack padding. Still broken even with it.
2014-01-28 23:22:10 -08:00
Ben Vanik
949b1a2220
Adding dynamic access checks. Eww.
2014-01-28 23:21:55 -08:00
Ben Vanik
53d4cbf2c5
Messing with flags. subficx sometimes still wrong.
2014-01-28 22:49:51 -08:00
Ben Vanik
62ced2742e
Handling unimplemented externs.
2014-01-28 22:11:33 -08:00
Ben Vanik
8cddfcbf19
More SSE work.
2014-01-28 22:06:45 -08:00
Ben Vanik
b2e9086932
Reserving volatile XMM registers (so long as we are calling tracers).
2014-01-28 20:39:44 -08:00
Ben Vanik
e5cf47a0d8
More SSE work.
2014-01-28 20:33:13 -08:00
Ben Vanik
ac4360913f
Fixing typo in logging.
2014-01-28 13:56:30 -08:00
Ben Vanik
0ff1fe93af
Disabling logging.
2014-01-28 10:46:40 -08:00
Ben Vanik
465c3a41dd
Hacking.
2014-01-28 00:19:05 -08:00
Ben Vanik
5421108b9e
Bad dp checks.
2014-01-27 23:00:26 -08:00
Ben Vanik
0908891bb2
v128 tracing.
2014-01-27 22:56:56 -08:00
Ben Vanik
5b2e44b0e8
Cleaning up some constant handling.
2014-01-27 22:47:37 -08:00
Ben Vanik
d67f786af8
Some binary xmm ops.
2014-01-27 22:18:44 -08:00
Ben Vanik
da36baba8d
Fixing 64-bit mov encoding. *shakes fist at xbyak for silently coercing*
2014-01-27 21:32:58 -08:00
Ben Vanik
8894a0f86e
Fixing tracer formats.
2014-01-27 21:32:20 -08:00
Ben Vanik
01c1dd6417
Fixing unpack type.
2014-01-27 21:03:17 -08:00
Ben Vanik
9b45e6f2dc
Tracers in x64, almost matching ivm.
2014-01-27 20:50:45 -08:00
Ben Vanik
58c0ea9ac7
Fixing bad vector compare.
2014-01-27 09:25:48 -08:00
Ben Vanik
6c7e392088
Fixing xmm unary ops.
2014-01-26 22:57:39 -08:00
Ben Vanik
c828e5416e
Starting on some unary xmm opcodes.
2014-01-26 22:47:15 -08:00
Ben Vanik
234aa4f543
Some parts of vector comparison.
2014-01-26 22:25:28 -08:00
Ben Vanik
6c6f10ad48
Moving op templates to op_utils.inl.
2014-01-26 21:40:25 -08:00
Ben Vanik
ae6c903173
Reformating lambdas to make vs happier.
2014-01-26 21:34:46 -08:00
Ben Vanik
6e35b6efa3
Renaming op utils.
2014-01-26 21:30:34 -08:00
Ben Vanik
ed4efccc30
Fleshing out skeletons for most sequences.
2014-01-26 21:27:45 -08:00
Ben Vanik
1988edfd55
Cleaning up a bit in prep for float/vec.
2014-01-26 21:04:30 -08:00
Ben Vanik
1518523651
Untested code for static register load/stores.
2014-01-26 18:51:56 -08:00
Ben Vanik
638afa686c
Skeleton for PACK/UNPACK.
2014-01-26 18:21:12 -08:00
Ben Vanik
672a4fd504
LOAD_CLOCK.
2014-01-26 18:20:59 -08:00
Ben Vanik
e785e31a6f
Disabling context prop pass until register spilling is implemented.
2014-01-26 17:52:45 -08:00
Ben Vanik
d323e6d3ec
Indirect calls and fixing v128 const loads.
2014-01-26 17:52:32 -08:00
Ben Vanik
0123b63aa2
Adding (somewhat) ivm compatible ctx load/store tracing.
2014-01-26 17:42:03 -08:00
Ben Vanik
638d9631af
Fixing register allocation bug.
2014-01-26 17:38:40 -08:00
Ben Vanik
f55fb17e1b
MUL/MUL_HI/DIV
2014-01-26 16:09:25 -08:00
Ben Vanik
ebaf8aa16d
Fixing extends. Xbyak doesn't have good validation, so expecting more :(
2014-01-26 15:46:10 -08:00
Ben Vanik
e52a7bc3af
Fixing things, breaking others.
2014-01-26 15:10:39 -08:00
Ben Vanik
122761835e
Adding new instructions and cleaning things up a bit.
2014-01-26 12:14:29 -08:00
Ben Vanik
bbf3b4bdab
Fixing tail calls.
2014-01-26 11:45:58 -08:00
Ben Vanik
aadf92e4ea
'Fixing' register clobbering by disabling a bunch of nonvolatile regs.
2014-01-26 11:18:12 -08:00
Ben Vanik
ac59b61851
Fixing register eviction.
2014-01-26 11:17:53 -08:00
Ben Vanik
5eeeee7093
Fixing jumps.
2014-01-26 11:17:12 -08:00
Ben Vanik
7fe0a10d43
Adding back --break_on_instruction.
2014-01-26 11:16:55 -08:00
Ben Vanik
3e52a99adf
Fiddling with stack. Still wrong.
2014-01-26 04:34:29 -08:00
Ben Vanik
495edda8d8
Logging comments like IVM.
2014-01-26 04:01:51 -08:00
Ben Vanik
51ae8299d9
Fixing stack size.
2014-01-26 03:54:50 -08:00
Ben Vanik
20c8eb1561
Making debug disassembly look a bit better.
2014-01-26 03:24:55 -08:00
Ben Vanik
cb352c6c86
Fancy templated helpers.
2014-01-26 03:17:03 -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
8789fd4134
Heuristically detecting ret - probably breaks some things.
2014-01-26 01:09:25 -08:00
Ben Vanik
c74f35552a
(air quotes) "register allocation" without spills.
2014-01-25 23:36:59 -08:00
Ben Vanik
c4d6c7a526
Reducing value count. IVM could take advantage of this.
2014-01-25 22:47:21 -08:00
Ben Vanik
05432242ff
Removing block continuation branches.
2014-01-25 21:35:59 -08:00
Ben Vanik
f438fa980d
Fixing source offsets.
2014-01-25 21:32:30 -08:00