Commit graph

736 commits

Author SHA1 Message Date
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