Commit Graph

8397 Commits

Author SHA1 Message Date
Unknown W. Brackets
1df08518ae jit-ir: Implement basic icache clear. 2016-07-01 17:27:24 -07:00
Unknown W. Brackets
6fb34d0bee jit-ir: Add initial breakpoint support.
No memory breakpoints yet, and cache isn't cleared yet so these don't work
exactly the way you might expect...
2016-07-01 17:15:57 -07:00
Unknown W. Brackets
8fab3dc91b jit-ir: Allow 3x3 and 2x2 vmmov in IR.
While this will generate a lot of FMovs, it should still be better than
bailing to interp.
2016-07-01 14:08:32 -07:00
Unknown W. Brackets
65394f1dba jit-ir: Fix vbfy with overlap. 2016-07-01 14:08:31 -07:00
Unknown W. Brackets
4761c0aa3f jit-ir: Allow SIMD on vabs/vneg. 2016-07-01 14:08:31 -07:00
Henrik Rydgård
befeba7d80 Merge pull request #8832 from unknownbrackets/pbp-minor
Consistently resolve PBP paths, use /s in recent
2016-06-27 09:48:24 +02:00
Henrik Rydgård
3b67ed57a8 Merge pull request #8833 from unknownbrackets/reporting
Add reporting for sceKernelDevkitVersion() calls
2016-06-27 09:47:24 +02:00
Unknown W. Brackets
5009dcab7a Add reporting for sceKernelDevkitVersion() calls.
We currently default to 1.50 as the reported version, but we more or less
emulate a 6.60 system.  It may be better to return 6.60, but let's see
what would actually be impacted by that first.
2016-06-26 20:52:48 -07:00
Unknown W. Brackets
eb674b4699 Reduce load delay with many recent http files.
If we have data for them, we can start up fairly quickly.
2016-06-26 20:45:04 -07:00
Unknown W. Brackets
9d6684a776 Consistently resolve PBP paths, use /s in recent.
Drag and drop was using \s causing duplicate recent entries and confusing
some of the PBP parsing.  Let's make it all a bit safer.
2016-06-26 20:33:25 -07:00
Unknown W. Brackets
dcf8da244d Prevent buffer overrun from OSK dialog.
If there was never a null, by mistake, we'd corrupt memory and then crash.

Occurs in the "Sonymon" homebrew.
2016-06-26 20:28:01 -07:00
Unknown W. Brackets
7695cd78cb Show a confirmation screen after feedback submit. 2016-06-25 23:11:20 -07:00
LunaMoo
101df1da2b Ooops;3, remove leftover 2016-06-21 06:29:26 +02:00
LunaMoo
6c14b82005 Fix #8448 properly, in case we fail to generate ID.
Limit homebrew ini file generation to UI.
2016-06-20 20:50:13 +02:00
LunaMoo
778c518a37 Cheat menu access from gameScreen + minor bugfix +
Invalidate JIT for 0xE/0xD checks
And big thanks to [Unknown] for help:3
2016-06-20 11:33:02 +02:00
daniel229
cfff0e9d82 Enable extra ram for The Elder Scrolls Travels Oblivion USA Beta and Melodie - alpha 2016-06-14 15:42:54 +08:00
Unknown W. Brackets
c0c43acb6e Buildfix for gcc.
At least our Travis gccs are hitting an ICE.
2016-06-12 12:08:34 -07:00
Unknown W. Brackets
85e7980c44 Prompt for reporting even when disabled.
To improve visibility.
2016-06-12 10:46:57 -07:00
Unknown W. Brackets
2ceee79324 Send screenshots with compatibility reports. 2016-06-12 10:00:32 -07:00
Unknown W. Brackets
da0a79f695 Add an extra param for reporting to verify data. 2016-06-12 07:34:21 -07:00
Unknown W. Brackets
7af1deb768 Reduce chance of reporting data corruption.
We already check for spam, so this shouldn't be happening, but let's play
it safer.
2016-06-12 07:30:36 -07:00
Unknown W. Brackets
6151f8ef9f Allow taking screenshots with a clamped size.
Sometimes 10x is a little on the big side.
2016-06-12 07:09:01 -07:00
Unknown W. Brackets
80d72acaec Psmf: Correct default stream.
Fixes Jeanne d'Arc, others.
2016-06-07 20:41:13 -07:00
Henrik Rydgård
ce8d2bef57 Merge pull request #8803 from unknownbrackets/mpeg
Reject invalid MPEG puts for certain lib versions
2016-06-05 13:44:38 +02:00
Henrik Rydgård
cad7235c86 Merge pull request #8802 from unknownbrackets/file-minor
Fix extract file and sharing violation handling
2016-06-05 08:22:48 +02:00
Henrik Rydgård
3649231d66 Merge pull request #8799 from unknownbrackets/psmf
Correct some more scePsmf functions
2016-06-05 08:22:12 +02:00
Unknown W. Brackets
5fcf6ee012 Provide clearer errors for invalid ISOs. 2016-06-04 22:10:47 -07:00
Unknown W. Brackets
bda1956f90 Psmf: Enable error check on player create.
Reporting makes it look like this should be safe.
2016-06-04 18:17:38 -07:00
Unknown W. Brackets
cf2796de41 Psmf: Allow each struct to have its own stream.
Some games will create a clone, and then set a different stream on it,
e.g. one for the video, another for the audio stream.
2016-06-04 18:17:37 -07:00
Unknown W. Brackets
b13c68a373 Psmf: Correct get video/audio info errors.
This actually grabs from the currently specified stream, and fails if it's
the wrong type.  Additionally, return stream-specific info... unlikely to
matter, hard to imagine a video with a mono and stereo stream.

