diff --git a/src/bin/maple b/src/bin/maple index 0d9457b4cd195e0e00c9e40fedf56b59d7b4b205..c3543af63c18d10936afba2934f94c3acdc21525 100755 Binary files a/src/bin/maple and b/src/bin/maple differ diff --git a/src/maple_be/src/cg/aarch64/aarch64_cgfunc.cpp b/src/maple_be/src/cg/aarch64/aarch64_cgfunc.cpp index 57619fac5c0e754ce9d80964418cc09ff404b124..f5749c81ced7b9849f9921e2b696dd89b7bbd3c4 100644 --- a/src/maple_be/src/cg/aarch64/aarch64_cgfunc.cpp +++ b/src/maple_be/src/cg/aarch64/aarch64_cgfunc.cpp @@ -4572,9 +4572,10 @@ void AArch64CGFunc::SelectParmList(StmtNode &naryNode, AArch64ListOperand &srcOp srcOpnds.PushOpnd(parmRegOpnd); } else { /* store to the memory segment for stack-passsed arguments. */ Operand &actMemOpnd = CreateMemOpnd(RSP, ploc.memOffset, GetPrimTypeBitSize(primType)); + uint32 dataSize = GetPrimTypeBitSize(primType); + dataSize = dataSize <= k32BitSize ? k32BitSize : dataSize; GetCurBB()->AppendInsn( - GetCG()->BuildInstruction(PickStInsn(GetPrimTypeBitSize(primType), primType), *expRegOpnd, - actMemOpnd)); + GetCG()->BuildInstruction(PickStInsn(dataSize, primType), *expRegOpnd, actMemOpnd)); } ASSERT(ploc.reg1 == 0, "SelectCall NYI"); }