Commit graph

79 commits

Author SHA1 Message Date
Jean-Philip Desjardins
e5e9a6cb76 Add padding in AOT_BLOCK_KEY to align pointers on 8 bytes. 2021-01-14 12:58:45 -05:00
Jean-Philip Desjardins
b99ac3e3d8 Greatly improve block link bookkeeping algorithm.
Improves performance on code generating games/homebrew.
2020-08-06 16:57:12 -04:00
Jean-Philip Desjardins
2ae43e0320 Don't cache blocks that have breakpoints.
Broke breakpoint toggling.

(cherry picked from commit 3d2ed9e20f2b917b10f359ee76c8724192e839c2)
2020-02-10 21:40:09 -05:00
Jean-Philip Desjardins
95584611ca Add a no link threshold for recycled blocks.
Significatively improves speed of Jak series games.
2019-12-20 21:25:33 -05:00
Greg Land
131a709e11 Removed this assert as per discord conversation.
Removed assert that was stopping Dark Cloud from loading saved games when asserts are enabled
2019-09-12 01:15:09 -04:00
Jean-Philip Desjardins
1604a613af Disable block linking when using AOT. 2019-05-09 13:00:34 -04:00
Jean-Philip Desjardins
9b454de926 Disable block linking when doing AOT. 2019-05-09 13:00:34 -04:00
Jean-Philip Desjardins
dd3853dc7e Fix issues occurring with empty blocks. 2019-05-09 13:00:34 -04:00
Jean-Philip Desjardins
9f4eda3d3d Make block link related functions externally linkable. 2019-05-09 13:00:34 -04:00
Jean-Philip Desjardins
03fa233c4f Use JumpToDynamic for block linking targets. 2019-05-08 13:46:15 -04:00
Jean-Philip Desjardins
fa754f0403 Moved check for symbol ref type. 2018-09-30 10:40:10 -04:00
Jean-Philip Desjardins
e584f5d639 Update for CodeGen's new external symbol ref handler. 2018-09-28 13:31:24 -04:00
Jean-Philip Desjardins
a68cf01d09 Fix build. 2018-07-26 21:38:17 -04:00
Jean-Philip Desjardins
3210ffecfa Breakpoints now work again. 2018-07-26 21:38:17 -04:00
Jean-Philip Desjardins
f2f0b9e6ca Prolog is actually the epilog. 2018-07-26 21:38:16 -04:00
Jean-Philip Desjardins
3f7f6ae29d Notify CMemoryFunction that we're modifying the function. 2018-07-26 21:38:16 -04:00
Jean-Philip Desjardins
9ddbdf80b2 Fix handling of likely branches. 2018-07-26 21:38:16 -04:00
Jean-Philip Desjardins
1b0bfaab36 Fix formatting. 2018-07-26 21:38:16 -04:00
Jean-Philip Desjardins
8cdc57e0e4 Fix Unix build. 2018-07-26 21:38:15 -04:00
Jean-Philip Desjardins
ab5aebc3a7 Make sure everything is coherent when deleting blocks. 2018-07-26 21:38:15 -04:00
Jean-Philip Desjardins
3952e74d32 Simplify block link code. 2018-07-26 21:38:15 -04:00
Jean-Philip Desjardins
676d301ab2 Fix build. 2018-07-26 21:38:15 -04:00
Jean-Philip Desjardins
1f4ba149a1 Block link WIP. 2018-07-26 21:38:15 -04:00
Jean-Philip Desjardins
890708fcba Code style fixes. 2018-07-26 21:38:15 -04:00
Jean-Philip Desjardins
193e72635a Block lookup table now only stores "entry-point" functions to guest code.
Used to be a 1 to 1 map to covering function for a specific address.
2018-07-26 21:38:15 -04:00
Jean-Philip Desjardins
dc597e34ce Add empty block concept. 2018-07-26 21:38:15 -04:00
Jean-Philip Desjardins
b30658ba1a Move cycle quota update to block prolog. 2018-07-26 21:38:15 -04:00
Jean-Philip Desjardins
5e6058b530 Move PC changing piece of code in compiled block.
Makes basic blocks more generic.
2018-07-26 21:38:14 -04:00
Jean-Philip Desjardins
2f6cadb3e1 Cleanup. 2018-07-26 21:38:14 -04:00
Clang-Format
acf75535ec Clang format 2018-04-30 21:01:23 +01:00
Jean-Philip Desjardins
f97d0a1c47 Remove self loop counter. 2017-08-09 23:05:30 -04:00
Jean-Philip Desjardins
3098487d33 Cleanup. 2017-08-09 23:05:30 -04:00
Mahmood(Thunder07)
97c229ec98 Cleanup
Silence:"warning: '0' flag ignored with precision and ‘%X’ gnu_printf format"
2017-05-29 06:01:32 +01:00
Jean-Philip Desjardins
25e817802a Handle case where block with fixed end branch is not taken. 2017-04-15 00:36:48 -04:00
Jean-Philip Desjardins
873e128053 Patch block end when it doesn't include delay slot instruction. 2017-04-15 00:36:48 -04:00
Jean-Philip Desjardins
1d01e6292a Jitter needs to be stored in TLS only if building AOT cache. 2016-03-27 19:01:01 -04:00
Jean-Philip Desjardins
3730ccdffc Fixed PsfPlayer iOS build. 2015-11-03 00:10:44 -05:00
Jean-Philip Desjardins
5146c5d011 Merge branch 'master' into build_unix 2015-10-24 22:58:24 -04:00
Jean-Philip Desjardins
3d8c672313 Made sure memory layout on AOT_BLOCK is independent of the architecture. 2015-10-19 13:10:16 -04:00
Kyle McLamb
a95d019fba build_unix: Add tests 2015-08-24 21:45:04 -04:00
Jean-Philip Desjardins
9ee88eb5ea Added assert to make sure PC is aligned on 4 bytes. 2015-05-03 01:35:15 -04:00
Jean-Philip Desjardins
90ee7a26f6 Added check to make sure VI0 isn't trashed. 2015-04-08 23:30:15 -04:00
Jean-Philip Desjardins
66e5d56a94 Added check to make sure R0 isn't trashed. 2015-04-08 00:20:28 -04:00
Jean-Philip Desjardins
f7778de2c2 Revert "Added prediction for next block to be executed in BasicBlock and MipsExecutor."
This reverts commit b0e3693195.
2014-10-18 18:32:26 -04:00
Jean-Philip Desjardins
b0e3693195 Added prediction for next block to be executed in BasicBlock and MipsExecutor. 2014-10-15 02:37:57 -04:00
Jean-Philip Desjardins
d886ef691f VTune integration (can be enabled through property sheets). 2014-08-10 05:06:39 -04:00
jpd002
1e8ed6b265 Compilation fix.
git-svn-id: http://svn.purei.org/purei/trunk@1111 b36208d7-6611-0410-8bec-b1987f11c4a2
2013-04-21 06:56:03 +00:00
jpd002
0f75cf8538 Added AOT compiled block support in BasicBlock and fixed some compilation problems in VuExecutor.
git-svn-id: http://svn.purei.org/purei/trunk@1098 b36208d7-6611-0410-8bec-b1987f11c4a2
2013-04-14 06:35:40 +00:00
jpd002
372740688f Removed intrusive_ptr stuff from BasicBlock and use move operator = instead of allocating a new CMemoryFunction.
MipsExecutor now manages its blocks with unique_ptrs.

git-svn-id: http://svn.purei.org/purei/trunk@1096 b36208d7-6611-0410-8bec-b1987f11c4a2
2013-04-12 02:35:55 +00:00
jpd002
7109682836 Cleanup.
git-svn-id: http://svn.purei.org/purei/trunk@907 b36208d7-6611-0410-8bec-b1987f11c4a2
2012-04-15 22:00:47 +00:00