diff options
author | Andreas Gampe <agampe@google.com> | 2015-07-06 14:00:39 -0700 |
---|---|---|
committer | Andreas Gampe <agampe@google.com> | 2015-07-07 09:46:45 -0700 |
commit | db05e31018ef4d1b46a43924b370f061c5457626 (patch) | |
tree | 84a2f1e4da8b75c9a88f6448cb671c70a7e2bd5d /compiler | |
parent | ccbbda2b716bcc0dd9ad7b6c7bf9079efa3fca23 (diff) | |
download | art-db05e31018ef4d1b46a43924b370f061c5457626.zip art-db05e31018ef4d1b46a43924b370f061c5457626.tar.gz art-db05e31018ef4d1b46a43924b370f061c5457626.tar.bz2 |
ART: Fix opsize in LoadArgDirect
If the destination register is a reference, use kReference for the
op size.
Bug: 22244733
(cherry picked from commit 185a5586c8b796e770e9b4b7ac2befa8ccdaca7e)
Change-Id: Idf52f2ee4c65b5dc41cb66257d95281dc6f32255
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/dex/quick/mir_to_lir.cc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/compiler/dex/quick/mir_to_lir.cc b/compiler/dex/quick/mir_to_lir.cc index 7ca03cf..c50246d 100644 --- a/compiler/dex/quick/mir_to_lir.cc +++ b/compiler/dex/quick/mir_to_lir.cc @@ -193,7 +193,8 @@ void Mir2Lir::LoadArgDirect(size_t in_position, RegLocation rl_dest) { } if (!reg_arg.Valid()) { - LoadBaseDisp(TargetPtrReg(kSp), offset, rl_dest.reg, rl_dest.wide ? k64 : k32, kNotVolatile); + OpSize op_size = rl_dest.wide ? k64 : (rl_dest.ref ? kReference : k32); + LoadBaseDisp(TargetPtrReg(kSp), offset, rl_dest.reg, op_size, kNotVolatile); } else { if (rl_dest.wide) { OpRegCopyWide(rl_dest.reg, reg_arg); |