Skip to content

Managed Return Value debug info cannot encode multi-register floating-point return values #129344

@tommcdon

Description

@tommcdon

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).

Metadata

Metadata

Assignees

No one assigned

    Type

    No fields configured for Bug.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions