Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
33b5cd1
Merge in 'release/6.0' changes
dotnet-bot Dec 8, 2021
91c0c3e
Merge in 'release/6.0' changes
dotnet-bot Dec 13, 2021
19531cf
Merge in 'release/6.0' changes
dotnet-bot Dec 15, 2021
3263455
Merge in 'release/6.0' changes
dotnet-bot Dec 15, 2021
17d15a1
Merge in 'release/6.0' changes
dotnet-bot Dec 15, 2021
a3d65fd
Merge in 'release/6.0' changes
dotnet-bot Dec 15, 2021
b772c4a
Merge in 'release/6.0' changes
dotnet-bot Dec 15, 2021
3bb0e55
Merge in 'release/6.0' changes
dotnet-bot Dec 15, 2021
7585d47
Merge in 'release/6.0' changes
dotnet-bot Dec 15, 2021
59d7056
Merge in 'release/6.0' changes
dotnet-bot Dec 15, 2021
bcadac5
Merge in 'release/6.0' changes
dotnet-bot Dec 15, 2021
6c4fc3b
Merge in 'release/6.0' changes
dotnet-bot Dec 15, 2021
e6f0fe3
Merge in 'release/6.0' changes
dotnet-bot Dec 15, 2021
d71a66d
Merge in 'release/6.0' changes
dotnet-bot Dec 15, 2021
38be174
Merge in 'release/6.0' changes
dotnet-bot Dec 15, 2021
8d63400
Merge in 'release/6.0' changes
dotnet-bot Dec 15, 2021
cd08c36
Merge in 'release/6.0' changes
dotnet-bot Dec 15, 2021
2ab0eff
Merge in 'release/6.0' changes
dotnet-bot Dec 16, 2021
59d91e9
Merge in 'release/6.0' changes
dotnet-bot Dec 16, 2021
f5ca66e
Merge in 'release/6.0' changes
dotnet-bot Dec 16, 2021
58a13b7
Merge in 'release/6.0' changes
dotnet-bot Dec 16, 2021
fc77ea6
Merge in 'release/6.0' changes
dotnet-bot Dec 16, 2021
6a1bf49
Merge in 'release/6.0' changes
dotnet-bot Dec 17, 2021
c9e0054
Merge in 'release/6.0' changes
dotnet-bot Dec 17, 2021
3e71e1e
Merge in 'release/6.0' changes
dotnet-bot Dec 23, 2021
1415c71
Merge in 'release/6.0' changes
dotnet-bot Dec 31, 2021
bf5c4ec
Merge in 'release/6.0' changes
dotnet-bot Jan 3, 2022
5c543c7
Merge in 'release/6.0' changes
dotnet-bot Jan 3, 2022
f66e95c
Merge in 'release/6.0' changes
dotnet-bot Jan 3, 2022
6dbf89d
Merge in 'release/6.0' changes
dotnet-bot Jan 3, 2022
064d131
Merge in 'release/6.0' changes
dotnet-bot Jan 3, 2022
531c3fb
Merge in 'release/6.0' changes
dotnet-bot Jan 4, 2022
9348c0f
Merge in 'release/6.0' changes
dotnet-bot Jan 5, 2022
fcd07dc
Merge in 'release/6.0' changes
dotnet-bot Jan 6, 2022
b484b69
Merge in 'release/6.0' changes
dotnet-bot Jan 6, 2022
d9163ed
Merge in 'release/6.0' changes
dotnet-bot Jan 6, 2022
72fb99c
Merge in 'release/6.0' changes
dotnet-bot Jan 6, 2022
84d8fd3
Merge in 'release/6.0' changes
dotnet-bot Jan 6, 2022
639c1b9
Merge in 'release/6.0' changes
dotnet-bot Jan 7, 2022
48e8304
Merge in 'release/6.0' changes
dotnet-bot Jan 7, 2022
bf4854f
Merge in 'release/6.0' changes
dotnet-bot Jan 7, 2022
0d4706a
Merge in 'release/6.0' changes
dotnet-bot Jan 7, 2022
ad8231c
Merge in 'release/6.0' changes
dotnet-bot Jan 7, 2022
3e07e04
Merge in 'release/6.0' changes
dotnet-bot Jan 8, 2022
3e05a74
Merge in 'release/6.0' changes
dotnet-bot Jan 8, 2022
46fc58e
Merge in 'release/6.0' changes
dotnet-bot Jan 8, 2022
4c50598
Merge in 'release/6.0' changes
dotnet-bot Jan 8, 2022
4fd8dc2
Merge in 'release/6.0' changes
dotnet-bot Jan 8, 2022
42bbedf
Merge in 'release/6.0' changes
dotnet-bot Jan 8, 2022
2b2f871
Merge in 'release/6.0' changes
dotnet-bot Jan 8, 2022
b974f5c
Merge in 'release/6.0' changes
dotnet-bot Jan 10, 2022
f528972
Merge in 'release/6.0' changes
dotnet-bot Jan 10, 2022
27eb94b
Merge in 'release/6.0' changes
dotnet-bot Jan 10, 2022
56c11f2
Merge in 'release/6.0' changes
dotnet-bot Jan 10, 2022
5e9fd16
Merge in 'release/6.0' changes
dotnet-bot Jan 13, 2022
d8f7045
Merge in 'release/6.0' changes
dotnet-bot Jan 13, 2022
71075a0
Merge in 'release/6.0' changes
dotnet-bot Jan 13, 2022
839cdfb
Merge in 'release/6.0' changes
dotnet-bot Jan 14, 2022
373c15f
Merge commit '839cdfb0ecca5e0be3dbccd926e7651ef50fdf10' into internal…
vseanreesermsft Feb 8, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 7 additions & 5 deletions src/coreclr/jit/codegencommon.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -486,13 +486,14 @@ regMaskTP CodeGenInterface::genGetRegMask(const LclVarDsc* varDsc)

