about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorPierre LALET <pierre.lalet@cea.fr>2015-02-16 19:12:15 +0100
committerPierre LALET <pierre.lalet@cea.fr>2015-02-17 12:50:05 +0100
commitc8c67dbe4f9d28ab106fa04445e5d97359386862 (patch)
treefa9a208971819cb588c91cd5a78f54c46eb870c2
parent0c4dde0602f79fcfbd75b2c6e0a01bbfd1371126 (diff)
downloadmiasm-c8c67dbe4f9d28ab106fa04445e5d97359386862.tar.gz
miasm-c8c67dbe4f9d28ab106fa04445e5d97359386862.zip
Use `@named_arguments` decorators for `.func_args_*` methods
-rw-r--r--miasm2/arch/arm/jit.py9
-rw-r--r--miasm2/arch/x86/jit.py32
2 files changed, 14 insertions, 27 deletions
diff --git a/miasm2/arch/arm/jit.py b/miasm2/arch/arm/jit.py
index 8803725e..a9b93f6b 100644
--- a/miasm2/arch/arm/jit.py
+++ b/miasm2/arch/arm/jit.py
@@ -1,10 +1,10 @@
-from miasm2.jitter.jitload import jitter
+import logging
+
+from miasm2.jitter.jitload import jitter, named_arguments
 from miasm2.core import asmbloc
 from miasm2.core.utils import *
 from miasm2.arch.arm.sem import ir_armb, ir_arml
 
-import logging
-
 log = logging.getLogger('jit_arm')
 hnd = logging.StreamHandler()
 hnd.setFormatter(logging.Formatter("[%(levelname)s]: %(message)s"))
@@ -34,15 +34,14 @@ class jitter_arml(jitter):
 
     # calling conventions
 
+    @named_arguments
     def func_args_stdcall(self, n_args):
         args = []
         for i in xrange(min(n_args, 4)):
             args.append(self.cpu.get_gpreg()['R%d' % i])
         for i in xrange(max(0, n_args - 4)):
             args.append(self.get_stack_arg(i))
-
         ret_ad = self.cpu.LR
-        log.debug('%s %s %s' % (whoami(), hex(ret_ad), [hex(x) for x in args]))
         return ret_ad, args
 
     def func_ret_stdcall(self, ret_addr, ret_value=None):
diff --git a/miasm2/arch/x86/jit.py b/miasm2/arch/x86/jit.py
index 08bac4db..a984cce8 100644
--- a/miasm2/arch/x86/jit.py
+++ b/miasm2/arch/x86/jit.py
@@ -1,11 +1,10 @@
-from miasm2.jitter.jitload import jitter
+import logging
+
+from miasm2.jitter.jitload import jitter, named_arguments
 from miasm2.core import asmbloc
 from miasm2.core.utils import *
 from miasm2.arch.x86.sem import ir_x86_16, ir_x86_32, ir_x86_64
 
-
-import logging
-
 log = logging.getLogger('jit_x86')
 hnd = logging.StreamHandler()
 hnd.setFormatter(logging.Formatter("[%(levelname)s]: %(message)s"))
@@ -75,13 +74,10 @@ class jitter_x86_32(jitter):
     # calling conventions
 
     # stdcall
+    @named_arguments
     def func_args_stdcall(self, n_args):
         ret_ad = self.pop_uint32_t()
-        args = []
-        for _ in xrange(n_args):
-            args.append(self.pop_uint32_t())
-        if log.level <= logging.DEBUG:
-            log.debug('%s %s %s' % (whoami(), hex(ret_ad), [hex(x) for x in args]))
+        args = [self.pop_uint32_t() for _ in xrange(n_args)]
         return ret_ad, args
 
     def func_ret_stdcall(self, ret_addr, ret_value1=None, ret_value2=None):
@@ -92,14 +88,10 @@ class jitter_x86_32(jitter):
             self.cpu.EDX = ret_value
 
     # cdecl
-    def func_args_cdecl(self, n_args, dolog=True):
+    @named_arguments
+    def func_args_cdecl(self, n_args):
         ret_ad = self.pop_uint32_t()
-        args = []
-        for i in xrange(n_args):
-            args.append(self.get_stack_arg(i))
-        if dolog and log.level <= logging.DEBUG:
-            log.debug('%s %s %s' %
-                      (whoami(), hex(ret_ad), [hex(x) for x in args]))
+        args = [self.get_stack_arg(i) for i in xrange(n_args)]
         return ret_ad, args
 
     def func_ret_cdecl(self, ret_addr, ret_value):
@@ -139,17 +131,15 @@ class jitter_x86_64(jitter):
         x = upck64(self.vm.get_mem(self.cpu.RSP + 8 * n, 8))
         return x
 
+    @named_arguments
     def func_args_stdcall(self, n_args):
         args_regs = ['RCX', 'RDX', 'R8', 'R9']
         ret_ad = self.pop_uint64_t()
-
         args = []
         for i in xrange(min(n_args, 4)):
             args.append(self.cpu.get_gpreg()[args_regs[i]])
         for i in xrange(max(0, n_args - 4)):
             args.append(self.get_stack_arg(i))
-
-        log.debug('%s %s %s' % (whoami(), hex(ret_ad), [hex(x) for x in args]))
         return ret_ad, args
 
     def func_ret_stdcall(self, ret_addr, ret_value=None):
@@ -158,17 +148,15 @@ class jitter_x86_64(jitter):
             self.cpu.RAX = ret_value
         return True
 
+    @named_arguments
     def func_args_cdecl(self, n_args):
         args_regs = ['RCX', 'RDX', 'R8', 'R9']
         ret_ad = self.pop_uint64_t()
-
         args = []
         for i in xrange(min(n_args, 4)):
             args.append(self.cpu.get_gpreg()[args_regs[i]])
         for i in xrange(max(0, n_args - 4)):
             args.append(self.get_stack_arg(i))
-
-        log.debug('%s %s %s' % (whoami(), hex(ret_ad), [hex(x) for x in args]))
         return ret_ad, args
 
     def func_ret_cdecl(self, ret_addr, ret_value=None):