diff options
| author | serpilliere <serpilliere@users.noreply.github.com> | 2017-07-22 14:53:51 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-07-22 14:53:51 +0200 |
| commit | 140ea51822e4876e2c1903f54fa5c30fffd85c55 (patch) | |
| tree | d1a6c24e97fd5e5e53db9ad83f6fad32a27f58a7 | |
| parent | 831749c021264871a164b0f3a465a1a89c8acd62 (diff) | |
| parent | f1d0b9388cec285717b28d1367f6667a9949774c (diff) | |
| download | miasm-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.py | 8 | ||||
| -rw-r--r-- | miasm2/arch/x86/jit.py | 8 |
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 |