Example #1
0
        /// <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);
        }
Example #2
0
 /// <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;
 }
Example #3
0
 /// <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;
 }