Also reduces log verbosity.
2016-06-04 18:17:37 -07:00
Unknown W. Brackets
185ad781f3 Psmf: Add better error handling for SetPsmf.
Checked on different devkit versions in case of changes.
2016-06-04 18:17:36 -07:00
Unknown W. Brackets
4826405c26 File: Retry open when a sharing violation is hit.
Some editors will lock the file while it's open, and it is convenient if
you can still have things work when that happens.
2016-06-04 18:17:05 -07:00
Unknown W. Brackets
04dcaeae1d Mpeg: Move, rather than resetting, packetsAvail.
When we've got garbage data, this has to stay incorrect.  Without this,
Megaman X gets confused when playing its video (because it enqueues
garbage packets.)

See #3318.
2016-06-04 18:16:23 -07:00
Unknown W. Brackets
4ee39f82e4 Mpeg: Validate added packets.
Older libraries only, but this will cause it to reject packets that don't
make sense.  So far, this seems to mirror the behavior of various garbage
packets sent to the real firmware.
2016-06-04 18:16:22 -07:00
Unknown W. Brackets
c8d0270bb4 Mpeg: Validate data more during demux.
This also parses a bit earlier, not requiring a full 2048 bytes ahead at
all times.
2016-06-04 18:16:21 -07:00
Unknown W. Brackets
41f2999a2b Mpeg: Write into the ringbuffer using actual ring.
This mimics behavior with clamped sizes and wrap around, and also makes it
easier to implement the garbage data handling the PSP has.
2016-06-04 18:16:21 -07:00
Unknown W. Brackets
4d16835990 Mpeg: Validate the pack header. 2016-06-04 18:16:20 -07:00
Unknown W. Brackets
b191fd2914 Mpeg: Make sure not to demux outside the buffer. 2016-06-04 18:16:19 -07:00
Unknown W. Brackets
6d14c17f26 Mpeg: Treat negative available packets as zero. 2016-06-04 18:16:19 -07:00
Unknown W. Brackets
deffb246ae Mpeg: Require less memory for older lib versions.
It seems it started requiring 64k at 1.05.
2016-06-04 18:16:18 -07:00
Henrik Rydgård
606856c9ad Merge pull request #8791 from unknownbrackets/delay
Minor sysclock delay accuracy improvements
2016-05-31 21:08:00 +02:00
Henrik Rydgård
87f3cf565a Merge pull request #8793 from unknownbrackets/psmf
Correct some scePsmf info retrieval funcs and error handling
2016-05-31 21:04:50 +02:00
Unknown W. Brackets
f4a06cd79a Remove an impossible assert condition. 2016-05-31 11:56:23 -07:00
Unknown W. Brackets
6ee770bd80 Add some missing overrides to declarations. 2016-05-31 11:55:45 -07:00
Unknown W. Brackets
f084084ff7 Clean up accidental debug code. 2016-05-31 11:53:17 -07:00
Unknown W. Brackets
25136eb019 Remove an unused function. 2016-05-31 11:40:39 -07:00
Unknown W. Brackets
419b960403 x86jit: Fix params in Replace_fabsf. 2016-05-31 10:40:14 -07:00
Unknown W. Brackets
91887ad85c Psmf: Correct errors in current stream num. 2016-05-31 09:55:51 -07:00
Unknown W. Brackets
0a00777403 Psmf: Only write current type/channel if valid.
And improve error handling in general.
2016-05-31 09:55:51 -07:00
Unknown W. Brackets
7ad07ca82e Psmf: Handle stream specification per tests.
These seem buggy, but generally sane.
2016-05-31 09:55:50 -07:00
Unknown W. Brackets
cca9a73105 Psmf: Start at stream 0 when not specified. 2016-05-31 09:55:49 -07:00
Unknown W. Brackets
510db2051d Psmf: Detect PCM streams from private stream info.
This logic comes from Jpcsp.  Let's report though and see if there's more.
2016-05-31 09:55:49 -07:00
Unknown W. Brackets
74239c199d Psmf: Allow AUDIO type when specifying streams. 2016-05-31 09:55:48 -07:00
Unknown W. Brackets
5f7c95f249 Psmf: Count PCM as an AUDIO stream as well. 2016-05-31 09:55:47 -07:00
Unknown W. Brackets
9df727f94f Psmf: Stop pretending streamMap is a vector. 2016-05-31 09:55:47 -07:00
Unknown W. Brackets
8df298f622 Thread: Auto-resume dispatch for worse threads.
Seems this doesn't happen when you start a better priority thread, pretty
reproducibly.
2016-05-31 09:55:20 -07:00
Unknown W. Brackets
197f3393df Thread: Better/minor accuracy for sysclock delay.
Certain negative values shouldn't cause a delay, could help if a game has
a bug.
2016-05-31 09:55:19 -07:00
Unknown W. Brackets
baac12b327 Log args for dispatch/interrupt early-fail. 2016-05-31 09:55:18 -07:00
NCDyson
cc829f31b8 Attempt to fix segfault on VirtualDiscFileSystem::GetFileInfo for files where handler is specified 2016-05-31 06:23:53 -05:00
Unknown W. Brackets
5840338397 Create parent directories when saving new textures. 2016-05-31 00:13:53 -07:00
Unknown W. Brackets
bfda12fa23 Allow more options in texture [hashes] syntax.
This allows you to ignore the address or address and clut hash.
2016-05-31 00:13:52 -07:00
Unknown W. Brackets
d0d570c6ac ThreadEvent: Delete threads after handler runs.
It should actually run on the thread itself, it seems, but that's probably
not as important as the thread still existing.  This allows the handler to
get the thread name or etc.
2016-05-30 13:00:23 -07:00
Unknown W. Brackets
21ba67e1d7 Module: Add legacy save state stub fixup.
Forgot this, when we don't have the stub info.  Stub info is better, since
we might handle things differently.
2016-05-30 02:11:28 -07:00
Unknown W. Brackets
0592f56df5 Oops, this modifies the input string it seems.
Not sure if ISOs are actually case insensitive, though?
2016-05-30 00:38:20 -07:00
Henrik Rydgård
45f7afcfa1 Merge pull request #8788 from unknownbrackets/virtfs
VirtFS: Normalize leading slashes in index.
2016-05-30 08:51:38 +02:00
Henrik Rydgård
5b9eecf673 Merge pull request #8787 from unknownbrackets/thread-delay
Thread: Use a short delay for 0us delays after all
2016-05-30 08:50:57 +02:00
Unknown W. Brackets
9f668a1d31 VirtFS: Normalize leading slashes in index.
Otherwise, we might consider "/x" and "x" to be different files, and fail
to use the handler properly.
2016-05-29 22:13:33 -07:00
Unknown W. Brackets
65820d6184 Thread: Use a short delay for 0us delays after all.
It seems the behavior varies.  Should help #6924 and #6981.
2016-05-29 22:04:47 -07:00
Unknown W. Brackets
a450a79f52 jit-ir: Optimize loads to transfers if possible.
These (especially float <-> gpr) happen in all games, but gpr->gpr is
especially common in some minis.  Good to reduce bloat.
2016-05-29 18:34:41 -07:00
Henrik Rydgård
a835c4aa8f Merge pull request #8784 from unknownbrackets/vfpu-minor
Special case specific sin/cos result values
2016-05-29 17:57:09 +02:00
Unknown W. Brackets
5b7bd8155d Special case specific sin/cos result values.
Fixes #7737, thanks go to gid15 from Jpcsp for finding and daniel229 for
reporting.
2016-05-29 08:51:38 -07:00
Unknown W. Brackets
1a3fc9cdeb Module: Avoid writing missing stubs on reimport.
In case they were manually linked, or something.
2016-05-29 08:29:51 -07:00
Unknown W. Brackets
9b706975ad Module: Reimport stubs on load state. 2016-05-29 08:27:19 -07:00
Unknown W. Brackets
47f16ed97b Module: Refactor stub imports to dedicated func. 2016-05-29 08:07:01 -07:00
Unknown W. Brackets
12b907ed60 Put syscalls back where they were supposed to be.
Oops, didn't mean to move this.  Might've broken save states.
2016-05-29 07:31:22 -07:00
Unknown W. Brackets
4fc12cdd29 ThreadEvent: Handle getting scheduled off a thread. 2016-05-29 00:59:52 -07:00
Unknown W. Brackets
97cce6ccfe ThreadEvent: Trigger handlers for start/exit too.
Start isn't in the right place or on the right thread, and exit isn't on
the right thread either.  But these don't seem very particular about what
thread they run on.
2016-05-28 21:19:28 -07:00
Unknown W. Brackets
c6cd614f2b Thread: Allow mipscalls to be scheduled in a row.
Should be fine to just use the stack to save these things, likely that's
what happens in real firmware.  This fixes issues when a second mipscall
is scheduled in the same HLE syscall.
2016-05-28 21:18:03 -07:00
Unknown W. Brackets
ceb36fc81d ThreadEvent: Allow an exit event handler on self. 2016-05-28 21:17:54 -07:00
Unknown W. Brackets
be1cde15ba ThreadEvent: Initial support for create/delete. 2016-05-28 21:17:36 -07:00
Unknown W. Brackets
e9916bdf0b ThreadEvent: Add management functions.
Currently never being triggered, though.
2016-05-28 21:17:16 -07:00
Unknown W. Brackets
04576189b4 Callbacks: Fix delete when multiple for a thread.
Oops, this was deleting all after the deleted one.
2016-05-28 21:15:25 -07:00
Henrik Rydgard
0d6ad3df2f Fix wrong type of parameter to UpdateRunLoop. Do not understand how this compiled. 2016-05-28 16:11:02 +02:00
Henrik Rydgård
3147f1ac95 Merge pull request #8775 from unknownbrackets/http
Clean up HTTP server implementation
2016-05-28 12:34:55 +02:00
Unknown W. Brackets
a1fbcc3d93 Avoid directly calling osm from Core/GPU code.
This allows UI to handle the message however it wants to, and reduces
cross linkage issues.
2016-05-27 22:05:30 -07:00
Unknown W. Brackets
27d135d48a Decouple save states from UI.
It's the UI's job to decide how and what things are displayed, not Core's.
This also reduces reasons for linkage issues.
2016-05-27 21:25:05 -07:00
Unknown W. Brackets
e6cf296d1a Trigger save slot display from UI code.
Core shouldn't be calling UI code.
2016-05-27 20:53:20 -07:00
Unknown W. Brackets
afdd01571c Uncouple savestates from NativeApp some.
Still have osm.
2016-05-27 20:41:37 -07:00
Unknown W. Brackets
95d912c378 Get rid of the input_state global linkage. 2016-05-27 20:24:01 -07:00
Unknown W. Brackets
9e9bc91405 Fix a crash when opening a file without extension. 2016-05-26 18:16:41 -07:00
Unknown W. Brackets
8dd7527dc8 Clamp reads at the beginning too.
Safer, avoids an index overrun in disk cache.
2016-05-26 00:07:46 -07:00
Unknown W. Brackets
1c357f7f7b Fix reads from cache outside the file.
Homebrew seems to all trigger us to read after the end of file, which was
looping infinitely.  Fixes #8773.
2016-05-25 18:42:21 -07:00
Unknown W. Brackets
4113fd940c Add ugly invalidation workaround for SGS7s.
Otherwise they just crash, and crash often.  Special thanks to Jaaan for
numerous trials to try to find the best way to solve the crashes.
2016-05-23 21:35:28 -07:00
Henrik Rydgård
540181c32d Merge pull request #8759 from unknownbrackets/qt-size
Improve display of Qt at 1x size
2016-05-22 10:56:00 +02:00
Henrik Rydgård
faa6b16319 Merge pull request #8763 from unknownbrackets/jit-minor
x86jit: Fix vmmul of matrix with itself
2016-05-22 10:55:39 +02:00
Unknown W. Brackets
12f8df395b Return correct bytes near end in RAM caching.
Reading beyond the end of file should not return data.  Also check what
the backend actually returned, in case it wasn't able to return data
either.
2016-05-22 01:35:16 -07:00
Unknown W. Brackets
546c0a5d9b Fix buffer overflow in RAM caching feature.
Would mainly affect files not even block sizes, such as CSO files, but
might affect all files.  Oops.  Fixes #8764.
2016-05-22 01:34:31 -07:00
Unknown W. Brackets
e65e794f28 x86jit: Fix vmmul of matrix with itself.
Was not SIMDing correctly.  Probably rare in practice.
2016-05-21 23:02:29 -07:00
Unknown W. Brackets
6159bc003b Allow Qt platforms to use smallWindow dpi logic.
It doesn't look like there's any reason to limit this to Windows.
2016-05-21 09:58:23 -07:00
Henrik Rydgård
bb7dd908ba Merge pull request #8760 from unknownbrackets/warnings
Warning fixes + more ccache
2016-05-21 18:35:29 +02:00
Unknown W. Brackets
a913e0f0fc Remove some unused private properties. 2016-05-21 09:29:04 -07:00
Unknown W. Brackets
b09c2b1f75 Add some missing override definitions. 2016-05-21 09:29:03 -07:00
Unknown W. Brackets
f0cc975865 Hook some funcs in Me and My Katamari.
One is a very hardcoded screenshot download / vfpu convert to 565, and the
other is some very weird check to make sure render is clear or has
happened or something.

