Tyler Stachecki
4cb2a1aca9
Fix potentially uninitialized variables to 0.
...
Shouldn't happen anyways, but do something safe if it does.
2014-07-31 16:48:30 -04:00
Tyler Stachecki
fb3d9e1e1c
Remove -fuse-linker-plugin from GCC flags.
...
Thank you to krom for pointing out that this flag is no longer
required due to change in project structure.
2014-07-31 16:33:46 -04:00
Tyler Stachecki
ec8f6cacad
Move a conditional branch off the main path.
2014-07-31 16:22:51 -04:00
Tyler Stachecki
d96e3f3423
Align the pipeline cycle type array.
2014-07-31 16:03:46 -04:00
Tyler Stachecki
bf46aa1fb3
Reorganize structures.
...
If we place larger, less commonly used structures after our
frequently accessed state variables, the average size of x86
instructions will be reduced due to the smaller offsets off
the base pointer.
2014-07-31 13:54:10 -04:00
Tyler Stachecki
490e896cc9
Reorganize pipeline code for lower binary size.
2014-07-31 13:27:04 -04:00
Tyler Stachecki
b785754d3d
Cleanup the common header.
2014-07-31 12:52:06 -04:00
Tyler Stachecki
91a39143af
Allow the compiler to reuse some code.
2014-07-31 12:44:40 -04:00
Tyler Stachecki
5dce6e0ea7
Cut down on initialization code size.
2014-07-31 12:37:12 -04:00
Tyler Stachecki
c28f74ba98
Fix up warnings, clean up initialization code.
2014-07-31 12:07:12 -04:00
Tyler Stachecki
6e12a0ae42
Remove old, dangerous sections of copied code.
2014-07-31 11:52:28 -04:00
Tyler Stachecki
9561aec666
Reduce the size of Release builds.
2014-07-31 11:37:16 -04:00
Tyler Stachecki
2ad431aaee
Reduce VR4300/CP1 overhead.
2014-07-31 11:30:06 -04:00
Tyler Stachecki
36ae2de268
Regression: -O2 is better with caches.
2014-07-31 10:47:09 -04:00
Tyler Stachecki
b734fee971
Merge branch 'caches' into 'master'.
2014-07-30 23:43:19 -04:00
Tyler Stachecki
50d15f4c34
Touch up minor instruction cache things.
2014-07-30 23:30:54 -04:00
Tyler Stachecki
a0458bb775
Fix instruction cache flush address calculation.
2014-07-30 23:30:02 -04:00
Tyler Stachecki
bd31531f6c
Instruction cache fixes and improvements.
2014-07-30 23:18:59 -04:00
Tyler Stachecki
a284bd6b7a
Check for interrupts in the busy wait checker.
2014-07-30 22:37:04 -04:00
Tyler Stachecki
60edbddecf
Integrate busy wait handler into pipeline.
2014-07-29 10:00:55 -04:00
Tyler Stachecki
9bd494b4e0
Make busy wait special casing safer.
2014-07-29 09:47:01 -04:00
Tyler Stachecki
9c4fecc2e0
Add VR4300 busy wait detection feature.
2014-07-29 09:27:20 -04:00
Tyler Stachecki
50b1f40003
Fix bug in Windows's os_poll_events.
...
Thanks to krom for reminding me about this.
2014-07-29 01:19:55 -04:00
Tyler Stachecki
974757c5b9
Fix Windows inline assembly functions.
2014-07-28 22:09:02 -07:00
Tyler Stachecki
d1348c0000
Remove unused headers from Windows code.
2014-07-29 00:31:21 -04:00
Tyler Stachecki
ddb4626080
Change the FPU calling convention.
2014-07-29 00:13:39 -04:00
Tyler Stachecki
4502cc9435
Fix Windows FPU assembly stubs.
2014-07-28 20:35:11 -07:00
Tyler Stachecki
97ff3bbd6e
Start unbreaking the Windows build.
2014-07-28 17:31:02 -04:00
Tyler Stachecki
9ac9ddca1b
Use reasonable memory access delays.
2014-07-28 09:44:31 -04:00
Tyler Stachecki
deb9df0c96
Add support for ICache.Hit_Invalidate.
2014-07-28 09:22:43 -04:00
Tyler Stachecki
98b9c34020
Start making use of the instruction cache.
2014-07-28 09:12:17 -04:00
Tyler Stachecki
b3bafa2e92
Reduce indirect branch overhead.
2014-07-28 00:01:16 -04:00
Tyler Stachecki
2c12ff1601
Improve performance when compiling with gcc.
2014-07-27 23:52:50 -04:00
Tyler Stachecki
c4a121c139
Trim out some unused instructions.
2014-07-27 23:40:08 -04:00
Tyler Stachecki
98e98094d4
Switch over CVT.
...
x87 to SSE transition complete.
2014-07-27 23:40:08 -04:00
Tyler Stachecki
d2f70fd2c8
Switch over ROUND, TRUNC, CEIL, and FLOOR.
2014-07-27 23:40:08 -04:00
Tyler Stachecki
d5fea665c9
Stop using "Yz" as an input constraint.
...
clang doesn't seem to like it...
2014-07-27 23:40:08 -04:00
Tyler Stachecki
1c873c680d
Fix last commit's bugs (reported by krom's checker).
2014-07-27 23:40:08 -04:00
Tyler Stachecki
e66c2e2e37
Simplify the floating point compare logic.
...
Also, finish converting things to SSE/SSE2.
2014-07-27 23:40:08 -04:00
Tyler Stachecki
e87b2f7f57
Switch over a handful of CMP.
2014-07-27 23:40:08 -04:00
Tyler Stachecki
79c05ac6b0
Switch over SQRT.
2014-07-27 23:40:08 -04:00
Tyler Stachecki
8bd52f1e11
Switch over NEG, fix the double mask constant.
2014-07-27 23:40:08 -04:00
Tyler Stachecki
9f520f9029
Switch over ABS, apply const where possible.
2014-07-27 23:40:08 -04:00
Tyler Stachecki
45617d9c36
Start the switch from x87 to SSE.
2014-07-27 23:40:08 -04:00
Tyler Stachecki
81e9970b2e
vr4300/cp1: Add missing unusable excps, fix bugs.
2014-07-27 23:40:08 -04:00
Tyler Stachecki
e7417bee66
Add get/set native FPU state functions.
2014-07-27 23:40:08 -04:00
Tyler Stachecki
850c278cd9
os/unix: Stop using pthreads improperly.
2014-07-27 09:08:54 -04:00
Tyler Stachecki
596736f64d
Hack in support for LDL/LDR.
2014-07-27 00:59:43 -04:00
Tyler Stachecki
d0662e9874
Remove preshift
from memory operations.
2014-07-26 14:54:30 -04:00
Tyler Stachecki
d924d68635
Fix unused options/flags in the build system.
2014-07-26 14:38:42 -04:00