Skip to content

Conversation

@jakobbotsch
Copy link
Member

@jakobbotsch jakobbotsch commented Feb 10, 2022

I used the wrong register in the VM stub implementation for this function.
In addition, some changes are necessary for VSD calls through dispatcher
(that we cannot do on x64).

Fix #65111

Also remove macOS from the jit-cfg job. jit-cfg includes a GCStress
scenario which is not supported on macOS x64. Rather than
excluding it just there, just exclude all of macOS since CFG is a
Windows only feature anyway.

I am still keeping the Linux-x64/Linux-arm64 jobs as we produce
different IR for arguments on these ABIs and I want to keep the CFG
handling working in general for all the forms of IR we can produce
related to calls.

jit-cfg includes a GCStress scenario which is not supported on macOS
x64. Rather than excluding it just there, just exclude all of macOS
since CFG is a Windows only feature anyway.

I am still keeping the Linux-x64/Linux-arm64 jobs as we produce
different IR for arguments on these ABIs and I want to keep the CFG
handling working in general for all the forms of IR we can produce
related to calls.
@ghost ghost added the area-VM-coreclr label Feb 10, 2022
@ghost ghost assigned jakobbotsch Feb 10, 2022
@jakobbotsch
Copy link
Member Author

/azp run jit-cfg

@azure-pipelines
Copy link

Azure Pipelines failed to run 1 pipeline(s).

@jakobbotsch
Copy link
Member Author

/azp run jit-cfg

@azure-pipelines
Copy link

Azure Pipelines failed to run 1 pipeline(s).

@jakobbotsch
Copy link
Member Author

/azp run jit-cfg

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@jakobbotsch jakobbotsch changed the title Fix CFG dispatcher register in VM stub Fixes for CFG dispatcher on ARM64 Feb 10, 2022
@jakobbotsch
Copy link
Member Author

/azp run jit-cfg

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@jakobbotsch jakobbotsch added area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI and removed area-VM-coreclr labels Feb 10, 2022
@ghost
Copy link

ghost commented Feb 10, 2022

Tagging subscribers to this area: @JulieLeeMSFT
See info in area-owners.md if you want to be subscribed.

Issue Details

I used the wrong register in the VM stub implementation for this function.
In addition, some changes are necessary for VSD calls through dispatcher
(that we cannot do on x64).

Fix #65111

Also remove macOS from the jit-cfg job. jit-cfg includes a GCStress
scenario which is not supported on macOS x64. Rather than
excluding it just there, just exclude all of macOS since CFG is a
Windows only feature anyway.

I am still keeping the Linux-x64/Linux-arm64 jobs as we produce
different IR for arguments on these ABIs and I want to keep the CFG
handling working in general for all the forms of IR we can produce
related to calls.

Author: jakobbotsch
Assignees: jakobbotsch
Labels:

area-CodeGen-coreclr

Milestone: -

These registers are trashed in the epilog on arm64 for GS cookie checks,
but x9 might conflict with the argument used by the dispatch helper.
Change the temp registers to ip0 and ip1 and add some debug checking to
get a nice assert in the future if this happens.
@jakobbotsch
Copy link
Member Author

Another issue is that the GS cookie check uses x9 and x10 but x9 is also used by the dispatcher, so for methods that tailcalled and required GS cookie checks there would be a conflict when the dispatcher was used. I have changed the GS cookie checks to use ip0 and ip1 and added some checking for this in the future.

@jakobbotsch
Copy link
Member Author

/azp run jit-cfg

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@jakobbotsch
Copy link
Member Author

Remaining failures look like the ones fixed by #65253.

PTAL @dotnet/jit-contrib

@jakobbotsch jakobbotsch merged commit a25aa66 into dotnet:main Feb 15, 2022
@jakobbotsch jakobbotsch deleted the fix-65111 branch February 15, 2022 10:28
@ghost ghost locked as resolved and limited conversation to collaborators Mar 17, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Investigate ARM64 CFG failures when using the dispatcher

2 participants