/// <summary> /// Create a PowerPC Register. /// </summary> /// <param name="disassembler"> /// A disassembler. /// </param> /// <param name="id"> /// The register's unique identifier. /// </param> /// <returns> /// A PowerPC register. A null reference if the register's unique identifier is equal to /// <see cref="PowerPcRegisterId.Invalid" />. /// </returns> /// <exception cref="System.ObjectDisposedException"> /// Thrown if the disassembler is disposed. /// </exception> internal static PowerPcRegister TryCreate(CapstoneDisassembler disassembler, PowerPcRegisterId id) { PowerPcRegister @object = null; if (id != PowerPcRegisterId.Invalid) { // ... // // Throws an exception if the operation fails. var name = NativeCapstone.GetRegisterName(disassembler.Handle, (int)id); @object = new PowerPcRegister(id, name); } return(@object); }
/// <summary> /// Create a PowerPC Memory Operand Value. /// </summary> /// <param name="disassembler"> /// A disassembler. /// </param> /// <param name="nativeMemoryOperandValue"> /// A native PowerPC memory operand value. /// </param> internal PowerPcMemoryOperandValue(CapstoneDisassembler disassembler, ref NativePowerPcMemoryOperandValue nativeMemoryOperandValue) { this.Base = PowerPcRegister.TryCreate(disassembler, nativeMemoryOperandValue.Base); this.Displacement = nativeMemoryOperandValue.Displacement; }
/// <summary> /// Create a PowerPC Condition Register Operand Value. /// </summary> /// <param name="disassembler"> /// A disassembler. /// </param> /// <param name="nativeConditionRegisterOperandValue"> /// A native PowerPC condition register operand value. /// </param> internal PowerPcConditionRegisterOperandValue(CapstoneDisassembler disassembler, ref NativePowerPcConditionRegisterOperandValue nativeConditionRegisterOperandValue) { this.BranchCode = nativeConditionRegisterOperandValue.BranchCode; this.Register = PowerPcRegister.TryCreate(disassembler, nativeConditionRegisterOperandValue.Register); this.Scale = nativeConditionRegisterOperandValue.Scale; }