Commit Graph

104 Commits

Author SHA1 Message Date
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
Anthony Pesch 79ad6dc037 removing memory tests for now, code is soon to be refactored for mmio 2015-09-05 11:18:48 -07:00
Anthony Pesch e31831c140 run tests on both backends 2015-09-05 11:01:18 -07:00
Anthony Pesch ecc0a6c7ac massive refactoring, replaced Emulator class with Dreamcast class. instead of passing around individual components to each system, the new Dreamcast object has public getters for each (holly, pvr, video ram, etc.) 2015-09-04 22:53:36 -07:00
Anthony Pesch bb5b03919d don't pass Scheduler to SH4 2015-09-04 22:53:36 -07:00
Anthony Pesch 1eaac911d8 use uint32_t for vertex color data
remove unused index buffer
added gpu profiler group
2015-09-04 22:53:35 -07:00
Anthony Pesch 41b3afdb1a only compile tests if sh4 toolchain is available 2015-09-04 22:53:35 -07:00
Anthony Pesch a831fa482f support msvc calling convention in x64 backend 2015-09-04 22:53:35 -07:00
Anthony Pesch 20541ab018 compile with /W3 under msvc 2015-09-04 22:53:31 -07:00
Anthony Pesch 548e3ca4c9 msvc compilation fixes, tests and interpreter now run 2015-08-27 09:55:10 -07:00
Anthony Pesch ef972acc5b replaced virtual RuntimeBlock class with RuntimeBlock struct to be easier to call from emitted assembly
added return status to AssembleBlock to notify when the codegen overflows its output buffer
added Reset() method to cpu backends
2015-08-26 21:27:45 -07:00
Anthony Pesch 3866668031 added random access iterator to RingBuffer
added Insert method to RingBuffer
added unit tests for RingBuffer
updated RegisterAllocationPass to use RingBuffer
2015-08-16 02:19:00 -07:00
Anthony Pesch 5917fd2090 all values are available in registers now, remove load from local support from backends 2015-08-15 00:55:25 -07:00
Anthony Pesch d14282b225 use FPU state when emitting IR 2015-08-13 15:57:22 -07:00
Anthony Pesch 5a0642d0a5 don't reuse IR values across blocks 2015-08-12 23:41:31 -07:00
Anthony Pesch accd4a682c remove now unused Memory::Alloc function 2015-08-10 23:03:13 -07:00
Anthony Pesch 0238f4f439 gcc compilation fixes 2015-07-31 21:01:00 -07:00
Anthony Pesch 4beeeb52f5 x64 emitter first pass 2015-07-30 23:06:59 -07:00
Anthony Pesch 0bb8d37acb register allocation 2015-07-21 17:55:49 -07:00
Anthony Pesch 582e615e60 added Sort to IntrusiveList 2015-07-05 14:47:15 -07:00
Anthony Pesch 7258b89778 removed RuntimeContext struct 2015-07-04 00:21:03 -07:00
Anthony Pesch c4b78cc565 initial x64 scaffolding 2015-07-01 22:16:28 -07:00
Anthony Pesch 01af271550 initial public commit 2015-07-01 10:45:31 -07:00