aboutsummaryrefslogtreecommitdiff
path: root/ChocolArm64/Memory
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2018-06-08 23:54:50 -0300
committergdkchan <gab.dark.100@gmail.com>2018-06-08 23:54:50 -0300
commit78223484394db924d02383310d8bace8a01fa152 (patch)
treebeffb68c47bac213e3a8d4c98ec1572fc5308c9b /ChocolArm64/Memory
parent9136897d4a0aabed7e12f9756bc9a50e4bdbea72 (diff)
Small cleanup in AMemory and removed some unused usings
Diffstat (limited to 'ChocolArm64/Memory')
-rw-r--r--ChocolArm64/Memory/AMemory.cs28
1 files changed, 16 insertions, 12 deletions
diff --git a/ChocolArm64/Memory/AMemory.cs b/ChocolArm64/Memory/AMemory.cs
index 7af288a6..2adf5403 100644
--- a/ChocolArm64/Memory/AMemory.cs
+++ b/ChocolArm64/Memory/AMemory.cs
@@ -355,11 +355,18 @@ namespace ChocolArm64.Memory
public byte[] ReadBytes(long Position, long Size)
{
+ if ((uint)Size > int.MaxValue)
+ {
+ throw new ArgumentOutOfRangeException(nameof(Size));
+ }
+
EnsureRangeIsValid(Position, Size, AMemoryPerm.Read);
- byte[] Result = new byte[Size];
- Marshal.Copy((IntPtr)(RamPtr + (uint)Position), Result, 0, (int)Size);
- return Result;
+ byte[] Data = new byte[Size];
+
+ Marshal.Copy((IntPtr)(RamPtr + (uint)Position), Data, 0, (int)Size);
+
+ return Data;
}
public Vector128<float> ReadVector8Unchecked(long Position)
@@ -392,9 +399,7 @@ namespace ChocolArm64.Memory
{
if (Sse.IsSupported)
{
- byte* Address = RamPtr + (uint)Position;
-
- return Sse.LoadScalarVector128((float*)Address);
+ return Sse.LoadScalarVector128((float*)(RamPtr + (uint)Position));
}
else
{
@@ -420,9 +425,7 @@ namespace ChocolArm64.Memory
{
if (Sse.IsSupported)
{
- byte* Address = RamPtr + (uint)Position;
-
- return Sse.LoadVector128((float*)Address);
+ return Sse.LoadVector128((float*)(RamPtr + (uint)Position));
}
else
{
@@ -678,11 +681,12 @@ namespace ChocolArm64.Memory
private void EnsureRangeIsValid(long Position, long Size, AMemoryPerm Perm)
{
- long EndPos = (Position + Size);
- Position = Position & ~AMemoryMgr.PageMask; //check base of each page
- while (Position < EndPos)
+ long EndPos = Position + Size;
+
+ while ((ulong)Position < (ulong)EndPos)
{
EnsureAccessIsValid(Position, Perm);
+
Position += AMemoryMgr.PageSize;
}
}