metasm/cpu/sh4/decode.rb in metasm-1.0.3 vs metasm/cpu/sh4/decode.rb in metasm-1.0.4

- old
+ new

@@ -195,14 +195,10 @@ when 'cmp/pl'; Expression[a0, :'>', 0] # signed when 'cmp/pz'; Expression[a0, :'>=', 0] # signed end end - def backtrace_binding - @backtrace_binding ||= init_backtrace_binding - end - def opsz(di) ret = @size ret = 8 if di and di.opcode.name =~ /\.b/ ret = 16 if di and di.opcode.name =~ /\.w/ ret @@ -296,11 +292,11 @@ a = di.instruction.args.map { |arg| case arg when GPR, XFR, XDR, FVR, DR, FR, XMTRX; arg.symbolic when MACH, MACL, PR, FPUL, PC, FPSCR; arg.symbolic when SR, SSR, SPC, GBR, VBR, SGR, DBR; arg.symbolic - when Memref; arg.symbolic(di.address, di.opcode.props[:memsz]/8) + when Memref; arg.symbolic(di) else arg end } if binding = backtrace_binding[di.opcode.basename] @@ -330,10 +326,10 @@ else di.instruction.args.last end val = case val when Reg; val.symbolic - when Memref; arg.symbolic(di.address, 4) + when Memref; arg.symbolic(di) else val end val = case di.instruction.opname when 'braf', 'bsrf'; Expression[[di.address, :+, 4], :+, val]