aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Tests/Cpu/CpuTest.cs
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2018-08-15 15:59:51 -0300
committerGitHub <noreply@github.com>2018-08-15 15:59:51 -0300
commitc393cdf8e3775bc95850e4d8c8e4c446b286d3b4 (patch)
tree25035a244741d2daf3f7d6be8b23153ff061ea15 /Ryujinx.Tests/Cpu/CpuTest.cs
parent76d95dee05e3c51c18e1799f54cc407e0f633b4e (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 'Ryujinx.Tests/Cpu/CpuTest.cs')
-rw-r--r--Ryujinx.Tests/Cpu/CpuTest.cs12
1 files changed, 8 insertions, 4 deletions
diff --git a/Ryujinx.Tests/Cpu/CpuTest.cs b/Ryujinx.Tests/Cpu/CpuTest.cs
index 70a8e192..e6a02379 100644
--- a/Ryujinx.Tests/Cpu/CpuTest.cs
+++ b/Ryujinx.Tests/Cpu/CpuTest.cs
@@ -5,6 +5,7 @@ using ChocolArm64.State;
using NUnit.Framework;
using System;
+using System.Runtime.InteropServices;
using System.Runtime.Intrinsics;
using System.Runtime.Intrinsics.X86;
using System.Threading;
@@ -19,6 +20,8 @@ namespace Ryujinx.Tests.Cpu
private long EntryPoint;
+ private IntPtr RamPointer;
+
private AMemory Memory;
private AThread Thread;
@@ -31,15 +34,16 @@ namespace Ryujinx.Tests.Cpu
EntryPoint = Position;
ATranslator Translator = new ATranslator();
- Memory = new AMemory();
- Memory.Manager.Map(Position, Size, 2, AMemoryPerm.Read | AMemoryPerm.Write | AMemoryPerm.Execute);
+ RamPointer = Marshal.AllocHGlobal(new IntPtr(Size));
+ Memory = new AMemory(RamPointer);
+ Memory.Map(Position, 0, Size);
Thread = new AThread(Translator, Memory, EntryPoint);
}
[TearDown]
public void Teardown()
{
- Memory.Dispose();
+ Marshal.FreeHGlobal(RamPointer);
Memory = null;
Thread = null;
}
@@ -52,7 +56,7 @@ namespace Ryujinx.Tests.Cpu
protected void Opcode(uint Opcode)
{
- Thread.Memory.WriteUInt32Unchecked(Position, Opcode);
+ Thread.Memory.WriteUInt32(Position, Opcode);
Position += 4;
}