assert(varDsc->lvIsInReg());

if (varTypeUsesFloatReg(varDsc->TypeGet()))
regNumber reg = varDsc->GetRegNum();
if (genIsValidFloatReg(reg))
{
regMask = genRegMaskFloat(varDsc->GetRegNum(), varDsc->TypeGet());
regMask = genRegMaskFloat(reg, varDsc->GetRegisterType());
}
else
{
regMask = genRegMask(varDsc->GetRegNum());
regMask = genRegMask(reg);
}
return regMask;
}
Expand Down Expand Up @@ -7148,8 +7149,9 @@ void CodeGen::genFnProlog()

if (isInReg)
{
regMaskTP regMask = genRegMask(varDsc->GetRegNum());
if (!varDsc->IsFloatRegType())
regNumber regForVar = varDsc->GetRegNum();
regMaskTP regMask = genRegMask(regForVar);
if (!genIsValidFloatReg(regForVar))
{
initRegs |= regMask;

Expand Down
11 changes: 4 additions & 7 deletions src/coreclr/jit/codegenlinear.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -51,19 +51,16 @@ void CodeGen::genInitializeRegisterState()
continue;
}

// Is this a floating-point argument?
if (varDsc->IsFloatRegType())
if (varDsc->lvAddrExposed)
{
continue;
}

noway_assert(!varTypeUsesFloatReg(varDsc->TypeGet()));

// Mark the register as holding the variable
assert(varDsc->GetRegNum() != REG_STK);
if (!varDsc->lvAddrExposed)
regNumber reg = varDsc->GetRegNum();
if (genIsValidIntReg(reg))
{
regSet.verifyRegUsed(varDsc->GetRegNum());
regSet.verifyRegUsed(reg);
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/coreclr/jit/compiler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2170,7 +2170,7 @@ VarName Compiler::compVarName(regNumber reg, bool isFloatReg)
/* If the variable is not in a register, or not in the register we're looking for, quit. */
/* Also, if it is a compiler generated variable (i.e. slot# > info.compVarScopesCount), don't bother. */
if ((varDsc->lvRegister != 0) && (varDsc->GetRegNum() == reg) &&
(varDsc->IsFloatRegType() || !isFloatReg) && (varDsc->lvSlotNum < info.compVarScopesCount))
(varDsc->lvSlotNum < info.compVarScopesCount))
{
/* check if variable in that register is live */
if (VarSetOps::IsMember(this, compCurLife, varDsc->lvVarIndex))
Expand Down
4 changes: 0 additions & 4 deletions src/coreclr/jit/compiler.h
Original file line number Diff line number Diff line change
Expand Up @@ -961,10 +961,6 @@ class LclVarDsc
Compiler* pComp,
RefCountState state = RCS_NORMAL,
bool propagate = true);
bool IsFloatRegType() const
{
return varTypeUsesFloatReg(lvType) || lvIsHfaRegArg();
}

var_types GetHfaType() const
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1051,7 +1051,7 @@ private HeaderDescriptor GetHeaderDescriptor(string name)
throw new InvalidOperationException(SR.Format(SR.net_http_headers_not_allowed_header_name, name));
}

