diff options
| author | 2013-11-01 16:54:08 +0000 | |
|---|---|---|
| committer | 2013-11-01 16:54:08 +0000 | |
| commit | 3ee03a887d20de4fdc298ec2004b47f81e47e52f (patch) | |
| tree | 7b5557c8d48c2d58b35a9cc6970c4d6faba836f6 | |
| parent | 57bc00a7c17ffa0a72c78dd34dc362d4a8220081 (diff) | |
| parent | cdb4b715e77f427838b97da9bdb6654f561296ab (diff) | |
Merge "Fix intrinsic Long.reverseBytes()." into dalvik-dev
| -rw-r--r-- | compiler/dex/quick/gen_invoke.cc | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/compiler/dex/quick/gen_invoke.cc b/compiler/dex/quick/gen_invoke.cc index b366fdd55d..c7d0014b80 100644 --- a/compiler/dex/quick/gen_invoke.cc +++ b/compiler/dex/quick/gen_invoke.cc @@ -968,8 +968,10 @@ bool Mir2Lir::GenInlinedReverseBytes(CallInfo* info, OpSize size) { RegLocation rl_result = EvalLoc(rl_dest, kCoreReg, true); if (size == kLong) { RegLocation rl_i = LoadValueWide(rl_src_i, kCoreReg); + int reg_tmp = AllocTemp(); + OpRegCopy(reg_tmp, rl_result.low_reg); OpRegReg(kOpRev, rl_result.low_reg, rl_i.high_reg); - OpRegReg(kOpRev, rl_result.high_reg, rl_i.low_reg); + OpRegReg(kOpRev, rl_result.high_reg, reg_tmp); StoreValueWide(rl_dest, rl_result); } else { DCHECK(size == kWord || size == kSignedHalf); |