ecc64c934d
* Add `Operand.Label` support to `Assembler` This adds label support to `Assembler` and enables branch tightening when compiling with relocatables. Jump management and patching has been moved to the `Assembler`. * Move instruction table to `Assembler.Table` * Set PTC internal version * Rename `Assembler.Table` to `AssemblerTable`
32 lines
No EOL
959 B
C#
32 lines
No EOL
959 B
C#
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;
|
|
}
|
|
}
|
|
} |