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 |
|
Paul Holden
|
a22e6bfbd4
|
Dynarec first pass. Gives a small speedup but lots of improvements to come
|
2012-06-30 11:32:15 +01:00 |
|
Paul Holden
|
e3d4597a75
|
Avoid some overhead in performBranch
|
2012-06-27 08:03:08 +01:00 |
|
Paul Holden
|
80255ada54
|
Further simplifications to the way that the PC is updated. There's an explicit nextPC now, which is set directly and avoids some horrible fiddling with .pc to compensate for the post-execute increment
|
2012-06-27 07:55:59 +01:00 |
|