aboutsummaryrefslogtreecommitdiff
path: root/ARMeilleure/CodeGen/Linking
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/Linking
parentcd124bda587ef09668a971fa1cac1c3f0cfc9f21 (diff)
Move solution and projects to src
Diffstat (limited to 'ARMeilleure/CodeGen/Linking')
-rw-r--r--ARMeilleure/CodeGen/Linking/RelocEntry.cs38
-rw-r--r--ARMeilleure/CodeGen/Linking/RelocInfo.cs32
-rw-r--r--ARMeilleure/CodeGen/Linking/Symbol.cs99
-rw-r--r--ARMeilleure/CodeGen/Linking/SymbolType.cs28
4 files changed, 0 insertions, 197 deletions
diff --git a/ARMeilleure/CodeGen/Linking/RelocEntry.cs b/ARMeilleure/CodeGen/Linking/RelocEntry.cs
deleted file mode 100644
index a27bfded..00000000
--- a/ARMeilleure/CodeGen/Linking/RelocEntry.cs
+++ /dev/null
@@ -1,38 +0,0 @@
-namespace ARMeilleure.CodeGen.Linking
-{
- /// <summary>
- /// Represents a relocation.
- /// </summary>
- readonly struct RelocEntry
- {
- public const int Stride = 13; // Bytes.
-
- /// <summary>
- /// Gets the position of the relocation.
- /// </summary>
- public int Position { get; }
-
- /// <summary>
- /// Gets the <see cref="Symbol"/> of the relocation.
- /// </summary>
- public Symbol Symbol { get; }
-
- /// <summary>
- /// Initializes a new instance of the <see cref="RelocEntry"/> struct with the specified position and
- /// <see cref="Symbol"/>.
- /// </summary>
- /// <param name="position">Position of relocation</param>
- /// <param name="symbol">Symbol of relocation</param>
- public RelocEntry(int position, Symbol symbol)
- {
- Position = position;
- Symbol = symbol;
- }
-
- /// <inheritdoc/>
- public override string ToString()
- {
- return $"({nameof(Position)} = {Position}, {nameof(Symbol)} = {Symbol})";
- }
- }
-} \ No newline at end of file
diff --git a/ARMeilleure/CodeGen/Linking/RelocInfo.cs b/ARMeilleure/CodeGen/Linking/RelocInfo.cs
deleted file mode 100644
index caaf08e3..00000000
--- a/ARMeilleure/CodeGen/Linking/RelocInfo.cs
+++ /dev/null
@@ -1,32 +0,0 @@
-using System;
-
-namespace ARMeilleure.CodeGen.Linking
-{
- /// <summary>
- /// Represents relocation information about a <see cref="CompiledFunction"/>.
- /// </summary>
- readonly struct RelocInfo
- {
- /// <summary>
- /// Gets an empty <see cref="RelocInfo"/>.
- /// </summary>
- public static RelocInfo Empty { get; } = new RelocInfo(null);
-
- private readonly RelocEntry[] _entries;
-
- /// <summary>
- /// Gets the set of <see cref="RelocEntry"/>.
- /// </summary>
- public ReadOnlySpan<RelocEntry> Entries => _entries;
-
- /// <summary>
- /// Initializes a new instance of the <see cref="RelocInfo"/> struct with the specified set of
- /// <see cref="RelocEntry"/>.
- /// </summary>
- /// <param name="entries">Set of <see cref="RelocInfo"/> to use</param>
- public RelocInfo(RelocEntry[] entries)
- {
- _entries = entries;
- }
- }
-} \ No newline at end of file
diff --git a/ARMeilleure/CodeGen/Linking/Symbol.cs b/ARMeilleure/CodeGen/Linking/Symbol.cs
deleted file mode 100644
index 39e0c3eb..00000000
--- a/ARMeilleure/CodeGen/Linking/Symbol.cs
+++ /dev/null
@@ -1,99 +0,0 @@
-using System;
-
-namespace ARMeilleure.CodeGen.Linking
-{
- /// <summary>
- /// Represents a symbol.
- /// </summary>
- readonly struct Symbol
- {
- private readonly ulong _value;
-
- /// <summary>
- /// Gets the <see cref="SymbolType"/> of the <see cref="Symbol"/>.
- /// </summary>
- public SymbolType Type { get; }
-
- /// <summary>
- /// Gets the value of the <see cref="Symbol"/>.
- /// </summary>
- /// <exception cref="InvalidOperationException"><see cref="Type"/> is <see cref="SymbolType.None"/></exception>
- public ulong Value
- {
- get
- {
- if (Type == SymbolType.None)
- {
- ThrowSymbolNone();
- }
-
- return _value;
- }
- }
-
- /// <summary>
- /// Initializes a new instance of the <see cref="Symbol"/> structure with the specified <see cref="SymbolType"/> and value.
- /// </summary>
- /// <param name="type">Type of symbol</param>
- /// <param name="value">Value of symbol</param>
- public Symbol(SymbolType type, ulong value)
- {
- (Type, _value) = (type, value);
- }
-
- /// <summary>
- /// Determines if the specified <see cref="Symbol"/> instances are equal.
- /// </summary>
- /// <param name="a">First instance</param>
- /// <param name="b">Second instance</param>
- /// <returns><see langword="true"/> if equal; otherwise <see langword="false"/></returns>
- public static bool operator ==(Symbol a, Symbol b)
- {
- return a.Equals(b);
- }
-
- /// <summary>
- /// Determines if the specified <see cref="Symbol"/> instances are not equal.
- /// </summary>
- /// <param name="a">First instance</param>
- /// <param name="b">Second instance</param>
- /// <returns><see langword="true"/> if not equal; otherwise <see langword="false"/></returns>
- public static bool operator !=(Symbol a, Symbol b)
- {
- return !(a == b);
- }
-
- /// <summary>
- /// Determines if the specified <see cref="Symbol"/> is equal to this <see cref="Symbol"/> instance.
- /// </summary>
- /// <param name="other">Other <see cref="Symbol"/> instance</param>
- /// <returns><see langword="true"/> if equal; otherwise <see langword="false"/></returns>
- public bool Equals(Symbol other)
- {
- return other.Type == Type && other._value == _value;
- }
-
- /// <inheritdoc/>
- public override bool Equals(object obj)
- {
- return obj is Symbol sym && Equals(sym);
- }
-
- /// <inheritdoc/>
- public override int GetHashCode()
- {
- return HashCode.Combine(Type, _value);
- }
-
- /// <inheritdoc/>
- public override string ToString()
- {
- return $"{Type}:{_value}";
- }
-
- private static void ThrowSymbolNone()
- {
- throw new InvalidOperationException("Symbol refers to nothing.");
- }
- }
-}
diff --git a/ARMeilleure/CodeGen/Linking/SymbolType.cs b/ARMeilleure/CodeGen/Linking/SymbolType.cs
deleted file mode 100644
index b05b6969..00000000
--- a/ARMeilleure/CodeGen/Linking/SymbolType.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-namespace ARMeilleure.CodeGen.Linking
-{
- /// <summary>
- /// Types of <see cref="Symbol"/>.
- /// </summary>
- enum SymbolType : byte
- {
- /// <summary>
- /// Refers to nothing, i.e no symbol.
- /// </summary>
- None,
-
- /// <summary>
- /// Refers to an entry in <see cref="Translation.Delegates"/>.
- /// </summary>
- DelegateTable,
-
- /// <summary>
- /// Refers to an entry in <see cref="Translation.Translator.FunctionTable"/>.
- /// </summary>
- FunctionTable,
-
- /// <summary>
- /// Refers to a special symbol which is handled by <see cref="Translation.PTC.Ptc.PatchCode"/>.
- /// </summary>
- Special
- }
-}