diff options
author | Serban Constantinescu <serban.constantinescu@arm.com> | 2014-05-08 14:31:41 +0100 |
---|---|---|
committer | Andreas Gampe <agampe@google.com> | 2014-07-12 00:53:49 -0700 |
commit | 094192464e961d5e63c53a9644ba72d79fb56ead (patch) | |
tree | 866c808c032d62dd02034426f27860294158d267 /compiler/utils | |
parent | 0f73aa8f64417232e3f3d09e53f49084d2783fe0 (diff) | |
download | art-094192464e961d5e63c53a9644ba72d79fb56ead.zip art-094192464e961d5e63c53a9644ba72d79fb56ead.tar.gz art-094192464e961d5e63c53a9644ba72d79fb56ead.tar.bz2 |
ART: Fuse compare-with-0-and-branch in Arm64 utils-assembler
This patch squashes the use of cmp + b to cbz.
Change-Id: I3d146a9921c471f08ba7304f1ca1b427d8e7dcf9
Signed-off-by: Serban Constantinescu <serban.constantinescu@arm.com>
Diffstat (limited to 'compiler/utils')
-rw-r--r-- | compiler/utils/arm64/assembler_arm64.cc | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/compiler/utils/arm64/assembler_arm64.cc b/compiler/utils/arm64/assembler_arm64.cc index 009b227..5b97ba0 100644 --- a/compiler/utils/arm64/assembler_arm64.cc +++ b/compiler/utils/arm64/assembler_arm64.cc @@ -595,8 +595,7 @@ void Arm64Assembler::LoadReferenceFromHandleScope(ManagedRegister m_out_reg, // FIXME: Who sets the flags here? LoadImmediate(out_reg.AsCoreRegister(), 0, EQ); } - ___ Cmp(reg_x(in_reg.AsCoreRegister()), 0); - ___ B(&exit, COND_OP(EQ)); + ___ Cbz(reg_x(in_reg.AsCoreRegister()), &exit); LoadFromOffset(out_reg.AsCoreRegister(), in_reg.AsCoreRegister(), 0); ___ Bind(&exit); } @@ -607,8 +606,7 @@ void Arm64Assembler::ExceptionPoll(ManagedRegister m_scratch, size_t stack_adjus Arm64Exception *current_exception = new Arm64Exception(scratch, stack_adjust); exception_blocks_.push_back(current_exception); LoadFromOffset(scratch.AsCoreRegister(), ETR, Thread::ExceptionOffset<8>().Int32Value()); - ___ Cmp(reg_x(scratch.AsCoreRegister()), 0); - ___ B(current_exception->Entry(), COND_OP(NE)); + ___ Cbnz(reg_x(scratch.AsCoreRegister()), current_exception->Entry()); } void Arm64Assembler::EmitExceptionPoll(Arm64Exception *exception) { |