Commit graph

1886 commits

Author SHA1 Message Date
Paul Holden
ac423c7a3f TexRectFlip 2012-07-10 20:10:24 +01:00
Paul Holden
a3ba4a176b Handle depth buffer correctly for texrect 2012-07-10 08:53:42 +01:00
Paul Holden
3110b790ec TexRect support 2012-07-10 08:17:00 +01:00
Paul Holden
a0cee2cd1a Fix texture pitch calculation via loadtile 2012-07-10 08:15:27 +01:00
Paul Holden
a2d745d16d Support for RGBA32 textures 2012-07-10 07:54:12 +01:00
Paul Holden
5ea419efa8 Implement mirror mode emulation for textures 2012-07-09 21:25:55 +01:00
Paul Holden
2a26b8014f fix indentation 2012-07-09 08:21:45 +01:00
Paul Holden
ebccc03249 Simplify sinstr/dinstr 2012-07-09 00:24:34 +01:00
Paul Holden
f265fbb077 tidy whitespace 2012-07-08 23:54:48 +01:00
Paul Holden
17e3c1e073 Implement generateSRAV/SLLV/SRLV 2012-07-08 23:52:58 +01:00
Paul Holden
21b260eaf5 Reimplement SLL/SRL/SRA 2012-07-08 23:36:26 +01:00
Paul Holden
71c83c249d Generate J/JAL/JALR/JR 2012-07-08 23:15:37 +01:00
Paul Holden
ce1a9554c1 Improve cop1 performance 2012-07-08 22:44:15 +01:00
Paul Holden
9ac7034664 generateSD 2012-07-08 21:25:13 +01:00
Paul Holden
cce230a779 Generate code for LH/LHU/LB/LBU/LWU 2012-07-08 21:08:20 +01:00
Paul Holden
dc8a54366d Use local 'c' rather than cpu0 2012-07-07 15:17:26 +01:00
Paul Holden
28cda83e4f Better implementation for generateBEW/generateBNE 2012-07-07 15:09:55 +01:00
Paul Holden
8382793648 Inline trivial ops 2012-07-07 14:35:53 +01:00
Paul Holden
9033c0c63a Implement generateADDI 2012-07-07 14:35:31 +01:00
Paul Holden
5e91f06bb2 Reimplement ADDU/SUBU etc directly, rather than via impl functions. Less work for the jitter and forces inlining 2012-07-07 10:48:41 +01:00
Paul Holden
5dcd16a271 Improve self-assignment for ADDIU, ORI, XORI. Improve generated code formatting a little 2012-07-07 09:51:45 +01:00
Paul Holden
8f071630f2 Generate code for ANDI/ORI/XORI/LUI 2012-07-07 09:30:57 +01:00
Paul Holden
ca08aaf51e CLEAR/MOV are trivial ops 2012-07-07 09:13:35 +01:00
Paul Holden
bea8758bec Comment 2012-07-07 09:08:53 +01:00
Paul Holden
5d49ab7b56 Identify sequences of trivial ops, so that we can eliminate branch delay checks 2012-07-07 09:07:29 +01:00
Paul Holden
66125fce92 Cache next fragments in an array - one per op - so that we can branch predict more accurately 2012-07-07 08:41:18 +01:00
Paul Holden
51e4a6fcc0 Add a todo 2012-07-07 08:23:07 +01:00
Paul Holden
f1f144e2f0 Bump up the hot count threshold 2012-07-07 08:17:11 +01:00
Paul Holden
7a389ce186 Defer COUNT update until the end of the fragment 2012-07-07 08:12:42 +01:00
Paul Holden
6c7180cba6 prototypes 2012-07-07 08:09:34 +01:00
Paul Holden
bd6c4fe1dc Change dynarec from 'stuff everything into one function' to 'generate function per op'. Lots of extra dynarec work 2012-07-05 23:59:15 +01:00
Paul Holden
170287e209 Argh, faster branchAddress calc was generating signed values 2012-07-04 23:24:08 +01:00
Paul Holden
be360b8dfd Remove opsExecuted - one less thing to update 2012-07-03 08:02:32 +01:00
Paul Holden
45acab39d9 Tidy 2012-07-03 07:57:32 +01:00
Paul Holden
8b4a4d6e6a Silence viewport spam. Rename fragmentsRemoved 2012-07-03 07:55:55 +01:00
Paul Holden
16c681c8af Remove dedicated rominfo pane. Make output window white on black 2012-07-03 07:51:58 +01:00
Paul Holden
b2a578ed1e Only update various bits of UI when active 2012-07-03 07:43:56 +01:00
Paul Holden
b213449e88 Alias hi/lo regs as Int32Arrays so we can avoid more deopts 2012-07-03 07:22:22 +01:00
Paul Holden
295da6ed50 Some more _signed microopts. Remove some repeated calls to rs()/rt() 2012-07-03 07:15:23 +01:00
Paul Holden
fdaeee9ff6 Perform nextPC/branchTarget setup as a part of postOp - more scope for runtime to optimise 2012-07-02 22:58:09 +01:00
Paul Holden
91ef5421a5 Use _signed registers where possible to avoid deopts (plus some associated optimisations) 2012-07-02 22:54:55 +01:00
Paul Holden
303c46714b Fix tagged-to-i deopts coming from SLT instructions 2012-07-01 22:00:32 +01:00
Paul Holden
152bd08012 Special case or with r0 for rs/rt 2012-07-01 11:48:55 +01:00
Paul Holden
7c2ef24e23 Seems if/else is faster than ternary - http://jsperf.com/ternary-vs-and-or-vs-if-else/2 2012-07-01 11:34:39 +01:00
Paul Holden
84125913ff Rename opsExecuted to opsCompiled 2012-07-01 10:50:46 +01:00
Paul Holden
29cd5cfbff Make handleCounter use cpu stuffToDo flags, so we can simplify the code a little bit 2012-07-01 10:50:15 +01:00
Paul Holden
d2e0b3bff3 Crack out args for add/sub/and/or/xor/nor. Hardcode next pc (should always be known in advace) 2012-07-01 10:37:38 +01:00
Paul Holden
e8270fafe5 Increase the number of ops in a fragment 2012-06-30 21:14:25 +01:00
Paul Holden
3306e609ff Hoist out special and regimm instructions 2012-06-30 21:13:39 +01:00
Paul Holden
a2e0c6c1fc Fix issue with interrupts being missed if fragments were executing (wasn't checking stuffToDo) 2012-06-30 12:15:34 +01:00