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
Ben Vanik
9d63eb7499
Fixing condition updates for unsigned compares.
2013-05-26 04:21:07 -07:00
Ben Vanik
5d83465ce4
Fixing branches via the indirection block.
...
Also disabling the local indirection optimization until it's implemented.
2013-05-26 03:59:32 -07:00
Ben Vanik
22f186d713
Better asserts/checks around bad function addresses.
2013-05-26 03:26:49 -07:00
Ben Vanik
bf9e92c027
Fixing typo in disasm.
2013-05-26 02:48:31 -07:00
Ben Vanik
35ce144a37
Disasm of some memory routines.
2013-05-26 02:45:32 -07:00
Rick Gibbed
6678279ebf
Corrected more issues with X_RTL_CRITICAL_SECTION, RtlInitializeCriticalSection, RtlInitializeCriticalSectionAndSpinCount.
2013-05-26 02:36:48 -07:00
Rick Gibbed
d385bc6a10
Added XEASSERTSTRUCTSIZE macro.
2013-05-26 02:36:07 -07:00
Rick Gibbed
237ab5551f
Oops. Fixed some formatting in previous commit.
2013-05-26 02:21:05 -07:00
Rick Gibbed
3ac3d8078d
Corrected some issues with X_RTL_CRITICAL_SECTION, RtlInitializeCriticalSection, RtlInitializeCriticalSectionAndSpinCount.
2013-05-26 02:18:49 -07:00