aboutsummaryrefslogtreecommitdiff
path: root/src/ARMeilleure/CodeGen/Linking/RelocEntry.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/ARMeilleure/CodeGen/Linking/RelocEntry.cs')
-rw-r--r--src/ARMeilleure/CodeGen/Linking/RelocEntry.cs38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/ARMeilleure/CodeGen/Linking/RelocEntry.cs b/src/ARMeilleure/CodeGen/Linking/RelocEntry.cs
new file mode 100644
index 00000000..a27bfded
--- /dev/null
+++ b/src/ARMeilleure/CodeGen/Linking/RelocEntry.cs
@@ -0,0 +1,38 @@
+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