1 // <auto-generated>
2 //  automatically generated by the FlatBuffers compiler, do not modify
3 // </auto-generated>
4 
5 namespace FBInstruction
6 {
7     using global::System;
8     using global::System.Collections.Generic;
9     using global::Google.FlatBuffers;
10 
11     public struct Instruction : IFlatbufferObject
12     {
13         private Table __p;
14         public ByteBuffer ByteBuffer { get { return __p.bb; } }
ValidateVersionFBInstruction.Instruction15         public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); }
GetRootAsInstructionFBInstruction.Instruction16         public static Instruction GetRootAsInstruction(ByteBuffer _bb) { return GetRootAsInstruction(_bb, new Instruction()); }
GetRootAsInstructionFBInstruction.Instruction17         public static Instruction GetRootAsInstruction(ByteBuffer _bb, Instruction obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
__initFBInstruction.Instruction18         public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); }
__assignFBInstruction.Instruction19         public Instruction __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; }
20 
21         public ulong Addr { get { int o = __p.__offset(4); return o != 0 ? __p.bb.GetUlong(o + __p.bb_pos) : (ulong)0; } }
22         public uint Opcode { get { int o = __p.__offset(6); return o != 0 ? __p.bb.GetUint(o + __p.bb_pos) : (uint)0; } }
23         public string Mnemonic { get { int o = __p.__offset(8); return o != 0 ? __p.__string(o + __p.bb_pos) : null; } }
24 #if ENABLE_SPAN_T
GetMnemonicBytesFBInstruction.Instruction25   public Span<byte> GetMnemonicBytes() { return __p.__vector_as_span<byte>(8, 1); }
26 #else
GetMnemonicBytesFBInstruction.Instruction27         public ArraySegment<byte>? GetMnemonicBytes() { return __p.__vector_as_arraysegment(8); }
28 #endif
GetMnemonicArrayFBInstruction.Instruction29         public byte[] GetMnemonicArray() { return __p.__vector_as_array<byte>(8); }
OperandsFBInstruction.Instruction30         public string Operands(int j) { int o = __p.__offset(10); return o != 0 ? __p.__string(__p.__vector(o) + j * 4) : null; }
31         public int OperandsLength { get { int o = __p.__offset(10); return o != 0 ? __p.__vector_len(o) : 0; } }
InputsFBInstruction.Instruction32         public string Inputs(int j) { int o = __p.__offset(12); return o != 0 ? __p.__string(__p.__vector(o) + j * 4) : null; }
33         public int InputsLength { get { int o = __p.__offset(12); return o != 0 ? __p.__vector_len(o) : 0; } }
OutputsFBInstruction.Instruction34         public string Outputs(int j) { int o = __p.__offset(14); return o != 0 ? __p.__string(__p.__vector(o) + j * 4) : null; }
35         public int OutputsLength { get { int o = __p.__offset(14); return o != 0 ? __p.__vector_len(o) : 0; } }
36         public bool IsNop { get { int o = __p.__offset(16); return o != 0 ? 0 != __p.bb.Get(o + __p.bb_pos) : (bool)false; } }
37         public bool IsBranch { get { int o = __p.__offset(18); return o != 0 ? 0 != __p.bb.Get(o + __p.bb_pos) : (bool)false; } }
38         public ulong BranchTarget { get { int o = __p.__offset(20); return o != 0 ? __p.bb.GetUlong(o + __p.bb_pos) : (ulong)0; } }
39         public bool IsFlush { get { int o = __p.__offset(22); return o != 0 ? 0 != __p.bb.Get(o + __p.bb_pos) : (bool)false; } }
40         public bool IsVctrl { get { int o = __p.__offset(24); return o != 0 ? 0 != __p.bb.Get(o + __p.bb_pos) : (bool)false; } }
LoadsFBInstruction.Instruction41         public ulong Loads(int j) { int o = __p.__offset(26); return o != 0 ? __p.bb.GetUlong(__p.__vector(o) + j * 8) : (ulong)0; }
42         public int LoadsLength { get { int o = __p.__offset(26); return o != 0 ? __p.__vector_len(o) : 0; } }
43 #if ENABLE_SPAN_T
GetLoadsBytesFBInstruction.Instruction44   public Span<ulong> GetLoadsBytes() { return __p.__vector_as_span<ulong>(26, 8); }
45 #else
GetLoadsBytesFBInstruction.Instruction46         public ArraySegment<byte>? GetLoadsBytes() { return __p.__vector_as_arraysegment(26); }
47 #endif
GetLoadsArrayFBInstruction.Instruction48         public ulong[] GetLoadsArray() { return __p.__vector_as_array<ulong>(26); }
StoresFBInstruction.Instruction49         public ulong Stores(int j) { int o = __p.__offset(28); return o != 0 ? __p.bb.GetUlong(__p.__vector(o) + j * 8) : (ulong)0; }
50         public int StoresLength { get { int o = __p.__offset(28); return o != 0 ? __p.__vector_len(o) : 0; } }
51 #if ENABLE_SPAN_T
GetStoresBytesFBInstruction.Instruction52   public Span<ulong> GetStoresBytes() { return __p.__vector_as_span<ulong>(28, 8); }
53 #else
GetStoresBytesFBInstruction.Instruction54         public ArraySegment<byte>? GetStoresBytes() { return __p.__vector_as_arraysegment(28); }
55 #endif
GetStoresArrayFBInstruction.Instruction56         public ulong[] GetStoresArray() { return __p.__vector_as_array<ulong>(28); }
57         public float Lmul { get { int o = __p.__offset(30); return o != 0 ? __p.bb.GetFloat(o + __p.bb_pos) : (float)0.0f; } }
58         public byte Sew { get { int o = __p.__offset(32); return o != 0 ? __p.bb.Get(o + __p.bb_pos) : (byte)0; } }
59         public short Vl { get { int o = __p.__offset(34); return o != 0 ? __p.bb.GetShort(o + __p.bb_pos) : (short)0; } }
60 
CreateInstructionFBInstruction.Instruction61         public static Offset<FBInstruction.Instruction> CreateInstruction(FlatBufferBuilder builder,
62             ulong addr = 0,
63             uint opcode = 0,
64             StringOffset mnemonicOffset = default(StringOffset),
65             VectorOffset operandsOffset = default(VectorOffset),
66             VectorOffset inputsOffset = default(VectorOffset),
67             VectorOffset outputsOffset = default(VectorOffset),
68             bool is_nop = false,
69             bool is_branch = false,
70             ulong branch_target = 0,
71             bool is_flush = false,
72             bool is_vctrl = false,
73             VectorOffset loadsOffset = default(VectorOffset),
74             VectorOffset storesOffset = default(VectorOffset),
75             float lmul = 0.0f,
76             byte sew = 0,
77             short vl = 0)
78         {
79             builder.StartTable(16);
80             Instruction.AddBranchTarget(builder, branch_target);
81             Instruction.AddAddr(builder, addr);
82             Instruction.AddLmul(builder, lmul);
83             Instruction.AddStores(builder, storesOffset);
84             Instruction.AddLoads(builder, loadsOffset);
85             Instruction.AddOutputs(builder, outputsOffset);
86             Instruction.AddInputs(builder, inputsOffset);
87             Instruction.AddOperands(builder, operandsOffset);
88             Instruction.AddMnemonic(builder, mnemonicOffset);
89             Instruction.AddOpcode(builder, opcode);
90             Instruction.AddVl(builder, vl);
91             Instruction.AddSew(builder, sew);
92             Instruction.AddIsVctrl(builder, is_vctrl);
93             Instruction.AddIsFlush(builder, is_flush);
94             Instruction.AddIsBranch(builder, is_branch);
95             Instruction.AddIsNop(builder, is_nop);
96             return Instruction.EndInstruction(builder);
97         }
98 
StartInstructionFBInstruction.Instruction99         public static void StartInstruction(FlatBufferBuilder builder) { builder.StartTable(16); }
AddAddrFBInstruction.Instruction100         public static void AddAddr(FlatBufferBuilder builder, ulong addr) { builder.AddUlong(0, addr, 0); }
AddOpcodeFBInstruction.Instruction101         public static void AddOpcode(FlatBufferBuilder builder, uint opcode) { builder.AddUint(1, opcode, 0); }
AddMnemonicFBInstruction.Instruction102         public static void AddMnemonic(FlatBufferBuilder builder, StringOffset mnemonicOffset) { builder.AddOffset(2, mnemonicOffset.Value, 0); }
AddOperandsFBInstruction.Instruction103         public static void AddOperands(FlatBufferBuilder builder, VectorOffset operandsOffset) { builder.AddOffset(3, operandsOffset.Value, 0); }
CreateOperandsVectorFBInstruction.Instruction104         public static VectorOffset CreateOperandsVector(FlatBufferBuilder builder, StringOffset[] data) { builder.StartVector(4, data.Length, 4); for (int i = data.Length - 1; i >= 0; i--) builder.AddOffset(data[i].Value); return builder.EndVector(); }
CreateOperandsVectorBlockFBInstruction.Instruction105         public static VectorOffset CreateOperandsVectorBlock(FlatBufferBuilder builder, StringOffset[] data) { builder.StartVector(4, data.Length, 4); builder.Add(data); return builder.EndVector(); }
CreateOperandsVectorBlockFBInstruction.Instruction106         public static VectorOffset CreateOperandsVectorBlock(FlatBufferBuilder builder, ArraySegment<StringOffset> data) { builder.StartVector(4, data.Count, 4); builder.Add(data); return builder.EndVector(); }
CreateOperandsVectorBlockFBInstruction.Instruction107         public static VectorOffset CreateOperandsVectorBlock(FlatBufferBuilder builder, IntPtr dataPtr, int sizeInBytes) { builder.StartVector(1, sizeInBytes, 1); builder.Add<StringOffset>(dataPtr, sizeInBytes); return builder.EndVector(); }
StartOperandsVectorFBInstruction.Instruction108         public static void StartOperandsVector(FlatBufferBuilder builder, int numElems) { builder.StartVector(4, numElems, 4); }
AddInputsFBInstruction.Instruction109         public static void AddInputs(FlatBufferBuilder builder, VectorOffset inputsOffset) { builder.AddOffset(4, inputsOffset.Value, 0); }
CreateInputsVectorFBInstruction.Instruction110         public static VectorOffset CreateInputsVector(FlatBufferBuilder builder, StringOffset[] data) { builder.StartVector(4, data.Length, 4); for (int i = data.Length - 1; i >= 0; i--) builder.AddOffset(data[i].Value); return builder.EndVector(); }
CreateInputsVectorBlockFBInstruction.Instruction111         public static VectorOffset CreateInputsVectorBlock(FlatBufferBuilder builder, StringOffset[] data) { builder.StartVector(4, data.Length, 4); builder.Add(data); return builder.EndVector(); }
CreateInputsVectorBlockFBInstruction.Instruction112         public static VectorOffset CreateInputsVectorBlock(FlatBufferBuilder builder, ArraySegment<StringOffset> data) { builder.StartVector(4, data.Count, 4); builder.Add(data); return builder.EndVector(); }
CreateInputsVectorBlockFBInstruction.Instruction113         public static VectorOffset CreateInputsVectorBlock(FlatBufferBuilder builder, IntPtr dataPtr, int sizeInBytes) { builder.StartVector(1, sizeInBytes, 1); builder.Add<StringOffset>(dataPtr, sizeInBytes); return builder.EndVector(); }
StartInputsVectorFBInstruction.Instruction114         public static void StartInputsVector(FlatBufferBuilder builder, int numElems) { builder.StartVector(4, numElems, 4); }
AddOutputsFBInstruction.Instruction115         public static void AddOutputs(FlatBufferBuilder builder, VectorOffset outputsOffset) { builder.AddOffset(5, outputsOffset.Value, 0); }
CreateOutputsVectorFBInstruction.Instruction116         public static VectorOffset CreateOutputsVector(FlatBufferBuilder builder, StringOffset[] data) { builder.StartVector(4, data.Length, 4); for (int i = data.Length - 1; i >= 0; i--) builder.AddOffset(data[i].Value); return builder.EndVector(); }
CreateOutputsVectorBlockFBInstruction.Instruction117         public static VectorOffset CreateOutputsVectorBlock(FlatBufferBuilder builder, StringOffset[] data) { builder.StartVector(4, data.Length, 4); builder.Add(data); return builder.EndVector(); }
CreateOutputsVectorBlockFBInstruction.Instruction118         public static VectorOffset CreateOutputsVectorBlock(FlatBufferBuilder builder, ArraySegment<StringOffset> data) { builder.StartVector(4, data.Count, 4); builder.Add(data); return builder.EndVector(); }
CreateOutputsVectorBlockFBInstruction.Instruction119         public static VectorOffset CreateOutputsVectorBlock(FlatBufferBuilder builder, IntPtr dataPtr, int sizeInBytes) { builder.StartVector(1, sizeInBytes, 1); builder.Add<StringOffset>(dataPtr, sizeInBytes); return builder.EndVector(); }
StartOutputsVectorFBInstruction.Instruction120         public static void StartOutputsVector(FlatBufferBuilder builder, int numElems) { builder.StartVector(4, numElems, 4); }
AddIsNopFBInstruction.Instruction121         public static void AddIsNop(FlatBufferBuilder builder, bool isNop) { builder.AddBool(6, isNop, false); }
AddIsBranchFBInstruction.Instruction122         public static void AddIsBranch(FlatBufferBuilder builder, bool isBranch) { builder.AddBool(7, isBranch, false); }
AddBranchTargetFBInstruction.Instruction123         public static void AddBranchTarget(FlatBufferBuilder builder, ulong branchTarget) { builder.AddUlong(8, branchTarget, 0); }
AddIsFlushFBInstruction.Instruction124         public static void AddIsFlush(FlatBufferBuilder builder, bool isFlush) { builder.AddBool(9, isFlush, false); }
AddIsVctrlFBInstruction.Instruction125         public static void AddIsVctrl(FlatBufferBuilder builder, bool isVctrl) { builder.AddBool(10, isVctrl, false); }
AddLoadsFBInstruction.Instruction126         public static void AddLoads(FlatBufferBuilder builder, VectorOffset loadsOffset) { builder.AddOffset(11, loadsOffset.Value, 0); }
CreateLoadsVectorFBInstruction.Instruction127         public static VectorOffset CreateLoadsVector(FlatBufferBuilder builder, ulong[] data) { builder.StartVector(8, data.Length, 8); for (int i = data.Length - 1; i >= 0; i--) builder.AddUlong(data[i]); return builder.EndVector(); }
CreateLoadsVectorBlockFBInstruction.Instruction128         public static VectorOffset CreateLoadsVectorBlock(FlatBufferBuilder builder, ulong[] data) { builder.StartVector(8, data.Length, 8); builder.Add(data); return builder.EndVector(); }
CreateLoadsVectorBlockFBInstruction.Instruction129         public static VectorOffset CreateLoadsVectorBlock(FlatBufferBuilder builder, ArraySegment<ulong> data) { builder.StartVector(8, data.Count, 8); builder.Add(data); return builder.EndVector(); }
CreateLoadsVectorBlockFBInstruction.Instruction130         public static VectorOffset CreateLoadsVectorBlock(FlatBufferBuilder builder, IntPtr dataPtr, int sizeInBytes) { builder.StartVector(1, sizeInBytes, 1); builder.Add<ulong>(dataPtr, sizeInBytes); return builder.EndVector(); }
StartLoadsVectorFBInstruction.Instruction131         public static void StartLoadsVector(FlatBufferBuilder builder, int numElems) { builder.StartVector(8, numElems, 8); }
AddStoresFBInstruction.Instruction132         public static void AddStores(FlatBufferBuilder builder, VectorOffset storesOffset) { builder.AddOffset(12, storesOffset.Value, 0); }
CreateStoresVectorFBInstruction.Instruction133         public static VectorOffset CreateStoresVector(FlatBufferBuilder builder, ulong[] data) { builder.StartVector(8, data.Length, 8); for (int i = data.Length - 1; i >= 0; i--) builder.AddUlong(data[i]); return builder.EndVector(); }
CreateStoresVectorBlockFBInstruction.Instruction134         public static VectorOffset CreateStoresVectorBlock(FlatBufferBuilder builder, ulong[] data) { builder.StartVector(8, data.Length, 8); builder.Add(data); return builder.EndVector(); }
CreateStoresVectorBlockFBInstruction.Instruction135         public static VectorOffset CreateStoresVectorBlock(FlatBufferBuilder builder, ArraySegment<ulong> data) { builder.StartVector(8, data.Count, 8); builder.Add(data); return builder.EndVector(); }
CreateStoresVectorBlockFBInstruction.Instruction136         public static VectorOffset CreateStoresVectorBlock(FlatBufferBuilder builder, IntPtr dataPtr, int sizeInBytes) { builder.StartVector(1, sizeInBytes, 1); builder.Add<ulong>(dataPtr, sizeInBytes); return builder.EndVector(); }
StartStoresVectorFBInstruction.Instruction137         public static void StartStoresVector(FlatBufferBuilder builder, int numElems) { builder.StartVector(8, numElems, 8); }
AddLmulFBInstruction.Instruction138         public static void AddLmul(FlatBufferBuilder builder, float lmul) { builder.AddFloat(13, lmul, 0.0f); }
AddSewFBInstruction.Instruction139         public static void AddSew(FlatBufferBuilder builder, byte sew) { builder.AddByte(14, sew, 0); }
AddVlFBInstruction.Instruction140         public static void AddVl(FlatBufferBuilder builder, short vl) { builder.AddShort(15, vl, 0); }
EndInstructionFBInstruction.Instruction141         public static Offset<FBInstruction.Instruction> EndInstruction(FlatBufferBuilder builder)
142         {
143             int o = builder.EndTable();
144             return new Offset<FBInstruction.Instruction>(o);
145         }
146     }
147 }
148