diff --git a/src/mono/mono/mini/mini-arm64.c b/src/mono/mono/mini/mini-arm64.c index 657aac2c79d8a..7eeaaaa4079f2 100644 --- a/src/mono/mono/mini/mini-arm64.c +++ b/src/mono/mono/mini/mini-arm64.c @@ -1662,6 +1662,8 @@ add_valuetype (CallInfo *cinfo, ArgInfo *ainfo, MonoType *t, gboolean is_return) nregs = align_size / 8; if (is_hfa (t, &nfields, &esize, field_offsets)) { + /* Use pinvoke size/alignment */ + size = mini_type_stack_size_full (t, &align, TRUE); /* * The struct might include nested float structs aligned at 8, * so need to keep track of the offsets of the individual fields. @@ -1678,7 +1680,7 @@ add_valuetype (CallInfo *cinfo, ArgInfo *ainfo, MonoType *t, gboolean is_return) } else { ainfo->nfregs_to_skip = FP_PARAM_REGS > cinfo->fr ? FP_PARAM_REGS - cinfo->fr : 0; cinfo->fr = FP_PARAM_REGS; - if (!(ios_abi && cinfo->pinvoke)) + if (!ios_abi) size = ALIGN_TO (size, 8); ainfo->storage = ArgVtypeOnStack; cinfo->stack_usage = ALIGN_TO (cinfo->stack_usage, align); diff --git a/src/tests/issues.targets b/src/tests/issues.targets index 1cdd995ac8fa8..2cbe5326fd1aa 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -2749,16 +2749,6 @@ - - - - https://github.com/dotnet/runtime/issues/96051 - - - https://github.com/dotnet/runtime/issues/96051 - - - https://github.com/dotnet/runtime/issues/75756