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]