diff --git a/src/mapleall/maple_be/src/cg/aarch64/aarch64_strldr.cpp b/src/mapleall/maple_be/src/cg/aarch64/aarch64_strldr.cpp index 32113e53b61fb85e5423acdb40d51d7f7ed9a266..4412abcefd487fd93f64f212e02c665f9484c9a3 100644 --- a/src/mapleall/maple_be/src/cg/aarch64/aarch64_strldr.cpp +++ b/src/mapleall/maple_be/src/cg/aarch64/aarch64_strldr.cpp @@ -687,7 +687,9 @@ void AArch64StoreLoadOpt::SelectPropMode(AArch64MemOperand &currMemOpnd) { AArch64MemOperand::AArch64AddressingMode currAddrMode = currMemOpnd.GetAddrMode(); switch (currAddrMode) { case AArch64MemOperand::kAddrModeBOi: - propMode = kPropBase; + if (!currMemOpnd.IsPreIndexed() && !currMemOpnd.IsPostIndexed()) { + propMode = kPropBase; + } break; case AArch64MemOperand::kAddrModeBOrX: propMode = kPropOffset;