Commit graph

953 commits

Author SHA1 Message Date
Tyler Stachecki
65d4da87c6 Add SSE2/SSSE3 implementations of RSP bitwise functions. 2014-08-19 16:08:42 +00:00
Tyler Stachecki
1d3e7bac33 Add NEON implementations of RSP bitwise functions. 2014-08-19 15:18:28 +00:00
Tyler Stachecki
0158b65c0c Start implementing NEON backend for RSP. 2014-08-19 11:39:42 +00:00
Tyler Stachecki
ced4183158 More restructuring of arch/ and os/ code. 2014-08-18 16:54:01 +00:00
Tyler Stachecki
3e8ba50851 Add common arch/ folder, move headers out of os/.
Much of the architecture-specific code uses compiler-agnostic
intrinsics. For this reason, split it out into an arch/ folder,
leaving only the compiler and environment-specific code in os/.
2014-08-18 16:08:45 +00:00
Tyler Stachecki
2e43bb6f49 Add non-x86_64 implementations for DMULT/DMULTU. 2014-08-18 12:38:36 +00:00
Tyler Stachecki
b95522aa7f Cleanup the CMakeLists file after last commit. 2014-08-17 16:56:17 +00:00
Tyler Stachecki
0ab8ead055 Add support for IA32, remove ARM NEON requirement. 2014-08-17 16:29:57 +00:00
Tyler Stachecki
42f7833b62 Add support for ARM builds with GCC/Clang. 2014-08-17 16:29:48 +00:00
Tyler Stachecki
fb3d52d222 Fix a typo in the last commit.
Thanks, krom!
2014-08-03 17:04:47 -04:00
Tyler Stachecki
7116582a6b Combine more execution functions. 2014-08-03 13:42:08 -04:00
Tyler Stachecki
26908fb00e Combine some execution functions. 2014-08-03 03:46:33 -04:00
Tyler Stachecki
ab941a6854 Add os/timer, implement backends. 2014-08-03 03:02:14 -04:00
Tyler Stachecki
4fcd566f02 Add os/rom_file, implement backends. 2014-08-03 01:53:19 -04:00
Tyler Stachecki
6f15585802 Cleanup Windows os/ code. 2014-08-02 23:44:13 -04:00
Tyler Stachecki
2c7c109d16 Reduce number of symbols. 2014-08-02 23:29:13 -04:00
Tyler Stachecki
776a27dbab Fix a bug in the busy wait detector. 2014-08-02 19:06:34 -04:00
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