about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorserpilliere <serpilliere@users.noreply.github.com>2017-07-22 14:53:51 +0200
committerGitHub <noreply@github.com>2017-07-22 14:53:51 +0200
commit140ea51822e4876e2c1903f54fa5c30fffd85c55 (patch)
treed1a6c24e97fd5e5e53db9ad83f6fad32a27f58a7
parent831749c021264871a164b0f3a465a1a89c8acd62 (diff)
parentf1d0b9388cec285717b28d1367f6667a9949774c (diff)
downloadmiasm-140ea51822e4876e2c1903f54fa5c30fffd85c55.tar.gz
miasm-140ea51822e4876e2c1903f54fa5c30fffd85c55.zip
Merge pull request #585 from commial/fix/jit-multiret
Fix/jit multiret
Diffstat (limited to '')
-rw-r--r--miasm2/arch/arm/jit.py8
-rw-r--r--miasm2/arch/x86/jit.py8
2 files changed, 10 insertions, 6 deletions
diff --git a/miasm2/arch/arm/jit.py b/miasm2/arch/arm/jit.py
index 545d60de..b07f2a38 100644
--- a/miasm2/arch/arm/jit.py
+++ b/miasm2/arch/arm/jit.py
@@ -38,10 +38,12 @@ class jitter_arml(jitter):
         ret_ad = self.cpu.LR
         return ret_ad, args
 
-    def func_ret_stdcall(self, ret_addr, ret_value=None):
+    def func_ret_stdcall(self, ret_addr, ret_value1=None, ret_value2=None):
         self.pc = self.cpu.PC = ret_addr
-        if ret_value is not None:
-            self.cpu.R0 = ret_value
+        if ret_value1 is not None:
+            self.cpu.R0 = ret_value1
+        if ret_value2 is not None:
+            self.cpu.R1 = ret_value2
         return True
 
     def func_prepare_stdcall(self, ret_addr, *args):
diff --git a/miasm2/arch/x86/jit.py b/miasm2/arch/x86/jit.py
index d39f1f38..50501060 100644
--- a/miasm2/arch/x86/jit.py
+++ b/miasm2/arch/x86/jit.py
@@ -135,10 +135,12 @@ class jitter_x86_32(jitter):
         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=None):
+    def func_ret_cdecl(self, ret_addr, ret_value1=None, ret_value2=None):
         self.pc = self.cpu.EIP = ret_addr
-        if ret_value is not None:
-            self.cpu.EAX = ret_value
+        if ret_value1 is not None:
+            self.cpu.EAX = ret_value1
+        if ret_value2 is not None:
+            self.cpu.EDX = ret_value2
 
     get_arg_n_cdecl = get_stack_arg