Commit Graph

2254 Commits

Author SHA1 Message Date
Dani Messerman
1b87113184 Added an option to verify the output. This is done by stopping after each instruction and checking what the interpreter produced vs. the binary translation. 2015-05-10 22:32:32 +03:00
Dani Messerman
cf4914e4fc Promoted shifts conditional branches to select 2015-05-10 22:32:32 +03:00
Dani Messerman
9c3c193a4c Added block partitioning to make optimizations faster and hopefully better 2015-05-10 22:32:32 +03:00
Dani Messerman
0aec1529d3 Added mov immediate 2015-05-10 22:32:31 +03:00
Dani Messerman
3151d6a99b Renamed DataProcessing to MovShift, reducing its scope 2015-05-10 22:32:31 +03:00
Dani Messerman
8d21d9c6a8 Removed unused libraries 2015-05-10 22:32:31 +03:00
Dani Messerman
22fbe294be Added some shifts 2015-05-10 22:32:30 +03:00
Dani Messerman
66f70e7321 Added conditional execution
24% of instructions in 3dscraft
2015-05-10 22:32:29 +03:00
Dani Messerman
7882bb2c4c Added bl, blx
17% of the instructions in 3dscraft
2015-05-10 22:32:29 +03:00
Dani Messerman
4daf99fa44 Fix mov sanitation 2015-05-10 22:32:28 +03:00
Dani Messerman
7b8fd8daad Added stats.
9.8% of the instructions in 3dscraft.
2015-05-10 22:32:28 +03:00
Dani Messerman
8331f6b3cc Added TBAA 2015-05-10 22:32:28 +03:00
Dani Messerman
d7367172e8 Added block linking
Each time an instruction finishes it jumps to the next one instead of going back to the switch block
2015-05-10 22:32:27 +03:00
Dani Messerman
3864675b6d New class for machine state 2015-05-10 22:32:27 +03:00
Dani Messerman
49483c67ca Loading and running the translated file 2015-05-10 22:32:26 +03:00
Dani Messerman
3731d28ca9 Generates mov reg, reg 2015-05-10 22:30:53 +03:00
Dani Messerman
a91f373f36 Basic disassembler 2015-05-10 22:30:52 +03:00
Dani Messerman
26ff6094e2 Basic disassembler 2015-05-10 22:30:52 +03:00
Dani Messerman
927e20fb6e Better command line handling 2015-05-10 22:30:51 +03:00
Dani Messerman
6c7551d5f3 Module generation stubs 2015-05-10 22:30:51 +03:00
Dani Messerman
5c27161b23 Object generation skeleton 2015-05-10 22:30:51 +03:00
bunnei
ba0bfe7d82 Merge pull request #726 from bunnei/gpu-improvements
GPU improvements
2015-05-09 22:45:05 -04:00
bunnei
23e8be573e rasterizer: Implemented combiner output scaling. 2015-05-09 22:26:17 -04:00
bunnei
ff767eeb40 rasterizer: Implemented AddSigned combiner op. 2015-05-09 22:12:39 -04:00
bunnei
547da374b8 rasterizer: Fixed a depth testing bug. 2015-05-09 22:12:38 -04:00
bunnei
a806b420a6 rasterizer: Implement combiner buffer input. 2015-05-09 22:12:36 -04:00
bunnei
44927f0306 rasterizer: Return zero'd vectors on error conditions. 2015-05-09 22:12:35 -04:00
bunnei
692a74c09e vertex_shader: Implement FLR instruction. 2015-05-09 22:12:34 -04:00
bunnei
f935130a0f vertex_shader: Implement MADI instruction.
nihstro: Update submodule to latest upstream/master to support MADI instruction decoding.
2015-05-09 22:12:34 -04:00
Lioncash
088f6ae2c6 Merge pull request #736 from yuriks/remove-BIT
Common: Remove the BIT macro
2015-05-09 20:16:42 -04:00
Yuri Kunde Schlesner
b700b55696 Common: Remove the BIT macro
When the macro was introduced in 326ec51261
it wasn't noticed that it conflicted in name with a heavily used macro
inside of dyncom. This causes some compiler warnings. Since it's only
lightly used, it was opted to simply remove the new macro.
2015-05-09 18:16:46 -03:00
Tony Wasserka
e35e72d0a5 Merge pull request #734 from yuriks/memmap
Small memory map definitions cleanup
2015-05-09 15:57:29 +02:00
Yuri Kunde Schlesner
417c867e14 Loader: Add missing include 2015-05-09 05:05:59 -03:00
Yuri Kunde Schlesner
17a8cae003 Memory: Add GetPhysicalPointer helper function 2015-05-09 04:02:32 -03:00
Yuri Kunde Schlesner
28a9e4c1d5 Memory: Support more regions in the VAddr-PAddr translation functions
Also adds better documentation and removes the one-off reimplementation
of the function in pica.h.
2015-05-09 03:08:11 -03:00
Yuri Kunde Schlesner
e7b6ed7578 Memory: Sort memory region variables by VAddr 2015-05-09 01:31:00 -03:00
Yuri Kunde Schlesner
1c0b87edc2 Memory: Re-organize and rename memory area address constants 2015-05-09 01:29:52 -03:00
Lioncash
cb92817fb0 Merge pull request #733 from yuriks/remove-bin
Loader: Remove .bin file support
2015-05-08 22:32:06 -04:00
Yuri Kunde Schlesner
eb3eb9f75d Loader: Remove .bin file support
It is of very limited practical utility currently, and will soon be
impossible to support due to more accurate memory map emulation.
2015-05-08 23:09:41 -03:00
bunnei
917ac23dfc Merge pull request #731 from yuriks/app-info
Kernel: Process class and ExHeader caps parsing
2015-05-08 21:20:37 -04:00
Yuri Kunde Schlesner
7c50b999fa Kernel: Remove unused g_main_thread variable 2015-05-08 22:12:12 -03:00
Yuri Kunde Schlesner
3cb19c9589 Process: Rename StaticAddressMapping => AddressMapping 2015-05-08 22:12:10 -03:00
Yuri Kunde Schlesner
83ccf85bb2 Process: Add more documentation to the class members 2015-05-08 22:11:49 -03:00
Yuri Kunde Schlesner
2f5904611d Process: Use BitField to store process flags 2015-05-08 22:11:48 -03:00
Yuri Kunde Schlesner
7eb413155f Loader/NCCH: Fix formatting of braces 2015-05-08 22:11:48 -03:00
Yuri Kunde Schlesner
2af30d465f Process: Support parsing of exheader kernel caps 2015-05-08 22:11:44 -03:00
Yuri Kunde Schlesner
326ec51261 Common: Add BIT macro 2015-05-08 22:11:04 -03:00
Yuri Kunde Schlesner
a5eba2f984 Kernel: Remove g_program_id
This has been obsoleted by the field in Process.
2015-05-08 22:11:03 -03:00
Yuri Kunde Schlesner
6d60acf0f1 Kernel: Introduce skeleton Process class to hold process data 2015-05-08 22:11:02 -03:00
Yuri Kunde Schlesner
8809d02db3 Common: Add StringFromFixedZeroTerminatedBuffer 2015-05-08 03:03:06 -03:00