diff options
| author | gdkchan <gab.dark.100@gmail.com> | 2018-08-15 15:59:51 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-08-15 15:59:51 -0300 |
| commit | c393cdf8e3775bc95850e4d8c8e4c446b286d3b4 (patch) | |
| tree | 25035a244741d2daf3f7d6be8b23153ff061ea15 /ChocolArm64/Instruction/AInstEmitMemoryHelper.cs | |
| parent | 76d95dee05e3c51c18e1799f54cc407e0f633b4e (diff) | |
More flexible memory manager (#307)
* Keep track mapped buffers with fixed offsets
* Started rewriting the memory manager
* Initial support for MapPhysicalMemory and UnmapPhysicalMemory, other tweaks
* MapPhysicalMemory/UnmapPhysicalMemory support, other tweaks
* Rebased
* Optimize the map/unmap physical memory svcs
* Integrate shared font support
* Fix address space reserve alignment
* Some fixes related to gpu memory mapping
* Some cleanup
* Only try uploading const buffers that are really used
* Check if memory region is contiguous
* Rebased
* Add missing count increment on IsRegionModified
* Check for reads/writes outside of the address space, optimize translation with a tail call
Diffstat (limited to 'ChocolArm64/Instruction/AInstEmitMemoryHelper.cs')
| -rw-r--r-- | ChocolArm64/Instruction/AInstEmitMemoryHelper.cs | 86 |
1 files changed, 18 insertions, 68 deletions
diff --git a/ChocolArm64/Instruction/AInstEmitMemoryHelper.cs b/ChocolArm64/Instruction/AInstEmitMemoryHelper.cs index df091bd5..b10551fe 100644 --- a/ChocolArm64/Instruction/AInstEmitMemoryHelper.cs +++ b/ChocolArm64/Instruction/AInstEmitMemoryHelper.cs @@ -45,46 +45,21 @@ namespace ChocolArm64.Instruction { switch (Size) { - case 0: Name = AOptimizations.DisableMemoryChecks - ? nameof(AMemory.ReadVector8Unchecked) - : nameof(AMemory.ReadVector8); break; - - case 1: Name = AOptimizations.DisableMemoryChecks - ? nameof(AMemory.ReadVector16Unchecked) - : nameof(AMemory.ReadVector16); break; - - case 2: Name = AOptimizations.DisableMemoryChecks - ? nameof(AMemory.ReadVector32Unchecked) - : nameof(AMemory.ReadVector32); break; - - case 3: Name = AOptimizations.DisableMemoryChecks - ? nameof(AMemory.ReadVector64Unchecked) - : nameof(AMemory.ReadVector64); break; - - case 4: Name = AOptimizations.DisableMemoryChecks - ? nameof(AMemory.ReadVector128Unchecked) - : nameof(AMemory.ReadVector128); break; + case 0: Name = nameof(AMemory.ReadVector8); break; + case 1: Name = nameof(AMemory.ReadVector16); break; + case 2: Name = nameof(AMemory.ReadVector32); break; + case 3: Name = nameof(AMemory.ReadVector64); break; + case 4: Name = nameof(AMemory.ReadVector128); break; } } else { switch (Size) { - case 0: Name = AOptimizations.DisableMemoryChecks - ? nameof(AMemory.ReadByteUnchecked) - : nameof(AMemory.ReadByte); break; - - case 1: Name = AOptimizations.DisableMemoryChecks - ? nameof(AMemory.ReadUInt16Unchecked) - : nameof(AMemory.ReadUInt16); break; - - case 2: Name = AOptimizations.DisableMemoryChecks - ? nameof(AMemory.ReadUInt32Unchecked) - : nameof(AMemory.ReadUInt32); break; - - case 3: Name = AOptimizations.DisableMemoryChecks - ? nameof(AMemory.ReadUInt64Unchecked) - : nameof(AMemory.ReadUInt64); break; + case 0: Name = nameof(AMemory.ReadByte); break; + case 1: Name = nameof(AMemory.ReadUInt16); break; + case 2: Name = nameof(AMemory.ReadUInt32); break; + case 3: Name = nameof(AMemory.ReadUInt64); break; } } @@ -132,46 +107,21 @@ namespace ChocolArm64.Instruction { switch (Size) { - case 0: Name = AOptimizations.DisableMemoryChecks - ? nameof(AMemory.WriteVector8Unchecked) - : nameof(AMemory.WriteVector8); break; - - case 1: Name = AOptimizations.DisableMemoryChecks - ? nameof(AMemory.WriteVector16Unchecked) - : nameof(AMemory.WriteVector16); break; - - case 2: Name = AOptimizations.DisableMemoryChecks - ? nameof(AMemory.WriteVector32Unchecked) - : nameof(AMemory.WriteVector32); break; - - case 3: Name = AOptimizations.DisableMemoryChecks - ? nameof(AMemory.WriteVector64Unchecked) - : nameof(AMemory.WriteVector64); break; - - case 4: Name = AOptimizations.DisableMemoryChecks - ? nameof(AMemory.WriteVector128Unchecked) - : nameof(AMemory.WriteVector128); break; + case 0: Name = nameof(AMemory.WriteVector8); break; + case 1: Name = nameof(AMemory.WriteVector16); break; + case 2: Name = nameof(AMemory.WriteVector32); break; + case 3: Name = nameof(AMemory.WriteVector64); break; + case 4: Name = nameof(AMemory.WriteVector128); break; } } else { switch (Size) { - case 0: Name = AOptimizations.DisableMemoryChecks - ? nameof(AMemory.WriteByteUnchecked) - : nameof(AMemory.WriteByte); break; - - case 1: Name = AOptimizations.DisableMemoryChecks - ? nameof(AMemory.WriteUInt16Unchecked) - : nameof(AMemory.WriteUInt16); break; - - case 2: Name = AOptimizations.DisableMemoryChecks - ? nameof(AMemory.WriteUInt32Unchecked) - : nameof(AMemory.WriteUInt32); break; - - case 3: Name = AOptimizations.DisableMemoryChecks - ? nameof(AMemory.WriteUInt64Unchecked) - : nameof(AMemory.WriteUInt64); break; + case 0: Name = nameof(AMemory.WriteByte); break; + case 1: Name = nameof(AMemory.WriteUInt16); break; + case 2: Name = nameof(AMemory.WriteUInt32); break; + case 3: Name = nameof(AMemory.WriteUInt64); break; } } |
