Commit graph

116 commits

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