diff options
Diffstat (limited to 'ARMeilleure/Translation')
| -rw-r--r-- | ARMeilleure/Translation/EmitterContext.cs | 3 | ||||
| -rw-r--r-- | ARMeilleure/Translation/JumpTable.cs | 6 |
2 files changed, 8 insertions, 1 deletions
diff --git a/ARMeilleure/Translation/EmitterContext.cs b/ARMeilleure/Translation/EmitterContext.cs index d9e0a4ed..7abda1a7 100644 --- a/ARMeilleure/Translation/EmitterContext.cs +++ b/ARMeilleure/Translation/EmitterContext.cs @@ -1,3 +1,4 @@ +using ARMeilleure.Diagnostics; using ARMeilleure.IntermediateRepresentation; using ARMeilleure.State; using System; @@ -85,6 +86,8 @@ namespace ARMeilleure.Translation IntPtr ptr = Marshal.GetFunctionPointerForDelegate<Delegate>(func); + Symbols.Add((ulong)ptr.ToInt64(), func.Method.Name); + OperandType returnType = GetOperandType(func.Method.ReturnType); return Call(Const(ptr.ToInt64()), returnType, callArgs); diff --git a/ARMeilleure/Translation/JumpTable.cs b/ARMeilleure/Translation/JumpTable.cs index e444e96d..40ea0fce 100644 --- a/ARMeilleure/Translation/JumpTable.cs +++ b/ARMeilleure/Translation/JumpTable.cs @@ -1,4 +1,5 @@ -using ARMeilleure.Memory; +using ARMeilleure.Diagnostics; +using ARMeilleure.Memory; using System; using System.Collections.Concurrent; using System.Collections.Generic; @@ -60,6 +61,9 @@ namespace ARMeilleure.Translation _targets = new ConcurrentDictionary<ulong, TranslatedFunction>(); _dependants = new ConcurrentDictionary<ulong, LinkedList<int>>(); + + Symbols.Add((ulong)_jumpRegion.Pointer.ToInt64(), JumpTableByteSize, JumpTableStride, "JMP_TABLE"); + Symbols.Add((ulong)_dynamicRegion.Pointer.ToInt64(), DynamicTableByteSize, DynamicTableStride, "DYN_TABLE"); } public void RegisterFunction(ulong address, TranslatedFunction func) |