The screenshot func detects downloads for the "Royal Album".  The render
check detects downloads for post-rename (no idea why it checks here.)

Fixes #7695.
2016-05-20 22:30:25 -07:00
Unknown W. Brackets
eee98966f4 Add Memory utility to detect shutdown. 2016-05-19 21:17:17 -07:00
Henrik Rydgård
306f7423e7 Merge pull request #8755 from unknownbrackets/cpu-div
Handle divide by zero more accurately in jit
2016-05-19 09:30:25 +02:00
Unknown W. Brackets
2d3df5c621 armjit: Handle divide by zero more accurately.
Turns out, some games may depend on this behavior.
2016-05-19 00:07:41 -07:00
Unknown W. Brackets
5105e1947f x86jit: Set HI/LO properly on divide by zero. 2016-05-19 00:06:53 -07:00
Henrik Rydgård
3554024a05 Merge pull request #8750 from unknownbrackets/display-minor
Add vblank wait to sceDisplaySetMode, fix default brightness value
2016-05-19 08:49:19 +02:00
Henrik Rydgard
3cae60b320 Revert potentially dangerous optimization that may have caused #8754, though not sure how. 2016-05-18 21:22:08 +02:00
Unknown W. Brackets
ee31f09b67 Buildfix. 2016-05-18 07:12:21 -07:00
Unknown W. Brackets
5534fba72c jit-ir: Add load/store reorder and merge passes.
Can do more in merge, potentially.  Maybe it's not useful...
2016-05-17 21:24:13 -07:00
Unknown W. Brackets
a9cdf7651e jit-ir: Mark prefixes unknown in mtv. 2016-05-17 21:22:57 -07:00
Unknown W. Brackets
b1c7f3dd3f jit-ir: Correct vx2i with partial overlap. 2016-05-17 21:22:23 -07:00
Unknown W. Brackets
842e450965 Display: Correct default brightness, add reporting.
Not sure if any games use hold/resume in a way that ought to work.
Display didn't seem to react to them being called.
2016-05-16 22:33:50 -07:00
Unknown W. Brackets
d0dc03f359 Display: Wait for vblank when setting mode.
Some games call this even when not needed, and it turns out to have an
important behavior.
2016-05-16 22:02:21 -07:00
Henrik Rydgård
b5b94f4a4d Merge pull request #8747 from unknownbrackets/display-minor
Display: Return 1 during the vsync period
2016-05-16 09:19:47 +02:00
Unknown W. Brackets
9ed604f9c8 Display: Return 1 during the vsync period.
Timing is based on manual tests, where the vsync signal is near the end of
the vblank.  Curiously, it stops right before the vblank stops, reliably.
2016-05-15 23:46:46 -07:00
Henrik Rydgård
558d4297fc Merge pull request #8743 from unknownbrackets/display-minor
Add validation to sceDisplaySetFramebuf
2016-05-16 08:04:37 +02:00
Unknown W. Brackets
597824eec6 Display: Add validation/report to set mode.
This seems to be involved in using the video out cable, but fails for
anything but these fixed parameters in normal situations.
2016-05-15 22:16:31 -07:00
Unknown W. Brackets
5e8e2d5e56 Display: Allow only immediate address changes.
It seems you must latch a change to stride/fmt first, which basically
makes sense.  Otherwise it would revert, I suppose.
2016-05-15 16:42:25 -07:00
Unknown W. Brackets
249a85b7e0 Display: Validate framebuf parameters. 2016-05-15 16:38:00 -07:00
Unknown W. Brackets
44cee09adc Dsiplay: Initialize the framebuf params better. 2016-05-15 16:29:58 -07:00
Unknown W. Brackets
958d7f0944 Display: Record bufw/fmt even when display is off.
These are returned by sceDisplayGetFrameBuf().
2016-05-15 15:55:04 -07:00
Unknown W. Brackets
26e9acee4b Display: Skip transitions between off/on in FPS.
We're just trying to detect frequent flips, so off/on doesn't play into
it.
2016-05-15 15:54:04 -07:00
Henrik Rydgard
fff898b526 Log the block when "uneaten prefix" happens 2016-05-16 00:05:03 +02:00
Henrik Rydgard
dc772e6f3a Add missing cases to simplify pass 2016-05-15 23:39:42 +02:00
Henrik Rydgard
f544364c4a Fix bug in vus2i (thanks unknown), recognize vectors in IR disasm 2016-05-15 23:35:33 +02:00
Unknown W. Brackets
e960158490 jit-ir: Add notes and report about vrot prefixes. 2016-05-15 14:08:59 -07:00
Unknown W. Brackets
ab1461faca Add prefix handling to vfpu color conv per tests. 2016-05-15 13:16:03 -07:00
Unknown W. Brackets
3f0fc2d851 jit-ir: Fix FSat0_1 behavior on -0.0f. 2016-05-15 13:10:49 -07:00
Unknown W. Brackets
fa61deae3d Remove unused value. 2016-05-15 12:43:35 -07:00
Unknown W. Brackets
6bf1390603 Fix timing drift on CoreTiming::ForceCheck().
Since -1 -(-1) = 0, we'll never think we moved forward this way.
2016-05-15 12:43:34 -07:00
Henrik Rydgard
d6c2b6e9ae Most of vi2x 2016-05-15 11:46:01 +02:00
Henrik Rydgard
905af75925 vx2i, vbfy, vsgn 2016-05-15 10:57:43 +02:00
Henrik Rydgard
7046f960e5 IR: Add vrot 2016-05-15 10:36:18 +02:00
Henrik Rydgård
168573e711 Merge pull request #8740 from unknownbrackets/ir-vfpu
More VFPU comments, implement vmscl
2016-05-15 10:08:22 +02:00
Unknown W. Brackets
e140d36818 ir-jit: Oops, fix matrix scale + tranpose. 2016-05-15 00:59:17 -07:00
Henrik Rydgård
205419a72e Merge pull request #8741 from unknownbrackets/ir-alu
IR the remaining ALU ops, correct div by zero
2016-05-15 09:43:41 +02:00
Unknown W. Brackets
c606f64f71 jit-ir: Add div/divu instructions. 2016-05-14 19:23:52 -07:00
Unknown W. Brackets
6413b44434 jit-ir: Enable IR for madd(u)/msub(u). 2016-05-14 19:23:51 -07:00
Unknown W. Brackets
a05ae2a0a6 Correct divide by zero HI/LO values a bit.
Interpreter is now correct, but it's probably not all that important to
get right in jit.
2016-05-14 19:23:50 -07:00
Unknown W. Brackets
4ac773e8b4 jit-ir: Implement bit reverse instruction. 2016-05-14 18:21:42 -07:00
Unknown W. Brackets
8a3dce3b8b jit-ir: Comment most of the vfpu ops. 2016-05-14 17:35:04 -07:00
Unknown W. Brackets
e1dbcd724e jit-ir: Oops, correct vtfm for transposed case.
The ones that are aligned are here in this case.  Fixes crash in Crisis
Core.
2016-05-14 16:20:39 -07:00
Unknown W. Brackets
01d63a1a9d jit-ir: Implement vmscl. 2016-05-14 16:20:21 -07:00
Unknown W. Brackets
2e097b8996 Oops, typos. 2016-05-14 14:28:05 -07:00
Unknown W. Brackets
d5d77b41f9 jit-ir: Properly flip vtfm simd cases.
Disable the broken one and add clearer comments.
2016-05-14 14:23:18 -07:00
Unknown W. Brackets
7c9f368d63 jit-ir: Add some descriptions of mnemonics.
Sometimes I forget what vhdp etc. meant, let's make the VFPU code a bit
more accessible.
2016-05-14 14:21:53 -07:00
Henrik Rydgård
8f430e9631 Merge pull request #8736 from unknownbrackets/ir-clear
Clear emuhacks on IR block destroy and save state
2016-05-14 18:51:39 +02:00
Unknown W. Brackets
1f28d802a3 FreeBSD buildfix.
We need Common to have the right _M_SSE define.  Also, let's not define
SSE4 until we need it, since we might need ifs.
2016-05-14 09:06:56 -07:00
Unknown W. Brackets
e37777648e jit-ir: Restore emuhacks before saving state.
Let's just ask jit to do this, not its block cache directly.
2016-05-14 08:59:44 -07:00
Unknown W. Brackets
b74df87db0 jit-ir: Clear emuhacks on block destroy. 2016-05-14 08:40:53 -07:00
Henrik Rydgard
0541fe36df Symbian buildfix, fix for fpu test 2016-05-14 15:26:43 +02:00
Henrik Rydgard
b612806ee4 Remove accidentally added file 2016-05-14 14:32:43 +02:00
Henrik Rydgard
64eda6a4ec IR: Split Syscall into Syscall and ExitToPC, so we can put ApplyRoundingMode in between. 2016-05-14 14:32:22 +02:00
Henrik Rydgard
91bc3c31a5 Warning fixes 2016-05-14 14:01:27 +02:00
Henrik Rydgard
7a7c3b9b9f More VFPU, vmmul thoughts 2016-05-14 14:00:01 +02:00
Unknown W. Brackets
efc8a8e353 Hack to make Symbian build. 2016-05-13 23:56:17 -07:00
Henrik Rydgard
b7091a8f5d Simplifications and fixes 2016-05-13 21:02:23 +02:00
Henrik Rydgard
5923013d65 Simple workaround for timing issue with coreState after syscall.
Also fixes off by one in ForceCheck.
2016-05-13 20:21:19 +02:00
Henrik Rydgard
5b2504120d Optimize some common prefixes 2016-05-13 20:15:20 +02:00
Henrik Rydgard
91a6cf5e44 Add a couple more passes (2-op, optimize f<->v fp moves) 2016-05-13 20:14:03 +02:00
Henrik Rydgard
f636b2a315 Minor build and other fixes 2016-05-13 19:31:27 +02:00
Unknown W. Brackets
066b0b7fdf jit-ir: Optimize out beql; break; sequences.
These are often used following divs, and are harmless.  Things get a bit
easier if we just never compile them.
2016-05-13 07:59:39 -07:00
Unknown W. Brackets
7b43e0e59d jit-ir: Add nan/inf compares.
Without this, Gods Eater Burst crashes before going in game.
2016-05-12 22:53:21 -07:00
Unknown W. Brackets
9e3572dc63 jit-ir: Improve vidt to handle more cases. 2016-05-12 22:40:26 -07:00
Unknown W. Brackets
f52120353b jit-ir: Apply prefixes for vector init ops.
Without this, Gods Eater Burst is horribly broken.
2016-05-12 22:29:31 -07:00
Unknown W. Brackets
c11c0465de jir-ir: Correct vftm SIMD regs. 2016-05-12 21:29:58 -07:00
Unknown W. Brackets
1ddb2fbfb9 jit-ir: Fix non-SSE Vec4Scale. 2016-05-12 21:02:56 -07:00
Unknown W. Brackets
57b3dbff7e jit-ir: Avoid flushing on a few Vec4 ops. 2016-05-12 21:01:46 -07:00
Unknown W. Brackets
a8126ca132 jit-ir: Add some missing CONDITIONAL_DISABLEs. 2016-05-12 20:56:47 -07:00
Unknown W. Brackets
29ed8d2201 jit-ir: ExitToReg doesn't write to registers. 2016-05-12 18:34:27 -07:00
Unknown W. Brackets
9f183c97ba jit-ir: Prevent reading ahead for each reg write. 2016-05-12 18:30:55 -07:00
Unknown W. Brackets
d06c6c080c jit-ir: Expand unused regs to regular GPRs. 2016-05-12 18:30:55 -07:00
Unknown W. Brackets
99468c6fc1 jit-ir: Optimize out unused temp regs.
This way, if constants have made the temp obsolete (common with ins, for
example), it won't even get set anymore.
2016-05-12 18:30:53 -07:00
Henrik Rydgard
7268abec61 IR: vcmp, vcmov, vhdp 2016-05-12 22:35:31 +02:00
Henrik Rydgard
1851458628 Bugfixes 2016-05-12 20:28:59 +02:00
Henrik Rydgard
c69a8c07dc Forgot this 2016-05-12 20:20:59 +02:00
Henrik Rydgard
850d0abc91 IR: More VFPU. Support normal fp compares. 2016-05-12 20:16:15 +02:00
Henrik Rydgard
182674cddf IR: SIMD another matrix orientation. Fix various issues. 2016-05-12 13:10:26 +02:00
Henrik Rydgard
cb251ea93f Crashfix in savestate (hmmmm...) 2016-05-12 12:18:12 +02:00
Henrik Rydgard
2cbfb192c4 IR: Lots more VFPU support, some with SIMD 2016-05-12 12:17:25 +02:00
Henrik Rydgard
219548b8e2 Prefix prep 2016-05-11 00:16:07 +02:00
Henrik Rydgard
b3dd36982f Prefix prep 2016-05-10 23:14:26 +02:00
Henrik Rydgard
db1d1ff9fd IR: Merge the FPU and VFPU instruction sets, no reason to keep them apart 2016-05-10 22:55:27 +02:00
Henrik Rydgard
45efcda6b1 IR: Some more VFPU 2016-05-10 21:50:08 +02:00
Henrik Rydgard
558bb197c7 More VFPU 2016-05-09 23:47:56 +02:00
Henrik Rydgard
a5d5c5ce2b Do the voffset remapping before the IR. This will let us easily add some virtual VFPU registers for the IR to the end, plus it's slightly faster. 2016-05-09 22:40:59 +02:00
Henrik Rydgard
28087a6088 IRFrontend shouldn't know about IRBlock 2016-05-09 20:18:22 +02:00
Henrik Rydgard
e711a47a75 Complete the separation of the IR compiler frontend from the "Jit" 2016-05-09 20:05:06 +02:00
Henrik Rydgard
e806c369b2 Separate the IR frontend from the IR "Jit" 2016-05-09 19:57:18 +02:00
Henrik Rydgard
6e44e97ffa Refactor prep: Split JitInterface into MIPSFrontendInterface and JitInterface 2016-05-09 19:41:39 +02:00
Henrik Rydgard
f50617d679 Skip const flush on set float constant 2016-05-09 18:47:53 +02:00
Unknown W. Brackets
eb6551d72a jit-ir: Correct downcount handling.
Oops, was wrong - already accounted for delay slots.  Clear so we don't
double count when emitting a syscall.

