Class: Unarm::ThumbIns
Constant Summary collapse
- @@size =
2
Constants included from UnarmBind
UnarmBind::ARGUMENT_KIND, UnarmBind::ARGUMENT_KIND_MAP, UnarmBind::Arg, UnarmBind::Args, UnarmBind::CONDITION, UnarmBind::CONDITION_MAP, UnarmBind::CO_REG, UnarmBind::CO_REG_MAP, UnarmBind::ENDIAN, UnarmBind::ENDIAN_MAP, UnarmBind::OPCODE, UnarmBind::OPCODE_MNEMONIC, UnarmBind::REGISTER, UnarmBind::REGISTER_MAP, UnarmBind::SHIFT, UnarmBind::SHIFT_MAP, UnarmBind::STATUS_REG, UnarmBind::STATUS_REG_MAP
Instance Attribute Summary
Attributes inherited from Ins
Instance Method Summary collapse
-
#initialize(ins, addr = 0, loc = Unarm.cpu.to_s) ⇒ ThumbIns
constructor
A new instance of ThumbIns.
Methods inherited from Ins
#branch_destination, #branch_to_register?, #eql?, #function_end?, #has_imod?, #is_conditional?, #is_data_operation?, #is_illegal?, #is_unconditional?, #mnemonic, #opcode, #sets_flags?, #size, #string, #target_address
Constructor Details
#initialize(ins, addr = 0, loc = Unarm.cpu.to_s) ⇒ ThumbIns
Returns a new instance of ThumbIns.
736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 |
# File 'lib/unarm/unarm.rb', line 736 def initialize(ins, addr = 0, loc = Unarm.cpu.to_s) @raw = ins @address = addr ? addr : nil @ptr = FFI::AutoPointer.new(send(:"#{Unarm.cpu.to_s}_new_thumb_ins", ins), method(:free_thumb_ins)) if Unarm.symbols syms = Unarm.get_raw_syms(loc) @str = CStr.new(send(:"#{Unarm.cpu.to_s}_thumb_ins_to_str_with_syms", @ptr, syms.ptr, syms.count, addr, 0)) else @str = CStr.new(send(:"#{Unarm.cpu.to_s}_thumb_ins_to_str", @ptr)) end @arguments = Arguments.new(send(:"#{Unarm.cpu.to_s}_thumb_ins_get_args", @ptr)) @opcode_id = send(:"#{Unarm.cpu.to_s}_thumb_ins_get_opcode_id", @ptr) @conditional = thumb_ins_is_conditional(@ptr) @data_op = thumb_ins_is_data_operation(@ptr) @sets_flags = thumb_ins_updates_condition_flags(@ptr) end |