# File metasm/cpu/arm64/main.rb, line 38 def initialize(reg, mode, shift) @reg = reg @mode = mode @shift = shift end
# File metasm/cpu/arm64/render.rb, line 20 def render case @mode when :lsl, :lsr, :asr if shift == 0 [@reg] else case @mode when :lsl; [@reg, ' LSL ', Expression[shift]] when :lsr; [@reg, ' LSR ', Expression[shift]] when :asr; [@reg, ' ASR ', Expression[shift]] end end else sh = [] sh << ' LSL ' << Expression[shift] if shift != 0 [ @mode.to_s, '( ', @reg, ' )', *sh ] end end
# File metasm/cpu/arm64/main.rb, line 44 def symbolic sym = @reg.symbolic if shift != 0 case @mode when :lsl; Expression[sym, :<<, shift] when :lsr; Expression[sym, :>>, shift] when :asr; Expression[sym, :>>, shift] # signextend end end sym end