diff options
author | Serban Constantinescu <serban.constantinescu@arm.com> | 2014-05-22 15:10:18 +0100 |
---|---|---|
committer | Serban Constantinescu <serban.constantinescu@arm.com> | 2014-05-22 18:02:27 +0100 |
commit | ed65c5e982705defdb597d94d1aa3f2997239c9b (patch) | |
tree | e03618f9ddfdf42459ec17df8caf52a2fb5e2137 /compiler/dex/quick/ralloc_util.cc | |
parent | 8b4b4f0ffa161ec06a2d947b832cab4b0f82ad84 (diff) | |
download | art-ed65c5e982705defdb597d94d1aa3f2997239c9b.tar.gz art-ed65c5e982705defdb597d94d1aa3f2997239c9b.tar.bz2 art-ed65c5e982705defdb597d94d1aa3f2997239c9b.zip |
AArch64: Enable LONG_* and INT_* opcodes.
This patch fixes some of the issues with LONG and INT opcodes. The patch
has been tested and passes all the dalvik tests except for 018 and 107.
Change-Id: Idd1923ed935ee8236ab0c7e5fa969eaefeea8708
Signed-off-by: Serban Constantinescu <serban.constantinescu@arm.com>
Diffstat (limited to 'compiler/dex/quick/ralloc_util.cc')
-rw-r--r-- | compiler/dex/quick/ralloc_util.cc | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/compiler/dex/quick/ralloc_util.cc b/compiler/dex/quick/ralloc_util.cc index 2c51c1f2fd..8c0f2bb7e2 100644 --- a/compiler/dex/quick/ralloc_util.cc +++ b/compiler/dex/quick/ralloc_util.cc @@ -447,8 +447,11 @@ RegStorage Mir2Lir::AllocLiveReg(int s_reg, int reg_class, bool wide) { reg = FindLiveReg(wide ? reg_pool_->dp_regs_ : reg_pool_->sp_regs_, s_reg); } if (!reg.Valid() && (reg_class != kFPReg)) { - // TODO: add 64-bit core pool similar to above. - reg = FindLiveReg(reg_pool_->core_regs_, s_reg); + if (Is64BitInstructionSet(cu_->instruction_set)) { + reg = FindLiveReg(wide ? reg_pool_->core64_regs_ : reg_pool_->core_regs_, s_reg); + } else { + reg = FindLiveReg(reg_pool_->core_regs_, s_reg); + } } if (reg.Valid()) { if (wide && !reg.IsFloat() && !Is64BitInstructionSet(cu_->instruction_set)) { |