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