aboutsummaryrefslogtreecommitdiff
path: root/src/aarch64/macro-assembler-aarch64.h
diff options
context:
space:
mode:
authorAlexander Gilday <alexander.gilday@arm.com>2018-04-13 16:15:34 +0100
committerAlexander Gilday <alexander.gilday@arm.com>2018-04-19 14:16:32 +0100
commit2c3cebbd93cc0db27e1e55740bd89a8045148d47 (patch)
tree433c7bb4b51d24397ed00688962c2cf42bc01809 /src/aarch64/macro-assembler-aarch64.h
parent560332df277a0e143763e5f5038fbb539c57453b (diff)
Add support for Load/Store LORegion instructions.
Includes: - STLLR, STLLRB, STLLRH - LDLAR, LDLARB, LDLARH Change-Id: I6691072c4aa218eb097414a8b559623e47707078
Diffstat (limited to 'src/aarch64/macro-assembler-aarch64.h')
-rw-r--r--src/aarch64/macro-assembler-aarch64.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/aarch64/macro-assembler-aarch64.h b/src/aarch64/macro-assembler-aarch64.h
index 29a29556..959300cc 100644
--- a/src/aarch64/macro-assembler-aarch64.h
+++ b/src/aarch64/macro-assembler-aarch64.h
@@ -1474,6 +1474,21 @@ class MacroAssembler : public Assembler, public MacroAssemblerInterface {
SingleEmissionCheckScope guard(this);
ldarh(rt, src);
}
+ void Ldlar(const Register& rt, const MemOperand& src) {
+ VIXL_ASSERT(allow_macro_instructions_);
+ SingleEmissionCheckScope guard(this);
+ ldlar(rt, src);
+ }
+ void Ldlarb(const Register& rt, const MemOperand& src) {
+ VIXL_ASSERT(allow_macro_instructions_);
+ SingleEmissionCheckScope guard(this);
+ ldlarb(rt, src);
+ }
+ void Ldlarh(const Register& rt, const MemOperand& src) {
+ VIXL_ASSERT(allow_macro_instructions_);
+ SingleEmissionCheckScope guard(this);
+ ldlarh(rt, src);
+ }
void Ldaxp(const Register& rt, const Register& rt2, const MemOperand& src) {
VIXL_ASSERT(allow_macro_instructions_);
VIXL_ASSERT(!rt.Aliases(rt2));
@@ -1927,6 +1942,21 @@ class MacroAssembler : public Assembler, public MacroAssemblerInterface {
SingleEmissionCheckScope guard(this);
stlrh(rt, dst);
}
+ void Stllr(const Register& rt, const MemOperand& dst) {
+ VIXL_ASSERT(allow_macro_instructions_);
+ SingleEmissionCheckScope guard(this);
+ stllr(rt, dst);
+ }
+ void Stllrb(const Register& rt, const MemOperand& dst) {
+ VIXL_ASSERT(allow_macro_instructions_);
+ SingleEmissionCheckScope guard(this);
+ stllrb(rt, dst);
+ }
+ void Stllrh(const Register& rt, const MemOperand& dst) {
+ VIXL_ASSERT(allow_macro_instructions_);
+ SingleEmissionCheckScope guard(this);
+ stllrh(rt, dst);
+ }
void Stlxp(const Register& rs,
const Register& rt,
const Register& rt2,