private bool TryGetHeaderDescriptor(string name, out HeaderDescriptor descriptor)
internal bool TryGetHeaderDescriptor(string name, out HeaderDescriptor descriptor)
{
if (string.IsNullOrEmpty(name))
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ namespace System.Net.Http.Headers
/// <returns>true if the collection contains the header; otherwise, false.</returns>
public bool Contains(string headerName) =>
_headers is HttpHeaders headers &&
HeaderDescriptor.TryGet(headerName, out HeaderDescriptor descriptor) &&
headers.TryGetHeaderDescriptor(headerName, out HeaderDescriptor descriptor) &&
headers.TryGetHeaderValue(descriptor, out _);

/// <summary>Gets the values for the specified header name.</summary>
Expand Down Expand Up @@ -62,7 +62,7 @@ public HeaderStringValues this[string headerName]
public bool TryGetValues(string headerName, out HeaderStringValues values)
{
if (_headers is HttpHeaders headers &&
HeaderDescriptor.TryGet(headerName, out HeaderDescriptor descriptor) &&
headers.TryGetHeaderDescriptor(headerName, out HeaderDescriptor descriptor) &&
headers.TryGetHeaderValue(descriptor, out object? info))
{
HttpHeaders.GetStoreValuesAsStringOrStringArray(descriptor, info, out string? singleValue, out string[]? multiValue);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2112,6 +2112,44 @@ public void AddHeaders_SourceHasInvalidHeaderValues_InvalidHeadersRemovedFromSou
Assert.False(destination.Contains("custom"), "destination contains 'custom' header.");
}

[Fact]
public void AddHeaders_ResponseHeaderToRequestHeaders_Success()
{
const string Name = "WWW-Authenticate";
const string Value = "Basic realm=\"Access to the staging site\", charset=\"UTF-8\"";

var request = new HttpRequestMessage();
Assert.True(request.Headers.TryAddWithoutValidation(Name, Value));

Assert.True(request.Headers.Contains(Name));
Assert.True(request.Headers.NonValidated.Contains(Name));

Assert.True(request.Headers.TryGetValues(Name, out IEnumerable<string> values));
Assert.Equal(Value, values.Single());

Assert.True(request.Headers.NonValidated.TryGetValues(Name, out HeaderStringValues nvValues));
Assert.Equal(Value, nvValues.Single());
}

[Fact]
public void AddHeaders_RequestHeaderToResponseHeaders_Success()
{
const string Name = "Referer";
const string Value = "https://dot.net";

var response = new HttpResponseMessage();
Assert.True(response.Headers.TryAddWithoutValidation(Name, Value));

Assert.True(response.Headers.Contains(Name));
Assert.True(response.Headers.NonValidated.Contains(Name));

Assert.True(response.Headers.TryGetValues(Name, out IEnumerable<string> values));
Assert.Equal(Value, values.Single());

Assert.True(response.Headers.NonValidated.TryGetValues(Name, out HeaderStringValues nvValues));
Assert.Equal(Value, nvValues.Single());
}

[Fact]
public void HeaderStringValues_Default_Empty()
{
Expand Down