Issue opened in reference to #129321 (comment)
The managed return value (MRV) debug info protocol (VarLocType in cordebuginfo.h) has no encoding for values returned in two floating-point registers. This affects ICorDebugILFrame3::GetReturnValueForILOffset for types returned via multi-reg FP on Linux x64.
| Type |
Win x64 |
Unix x64 |
ARM64 |
x86 |
| Vector128 (16B) |
Ret buffer |
Multi-reg (XMM0+XMM1) * |
Single V0 reg |
Ret buffer |
| Vector256 (32B) |
Ret buffer |
Ret buffer |
Ret buffer |
Ret buffer |
| Vector512 (64B) |
Ret buffer |
Ret buffer |
Ret buffer |
Ret buffer |
Only the * case is affected. All other combinations either use the ret buffer path (stack-based encoding) or a single FP register (VLT_REG_FP).
Issue opened in reference to #129321 (comment)
The managed return value (MRV) debug info protocol (
VarLocTypeincordebuginfo.h) has no encoding for values returned in two floating-point registers. This affectsICorDebugILFrame3::GetReturnValueForILOffsetfor types returned via multi-reg FP on Linux x64.Only the * case is affected. All other combinations either use the ret buffer path (stack-based encoding) or a single FP register (
VLT_REG_FP).