diff --git a/src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/ObjectWriter/Dwarf/DwarfInfo.cs b/src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/ObjectWriter/Dwarf/DwarfInfo.cs index b1408e3eae3bb..fa02122c9a879 100644 --- a/src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/ObjectWriter/Dwarf/DwarfInfo.cs +++ b/src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/ObjectWriter/Dwarf/DwarfInfo.cs @@ -510,7 +510,6 @@ private static void DumpVarLocation(DwarfExpressionBuilder e, VarLoc loc) break; case VarLocType.VLT_STK: case VarLocType.VLT_STK2: - case VarLocType.VLT_FPSTK: case VarLocType.VLT_STK_BYREF: e.OpBReg(loc.B, loc.C); if (loc.LocationType == VarLocType.VLT_STK_BYREF) @@ -531,11 +530,16 @@ private static void DumpVarLocation(DwarfExpressionBuilder e, VarLoc loc) e.OpPiece(); break; case VarLocType.VLT_STK_REG: - e.OpBReg(loc.C, loc.D); + e.OpBReg(loc.B, loc.C); e.OpPiece(); - e.OpReg(loc.B); + e.OpReg(loc.D); e.OpPiece(); break; + case VarLocType.VLT_FPSTK: + // On ARM32 this is used to encode actual registers. This may be wrong for x86 + // which we don't support anyway. + e.OpReg(loc.B); + break; default: // Unsupported Debug.Assert(loc.LocationType != VarLocType.VLT_FIXED_VA);