Fixes FF4 utility msg flickering.
2016-05-09 01:13:53 -07:00
Unknown W. Brackets
ccb8f8d77e jit-ir: Fix replacement hooks. 2016-05-09 00:36:38 -07:00
Unknown W. Brackets
f6d245f3c4 jit-ir: Remove redundant simplify pass.
This is just doing the same thing as the const folding pass, really.
2016-05-09 00:13:01 -07:00
Unknown W. Brackets
f638477b9a jit-ir: Add the rest to PropagateConstants.
Just for completeness.
2016-05-08 22:17:39 -07:00
Unknown W. Brackets
7ce923d01f jit-ir: Fix SetConstV.
Oops.
2016-05-08 22:11:53 -07:00
Unknown W. Brackets
6bd31ecb27 jit-ir: Flush consts better for a few f/v ops. 2016-05-08 21:37:46 -07:00
Unknown W. Brackets
5221a02db4 jit-ir: Propagate constants for shifts.
This might optimize away an IRTEMP_0 in such cases.
2016-05-08 19:11:58 -07:00
Unknown W. Brackets
a1b4b5170c jit-ir: Propagate constants even for overlaps. 2016-05-08 19:05:39 -07:00
Unknown W. Brackets
a22ff68e9e jit-ir: Skip flushing when updating PC. 2016-05-08 18:49:00 -07:00
Unknown W. Brackets
d09f3a22a8 jit-ir: Propagate single-op constants. 2016-05-08 16:21:17 -07:00
Unknown W. Brackets
0d7f151167 jit-ir: Add a utility func for applying passes. 2016-05-08 16:08:35 -07:00
Unknown W. Brackets
d19174b52b jit-ir: Skip const flush on downcount op.
This allows discarding more unused constants.
2016-05-08 14:56:43 -07:00
Henrik Rydgard
c7e4658b6d More constant propagation 2016-05-08 23:25:47 +02:00
Henrik Rydgard
d4480d50fd jit-ir: Less instructions cause flushing in constant propagation. 2016-05-08 23:25:08 +02:00
Unknown W. Brackets
5dbac165f4 Qt, gcc, and Symbian buildfixes. 2016-05-08 14:10:07 -07:00
Henrik Rydgard
4e52f613f1 Additional fixes and buildfixes 2016-05-08 22:23:51 +02:00
Henrik Rydgard
f8659b8e1e Move the IR interpreter out into its own file. Rename it in the UI. First CMake and Android fixes. 2016-05-08 22:06:13 +02:00
Henrik Rydgard
492ea5fac4 Address a bunch of comments, thanks for the review 2016-05-08 21:38:03 +02:00
Henrik Rydgard
3eb5480ade Initial VFPU 2016-05-08 13:32:22 +02:00
Henrik Rydgard
98113edbd4 More simplify pass 2016-05-08 11:29:11 +02:00
Henrik Rydgard
14df39d7c9 Fix IRTEMP clash bug. Add more cases to the constant propagation pass. 2016-05-08 10:36:37 +02:00
Henrik Rydgard
aae32bd929 ir-jit: Re-enable mult. Fix bvf/bvt 2016-05-08 02:47:19 +02:00
Henrik Rydgard
46e839b2b2 ir-jit: Fix bugs in rounding 2016-05-08 02:26:36 +02:00
Henrik Rydgard
e750987052 ir-jit: Fix bug in ext 2016-05-08 02:09:01 +02:00
Henrik Rydgard
7d4774db4c Fix wsbw 2016-05-08 02:08:25 +02:00
Henrik Rydgard
1a2edc67d0 Add support for float store/load 2016-05-08 02:03:11 +02:00
Henrik Rydgard
ce8aae5ed1 Make the IRJit core selectable in developer tools 2016-05-08 01:43:27 +02:00
Henrik Rydgard
09969c0156 Use the regcache in a new (incomplete) pass, PropagateConstants. 2016-05-08 01:06:07 +02:00
Henrik Rydgard
a33f8b68c6 ir-jit: Get rid of the regcache. Should be replaced with optimization passes. 2016-05-07 23:12:53 +02:00
Henrik Rydgard
750d520cc7 Initial work on mult and friends. Fix another bug. 2016-05-07 22:27:58 +02:00
Henrik Rydgard
3c5510e5a3 Disable debug file logging, fix issue with replacement functions, etc 2016-05-07 21:35:12 +02:00
Henrik Rydgard
38b7d89dfb Fix a performance issue in CallSyscall 2016-05-07 21:34:27 +02:00
Henrik Rydgard
12edfcea5a Enough to run cpu_alu.prx. 2016-05-07 21:00:30 +02:00
Henrik Rydgard
4acf85aa06 It's kind of starting to run 2016-05-07 17:37:19 +02:00
Henrik Rydgard
d399c4a470 Initial commit for IRJit 2016-05-07 13:58:29 +02:00
Henrik Rydgard
49a6a2f6cf Minor refactor - let's not access a global when we don't need to 2016-05-06 21:22:36 +02:00
Unknown W. Brackets
9280bb3eda Merge pull request #8715 from unknownbrackets/tex-replace
Initial texture replacement support
2016-05-01 09:58:16 -07:00
Unknown W. Brackets
2e1986d0c8 Fix a few reorder warnings. 2016-05-01 09:50:03 -07:00
Henrik Rydgård
b6d7aab8dc Merge pull request #8716 from hrydgard/remove-preprocessor-hacks
Remove preprocessor hacks around the JITs
2016-05-01 18:47:59 +02:00
Henrik Rydgard
ccce19e14a Fix accidentally truncated comment. 2016-05-01 18:47:32 +02:00
Unknown W. Brackets
994d2dd85e Skip video in replacement saving by default. 2016-05-01 08:58:14 -07:00
Unknown W. Brackets
c20075b0e0 Pass video info to texture replacements. 2016-05-01 08:54:43 -07:00
Unknown W. Brackets
f5b93bc6f0 Remove global num videos hack. 2016-05-01 08:53:48 -07:00
Unknown W. Brackets
329be68f57 Fix error when disabled.
We want to return a reference here, so let's always return.
2016-05-01 08:04:15 -07:00
Henrik Rydgård
e91fc59bbe Merge pull request #8693 from sum2012/pmp-video
Temporarily disable PMP video for non-windows
2016-05-01 11:49:55 +02:00
Henrik Rydgard
ffe4c266ef Add CodeBlockCommon base class to remove further arch-specificity in JitBlockCache
Remove unused ArmThunk.
2016-05-01 11:40:00 +02:00
Henrik Rydgard
8b450c8034 Merge NativeJit.cpp/h with JitCommon.cpp/h 2016-05-01 11:39:59 +02:00
Henrik Rydgard
5aadce59a2 Move architecture-specific code out of JitBlockCache 2016-05-01 11:39:58 +02:00
Henrik Rydgard
a5be0976bd Remove preprocessor hacks to choose JIT implementation.
Opens up for having multiple JIT implementations available at runtime,
which could be use for experimenting with new JIT compiler types or for
unit testing one JIT on another architecture.

Very few of the newly virtual calls are on any sort of critical path so
hopefully there will not be a performance loss.
2016-05-01 11:39:53 +02:00
Henrik Rydgard
106a7d6a3b Remove more unused code (advanceCallback) 2016-05-01 11:35:16 +02:00
Henrik Rydgard
4645473dab Remove unused code 2016-05-01 11:35:16 +02:00
Unknown W. Brackets
450554450f Attempt to buildfix Symbian. 2016-05-01 00:48:11 -07:00
Unknown W. Brackets
cd6f36a439 Correct handling of 8 bit and no-alpha PNGs. 2016-05-01 00:30:54 -07:00
Unknown W. Brackets
f26c0328da Check alpha when loading replaced textures. 2016-05-01 00:30:53 -07:00
Unknown W. Brackets
c4b27525e0 Disable texture replacement on Qt. 2016-05-01 00:30:52 -07:00
Unknown W. Brackets
bed82da352 Make ini case insensitive. 2016-05-01 00:30:51 -07:00
Unknown W. Brackets
223f95f28c Allow a short alias for video frames, etc. 2016-05-01 00:30:51 -07:00