diff options
Diffstat (limited to 'compiler')
| -rw-r--r-- | compiler/dex/quick/gen_common.cc | 6 | ||||
| -rw-r--r-- | compiler/dex/quick/gen_invoke.cc | 7 |
2 files changed, 4 insertions, 9 deletions
diff --git a/compiler/dex/quick/gen_common.cc b/compiler/dex/quick/gen_common.cc index 2384c7ff60..1e2199187f 100644 --- a/compiler/dex/quick/gen_common.cc +++ b/compiler/dex/quick/gen_common.cc @@ -1947,12 +1947,6 @@ void Mir2Lir::GenConversionCall(ThreadOffset func_offset, * functions */ FlushAllRegs(); /* Send everything to home location */ - if (rl_src.wide) { - LoadValueDirectWideFixed(rl_src, rl_src.fp ? TargetReg(kFArg0) : TargetReg(kArg0), - rl_src.fp ? TargetReg(kFArg1) : TargetReg(kArg1)); - } else { - LoadValueDirectFixed(rl_src, rl_src.fp ? TargetReg(kFArg0) : TargetReg(kArg0)); - } CallRuntimeHelperRegLocation(func_offset, rl_src, false); if (rl_dest.wide) { RegLocation rl_result; diff --git a/compiler/dex/quick/gen_invoke.cc b/compiler/dex/quick/gen_invoke.cc index 859a033c21..92c13cef2a 100644 --- a/compiler/dex/quick/gen_invoke.cc +++ b/compiler/dex/quick/gen_invoke.cc @@ -102,10 +102,11 @@ void Mir2Lir::CallRuntimeHelperReg(ThreadOffset helper_offset, int arg0, bool sa void Mir2Lir::CallRuntimeHelperRegLocation(ThreadOffset helper_offset, RegLocation arg0, bool safepoint_pc) { int r_tgt = CallHelperSetup(helper_offset); - if (arg0.wide == 0) { - LoadValueDirectFixed(arg0, TargetReg(kArg0)); + if (arg0.wide) { + LoadValueDirectWideFixed(arg0, arg0.fp ? TargetReg(kFArg0) : TargetReg(kArg0), + arg0.fp ? TargetReg(kFArg1) : TargetReg(kArg1)); } else { - LoadValueDirectWideFixed(arg0, TargetReg(kArg0), TargetReg(kArg1)); + LoadValueDirectFixed(arg0, arg0.fp ? TargetReg(kFArg0) : TargetReg(kArg0)); } ClobberCallerSave(); CallHelper(r_tgt, helper_offset, safepoint_pc); |