class Metasm::WebAsm::Memref
Attributes
off[RW]
Public Class Methods
new(off)
click to toggle source
# File metasm/cpu/webasm/main.rb, line 22 def initialize(off) @off = Expression[off] end
Public Instance Methods
render()
click to toggle source
# File metasm/cpu/webasm/main.rb, line 39 def render ['[', @off, ']'] end
symbolic(di=nil)
click to toggle source
# File metasm/cpu/webasm/main.rb, line 26 def symbolic(di=nil) sz = 8 off = Expression[:mem, :+, [@off]] if di and di.opcode.name =~ /(32|64)\.(load|store)(8|16|32)?/ opsz, op, mode = $1, $2, $3 sz = mode ? mode.to_i/8 : opsz.to_i/8 stack_off = (op == 'store' ? [:opstack, :+, 8] : [:opstack]) off = Expression[Indirection[stack_off, 4], :+, off] end Indirection[off, sz, (di.address if di)] end