Commit Graph

7536 Commits

Author SHA1 Message Date
Ben Vanik 4e6e27d9ac Zero KeCertMonitorData export. 2013-05-31 21:33:19 -07:00
Ben Vanik ef0032ecff Wiring up register read/write from JIT -> GPU. 2013-05-31 21:23:26 -07:00
Rick Gibbed edf3a9155b The stack address needs to start at the end of the allocated memory for the stack, not the beginning. 2013-05-31 20:55:52 -07:00
Ben Vanik d53458023e Fixing/implementing static TLS entries. 2013-05-31 10:01:32 -07:00
Ben Vanik 38efd3837d Adding support for detecting the save/rest fpr and vmx blocks. 2013-05-31 01:53:30 -07:00
Ben Vanik e6195c4086 fmadd, orc, extsh, extsw. 2013-05-31 01:00:00 -07:00
Ben Vanik 9bb36c7404 Fixing decoding of the rld* instructions. 2013-05-31 00:38:26 -07:00
Ben Vanik dc16653164 Fixing decoding of some of the opcode 63 instructions. 2013-05-31 00:09:10 -07:00
Ben Vanik 14c3b8a382 Adding a case for tail calls.
Still missing the forward tail call case, as there is legit code that
does weird branches like that.
2013-05-30 23:41:25 -07:00
Ben Vanik e7665c11eb Adding basic constant checks and updates to memory instructions.
Only those instructions likely to have immediate values have been updated.
It'd be nice to go further than this and a) centralize the ea calculations
b) move this all to the analysis pass c) generate mov's in Read/WriteMemory
using the immediates as bases instead of all the register work.

Also fixing a broken stwcx that was causing crashes.
2013-05-30 23:20:05 -07:00
Ben Vanik 78086684c6 Now tracking constant values for most operations.
This will make it easier to enable memory access optimizations and hacks.
Not all operations are updating the constant registers, only those that
are likely to participate in constant value building. Constant values are
cleared on every basic block, though this may be too zealous it prevents
weird fall-through cases.
2013-05-30 22:50:32 -07:00
Ben Vanik 7990146001 xex2 loader now guesses sizes to allocate.
This may not be right in all cases, but seems to work.
2013-05-29 23:26:34 -07:00
Ben Vanik f307bc9eb1 Adding --target= and --trace_registers flags.
--target=[xex|iso] makes it possible to specify the thing to run from a
flagfile.
2013-05-29 21:45:54 -07:00
Ben Vanik 37530d1438 Adding some required video export variables. 2013-05-29 21:26:29 -07:00
Ben Vanik 6950b21424 Reworking the memory system to not commit 3gb and to properly alloc data.
Now only 512MB is committed on startup. Loaded XEXs are placed into their
required addresses in the 0x8... range. Kernel structures are allocated
from the normal heap like other data. There should no longer be any magical
pointers.
2013-05-29 21:00:55 -07:00
Ben Vanik 61f7f6d28e Starting work on some of the Vd kernel functions. 2013-05-28 20:00:06 -07:00
Ben Vanik 2cecc02787 Skeleton GPU files. 2013-05-27 21:45:55 -07:00
Ben Vanik 16baef3591 Starting physical memory allocation routines.
These currently don't do anything special w.r.t. memory addresses/etc,
but will in the future.
2013-05-27 20:09:40 -07:00
Ben Vanik f78e7945d4 Fixing malloc alighment and duplicate calls to NtAllocateVirtualMemory. 2013-05-27 19:58:20 -07:00
Ben Vanik 1d0ec64d40 Adding srd/srw. Fixing shamts in other shifts. 2013-05-27 05:35:41 -07:00
Ben Vanik 778efdb276 fcfid(z), fctid(z) -- both largely untested. 2013-05-27 05:22:38 -07:00
Ben Vanik 84fb802166 fadd(s), fdiv(s), fmul(s), fsub(s), fsel, frsp, fabs, fmr, fneg, fnmsubs. 2013-05-27 04:09:07 -07:00
Ben Vanik fe6df31280 Finishing off the kernel method conversion. 2013-05-26 23:06:09 -07:00
Ben Vanik 64eb2aa2b3 Converting RTL methods to the new style. 2013-05-26 23:05:05 -07:00
Rick Gibbed c4e0347932 NULLs! 2013-05-26 22:53:46 -07:00
Rick Gibbed fe9cb1cddb Oops. 2013-05-26 22:46:45 -07:00
Rick Gibbed 9f06645e75 Merge branch 'master' of https://github.com/benvanik/xenia 2013-05-26 22:42:28 -07:00
Rick Gibbed 78ee6c9ee9 Added video submodule for xboxkrnl and xam modules. 2013-05-26 22:42:07 -07:00
Rick Gibbed 9eadffe461 Added float/double swap helpers. 2013-05-26 22:39:39 -07:00
Ben Vanik b87b17f51e Converting more kernel methods to the new style. 2013-05-26 22:04:12 -07:00
Ben Vanik 6e8828f843 Switching kernel files to the new style. 2013-05-26 21:37:47 -07:00
Ben Vanik fbe800aacd Preparing to enable unshimmed kernel methods that can be called directly. 2013-05-26 20:32:30 -07:00
Ben Vanik 25d8b5f8d8 Switching shim mapping macro to use ordinal constants. 2013-05-26 20:10:10 -07:00
Ben Vanik a332faf419 Adding ordinal enums to kernel modules.
Access via xe::kernel::modules::xboxkrnl::ordinals::MyFunction
(or just ordinals::MyFunction when in the namespace).
Some collisions occurred - just added random suffixes for now.
2013-05-26 19:28:46 -07:00
Ben Vanik 87b8ebd613 Forgot to switch macros. 2013-05-26 19:19:26 -07:00
Ben Vanik 9f320ba4a7 Prepping kernel export tables for various uses. 2013-05-26 18:57:41 -07:00
Ben Vanik 1b07aace73 Moving kernel functions into their proper namespaces. 2013-05-26 18:43:57 -07:00
Ben Vanik 1a5a8d748d Adding missing files to the xam gypi. 2013-05-26 18:40:51 -07:00
Ben Vanik c10d719d53 Floating point loads/stores.
Seem correct. Maybe not.
2013-05-26 17:59:11 -07:00
Ben Vanik a09170b2c6 Fixing bad EA write order. 2013-05-26 17:49:37 -07:00
Ben Vanik a6db12b48f ldx/ldux. 2013-05-26 17:43:37 -07:00
Rick Gibbed 0ca44083e6 Stick the export ordinal in the dummy address for unimplemented export data, to make it obvious what it is when debugging. 2013-05-26 17:37:31 -07:00
Rick Gibbed c29c4b067f Corrected a xam export to variable. 2013-05-26 17:23:30 -07:00
Ben Vanik b5e729f89e sld. 2013-05-26 16:30:52 -07:00
Ben Vanik 924b08b264 cntlzd and fixing broken cntlzwx. 2013-05-26 16:30:43 -07:00
Ben Vanik 86396816f5 rldicl, rldicr. 2013-05-26 16:10:25 -07:00
Ben Vanik fd86370ccc Fixing warnings on mtmsr/mtmsrd disasm. 2013-05-26 15:03:36 -07:00
Rick Gibbed 5f494a4449 Corrected many xboxkrnl exports to variable. 2013-05-26 09:46:20 -07:00
Rick Gibbed 1b3351b1e2 disasm for mfmsr, mtmsr, mtmsrd 2013-05-26 08:39:31 -07:00
Ben Vanik 82159b2b9d Adding lfd. 2013-05-26 07:19:09 -07:00