Sha256: e119b395c0cb8581b75fbaadb5ce250b8888541d3447e5607942647644eb7773
Contents?: true
Size: 1.03 KB
Versions: 2
Compression:
Stored size: 1.03 KB
Contents
# This file is part of Metasm, the Ruby assembly manipulation suite # Copyright (C) 2006-2009 Yoann GUILLOT # # Licence is LGPL, see LICENCE in the top-level directory require 'metasm/render' require 'metasm/arm/opcodes' module Metasm class ARM class Reg include Renderable def render r = self.class.i_to_s[@i] r += '!' if updated if @stype == :lsl and @shift == 0 [r] elsif @stype == :ror and @shift == 0 ["#{r} RRX"] else case s = @shift when Integer; s = Expression[s] when Reg; s = self.class.i_to_s[s.i] end ["#{r} #{@stype.to_s.upcase} #{s}"] end end end class Memref include Renderable def render o = @offset o = Expression[o] if o.kind_of? Integer case @incr when nil; ['[', @base, ', ', o, ']'] when :pre; ['[', @base, ', ', o, ']!'] when :post; ['[', @base, '], ', o] end end end class RegList include Renderable def render r = ['{'] @list.each { |l| r << l << ', ' } r[-1] = '}' r << '^' if usermoderegs r end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
metasm-1.0.1 | lib/metasm/arm/render.rb |
metasm-1.0.0 | lib/metasm/arm/render.rb |