Unknown W. Brackets
bc4a203fcf
Power: Correct hz on update and improve resched.
...
It only reschedules when the PLL changes, which changes in steps. This
also reads back much more accurate Mhz for each of PLL, CPU, and bus.
2019-04-14 14:51:35 -07:00
Unknown W. Brackets
ec7cffa847
interp: Handle vtfm/vhtfm prefixes properly.
2019-04-02 18:46:39 -07:00
Unknown W. Brackets
442d6450bb
interp: Correct prefixes on vfad and vavg.
...
Including write mask, which didn't work before.
2019-04-02 18:46:39 -07:00
Unknown W. Brackets
5414c12a15
interp: Cleanup prefix/size in vcrsp/vqmul.
2019-04-02 07:12:34 -07:00
Unknown W. Brackets
58573cd4b4
interp: Handle invalid swizzle for vmin/vmax.
2019-04-02 07:08:33 -07:00
Unknown W. Brackets
e8c060bb5f
interp: Correct vwbn and vlgb size behavior.
2019-04-02 07:08:20 -07:00
Unknown W. Brackets
89dbfd7d5b
interp: Better prefixes for vdiv/similar ops.
...
Turns out it does work, just uses the wrong slot like S/T after all.
These other ops must go through the a similar process.
2019-04-02 07:07:53 -07:00
Henrik Rydgård
24cfad87d1
Merge pull request #11955 from unknownbrackets/vfpu-chunk6
...
Correct prefixes for several swizzled ops, use zero for invalid
2019-04-01 17:13:34 +02:00
Henrik Rydgård
b346142df8
Merge pull request #11954 from unknownbrackets/vfpu-chunk5
...
Fix prefix and size handling for vsbx, vsocp, and integer conv ops
2019-04-01 17:12:03 +02:00
Unknown W. Brackets
6f87987e7b
interp: Correct prefixes on vdot/vhdp.
2019-03-31 17:12:21 -07:00
Unknown W. Brackets
b24f84d1a2
interp: Handle prefixes on matrix init ops.
2019-03-31 17:11:24 -07:00
Unknown W. Brackets
59905de719
interp: Correct vsgn out of swizzle bounds.
2019-03-31 17:10:51 -07:00
Unknown W. Brackets
85ff32eed1
interp: Handle vsgn prefixing.
...
One could compare against 3 using this, it just generates zeros to compare
with.
2019-03-31 17:10:51 -07:00
Unknown W. Brackets
a5214d0b1a
Jit: Ignore high bit in vmfvc/vmtvc.
2019-03-31 17:09:55 -07:00
Unknown W. Brackets
b881a689c4
interp: Ignore high bit in vmfvc/vmtvc.
...
Both 0 and 128 read/write the S prefix, for example.
2019-03-31 17:09:55 -07:00
Unknown W. Brackets
dffa238611
interp: Handle invalid swizzle in vsge/vslt.
2019-03-31 15:05:43 -07:00
Unknown W. Brackets
dfd8094f21
interp: Implement vcrs prefixes and sizes.
...
It only makes sense as triple, but it can be used as quad/single/etc. and
has consistent and sane results.
2019-03-31 15:05:15 -07:00
Unknown W. Brackets
fa7ac7bc64
interp: Correct simple vmov variant prefixing.
2019-03-31 15:01:28 -07:00
Unknown W. Brackets
01aebe54b9
interp: Correct vdet prefix handling.
2019-03-31 15:01:11 -07:00
Unknown W. Brackets
cc58d0d3a3
interp: Correct prefixes in vsrt ops.
2019-03-31 15:00:12 -07:00
Unknown W. Brackets
f2be0cb083
interp: Correct prefixes for vsbn/vsbz.
2019-03-31 13:52:59 -07:00
Unknown W. Brackets
175ceef583
interp: Cleanup vsocp size handling.
2019-03-31 13:52:07 -07:00
Unknown W. Brackets
4a2f8a74dc
interp: Correct size handling for vi2x ops.
2019-03-31 13:51:12 -07:00
Unknown W. Brackets
b75690787e
interp: Correct swizzle on vx2i ops.
2019-03-31 13:51:12 -07:00
Unknown W. Brackets
68cdcba6c5
interp: Don't write lane 2 on single colorconv.
...
Not that it's valid to use the op with that size anyway.
2019-03-31 13:51:12 -07:00
Unknown W. Brackets
5736b1be2a
interp: Correct some negative invalid zero cases.
...
In these cases, the input value wires to +0. Also, transposed the values
in a comment (oops.)
2019-03-31 13:45:37 -07:00
Unknown W. Brackets
aa998b815c
interp: Force vscmp result of invalid to zero.
...
Some other ops do this, but mostly only that do plus or minus.
2019-03-31 13:41:48 -07:00
Unknown W. Brackets
c7e83cd4fa
interp: Correct vfim for -inf and similar.
...
Was dropping the sign bit before for inf and nan.
2019-03-31 13:41:48 -07:00
Unknown W. Brackets
5749ae09d0
interp: Correct vmfvc register behavior.
...
The target and source registers were completely wrong.
2019-03-31 13:41:48 -07:00
Unknown W. Brackets
b2e024025f
interp: Handle wrong sizes of vf2h/vh2f.
...
Probably not ever used, but they have consistent behavior.
2019-03-31 13:41:48 -07:00
Unknown W. Brackets
aceb0a8244
interp: Correct vrnd prefix handling.
...
We don't match random values perfectly anyway, but at least we should vary
at the right times.
2019-03-31 13:41:48 -07:00
Unknown W. Brackets
dfc2449f35
interp: Match actual vdiv prefix handling.
2019-03-31 13:41:48 -07:00
Unknown W. Brackets
af3ed69144
interp: Mask moves to vfpu ctrl.
...
These bits of the registers can't be written.
2019-03-31 10:37:07 -07:00
Unknown W. Brackets
2a5d4e577d
interp: Handle NAN more correctly in vscmp.
2019-03-31 10:37:07 -07:00
Unknown W. Brackets
db28c61272
interp: Handle flush prefixes slightly better.
2019-03-31 10:37:07 -07:00
Unknown W. Brackets
d40ac043d4
interp: Handle prefixes for Vmmov/Vmmul/Vmscl.
...
I doubt any actual code uses this, but we have some tricky VFPU bugs left,
so just trying for maximum accuracy in the interpreter.
2019-03-31 10:37:07 -07:00
Unknown W. Brackets
26b1368f7b
interp: Handle vrot prefixes mostly correctly.
...
Still some issues with 1/2 results and negate on swizzle.
2019-03-31 10:37:07 -07:00
Unknown W. Brackets
8fd8dce185
interp: Use a helper to generate prefix consts.
...
This makes more logical sense that using the VFPU_SWIZZLE and VFPU_ABS
macros to select the constant, although that's how the bits work.
2019-03-31 10:33:26 -07:00
Unknown W. Brackets
b86a6af364
interp: Properly apply mask on single lane ops.
...
When using something like vadd.s, we should still be applying the mask.
Mainly should only matter if masks are set in a conditional, or if games
nop out instructions.
2019-03-31 10:13:28 -07:00
Unknown W. Brackets
1936e8c4d1
interp: Generate constants using prefixes.
...
This way they properly respect negate in the S prefix.
2019-03-31 10:13:28 -07:00
Unknown W. Brackets
0be3213151
interp: Correct vscl prefix handling.
2019-03-31 10:13:28 -07:00
Unknown W. Brackets
ec1dae57eb
interp: Fix vbfy prefix handling.
2019-03-31 10:09:18 -07:00
Unknown W. Brackets
d5273f589a
interp: Mask value in vpfxd.
...
The actual register ends up with only the lower 12 bits, which makes sense
since those are the only ones that do anything.
2019-03-31 08:23:36 -07:00
Unknown W. Brackets
9d1d4473e8
interp: Confirm vi2f/vf2i prefix handling.
2019-03-31 08:22:52 -07:00
Unknown W. Brackets
30223cb17f
interp: Apply T prefix to D in vcmov.
2019-03-31 08:22:15 -07:00
Unknown W. Brackets
fef8e71b8f
interp: Correct behavior for matrixes with size=1.
...
Games don't (shouldn't?) actually use 1x1 matrices, but they seem to have
predictable behavior in matrix ops.
2019-03-31 08:21:29 -07:00
Unknown W. Brackets
cfab70f149
interp: Handle abs/neg on nan values better.
...
`fabsf` was altering other bits.
2019-03-31 08:18:49 -07:00
Unknown W. Brackets
7dc775e54f
IR: Use interp for unhandled prefix cases.
...
The interpreter is not changed yet, so in theory this shouldn't change
behavior.
2019-03-31 08:17:11 -07:00
Henrik Rydgård
d3c0a010a0
Fix invalid argument string for kuKernelLoadModule. Fixes #11895 .
2019-03-24 11:56:35 +01:00
Henrik Rydgård
6cd7615cb0
Merge pull request #11924 from unknownbrackets/kernel-minor
...
Allow kernel threads to beget kernel threads
2019-03-24 11:19:01 +01:00