Commit Graph

72 Commits

Author SHA1 Message Date
Anthony Pesch b64c48144d clean up 2016-06-12 22:41:21 -07:00
Anthony Pesch 28533002af jit c refactor 2016-06-04 14:21:15 -07:00
Anthony Pesch 37915e7129 initial c refactor 2016-05-22 19:57:47 -07:00
Anthony Pesch 7d639cb74a split memory system up to support mapping multiple address spaces to the same backing shared memory 2016-04-24 23:19:03 -07:00
Anthony Pesch 0242a67532 added debug logging
added debug pass stats to recc
2016-04-10 10:00:15 -07:00
Anthony Pesch 72e8bdff72 don't allocate a SH4Builder each compilation 2016-04-06 22:19:04 -07:00
Anthony Pesch 898e4001f4 use avx instructions 2016-04-06 22:18:44 -07:00
Anthony Pesch f72f05a437 windows build fixes
fixed OP_LOAD_LOCAL / OP_STORE_LOCAL on windows
use r14 / r15 for memory and guest ctx pointers
updated SH4 builder to emit consistent IR regardless of function parameter evaluation order
2016-03-26 20:54:27 -07:00
Anthony Pesch 56d039e643 linux build fixes 2016-03-25 01:41:57 -07:00
Anthony Pesch 05388bca6f split up int / float IR ops
added support for fcnvsd and fcnvds
2016-03-23 18:45:47 -07:00
Anthony Pesch d26b7a092f removed interpreter backend 2016-03-23 01:17:09 -07:00
Anthony Pesch 98ca25fecb use references for dc / rb
align ir locals when allocating
2016-03-23 00:54:31 -07:00
Anthony Pesch d234f630f1 make Instr inherit from value, removing result property
updated register allocation to account for the fact that the result is no longer a part of the reference set
added basic dead code elimination pass
2016-03-23 00:54:24 -07:00
Anthony Pesch c836560bc9 window system refactor
added imgui for gui rendering
added WindowInterface to Machine class enabling hardware to tap into window events for input and rendering
2016-03-18 18:06:57 -07:00
Anthony Pesch 5a8b1bd530 remove blocks from IRBuilder 2016-03-05 02:53:22 -08:00
Anthony Pesch c44133d574 remove pc return value from blocks 2016-03-05 02:35:39 -08:00
Anthony Pesch 112c421b81 added a hack to get PoP booting further 2016-03-05 02:34:58 -08:00
Anthony Pesch 498990fcb2 initial debugger support 2016-02-29 23:51:42 -08:00
Anthony Pesch ede8b2f758 refactored hw/ code adding Machine, Device and Device interfaces 2016-02-29 23:51:42 -08:00
Anthony Pesch 36a5dc2d72 TMU refactor, fixed issues with TCR being updated and timers not rescheduled properly 2016-02-29 23:51:42 -08:00
Anthony Pesch 997249fa0b fixed memory watches not aligning properly 2016-02-29 23:51:42 -08:00
Anthony Pesch b587b3611b project rename 2016-02-29 23:51:41 -08:00
Anthony Pesch 198cd53525 consider aliased values when eliminating loads and stores
added tests for load store elimination aliasing
2016-02-29 23:51:38 -08:00
Anthony Pesch d16aac170a end blocks on SR store
remove broken IF_INVALIDATE_CONTEXT
2016-02-12 17:28:38 -08:00
Anthony Pesch 72b5edbeba replaced horribly broken 64-bit float implementation 2016-02-12 17:28:38 -08:00
Anthony Pesch 4be33f7ee4 removed core.h, added config.h.in 2016-02-12 17:28:37 -08:00
Anthony Pesch f457e8e9d8 added OP_LOAD_HOST and OP_STORE_HOST for directly accessing host memory
added lookup table for fsca
removed sin, cos ir ops
2016-02-12 17:28:37 -08:00
Anthony Pesch a039b60d52 get tests back running 2016-02-12 17:28:37 -08:00
Anthony Pesch 20a1437f96 replaced ringbuffer usage in register allocation with minmax heap
removed terrible insert method from ringbuffer
2016-02-12 17:28:31 -08:00
Anthony Pesch 4542ef4888 renamed dreavm namespace 2016-01-16 13:26:56 -08:00
Anthony Pesch afacb09ac2 don't test ctx_.pc to terminate loop in Run 2016-01-05 01:35:24 -08:00
Anthony Pesch 7f5be10b66 moved Runtime to SH4CodeCache
added --interpreter command line option
2016-01-04 23:50:25 -08:00
Anthony Pesch 40733aefcb inline cycle tracking into block epilog and out of main loop
added IRBuilder::Get/SetInsertPoint
2016-01-04 00:49:03 -08:00
Anthony Pesch 6bc0c08d45 removed Runtime::set_compile_handler 2016-01-04 00:49:02 -08:00
Anthony Pesch ca23cbc1b9 split up memory map / memory code 2016-01-04 00:48:56 -08:00
Anthony Pesch a08f110658 simplified sh4 test generation and execution 2015-12-05 19:56:41 -08:00
Anthony Pesch 90013d6f3c reworked memory.cc to split out address map and core memory code 2015-12-02 18:21:51 -08:00
Anthony Pesch f9071ed52a remove scheduler timers. the current timers can be manually timed and ran from inside of each device's Run method, without the need for the sorted timer set
step scheduler at 1000hz, render frames at 60hz
add cpu speed percentage
2015-10-11 14:35:09 -07:00
Anthony Pesch 8fca5e249a gcc fixes 2015-10-10 15:22:48 -07:00
Anthony Pesch f44e2d9718 mmap the entire 32-bit address space
cross-platform shared memory support
backpatch emitted loads / stores on x64 to use slow handlers if need be
added range iterator support to interval tree
2015-10-10 15:22:48 -07:00
Anthony Pesch 99c19a05e9 use default block to avoid expensive branch prediction penalties when
getting blocks from the cache
2015-10-10 15:22:48 -07:00
Anthony Pesch bb5ec14d47 optimize div1 2015-09-26 14:59:59 -07:00
Anthony Pesch ff67901d43 added new sdiv test 2015-09-26 00:11:11 -07:00
Anthony Pesch 07a1156eb5 convert interval tree from using a randomized bst to a red-black tree 2015-09-21 23:11:11 -07:00
Anthony Pesch 3897fe557f invalidate textures through process signals 2015-09-17 11:14:39 -07:00
Anthony Pesch b540e5b80b removed core namespace 2015-09-14 14:22:22 -07:00
Anthony Pesch 3504d313e0 gcc compilation fixes 2015-09-12 00:11:00 -07:00
Anthony Pesch e83cad251a moved maple code out of holly/
added hw/ and jit/ folders, restructured accordingly
2015-09-10 16:45:10 -07:00
Anthony Pesch 3868cbf312 added back RuntimeBlock class
converted block cache back to an array of pointers (now 64mb vs 200mb in memory)
2015-09-08 11:36:54 -07:00
Anthony Pesch 24ce88fb00 update assembly tests to support nested test cases 2015-09-07 15:49:11 -07:00