Tyler Stachecki
e89f054674
Optimize extremely aggressively.
...
Tell GCC to optimize cold functions for size and stash them away in
a separate part of the binary. Put the simulate core, meanwhile, on
the hot path. Also, bump optimization to -O3 as we can now "afford"
to do so.
2014-11-05 08:39:47 -05:00
Tyler Stachecki
a5b380c925
Couple temporary fixes for Windows/MSVC.
2014-11-02 00:28:05 -04:00
Tyler Stachecki
321c81b208
Start restoring the Windows/MSVC build.
2014-11-01 23:42:52 -04:00
Tyler Stachecki
2bb8fa3b83
os/unix: Output VI/s in window title.
2014-11-01 21:49:58 -04:00
Tyler Stachecki
238d61d32e
Cleanup hairy edges from the last commit.
2014-11-01 21:25:08 -04:00
Tyler Stachecki
9c9bdbe8bd
os/unix: Thread the renderer and event system.
2014-11-01 20:42:40 -04:00
Tyler Stachecki
08439c0f5f
Remove some calls to malloc(...).
2014-11-01 16:59:12 -04:00
Tyler Stachecki
1d339f8f74
Restructure a lot of OS-dependent stuff.
2014-11-01 14:36:48 -04:00
Tyler Stachecki
519f59f429
Start implementing some vector operators.
2014-10-22 18:15:44 -04:00
Tyler Stachecki
e58dc2cef2
Add/adjust C-pad and D-pad, sensitivity mappings.
2014-08-30 14:58:28 -04:00
Tyler Stachecki
b921f65710
os/unix: Detect and delete auto-repeated keypresses.
...
Ignore auto-repeat KeyPress and KeyRelease events sent by X11.
Thanks go out to Nacho for originally reporting this bug.
2014-08-30 11:57:41 -04:00
Tyler Stachecki
aba60c487b
Flip backwards controls, remove memory delay hack.
2014-08-27 23:22:18 -04:00
Tyler Stachecki
0d15bd9ddc
Add some preliminary input support.
2014-08-27 23:13:08 -04:00
Tyler Stachecki
ee44e46abb
os/windows: Add keyboard press and release events.
2014-08-27 19:10:03 -04:00
Tyler Stachecki
99a6b1ee28
os/unix: Add keyboard press and release events.
2014-08-26 22:44:27 -04:00
Tyler Stachecki
5f5d4da9a6
Commit preliminary (untested) TLB support.
2014-08-23 14:24:21 -04:00
Tyler Stachecki
2a7cbe9f20
Fix some Windows issues introduced in last commits.
2014-08-21 09:40:46 -07: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
42f7833b62
Add support for ARM builds with GCC/Clang.
2014-08-17 16:29:48 +00: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
c28f74ba98
Fix up warnings, clean up initialization code.
2014-07-31 12:07:12 -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
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
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
349bdc1684
Merge krom's FPU comparison instructions.
...
Implements: C.F.D, C.F.S, C.NGE.D, C.NGE.S, C.NGL.D, C.NGL.S
C.NGLE.D, C.NGLE.S, C.NGT.D, C.NGT.S, C.OLE.C.OLE.S, C.OLE.S,
C.OLT.D, C.OLT.S, C.SEQ.D, C.SEQ.S, C.SF.`C.SF.S, C.SF.S,
C.UEQ.D, C.UEQ.S, C.ULE.D, C.ULE.S, C.ULT.D, C.ULT.S, C.UN.D
C.UN.S.
2014-07-17 20:03:28 -04:00
Tyler Stachecki
4b69669998
Add support for C.lt.fmt.
...
Conflicts:
vr4300/cp1.h
2014-07-13 13:16:31 -04:00
Tyler Stachecki
d5e621b563
Add required GNU inline assembly constraints.
2014-07-13 13:01:47 -04:00
Tyler Stachecki
2bfd3870e8
Implement another conditional FPU operation.
2014-07-13 13:01:40 -04:00
Tyler Stachecki
24c17acb62
Implement a FPU conditional operation.
...
Conflicts:
vr4300/cp1.c
vr4300/cp1.h
2014-07-13 13:01:19 -04:00
Tyler Stachecki
4dc4c24c1a
Fix fpu_sub_64 on Unix builds.
2014-07-13 11:20:24 -04:00
Tyler Stachecki
c652f8359a
Merge krom's FPU instructions.
...
Implements: ABS.D, ABS.S, CEIL.L.D, CEIL.L.S, CEIL.W.D
CEIL.W.S, FLOOR.L.D, FLOOR.L.S, FLOOR.W.D, FLOOR.W.S, NEG.D
NEG.S, ROUND.L.D, ROUND.L.S, ROUND.W.D, ROUND.W.S, SQRT.D
SQRT.S, TRUNC.L.D, and TRUNC.L.S!
2014-07-08 00:00:25 -04:00