summaryrefslogtreecommitdiffstats
path: root/compiler/utils/arm64
diff options
context:
space:
mode:
authorSerban Constantinescu <serban.constantinescu@arm.com>2014-05-08 14:31:41 +0100
committerAndreas Gampe <agampe@google.com>2014-07-12 00:53:49 -0700
commit094192464e961d5e63c53a9644ba72d79fb56ead (patch)
tree866c808c032d62dd02034426f27860294158d267 /compiler/utils/arm64
parent0f73aa8f64417232e3f3d09e53f49084d2783fe0 (diff)
downloadart-094192464e961d5e63c53a9644ba72d79fb56ead.tar.gz
art-094192464e961d5e63c53a9644ba72d79fb56ead.tar.bz2
art-094192464e961d5e63c53a9644ba72d79fb56ead.zip
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/arm64')
-rw-r--r--compiler/utils/arm64/assembler_arm64.cc6
1 files changed, 2 insertions, 4 deletions
diff --git a/compiler/utils/arm64/assembler_arm64.cc b/compiler/utils/arm64/assembler_arm64.cc
index 009b227209..5b97ba0a02 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) {