From f399051c0beaa6c57a37f8c10fbd8fde609dbfcc Mon Sep 17 00:00:00 2001 From: William Chen Date: Tue, 2 Mar 2021 09:00:16 -0800 Subject: [PATCH] Issue #139A5M move invariant code out of loop --- .../maple_be/src/cg/aarch64/aarch64_args.cpp | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/mapleall/maple_be/src/cg/aarch64/aarch64_args.cpp b/src/mapleall/maple_be/src/cg/aarch64/aarch64_args.cpp index 2ce3a0d49d..35a496d4da 100644 --- a/src/mapleall/maple_be/src/cg/aarch64/aarch64_args.cpp +++ b/src/mapleall/maple_be/src/cg/aarch64/aarch64_args.cpp @@ -267,16 +267,18 @@ void AArch64MoveRegArgs::MoveVRegisterArgs() { ParmLocator parmlocator(aarchCGFunc->GetBecommon()); PLocInfo ploc; - for (uint32 i = 0; i < aarchCGFunc->GetFunction().GetFormalCount(); ++i) { - if (i == 0) { - MIRFunction *func = const_cast(aarchCGFunc->GetBecommon().GetMIRModule().CurFunction()); - if (aarchCGFunc->GetBecommon().HasFuncReturnType(*func)) { - TyIdx idx = aarchCGFunc->GetBecommon().GetFuncReturnType(*func); - if (aarchCGFunc->GetBecommon().GetTypeSize(idx) <= k16BitSize) { - continue; - } + uint32 formalCount = aarchCGFunc->GetFunction().GetFormalCount(); + uint32 start = 0; + if (formalCount) { + MIRFunction *func = const_cast(aarchCGFunc->GetBecommon().GetMIRModule().CurFunction()); + if (aarchCGFunc->GetBecommon().HasFuncReturnType(*func)) { + TyIdx idx = aarchCGFunc->GetBecommon().GetFuncReturnType(*func); + if (aarchCGFunc->GetBecommon().GetTypeSize(idx) <= k16BitSize) { + start = 1; } } + } + for (uint32 i = start; i < formalCount; ++i) { MIRType *ty = aarchCGFunc->GetFunction().GetNthParamType(i); parmlocator.LocateNextParm(*ty, ploc, i == 0); MIRSymbol *sym = aarchCGFunc->GetFunction().GetFormal(i); -- Gitee