aboutsummaryrefslogtreecommitdiff
path: root/ARMeilleure/CodeGen/CompiledFunction.cs
diff options
context:
space:
mode:
authorTSR Berry <20988865+TSRBerry@users.noreply.github.com>2023-04-08 01:22:00 +0200
committerMary <thog@protonmail.com>2023-04-27 23:51:14 +0200
commitcee712105850ac3385cd0091a923438167433f9f (patch)
tree4a5274b21d8b7f938c0d0ce18736d3f2993b11b1 /ARMeilleure/CodeGen/CompiledFunction.cs
parentcd124bda587ef09668a971fa1cac1c3f0cfc9f21 (diff)
Move solution and projects to src
Diffstat (limited to 'ARMeilleure/CodeGen/CompiledFunction.cs')
-rw-r--r--ARMeilleure/CodeGen/CompiledFunction.cs68
1 files changed, 0 insertions, 68 deletions
diff --git a/ARMeilleure/CodeGen/CompiledFunction.cs b/ARMeilleure/CodeGen/CompiledFunction.cs
deleted file mode 100644
index 0560bf2e..00000000
--- a/ARMeilleure/CodeGen/CompiledFunction.cs
+++ /dev/null
@@ -1,68 +0,0 @@
-using ARMeilleure.CodeGen.Linking;
-using ARMeilleure.CodeGen.Unwinding;
-using ARMeilleure.Translation.Cache;
-using System;
-using System.Runtime.InteropServices;
-
-namespace ARMeilleure.CodeGen
-{
- /// <summary>
- /// Represents a compiled function.
- /// </summary>
- readonly struct CompiledFunction
- {
- /// <summary>
- /// Gets the machine code of the <see cref="CompiledFunction"/>.
- /// </summary>
- public byte[] Code { get; }
-
- /// <summary>
- /// Gets the <see cref="Unwinding.UnwindInfo"/> of the <see cref="CompiledFunction"/>.
- /// </summary>
- public UnwindInfo UnwindInfo { get; }
-
- /// <summary>
- /// Gets the <see cref="Linking.RelocInfo"/> of the <see cref="CompiledFunction"/>.
- /// </summary>
- public RelocInfo RelocInfo { get; }
-
- /// <summary>
- /// Initializes a new instance of the <see cref="CompiledFunction"/> struct with the specified machine code,
- /// unwind info and relocation info.
- /// </summary>
- /// <param name="code">Machine code</param>
- /// <param name="unwindInfo">Unwind info</param>
- /// <param name="relocInfo">Relocation info</param>
- internal CompiledFunction(byte[] code, UnwindInfo unwindInfo, RelocInfo relocInfo)
- {
- Code = code;
- UnwindInfo = unwindInfo;
- RelocInfo = relocInfo;
- }
-
- /// <summary>
- /// Maps the <see cref="CompiledFunction"/> onto the <see cref="JitCache"/> and returns a delegate of type
- /// <typeparamref name="T"/> pointing to the mapped function.
- /// </summary>
- /// <typeparam name="T">Type of delegate</typeparam>
- /// <returns>A delegate of type <typeparamref name="T"/> pointing to the mapped function</returns>
- public T Map<T>()
- {
- return MapWithPointer<T>(out _);
- }
-
- /// <summary>
- /// Maps the <see cref="CompiledFunction"/> onto the <see cref="JitCache"/> and returns a delegate of type
- /// <typeparamref name="T"/> pointing to the mapped function.
- /// </summary>
- /// <typeparam name="T">Type of delegate</typeparam>
- /// <param name="codePointer">Pointer to the function code in memory</param>
- /// <returns>A delegate of type <typeparamref name="T"/> pointing to the mapped function</returns>
- public T MapWithPointer<T>(out IntPtr codePointer)
- {
- codePointer = JitCache.Map(this);
-
- return Marshal.GetDelegateForFunctionPointer<T>(codePointer);
- }
- }
-} \ No newline at end of file